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.