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>
|
2001-08-05 Jan Hubicka <jh@suse.cz>
|
||||||
|
|
||||||
* Makefile.in (reload1.o): Add dedendancy on except.h
|
* Makefile.in (reload1.o): Add dedendancy on except.h
|
||||||
|
|
|
@ -1102,6 +1102,12 @@ update_equiv_regs ()
|
||||||
abort ();
|
abort ();
|
||||||
equiv_insn = XEXP (reg_equiv[regno].init_insns, 0);
|
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
|
if (asm_noperands (PATTERN (equiv_insn)) < 0
|
||||||
&& validate_replace_rtx (regno_reg_rtx[regno],
|
&& validate_replace_rtx (regno_reg_rtx[regno],
|
||||||
reg_equiv[regno].src, insn))
|
reg_equiv[regno].src, insn))
|
||||||
|
|
Loading…
Reference in New Issue