This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug optimization/11162] new-ra bug


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)


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]