diff options
author | segher <segher@138bc75d-0d04-0410-961f-82ee72b054a4> | 2015-09-16 15:02:32 +0000 |
---|---|---|
committer | segher <segher@138bc75d-0d04-0410-961f-82ee72b054a4> | 2015-09-16 15:02:32 +0000 |
commit | 0849803d7e4c5e2b54975b1ce64530b5d0053f22 (patch) | |
tree | 96694233e594a3fa98ff970aabcca6f50b597d26 /gcc | |
parent | 8f413f95a516c71e77b647caa16362995d2cf1d4 (diff) | |
download | gcc-0849803d7e4c5e2b54975b1ce64530b5d0053f22.tar.gz |
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@227827 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/function.c | 4 |
2 files changed, 10 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index e09c84c38d2..cdbfe48f7c6 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2015-09-16 Segher Boessenkool <segher@kernel.crashing.org> + + PR bootstrap/67587 + * function.c (rest_of_handle_thread_prologue_and_epilogue): Call + fixup_partitions. + 2015-09-16 Richard Biener <rguenther@suse.de> PR middle-end/67253 diff --git a/gcc/function.c b/gcc/function.c index 2c5a6d484f6..bb75b1c8085 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); |