]> git.ipfire.org Git - thirdparty/gcc.git/commit - gcc/auto-inc-dec.c
auto-inc-dec: Don't add incs/decs to bare CLOBBERs [PR93124]
authorRichard Sandiford <richard.sandiford@arm.com>
Mon, 20 Jan 2020 18:28:38 +0000 (18:28 +0000)
committerRichard Sandiford <richard.sandiford@arm.com>
Thu, 23 Jan 2020 09:19:15 +0000 (09:19 +0000)
commitccb68179642cf7ba5ee05a0d8571a95d0145e3a2
treebb866a5e9962d58d733d13c3c95c251dc61c33e9
parent92bea423c295f5c6c9b0cf06a5a555011cc98bdc
auto-inc-dec: Don't add incs/decs to bare CLOBBERs [PR93124]

In this PR, auto-inc-dec was trying to turn:

    (set (reg X) (plus (reg X) (const_int N)))
    (clobber (mem (reg X)))

into:

    (clobber (mem (pre_modify (reg X) ...)))

But bare clobber insns are just there to describe dataflow.  They're
not supposed to generate any code.

2020-01-23  Richard Sandiford  <richard.sandiford@arm.com>

gcc/
PR rtl-optimization/93124
* auto-inc-dec.c (merge_in_block): Don't add auto inc/decs to
bare USE and CLOBBER insns.

gcc/testsuite/
* gcc.dg/torture/pr93124.c: New test.
gcc/ChangeLog
gcc/auto-inc-dec.c
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/torture/pr93124.c [new file with mode: 0644]