This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug middle-end/71732] FAIL: gcc.dg/torture/pr71532.c at -O2 and above
- From: "danglin at gcc dot gnu.org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Fri, 01 Jul 2016 20:03:27 +0000
- Subject: [Bug middle-end/71732] FAIL: gcc.dg/torture/pr71532.c at -O2 and above
- Auto-submitted: auto-generated
- References: <bug-71732-4 at http dot gcc dot gnu dot org/bugzilla/>
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.