This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug middle-end/37535] [4.4 Regression] gcc/libgcc2.c:404: internal compiler error: Floating point exception
- From: "vmakarov at redhat dot com" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 17 Sep 2008 01:10:17 -0000
- Subject: [Bug middle-end/37535] [4.4 Regression] gcc/libgcc2.c:404: internal compiler error: Floating point exception
- References: <bug-37535-276@http.gcc.gnu.org/bugzilla/>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Comment #7 from vmakarov at redhat dot com 2008-09-17 01:10 -------
The patch I mentioned contains the following code at the end of
ira-lives.c::process_bb_node_lives
for all uses: mark uses as live
for all clobbers: mark them as live
for all clobbers: mark them dead
The r25 are in uses and clobbers, so this code makes r25 dead on traversing to
bb start which is quite wrong and results in that p171 does not conflict with
r25. Besides the part of code for building conflicts is wrong, it is also too
conservative. The input should conflict only with *early* clobbers.
Processing only early clobbers on the two last line solves the problem (regular
clobbers are still processed in ira-lives.c::process_bb_node_lives with defs).
I'll sent the patch soon.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37535