local-alloc.c (update_equiv_regs): Do not move insns that can throw.

* local-alloc.c (update_equiv_regs): Do not move insns that
        can throw.

From-SVN: r44655
This commit is contained in:
Richard Henderson 2001-08-05 23:41:46 -07:00 committed by Richard Henderson
parent 39f95a2c8e
commit 78d56e8b0a
2 changed files with 11 additions and 0 deletions

View File

@ -1,3 +1,8 @@
2001-08-05 Richard Henderson <rth@redhat.com>
* local-alloc.c (update_equiv_regs): Do not move insns that
can throw.
2001-08-05 Jan Hubicka <jh@suse.cz>
* Makefile.in (reload1.o): Add dedendancy on except.h

View File

@ -1102,6 +1102,12 @@ update_equiv_regs ()
abort ();
equiv_insn = XEXP (reg_equiv[regno].init_insns, 0);
/* We may not move instructions that can throw, since
that changes basic block boundaries and we are not
prepared to adjust the CFG to match. */
if (can_throw_internal (equiv_insn))
continue;
if (asm_noperands (PATTERN (equiv_insn)) < 0
&& validate_replace_rtx (regno_reg_rtx[regno],
reg_equiv[regno].src, insn))