diff options
author | Aldy Hernandez <aldyh@redhat.com> | 2019-06-03 11:28:28 +0000 |
---|---|---|
committer | Aldy Hernandez <aldyh@gcc.gnu.org> | 2019-06-03 11:28:28 +0000 |
commit | f2b00d2ba461d6dafdeccf6d93828b349b5e7f76 (patch) | |
tree | 207b3e75858642d677836e0e269fe0285e6eead6 /gcc/vr-values.c | |
parent | 49f3f450046a63b5de61be28eb6023d86e0c950e (diff) | |
download | gcc-f2b00d2ba461d6dafdeccf6d93828b349b5e7f76.zip gcc-f2b00d2ba461d6dafdeccf6d93828b349b5e7f76.tar.gz gcc-f2b00d2ba461d6dafdeccf6d93828b349b5e7f76.tar.bz2 |
tree-vrp.h (value_range_base::nonzero_p): New.
* tree-vrp.h (value_range_base::nonzero_p): New.
(value_range_base::set_nonnull): Rename to...
(value_range_base::set_nonzero): ...this.
(value_range_base::set_null): Rename to...
(value_range_base::set_zero): ...this.
(value_range::set_nonnull): Remove.
(value_range::set_null): Remove.
* tree-vrp.c (range_is_null): Remove.
(range_is_nonnull): Remove.
(extract_range_from_binary_expr): Use value_range_base::*zero_p
instead of range_is_*null.
(extract_range_from_unary_expr): Same.
(value_range_base::set_nonnull): Rename to...
(value_range_base::set_nonzero): ...this.
(value_range::set_nonnull): Remove.
(value_range_base::set_null): Rename to...
(value_range_base::set_zero): ...this.
(value_range::set_null): Remove.
(extract_range_from_binary_expr): Rename set_*null uses to
set_*zero.
(extract_range_from_unary_expr): Same.
(union_helper): Same.
* vr-values.c (get_value_range): Use set_*zero instead of
set_*null.
(vr_values::extract_range_from_binary_expr): Same.
(vr_values::extract_range_basic): Same.
From-SVN: r271865
Diffstat (limited to 'gcc/vr-values.c')
-rw-r--r-- | gcc/vr-values.c | 23 |
1 files changed, 18 insertions, 5 deletions
diff --git a/gcc/vr-values.c b/gcc/vr-values.c index 0e10aca..b401516 100644 --- a/gcc/vr-values.c +++ b/gcc/vr-values.c @@ -118,7 +118,10 @@ vr_values::get_value_range (const_tree var) if (POINTER_TYPE_P (TREE_TYPE (sym)) && (nonnull_arg_p (sym) || get_ptr_nonnull (var))) - vr->set_nonnull (TREE_TYPE (sym)); + { + vr->set_nonzero (TREE_TYPE (sym)); + vr->equiv_clear (); + } else if (INTEGRAL_TYPE_P (TREE_TYPE (sym))) { get_range_info (var, *vr); @@ -130,7 +133,10 @@ vr_values::get_value_range (const_tree var) } else if (TREE_CODE (sym) == RESULT_DECL && DECL_BY_REFERENCE (sym)) - vr->set_nonnull (TREE_TYPE (sym)); + { + vr->set_nonzero (TREE_TYPE (sym)); + vr->equiv_clear (); + } } return vr; @@ -858,7 +864,10 @@ vr_values::extract_range_from_binary_expr (value_range *vr, || (vr1.kind () == VR_ANTI_RANGE && vr1.min () == op0 && vr1.min () == vr1.max ()))) - vr->set_nonnull (expr_type); + { + vr->set_nonzero (expr_type); + vr->equiv_clear (); + } } /* Extract range information from a unary expression CODE OP0 based on @@ -1085,7 +1094,8 @@ vr_values::extract_range_basic (value_range *vr, gimple *stmt) && TREE_CODE (SSA_NAME_VAR (arg)) == PARM_DECL && cfun->after_inlining) { - vr->set_null (type); + vr->set_zero (type); + vr->equiv_clear (); return; } break; @@ -1392,7 +1402,10 @@ vr_values::extract_range_basic (value_range *vr, gimple *stmt) && gimple_stmt_nonnegative_warnv_p (stmt, &sop)) set_value_range_to_nonnegative (vr, type); else if (vrp_stmt_computes_nonzero (stmt)) - vr->set_nonnull (type); + { + vr->set_nonzero (type); + vr->equiv_clear (); + } else vr->set_varying (); } |