aboutsummaryrefslogtreecommitdiff
path: root/gcc/gimple-range-fold.cc
diff options
context:
space:
mode:
authorAndrew MacLeod <amacleod@redhat.com>2023-04-20 13:10:40 -0400
committerAndrew MacLeod <amacleod@redhat.com>2023-04-20 13:48:29 -0400
commit17aa9ddb34581855dd013745c8be27dda024de4a (patch)
tree450304b379b0412417c144089824197877192c90 /gcc/gimple-range-fold.cc
parent87c9bae4e32b54829dce0a93ff735412d5f684f8 (diff)
downloadgcc-17aa9ddb34581855dd013745c8be27dda024de4a.zip
gcc-17aa9ddb34581855dd013745c8be27dda024de4a.tar.gz
gcc-17aa9ddb34581855dd013745c8be27dda024de4a.tar.bz2
Do not ignore UNDEFINED ranges when determining PHI equivalences.
Do not ignore UNDEFINED name arguments when registering two-way equivalences from PHIs. PR tree-optimization/109564 gcc/ * gimple-range-fold.cc (fold_using_range::range_of_phi): Do no ignore UNDEFINED range names when deciding if all PHI arguments are the same, gcc/testsuite/ * gcc.dg/torture/pr109564-1.c: New testcase. * gcc.dg/torture/pr109564-2.c: Likewise. * gcc.dg/tree-ssa/evrp-ignore.c: XFAIL. * gcc.dg/tree-ssa/vrp06.c: Likewise.
Diffstat (limited to 'gcc/gimple-range-fold.cc')
-rw-r--r--gcc/gimple-range-fold.cc16
1 files changed, 8 insertions, 8 deletions
diff --git a/gcc/gimple-range-fold.cc b/gcc/gimple-range-fold.cc
index 429734f..180f349 100644
--- a/gcc/gimple-range-fold.cc
+++ b/gcc/gimple-range-fold.cc
@@ -771,16 +771,16 @@ fold_using_range::range_of_phi (vrange &r, gphi *phi, fur_source &src)
if (gimple_range_ssa_p (arg) && src.gori ())
src.gori ()->register_dependency (phi_def, arg);
+ }
- // Track if all arguments are the same.
- if (!seen_arg)
- {
- seen_arg = true;
- single_arg = arg;
- }
- else if (single_arg != arg)
- single_arg = NULL_TREE;
+ // Track if all arguments are the same.
+ if (!seen_arg)
+ {
+ seen_arg = true;
+ single_arg = arg;
}
+ else if (single_arg != arg)
+ single_arg = NULL_TREE;
// Once the value reaches varying, stop looking.
if (r.varying_p () && single_arg == NULL_TREE)