diff options
Diffstat (limited to 'gcc/cprop.c')
-rw-r--r-- | gcc/cprop.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/gcc/cprop.c b/gcc/cprop.c index f704a0d1f5e..e315e53b695 100644 --- a/gcc/cprop.c +++ b/gcc/cprop.c @@ -1697,7 +1697,6 @@ bypass_conditional_jumps (void) if (ENTRY_BLOCK_PTR_FOR_FN (cfun)->next_bb == EXIT_BLOCK_PTR_FOR_FN (cfun)) return 0; - bypass_last_basic_block = last_basic_block_for_fn (cfun); mark_dfs_back_edges (); changed = 0; @@ -1863,6 +1862,11 @@ one_cprop_pass (void) } } + /* Make sure bypass_conditional_jumps will ignore not just its new + basic blocks, but also the ones after unconditional traps (those are + unreachable and will be eventually removed as such). */ + bypass_last_basic_block = last_basic_block_for_fn (cfun); + while (!uncond_traps.is_empty ()) { rtx_insn *insn = uncond_traps.pop (); |