public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug target/32338]  New: [4.3 Regression] Error: .prologue within prologue
@ 2007-06-14 10:41 tbm at cyrius dot com
  2007-06-21 22:44 ` [Bug target/32338] " pinskia at gcc dot gnu dot org
                   ` (9 more replies)
  0 siblings, 10 replies; 11+ messages in thread
From: tbm at cyrius dot com @ 2007-06-14 10:41 UTC (permalink / raw)
  To: gcc-bugs

I'm getting the following assembler error with current gcc 4.3.  This
worked with 20070604 and is probably due to the dataflow merge.  This is
possible the same as, or related to, PR32337, but I cannot tell for sure.

tbm@coconut0:~$ /usr/lib/gcc-snapshot/bin/gcc -c -O2 -fno-omit-frame-pointer
skalibs-dns_transmit.c
/tmp/cc1yk7fL.s: Assembler messages:
/tmp/cc1yk7fL.s:93: Warning: .restore outside of body region
/tmp/cc1yk7fL.s:101: Error: .prologue within prologue

Testcase:


struct dns_transmit
{
};
firstudp (struct dns_transmit *d)
{
}
firsttcp (struct dns_transmit *d)
{
}
dns_transmit_start (struct dns_transmit *d, char const *q)
{
  unsigned int len;
  len = dns_domain_length (q);
  if (len > 512)
    return firsttcp (d);
  return firstudp (d);
}


-- 
           Summary: [4.3 Regression] Error: .prologue within prologue
           Product: gcc
           Version: 4.3.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: target
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: tbm at cyrius dot com
GCC target triplet: ia64-linux-gnu


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32338


^ permalink raw reply	[flat|nested] 11+ messages in thread

* [Bug target/32338] [4.3 Regression] Error: .prologue within prologue
  2007-06-14 10:41 [Bug target/32338] New: [4.3 Regression] Error: .prologue within prologue tbm at cyrius dot com
@ 2007-06-21 22:44 ` pinskia at gcc dot gnu dot org
  2007-06-29 18:46 ` mmitchel at gcc dot gnu dot org
                   ` (8 subsequent siblings)
  9 siblings, 0 replies; 11+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2007-06-21 22:44 UTC (permalink / raw)
  To: gcc-bugs



-- 

pinskia at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |pinskia at gcc dot gnu dot
                   |                            |org
   Target Milestone|---                         |4.3.0


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32338


^ permalink raw reply	[flat|nested] 11+ messages in thread

* [Bug target/32338] [4.3 Regression] Error: .prologue within prologue
  2007-06-14 10:41 [Bug target/32338] New: [4.3 Regression] Error: .prologue within prologue tbm at cyrius dot com
  2007-06-21 22:44 ` [Bug target/32338] " pinskia at gcc dot gnu dot org
@ 2007-06-29 18:46 ` mmitchel at gcc dot gnu dot org
  2007-07-02 21:27 ` sje at cup dot hp dot com
                   ` (7 subsequent siblings)
  9 siblings, 0 replies; 11+ messages in thread
From: mmitchel at gcc dot gnu dot org @ 2007-06-29 18:46 UTC (permalink / raw)
  To: gcc-bugs



-- 

mmitchel at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Priority|P3                          |P1


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32338


^ permalink raw reply	[flat|nested] 11+ messages in thread

* [Bug target/32338] [4.3 Regression] Error: .prologue within prologue
  2007-06-14 10:41 [Bug target/32338] New: [4.3 Regression] Error: .prologue within prologue tbm at cyrius dot com
  2007-06-21 22:44 ` [Bug target/32338] " pinskia at gcc dot gnu dot org
  2007-06-29 18:46 ` mmitchel at gcc dot gnu dot org
@ 2007-07-02 21:27 ` sje at cup dot hp dot com
  2007-07-18 14:14 ` jakub at gcc dot gnu dot org
                   ` (6 subsequent siblings)
  9 siblings, 0 replies; 11+ messages in thread
From: sje at cup dot hp dot com @ 2007-07-02 21:27 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #1 from sje at cup dot hp dot com  2007-07-02 21:27 -------
I can make the warning message go away by using -fno-schedule-insns2.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32338


^ permalink raw reply	[flat|nested] 11+ messages in thread

* [Bug target/32338] [4.3 Regression] Error: .prologue within prologue
  2007-06-14 10:41 [Bug target/32338] New: [4.3 Regression] Error: .prologue within prologue tbm at cyrius dot com
                   ` (2 preceding siblings ...)
  2007-07-02 21:27 ` sje at cup dot hp dot com
@ 2007-07-18 14:14 ` jakub at gcc dot gnu dot org
  2007-07-18 14:16 ` jakub at gcc dot gnu dot org
                   ` (5 subsequent siblings)
  9 siblings, 0 replies; 11+ messages in thread
From: jakub at gcc dot gnu dot org @ 2007-07-18 14:14 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #2 from jakub at gcc dot gnu dot org  2007-07-18 14:14 -------
The thing that changed is that new dataflow now allows moving around the
(set (r12) (something)) frame related instructions within EBBs during
scheduling
more easily.  These are generated for the sibcall epilogues before sibling
calls and also for epilogue before br.ret.
ia64.c unwind generation code assumes that the frame related r12 setting
insns say in the same BB (while scheduling works with EBBs) and emits .body and
.copy_state at the start of next BB after .label_state, but in this case we
want it another BB later.

I'll attach 3 possible fixes, one is to add blockage like we do for
current_frame_info.total_size != 0 or cfun->machine->ia64_eh_epilogue_sp
functions when we need frame pointer (and thus emit the r12 = something frame
related insn), the other is the same but only emit the blockage in sibcall
epilogues.  The last one I'm ATM bootstrapping/regtesting doesn't limit the
scheduling in anyway, instead adds a little state machine to control the
addition
of .label_state/.restore sp, .prologue, .body and .copy_state.  If that works,
it would e.g. also fix unnecessary .body directives when already in .body
region.


-- 

jakub at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |wilson at gcc dot gnu dot
                   |                            |org
         AssignedTo|unassigned at gcc dot gnu   |jakub at gcc dot gnu dot org
                   |dot org                     |
             Status|UNCONFIRMED                 |ASSIGNED
     Ever Confirmed|0                           |1
   Last reconfirmed|0000-00-00 00:00:00         |2007-07-18 14:14:14
               date|                            |


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32338


^ permalink raw reply	[flat|nested] 11+ messages in thread

* [Bug target/32338] [4.3 Regression] Error: .prologue within prologue
  2007-06-14 10:41 [Bug target/32338] New: [4.3 Regression] Error: .prologue within prologue tbm at cyrius dot com
                   ` (4 preceding siblings ...)
  2007-07-18 14:16 ` jakub at gcc dot gnu dot org
@ 2007-07-18 14:16 ` jakub at gcc dot gnu dot org
  2007-07-18 14:16 ` jakub at gcc dot gnu dot org
                   ` (3 subsequent siblings)
  9 siblings, 0 replies; 11+ messages in thread
From: jakub at gcc dot gnu dot org @ 2007-07-18 14:16 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #5 from jakub at gcc dot gnu dot org  2007-07-18 14:16 -------
Created an attachment (id=13936)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=13936&action=view)
gcc43-pr32338-3.patch


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32338


^ permalink raw reply	[flat|nested] 11+ messages in thread

* [Bug target/32338] [4.3 Regression] Error: .prologue within prologue
  2007-06-14 10:41 [Bug target/32338] New: [4.3 Regression] Error: .prologue within prologue tbm at cyrius dot com
                   ` (5 preceding siblings ...)
  2007-07-18 14:16 ` jakub at gcc dot gnu dot org
@ 2007-07-18 14:16 ` jakub at gcc dot gnu dot org
  2007-07-19  7:03 ` jakub at gcc dot gnu dot org
                   ` (2 subsequent siblings)
  9 siblings, 0 replies; 11+ messages in thread
From: jakub at gcc dot gnu dot org @ 2007-07-18 14:16 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #4 from jakub at gcc dot gnu dot org  2007-07-18 14:16 -------
Created an attachment (id=13935)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=13935&action=view)
gcc43-pr32338-2.patch


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32338


^ permalink raw reply	[flat|nested] 11+ messages in thread

* [Bug target/32338] [4.3 Regression] Error: .prologue within prologue
  2007-06-14 10:41 [Bug target/32338] New: [4.3 Regression] Error: .prologue within prologue tbm at cyrius dot com
                   ` (3 preceding siblings ...)
  2007-07-18 14:14 ` jakub at gcc dot gnu dot org
@ 2007-07-18 14:16 ` jakub at gcc dot gnu dot org
  2007-07-18 14:16 ` jakub at gcc dot gnu dot org
                   ` (4 subsequent siblings)
  9 siblings, 0 replies; 11+ messages in thread
From: jakub at gcc dot gnu dot org @ 2007-07-18 14:16 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #3 from jakub at gcc dot gnu dot org  2007-07-18 14:15 -------
Created an attachment (id=13934)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=13934&action=view)
gcc43-pr32338-1.patch


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32338


^ permalink raw reply	[flat|nested] 11+ messages in thread

* [Bug target/32338] [4.3 Regression] Error: .prologue within prologue
  2007-06-14 10:41 [Bug target/32338] New: [4.3 Regression] Error: .prologue within prologue tbm at cyrius dot com
                   ` (6 preceding siblings ...)
  2007-07-18 14:16 ` jakub at gcc dot gnu dot org
@ 2007-07-19  7:03 ` jakub at gcc dot gnu dot org
  2007-08-21 14:39 ` tbm at cyrius dot com
  2007-09-17 22:31 ` jakub at gcc dot gnu dot org
  9 siblings, 0 replies; 11+ messages in thread
From: jakub at gcc dot gnu dot org @ 2007-07-19  7:03 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #6 from jakub at gcc dot gnu dot org  2007-07-19 07:03 -------
Created an attachment (id=13938)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=13938&action=view)
gcc43-pr32338-3.patch

Testing showed I was wrong with the .body and we need duplicate .body
even when there was no second .prologue.  This updated patch has been
bootstrapped/regtested on ia64-linux.


-- 

jakub at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
  Attachment #13936|0                           |1
        is obsolete|                            |


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32338


^ permalink raw reply	[flat|nested] 11+ messages in thread

* [Bug target/32338] [4.3 Regression] Error: .prologue within prologue
  2007-06-14 10:41 [Bug target/32338] New: [4.3 Regression] Error: .prologue within prologue tbm at cyrius dot com
                   ` (7 preceding siblings ...)
  2007-07-19  7:03 ` jakub at gcc dot gnu dot org
@ 2007-08-21 14:39 ` tbm at cyrius dot com
  2007-09-17 22:31 ` jakub at gcc dot gnu dot org
  9 siblings, 0 replies; 11+ messages in thread
From: tbm at cyrius dot com @ 2007-08-21 14:39 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #7 from tbm at cyrius dot com  2007-08-21 14:39 -------
Can an ia64-maintainer approve one of the patches Jakub has suggested?


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32338


^ permalink raw reply	[flat|nested] 11+ messages in thread

* [Bug target/32338] [4.3 Regression] Error: .prologue within prologue
  2007-06-14 10:41 [Bug target/32338] New: [4.3 Regression] Error: .prologue within prologue tbm at cyrius dot com
                   ` (8 preceding siblings ...)
  2007-08-21 14:39 ` tbm at cyrius dot com
@ 2007-09-17 22:31 ` jakub at gcc dot gnu dot org
  9 siblings, 0 replies; 11+ messages in thread
From: jakub at gcc dot gnu dot org @ 2007-09-17 22:31 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #8 from jakub at gcc dot gnu dot org  2007-09-17 22:30 -------
http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=128446


-- 

jakub at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|ASSIGNED                    |RESOLVED
         Resolution|                            |FIXED


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32338


^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2007-09-17 22:31 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2007-06-14 10:41 [Bug target/32338] New: [4.3 Regression] Error: .prologue within prologue tbm at cyrius dot com
2007-06-21 22:44 ` [Bug target/32338] " pinskia at gcc dot gnu dot org
2007-06-29 18:46 ` mmitchel at gcc dot gnu dot org
2007-07-02 21:27 ` sje at cup dot hp dot com
2007-07-18 14:14 ` jakub at gcc dot gnu dot org
2007-07-18 14:16 ` jakub at gcc dot gnu dot org
2007-07-18 14:16 ` jakub at gcc dot gnu dot org
2007-07-18 14:16 ` jakub at gcc dot gnu dot org
2007-07-19  7:03 ` jakub at gcc dot gnu dot org
2007-08-21 14:39 ` tbm at cyrius dot com
2007-09-17 22:31 ` jakub at gcc dot gnu dot org

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).