http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54850



             Bug #: 54850

           Summary: [4.8 Regression] FAIL:

                    gcc.c-torture/execute/20041113-1.c execution,  -Os

    Classification: Unclassified

           Product: gcc

           Version: 4.8.0

            Status: UNCONFIRMED

          Severity: normal

          Priority: P3

         Component: middle-end

        AssignedTo: unassig...@gcc.gnu.org

        ReportedBy: dang...@gcc.gnu.org

              Host: hppa64-hp-hpux11.11

            Target: hppa64-hp-hpux11.11

             Build: hppa64-hp-hpux11.11





Created attachment 28380

  --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=28380

rtl dump



Executing on host: /test/gnu/gcc/objdir/gcc/xgcc -B/test/gnu/gcc/objdir/gcc/

/test/gnu/gcc/gcc/gcc/testsuite/gcc.c-torture/execute/20041113-1.c 

-fno-diagnostics-show-caret  -w  -Os   -lm   -o

/test/gnu/gcc/objdir/gcc/testsuite/gcc/20041113-1.x5    (timeout = 300)

spawn /test/gnu/gcc/objdir/gcc/xgcc -B/test/gnu/gcc/objdir/gcc/

/test/gnu/gcc/gcc/gcc/testsuite/gcc.c-torture/execute/20041113-1.c

-fno-diagnostics-show-caret -w -Os -lm -o

/test/gnu/gcc/objdir/gcc/testsuite/gcc/20041113-1.x5

PASS: gcc.c-torture/execute/20041113-1.c compilation,  -Os 

Setting LD_LIBRARY_PATH to :/test/gnu/gcc/objdir/gcc::/test/gnu/gcc/objdir/gcc

spawn [open ...]

FAIL: gcc.c-torture/execute/20041113-1.c execution,  -Os 



Function test is miscompiled:



test:

        .PROC

        .CALLINFO FRAME=144,CALLS,SAVE_RP,ENTRY_GR=3

        .ENTRY

        std %r2,-16(%r30)

        ldo 144(%r30),%r30

        ldo -56(%r29),%r29

        std %r4,-128(%r30)

        ldw 4(%r29),%r28

        std %r26,-8(%r29)

        std %r25,0(%r29)

        std %r24,8(%r29)

        std %r23,16(%r29)

        std %r22,24(%r29)

        std %r21,32(%r29)

        std %r20,40(%r29)

        std %r19,48(%r29)

        cmpib,= 1,%r28,L$0002

        std %r29,-136(%r30)

        ...



The cmpib instruction fails because the "ldw 4(%r29),%r28" was incorrectly

scheduled before the "std %r25,0(%r29)" instruction.  This happens in the

20041113-1.c.223r.sched2 pass.  In the previous pass, we had



(note 5 1 50 2 [bb 2] NOTE_INSN_BASIC_BLOCK)

(insn/f 50 5 51 2 (set (mem:DI (plus:DI (reg/f:DI 30 %r30)

                (const_int -16 [0xfffffffffffffff0])) [0 S8 A64])

        (reg:DI 2 %r2))

/test/gnu/gcc/gcc/gcc/testsuite/gcc.c-torture/execute/20041113-1.c:4 121

{*pa.md:4105}

     (expr_list:REG_DEAD (reg:DI 2 %r2)

        (nil)))

(insn/f 51 50 52 2 (set (reg/f:DI 30 %r30)

        (plus:DI (reg/f:DI 30 %r30)

            (const_int 144 [0x90])))

/test/gnu/gcc/gcc/gcc/testsuite/gcc.c-torture/execute/20041113-1.c:4 161

{*pa.md:4945}

     (nil))

(insn/f 52 51 53 2 (set (mem:DI (plus:DI (reg/f:DI 30 %r30)

                (const_int -128 [0xffffffffffffff80])) [0 S8 A64])

        (reg:DI 4 %r4))

/test/gnu/gcc/gcc/gcc/testsuite/gcc.c-torture/execute/20041113-1.c:4 121

{*pa.md:4105}

     (expr_list:REG_DEAD (reg:DI 4 %r4)

        (nil)))

(note 53 52 8 2 NOTE_INSN_PROLOGUE_END)

(insn 8 53 9 2 (set (mem:DI (plus:DI (reg/f:DI 29 %r29)

                (const_int -64 [0xffffffffffffffc0])) [0 S8 A64])

        (reg:DI 26 %r26))

/test/gnu/gcc/gcc/gcc/testsuite/gcc.c-torture/execute/20041113-1.c:7 121

{*pa.md:4105}

     (expr_list:REG_DEAD (reg:DI 26 %r26)

        (nil)))

(insn 9 8 10 2 (set (mem:DI (plus:DI (reg/f:DI 29 %r29)

                (const_int -56 [0xffffffffffffffc8])) [0 S8 A64])

        (reg:DI 25 %r25))

/test/gnu/gcc/gcc/gcc/testsuite/gcc.c-torture/execute/20041113-1.c:7 121

{*pa.md:4105}

     (expr_list:REG_DEAD (reg:DI 25 %r25)

        (nil)))

(insn 10 9 11 2 (set (mem:DI (plus:DI (reg/f:DI 29 %r29)

                (const_int -48 [0xffffffffffffffd0])) [0 S8 A64])

        (reg:DI 24 %r24))

/test/gnu/gcc/gcc/gcc/testsuite/gcc.c-torture/execute/20041113-1.c:7 121

{*pa.md:4105}

     (expr_list:REG_DEAD (reg:DI 24 %r24)

        (nil)))

(insn 11 10 12 2 (set (mem:DI (plus:DI (reg/f:DI 29 %r29)

                (const_int -40 [0xffffffffffffffd8])) [0 S8 A64])

        (reg:DI 23 %r23))

/test/gnu/gcc/gcc/gcc/testsuite/gcc.c-torture/execute/20041113-1.c:7 121

{*pa.md:4105}

     (expr_list:REG_DEAD (reg:DI 23 %r23)

        (nil)))

(insn 12 11 13 2 (set (mem:DI (plus:DI (reg/f:DI 29 %r29)

                (const_int -32 [0xffffffffffffffe0])) [0 S8 A64])

        (reg:DI 22 %r22))

/test/gnu/gcc/gcc/gcc/testsuite/gcc.c-torture/execute/20041113-1.c:7 121

{*pa.md:4105}

     (expr_list:REG_DEAD (reg:DI 22 %r22)

        (nil)))

(insn 13 12 14 2 (set (mem:DI (plus:DI (reg/f:DI 29 %r29)

                (const_int -24 [0xffffffffffffffe8])) [0 S8 A64])

        (reg:DI 21 %r21))

/test/gnu/gcc/gcc/gcc/testsuite/gcc.c-torture/execute/20041113-1.c:7 121

{*pa.md:4105}

     (expr_list:REG_DEAD (reg:DI 21 %r21)

        (nil)))

(insn 14 13 15 2 (set (mem:DI (plus:DI (reg/f:DI 29 %r29)

                (const_int -16 [0xfffffffffffffff0])) [0 S8 A64])

        (reg:DI 20 %r20))

/test/gnu/gcc/gcc/gcc/testsuite/gcc.c-torture/execute/20041113-1.c:7 121

{*pa.md:4105}

     (expr_list:REG_DEAD (reg:DI 20 %r20)

        (nil)))

(insn 15 14 17 2 (set (mem:DI (plus:DI (reg/f:DI 29 %r29)

                (const_int -8 [0xfffffffffffffff8])) [0 S8 A64])

        (reg:DI 19 %r19))

/test/gnu/gcc/gcc/gcc/testsuite/gcc.c-torture/execute/20041113-1.c:7 121

{*pa.md:4105}

     (expr_list:REG_DEAD (reg:DI 19 %r19)

        (nil)))

(insn 17 15 4 2 (set (reg/f:DI 29 %r29 [76])

        (plus:DI (reg/f:DI 29 %r29)

            (const_int -56 [0xffffffffffffffc8])))

/test/gnu/gcc/gcc/gcc/testsuite/gcc.c-torture/execute/20041113-1.c:7 161

{*pa.md:4945}

     (nil))

(note 4 17 19 2 NOTE_INSN_FUNCTION_BEG)

(insn 19 4 21 2 (set (mem/f/c:DI (plus:DI (reg/f:DI 30 %r30)

                (const_int -136 [0xffffffffffffff78])) [2 MEM[(void * *)&ap]+0

S8 A64])

        (reg/f:DI 29 %r29 [76]))

/test/gnu/gcc/gcc/gcc/testsuite/gcc.c-torture/execute/20041113-1.c:7 121

{*pa.md:4105}

     (nil))

(insn 21 19 22 2 (set (reg:DI 28 %r28)

        (zero_extend:DI (mem:SI (plus:DI (reg/f:DI 29 %r29 [76])

                    (const_int 4 [0x4])) [3 MEM[(int *)ap.0_3 + 4B]+0 S4

A32]))) /test/gnu/gcc/gcc/gcc/testsuite/gcc.c-torture/execute/20041113-1.c:8

134 {*pa.md:4637}

     (expr_list:REG_EQUIV (mem:SI (plus:DI (reg/f:DI 29 %r29 [76])

                (const_int 4 [0x4])) [3 MEM[(int *)ap.0_3 + 4B]+0 S4 A32])

        (nil)))



The regression was introduced between revisions 191481 and 191764.



Other similar fails are:



FAIL: gcc.c-torture/execute/920501-8.c execution,  -Os 

FAIL: gcc.c-torture/execute/980608-1.c execution,  -Os 

FAIL: gcc.c-torture/execute/stdarg-4.c execution,  -Os 

FAIL: gcc.c-torture/execute/va-arg-19.c execution,  -Os

Reply via email to