GCC Middle and Back End API Reference
tree-pass.h
Go to the documentation of this file.
1/* Definitions for describing one tree-ssa optimization pass.
2 Copyright (C) 2004-2025 Free Software Foundation, Inc.
3 Contributed by Richard Henderson <rth@redhat.com>
4
5This file is part of GCC.
6
7GCC is free software; you can redistribute it and/or modify
8it under the terms of the GNU General Public License as published by
9the Free Software Foundation; either version 3, or (at your option)
10any later version.
11
12GCC is distributed in the hope that it will be useful,
13but WITHOUT ANY WARRANTY; without even the implied warranty of
14MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15GNU General Public License for more details.
16
17You should have received a copy of the GNU General Public License
18along with GCC; see the file COPYING3. If not see
19<http://www.gnu.org/licenses/>. */
20
21
22#ifndef GCC_TREE_PASS_H
23#define GCC_TREE_PASS_H 1
24
25#include "timevar.h"
26#include "dumpfile.h"
27
28struct function;
29
30/* Optimization pass type. */
38
39/* Metadata for a pass, non-varying across all instances of a pass. */
41{
42 /* Optimization pass type. */
44
45 /* Terse name of the pass used as a fragment of the dump file
46 name. If the name starts with a star, no dump happens. */
47 const char *name;
48
49 /* The -fopt-info optimization group flags as defined in dumpfile.h. */
51
52 /* The timevar id associated with this pass. */
53 /* ??? Ideally would be dynamically assigned. */
55
56 /* Sets of properties input and output from this pass. */
57 unsigned int properties_required;
58 unsigned int properties_provided;
60
61 /* Flags indicating common sets things to do before and after. */
62 unsigned int todo_flags_start;
63 unsigned int todo_flags_finish;
64};
65
66namespace gcc
67{
68 class context;
69} // namespace gcc
70
71/* An instance of a pass. This is also "pass_data" to minimize the
72 changes in existing code. */
73class opt_pass : public pass_data
74{
75public:
76 virtual ~opt_pass () { }
77
78 /* Create a copy of this pass.
79
80 Passes that can have multiple instances must provide their own
81 implementation of this, to ensure that any sharing of state between
82 this instance and the copy is "wired up" correctly.
83
84 The default implementation prints an error message and aborts. */
85 virtual opt_pass *clone ();
86 virtual void set_pass_param (unsigned int, bool);
87
88 /* This pass and all sub-passes are executed only if the function returns
89 true. The default implementation returns true. */
90 virtual bool gate (function *fun);
91
92 /* This is the code to run. If this is not overridden, then there should
93 be sub-passes otherwise this pass does nothing.
94 The return value contains TODOs to execute in addition to those in
95 TODO_flags_finish. */
96 virtual unsigned int execute (function *fun);
97
98protected:
100
101public:
102 /* A list of sub-passes to run, dependent on gate predicate. */
104
105 /* Next in the list of passes to run, independent of gate predicate. */
107
108 /* Static pass number, used as a fragment of the dump file name. */
110
111protected:
113};
114
115/* Description of GIMPLE pass. */
117{
118protected:
120 : opt_pass (data, ctxt)
121 {
122 }
123};
124
125/* Description of RTL pass. */
126class rtl_opt_pass : public opt_pass
127{
128protected:
130 : opt_pass (data, ctxt)
131 {
132 }
133};
134
135struct varpool_node;
136struct cgraph_node;
138
139/* Description of IPA pass with generate summary, write, execute, read and
140 transform stages. */
142{
143public:
144 /* IPA passes can analyze function body and variable initializers
145 using this hook and produce summary. */
146 void (*generate_summary) (void);
147
148 /* This hook is used to serialize IPA summaries on disk. */
149 void (*write_summary) (void);
150
151 /* This hook is used to deserialize IPA summaries from disk. */
152 void (*read_summary) (void);
153
154 /* This hook is used to serialize IPA optimization summaries on disk. */
156
157 /* This hook is used to deserialize IPA summaries from disk. */
159
160 /* Hook to convert gimple stmt uids into true gimple statements. The second
161 parameter is an array of statements indexed by their uid. */
162 void (*stmt_fixup) (struct cgraph_node *, gimple **);
163
164 /* Results of interprocedural propagation of an IPA pass is applied to
165 function body via this hook. */
167 unsigned int (*function_transform) (struct cgraph_node *);
169
170protected:
193};
194
195/* Description of simple IPA pass. Simple IPA passes have just one execute
196 hook. */
198{
199protected:
201 : opt_pass (data, ctxt)
202 {
203 }
204};
205
206/* Pass properties. */
207#define PROP_gimple_any (1 << 0) /* entire gimple grammar */
208#define PROP_gimple_lcf (1 << 1) /* lowered control flow */
209#define PROP_gimple_leh (1 << 2) /* lowered eh */
210#define PROP_cfg (1 << 3)
211#define PROP_objsz (1 << 4) /* object sizes computed */
212#define PROP_ssa (1 << 5)
213#define PROP_no_crit_edges (1 << 6)
214#define PROP_rtl (1 << 7)
215#define PROP_gimple_lomp (1 << 8) /* lowered OpenMP directives */
216#define PROP_cfglayout (1 << 9) /* cfglayout mode on RTL */
217#define PROP_gimple_lcx (1 << 10) /* lowered complex */
218#define PROP_loops (1 << 11) /* preserve loop structures */
219#define PROP_gimple_lvec (1 << 12) /* lowered vector */
220#define PROP_gimple_eomp (1 << 13) /* no OpenMP directives */
221#define PROP_gimple_lva (1 << 14) /* No va_arg internal function. */
222#define PROP_gimple_opt_math (1 << 15) /* Disable canonicalization
223 of math functions; the
224 current choices have
225 been optimized. */
226#define PROP_gimple_lomp_dev (1 << 16) /* done omp_device_lower */
227#define PROP_rtl_split_insns (1 << 17) /* RTL has insns split. */
228#define PROP_loop_opts_done (1 << 18) /* SSA loop optimizations
229 have completed. */
230#define PROP_assumptions_done (1 << 19) /* Assume function kept
231 around. */
232#define PROP_gimple_lbitint (1 << 20) /* lowered large _BitInt */
233#define PROP_last_full_fold (1 << 21) /* Start of last forwprop. */
235#define PROP_gimple \
236 (PROP_gimple_any | PROP_gimple_lcf | PROP_gimple_leh | PROP_gimple_lomp)
238/* To-do flags. */
239#define TODO_do_not_ggc_collect (1 << 1)
240#define TODO_cleanup_cfg (1 << 5)
241#define TODO_verify_il (1 << 6)
242#define TODO_dump_symtab (1 << 7)
243#define TODO_remove_functions (1 << 8)
244
245/* To-do flags for calls to update_ssa. */
246
247/* Update the SSA form inserting PHI nodes for newly exposed symbols
248 and virtual names marked for updating. When updating real names,
249 only insert PHI nodes for a real name O_j in blocks reached by all
250 the new and old definitions for O_j. If the iterated dominance
251 frontier for O_j is not pruned, we may end up inserting PHI nodes
252 in blocks that have one or more edges with no incoming definition
253 for O_j. This would lead to uninitialized warnings for O_j's
254 symbol. */
255#define TODO_update_ssa (1 << 11)
257/* Update the SSA form without inserting any new PHI nodes at all.
258 This is used by passes that have either inserted all the PHI nodes
259 themselves or passes that need only to patch use-def and def-def
260 chains for virtuals (e.g., DCE). */
261#define TODO_update_ssa_no_phi (1 << 12)
262
263/* Insert PHI nodes everywhere they are needed. No pruning of the
264 IDF is done. This is used by passes that need the PHI nodes for
265 O_j even if it means that some arguments will come from the default
266 definition of O_j's symbol.
268 WARNING: If you need to use this flag, chances are that your pass
269 may be doing something wrong. Inserting PHI nodes for an old name
270 where not all edges carry a new replacement may lead to silent
271 codegen errors or spurious uninitialized warnings. */
272#define TODO_update_ssa_full_phi (1 << 13)
273
274/* Passes that update the SSA form on their own may want to delegate
275 the updating of virtual names to the generic updater. Since FUD
276 chains are easier to maintain, this simplifies the work they need
277 to do. NOTE: If this flag is used, any OLD->NEW mappings for real
278 names are explicitly destroyed and only the symbols marked for
279 renaming are processed. */
280#define TODO_update_ssa_only_virtuals (1 << 14)
281
282/* Some passes leave unused local variables that can be removed from
283 cfun->local_decls. This reduces the size of dump files
284 and the memory footprint for VAR_DECLs. */
285#define TODO_remove_unused_locals (1 << 15)
286
287/* Call df_finish at the end of the pass. This is done after all of
288 the dumpers have been allowed to run so that they have access to
289 the instance before it is destroyed. */
290#define TODO_df_finish (1 << 17)
292/* Call df_verify at the end of the pass if checking is enabled. */
293#define TODO_df_verify (1 << 18)
295/* Internally used for the first instance of a pass. */
296#define TODO_mark_first_instance (1 << 19)
298/* Rebuild aliasing info. */
299#define TODO_rebuild_alias (1 << 20)
301/* Rebuild the addressable-vars bitmap and do register promotion. */
302#define TODO_update_address_taken (1 << 21)
303
304/* Rebuild the callgraph edges. */
305#define TODO_rebuild_cgraph_edges (1 << 22)
306
307/* Release function body (unless assumption function)
308 and stop pass manager. */
309#define TODO_discard_function (1 << 23)
310
311/* Internally used in execute_function_todo(). */
312#define TODO_update_ssa_any \
313 (TODO_update_ssa \
314 | TODO_update_ssa_no_phi \
315 | TODO_update_ssa_full_phi \
316 | TODO_update_ssa_only_virtuals)
317
318#define TODO_verify_all TODO_verify_il
320/* To-do flags for pending_TODOs. */
321
322/* Tell the next scalar cleanup pass that there is
323 work for it to do. */
324#define PENDING_TODO_force_next_scalar_cleanup (1 << 1)
326/* Register pass info. */
329{
330 PASS_POS_INSERT_AFTER, /* Insert after the reference pass. */
331 PASS_POS_INSERT_BEFORE, /* Insert before the reference pass. */
332 PASS_POS_REPLACE /* Replace the reference pass. */
334
336{
337 opt_pass *pass; /* New pass to register. */
338 const char *reference_pass_name; /* Name of the reference pass for hooking
339 up the new pass. */
340 int ref_pass_instance_number; /* Insert the pass at the specified
341 instance number of the reference pass.
342 Do it for every instance if it is 0. */
343 enum pass_positioning_ops pos_op; /* how to insert the new pass. */
344};
345
346/* Registers a new pass. Either fill out the register_pass_info or specify
347 the individual parameters. The pass object is expected to have been
348 allocated using operator new and the pass manager takes the ownership of
349 the pass object. */
350extern void register_pass (register_pass_info *);
351extern void register_pass (opt_pass* pass, pass_positioning_ops pos,
352 const char* ref_pass_name, int ref_pass_inst_number);
353
422extern unsigned int tail_merge_optimize (bool);
486 *ctxt);
515
516/* IPA Passes */
523
527
530 *ctxt);
532 *ctxt);
554
556 *ctxt);
559
582
585
592
622 *ctxt);
628 *ctxt);
630 *ctxt);
671 *ctxt);
673 *ctxt);
674
675/* Current optimization pass. */
676extern opt_pass *current_pass;
677
678extern bool execute_one_pass (opt_pass *);
679extern void execute_pass_list (function *, opt_pass *);
680extern void execute_ipa_pass_list (opt_pass *);
682extern void execute_all_ipa_transforms (bool);
683extern void execute_all_ipa_stmt_fixups (struct cgraph_node *, gimple **);
684extern bool pass_init_dump_file (opt_pass *);
685extern void pass_fini_dump_file (opt_pass *);
686extern void emergency_dump_function (void);
687
688extern void print_current_pass (FILE *);
689extern void debug_pass (void);
690extern void ipa_write_summaries (void);
692 bool);
693extern void ipa_read_summaries (void);
694extern void ipa_read_optimization_summaries (void);
695extern void register_one_dump_file (opt_pass *);
696extern bool function_called_by_processed_nodes_p (void);
697
698/* Declare for plugins. */
699extern void do_per_function_toporder (void (*) (function *, void *), void *);
700
701extern void disable_pass (const char *);
702extern void enable_pass (const char *);
703extern void dump_passes (void);
704
705#endif /* GCC_TREE_PASS_H */
Definition genoutput.cc:150
Definition context.h:32
Definition tree-pass.h:117
gimple_opt_pass(const pass_data &data, gcc::context *ctxt)
Definition tree-pass.h:119
Definition tree-pass.h:142
void(* read_optimization_summary)(void)
Definition tree-pass.h:158
unsigned int(* function_transform)(struct cgraph_node *)
Definition tree-pass.h:167
ipa_opt_pass_d(const pass_data &data, gcc::context *ctxt, void(*generate_summary)(void), void(*write_summary)(void), void(*read_summary)(void), void(*write_optimization_summary)(void), void(*read_optimization_summary)(void), void(*stmt_fixup)(struct cgraph_node *, gimple **), unsigned int function_transform_todo_flags_start, unsigned int(*function_transform)(struct cgraph_node *), void(*variable_transform)(varpool_node *))
Definition tree-pass.h:171
void(* read_summary)(void)
Definition tree-pass.h:152
void(* variable_transform)(varpool_node *)
Definition tree-pass.h:168
unsigned int function_transform_todo_flags_start
Definition tree-pass.h:166
void(* generate_summary)(void)
Definition tree-pass.h:146
void(* stmt_fixup)(struct cgraph_node *, gimple **)
Definition tree-pass.h:162
void(* write_summary)(void)
Definition tree-pass.h:149
void(* write_optimization_summary)(void)
Definition tree-pass.h:155
Definition tree-pass.h:74
int static_pass_number
Definition tree-pass.h:109
virtual void set_pass_param(unsigned int, bool)
Definition passes.cc:88
opt_pass * next
Definition tree-pass.h:106
virtual opt_pass * clone()
Definition passes.cc:82
opt_pass(const pass_data &, gcc::context *)
Definition passes.cc:106
virtual bool gate(function *fun)
Definition passes.cc:95
virtual ~opt_pass()
Definition tree-pass.h:76
opt_pass * sub
Definition tree-pass.h:103
gcc::context * m_ctxt
Definition tree-pass.h:112
Definition tree-pass.h:127
rtl_opt_pass(const pass_data &data, gcc::context *ctxt)
Definition tree-pass.h:129
Definition tree-pass.h:198
simple_ipa_opt_pass(const pass_data &data, gcc::context *ctxt)
Definition tree-pass.h:200
enum optgroup_flag optgroup_flags_t
Definition dumpfile.h:277
static int execute(void)
Definition gcc.cc:3253
Definition context.h:23
opt_pass * current_pass
Definition passes.cc:72
Definition cgraph.h:888
Definition function.h:249
Definition gimple.h:221
Definition lto-streamer.h:469
Definition tree-pass.h:41
unsigned int properties_required
Definition tree-pass.h:57
timevar_id_t tv_id
Definition tree-pass.h:54
enum opt_pass_type type
Definition tree-pass.h:43
unsigned int properties_destroyed
Definition tree-pass.h:59
optgroup_flags_t optinfo_flags
Definition tree-pass.h:50
const char * name
Definition tree-pass.h:47
unsigned int todo_flags_finish
Definition tree-pass.h:63
unsigned int todo_flags_start
Definition tree-pass.h:62
unsigned int properties_provided
Definition tree-pass.h:58
Definition tree-pass.h:331
enum pass_positioning_ops pos_op
Definition tree-pass.h:338
int ref_pass_instance_number
Definition tree-pass.h:335
opt_pass * pass
Definition tree-pass.h:332
const char * reference_pass_name
Definition tree-pass.h:333
Definition cgraph.h:2001
timevar_id_t
Definition timevar.h:67
rtl_opt_pass * make_pass_ira(gcc::context *ctxt)
Definition ira.cc:6141
rtl_opt_pass * make_pass_split_before_regstack(gcc::context *ctxt)
Definition recog.cc:4674
rtl_opt_pass * make_pass_rtl_dse1(gcc::context *ctxt)
Definition dse.cc:3807
gimple_opt_pass * make_pass_tree_no_loop(gcc::context *ctxt)
Definition tree-ssa-loop.cc:312
rtl_opt_pass * make_pass_ext_dce(gcc::context *ctxt)
Definition ext-dce.cc:1179
rtl_opt_pass * make_pass_late_combine(gcc::context *ctxt)
Definition late-combine.cc:779
gimple_opt_pass * make_pass_thread_jumps(gcc::context *ctxt)
Definition tree-ssa-threadbackward.cc:1066
simple_ipa_opt_pass * make_pass_ipa_tree_profile(gcc::context *ctxt)
Definition tree-profile.cc:2080
gimple_opt_pass * make_pass_reassoc(gcc::context *ctxt)
Definition tree-ssa-reassoc.cc:7552
gimple_opt_pass * make_pass_build_ssa(gcc::context *ctxt)
Definition tree-into-ssa.cc:2586
rtl_opt_pass * make_pass_jump_after_combine(gcc::context *ctxt)
Definition cfgcleanup.cc:3297
gimple_opt_pass * make_pass_optimize_widening_mul(gcc::context *ctxt)
Definition tree-ssa-math-opts.cc:6527
opt_pass_type
Definition tree-pass.h:32
@ RTL_PASS
Definition tree-pass.h:34
@ SIMPLE_IPA_PASS
Definition tree-pass.h:35
@ GIMPLE_PASS
Definition tree-pass.h:33
@ IPA_PASS
Definition tree-pass.h:36
rtl_opt_pass * make_pass_split_for_shorten_branches(gcc::context *ctxt)
Definition recog.cc:4724
ipa_opt_pass_d * make_pass_ipa_inline(gcc::context *ctxt)
Definition ipa-inline.cc:3298
gimple_opt_pass * make_pass_lower_omp(gcc::context *ctxt)
Definition omp-low.cc:15139
rtl_opt_pass * make_pass_rtl_dse3(gcc::context *ctxt)
void register_pass(register_pass_info *)
Definition passes.cc:1481
gimple_opt_pass * make_pass_gimple_isel(gcc::context *ctxt)
Definition gimple-isel.cc:430
gimple_opt_pass * make_pass_return_slot(gcc::context *ctxt)
Definition tree-nrv.cc:398
rtl_opt_pass * make_pass_rtl_doloop(gcc::context *ctxt)
Definition loop-init.cc:651
rtl_opt_pass * make_pass_mode_switching(gcc::context *ctxt)
Definition mode-switching.cc:1334
gimple_opt_pass * make_pass_asan(gcc::context *ctxt)
Definition asan.cc:4398
ipa_opt_pass_d * make_pass_ipa_whole_program_visibility(gcc::context *ctxt)
Definition ipa-visibility.cc:1003
rtl_opt_pass * make_pass_free_cfg(gcc::context *ctxt)
Definition cfgrtl.cc:510
rtl_opt_pass * make_pass_stack_ptr_mod(gcc::context *ctxt)
Definition stack-ptr-mod.cc:112
gimple_opt_pass * make_pass_nothrow(gcc::context *ctxt)
Definition ipa-pure-const.cc:2415
rtl_opt_pass * make_pass_zero_call_used_regs(gcc::context *ctxt)
Definition function.cc:6854
gimple_opt_pass * make_pass_if_conversion(gcc::context *ctxt)
Definition tree-if-conv.cc:4177
rtl_opt_pass * make_pass_clean_state(gcc::context *ctxt)
Definition final.cc:4558
rtl_opt_pass * make_pass_lower_subreg3(gcc::context *ctxt)
Definition lower-subreg.cc:1903
gimple_opt_pass * make_pass_laddress(gcc::context *ctxt)
Definition gimple-laddress.cc:135
gimple_opt_pass * make_pass_warn_recursion(gcc::context *ctxt)
Definition gimple-warn-recursion.cc:211
rtl_opt_pass * make_pass_if_after_reload(gcc::context *ctxt)
Definition ifcvt.cc:6289
gimple_opt_pass * make_pass_sancov(gcc::context *ctxt)
Definition sancov.cc:343
void do_per_function_toporder(void(*)(function *, void *), void *)
Definition passes.cc:1749
gimple_opt_pass * make_pass_warn_nonnull_compare(gcc::context *ctxt)
Definition gimple-ssa-nonnull-compare.cc:149
ipa_opt_pass_d * make_pass_ipa_icf(gcc::context *ctxt)
Definition ipa-icf.cc:3722
gimple_opt_pass * make_pass_lower_switch(gcc::context *ctxt)
Definition tree-switch-conversion.cc:3181
rtl_opt_pass * make_pass_into_cfg_layout_mode(gcc::context *ctxt)
Definition cfgrtl.cc:3756
gimple_opt_pass * make_pass_harden_control_flow_redundancy(gcc::context *ctxt)
Definition gimple-harden-control-flow.cc:1559
gimple_opt_pass * make_pass_tsan(gcc::context *ctxt)
Definition tsan.cc:929
gimple_opt_pass * make_pass_strength_reduction(gcc::context *ctxt)
Definition gimple-ssa-strength-reduction.cc:4092
ipa_opt_pass_d * make_pass_ipa_devirt(gcc::context *ctxt)
Definition ipa-devirt.cc:4028
gimple_opt_pass * make_pass_lower_bitint_O0(gcc::context *ctxt)
Definition gimple-lower-bitint.cc:7331
gimple_opt_pass * make_pass_sra(gcc::context *ctxt)
Definition tree-sra.cc:5250
bool execute_one_pass(opt_pass *)
Definition passes.cc:2588
rtl_opt_pass * make_pass_convert_to_eh_region_ranges(gcc::context *ctxt)
Definition except.cc:2778
gimple_opt_pass * make_pass_lower_complex(gcc::context *ctxt)
Definition tree-complex.cc:2070
gimple_opt_pass * make_pass_lower_vaarg(gcc::context *ctxt)
Definition tree-stdarg.cc:1207
gimple_opt_pass * make_pass_early_object_sizes(gcc::context *ctxt)
Definition tree-object-size.cc:2388
gimple_opt_pass * make_pass_store_merging(gcc::context *ctxt)
Definition gimple-ssa-store-merging.cc:5619
gimple_opt_pass * make_pass_warn_access(gcc::context *ctxt)
Definition gimple-ssa-warn-access.cc:4828
rtl_opt_pass * make_pass_live_range_shrinkage(gcc::context *ctxt)
Definition sched-rgn.cc:3818
gimple_opt_pass * make_pass_loop_split(gcc::context *ctxt)
Definition tree-ssa-loop-split.cc:1863
rtl_opt_pass * make_pass_ree(gcc::context *ctxt)
Definition ree.cc:1431
rtl_opt_pass * make_pass_compare_elim_after_reload(gcc::context *ctxt)
Definition compare-elim.cc:976
gimple_opt_pass * make_pass_split_paths(gcc::context *ctxt)
Definition gimple-ssa-split-paths.cc:542
gimple_opt_pass * make_pass_cse_sincos(gcc::context *ctxt)
Definition tree-ssa-math-opts.cc:2271
gimple_opt_pass * make_pass_parallelize_loops(gcc::context *ctxt)
Definition tree-parloops.cc:4265
void print_current_pass(FILE *)
Definition passes.cc:134
gimple_opt_pass * make_pass_build_cfg(gcc::context *ctxt)
Definition tree-cfg.cc:422
void dump_passes(void)
Definition passes.cc:1003
rtl_opt_pass * make_pass_regrename(gcc::context *ctxt)
Definition regrename.cc:2043
void emergency_dump_function(void)
Definition passes.cc:1840
gimple_opt_pass * make_pass_oacc_device_lower(gcc::context *ctxt)
Definition omp-offload.cc:2530
rtl_opt_pass * make_pass_if_after_combine(gcc::context *ctxt)
Definition ifcvt.cc:6243
simple_ipa_opt_pass * make_pass_ipa_function_and_variable_visibility(gcc::context *ctxt)
Definition ipa-visibility.cc:1025
rtl_opt_pass * make_pass_hardreg_pre(gcc::context *ctxt)
Definition gcse.cc:4367
gimple_opt_pass * make_pass_empty_loop(gcc::context *ctxt)
rtl_opt_pass * make_pass_initialize_regs(gcc::context *ctxt)
Definition init-regs.cc:168
gimple_opt_pass * make_pass_forwprop(gcc::context *ctxt)
Definition tree-ssa-forwprop.cc:4783
ipa_opt_pass_d * make_pass_ipa_comdats(gcc::context *ctxt)
Definition ipa-comdats.cc:437
gimple_opt_pass * make_pass_strip_predict_hints(gcc::context *ctxt)
Definition predict.cc:4421
rtl_opt_pass * make_pass_cprop_hardreg(gcc::context *ctxt)
Definition regcprop.cc:1469
rtl_opt_pass * make_pass_rtl_avoid_store_forwarding(gcc::context *ctxt)
Definition avoid-store-forwarding.cc:644
gimple_opt_pass * make_pass_tm_edges(gcc::context *ctxt)
Definition trans-mem.cc:3380
gimple_opt_pass * make_pass_vtable_verify(gcc::context *ctxt)
Definition vtable-verify.cc:837
gimple_opt_pass * make_pass_refactor_eh(gcc::context *ctxt)
Definition tree-eh.cc:3350
void debug_pass(void)
Definition passes.cc:146
gimple_opt_pass * make_pass_loop_versioning(gcc::context *ctxt)
Definition gimple-loop-versioning.cc:1804
unsigned int tail_merge_optimize(bool)
Definition tree-ssa-tail-merge.cc:1803
gimple_opt_pass * make_pass_sccopy(gcc::context *ctxt)
Definition gimple-ssa-sccopy.cc:713
gimple_opt_pass * make_pass_merge_phi(gcc::context *ctxt)
Definition tree-cfgcleanup.cc:1510
gimple_opt_pass * make_pass_phiopt(gcc::context *ctxt)
Definition tree-ssa-phiopt.cc:4454
rtl_opt_pass * make_pass_stack_regs_run(gcc::context *ctxt)
Definition reg-stack.cc:3537
gimple_opt_pass * make_pass_lower_bitint(gcc::context *ctxt)
Definition gimple-lower-bitint.cc:7285
ipa_opt_pass_d * make_pass_ipa_sra(gcc::context *ctxt)
Definition ipa-sra.cc:4725
gimple_opt_pass * make_pass_lim(gcc::context *ctxt)
Definition tree-ssa-loop-im.cc:3780
gimple_opt_pass * make_pass_rename_ssa_copies(gcc::context *ctxt)
gimple_opt_pass * make_pass_isolate_erroneous_paths(gcc::context *ctxt)
Definition gimple-ssa-isolate-paths.cc:1013
gimple_opt_pass * make_pass_sink_code(gcc::context *ctxt)
Definition tree-ssa-sink.cc:867
rtl_opt_pass * make_pass_rtl_loop_init(gcc::context *ctxt)
Definition loop-init.cc:439
gimple_opt_pass * make_pass_lower_eh_dispatch(gcc::context *ctxt)
Definition tree-eh.cc:4058
gimple_opt_pass * make_pass_dominator(gcc::context *ctxt)
Definition tree-ssa-dom.cc:1076
simple_ipa_opt_pass * make_pass_dispatcher_calls(gcc::context *ctxt)
gimple_opt_pass * make_pass_tm_init(gcc::context *ctxt)
Definition trans-mem.cc:2163
rtl_opt_pass * make_pass_rtl_dce(gcc::context *ctxt)
gimple_opt_pass * make_pass_ubsan(gcc::context *ctxt)
Definition ubsan.cc:2587
gimple_opt_pass * make_pass_sprintf_length(gcc::context *ctxt)
simple_ipa_opt_pass * make_pass_ipa_increase_alignment(gcc::context *ctxt)
Definition tree-vectorizer.cc:1775
gimple_opt_pass * make_pass_loop_distribution(gcc::context *ctxt)
Definition tree-loop-distribution.cc:4032
rtl_opt_pass * make_pass_fast_rtl_byte_dce(gcc::context *ctxt)
gimple_opt_pass * make_pass_tsan_O0(gcc::context *ctxt)
Definition tsan.cc:969
gimple_opt_pass * make_pass_modref(gcc::context *ctxt)
Definition ipa-modref.cc:4268
gimple_opt_pass * make_pass_musttail(gcc::context *ctxt)
Definition tree-tailcall.cc:1516
void execute_all_ipa_transforms(bool)
Definition passes.cc:2371
gimple_opt_pass * make_pass_phiprop(gcc::context *ctxt)
Definition tree-ssa-phiprop.cc:558
simple_ipa_opt_pass * make_pass_build_ssa_passes(gcc::context *ctxt)
Definition passes.cc:488
rtl_opt_pass * make_pass_split_all_insns(gcc::context *ctxt)
Definition recog.cc:4516
simple_ipa_opt_pass * make_pass_ipa_tm(gcc::context *ctxt)
Definition trans-mem.cc:5700
rtl_opt_pass * make_pass_reorder_blocks(gcc::context *ctxt)
Definition bb-reorder.cc:2694
void execute_ipa_pass_list(opt_pass *)
Definition passes.cc:3105
gimple_opt_pass * make_pass_vrp(gcc::context *ctxt)
Definition tree-vrp.cc:1358
ipa_opt_pass_d * make_pass_ipa_profile(gcc::context *ctxt)
Definition ipa-profile.cc:1059
gimple_opt_pass * make_pass_fre(gcc::context *ctxt)
Definition tree-ssa-sccvn.cc:9006
gimple_opt_pass * make_pass_oacc_loop_designation(gcc::context *ctxt)
Definition omp-offload.cc:2524
gimple_opt_pass * make_pass_simduid_cleanup(gcc::context *ctxt)
Definition tree-vectorizer.cc:1496
gimple_opt_pass * make_pass_fixup_cfg(gcc::context *ctxt)
Definition tree-cfg.cc:10209
rtl_opt_pass * make_pass_lower_subreg(gcc::context *ctxt)
Definition lower-subreg.cc:1816
void register_one_dump_file(opt_pass *)
Definition passes.cc:828
rtl_opt_pass * make_pass_rtl_cprop(gcc::context *ctxt)
Definition cprop.cc:1988
gimple_opt_pass * make_pass_build_alias(gcc::context *ctxt)
Definition tree-ssa-structalias.cc:8176
gimple_opt_pass * make_pass_sra_early(gcc::context *ctxt)
Definition tree-sra.cc:5214
gimple_opt_pass * make_pass_complete_unrolli(gcc::context *ctxt)
Definition tree-ssa-loop-ivcanon.cc:1794
rtl_opt_pass * make_pass_split_before_sched2(gcc::context *ctxt)
Definition recog.cc:4615
simple_ipa_opt_pass * make_pass_ipa_lower_emutls(gcc::context *ctxt)
Definition tree-emutls.cc:858
gimple_opt_pass * make_pass_tree_ifcombine(gcc::context *ctxt)
Definition tree-ssa-ifcombine.cc:1412
gimple_opt_pass * make_pass_harden_conditional_branches(gcc::context *ctxt)
Definition gimple-harden-conditionals.cc:382
gimple_opt_pass * make_pass_tree_loop_done(gcc::context *ctxt)
Definition tree-ssa-loop.cc:515
gimple_opt_pass * make_pass_stdarg(gcc::context *ctxt)
Definition tree-stdarg.cc:1160
rtl_opt_pass * make_pass_gcse2(gcc::context *ctxt)
Definition postreload-gcse.cc:1467
gimple_opt_pass * make_pass_strlen(gcc::context *ctxt)
Definition tree-ssa-strlen.cc:6109
rtl_opt_pass * make_pass_rtl_pre(gcc::context *ctxt)
Definition gcse.cc:4317
gimple_opt_pass * make_pass_dse(gcc::context *ctxt)
Definition tree-ssa-dse.cc:1802
gimple_opt_pass * make_pass_coroutine_lower_builtins(gcc::context *ctxt)
Definition coroutine-passes.cc:229
gimple_opt_pass * make_pass_feedback_split_functions(gcc::context *ctxt)
Definition ipa-split.cc:2009
gimple_opt_pass * make_pass_local_fn_summary(gcc::context *ctxt)
Definition ipa-fnsummary.cc:5169
rtl_opt_pass * make_pass_fold_mem_offsets(gcc::context *ctxt)
Definition fold-mem-offsets.cc:926
rtl_opt_pass * make_pass_delay_slots(gcc::context *ctxt)
Definition reorg.cc:3887
gimple_opt_pass * make_pass_loop_prefetch(gcc::context *ctxt)
Definition tree-ssa-loop-prefetch.cc:2119
ipa_opt_pass_d * make_pass_ipa_single_use(gcc::context *ctxt)
Definition ipa.cc:1577
gimple_opt_pass * make_pass_warn_function_return(gcc::context *ctxt)
Definition tree-cfg.cc:9891
rtl_opt_pass * make_pass_value_profile_transformations(gcc::context *ctxt)
gimple_opt_pass * make_pass_sancov_O0(gcc::context *ctxt)
Definition sancov.cc:349
rtl_opt_pass * make_pass_web(gcc::context *ctxt)
Definition web.cc:426
gimple_opt_pass * make_pass_release_ssa_names(gcc::context *ctxt)
Definition tree-ssanames.cc:1042
gimple_opt_pass * make_pass_early_vrp(gcc::context *ctxt)
Definition tree-vrp.cc:1364
rtl_opt_pass * make_pass_jump(gcc::context *ctxt)
Definition cfgcleanup.cc:3249
simple_ipa_opt_pass * make_pass_ipa_pta(gcc::context *ctxt)
Definition tree-ssa-structalias.cc:8843
rtl_opt_pass * make_pass_sched(gcc::context *ctxt)
Definition sched-rgn.cc:3867
gimple_opt_pass * make_pass_late_warn_uninitialized(gcc::context *ctxt)
Definition tree-ssa-uninit.cc:1486
gimple_opt_pass * make_pass_tm_mark(gcc::context *ctxt)
Definition trans-mem.cc:3191
rtl_opt_pass * make_pass_shorten_branches(gcc::context *ctxt)
Definition final.cc:4383
gimple_opt_pass * make_pass_local_pure_const(gcc::context *ctxt)
Definition ipa-pure-const.cc:2261
ipa_opt_pass_d * make_pass_ipa_cdtor_merge(gcc::context *ctxt)
Definition ipa.cc:1364
rtl_opt_pass * make_pass_loop2(gcc::context *ctxt)
Definition loop-init.cc:387
rtl_opt_pass * make_pass_cleanup_barriers(gcc::context *ctxt)
Definition jump.cc:195
gimple_opt_pass * make_pass_crc_optimization(gcc::context *ctxt)
Definition gimple-crc-optimization.cc:1394
rtl_opt_pass * make_pass_sms(gcc::context *ctxt)
Definition modulo-sched.cc:3377
gimple_opt_pass * make_pass_harden_compares(gcc::context *ctxt)
Definition gimple-harden-conditionals.cc:642
rtl_opt_pass * make_pass_machine_reorg(gcc::context *ctxt)
Definition reorg.cc:3933
rtl_opt_pass * make_pass_combine(gcc::context *ctxt)
Definition combine.cc:15235
gimple_opt_pass * make_pass_walloca(gcc::context *ctxt)
Definition gimple-ssa-warn-alloca.cc:390
gimple_opt_pass * make_pass_convert_switch(gcc::context *ctxt)
Definition tree-switch-conversion.cc:3077
void pass_fini_dump_file(opt_pass *)
Definition passes.cc:2264
gimple_opt_pass * make_pass_update_address_taken(gcc::context *ctxt)
Definition tree-ssa.cc:2327
gimple_opt_pass * make_pass_ch(gcc::context *ctxt)
Definition tree-ssa-loop-ch.cc:1260
gimple_opt_pass * make_pass_dce(gcc::context *ctxt)
Definition tree-ssa-dce.cc:2240
gimple_opt_pass * make_pass_warn_unused_result(gcc::context *ctxt)
Definition tree-cfg.cc:9999
rtl_opt_pass * make_pass_stack_regs(gcc::context *ctxt)
Definition reg-stack.cc:3486
simple_ipa_opt_pass * make_pass_ipa_free_lang_data(gcc::context *ctxt)
Definition ipa-free-lang-data.cc:1196
rtl_opt_pass * make_pass_rtl_dse2(gcc::context *ctxt)
Definition dse.cc:3850
rtl_opt_pass * make_pass_ud_rtl_dce(gcc::context *ctxt)
Definition dce.cc:867
gimple_opt_pass * make_pass_asan_O0(gcc::context *ctxt)
Definition asan.cc:4440
gimple_opt_pass * make_pass_tracer(gcc::context *ctxt)
Definition tracer.cc:465
ipa_opt_pass_d * make_pass_ipa_odr(gcc::context *ctxt)
Definition ipa-devirt.cc:4415
rtl_opt_pass * make_pass_reload(gcc::context *ctxt)
Definition ira.cc:6184
rtl_opt_pass * make_pass_branch_prob(gcc::context *ctxt)
gimple_opt_pass * make_pass_tail_calls(gcc::context *ctxt)
Definition tree-tailcall.cc:1471
gimple_opt_pass * make_pass_early_warn_uninitialized(gcc::context *ctxt)
Definition tree-ssa-uninit.cc:1553
rtl_opt_pass * make_pass_rtl_seqabstr(gcc::context *ctxt)
gimple_opt_pass * make_pass_check_data_deps(gcc::context *ctxt)
gimple_opt_pass * make_pass_early_tree_profile(gcc::context *ctxt)
gimple_opt_pass * make_pass_pre_slp_scalar_cleanup(gcc::context *ctxt)
Definition passes.cc:790
rtl_opt_pass * make_pass_lower_subreg2(gcc::context *ctxt)
Definition lower-subreg.cc:1861
rtl_opt_pass * make_pass_duplicate_computed_gotos(gcc::context *ctxt)
Definition bb-reorder.cc:2844
void ipa_read_summaries(void)
Definition passes.cc:3042
simple_ipa_opt_pass * make_pass_ipa_oacc_kernels(gcc::context *ctxt)
Definition tree-ssa-loop.cc:275
rtl_opt_pass * make_pass_fast_rtl_dce(gcc::context *ctxt)
Definition dce.cc:1301
void execute_all_ipa_stmt_fixups(struct cgraph_node *, gimple **)
Definition passes.cc:3174
simple_ipa_opt_pass * make_pass_omp_simd_clone(gcc::context *ctxt)
Definition omp-simd-clone.cc:2160
gimple_opt_pass * make_pass_build_cgraph_edges(gcc::context *ctxt)
Definition cgraphbuild.cc:380
gimple_opt_pass * make_pass_warn_printf(gcc::context *ctxt)
Definition tree-ssa-strlen.cc:6103
rtl_opt_pass * make_pass_compute_alignments(gcc::context *ctxt)
Definition final.cc:806
rtl_opt_pass * make_pass_dwarf2_frame(gcc::context *ctxt)
Definition dwarf2cfi.cc:3821
gimple_opt_pass * make_pass_call_cdce(gcc::context *ctxt)
Definition tree-call-cdce.cc:1336
gimple_opt_pass * make_pass_vectorize(gcc::context *ctxt)
Definition tree-vectorizer.cc:1436
rtl_opt_pass * make_pass_reginfo_init(gcc::context *ctxt)
Definition reginfo.cc:978
gimple_opt_pass * make_pass_copy_prop(gcc::context *ctxt)
Definition tree-ssa-copy.cc:630
gimple_opt_pass * make_pass_rebuild_frequencies(gcc::context *ctxt)
Definition predict.cc:4587
gimple_opt_pass * make_pass_cleanup_cfg_post_optimizing(gcc::context *ctxt)
Definition tree-cfgcleanup.cc:1599
gimple_opt_pass * make_pass_complete_unroll(gcc::context *ctxt)
Definition tree-ssa-loop-ivcanon.cc:1739
ipa_opt_pass_d * make_pass_ipa_modref(gcc::context *ctxt)
Definition ipa-modref.cc:4274
rtl_opt_pass * make_pass_df_finish(gcc::context *ctxt)
Definition df-core.cc:859
gimple_opt_pass * make_pass_lower_cf(gcc::context *ctxt)
Definition gimple-low.cc:214
gimple_opt_pass * make_pass_expand_omp(gcc::context *ctxt)
Definition omp-expand.cc:10982
gimple_opt_pass * make_pass_predcom(gcc::context *ctxt)
Definition tree-predcom.cc:3593
ipa_opt_pass_d * make_pass_analyzer(gcc::context *ctxt)
Definition analyzer-pass.cc:99
rtl_opt_pass * make_pass_rtl_fwprop_addr(gcc::context *ctxt)
Definition fwprop.cc:1063
gimple_opt_pass * make_pass_lower_complex_O0(gcc::context *ctxt)
Definition tree-complex.cc:2116
gimple_opt_pass * make_pass_omp_oacc_neuter_broadcast(gcc::context *ctxt)
Definition omp-oacc-neuter-broadcast.cc:1974
rtl_opt_pass * make_pass_rtl_ifcvt(gcc::context *ctxt)
Definition ifcvt.cc:6194
gimple_opt_pass * make_pass_fold_builtins(gcc::context *ctxt)
Definition tree-ssa-ccp.cc:4510
rtl_opt_pass * make_pass_leaf_regs(gcc::context *ctxt)
Definition function.cc:6608
gimple_opt_pass * make_pass_build_ealias(gcc::context *ctxt)
Definition tree-ssa-structalias.cc:8214
gimple_opt_pass * make_pass_split_functions(gcc::context *ctxt)
Definition ipa-split.cc:1950
gimple_opt_pass * make_pass_cse_reciprocals(gcc::context *ctxt)
Definition tree-ssa-math-opts.cc:1110
gimple_opt_pass * make_pass_loop_jam(gcc::context *ctxt)
Definition gimple-loop-jam.cc:693
gimple_opt_pass * make_pass_tree_loop(gcc::context *ctxt)
Definition tree-ssa-loop.cc:143
ipa_opt_pass_d * make_pass_ipa_cp(gcc::context *ctxt)
Definition ipa-cp.cc:6542
gimple_opt_pass * make_pass_diagnose_omp_blocks(gcc::context *ctxt)
Definition omp-low.cc:15456
gimple_opt_pass * make_pass_post_ipa_warn(gcc::context *ctxt)
Definition tree-ssa-ccp.cc:4685
gimple_opt_pass * make_pass_pre(gcc::context *ctxt)
Definition tree-ssa-pre.cc:4537
gimple_opt_pass * make_pass_iv_optimize(gcc::context *ctxt)
Definition tree-ssa-loop.cc:466
rtl_opt_pass * make_pass_cse_after_global_opts(gcc::context *ctxt)
Definition cse.cc:7773
ipa_opt_pass_d * make_pass_ipa_reference(gcc::context *ctxt)
Definition ipa-reference.cc:1316
gimple_opt_pass * make_pass_adjust_alignment(gcc::context *ctxt)
Definition adjust-alignment.cc:82
gimple_opt_pass * make_pass_omp_device_lower(gcc::context *ctxt)
Definition omp-offload.cc:2913
void disable_pass(const char *)
Definition passes.cc:1244
rtl_opt_pass * make_pass_variable_tracking(gcc::context *ctxt)
Definition var-tracking.cc:10624
rtl_opt_pass * make_pass_rtl_store_motion(gcc::context *ctxt)
Definition store-motion.cc:1266
bool function_called_by_processed_nodes_p(void)
Definition passes.cc:3224
rtl_opt_pass * make_pass_set_nothrow_function_flags(gcc::context *ctxt)
Definition except.cc:2066
gimple_opt_pass * make_pass_ccp(gcc::context *ctxt)
Definition tree-ssa-ccp.cc:3077
gimple_opt_pass * make_pass_tree_unswitch(gcc::context *ctxt)
Definition tree-ssa-loop-unswitch.cc:1674
simple_ipa_opt_pass * make_pass_local_optimization_passes(gcc::context *ctxt)
Definition passes.cc:494
gimple_opt_pass * make_pass_lower_vector_ssa(gcc::context *ctxt)
Definition tree-vect-generic.cc:2375
gimple_opt_pass * make_pass_profile(gcc::context *ctxt)
Definition predict.cc:4286
gimple_opt_pass * make_pass_tail_recursion(gcc::context *ctxt)
Definition tree-tailcall.cc:1432
gimple_opt_pass * make_pass_omp_target_link(gcc::context *ctxt)
Definition omp-offload.cc:3015
rtl_opt_pass * make_pass_final(gcc::context *ctxt)
Definition final.cc:4336
rtl_opt_pass * make_pass_split_after_reload(gcc::context *ctxt)
Definition recog.cc:4561
gimple_opt_pass * make_pass_thread_jumps_full(gcc::context *ctxt)
Definition tree-ssa-threadbackward.cc:1072
gimple_opt_pass * make_pass_linterchange(gcc::context *ctxt)
Definition gimple-loop-interchange.cc:2122
gimple_opt_pass * make_pass_if_to_switch(gcc::context *ctxt)
Definition gimple-if-to-switch.cc:591
gimple_opt_pass * make_pass_uncprop(gcc::context *ctxt)
Definition tree-ssa-uncprop.cc:504
rtl_opt_pass * make_pass_late_thread_prologue_and_epilogue(gcc::context *ctxt)
Definition function.cc:6764
gimple_opt_pass * make_pass_lower_tm(gcc::context *ctxt)
Definition trans-mem.cc:1870
void execute_ipa_summary_passes(ipa_opt_pass_d *)
Definition passes.cc:2289
pass_positioning_ops
Definition tree-pass.h:324
@ PASS_POS_REPLACE
Definition tree-pass.h:327
@ PASS_POS_INSERT_BEFORE
Definition tree-pass.h:326
@ PASS_POS_INSERT_AFTER
Definition tree-pass.h:325
gimple_opt_pass * make_pass_tm_memopt(gcc::context *ctxt)
Definition trans-mem.cc:4118
gimple_opt_pass * make_pass_early_inline(gcc::context *ctxt)
Definition ipa-inline.cc:3254
gimple_opt_pass * make_pass_graphite_transforms(gcc::context *ctxt)
Definition graphite.cc:628
rtl_opt_pass * make_pass_stack_adjustments(gcc::context *ctxt)
Definition combine-stack-adj.cc:851
gimple_opt_pass * make_pass_scev_cprop(gcc::context *ctxt)
Definition tree-ssa-loop.cc:418
gimple_opt_pass * make_pass_warn_restrict(gcc::context *ctxt)
Definition gimple-ssa-warn-restrict.cc:2100
rtl_opt_pass * make_pass_rtl_move_loop_invariants(gcc::context *ctxt)
Definition loop-init.cc:539
simple_ipa_opt_pass * make_pass_ipa_oacc(gcc::context *ctxt)
Definition tree-ssa-loop.cc:241
simple_ipa_opt_pass * make_pass_ipa_remove_symbols(gcc::context *ctxt)
Definition passes.cc:500
gimple_opt_pass * make_pass_lower_switch_O0(gcc::context *ctxt)
Definition tree-switch-conversion.cc:3176
gimple_opt_pass * make_pass_early_thread_jumps(gcc::context *ctxt)
Definition tree-ssa-threadbackward.cc:1078
rtl_opt_pass * make_pass_inc_dec(gcc::context *ctxt)
Definition auto-inc-dec.cc:1749
rtl_opt_pass * make_pass_early_remat(gcc::context *ctxt)
Definition early-remat.cc:2635
rtl_opt_pass * make_pass_rtl_fwprop(gcc::context *ctxt)
Definition fwprop.cc:1027
gimple_opt_pass * make_pass_fix_loops(gcc::context *ctxt)
Definition tree-ssa-loop.cc:88
gimple_opt_pass * make_pass_lower_vector(gcc::context *ctxt)
Definition tree-vect-generic.cc:2332
gimple_opt_pass * make_pass_split_crit_edges(gcc::context *ctxt)
Definition tree-cfg.cc:9527
simple_ipa_opt_pass * make_pass_ipa_strub_mode(gcc::context *ctxt)
Definition ipa-strub.cc:2678
simple_ipa_opt_pass * make_pass_ipa_strub(gcc::context *ctxt)
Definition ipa-strub.cc:3628
void ipa_read_optimization_summaries(void)
Definition passes.cc:3096
simple_ipa_opt_pass * make_pass_ipa_auto_profile(gcc::context *ctxt)
Definition auto-profile.cc:1774
gimple_opt_pass * make_pass_backprop(gcc::context *ctxt)
Definition gimple-ssa-backprop.cc:975
void execute_pass_list(function *, opt_pass *)
Definition passes.cc:2776
rtl_opt_pass * make_pass_jump2(gcc::context *ctxt)
Definition cfgcleanup.cc:3336
rtl_opt_pass * make_pass_match_asm_constraints(gcc::context *ctxt)
Definition function.cc:7106
gimple_opt_pass * make_pass_graphite(gcc::context *ctxt)
Definition graphite.cc:589
simple_ipa_opt_pass * make_pass_target_clone(gcc::context *ctxt)
Definition multiple_target.cc:565
gimple_opt_pass * make_pass_lower_eh(gcc::context *ctxt)
Definition tree-eh.cc:2231
gimple_opt_pass * make_pass_warn_function_noreturn(gcc::context *ctxt)
Definition ipa-pure-const.cc:2308
gimple_opt_pass * make_pass_cd_dce(gcc::context *ctxt)
Definition tree-ssa-dce.cc:2279
gimple_opt_pass * make_pass_rebuild_cgraph_edges(gcc::context *ctxt)
Definition cgraphbuild.cc:513
gimple_opt_pass * make_pass_array_bounds(gcc::context *ctxt)
Definition gimple-array-bounds.cc:934
gimple_opt_pass * make_pass_omp_oacc_kernels_decompose(gcc::context *ctxt)
Definition omp-oacc-kernels-decompose.cc:1635
gimple_opt_pass * make_pass_cleanup_eh(gcc::context *ctxt)
Definition tree-eh.cc:4947
gimple_opt_pass * make_pass_ch_vect(gcc::context *ctxt)
Definition tree-ssa-loop-ch.cc:1254
rtl_opt_pass * make_pass_expand(gcc::context *ctxt)
Definition cfgexpand.cc:7408
gimple_opt_pass * make_pass_tree_loop_init(gcc::context *ctxt)
Definition tree-ssa-loop.cc:367
rtl_opt_pass * make_pass_cse2(gcc::context *ctxt)
Definition cse.cc:7697
rtl_opt_pass * make_pass_df_initialize_no_opt(gcc::context *ctxt)
Definition df-core.cc:790
rtl_opt_pass * make_pass_postreload_cse(gcc::context *ctxt)
Definition postreload.cc:2474
gimple_opt_pass * make_pass_fast_vrp(gcc::context *ctxt)
Definition tree-vrp.cc:1370
rtl_opt_pass * make_pass_sched2(gcc::context *ctxt)
Definition sched-rgn.cc:3917
ipa_opt_pass_d * make_pass_ipa_pure_const(gcc::context *ctxt)
Definition ipa-pure-const.cc:2140
rtl_opt_pass * make_pass_df_initialize_opt(gcc::context *ctxt)
Definition df-core.cc:750
rtl_opt_pass * make_pass_outof_cfg_layout_mode(gcc::context *ctxt)
Definition cfgrtl.cc:3805
gimple_opt_pass * make_pass_slp_vectorize(gcc::context *ctxt)
Definition tree-vectorizer.cc:1583
gimple_opt_pass * make_pass_object_sizes(gcc::context *ctxt)
Definition tree-object-size.cc:2349
simple_ipa_opt_pass * make_pass_ipa_free_fn_summary(gcc::context *ctxt)
Definition ipa-fnsummary.cc:5228
rtl_opt_pass * make_pass_rtl_loop_done(gcc::context *ctxt)
Definition loop-init.cc:495
rtl_opt_pass * make_pass_partition_blocks(gcc::context *ctxt)
Definition bb-reorder.cc:3072
gimple_opt_pass * make_pass_iv_canon(gcc::context *ctxt)
Definition tree-ssa-loop-ivcanon.cc:1682
void ipa_write_summaries(void)
Definition passes.cc:2868
gimple_opt_pass * make_pass_diagnose_tm_blocks(gcc::context *ctxt)
Definition trans-mem.cc:881
rtl_opt_pass * make_pass_peephole2(gcc::context *ctxt)
Definition recog.cc:4471
bool pass_init_dump_file(opt_pass *)
Definition passes.cc:2230
gimple_opt_pass * make_pass_lower_resx(gcc::context *ctxt)
Definition tree-eh.cc:3591
rtl_opt_pass * make_pass_cse(gcc::context *ctxt)
Definition cse.cc:7619
gimple_opt_pass * make_pass_optimize_bswap(gcc::context *ctxt)
Definition gimple-ssa-store-merging.cc:1690
gimple_opt_pass * make_pass_cselim(gcc::context *ctxt)
Definition tree-ssa-phiopt.cc:4645
rtl_opt_pass * make_pass_rtl_unroll_loops(gcc::context *ctxt)
Definition loop-init.cc:600
rtl_opt_pass * make_pass_rtl_hoist(gcc::context *ctxt)
Definition gcse.cc:4418
gimple_opt_pass * make_pass_expand_omp_ssa(gcc::context *ctxt)
Definition omp-expand.cc:11028
void ipa_write_optimization_summaries(struct lto_symtab_encoder_d *, bool)
gimple_opt_pass * make_pass_sanopt(gcc::context *ctxt)
Definition sanopt.cc:1433
ipa_opt_pass_d * make_pass_ipa_fn_summary(gcc::context *ctxt)
Definition ipa-fnsummary.cc:5272
rtl_opt_pass * make_pass_instantiate_virtual_regs(gcc::context *ctxt)
Definition function.cc:2049
gimple_opt_pass * make_pass_assumptions(gcc::context *ctxt)
Definition tree-assume.cc:461
gimple_opt_pass * make_pass_coroutine_early_expand_ifns(gcc::context *ctxt)
Definition coroutine-passes.cc:513
rtl_opt_pass * make_pass_thread_prologue_and_epilogue(gcc::context *ctxt)
Definition function.cc:6758
gimple_opt_pass * make_pass_oacc_kernels(gcc::context *ctxt)
Definition tree-ssa-loop.cc:198
gimple_opt_pass * make_pass_nrv(gcc::context *ctxt)
Definition tree-nrv.cc:292
void enable_pass(const char *)
Definition passes.cc:1236
rtl_opt_pass * make_pass_sched_fusion(gcc::context *ctxt)
Definition sched-rgn.cc:3969
gimple_opt_pass * make_pass_expand_pow(gcc::context *ctxt)
Definition tree-ssa-math-opts.cc:2424
gimple_opt_pass * make_pass_remove_cgraph_callee_edges(gcc::context *ctxt)
Definition cgraphbuild.cc:561