aboutsummaryrefslogtreecommitdiff
path: root/gcc/passes.def
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/passes.def')
-rw-r--r--gcc/passes.def21
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);