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-2026 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. */
234
235#define PROP_gimple \
236 (PROP_gimple_any | PROP_gimple_lcf | PROP_gimple_leh | PROP_gimple_lomp)
237
238/* To-do flags. */
239/* Note (1ul << 31) is reserved for TODO_verify_il. */
240#define TODO_do_not_ggc_collect (1 << 1)
241#define TODO_cleanup_cfg (1 << 5)
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)
256
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.
267
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)
291
292/* Call df_verify at the end of the pass if checking is enabled. */
293#define TODO_df_verify (1 << 18)
294
295/* Internally used for the first instance of a pass. */
296#define TODO_mark_first_instance (1 << 19)
297
298/* Rebuild aliasing info. */
299#define TODO_rebuild_alias (1 << 20)
300
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/* (1ul << 31) is reserved for TODO_verify_il. */
312
313/* Internally used in execute_function_todo(). */
314#define TODO_update_ssa_any \
315 (TODO_update_ssa \
316 | TODO_update_ssa_no_phi \
317 | TODO_update_ssa_full_phi \
318 | TODO_update_ssa_only_virtuals)
319
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)
325
326/* Register pass info. */
327
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. */
333};
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
421extern unsigned int tail_merge_optimize (bool);
484 *ctxt);
513
514/* IPA Passes */
522 (gcc::context *ctxt);
523
527
532 *ctxt);
534 *ctxt);
557
559 *ctxt);
562
585
588
595
625 *ctxt);
632 *ctxt);
634 *ctxt);
675 *ctxt);
677 *ctxt);
678
679/* Current optimization pass. */
680extern opt_pass *current_pass;
681
682extern bool execute_one_pass (opt_pass *);
683extern void execute_pass_list (function *, opt_pass *);
684extern void execute_ipa_pass_list (opt_pass *);
686extern void execute_all_ipa_transforms (bool);
687extern void execute_all_ipa_stmt_fixups (struct cgraph_node *, gimple **);
688extern bool pass_init_dump_file (opt_pass *);
689extern void pass_fini_dump_file (opt_pass *);
690extern void emergency_dump_function (void);
691
692extern void print_current_pass (FILE *);
693extern void debug_pass (void);
694extern void ipa_write_summaries (void);
696 bool);
697extern void ipa_read_summaries (void);
698extern void ipa_read_optimization_summaries (void);
699extern void register_one_dump_file (opt_pass *);
700extern bool function_called_by_processed_nodes_p (void);
701
702/* Declare for plugins. */
703extern void do_per_function_toporder (void (*) (function *, void *), void *);
704
705extern void disable_pass (const char *);
706extern void enable_pass (const char *);
707extern void dump_passes (void);
708
709#endif /* GCC_TREE_PASS_H */
gimple_opt_pass * make_pass_adjust_alignment(gcc::context *ctxt)
Definition adjust-alignment.cc:82
gimple_opt_pass * make_pass_asan(gcc::context *ctxt)
Definition asan.cc:4511
gimple_opt_pass * make_pass_asan_O0(gcc::context *ctxt)
Definition asan.cc:4553
ipa_opt_pass_d * make_pass_ipa_asm_wpa(gcc::context *ctxt)
Definition asm-toplevel.cc:256
ipa_opt_pass_d * make_pass_ipa_asm_lgen(gcc::context *ctxt)
Definition asm-toplevel.cc:250
rtl_opt_pass * make_pass_inc_dec(gcc::context *ctxt)
Definition auto-inc-dec.cc:1748
simple_ipa_opt_pass * make_pass_ipa_auto_profile_offline(gcc::context *ctxt)
Definition auto-profile.cc:4907
simple_ipa_opt_pass * make_pass_ipa_auto_profile(gcc::context *ctxt)
Definition auto-profile.cc:4861
rtl_opt_pass * make_pass_rtl_avoid_store_forwarding(gcc::context *ctxt)
Definition avoid-store-forwarding.cc:780
rtl_opt_pass * make_pass_reorder_blocks(gcc::context *ctxt)
Definition bb-reorder.cc:2704
rtl_opt_pass * make_pass_duplicate_computed_gotos(gcc::context *ctxt)
Definition bb-reorder.cc:2854
rtl_opt_pass * make_pass_partition_blocks(gcc::context *ctxt)
Definition bb-reorder.cc:3082
rtl_opt_pass * make_pass_jump_after_combine(gcc::context *ctxt)
Definition cfgcleanup.cc:3298
rtl_opt_pass * make_pass_jump(gcc::context *ctxt)
Definition cfgcleanup.cc:3250
rtl_opt_pass * make_pass_jump2(gcc::context *ctxt)
Definition cfgcleanup.cc:3337
rtl_opt_pass * make_pass_expand(gcc::context *ctxt)
Definition cfgexpand.cc:7554
rtl_opt_pass * make_pass_free_cfg(gcc::context *ctxt)
Definition cfgrtl.cc:509
rtl_opt_pass * make_pass_into_cfg_layout_mode(gcc::context *ctxt)
Definition cfgrtl.cc:3772
rtl_opt_pass * make_pass_outof_cfg_layout_mode(gcc::context *ctxt)
Definition cfgrtl.cc:3821
gimple_opt_pass * make_pass_build_cgraph_edges(gcc::context *ctxt)
Definition cgraphbuild.cc:397
gimple_opt_pass * make_pass_rebuild_cgraph_edges(gcc::context *ctxt)
Definition cgraphbuild.cc:530
gimple_opt_pass * make_pass_remove_cgraph_callee_edges(gcc::context *ctxt)
Definition cgraphbuild.cc:578
Definition genoutput.cc:151
Definition context.h:33
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
unsigned int(*) function_transform(struct cgraph_node *)
Definition tree-pass.h:167
void(*) generate_summary(void)
Definition tree-pass.h:146
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_optimization_summary(void)
Definition tree-pass.h:158
unsigned int function_transform_todo_flags_start
Definition tree-pass.h:166
void(*) read_summary(void)
Definition tree-pass.h:152
void(*) variable_transform(varpool_node *)
Definition tree-pass.h:168
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:94
virtual unsigned int execute(function *fun)
Definition passes.cc:107
opt_pass * next
Definition tree-pass.h:106
virtual opt_pass * clone()
Definition passes.cc:88
opt_pass(const pass_data &, gcc::context *)
Definition passes.cc:112
virtual bool gate(function *fun)
Definition passes.cc:101
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
rtl_opt_pass * make_pass_stack_adjustments(gcc::context *ctxt)
Definition combine-stack-adj.cc:851
rtl_opt_pass * make_pass_combine(gcc::context *ctxt)
Definition combine.cc:15243
rtl_opt_pass * make_pass_compare_elim_after_reload(gcc::context *ctxt)
Definition compare-elim.cc:978
gimple_opt_pass * make_pass_coroutine_lower_builtins(gcc::context *ctxt)
Definition coroutine-passes.cc:229
gimple_opt_pass * make_pass_coroutine_early_expand_ifns(gcc::context *ctxt)
Definition coroutine-passes.cc:513
rtl_opt_pass * make_pass_rtl_cprop(gcc::context *ctxt)
Definition cprop.cc:2000
rtl_opt_pass * make_pass_cse_after_global_opts(gcc::context *ctxt)
Definition cse.cc:8093
rtl_opt_pass * make_pass_cse2(gcc::context *ctxt)
Definition cse.cc:8017
rtl_opt_pass * make_pass_cse(gcc::context *ctxt)
Definition cse.cc:7939
rtl_opt_pass * make_pass_ud_rtl_dce(gcc::context *ctxt)
Definition dce.cc:867
rtl_opt_pass * make_pass_fast_rtl_dce(gcc::context *ctxt)
Definition dce.cc:1301
rtl_opt_pass * make_pass_dep_fusion(gcc::context *ctxt)
Definition dep-fusion.cc:149
rtl_opt_pass * make_pass_df_finish(gcc::context *ctxt)
Definition df-core.cc:859
rtl_opt_pass * make_pass_df_initialize_no_opt(gcc::context *ctxt)
Definition df-core.cc:790
rtl_opt_pass * make_pass_df_initialize_opt(gcc::context *ctxt)
Definition df-core.cc:750
rtl_opt_pass * make_pass_rtl_dse1(gcc::context *ctxt)
Definition dse.cc:3807
rtl_opt_pass * make_pass_rtl_dse2(gcc::context *ctxt)
Definition dse.cc:3850
enum optgroup_flag optgroup_flags_t
Definition dumpfile.h:277
rtl_opt_pass * make_pass_dwarf2_frame(gcc::context *ctxt)
Definition dwarf2cfi.cc:3821
rtl_opt_pass * make_pass_early_remat(gcc::context *ctxt)
Definition early-remat.cc:2635
rtl_opt_pass * make_pass_convert_to_eh_region_ranges(gcc::context *ctxt)
Definition except.cc:2785
rtl_opt_pass * make_pass_set_nothrow_function_flags(gcc::context *ctxt)
Definition except.cc:2073
rtl_opt_pass * make_pass_ext_dce(gcc::context *ctxt)
Definition ext-dce.cc:1835
rtl_opt_pass * make_pass_clean_state(gcc::context *ctxt)
Definition final.cc:4568
rtl_opt_pass * make_pass_shorten_branches(gcc::context *ctxt)
Definition final.cc:4392
rtl_opt_pass * make_pass_compute_alignments(gcc::context *ctxt)
Definition final.cc:801
rtl_opt_pass * make_pass_final(gcc::context *ctxt)
Definition final.cc:4345
rtl_opt_pass * make_pass_fold_mem_offsets(gcc::context *ctxt)
Definition fold-mem-offsets.cc:1416
rtl_opt_pass * make_pass_zero_call_used_regs(gcc::context *ctxt)
Definition function.cc:6850
rtl_opt_pass * make_pass_leaf_regs(gcc::context *ctxt)
Definition function.cc:6604
rtl_opt_pass * make_pass_late_thread_prologue_and_epilogue(gcc::context *ctxt)
Definition function.cc:6760
rtl_opt_pass * make_pass_match_asm_constraints(gcc::context *ctxt)
Definition function.cc:7217
rtl_opt_pass * make_pass_instantiate_virtual_regs(gcc::context *ctxt)
Definition function.cc:2040
rtl_opt_pass * make_pass_thread_prologue_and_epilogue(gcc::context *ctxt)
Definition function.cc:6754
rtl_opt_pass * make_pass_rtl_fwprop_addr(gcc::context *ctxt)
Definition fwprop.cc:1077
rtl_opt_pass * make_pass_rtl_fwprop(gcc::context *ctxt)
Definition fwprop.cc:1041
rtl_opt_pass * make_pass_hardreg_pre(gcc::context *ctxt)
Definition gcse.cc:4373
rtl_opt_pass * make_pass_rtl_pre(gcc::context *ctxt)
Definition gcse.cc:4323
rtl_opt_pass * make_pass_rtl_hoist(gcc::context *ctxt)
Definition gcse.cc:4424
gimple_opt_pass * make_pass_array_bounds(gcc::context *ctxt)
Definition gimple-array-bounds.cc:940
gimple_opt_pass * make_pass_crc_optimization(gcc::context *ctxt)
Definition gimple-crc-optimization.cc:1405
gimple_opt_pass * make_pass_harden_conditional_branches(gcc::context *ctxt)
Definition gimple-harden-conditionals.cc:380
gimple_opt_pass * make_pass_harden_compares(gcc::context *ctxt)
Definition gimple-harden-conditionals.cc:640
gimple_opt_pass * make_pass_harden_control_flow_redundancy(gcc::context *ctxt)
Definition gimple-harden-control-flow.cc:1558
gimple_opt_pass * make_pass_if_to_switch(gcc::context *ctxt)
Definition gimple-if-to-switch.cc:591
gimple_opt_pass * make_pass_gimple_isel(gcc::context *ctxt)
Definition gimple-isel.cc:1410
gimple_opt_pass * make_pass_laddress(gcc::context *ctxt)
Definition gimple-laddress.cc:135
gimple_opt_pass * make_pass_linterchange(gcc::context *ctxt)
Definition gimple-loop-interchange.cc:2122
gimple_opt_pass * make_pass_loop_jam(gcc::context *ctxt)
Definition gimple-loop-jam.cc:694
gimple_opt_pass * make_pass_loop_versioning(gcc::context *ctxt)
Definition gimple-loop-versioning.cc:1824
gimple_opt_pass * make_pass_lower_cf(gcc::context *ctxt)
Definition gimple-low.cc:251
gimple_opt_pass * make_pass_lower_bitint_O0(gcc::context *ctxt)
Definition gimple-lower-bitint.cc:8747
gimple_opt_pass * make_pass_lower_bitint(gcc::context *ctxt)
Definition gimple-lower-bitint.cc:8701
gimple_opt_pass * make_pass_backprop(gcc::context *ctxt)
Definition gimple-ssa-backprop.cc:1190
gimple_opt_pass * make_pass_isolate_erroneous_paths(gcc::context *ctxt)
Definition gimple-ssa-isolate-paths.cc:1055
gimple_opt_pass * make_pass_warn_nonnull_compare(gcc::context *ctxt)
Definition gimple-ssa-nonnull-compare.cc:131
gimple_opt_pass * make_pass_sccopy(gcc::context *ctxt)
Definition gimple-ssa-sccopy.cc:703
gimple_opt_pass * make_pass_store_merging(gcc::context *ctxt)
Definition gimple-ssa-store-merging.cc:5699
gimple_opt_pass * make_pass_optimize_bswap(gcc::context *ctxt)
Definition gimple-ssa-store-merging.cc:1771
gimple_opt_pass * make_pass_strength_reduction(gcc::context *ctxt)
Definition gimple-ssa-strength-reduction.cc:4159
gimple_opt_pass * make_pass_warn_access(gcc::context *ctxt)
Definition gimple-ssa-warn-access.cc:4909
gimple_opt_pass * make_pass_walloca(gcc::context *ctxt)
Definition gimple-ssa-warn-alloca.cc:390
gimple_opt_pass * make_pass_warn_restrict(gcc::context *ctxt)
Definition gimple-ssa-warn-restrict.cc:2117
gimple_opt_pass * make_pass_warn_recursion(gcc::context *ctxt)
Definition gimple-warn-recursion.cc:230
gimple_opt_pass * make_pass_graphite_transforms(gcc::context *ctxt)
Definition graphite.cc:628
gimple_opt_pass * make_pass_graphite(gcc::context *ctxt)
Definition graphite.cc:589
rtl_opt_pass * make_pass_if_after_reload(gcc::context *ctxt)
Definition ifcvt.cc:7008
rtl_opt_pass * make_pass_if_after_combine(gcc::context *ctxt)
Definition ifcvt.cc:7001
rtl_opt_pass * make_pass_rtl_ifcvt(gcc::context *ctxt)
Definition ifcvt.cc:6995
rtl_opt_pass * make_pass_initialize_regs(gcc::context *ctxt)
Definition init-regs.cc:167
ipa_opt_pass_d * make_pass_ipa_comdats(gcc::context *ctxt)
Definition ipa-comdats.cc:438
ipa_opt_pass_d * make_pass_ipa_cp(gcc::context *ctxt)
Definition ipa-cp.cc:6859
ipa_opt_pass_d * make_pass_ipa_devirt(gcc::context *ctxt)
Definition ipa-devirt.cc:4209
ipa_opt_pass_d * make_pass_ipa_odr(gcc::context *ctxt)
Definition ipa-devirt.cc:4596
gimple_opt_pass * make_pass_local_fn_summary(gcc::context *ctxt)
Definition ipa-fnsummary.cc:5241
simple_ipa_opt_pass * make_pass_ipa_free_fn_summary(gcc::context *ctxt)
Definition ipa-fnsummary.cc:5300
ipa_opt_pass_d * make_pass_ipa_fn_summary(gcc::context *ctxt)
Definition ipa-fnsummary.cc:5344
simple_ipa_opt_pass * make_pass_ipa_free_lang_data(gcc::context *ctxt)
Definition ipa-free-lang-data.cc:1226
ipa_opt_pass_d * make_pass_ipa_icf(gcc::context *ctxt)
Definition ipa-icf.cc:3726
ipa_opt_pass_d * make_pass_ipa_inline(gcc::context *ctxt)
Definition ipa-inline.cc:3452
gimple_opt_pass * make_pass_early_inline(gcc::context *ctxt)
Definition ipa-inline.cc:3408
ipa_opt_pass_d * make_pass_ipa_locality_cloning(gcc::context *ctxt)
Definition ipa-locality-cloning.cc:1528
gimple_opt_pass * make_pass_modref(gcc::context *ctxt)
Definition ipa-modref.cc:4268
ipa_opt_pass_d * make_pass_ipa_modref(gcc::context *ctxt)
Definition ipa-modref.cc:4274
ipa_opt_pass_d * make_pass_ipa_profile(gcc::context *ctxt)
Definition ipa-profile.cc:1081
gimple_opt_pass * make_pass_nothrow(gcc::context *ctxt)
Definition ipa-pure-const.cc:2412
gimple_opt_pass * make_pass_local_pure_const(gcc::context *ctxt)
Definition ipa-pure-const.cc:2258
gimple_opt_pass * make_pass_warn_function_noreturn(gcc::context *ctxt)
Definition ipa-pure-const.cc:2305
ipa_opt_pass_d * make_pass_ipa_pure_const(gcc::context *ctxt)
Definition ipa-pure-const.cc:2137
ipa_opt_pass_d * make_pass_ipa_reference(gcc::context *ctxt)
Definition ipa-reference.cc:1316
gimple_opt_pass * make_pass_feedback_split_functions(gcc::context *ctxt)
Definition ipa-split.cc:2079
gimple_opt_pass * make_pass_split_functions(gcc::context *ctxt)
Definition ipa-split.cc:2016
ipa_opt_pass_d * make_pass_ipa_sra(gcc::context *ctxt)
Definition ipa-sra.cc:4735
simple_ipa_opt_pass * make_pass_ipa_strub_mode(gcc::context *ctxt)
Definition ipa-strub.cc:2677
simple_ipa_opt_pass * make_pass_ipa_strub(gcc::context *ctxt)
Definition ipa-strub.cc:3625
ipa_opt_pass_d * make_pass_ipa_whole_program_visibility(gcc::context *ctxt)
Definition ipa-visibility.cc:1007
simple_ipa_opt_pass * make_pass_ipa_function_and_variable_visibility(gcc::context *ctxt)
Definition ipa-visibility.cc:1029
ipa_opt_pass_d * make_pass_ipa_single_use(gcc::context *ctxt)
Definition ipa.cc:1593
ipa_opt_pass_d * make_pass_ipa_cdtor_merge(gcc::context *ctxt)
Definition ipa.cc:1380
rtl_opt_pass * make_pass_ira(gcc::context *ctxt)
Definition ira.cc:6251
rtl_opt_pass * make_pass_reload(gcc::context *ctxt)
Definition ira.cc:6294
rtl_opt_pass * make_pass_cleanup_barriers(gcc::context *ctxt)
Definition jump.cc:195
rtl_opt_pass * make_pass_late_combine(gcc::context *ctxt)
Definition late-combine.cc:946
rtl_opt_pass * make_pass_rtl_doloop(gcc::context *ctxt)
Definition loop-init.cc:651
rtl_opt_pass * make_pass_rtl_loop_init(gcc::context *ctxt)
Definition loop-init.cc:439
rtl_opt_pass * make_pass_loop2(gcc::context *ctxt)
Definition loop-init.cc:387
rtl_opt_pass * make_pass_rtl_move_loop_invariants(gcc::context *ctxt)
Definition loop-init.cc:539
rtl_opt_pass * make_pass_rtl_loop_done(gcc::context *ctxt)
Definition loop-init.cc:495
rtl_opt_pass * make_pass_rtl_unroll_loops(gcc::context *ctxt)
Definition loop-init.cc:600
rtl_opt_pass * make_pass_lower_subreg3(gcc::context *ctxt)
Definition lower-subreg.cc:1920
rtl_opt_pass * make_pass_lower_subreg(gcc::context *ctxt)
Definition lower-subreg.cc:1833
rtl_opt_pass * make_pass_lower_subreg2(gcc::context *ctxt)
Definition lower-subreg.cc:1878
rtl_opt_pass * make_pass_mode_switching(gcc::context *ctxt)
Definition mode-switching.cc:1342
rtl_opt_pass * make_pass_sms(gcc::context *ctxt)
Definition modulo-sched.cc:3383
simple_ipa_opt_pass * make_pass_target_clone(gcc::context *ctxt)
Definition multiple_target.cc:661
Definition channels.h:26
gimple_opt_pass * make_pass_expand_omp(gcc::context *ctxt)
Definition omp-expand.cc:11253
gimple_opt_pass * make_pass_expand_omp_ssa(gcc::context *ctxt)
Definition omp-expand.cc:11299
gimple_opt_pass * make_pass_lower_omp(gcc::context *ctxt)
Definition omp-low.cc:15616
gimple_opt_pass * make_pass_diagnose_omp_blocks(gcc::context *ctxt)
Definition omp-low.cc:15946
gimple_opt_pass * make_pass_omp_oacc_kernels_decompose(gcc::context *ctxt)
Definition omp-oacc-kernels-decompose.cc:1635
gimple_opt_pass * make_pass_omp_oacc_neuter_broadcast(gcc::context *ctxt)
Definition omp-oacc-neuter-broadcast.cc:1974
gimple_opt_pass * make_pass_oacc_device_lower(gcc::context *ctxt)
Definition omp-offload.cc:2557
gimple_opt_pass * make_pass_oacc_loop_designation(gcc::context *ctxt)
Definition omp-offload.cc:2551
gimple_opt_pass * make_pass_omp_device_lower(gcc::context *ctxt)
Definition omp-offload.cc:2940
gimple_opt_pass * make_pass_omp_target_link(gcc::context *ctxt)
Definition omp-offload.cc:3042
simple_ipa_opt_pass * make_pass_omp_simd_clone(gcc::context *ctxt)
Definition omp-simd-clone.cc:2164
void disable_pass(const char *arg)
Definition passes.cc:1243
void dump_passes(void)
Definition passes.cc:1002
DEBUG_FUNCTION void debug_pass(void)
Definition passes.cc:152
simple_ipa_opt_pass * make_pass_build_ssa_passes(gcc::context *ctxt)
Definition passes.cc:487
void print_current_pass(FILE *file)
Definition passes.cc:140
bool pass_init_dump_file(opt_pass *pass)
Definition passes.cc:2210
void register_one_dump_file(opt_pass *pass)
Definition passes.cc:827
bool execute_one_pass(opt_pass *pass)
Definition passes.cc:2569
void execute_all_ipa_stmt_fixups(struct cgraph_node *node, gimple **stmts)
Definition passes.cc:3168
void execute_ipa_summary_passes(ipa_opt_pass_d *ipa_pass)
Definition passes.cc:2269
gimple_opt_pass * make_pass_pre_slp_scalar_cleanup(gcc::context *ctxt)
Definition passes.cc:789
void ipa_read_summaries(void)
Definition passes.cc:3036
bool function_called_by_processed_nodes_p(void)
Definition passes.cc:3218
opt_pass * current_pass
Definition passes.cc:78
simple_ipa_opt_pass * make_pass_local_optimization_passes(gcc::context *ctxt)
Definition passes.cc:493
void emergency_dump_function()
Definition passes.cc:1839
simple_ipa_opt_pass * make_pass_ipa_remove_symbols(gcc::context *ctxt)
Definition passes.cc:499
void execute_ipa_pass_list(opt_pass *pass)
Definition passes.cc:3099
void ipa_read_optimization_summaries(void)
Definition passes.cc:3090
void execute_pass_list(function *fn, opt_pass *pass)
Definition passes.cc:2765
void execute_all_ipa_transforms(bool do_not_collect)
Definition passes.cc:2352
void pass_fini_dump_file(opt_pass *pass)
Definition passes.cc:2244
void ipa_write_summaries(void)
Definition passes.cc:2857
void ipa_write_optimization_summaries(lto_symtab_encoder_t encoder, bool output_offload_tables_p)
Definition passes.cc:2963
void register_pass(struct register_pass_info *pass_info)
Definition passes.cc:1480
void do_per_function_toporder(void(*callback)(function *, void *data), void *data)
Definition passes.cc:1748
void enable_pass(const char *arg)
Definition passes.cc:1235
rtl_opt_pass * make_pass_gcse2(gcc::context *ctxt)
Definition postreload-gcse.cc:1467
rtl_opt_pass * make_pass_postreload_cse(gcc::context *ctxt)
Definition postreload.cc:2477
gimple_opt_pass * make_pass_strip_predict_hints(gcc::context *ctxt)
Definition predict.cc:4448
gimple_opt_pass * make_pass_rebuild_frequencies(gcc::context *ctxt)
Definition predict.cc:4624
gimple_opt_pass * make_pass_profile(gcc::context *ctxt)
Definition predict.cc:4313
rtl_opt_pass * make_pass_split_before_regstack(gcc::context *ctxt)
Definition recog.cc:4734
rtl_opt_pass * make_pass_split_for_shorten_branches(gcc::context *ctxt)
Definition recog.cc:4784
rtl_opt_pass * make_pass_split_all_insns(gcc::context *ctxt)
Definition recog.cc:4576
rtl_opt_pass * make_pass_split_before_sched2(gcc::context *ctxt)
Definition recog.cc:4675
rtl_opt_pass * make_pass_split_after_reload(gcc::context *ctxt)
Definition recog.cc:4621
rtl_opt_pass * make_pass_peephole2(gcc::context *ctxt)
Definition recog.cc:4531
rtl_opt_pass * make_pass_ree(gcc::context *ctxt)
Definition ree.cc:1430
rtl_opt_pass * make_pass_stack_regs_run(gcc::context *ctxt)
Definition reg-stack.cc:3536
rtl_opt_pass * make_pass_stack_regs(gcc::context *ctxt)
Definition reg-stack.cc:3485
rtl_opt_pass * make_pass_cprop_hardreg(gcc::context *ctxt)
Definition regcprop.cc:1535
rtl_opt_pass * make_pass_reginfo_init(gcc::context *ctxt)
Definition reginfo.cc:978
rtl_opt_pass * make_pass_regrename(gcc::context *ctxt)
Definition regrename.cc:2057
rtl_opt_pass * make_pass_delay_slots(gcc::context *ctxt)
Definition reorg.cc:3881
rtl_opt_pass * make_pass_machine_reorg(gcc::context *ctxt)
Definition reorg.cc:3927
gimple_opt_pass * make_pass_sancov(gcc::context *ctxt)
Definition sancov.cc:336
gimple_opt_pass * make_pass_sancov_O0(gcc::context *ctxt)
Definition sancov.cc:342
gimple_opt_pass * make_pass_sanopt(gcc::context *ctxt)
Definition sanopt.cc:1433
rtl_opt_pass * make_pass_live_range_shrinkage(gcc::context *ctxt)
Definition sched-rgn.cc:3841
rtl_opt_pass * make_pass_sched(gcc::context *ctxt)
Definition sched-rgn.cc:3890
rtl_opt_pass * make_pass_sched2(gcc::context *ctxt)
Definition sched-rgn.cc:3940
rtl_opt_pass * make_pass_sched_fusion(gcc::context *ctxt)
Definition sched-rgn.cc:3992
rtl_opt_pass * make_pass_stack_ptr_mod(gcc::context *ctxt)
Definition stack-ptr-mod.cc:112
rtl_opt_pass * make_pass_rtl_store_motion(gcc::context *ctxt)
Definition store-motion.cc:1266
Definition cgraph.h:920
Definition function.h:249
Definition gimple.h:224
Definition lto-streamer.h:480
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:336
enum pass_positioning_ops pos_op
Definition tree-pass.h:343
int ref_pass_instance_number
Definition tree-pass.h:340
opt_pass * pass
Definition tree-pass.h:337
const char * reference_pass_name
Definition tree-pass.h:338
Definition cgraph.h:2233
timevar_id_t
Definition timevar.h:67
gimple_opt_pass * make_pass_tracer(gcc::context *ctxt)
Definition tracer.cc:466
gimple_opt_pass * make_pass_tm_edges(gcc::context *ctxt)
Definition trans-mem.cc:3380
gimple_opt_pass * make_pass_tm_init(gcc::context *ctxt)
Definition trans-mem.cc:2163
simple_ipa_opt_pass * make_pass_ipa_tm(gcc::context *ctxt)
Definition trans-mem.cc:5704
gimple_opt_pass * make_pass_tm_mark(gcc::context *ctxt)
Definition trans-mem.cc:3191
gimple_opt_pass * make_pass_lower_tm(gcc::context *ctxt)
Definition trans-mem.cc:1870
gimple_opt_pass * make_pass_tm_memopt(gcc::context *ctxt)
Definition trans-mem.cc:4118
gimple_opt_pass * make_pass_diagnose_tm_blocks(gcc::context *ctxt)
Definition trans-mem.cc:881
gimple_opt_pass * make_pass_assumptions(gcc::context *ctx)
Definition tree-assume.cc:461
gimple_opt_pass * make_pass_call_cdce(gcc::context *ctxt)
Definition tree-call-cdce.cc:1488
gimple_opt_pass * make_pass_build_cfg(gcc::context *ctxt)
Definition tree-cfg.cc:382
gimple_opt_pass * make_pass_fixup_cfg(gcc::context *ctxt)
Definition tree-cfg.cc:10221
gimple_opt_pass * make_pass_warn_function_return(gcc::context *ctxt)
Definition tree-cfg.cc:9901
gimple_opt_pass * make_pass_warn_unused_result(gcc::context *ctxt)
Definition tree-cfg.cc:10011
gimple_opt_pass * make_pass_split_crit_edges(gcc::context *ctxt)
Definition tree-cfg.cc:9533
gimple_opt_pass * make_pass_merge_phi(gcc::context *ctxt)
Definition tree-cfgcleanup.cc:1417
gimple_opt_pass * make_pass_cleanup_cfg_post_optimizing(gcc::context *ctxt)
Definition tree-cfgcleanup.cc:1536
gimple_opt_pass * make_pass_lower_complex(gcc::context *ctxt)
Definition tree-complex.cc:2110
gimple_opt_pass * make_pass_lower_complex_O0(gcc::context *ctxt)
Definition tree-complex.cc:2156
gimple_opt_pass * make_pass_refactor_eh(gcc::context *ctxt)
Definition tree-eh.cc:3525
gimple_opt_pass * make_pass_lower_eh_dispatch(gcc::context *ctxt)
Definition tree-eh.cc:4237
gimple_opt_pass * make_pass_lower_eh(gcc::context *ctxt)
Definition tree-eh.cc:2290
gimple_opt_pass * make_pass_cleanup_eh(gcc::context *ctxt)
Definition tree-eh.cc:5126
gimple_opt_pass * make_pass_lower_resx(gcc::context *ctxt)
Definition tree-eh.cc:3766
simple_ipa_opt_pass * make_pass_ipa_lower_emutls(gcc::context *ctxt)
Definition tree-emutls.cc:858
gimple_opt_pass * make_pass_if_conversion(gcc::context *ctxt)
Definition tree-if-conv.cc:4362
gimple_opt_pass * make_pass_build_ssa(gcc::context *ctxt)
Definition tree-into-ssa.cc:2578
gimple_opt_pass * make_pass_loop_distribution(gcc::context *ctxt)
Definition tree-loop-distribution.cc:4034
gimple_opt_pass * make_pass_return_slot(gcc::context *ctxt)
Definition tree-nrv.cc:403
gimple_opt_pass * make_pass_nrv(gcc::context *ctxt)
Definition tree-nrv.cc:297
gimple_opt_pass * make_pass_early_object_sizes(gcc::context *ctxt)
Definition tree-object-size.cc:2469
gimple_opt_pass * make_pass_object_sizes(gcc::context *ctxt)
Definition tree-object-size.cc:2430
gimple_opt_pass * make_pass_parallelize_loops(gcc::context *ctxt)
Definition tree-parloops.cc:4078
gimple_opt_pass * make_pass_tree_no_loop(gcc::context *ctxt)
Definition tree-ssa-loop.cc:313
gimple_opt_pass * make_pass_thread_jumps(gcc::context *ctxt)
Definition tree-ssa-threadbackward.cc:1136
simple_ipa_opt_pass * make_pass_ipa_tree_profile(gcc::context *ctxt)
Definition tree-profile.cc:2186
gimple_opt_pass * make_pass_reassoc(gcc::context *ctxt)
Definition tree-ssa-reassoc.cc:7523
gimple_opt_pass * make_pass_optimize_widening_mul(gcc::context *ctxt)
Definition tree-ssa-math-opts.cc:7522
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_rtl_dse3(gcc::context *ctxt)
gimple_opt_pass * make_pass_lower_switch(gcc::context *ctxt)
Definition tree-switch-conversion.cc:3097
gimple_opt_pass * make_pass_tsan(gcc::context *ctxt)
Definition tsan.cc:929
gimple_opt_pass * make_pass_sra(gcc::context *ctxt)
Definition tree-sra.cc:5290
gimple_opt_pass * make_pass_lower_vaarg(gcc::context *ctxt)
Definition tree-stdarg.cc:1207
gimple_opt_pass * make_pass_loop_split(gcc::context *ctxt)
Definition tree-ssa-loop-split.cc:1871
gimple_opt_pass * make_pass_cse_sincos(gcc::context *ctxt)
Definition tree-ssa-math-opts.cc:2281
gimple_opt_pass * make_pass_empty_loop(gcc::context *ctxt)
gimple_opt_pass * make_pass_forwprop(gcc::context *ctxt)
Definition tree-ssa-forwprop.cc:7393
gimple_opt_pass * make_pass_vtable_verify(gcc::context *ctxt)
Definition vtable-verify.cc:837
unsigned int tail_merge_optimize(bool)
Definition tree-ssa-tail-merge.cc:1819
gimple_opt_pass * make_pass_phiopt(gcc::context *ctxt)
Definition tree-ssa-phiopt.cc:4995
gimple_opt_pass * make_pass_lim(gcc::context *ctxt)
Definition tree-ssa-loop-im.cc:3873
gimple_opt_pass * make_pass_rename_ssa_copies(gcc::context *ctxt)
gimple_opt_pass * make_pass_sink_code(gcc::context *ctxt)
Definition tree-ssa-sink.cc:897
gimple_opt_pass * make_pass_dominator(gcc::context *ctxt)
Definition tree-ssa-dom.cc:1084
simple_ipa_opt_pass * make_pass_dispatcher_calls(gcc::context *ctxt)
rtl_opt_pass * make_pass_rtl_dce(gcc::context *ctxt)
gimple_opt_pass * make_pass_ubsan(gcc::context *ctxt)
Definition ubsan.cc:2605
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:1781
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_musttail(gcc::context *ctxt)
Definition tree-tailcall.cc:2264
gimple_opt_pass * make_pass_phiprop(gcc::context *ctxt)
Definition tree-ssa-phiprop.cc:708
gimple_opt_pass * make_pass_vrp(gcc::context *ctxt)
Definition tree-vrp.cc:1345
gimple_opt_pass * make_pass_fre(gcc::context *ctxt)
Definition tree-ssa-sccvn.cc:9392
gimple_opt_pass * make_pass_simduid_cleanup(gcc::context *ctxt)
Definition tree-vectorizer.cc:1502
gimple_opt_pass * make_pass_build_alias(gcc::context *ctxt)
Definition tree-ssa-structalias.cc:1792
gimple_opt_pass * make_pass_sra_early(gcc::context *ctxt)
Definition tree-sra.cc:5254
gimple_opt_pass * make_pass_complete_unrolli(gcc::context *ctxt)
Definition tree-ssa-loop-ivcanon.cc:1797
gimple_opt_pass * make_pass_tree_ifcombine(gcc::context *ctxt)
Definition tree-ssa-ifcombine.cc:1543
gimple_opt_pass * make_pass_tree_loop_done(gcc::context *ctxt)
Definition tree-ssa-loop.cc:520
gimple_opt_pass * make_pass_stdarg(gcc::context *ctxt)
Definition tree-stdarg.cc:1160
gimple_opt_pass * make_pass_strlen(gcc::context *ctxt)
Definition tree-ssa-strlen.cc:6154
gimple_opt_pass * make_pass_dse(gcc::context *ctxt)
Definition tree-ssa-dse.cc:1812
gimple_opt_pass * make_pass_loop_prefetch(gcc::context *ctxt)
Definition tree-ssa-loop-prefetch.cc:2119
rtl_opt_pass * make_pass_value_profile_transformations(gcc::context *ctxt)
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:1059
gimple_opt_pass * make_pass_early_vrp(gcc::context *ctxt)
Definition tree-vrp.cc:1351
simple_ipa_opt_pass * make_pass_ipa_pta(gcc::context *ctxt)
Definition tree-ssa-structalias.cc:2177
gimple_opt_pass * make_pass_late_warn_uninitialized(gcc::context *ctxt)
Definition tree-ssa-uninit.cc:1532
gimple_opt_pass * make_pass_convert_switch(gcc::context *ctxt)
Definition tree-switch-conversion.cc:2993
gimple_opt_pass * make_pass_update_address_taken(gcc::context *ctxt)
Definition tree-ssa.cc:2350
gimple_opt_pass * make_pass_ch(gcc::context *ctxt)
Definition tree-ssa-loop-ch.cc:1244
gimple_opt_pass * make_pass_dce(gcc::context *ctxt)
Definition tree-ssa-dce.cc:2125
rtl_opt_pass * make_pass_branch_prob(gcc::context *ctxt)
gimple_opt_pass * make_pass_tail_calls(gcc::context *ctxt)
Definition tree-tailcall.cc:2219
gimple_opt_pass * make_pass_early_warn_uninitialized(gcc::context *ctxt)
Definition tree-ssa-uninit.cc:1599
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)
simple_ipa_opt_pass * make_pass_ipa_oacc_kernels(gcc::context *ctxt)
Definition tree-ssa-loop.cc:276
gimple_opt_pass * make_pass_warn_printf(gcc::context *ctxt)
Definition tree-ssa-strlen.cc:6148
gimple_opt_pass * make_pass_vectorize(gcc::context *ctxt)
Definition tree-vectorizer.cc:1442
gimple_opt_pass * make_pass_copy_prop(gcc::context *ctxt)
Definition tree-ssa-copy.cc:630
gimple_opt_pass * make_pass_complete_unroll(gcc::context *ctxt)
Definition tree-ssa-loop-ivcanon.cc:1742
gimple_opt_pass * make_pass_predcom(gcc::context *ctxt)
Definition tree-predcom.cc:3595
ipa_opt_pass_d * make_pass_analyzer(gcc::context *ctxt)
Definition analyzer-pass.cc:94
gimple_opt_pass * make_pass_build_ealias(gcc::context *ctxt)
Definition tree-ssa-structalias.cc:1830
gimple_opt_pass * make_pass_cse_reciprocals(gcc::context *ctxt)
Definition tree-ssa-math-opts.cc:1110
gimple_opt_pass * make_pass_tree_loop(gcc::context *ctxt)
Definition tree-ssa-loop.cc:144
gimple_opt_pass * make_pass_post_ipa_warn(gcc::context *ctxt)
Definition tree-ssa-ccp.cc:3311
gimple_opt_pass * make_pass_pre(gcc::context *ctxt)
Definition tree-ssa-pre.cc:4779
gimple_opt_pass * make_pass_iv_optimize(gcc::context *ctxt)
Definition tree-ssa-loop.cc:471
rtl_opt_pass * make_pass_variable_tracking(gcc::context *ctxt)
Definition var-tracking.cc:10626
gimple_opt_pass * make_pass_ccp(gcc::context *ctxt)
Definition tree-ssa-ccp.cc:3106
gimple_opt_pass * make_pass_tree_unswitch(gcc::context *ctxt)
Definition tree-ssa-loop-unswitch.cc:1721
gimple_opt_pass * make_pass_lower_vector_ssa(gcc::context *ctxt)
Definition tree-vect-generic.cc:2515
gimple_opt_pass * make_pass_tail_recursion(gcc::context *ctxt)
Definition tree-tailcall.cc:2180
gimple_opt_pass * make_pass_thread_jumps_full(gcc::context *ctxt)
Definition tree-ssa-threadbackward.cc:1142
gimple_opt_pass * make_pass_uncprop(gcc::context *ctxt)
Definition tree-ssa-uncprop.cc:514
pass_positioning_ops
Definition tree-pass.h:329
@ PASS_POS_REPLACE
Definition tree-pass.h:332
@ PASS_POS_INSERT_BEFORE
Definition tree-pass.h:331
@ PASS_POS_INSERT_AFTER
Definition tree-pass.h:330
gimple_opt_pass * make_pass_scev_cprop(gcc::context *ctxt)
Definition tree-ssa-loop.cc:423
simple_ipa_opt_pass * make_pass_ipa_oacc(gcc::context *ctxt)
Definition tree-ssa-loop.cc:242
gimple_opt_pass * make_pass_lower_switch_O0(gcc::context *ctxt)
Definition tree-switch-conversion.cc:3092
gimple_opt_pass * make_pass_early_thread_jumps(gcc::context *ctxt)
Definition tree-ssa-threadbackward.cc:1148
gimple_opt_pass * make_pass_fix_loops(gcc::context *ctxt)
Definition tree-ssa-loop.cc:89
gimple_opt_pass * make_pass_lower_vector(gcc::context *ctxt)
Definition tree-vect-generic.cc:2472
gimple_opt_pass * make_pass_cd_dce(gcc::context *ctxt)
Definition tree-ssa-dce.cc:2164
gimple_opt_pass * make_pass_ch_vect(gcc::context *ctxt)
Definition tree-ssa-loop-ch.cc:1238
gimple_opt_pass * make_pass_tree_loop_init(gcc::context *ctxt)
Definition tree-ssa-loop.cc:368
gimple_opt_pass * make_pass_fast_vrp(gcc::context *ctxt)
Definition tree-vrp.cc:1357
gimple_opt_pass * make_pass_slp_vectorize(gcc::context *ctxt)
Definition tree-vectorizer.cc:1589
gimple_opt_pass * make_pass_iv_canon(gcc::context *ctxt)
Definition tree-ssa-loop-ivcanon.cc:1685
gimple_opt_pass * make_pass_cselim(gcc::context *ctxt)
Definition tree-ssa-phiopt.cc:5195
gimple_opt_pass * make_pass_oacc_kernels(gcc::context *ctxt)
Definition tree-ssa-loop.cc:199
gimple_opt_pass * make_pass_expand_pow(gcc::context *ctxt)
Definition tree-ssa-math-opts.cc:2434