This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug optimization/11162] new-ra bug
- From: "rth at gcc dot gnu dot org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 11 Jun 2003 22:47:49 -0000
- Subject: [Bug optimization/11162] new-ra bug
- References: <20030611222319.11162.tm@kloo.net>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
PLEASE REPLY TO gcc-bugzilla@gcc.gnu.org ONLY, *NOT* gcc-bugs@gcc.gnu.org.
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=11162
rth@gcc.gnu.org changed:
What |Removed |Added
----------------------------------------------------------------------------
AssignedTo|rth@gcc.gnu.org |matz@suse.de
Status|UNCONFIRMED |NEW
Ever Confirmed| |1
Last reconfirmed|0000-00-00 00:00:00 |2003-06-11 22:47:48
date| |
------- Additional Comments From rth@gcc.gnu.org 2003-06-11 22:47 -------
The CFG code gets confused by the addition of a USE insn after a sibcall.
Sibcalls are supposed to end the block (and the function!), so the fact
that we have an instruction following one (even if its fake) is confusing.
Moreover, I can't figure out why the USE is being added at all. There is
a non-explanation in ra.c, but if I change like so, the test case passes.
r~
Index: ra.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/ra.c,v
retrieving revision 1.8
diff -c -p -d -u -r1.8 ra.c
--- ra.c 7 Mar 2003 22:06:16 -0000 1.8
+++ ra.c 11 Jun 2003 22:43:10 -0000
@@ -677,7 +677,7 @@ reg_alloc ()
/* We currently rely on the existence of the return value USE as
one of the last insns. Add it if it's not there anymore. */
- if (last)
+ if (0 && last)
{
edge e;
for (e = EXIT_BLOCK_PTR->pred; e; e = e->pred_next)