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-2024 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 */
234#define PROP_gimple \
235 (PROP_gimple_any | PROP_gimple_lcf | PROP_gimple_leh | PROP_gimple_lomp)
237/* To-do flags. */
238#define TODO_do_not_ggc_collect (1 << 1)
239#define TODO_cleanup_cfg (1 << 5)
240#define TODO_verify_il (1 << 6)
241#define TODO_dump_symtab (1 << 7)
242#define TODO_remove_functions (1 << 8)
243
244/* To-do flags for calls to update_ssa. */
245
246/* Update the SSA form inserting PHI nodes for newly exposed symbols
247 and virtual names marked for updating. When updating real names,
248 only insert PHI nodes for a real name O_j in blocks reached by all
249 the new and old definitions for O_j. If the iterated dominance
250 frontier for O_j is not pruned, we may end up inserting PHI nodes
251 in blocks that have one or more edges with no incoming definition
252 for O_j. This would lead to uninitialized warnings for O_j's
253 symbol. */
254#define TODO_update_ssa (1 << 11)
256/* Update the SSA form without inserting any new PHI nodes at all.
257 This is used by passes that have either inserted all the PHI nodes
258 themselves or passes that need only to patch use-def and def-def
259 chains for virtuals (e.g., DCE). */
260#define TODO_update_ssa_no_phi (1 << 12)
261
262/* Insert PHI nodes everywhere they are needed. No pruning of the
263 IDF is done. This is used by passes that need the PHI nodes for
264 O_j even if it means that some arguments will come from the default
265 definition of O_j's symbol.
267 WARNING: If you need to use this flag, chances are that your pass
268 may be doing something wrong. Inserting PHI nodes for an old name
269 where not all edges carry a new replacement may lead to silent
270 codegen errors or spurious uninitialized warnings. */
271#define TODO_update_ssa_full_phi (1 << 13)
272
273/* Passes that update the SSA form on their own may want to delegate
274 the updating of virtual names to the generic updater. Since FUD
275 chains are easier to maintain, this simplifies the work they need
276 to do. NOTE: If this flag is used, any OLD->NEW mappings for real
277 names are explicitly destroyed and only the symbols marked for
278 renaming are processed. */
279#define TODO_update_ssa_only_virtuals (1 << 14)
280
281/* Some passes leave unused local variables that can be removed from
282 cfun->local_decls. This reduces the size of dump files
283 and the memory footprint for VAR_DECLs. */
284#define TODO_remove_unused_locals (1 << 15)
285
286/* Call df_finish at the end of the pass. This is done after all of
287 the dumpers have been allowed to run so that they have access to
288 the instance before it is destroyed. */
289#define TODO_df_finish (1 << 17)
291/* Call df_verify at the end of the pass if checking is enabled. */
292#define TODO_df_verify (1 << 18)
294/* Internally used for the first instance of a pass. */
295#define TODO_mark_first_instance (1 << 19)
297/* Rebuild aliasing info. */
298#define TODO_rebuild_alias (1 << 20)
300/* Rebuild the addressable-vars bitmap and do register promotion. */
301#define TODO_update_address_taken (1 << 21)
302
303/* Rebuild the callgraph edges. */
304#define TODO_rebuild_cgraph_edges (1 << 22)
305
306/* Release function body (unless assumption function)
307 and stop pass manager. */
308#define TODO_discard_function (1 << 23)
309
310/* Internally used in execute_function_todo(). */
311#define TODO_update_ssa_any \
312 (TODO_update_ssa \
313 | TODO_update_ssa_no_phi \
314 | TODO_update_ssa_full_phi \
315 | TODO_update_ssa_only_virtuals)
316
317#define TODO_verify_all TODO_verify_il
319/* To-do flags for pending_TODOs. */
320
321/* Tell the next scalar cleanup pass that there is
322 work for it to do. */
323#define PENDING_TODO_force_next_scalar_cleanup (1 << 1)
325/* Register pass info. */
326
328{
329 PASS_POS_INSERT_AFTER, /* Insert after the reference pass. */
330 PASS_POS_INSERT_BEFORE, /* Insert before the reference pass. */
331 PASS_POS_REPLACE /* Replace the reference pass. */
333
335{
336 opt_pass *pass; /* New pass to register. */
337 const char *reference_pass_name; /* Name of the reference pass for hooking
338 up the new pass. */
339 int ref_pass_instance_number; /* Insert the pass at the specified
340 instance number of the reference pass.
341 Do it for every instance if it is 0. */
342 enum pass_positioning_ops pos_op; /* how to insert the new pass. */
343};
344
345/* Registers a new pass. Either fill out the register_pass_info or specify
346 the individual parameters. The pass object is expected to have been
347 allocated using operator new and the pass manager takes the ownership of
348 the pass object. */
349extern void register_pass (register_pass_info *);
350extern void register_pass (opt_pass* pass, pass_positioning_ops pos,
351 const char* ref_pass_name, int ref_pass_inst_number);
352
421extern unsigned int tail_merge_optimize (bool);
485 *ctxt);
514
515/* IPA Passes */
522
526
529 *ctxt);
531 *ctxt);
553
555 *ctxt);
558
580
583
590
620 *ctxt);
626 *ctxt);
628 *ctxt);
669 *ctxt);
671 *ctxt);
672
673/* Current optimization pass. */
674extern opt_pass *current_pass;
675
676extern bool execute_one_pass (opt_pass *);
677extern void execute_pass_list (function *, opt_pass *);
678extern void execute_ipa_pass_list (opt_pass *);
680extern void execute_all_ipa_transforms (bool);
681extern void execute_all_ipa_stmt_fixups (struct cgraph_node *, gimple **);
682extern bool pass_init_dump_file (opt_pass *);
683extern void pass_fini_dump_file (opt_pass *);
684extern void emergency_dump_function (void);
685
686extern void print_current_pass (FILE *);
687extern void debug_pass (void);
688extern void ipa_write_summaries (void);
690 bool);
691extern void ipa_read_summaries (void);
692extern void ipa_read_optimization_summaries (void);
693extern void register_one_dump_file (opt_pass *);
694extern bool function_called_by_processed_nodes_p (void);
695
696/* Declare for plugins. */
697extern void do_per_function_toporder (void (*) (function *, void *), void *);
698
699extern void disable_pass (const char *);
700extern void enable_pass (const char *);
701extern void dump_passes (void);
702
703#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:3252
Definition context.h:23
Definition cgraph.h:875
Definition function.h:249
Definition gimple.h:221
Definition lto-streamer.h:470
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:330
enum pass_positioning_ops pos_op
Definition tree-pass.h:337
int ref_pass_instance_number
Definition tree-pass.h:334
opt_pass * pass
Definition tree-pass.h:331
const char * reference_pass_name
Definition tree-pass.h:332
Definition cgraph.h:2000
timevar_id_t
Definition timevar.h:67
rtl_opt_pass * make_pass_ira(gcc::context *ctxt)
Definition ira.cc:6131
rtl_opt_pass * make_pass_split_before_regstack(gcc::context *ctxt)
Definition recog.cc:4657
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:1170
rtl_opt_pass * make_pass_late_combine(gcc::context *ctxt)
Definition late-combine.cc:773
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:4707
ipa_opt_pass_d * make_pass_ipa_inline(gcc::context *ctxt)
Definition ipa-inline.cc:3283
gimple_opt_pass * make_pass_lower_omp(gcc::context *ctxt)
Definition omp-low.cc:14905
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:4399
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:4551
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:6282
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:3185
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:4020
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:2065
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:4808
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:1419
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:538
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:6236
simple_ipa_opt_pass * make_pass_ipa_function_and_variable_visibility(gcc::context *ctxt)
Definition ipa-visibility.cc:1025
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:4805
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:648
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:3317
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:1795
gimple_opt_pass * make_pass_sccopy(gcc::context *ctxt)
Definition gimple-ssa-sccopy.cc:688
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:4448
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:4707
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:865
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:4025
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:1771
gimple_opt_pass * make_pass_loop_distribution(gcc::context *ctxt)
Definition tree-loop-distribution.cc:4025
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:4269
gimple_opt_pass * make_pass_musttail(gcc::context *ctxt)
Definition tree-tailcall.cc:1482
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:4499
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:3106
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:1066
gimple_opt_pass * make_pass_fre(gcc::context *ctxt)
Definition tree-ssa-sccvn.cc:8955
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:1492
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:1789
rtl_opt_pass * make_pass_split_before_sched2(gcc::context *ctxt)
Definition recog.cc:4598
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:4092
gimple_opt_pass * make_pass_dse(gcc::context *ctxt)
Definition tree-ssa-dse.cc:1800
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:2007
gimple_opt_pass * make_pass_local_fn_summary(gcc::context *ctxt)
Definition ipa-fnsummary.cc:5166
rtl_opt_pass * make_pass_fold_mem_offsets(gcc::context *ctxt)
Definition fold-mem-offsets.cc:908
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:1580
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:4376
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:1367
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:1390
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:15211
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:3081
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:2157
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:1183
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:4441
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:4407
rtl_opt_pass * make_pass_reload(gcc::context *ctxt)
Definition ira.cc:6174
rtl_opt_pass * make_pass_branch_prob(gcc::context *ctxt)
gimple_opt_pass * make_pass_tail_calls(gcc::context *ctxt)
Definition tree-tailcall.cc:1437
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:3043
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:3175
simple_ipa_opt_pass * make_pass_omp_simd_clone(gcc::context *ctxt)
Definition omp-simd-clone.cc:2157
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:802
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:1432
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:1734
ipa_opt_pass_d * make_pass_ipa_modref(gcc::context *ctxt)
Definition ipa-modref.cc:4275
rtl_opt_pass * make_pass_df_finish(gcc::context *ctxt)
Definition df-core.cc:857
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:10978
gimple_opt_pass * make_pass_predcom(gcc::context *ctxt)
Definition tree-predcom.cc:3592
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:2111
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:6187
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:1948
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:683
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:6489
gimple_opt_pass * make_pass_diagnose_omp_blocks(gcc::context *ctxt)
Definition omp-low.cc:15222
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:4574
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:2844
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:3225
rtl_opt_pass * make_pass_set_nothrow_function_flags(gcc::context *ctxt)
Definition except.cc:2066
opt_pass * current_pass
Definition passes.cc:72
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:2376
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:1398
gimple_opt_pass * make_pass_omp_target_link(gcc::context *ctxt)
Definition omp-offload.cc:2946
rtl_opt_pass * make_pass_final(gcc::context *ctxt)
Definition final.cc:4329
rtl_opt_pass * make_pass_split_after_reload(gcc::context *ctxt)
Definition recog.cc:4544
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:323
@ PASS_POS_REPLACE
Definition tree-pass.h:326
@ PASS_POS_INSERT_BEFORE
Definition tree-pass.h:325
@ PASS_POS_INSERT_AFTER
Definition tree-pass.h:324
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:3239
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:3180
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:2333
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:3627
void ipa_read_optimization_summaries(void)
Definition passes.cc:3097
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:552
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:2196
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:4914
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:7156
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:2379
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:1579
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:5225
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:1677
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:4454
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:3558
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:4639
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:4143
gimple_opt_pass * make_pass_expand_omp_ssa(gcc::context *ctxt)
Definition omp-expand.cc:11024
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:5269
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