This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug optimization/13469] [3.4 Regression] IRIX 6.5 O32 libjava bootstrap failure: ICE in verify_local_live_at_start, at flow.c:557
- From: "rsandifo at gcc dot gnu dot org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 6 Jan 2004 21:23:14 -0000
- Subject: [Bug optimization/13469] [3.4 Regression] IRIX 6.5 O32 libjava bootstrap failure: ICE in verify_local_live_at_start, at flow.c:557
- References: <20031222210547.13469.ro@techfak.uni-bielefeld.de>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Additional Comments From rsandifo at gcc dot gnu dot org 2004-01-06 21:23 -------
Ick. I'm seeing this too. It only seems to happen for sjlj exceptions
(i.e., only when using the SGI assembler). expand_builtin_setjmp_receiver()
creates:
(use $fp)
which forces the function to save and restore $fp. but isn't enough to
make it to set up a local frame pointer (frame_pointer_needed is 0).
In the end, nothing outside the prologue really uses $fp, so it is
only live on paths from function entry to the USE above. In other
words, after the prologue, $fp is only live at insn X if there is path
from X to an insn that may throw an exception.
In the test case, we reach the end of reload with two loads from the
same, potentially trapping, MEM. postreload manages to get rid of the
second MEM, converting the load to a register-to-register move.
Unfortunately, it leaves the REG_EH_REGION note and associated EH edge.
We almost get away with this. But the cprop pass manages to delete
the move, along with its EH edge. Since nothing after that can throw
an exception, $fp ends up being unexpected live.
Does this sound familiar to anyone? The attached patch seems to get
past the initial failure, but I'm not not sure whether it's right.
Richard
--
What |Removed |Added
----------------------------------------------------------------------------
CC| |rsandifo at gcc dot gnu dot
| |org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=13469