On 8/4/20 8:55 AM, Richard Biener wrote:
On Tue, Aug 4, 2020 at 8:40 AM Aldy Hernandez via Gcc-patches <[email protected]> wrote:VR_RANGE of [-INF,+INF] is canonicalized to VARYING at creation. That is why the test now becomes varying_p(). gcc/ChangeLog: * vr-values.c (simplify_using_ranges::vrp_evaluate_conditional): Adjust for irange API. --- gcc/vr-values.c | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/gcc/vr-values.c b/gcc/vr-values.c index 1190fa96453..90ba8fca246 100644 --- a/gcc/vr-values.c +++ b/gcc/vr-values.c @@ -2495,11 +2495,7 @@ simplify_using_ranges::vrp_evaluate_conditional (tree_code code, tree op0, tree type = TREE_TYPE (op0); const value_range_equiv *vr0 = get_value_range (op0); - if (vr0->kind () == VR_RANGE - && INTEGRAL_TYPE_P (type) - && vrp_val_is_min (vr0->min ()) - && vrp_val_is_max (vr0->max ()) - && is_gimple_min_invariant (op1)) + if (vr0->varying_p () && INTEGRAL_TYPE_P (type))You dropped the is_gimple_min_invariant (op1) check.
Ah, thanks. Pushed the attached patch. Aldy
commit a44293840c0cb1376ac2f45212da7b8d5d21037a Author: Aldy Hernandez <[email protected]> Date: Tue Aug 4 11:19:39 2020 +0200 Add is_gimple_min_invariant dropped from previous patch. gcc/ChangeLog: * vr-values.c (simplify_using_ranges::vrp_evaluate_conditional): Call is_gimple_min_invariant dropped from previous patch. diff --git a/gcc/vr-values.c b/gcc/vr-values.c index 2fd4956a2e4..511342f2f13 100644 --- a/gcc/vr-values.c +++ b/gcc/vr-values.c @@ -2495,7 +2495,9 @@ simplify_using_ranges::vrp_evaluate_conditional (tree_code code, tree op0, tree type = TREE_TYPE (op0); const value_range_equiv *vr0 = get_value_range (op0); - if (vr0->varying_p () && INTEGRAL_TYPE_P (type)) + if (vr0->varying_p () + && INTEGRAL_TYPE_P (type) + && is_gimple_min_invariant (op1)) { location_t location;
