Richi noted that the two passes, which do very similar things are at slightly different places in the pipeline. There really isn't a good reason for that.
This patch sinks the split-path pass slightly so that it's immediately before the tracer pass.
Bootstrapped and regression tested on x86_64-linux-gnu & installed on the trunk.
Jeff
commit 221e081904a5cb3423a03b7f6e3173fe205f0adb Author: law <law@138bc75d-0d04-0410-961f-82ee72b054a4> Date: Fri Dec 18 04:04:20 2015 +0000 [PATCH] Move split-path pass next to the tracer pass * passes.def: Put the split-paths pass immediately before the tracer pass. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@231800 138bc75d-0d04-0410-961f-82ee72b054a4 diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 070b2dd..bf01dfb 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,8 @@ 2015-12-17 Jeff Law <l...@redhat.com> + * passes.def: Put the split-paths pass immediately before the + tracer pass. + * doc/invoke.texi (-O2 options): Remove -fsplit-paths. (-O3 options): Add -fsplit-paths. * gimple-ssa-split-paths.c: Include predict.h diff --git a/gcc/passes.def b/gcc/passes.def index 2ba8490..59114a9 100644 --- a/gcc/passes.def +++ b/gcc/passes.def @@ -302,10 +302,10 @@ along with GCC; see the file COPYING3. If not see POP_INSERT_PASSES () NEXT_PASS (pass_simduid_cleanup); NEXT_PASS (pass_lower_vector_ssa); - NEXT_PASS (pass_split_paths); NEXT_PASS (pass_cse_reciprocals); NEXT_PASS (pass_reassoc, false /* insert_powi_p */); NEXT_PASS (pass_strength_reduction); + NEXT_PASS (pass_split_paths); NEXT_PASS (pass_tracer); NEXT_PASS (pass_dominator, false /* may_peel_loop_headers_p */); NEXT_PASS (pass_strlen);