This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug rtl-optimization/64671] New: [5 Regression] s390-linux profiledbootstrap failure


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.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]