This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug rtl-optimization/64671] New: [5 Regression] s390-linux profiledbootstrap failure
- From: "jakub at gcc dot gnu.org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Mon, 19 Jan 2015 15:40:26 +0000
- Subject: [Bug rtl-optimization/64671] New: [5 Regression] s390-linux profiledbootstrap failure
- Auto-submitted: auto-generated
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64671
Bug ID: 64671
Summary: [5 Regression] s390-linux profiledbootstrap failure
Product: gcc
Version: 5.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: rtl-optimization
Assignee: unassigned at gcc dot gnu.org
Reporter: jakub at gcc dot gnu.org
On s390-linux, profiledbootstrap hangs while compiling various libgcc routines
with stageprofile cc1.
This looks like a register allocation issue to me.
.L2667:
.loc 3 1448 0
lr %r1,%r8
ahi %r1,-1
lhi %r4,1
lr %r10,%r1
jne .L2667
is an endless loop, because r8 doesn't change in the loop, so if it is not 1 at
the beginning of the loop, it will cycle forever.
During reload one can see first the:
(code_label 6256 8889 3592 323 2667 "" [1 uses])
(note 3592 6256 3599 323 [bb 323] NOTE_INSN_BASIC_BLOCK)
(insn 3599 3592 11197 323 (set (reg:SI 4 %r4)
(const_int 1 [0x1])) ../../gcc/vec.h:1448 68 {*movsi_esa}
(nil))
(insn 11197 3599 11038 323 (parallel [
(set (pc)
(if_then_else (ne (reg:SI 8 %r8 [orig:1459 D.73971 ] [1459])
(const_int 1 [0x1]))
(label_ref 6256)
(pc)))
(set (reg:SI 10 %r10 [orig:1460 D.73963 ] [1460])
(plus:SI (reg:SI 8 %r8 [orig:1459 D.73971 ] [1459])
(const_int -1 [0xffffffffffffffff])))
(clobber (reg:SI 1 %r1 [5607]))
(clobber (reg:CC 33 %cc))
]) ../../gcc/vec.h:1448 619 {doloop_si64}
(nil))
which already is the endless loop, but at *.ira there is no such code like
that, so it rematerialized from somewhere else.