diff options
Diffstat (limited to 'gcc/passes.def')
-rw-r--r-- | gcc/passes.def | 21 |
1 files changed, 15 insertions, 6 deletions
diff --git a/gcc/passes.def b/gcc/passes.def index 9fd85a3..c870170 100644 --- a/gcc/passes.def +++ b/gcc/passes.def @@ -47,6 +47,9 @@ along with GCC; see the file COPYING3. If not see /* Interprocedural optimization passes. */ INSERT_PASSES_AFTER (all_small_ipa_passes) + /* auto_profile_offline uses dwarf_name hook that only + works before free_lang_data. */ + NEXT_PASS (pass_ipa_auto_profile_offline); NEXT_PASS (pass_ipa_free_lang_data); NEXT_PASS (pass_ipa_function_and_variable_visibility); NEXT_PASS (pass_ipa_strub_mode); @@ -80,7 +83,7 @@ along with GCC; see the file COPYING3. If not see NEXT_PASS (pass_ccp, false /* nonzero_p */); /* After CCP we rewrite no longer addressed locals into SSA form if possible. */ - NEXT_PASS (pass_forwprop, /*last=*/false); + NEXT_PASS (pass_forwprop, /*full_walk=*/true); NEXT_PASS (pass_early_thread_jumps, /*first=*/true); NEXT_PASS (pass_sra_early); /* pass_build_ealias is a dummy pass that ensures that we @@ -94,10 +97,12 @@ along with GCC; see the file COPYING3. If not see NEXT_PASS (pass_dse); NEXT_PASS (pass_cd_dce, false /* update_address_taken_p */, true /* remove_unused_locals */); NEXT_PASS (pass_phiopt, true /* early_p */); + /* Cleanup eh is done before tail recusision to remove empty (only clobbers) + finally blocks which would block tail recursion. */ + NEXT_PASS (pass_cleanup_eh); NEXT_PASS (pass_tail_recursion); NEXT_PASS (pass_if_to_switch); NEXT_PASS (pass_convert_switch); - NEXT_PASS (pass_cleanup_eh); NEXT_PASS (pass_sccopy); NEXT_PASS (pass_profile); NEXT_PASS (pass_local_pure_const); @@ -140,6 +145,9 @@ along with GCC; see the file COPYING3. If not see NEXT_PASS (pass_target_clone); NEXT_PASS (pass_ipa_auto_profile); + PUSH_INSERT_PASSES_WITHIN (pass_ipa_auto_profile) + NEXT_PASS (pass_feedback_split_functions); + POP_INSERT_PASSES () NEXT_PASS (pass_ipa_tree_profile); PUSH_INSERT_PASSES_WITHIN (pass_ipa_tree_profile) NEXT_PASS (pass_feedback_split_functions); @@ -162,6 +170,7 @@ along with GCC; see the file COPYING3. If not see NEXT_PASS (pass_ipa_sra); NEXT_PASS (pass_ipa_fn_summary); NEXT_PASS (pass_ipa_inline); + NEXT_PASS (pass_ipa_locality_cloning); NEXT_PASS (pass_ipa_pure_const); NEXT_PASS (pass_ipa_modref); NEXT_PASS (pass_ipa_free_fn_summary, false /* small_p */); @@ -214,7 +223,7 @@ along with GCC; see the file COPYING3. If not see NEXT_PASS (pass_complete_unrolli); NEXT_PASS (pass_backprop); NEXT_PASS (pass_phiprop); - NEXT_PASS (pass_forwprop, /*last=*/false); + NEXT_PASS (pass_forwprop, /*full_walk=*/true); /* pass_build_alias is a dummy pass that ensures that we execute TODO_rebuild_alias at this point. */ NEXT_PASS (pass_build_alias); @@ -254,7 +263,7 @@ along with GCC; see the file COPYING3. If not see NEXT_PASS (pass_isolate_erroneous_paths); NEXT_PASS (pass_reassoc, true /* early_p */); NEXT_PASS (pass_dce); - NEXT_PASS (pass_forwprop, /*last=*/false); + NEXT_PASS (pass_forwprop); NEXT_PASS (pass_phiopt, false /* early_p */); NEXT_PASS (pass_ccp, true /* nonzero_p */); /* After CCP we rewrite no longer addressed locals into SSA @@ -356,7 +365,7 @@ along with GCC; see the file COPYING3. If not see NEXT_PASS (pass_dce, true /* update_address_taken_p */, true /* remove_unused_locals */); /* After late DCE we rewrite no longer addressed locals into SSA form if possible. */ - NEXT_PASS (pass_forwprop, /*last=*/true); + NEXT_PASS (pass_forwprop, /*full_walk=*/false, /*last=*/true); NEXT_PASS (pass_sink_code, true /* unsplit edges */); NEXT_PASS (pass_phiopt, false /* early_p */); NEXT_PASS (pass_fold_builtins); @@ -437,9 +446,9 @@ along with GCC; see the file COPYING3. If not see NEXT_PASS (pass_lower_switch_O0); NEXT_PASS (pass_asan_O0); NEXT_PASS (pass_tsan_O0); + NEXT_PASS (pass_musttail); NEXT_PASS (pass_sanopt); NEXT_PASS (pass_cleanup_eh); - NEXT_PASS (pass_musttail); NEXT_PASS (pass_lower_resx); NEXT_PASS (pass_nrv); NEXT_PASS (pass_gimple_isel); |