aboutsummaryrefslogtreecommitdiff
path: root/gcc/function.c
diff options
context:
space:
mode:
authorSegher Boessenkool <segher@kernel.crashing.org>2015-09-16 17:02:32 +0200
committerSegher Boessenkool <segher@gcc.gnu.org>2015-09-16 17:02:32 +0200
commit86b107aea11946765a6792e94bfc18759a7ea2d1 (patch)
tree96694233e594a3fa98ff970aabcca6f50b597d26 /gcc/function.c
parentae2ffe2a03f4de06e16addce7a62669d7c6eda5e (diff)
downloadgcc-86b107aea11946765a6792e94bfc18759a7ea2d1.zip
gcc-86b107aea11946765a6792e94bfc18759a7ea2d1.tar.gz
gcc-86b107aea11946765a6792e94bfc18759a7ea2d1.tar.bz2
shrink-wrap: Fix up partitions (PR67587)
With the new shrink-wrap algorithm, blocks reachable both with and without prologue are duplicated, and their incoming edges are then distributed accordingly. So we need to call fixup_partitions. 2015-09-16 Segher Boessenkool <segher@kernel.crashing.org> PR bootstrap/67587 * function.c (rest_of_handle_thread_prologue_and_epilogue): Call fixup_partitions. From-SVN: r227827
Diffstat (limited to 'gcc/function.c')
-rw-r--r--gcc/function.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/gcc/function.c b/gcc/function.c
index 2c5a6d4..bb75b1c 100644
--- a/gcc/function.c
+++ b/gcc/function.c
@@ -6668,6 +6668,10 @@ rest_of_handle_thread_prologue_and_epilogue (void)
scheduling to operate in the epilogue. */
thread_prologue_and_epilogue_insns ();
+ /* Some non-cold blocks may now be only reachable from cold blocks.
+ Fix that up. */
+ fixup_partitions ();
+
/* Shrink-wrapping can result in unreachable edges in the epilogue,
see PR57320. */
cleanup_cfg (0);