diff options
Diffstat (limited to 'gcc/regmove.c')
-rw-r--r-- | gcc/regmove.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/gcc/regmove.c b/gcc/regmove.c index 7b073f2..7dc808c 100644 --- a/gcc/regmove.c +++ b/gcc/regmove.c @@ -1506,13 +1506,14 @@ regmove_optimize (f, nregs, regmove_dump_file) ends. Fix that here. */ for (i = 0; i < n_basic_blocks; i++) { - rtx end = BLOCK_END (i); + basic_block bb = BASIC_BLOCK (i); + rtx end = bb->end; rtx new = end; rtx next = NEXT_INSN (new); while (next != 0 && INSN_UID (next) >= old_max_uid - && (i == n_basic_blocks - 1 || BLOCK_HEAD (i + 1) != next)) + && (bb->next_bb == EXIT_BLOCK_PTR || bb->next_bb->head != next)) new = next, next = NEXT_INSN (new); - BLOCK_END (i) = new; + bb->end = new; } done: |