if-conv: Fix -fcompare-debug bugs in ifcvt_local_dce [PR94283]
authorJakub Jelinek <jakub@redhat.com>
Tue, 24 Mar 2020 08:34:58 +0000 (09:34 +0100)
committerJakub Jelinek <jakub@redhat.com>
Tue, 24 Mar 2020 08:34:58 +0000 (09:34 +0100)
commita5a9400a846244d040caa6d1531434eee8fc8ec7
treeca4119bfe02afa21051bd69a493ae5bc50c63571
parent047811579f09048ed538674fd5251b35e5a92025
if-conv: Fix -fcompare-debug bugs in ifcvt_local_dce [PR94283]

The following testcase shows -fcompare-debug bugs in ifcvt_local_dce,
where the decisions what statements are needed is based also on debug stmt
operands, which is wrong.
So, this patch makes sure to never add debug stmt to the worklist, or never
add an assign to worklist just because it is used in a debug stmt in another
bb.

2020-03-24  Jakub Jelinek  <jakub@redhat.com>

PR debug/94283
* tree-if-conv.c (ifcvt_local_dce): For gimple debug stmts, just set
GF_PLF_2, but don't add them to worklist.  Don't add an assigment to
worklist or set GF_PLF_2 just because it is used in a debug stmt in
another bb.  Formatting improvements.

* gcc.target/i386/pr94283.c: New test.
gcc/ChangeLog
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/i386/pr94283.c [new file with mode: 0644]
gcc/tree-if-conv.c