public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug rtl-optimization/20972] [4.0/4.1 Regression] Can't describe an early-clobber by an auto-inc
       [not found] <bug-20972-10413@http.gcc.gnu.org/bugzilla/>
@ 2005-10-13 16:01 ` bonzini at gcc dot gnu dot org
  2005-10-16 21:42 ` [Bug rtl-optimization/20972] " pinskia at gcc dot gnu dot org
                   ` (8 subsequent siblings)
  9 siblings, 0 replies; 10+ messages in thread
From: bonzini at gcc dot gnu dot org @ 2005-10-13 16:01 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #5 from bonzini at gcc dot gnu dot org  2005-10-13 16:01 -------
Maybe you could add a reload_completed split to not use autoincrements if Rd ==
Rn?


-- 


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


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

* [Bug rtl-optimization/20972] Can't describe an early-clobber by an auto-inc
       [not found] <bug-20972-10413@http.gcc.gnu.org/bugzilla/>
  2005-10-13 16:01 ` [Bug rtl-optimization/20972] [4.0/4.1 Regression] Can't describe an early-clobber by an auto-inc bonzini at gcc dot gnu dot org
@ 2005-10-16 21:42 ` pinskia at gcc dot gnu dot org
  2006-02-14 21:27 ` amylaar at gcc dot gnu dot org
                   ` (7 subsequent siblings)
  9 siblings, 0 replies; 10+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2005-10-16 21:42 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #6 from pinskia at gcc dot gnu dot org  2005-10-16 21:42 -------
As described by Richard, this is not a regression so therefor not marking as
such.


-- 

pinskia at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
            Summary|[4.0/4.1 Regression] Can't  |Can't describe an early-
                   |describe an early-clobber by|clobber by an auto-inc
                   |an auto-inc                 |
   Target Milestone|4.0.3                       |---


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


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

* [Bug rtl-optimization/20972] Can't describe an early-clobber by an auto-inc
       [not found] <bug-20972-10413@http.gcc.gnu.org/bugzilla/>
  2005-10-13 16:01 ` [Bug rtl-optimization/20972] [4.0/4.1 Regression] Can't describe an early-clobber by an auto-inc bonzini at gcc dot gnu dot org
  2005-10-16 21:42 ` [Bug rtl-optimization/20972] " pinskia at gcc dot gnu dot org
@ 2006-02-14 21:27 ` amylaar at gcc dot gnu dot org
  2006-02-15 10:03 ` [Bug rtl-optimization/20972] Register allocator/reload uses auto-inc register in non-addressing operand rearnsha at gcc dot gnu dot org
                   ` (6 subsequent siblings)
  9 siblings, 0 replies; 10+ messages in thread
From: amylaar at gcc dot gnu dot org @ 2006-02-14 21:27 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #7 from amylaar at gcc dot gnu dot org  2006-02-14 21:27 -------
(In reply to comment #3)
> There's currently no way for a back-end to describe that an auto-inc operation
> might be an early-clobber.  The obvious '&<>' in the constraint doesn't work,
> causing an abort in find_reloads().
Actually, according to rtl.texi, there is no way to describe an auto-inc
operation that is not an early-clobber at all.
They are basically an earlyclobber for insns that do/would fit for a load-store
architecture.  If you have more than one memory address in the insn, it gets
more complicated, as rtl.texi makes a distiction between address and
non-address
uses:

If a register used as the operand of these expressions is used in
another address in an insn, the original value of the register is used.
Uses of the register outside of an address are not permitted within the
same insn as a use in an embedded side effect expression because such
insns behave differently on different machines and hence must be treated
as ambiguous and disallowed.


-- 


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


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

* [Bug rtl-optimization/20972] Register allocator/reload uses auto-inc register in non-addressing operand
       [not found] <bug-20972-10413@http.gcc.gnu.org/bugzilla/>
                   ` (2 preceding siblings ...)
  2006-02-14 21:27 ` amylaar at gcc dot gnu dot org
@ 2006-02-15 10:03 ` rearnsha at gcc dot gnu dot org
  2006-06-17  1:50 ` dje at gcc dot gnu dot org
                   ` (5 subsequent siblings)
  9 siblings, 0 replies; 10+ messages in thread
From: rearnsha at gcc dot gnu dot org @ 2006-02-15 10:03 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #8 from rearnsha at gcc dot gnu dot org  2006-02-15 10:03 -------
OK, then that moves this from being a minor into a more serious problem.  The
compiler is clearly failing to behave as specified.


-- 

rearnsha at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Severity|minor                       |normal
            Summary|Can't describe an early-    |Register allocator/reload
                   |clobber by an auto-inc      |uses auto-inc register in
                   |                            |non-addressing operand


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


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

* [Bug rtl-optimization/20972] Register allocator/reload uses auto-inc register in non-addressing operand
       [not found] <bug-20972-10413@http.gcc.gnu.org/bugzilla/>
                   ` (3 preceding siblings ...)
  2006-02-15 10:03 ` [Bug rtl-optimization/20972] Register allocator/reload uses auto-inc register in non-addressing operand rearnsha at gcc dot gnu dot org
@ 2006-06-17  1:50 ` dje at gcc dot gnu dot org
  2006-06-17  6:14 ` zadeck at naturalbridge dot com
                   ` (4 subsequent siblings)
  9 siblings, 0 replies; 10+ messages in thread
From: dje at gcc dot gnu dot org @ 2006-06-17  1:50 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #9 from dje at gcc dot gnu dot org  2006-06-17 01:37 -------
The bug is in flow.c and fixed by the new df.c rewrite of dataflow.  Ken and I
tripped over the same problem.


-- 

dje at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |dje at gcc dot gnu dot org


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


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

* [Bug rtl-optimization/20972] Register allocator/reload uses auto-inc register in non-addressing operand
       [not found] <bug-20972-10413@http.gcc.gnu.org/bugzilla/>
                   ` (4 preceding siblings ...)
  2006-06-17  1:50 ` dje at gcc dot gnu dot org
@ 2006-06-17  6:14 ` zadeck at naturalbridge dot com
  2008-09-06 12:03 ` hubicka at gcc dot gnu dot org
                   ` (3 subsequent siblings)
  9 siblings, 0 replies; 10+ messages in thread
From: zadeck at naturalbridge dot com @ 2006-06-17  6:14 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #10 from zadeck at naturalbridge dot com  2006-06-17 04:14 -------
(In reply to comment #9)
> The bug is in flow.c and fixed by the new df.c rewrite of dataflow.  Ken and I
> tripped over the same problem.
> 

While I thought this earlier, I do not believe it now.  There is a problem in
flow  that it fails to generate reg-dead notes for dead index regs in auto-inc
insns, but this is a separate problem.  


-- 


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


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

* [Bug rtl-optimization/20972] Register allocator/reload uses auto-inc register in non-addressing operand
       [not found] <bug-20972-10413@http.gcc.gnu.org/bugzilla/>
                   ` (5 preceding siblings ...)
  2006-06-17  6:14 ` zadeck at naturalbridge dot com
@ 2008-09-06 12:03 ` hubicka at gcc dot gnu dot org
  2009-09-26  9:58 ` steven at gcc dot gnu dot org
                   ` (2 subsequent siblings)
  9 siblings, 0 replies; 10+ messages in thread
From: hubicka at gcc dot gnu dot org @ 2008-09-06 12:03 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #11 from hubicka at gcc dot gnu dot org  2008-09-06 12:02 -------
Also just noticed that offline copy of longest-match get extra move:
.L15:   
        movzbl  2(%eax), %edi   #, tmp87
        leal    2(%eax), %ecx   #, scan.158
        movl    %edi, %edx      # tmp87,
        cmpb    2(%ebx), %dl    #,
        jne     .L6     #,
        movzbl  3(%eax), %edi   #, tmp88
        leal    3(%eax), %ecx   #, scan.158
        movl    %edi, %edx      # tmp88,
        cmpb    3(%ebx), %dl    #,
        jne     .L6     #,      
        movzbl  4(%eax), %edi   #, tmp89
        leal    4(%eax), %ecx   #, scan.158
        movl    %edi, %edx      # tmp89,
        cmpb    4(%ebx), %dl    #,
        jne     .L6     #,
        movzbl  5(%eax), %edi   #, tmp90
        leal    5(%eax), %ecx   #, scan.158
        movl    %edi, %edx      # tmp90,
        cmpb    5(%ebx), %dl    #,
        jne     .L6     #,

while inlined copy is fine:
.L98:   
        movzbl  1(%eax), %edx   #,
        leal    1(%eax), %edi   #, scan
        cmpb    1(%ecx), %dl    #,
        jne     .L161   #,
        movzbl  2(%eax), %edx   #,
        leal    2(%eax), %edi   #, scan
        cmpb    2(%ecx), %dl    #,
        jne     .L161   #,
        movzbl  3(%eax), %edx   #,
        leal    3(%eax), %edi   #, scan
        cmpb    3(%ecx), %dl    #,
        jne     .L161   #,
        movzbl  4(%eax), %edx   #,
        leal    4(%eax), %edi   #, scan
        cmpb    4(%ecx), %dl    #,
        jne     .L161   #,
interesting :)


-- 


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


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

* [Bug rtl-optimization/20972] Register allocator/reload uses auto-inc register in non-addressing operand
       [not found] <bug-20972-10413@http.gcc.gnu.org/bugzilla/>
                   ` (6 preceding siblings ...)
  2008-09-06 12:03 ` hubicka at gcc dot gnu dot org
@ 2009-09-26  9:58 ` steven at gcc dot gnu dot org
  2009-12-22 22:39 ` ramana at gcc dot gnu dot org
  2010-07-20 14:06 ` steven at gcc dot gnu dot org
  9 siblings, 0 replies; 10+ messages in thread
From: steven at gcc dot gnu dot org @ 2009-09-26  9:58 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #12 from steven at gcc dot gnu dot org  2009-09-26 09:58 -------
Is there still a bug here, after the IRA merge?


-- 

steven at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|                            |ra


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


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

* [Bug rtl-optimization/20972] Register allocator/reload uses auto-inc register in non-addressing operand
       [not found] <bug-20972-10413@http.gcc.gnu.org/bugzilla/>
                   ` (7 preceding siblings ...)
  2009-09-26  9:58 ` steven at gcc dot gnu dot org
@ 2009-12-22 22:39 ` ramana at gcc dot gnu dot org
  2010-07-20 14:06 ` steven at gcc dot gnu dot org
  9 siblings, 0 replies; 10+ messages in thread
From: ramana at gcc dot gnu dot org @ 2009-12-22 22:39 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #13 from ramana at gcc dot gnu dot org  2009-12-22 22:39 -------
Can't reproduce with trunk or release branches for the attached testcase. 


-- 

ramana at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |WAITING


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


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

* [Bug rtl-optimization/20972] Register allocator/reload uses auto-inc register in non-addressing operand
       [not found] <bug-20972-10413@http.gcc.gnu.org/bugzilla/>
                   ` (8 preceding siblings ...)
  2009-12-22 22:39 ` ramana at gcc dot gnu dot org
@ 2010-07-20 14:06 ` steven at gcc dot gnu dot org
  9 siblings, 0 replies; 10+ messages in thread
From: steven at gcc dot gnu dot org @ 2010-07-20 14:06 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #14 from steven at gcc dot gnu dot org  2010-07-20 14:06 -------
If it works for Ramana, it works for me.


-- 

steven at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|WAITING                     |RESOLVED
         Resolution|                            |WORKSFORME


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


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

end of thread, other threads:[~2010-07-20 14:06 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
     [not found] <bug-20972-10413@http.gcc.gnu.org/bugzilla/>
2005-10-13 16:01 ` [Bug rtl-optimization/20972] [4.0/4.1 Regression] Can't describe an early-clobber by an auto-inc bonzini at gcc dot gnu dot org
2005-10-16 21:42 ` [Bug rtl-optimization/20972] " pinskia at gcc dot gnu dot org
2006-02-14 21:27 ` amylaar at gcc dot gnu dot org
2006-02-15 10:03 ` [Bug rtl-optimization/20972] Register allocator/reload uses auto-inc register in non-addressing operand rearnsha at gcc dot gnu dot org
2006-06-17  1:50 ` dje at gcc dot gnu dot org
2006-06-17  6:14 ` zadeck at naturalbridge dot com
2008-09-06 12:03 ` hubicka at gcc dot gnu dot org
2009-09-26  9:58 ` steven at gcc dot gnu dot org
2009-12-22 22:39 ` ramana at gcc dot gnu dot org
2010-07-20 14:06 ` steven 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).