aboutsummaryrefslogtreecommitdiff
path: root/gcc/passes.def
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/passes.def')
-rw-r--r--gcc/passes.def12
1 files changed, 7 insertions, 5 deletions
diff --git a/gcc/passes.def b/gcc/passes.def
index d528a04..c870170 100644
--- a/gcc/passes.def
+++ b/gcc/passes.def
@@ -83,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
@@ -97,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);
@@ -221,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);
@@ -261,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
@@ -363,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);