22#ifndef GCC_TREE_PASS_H
23#define GCC_TREE_PASS_H 1
207#define PROP_gimple_any (1 << 0)
208#define PROP_gimple_lcf (1 << 1)
209#define PROP_gimple_leh (1 << 2)
210#define PROP_cfg (1 << 3)
211#define PROP_objsz (1 << 4)
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)
216#define PROP_cfglayout (1 << 9)
217#define PROP_gimple_lcx (1 << 10)
218#define PROP_loops (1 << 11)
219#define PROP_gimple_lvec (1 << 12)
220#define PROP_gimple_eomp (1 << 13)
221#define PROP_gimple_lva (1 << 14)
222#define PROP_gimple_opt_math (1 << 15)
226#define PROP_gimple_lomp_dev (1 << 16)
227#define PROP_rtl_split_insns (1 << 17)
228#define PROP_loop_opts_done (1 << 18)
230#define PROP_assumptions_done (1 << 19)
232#define PROP_gimple_lbitint (1 << 20)
233#define PROP_last_full_fold (1 << 21)
236 (PROP_gimple_any | PROP_gimple_lcf | PROP_gimple_leh | PROP_gimple_lomp)
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)
255#define TODO_update_ssa (1 << 11)
261#define TODO_update_ssa_no_phi (1 << 12)
272#define TODO_update_ssa_full_phi (1 << 13)
280#define TODO_update_ssa_only_virtuals (1 << 14)
285#define TODO_remove_unused_locals (1 << 15)
290#define TODO_df_finish (1 << 17)
293#define TODO_df_verify (1 << 18)
296#define TODO_mark_first_instance (1 << 19)
299#define TODO_rebuild_alias (1 << 20)
302#define TODO_update_address_taken (1 << 21)
305#define TODO_rebuild_cgraph_edges (1 << 22)
309#define TODO_discard_function (1 << 23)
314#define TODO_update_ssa_any \
316 | TODO_update_ssa_no_phi \
317 | TODO_update_ssa_full_phi \
318 | TODO_update_ssa_only_virtuals)
324#define PENDING_TODO_force_next_scalar_cleanup (1 << 1)
352 const char* ref_pass_name,
int ref_pass_inst_number);
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 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
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 function.h:249
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
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