public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug middle-end/58335] New: S/390: reload vs lra regression - testcase builtin-in-setjmp
@ 2013-09-06 12:23 krebbel at gcc dot gnu.org
2013-09-10 14:44 ` [Bug middle-end/58335] " vmakarov at gcc dot gnu.org
` (3 more replies)
0 siblings, 4 replies; 5+ messages in thread
From: krebbel at gcc dot gnu.org @ 2013-09-06 12:23 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58335
Bug ID: 58335
Summary: S/390: reload vs lra regression - testcase
builtin-in-setjmp
Product: gcc
Version: 4.9.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: middle-end
Assignee: unassigned at gcc dot gnu.org
Reporter: krebbel at gcc dot gnu.org
The following testcase fails when compiling with LRA enabled and succeeds
without LRA:
FAIL: gcc.c-torture/execute/built-in-setjmp.c execution, -O1
main:
.LFB1:
.loc 1 16 0
stmg %r6,%r15,48(%r15)
.LCFI2:
larl %r13,.L13
lgr %r14,%r15
aghi %r15,-240
.LCFI3:
aghi %r14,-64
std %f8,0(%r14)
std %f10,8(%r14)
std %f12,16(%r14)
std %f14,24(%r14)
std %f9,32(%r14)
std %f11,40(%r14)
std %f13,48(%r14)
std %f15,56(%r14)
lgr %r11,%r15
.LCFI4:
.loc 1 17 0
aghi %r15,-32
lgr %r2,%r15
aghi %r2,160
stg %r2,160(%r11)
.LVL0:
.loc 1 19 0
larl %r1,.LC1
mvc 0(5,%r2),0(%r1)
.loc 1 21 0
larl %r1,buf
la %r3,176(%r11) 176+r11 is stored as framepointer
stg %r3,0(%r1)
larl %r3,.L4
stg %r3,8(%r1)
stg %r15,24(%r1)
stg %r13,32(%r1)
lhi %r1,0
.loc 1 23 0
stg %r2,168(%r11)
j .L5
.LVL1:
.L4:
.loc 1 21 0
lghi %r1,-160
la %r11,0(%r1,%r11) When restoring r11 only 160 is subtracted
lhi %r1,1
.L5:
.loc 1 21 0 is_stmt 0 discriminator 4
ltr %r1,%r1
je .L6
.loc 1 23 0 is_stmt 1
lhi %r0,0
larl %r1,.LC1
lg %r2,168(%r11) Wrong value loaded here
clst %r1,%r2 segfault here
During LRA the elimination offset for r34 %fp to r11 changes from 160 to 176.
The first insn gets the update but not the second. From a first glance the
reason appears to be that the insn for "lghi %r1,-160" it self is generated by
a reload using a pseudo register which equals -160. This register does not seem
to get the update after the offset changed.
^ permalink raw reply [flat|nested] 5+ messages in thread
* [Bug middle-end/58335] S/390: reload vs lra regression - testcase builtin-in-setjmp
2013-09-06 12:23 [Bug middle-end/58335] New: S/390: reload vs lra regression - testcase builtin-in-setjmp krebbel at gcc dot gnu.org
@ 2013-09-10 14:44 ` vmakarov at gcc dot gnu.org
2013-09-12 18:23 ` vmakarov at gcc dot gnu.org
` (2 subsequent siblings)
3 siblings, 0 replies; 5+ messages in thread
From: vmakarov at gcc dot gnu.org @ 2013-09-10 14:44 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58335
Vladimir Makarov <vmakarov at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |vmakarov at gcc dot gnu.org
--- Comment #1 from Vladimir Makarov <vmakarov at gcc dot gnu.org> ---
LRA does not update elimination offset on subsequent passes as insns for
previous elimination offset updates are more complicated on s390 than usual.
I guess we need a different elimination approach (without parsing already
generated offset elimination insn) independent on insns generated. It is
necessary not only for s390 but for better LRA portability in whole.
I hope to finish this until end of the week.
^ permalink raw reply [flat|nested] 5+ messages in thread
* [Bug middle-end/58335] S/390: reload vs lra regression - testcase builtin-in-setjmp
2013-09-06 12:23 [Bug middle-end/58335] New: S/390: reload vs lra regression - testcase builtin-in-setjmp krebbel at gcc dot gnu.org
2013-09-10 14:44 ` [Bug middle-end/58335] " vmakarov at gcc dot gnu.org
@ 2013-09-12 18:23 ` vmakarov at gcc dot gnu.org
2013-09-20 6:30 ` krebbel at gcc dot gnu.org
2013-09-20 6:31 ` krebbel at gcc dot gnu.org
3 siblings, 0 replies; 5+ messages in thread
From: vmakarov at gcc dot gnu.org @ 2013-09-12 18:23 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58335
--- Comment #2 from Vladimir Makarov <vmakarov at gcc dot gnu.org> ---
Author: vmakarov
Date: Thu Sep 12 18:23:09 2013
New Revision: 202536
URL: http://gcc.gnu.org/viewcvs?rev=202536&root=gcc&view=rev
Log:
2013-09-12 Vladimir Makarov <vmakarov@redhat.com>
PR middle-end/58335
* lra-eliminations (remove_reg_equal_offset_note): New.
(eliminate_regs_in_insn): Rewrite frame pointer to hard frame
pointer elimination with using remove_reg_equal_offset_note.
Modified:
trunk/gcc/ChangeLog
trunk/gcc/lra-eliminations.c
^ permalink raw reply [flat|nested] 5+ messages in thread
* [Bug middle-end/58335] S/390: reload vs lra regression - testcase builtin-in-setjmp
2013-09-06 12:23 [Bug middle-end/58335] New: S/390: reload vs lra regression - testcase builtin-in-setjmp krebbel at gcc dot gnu.org
2013-09-10 14:44 ` [Bug middle-end/58335] " vmakarov at gcc dot gnu.org
2013-09-12 18:23 ` vmakarov at gcc dot gnu.org
@ 2013-09-20 6:30 ` krebbel at gcc dot gnu.org
2013-09-20 6:31 ` krebbel at gcc dot gnu.org
3 siblings, 0 replies; 5+ messages in thread
From: krebbel at gcc dot gnu.org @ 2013-09-20 6:30 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58335
Andreas Krebbel <krebbel at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Resolution|--- |FIXED
Status|UNCONFIRMED |RESOLVED
--- Comment #3 from Andreas Krebbel <krebbel at gcc dot gnu.org> ---
Regression is fixed. Thanks!
^ permalink raw reply [flat|nested] 5+ messages in thread
* [Bug middle-end/58335] S/390: reload vs lra regression - testcase builtin-in-setjmp
2013-09-06 12:23 [Bug middle-end/58335] New: S/390: reload vs lra regression - testcase builtin-in-setjmp krebbel at gcc dot gnu.org
` (2 preceding siblings ...)
2013-09-20 6:30 ` krebbel at gcc dot gnu.org
@ 2013-09-20 6:31 ` krebbel at gcc dot gnu.org
3 siblings, 0 replies; 5+ messages in thread
From: krebbel at gcc dot gnu.org @ 2013-09-20 6:31 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58335
Andreas Krebbel <krebbel at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|RESOLVED |CLOSED
--- Comment #4 from Andreas Krebbel <krebbel at gcc dot gnu.org> ---
Closing per comment above.
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2013-09-20 6:31 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-09-06 12:23 [Bug middle-end/58335] New: S/390: reload vs lra regression - testcase builtin-in-setjmp krebbel at gcc dot gnu.org
2013-09-10 14:44 ` [Bug middle-end/58335] " vmakarov at gcc dot gnu.org
2013-09-12 18:23 ` vmakarov at gcc dot gnu.org
2013-09-20 6:30 ` krebbel at gcc dot gnu.org
2013-09-20 6:31 ` krebbel 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).