[Bug rtl-optimization/70478] New: [LRA] S/390: Performance regression - superfluous stack frame

krebbel at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Thu Mar 31 11:18:00 GMT 2016


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70478

            Bug ID: 70478
           Summary: [LRA] S/390: Performance regression - superfluous
                    stack frame
           Product: gcc
           Version: 6.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: rtl-optimization
          Assignee: unassigned at gcc dot gnu.org
          Reporter: krebbel at gcc dot gnu.org
  Target Milestone: ---

void foo(unsigned int *a, unsigned char *b)
{
  *a &= *b;
}

cc1 -O3 -march=z9-109 t.c -mno-lra

foo:
        llc     %r1,0(%r3)
        n       %r1,0(%r2)
        st      %r1,0(%r2)
        br      %r14

cc1 -O3 -march=z9-109 t.c

foo:
        stg     %r15,120(%r15)
        lay     %r15,-168(%r15)
        llc     %r1,0(%r3)
        st      %r1,164(%r15)
        nc      0(4,%r2),164(%r15)
        lg      %r15,288(%r15)
        br      %r14

Problem is present since r199754 which enabled LRA on S/390.


More information about the Gcc-bugs mailing list