combine: Don't replace SET_SRC with REG_EQUAL note content if SET_SRC has side-effect...
authorJakub Jelinek <jakub@redhat.com>
Wed, 6 May 2020 07:31:19 +0000 (09:31 +0200)
committerJakub Jelinek <jakub@redhat.com>
Wed, 6 May 2020 07:31:19 +0000 (09:31 +0200)
commitf14848aea70066777faf201c0b6eb3c5520bfab9
tree40a788d722939d41065beb0c1b63add3e11e28e6
parent366386c7a970bf6a32c5a2abb714ca6c7f4e7790
combine: Don't replace SET_SRC with REG_EQUAL note content if SET_SRC has side-effects [PR94873]

There were some discussions about whether REG_EQUAL notes are valid on insns with a single
set which contains auto-inc-dec side-effects in the SET_SRC and the majority thinks that
it should be valid.  So, this patch fixes the combiner to punt in that case, because otherwise
the auto-inc-dec side-effects from the SET_SRC are lost.

2020-05-06  Jakub Jelinek  <jakub@redhat.com>

PR rtl-optimization/94873
* combine.c (combine_instructions): Don't optimize using REG_EQUAL
note if SET_SRC (set) has side-effects.

* gcc.dg/pr94873.c: New test.
gcc/ChangeLog
gcc/combine.c
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/pr94873.c [new file with mode: 0644]