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.
Is this okay for trunk? Segher 2015-09-16 Segher Boessenkool <seg...@kernel.crashing.org> PR bootstrap/67587 * function.c (rest_of_handle_thread_prologue_and_epilogue): Call fixup_partitions. --- gcc/function.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/gcc/function.c b/gcc/function.c index 5ff298a..1ff2ee8 100644 --- a/gcc/function.c +++ b/gcc/function.c @@ -6677,6 +6677,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); -- 1.8.1.4