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.