public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug middle-end/28690]  New: Performace problem with indexed load/stores on powerpc
@ 2006-08-11  5:01 bergner at vnet dot ibm dot com
  2006-08-11 13:29 ` [Bug middle-end/28690] [4.2 Regression] " dje at gcc dot gnu dot org
                   ` (56 more replies)
  0 siblings, 57 replies; 59+ messages in thread
From: bergner at vnet dot ibm dot com @ 2006-08-11  5:01 UTC (permalink / raw)
  To: gcc-bugs

On some powerpc processors, it is very desirable for performance reasons, to
have the base pointer for an indexed load/store insn to be in the rA position
rather than the rB position (example insn shown below).

    lwzx rD,rA,rB

For some test cases, we get this right, but for the following test case, we get
it wrong (regardless of -m32 or -m64):

int indexedload (int *x, int i)
{
  return x[i];
}

Results in the following powerpc asm:

indexedload:
        slwi r4,r4,2
        lwzx r3,r4,r3   # We want r3,r3,r4
        blr

Dan Berlin tracked one problem down to the reassociation pass ignoring non
integral types like pointers.  His patch (I'll let Dan attach it here) fixed
the ordering of the address calc at the end of tree-ssa, but the rtl expanders
seem to be undoing this change so we still end up with the wrong ordering on
the lwzx insn.


-- 
           Summary: Performace problem with indexed load/stores on powerpc
           Product: gcc
           Version: 4.2.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: middle-end
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: bergner at vnet dot ibm dot com
 GCC build triplet: powerpc64-linux
  GCC host triplet: powerpc64-linux
GCC target triplet: powerpc64-linux


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


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

end of thread, other threads:[~2008-04-09 15:39 UTC | newest]

Thread overview: 59+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2006-08-11  5:01 [Bug middle-end/28690] New: Performace problem with indexed load/stores on powerpc bergner at vnet dot ibm dot com
2006-08-11 13:29 ` [Bug middle-end/28690] [4.2 Regression] " dje at gcc dot gnu dot org
2006-08-11 14:34 ` dberlin at dberlin dot org
2006-08-26  3:49 ` pinskia at gcc dot gnu dot org
2006-08-26  4:24 ` bergner at vnet dot ibm dot com
2006-09-01 21:50 ` mmitchel at gcc dot gnu dot org
2006-09-03 13:51 ` bonzini at gnu dot org
2006-09-05 18:44 ` bergner at vnet dot ibm dot com
2006-09-05 19:25 ` bonzini at gnu dot org
2006-09-05 20:01 ` bergner at vnet dot ibm dot com
2006-09-07  5:14 ` bergner at vnet dot ibm dot com
2006-09-21 18:14 ` bergner at vnet dot ibm dot com
2006-09-21 18:16 ` bergner at vnet dot ibm dot com
2006-09-21 18:19 ` bergner at vnet dot ibm dot com
2006-09-22 16:30 ` bergner at vnet dot ibm dot com
2006-09-22 16:56 ` bergner at vnet dot ibm dot com
2006-09-22 17:05 ` pinskia at gcc dot gnu dot org
2006-09-22 17:09   ` Andrew Pinski
2006-09-22 17:09 ` pinskia at physics dot uc dot edu
2006-09-22 17:27 ` sabre at nondot dot org
2006-10-03  3:30 ` bergner at vnet dot ibm dot com
2006-10-03  5:21 ` paolo dot bonzini at lu dot unisi dot ch
2006-10-03 15:52 ` bergner at vnet dot ibm dot com
2006-10-03 17:58 ` dje at gcc dot gnu dot org
2006-10-03 18:11 ` dje at watson dot ibm dot com
2006-10-03 18:11 ` bonzini at gnu dot org
2006-10-12 17:23 ` janis at gcc dot gnu dot org
2006-11-08  3:30 ` [Bug middle-end/28690] [4.2/4.3 " bergner at vnet dot ibm dot com
2006-11-08  3:35 ` pinskia at gcc dot gnu dot org
2006-11-20 20:22 ` bergner at vnet dot ibm dot com
2006-11-29  7:56 ` bonzini at gnu dot org
2006-11-29 20:11 ` bergner at vnet dot ibm dot com
2006-11-29 22:24 ` bergner at vnet dot ibm dot com
2006-12-05  4:22 ` bergner at vnet dot ibm dot com
2006-12-05  4:42 ` bergner at vnet dot ibm dot com
2006-12-05 16:12 ` pthaugen at us dot ibm dot com
2006-12-05 16:30 ` pthaugen at us dot ibm dot com
2007-01-17 20:58 ` bergner at gcc dot gnu dot org
2007-02-12 17:30 ` bergner at gcc dot gnu dot org
2007-02-23 17:14 ` bergner at gcc dot gnu dot org
2007-05-14 21:28 ` mmitchel at gcc dot gnu dot org
2007-06-09  4:08 ` bergner at gcc dot gnu dot org
2007-07-20  3:50 ` mmitchel at gcc dot gnu dot org
2007-08-06  8:09 ` bonzini at gnu dot org
2007-08-06 11:35 ` pinskia at gcc dot gnu dot org
2007-08-06 11:52 ` paolo dot bonzini at lu dot unisi dot ch
2007-10-09 19:26 ` mmitchel at gcc dot gnu dot org
2007-11-10 17:05 ` steven at gcc dot gnu dot org
2008-01-07 18:07 ` steven at gcc dot gnu dot org
2008-01-08 16:09 ` bergner at gcc dot gnu dot org
2008-01-08 16:12 ` [Bug middle-end/28690] [4.2 " steven at gcc dot gnu dot org
2008-01-16  5:32 ` bergner at gcc dot gnu dot org
2008-04-08  6:40 ` ubizjak at gmail dot com
2008-04-08  6:43 ` ubizjak at gmail dot com
2008-04-08 14:50 ` bergner at gcc dot gnu dot org
2008-04-08 15:01 ` bonzini at gnu dot org
2008-04-08 18:51 ` bergner at gcc dot gnu dot org
2008-04-08 19:08 ` bonzini at gnu dot org
2008-04-09 15:39 ` bergner 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).