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 middle-end/71732] FAIL: gcc.dg/torture/pr71532.c at -O2 and above


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71732

--- Comment #3 from John David Anglin <danglin at gcc dot gnu.org> ---
The following insn is deleted in postreload:

(insn 55 50 91 2 (set (mem:SI (reg/f:SI 17 %r17 [101]) [0  S4 A32])
        (reg:SI 18 %r18 [102]))
/home/dave/gnu/gcc/gcc/gcc/testsuite/gcc.dg/torture/pr71532.c:29 42
{*pa.md:2184}
     (nil))

;; Function test (test, funcdef_no=2, decl_uid=1447, cgraph_uid=2,
symbol_order=2)

rescanning insn with uid = 110.
rescanning insn with uid = 109.
rescanning insn with uid = 44.
rescanning insn with uid = 39.
rescanning insn with uid = 34.
rescanning insn with uid = 29.
rescanning insn with uid = 24.
rescanning insn with uid = 19.
rescanning insn with uid = 14.
rescanning insn with uid = 9.
deleting insn with uid = 55.
starting the processing of deferred insns
ending the processing of deferred insns

SI 17 and 18 were set as follows:

(insn 8 97 7 2 (set (reg:SI 18 %r18 [102])
        (const_int 12 [0xc]))
/home/dave/gnu/gcc/gcc/gcc/testsuite/gcc.dg/tortur
e/pr71532.c:28 42 {*pa.md:2184}
     (expr_list:REG_EQUIV (const_int 12 [0xc])
        (nil)))
(insn 7 8 9 2 (set (reg/f:SI 17 %r17 [101])
        (plus:SI (reg/f:SI 30 %r30)
            (const_int -80 [0xffffffffffffffb0])))
/home/dave/gnu/gcc/gcc/gcc/te
stsuite/gcc.dg/torture/pr71532.c:28 116 {addsi3}
     (nil))
(insn 9 7 13 2 (set (mem:SI (reg/f:SI 17 %r17 [101]) [0  S4 A32])
        (reg:SI 18 %r18 [102]))
/home/dave/gnu/gcc/gcc/gcc/testsuite/gcc.dg/tort
ure/pr71532.c:28 42 {*pa.md:2184}
     (nil))

The call to bar looks like this:

(call_insn/i 95 109 113 2 (parallel [
            (set (reg:SI 28 %r28)
                (call (mem:SI (symbol_ref/v:SI ("@bar") [flags 0x3] 
<function_d
ecl 0xfd576c30 bar>) [0 bar S4 A32])                    (const_int 48 [0x30])))
            (clobber (reg:SI 1 %r1))            (clobber (reg:SI 2 %r2))
            (use (const_int 0 [0]))
        ]) /home/dave/gnu/gcc/gcc/gcc/testsuite/gcc.dg/torture/pr71532.c:29 206 
{call_val_symref}
     (expr_list:REG_CALL_DECL (symbol_ref/v:SI ("@bar") [flags 0x3] 
<function_d
ecl 0xfd576c30 bar>)
        (expr_list:REG_EH_REGION (const_int 0 [0])
            (nil)))
    (expr_list:SI (use (reg:SI 26 %r26))        (expr_list:SI (use (reg:SI 25
%r25))
            (expr_list:SI (use (reg:SI 24 %r24))
                (expr_list:SI (use (reg:SI 23 %r23))                   
(expr_list:SI (use (mem:SI (plus:SI (reg/f:SI 30 %r30)
                                    (const_int -52 [0xffffffffffffffcc])) [0 
S4 A32]))
                        (expr_list:SI (use (mem:SI (plus:SI (reg/f:SI 30 %r30)
                                        (const_int -56 [0xffffffffffffffc8]))
[0
  S4 A32]))
                            (expr_list:SI (use (mem:SI (plus:SI (reg/f:SI 30
%r30)
                                            (const_int -60
[0xffffffffffffffc4])) [0  S4 A32]))
                                (expr_list:SI (use (mem:SI (plus:SI (reg/f:SI
30 %r30)
                                                (const_int -64
[0xffffffffffffffc0])) [0  S4 A32]))
                                    (expr_list:SI (use (mem:SI (plus:SI
(reg/f:SI 30 %r30)
                                                    (const_int -68
[0xffffffffffffffbc])) [0  S4 A32]))
                                        (expr_list:SI (use (mem:SI (plus:SI
(reg/f:SI 30 %r30)
                                                        (const_int -72
[0xffffffffffffffb8])) [0  S4 A32]))
                                            (expr_list:SI (use (mem:SI (plus:SI
(reg/f:SI 30 %r30)
                                                            (const_int -76
[0xffffffffffffffb4])) [0  S4 A32]))
                                                (expr_list:SI (use (mem:SI
(plus:SI (reg/f:SI 30 %r30)
                                                                (const_int -80
[0xffffffffffffffb0])) [0  S4 A32]))
                                                    (nil))))))))))))))

The call to foo has same set of uses.  Not sure why more insns were not
deleted.

It was my general impression that the stack argument slots should be treated
as being clobbered on hppa but that isn't clearly stated in runtime document.

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