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:
parent
39f95a2c8e
commit
78d56e8b0a
|
@ -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
|
||||
|
|
|
@ -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))
|
||||
|
|
Loading…
Reference in New Issue