diff options
Diffstat (limited to 'gcc/reload1.cc')
-rw-r--r-- | gcc/reload1.cc | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/gcc/reload1.cc b/gcc/reload1.cc index fe4fe58..a26d07c 100644 --- a/gcc/reload1.cc +++ b/gcc/reload1.cc @@ -1272,8 +1272,10 @@ reload (rtx_insn *first, int global) inserted = fixup_abnormal_edges (); - /* We've possibly turned single trapping insn into multiple ones. */ - if (cfun->can_throw_non_call_exceptions) + /* Split basic blocks if we've possibly turned single trapping insn + into multiple ones or otherwise the backend requested to do so. */ + if (cfun->can_throw_non_call_exceptions + || cfun->split_basic_blocks_after_reload) { auto_sbitmap blocks (last_basic_block_for_fn (cfun)); bitmap_ones (blocks); @@ -7538,8 +7540,7 @@ emit_input_reload_insns (class insn_chain *chain, struct reload *rl, copy_reg_eh_region_note_forward (insn, get_insns (), NULL); /* End this sequence. */ - *where = get_insns (); - end_sequence (); + *where = end_sequence (); /* Update reload_override_in so that delete_address_reloads_1 can see the actual register usage. */ |