]> git.ipfire.org Git - thirdparty/gcc.git/commit
isel: Don't duplicate comparisons for -O0 nor -fno-tree-ter [PR116101]
authorAndrew Pinski <quic_apinski@quicinc.com>
Fri, 26 Jul 2024 00:43:07 +0000 (17:43 -0700)
committerThomas Koenig <tkoenig@gcc.gnu.org>
Sun, 28 Jul 2024 17:06:00 +0000 (19:06 +0200)
commit65936041dbffdc735bed4dbf831462ff3922d28f
tree3a3051c09ac778d3c86e1e6829df82b7746193af
parentf9caac3ac9c1de99092433c4480a6a59c0078790
isel: Don't duplicate comparisons for -O0 nor -fno-tree-ter [PR116101]

While doing cleanups on this code I noticed that we do the duplicate
of comparisons at -O0. For C and C++ code this makes no difference as
the gimplifier never produces COND_EXPR. But it could make a difference
for other front-ends.
Oh and for -fno-tree-ter, duplicating the comparison is just a waste
as it is never used for expand.

I also decided to add a few testcases so this is checked in the future.
Even added one for the duplication itself.

Bootstrapped and tested on x86_64-linux-gnu with no regressions.

PR tree-optimization/116101

gcc/ChangeLog:

* gimple-isel.cc (maybe_duplicate_comparison): Don't
do anything for -O0 or -fno-tree-ter.

gcc/testsuite/ChangeLog:

* gcc.dg/tree-ssa/dup_compare_cond-1.c: New test.
* gcc.dg/tree-ssa/dup_compare_cond-2.c: New test.
* gcc.dg/tree-ssa/dup_compare_cond-3.c: New test.

Signed-off-by: Andrew Pinski <quic_apinski@quicinc.com>
gcc/gimple-isel.cc
gcc/testsuite/gcc.dg/tree-ssa/dup_compare_cond-1.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/tree-ssa/dup_compare_cond-2.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/tree-ssa/dup_compare_cond-3.c [new file with mode: 0644]