public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug middle-end/52890] New: Revision 185336 causes 10% degradation on cpu2000 benchmark 252.eon
@ 2012-04-06 16:59 pthaugen at gcc dot gnu.org
  2012-04-06 21:14 ` [Bug middle-end/52890] " pthaugen at gcc dot gnu.org
                   ` (14 more replies)
  0 siblings, 15 replies; 16+ messages in thread
From: pthaugen at gcc dot gnu.org @ 2012-04-06 16:59 UTC (permalink / raw)
  To: gcc-bugs

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

             Bug #: 52890
           Summary: Revision 185336 causes 10% degradation on cpu2000
                    benchmark 252.eon
    Classification: Unclassified
           Product: gcc
           Version: 4.8.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: middle-end
        AssignedTo: unassigned@gcc.gnu.org
        ReportedBy: pthaugen@gcc.gnu.org
                CC: bergner@gcc.gnu.org, mjambor@suse.cz
              Host: powerpc64-linux
            Target: powerpc64-linux
             Build: powerpc64-linux


Following testcase extracted from benchmark file mrXZRectangle.cc.

$ cat test.cc
// g++ -m64 -O2 -mcpu=power7 -S test.cc
class ggVector3 {
public:
    ggVector3() {e[0] = 1.0; e[1] = e[2] = 0.0; }
    ggVector3(double e0, double e1, double e2) {
                   e[0] = e0; e[1] = e1; e[2] = e2; }
    double e[3];
};

class ggONB3 {
public:
    ggONB3() {  }
    ggONB3(const ggVector3& a, const ggVector3& b, const ggVector3& c) {
         U = a; V = b; W = c; }
private:
    ggVector3 U,V,W;
};

class mrViewingHitRecord {
public:
    ggONB3 UVW;
};

void foo(mrViewingHitRecord& VHR)
{

      VHR.UVW = ggONB3(ggVector3 (1, 0, 0),
                       ggVector3 (0, 0, -1),
                       ggVector3 (0, 1, 0));
}

Revision 185335 produces tight sequence of 8-byte stores:

        stfd 0,8(3)
        stfd 0,16(3)
        stfd 0,24(3)
        stfd 0,32(3)
        ...

Revision 185336, with additional check for SLOW_UNALIGNED_ACCESS now causes
path through store_bit_field() which generates a much larger sequence of byte
stores.

        stb 8,0(3)
        stb 10,1(3)
        stb 9,2(3)
        stb 9,3(3)
        stb 9,4(3)
        stb 9,5(3)
        ...


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

end of thread, other threads:[~2012-12-03 13:26 UTC | newest]

Thread overview: 16+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-04-06 16:59 [Bug middle-end/52890] New: Revision 185336 causes 10% degradation on cpu2000 benchmark 252.eon pthaugen at gcc dot gnu.org
2012-04-06 21:14 ` [Bug middle-end/52890] " pthaugen at gcc dot gnu.org
2012-04-10 12:07 ` rguenth at gcc dot gnu.org
2012-04-10 16:14 ` pthaugen at gcc dot gnu.org
2012-04-10 17:53 ` pthaugen at gcc dot gnu.org
2012-04-11 14:32 ` jamborm at gcc dot gnu.org
2012-04-11 15:54 ` jamborm at gcc dot gnu.org
2012-04-11 16:06 ` jamborm at gcc dot gnu.org
2012-04-11 18:35 ` pthaugen at gcc dot gnu.org
2012-04-17 15:53 ` jamborm at gcc dot gnu.org
2012-09-12 15:24 ` dje at gcc dot gnu.org
2012-09-12 23:05 ` pthaugen at gcc dot gnu.org
2012-09-14 13:55 ` jamborm at gcc dot gnu.org
2012-11-27 20:48 ` jamborm at gcc dot gnu.org
2012-11-30 16:12 ` jamborm at gcc dot gnu.org
2012-12-03 13:26 ` jamborm at gcc dot gnu.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).