]> git.ipfire.org Git - thirdparty/gcc.git/commit - gcc/value-range.cc
Remove irange::varying_p checks from symbolic_p and constant_p.
authorAldy Hernandez <aldyh@redhat.com>
Sat, 17 Apr 2021 12:26:33 +0000 (14:26 +0200)
committerAldy Hernandez <aldyh@redhat.com>
Mon, 26 Apr 2021 13:42:50 +0000 (15:42 +0200)
commit694c956b6b877e48323cf86c90c09237b7b0e8c8
tree2849f7af5081259c283a52c0af30ff724c0c28d3
parent778032166d960d97541e652c59684d1187d0233c
Remove irange::varying_p checks from symbolic_p and constant_p.

As of a few releases ago, varying_p() ranges are also constant_p.
Consequently, there is no need to check varying_p from either
symbolic_p or constant_p.

I have adjusted a few users of constant_p that were depending on
constant_p returning false for varying_p.  In these cases, I have
placed the varying_p check before the constant_p check to avoid
the more expensive constant_p check when possible.

gcc/ChangeLog:

* gimple-ssa-evrp-analyze.c (evrp_range_analyzer::set_ssa_range_info):
Adjust for constant_p including varying_p.
* tree-vrp.c (vrp_prop::finalize): Same.
(determine_value_range): Same.
* vr-values.c (vr_values::range_of_expr): Same.
* value-range.cc (irange::symbolic_p): Do not check varying_p.
(irange::constant_p): Same.
gcc/gimple-ssa-evrp-analyze.c
gcc/tree-vrp.c
gcc/value-range.cc
gcc/vr-values.c