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:
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. */
147
148 /* This hook is used to serialize IPA summaries on disk. */
150
151 /* This hook is used to deserialize IPA summaries from disk. */
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. */
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:
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
419extern unsigned int tail_merge_optimize (bool);
482 *ctxt);
511
512/* IPA Passes */
519
523
526 *ctxt);
528 *ctxt);
550
552 *ctxt);
555
576
579
586
615 *ctxt);
620 *ctxt);
622 *ctxt);
663 *ctxt);
665 *ctxt);
666
667/* Current optimization pass. */
668extern opt_pass *current_pass;
669
670extern bool execute_one_pass (opt_pass *);
671extern void execute_pass_list (function *, opt_pass *);
672extern void execute_ipa_pass_list (opt_pass *);
674extern void execute_all_ipa_transforms (bool);
675extern void execute_all_ipa_stmt_fixups (struct cgraph_node *, gimple **);
676extern bool pass_init_dump_file (opt_pass *);
677extern void pass_fini_dump_file (opt_pass *);
678extern void emergency_dump_function (void);
679
680extern void print_current_pass (FILE *);
681extern void debug_pass (void);
682extern void ipa_write_summaries (void);
684extern void ipa_read_summaries (void);
686extern void register_one_dump_file (opt_pass *);
687extern bool function_called_by_processed_nodes_p (void);
688
689/* Declare for plugins. */
690extern void do_per_function_toporder (void (*) (function *, void *), void *);
691
692extern void disable_pass (const char *);
693extern void enable_pass (const char *);
694extern void dump_passes (void);
695
696#endif /* GCC_TREE_PASS_H */
Definition genoutput.cc:147
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:3249
T * ggc_alloc(ALONE_CXX_MEM_STAT_INFO)
Definition ggc.h:184
Definition context.h:23
Definition cgraph.h:875
Definition function.h:249
Definition gimple.h:225
Definition lto-streamer.h:465
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:75
rtl_opt_pass * make_pass_ira(gcc::context *ctxt)
Definition ira.cc:6127
rtl_opt_pass * make_pass_split_before_regstack(gcc::context *ctxt)
Definition recog.cc:4600
rtl_opt_pass * make_pass_rtl_dse1(gcc::context *ctxt)
Definition dse.cc:3804
gimple_opt_pass * make_pass_tree_no_loop(gcc::context *ctxt)
Definition tree-ssa-loop.cc:312
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:2079
gimple_opt_pass * make_pass_reassoc(gcc::context *ctxt)
Definition tree-ssa-reassoc.cc:7526
gimple_opt_pass * make_pass_build_ssa(gcc::context *ctxt)
Definition tree-into-ssa.cc:2609
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:6204
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:4650
ipa_opt_pass_d * make_pass_ipa_inline(gcc::context *ctxt)
Definition ipa-inline.cc:3282
gimple_opt_pass * make_pass_lower_omp(gcc::context *ctxt)
Definition omp-low.cc:14691
rtl_opt_pass * make_pass_rtl_dse3(gcc::context *ctxt)
void register_pass(register_pass_info *)
Definition passes.cc:1469
gimple_opt_pass * make_pass_gimple_isel(gcc::context *ctxt)
Definition gimple-isel.cc:458
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:4332
ipa_opt_pass_d * make_pass_ipa_whole_program_visibility(gcc::context *ctxt)
Definition ipa-visibility.cc:1002
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:2412
rtl_opt_pass * make_pass_zero_call_used_regs(gcc::context *ctxt)
Definition function.cc:6794
gimple_opt_pass * make_pass_if_conversion(gcc::context *ctxt)
Definition tree-if-conv.cc:4071
rtl_opt_pass * make_pass_clean_state(gcc::context *ctxt)
Definition final.cc:4547
rtl_opt_pass * make_pass_lower_subreg3(gcc::context *ctxt)
Definition lower-subreg.cc:1900
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:6276
gimple_opt_pass * make_pass_sancov(gcc::context *ctxt)
Definition sancov.cc:343
void do_per_function_toporder(void(*)(function *, void *), void *)
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:3715
gimple_opt_pass * make_pass_lower_switch(gcc::context *ctxt)
Definition tree-switch-conversion.cc:2720
rtl_opt_pass * make_pass_into_cfg_layout_mode(gcc::context *ctxt)
Definition cfgrtl.cc:3757
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:4067
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:7311
gimple_opt_pass * make_pass_sra(gcc::context *ctxt)
Definition tree-sra.cc:5215
bool execute_one_pass(opt_pass *)
Definition passes.cc:2576
rtl_opt_pass * make_pass_convert_to_eh_region_ranges(gcc::context *ctxt)
Definition except.cc:2772
gimple_opt_pass * make_pass_lower_complex(gcc::context *ctxt)
Definition tree-complex.cc:1936
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:2300
gimple_opt_pass * make_pass_store_merging(gcc::context *ctxt)
Definition gimple-ssa-store-merging.cc:5597
gimple_opt_pass * make_pass_warn_access(gcc::context *ctxt)
Definition gimple-ssa-warn-access.cc:4810
rtl_opt_pass * make_pass_live_range_shrinkage(gcc::context *ctxt)
Definition sched-rgn.cc:3808
gimple_opt_pass * make_pass_loop_split(gcc::context *ctxt)
Definition tree-ssa-loop-split.cc:1856
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:593
gimple_opt_pass * make_pass_cse_sincos(gcc::context *ctxt)
Definition tree-ssa-math-opts.cc:2319
gimple_opt_pass * make_pass_parallelize_loops(gcc::context *ctxt)
Definition tree-parloops.cc:4255
void print_current_pass(FILE *)
Definition passes.cc:134
gimple_opt_pass * make_pass_build_cfg(gcc::context *ctxt)
Definition tree-cfg.cc:421
void dump_passes(void)
Definition passes.cc:991
rtl_opt_pass * make_pass_regrename(gcc::context *ctxt)
Definition regrename.cc:2030
void emergency_dump_function(void)
Definition passes.cc:1828
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:6230
simple_ipa_opt_pass * make_pass_ipa_function_and_variable_visibility(gcc::context *ctxt)
Definition ipa-visibility.cc:1024
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:4180
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:4357
rtl_opt_pass * make_pass_cprop_hardreg(gcc::context *ctxt)
Definition regcprop.cc:1469
gimple_opt_pass * make_pass_tm_edges(gcc::context *ctxt)
Definition trans-mem.cc:3373
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:3313
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:1742
gimple_opt_pass * make_pass_sccopy(gcc::context *ctxt)
Definition gimple-ssa-sccopy.cc:679
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:4135
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:7265
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:3710
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:996
gimple_opt_pass * make_pass_sink_code(gcc::context *ctxt)
Definition tree-ssa-sink.cc:821
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:4021
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:2563
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:1741
gimple_opt_pass * make_pass_loop_distribution(gcc::context *ctxt)
Definition tree-loop-distribution.cc:4019
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:4248
void execute_all_ipa_transforms(bool)
Definition passes.cc:2359
gimple_opt_pass * make_pass_phiprop(gcc::context *ctxt)
Definition tree-ssa-phiprop.cc:550
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:4442
simple_ipa_opt_pass * make_pass_ipa_tm(gcc::context *ctxt)
Definition trans-mem.cc:5693
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:3089
gimple_opt_pass * make_pass_vrp(gcc::context *ctxt)
Definition tree-vrp.cc:1383
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:8876
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:1462
gimple_opt_pass * make_pass_fixup_cfg(gcc::context *ctxt)
Definition tree-cfg.cc:10203
rtl_opt_pass * make_pass_lower_subreg(gcc::context *ctxt)
Definition lower-subreg.cc:1813
void register_one_dump_file(opt_pass *)
Definition passes.cc:816
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:8096
gimple_opt_pass * make_pass_sra_early(gcc::context *ctxt)
Definition tree-sra.cc:5179
gimple_opt_pass * make_pass_complete_unrolli(gcc::context *ctxt)
Definition tree-ssa-loop-ivcanon.cc:1741
rtl_opt_pass * make_pass_split_before_sched2(gcc::context *ctxt)
Definition recog.cc:4541
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:899
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:6042
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:1782
gimple_opt_pass * make_pass_coroutine_lower_builtins(gcc::context *ctxt)
Definition coroutine-passes.cc:228
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:4986
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:3894
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:9887
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:927
gimple_opt_pass * make_pass_early_vrp(gcc::context *ctxt)
Definition tree-vrp.cc:1389
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:8763
rtl_opt_pass * make_pass_sched(gcc::context *ctxt)
Definition sched-rgn.cc:3857
gimple_opt_pass * make_pass_late_warn_uninitialized(gcc::context *ctxt)
Definition tree-ssa-uninit.cc:1483
gimple_opt_pass * make_pass_tm_mark(gcc::context *ctxt)
Definition trans-mem.cc:3184
rtl_opt_pass * make_pass_shorten_branches(gcc::context *ctxt)
Definition final.cc:4372
gimple_opt_pass * make_pass_local_pure_const(gcc::context *ctxt)
Definition ipa-pure-const.cc:2258
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
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:3940
rtl_opt_pass * make_pass_combine(gcc::context *ctxt)
Definition combine.cc:15180
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:2616
void pass_fini_dump_file(opt_pass *)
Definition passes.cc:2252
gimple_opt_pass * make_pass_update_address_taken(gcc::context *ctxt)
Definition tree-ssa.cc:2324
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:2116
gimple_opt_pass * make_pass_warn_unused_result(gcc::context *ctxt)
Definition tree-cfg.cc:9993
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:3847
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:4374
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:6170
rtl_opt_pass * make_pass_branch_prob(gcc::context *ctxt)
gimple_opt_pass * make_pass_tail_calls(gcc::context *ctxt)
Definition tree-tailcall.cc:1311
gimple_opt_pass * make_pass_early_warn_uninitialized(gcc::context *ctxt)
Definition tree-ssa-uninit.cc:1550
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:778
rtl_opt_pass * make_pass_lower_subreg2(gcc::context *ctxt)
Definition lower-subreg.cc:1858
void ipa_write_optimization_summaries(struct lto_symtab_encoder_d *)
rtl_opt_pass * make_pass_duplicate_computed_gotos(gcc::context *ctxt)
Definition bb-reorder.cc:2844
void ipa_read_summaries(void)
Definition passes.cc:3026
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:1298
void execute_all_ipa_stmt_fixups(struct cgraph_node *, gimple **)
Definition passes.cc:3158
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:6036
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:3820
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:1402
rtl_opt_pass * make_pass_reginfo_init(gcc::context *ctxt)
Definition reginfo.cc:968
gimple_opt_pass * make_pass_copy_prop(gcc::context *ctxt)
Definition tree-ssa-copy.cc:658
gimple_opt_pass * make_pass_rebuild_frequencies(gcc::context *ctxt)
Definition predict.cc:4523
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:1686
ipa_opt_pass_d * make_pass_ipa_modref(gcc::context *ctxt)
Definition ipa-modref.cc:4254
rtl_opt_pass * make_pass_df_finish(gcc::context *ctxt)
Definition df-core.cc:856
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:10932
gimple_opt_pass * make_pass_predcom(gcc::context *ctxt)
Definition tree-predcom.cc:3589
ipa_opt_pass_d * make_pass_analyzer(gcc::context *ctxt)
Definition analyzer-pass.cc:100
rtl_opt_pass * make_pass_rtl_fwprop_addr(gcc::context *ctxt)
Definition fwprop.cc:1069
gimple_opt_pass * make_pass_lower_complex_O0(gcc::context *ctxt)
Definition tree-complex.cc:1982
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:6181
gimple_opt_pass * make_pass_fold_builtins(gcc::context *ctxt)
Definition tree-ssa-ccp.cc:4599
rtl_opt_pass * make_pass_leaf_regs(gcc::context *ctxt)
Definition function.cc:6548
gimple_opt_pass * make_pass_build_ealias(gcc::context *ctxt)
Definition tree-ssa-structalias.cc:8134
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:1109
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:6526
gimple_opt_pass * make_pass_diagnose_omp_blocks(gcc::context *ctxt)
Definition omp-low.cc:15008
gimple_opt_pass * make_pass_post_ipa_warn(gcc::context *ctxt)
Definition tree-ssa-ccp.cc:4713
gimple_opt_pass * make_pass_pre(gcc::context *ctxt)
Definition tree-ssa-pre.cc:4566
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:7756
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:2841
void disable_pass(const char *)
Definition passes.cc:1232
rtl_opt_pass * make_pass_variable_tracking(gcc::context *ctxt)
Definition var-tracking.cc:10616
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:3208
rtl_opt_pass * make_pass_set_nothrow_function_flags(gcc::context *ctxt)
Definition except.cc:2060
opt_pass * current_pass
Definition passes.cc:72
gimple_opt_pass * make_pass_ccp(gcc::context *ctxt)
Definition tree-ssa-ccp.cc:3040
gimple_opt_pass * make_pass_tree_unswitch(gcc::context *ctxt)
Definition tree-ssa-loop-unswitch.cc:1727
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:2482
gimple_opt_pass * make_pass_profile(gcc::context *ctxt)
Definition predict.cc:4222
gimple_opt_pass * make_pass_tail_recursion(gcc::context *ctxt)
Definition tree-tailcall.cc:1272
gimple_opt_pass * make_pass_omp_target_link(gcc::context *ctxt)
Definition omp-offload.cc:2938
rtl_opt_pass * make_pass_final(gcc::context *ctxt)
Definition final.cc:4325
rtl_opt_pass * make_pass_split_after_reload(gcc::context *ctxt)
Definition recog.cc:4487
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:6704
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:2277
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:4111
gimple_opt_pass * make_pass_early_inline(gcc::context *ctxt)
Definition ipa-inline.cc:3238
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:2715
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:1033
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:2439
gimple_opt_pass * make_pass_split_crit_edges(gcc::context *ctxt)
Definition tree-cfg.cc:9523
simple_ipa_opt_pass * make_pass_ipa_strub_mode(gcc::context *ctxt)
Definition ipa-strub.cc:2675
simple_ipa_opt_pass * make_pass_ipa_strub(gcc::context *ctxt)
Definition ipa-strub.cc:3624
void ipa_read_optimization_summaries(void)
Definition passes.cc:3080
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:969
void execute_pass_list(function *, opt_pass *)
Definition passes.cc:2764
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:7046
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:547
gimple_opt_pass * make_pass_lower_eh(gcc::context *ctxt)
Definition tree-eh.cc:2229
gimple_opt_pass * make_pass_warn_function_noreturn(gcc::context *ctxt)
Definition ipa-pure-const.cc:2305
gimple_opt_pass * make_pass_cd_dce(gcc::context *ctxt)
Definition tree-ssa-dce.cc:2164
gimple_opt_pass * make_pass_rebuild_cgraph_edges(gcc::context *ctxt)
Definition cgraphbuild.cc:513
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:4910
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:7131
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:7680
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:1395
rtl_opt_pass * make_pass_sched2(gcc::context *ctxt)
Definition sched-rgn.cc:3907
ipa_opt_pass_d * make_pass_ipa_pure_const(gcc::context *ctxt)
Definition ipa-pure-const.cc:2137
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:3806
gimple_opt_pass * make_pass_slp_vectorize(gcc::context *ctxt)
Definition tree-vectorizer.cc:1549
gimple_opt_pass * make_pass_expand_powcabs(gcc::context *ctxt)
Definition tree-ssa-math-opts.cc:2490
gimple_opt_pass * make_pass_object_sizes(gcc::context *ctxt)
Definition tree-object-size.cc:2261
simple_ipa_opt_pass * make_pass_ipa_free_fn_summary(gcc::context *ctxt)
Definition ipa-fnsummary.cc:5045
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:1628
void ipa_write_summaries(void)
Definition passes.cc:2854
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:4397
bool pass_init_dump_file(opt_pass *)
Definition passes.cc:2218
gimple_opt_pass * make_pass_lower_resx(gcc::context *ctxt)
Definition tree-eh.cc:3554
rtl_opt_pass * make_pass_cse(gcc::context *ctxt)
Definition cse.cc:7602
gimple_opt_pass * make_pass_optimize_bswap(gcc::context *ctxt)
Definition gimple-ssa-store-merging.cc:1688
gimple_opt_pass * make_pass_cselim(gcc::context *ctxt)
Definition tree-ssa-phiopt.cc:4392
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:10978
gimple_opt_pass * make_pass_sanopt(gcc::context *ctxt)
Definition sanopt.cc:1429
ipa_opt_pass_d * make_pass_ipa_fn_summary(gcc::context *ctxt)
Definition ipa-fnsummary.cc:5089
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-vrp.cc:1401
gimple_opt_pass * make_pass_coroutine_early_expand_ifns(gcc::context *ctxt)
Definition coroutine-passes.cc:529
rtl_opt_pass * make_pass_thread_prologue_and_epilogue(gcc::context *ctxt)
Definition function.cc:6698
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:1224
rtl_opt_pass * make_pass_sched_fusion(gcc::context *ctxt)
Definition sched-rgn.cc:3959
gimple_opt_pass * make_pass_remove_cgraph_callee_edges(gcc::context *ctxt)
Definition cgraphbuild.cc:561