aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-vrp.c
diff options
context:
space:
mode:
authorRichard Biener <rguenther@suse.de>2021-07-16 14:53:42 +0200
committerRichard Biener <rguenther@suse.de>2021-07-19 07:59:43 +0200
commit4a21a8c34a707e88f450375e3c7d593be75162f4 (patch)
treee7bc4d81323b916aa15380088689036ea0111147 /gcc/tree-vrp.c
parentbdea84c4b5773723fa3ac7fa01f33542093864d5 (diff)
downloadgcc-4a21a8c34a707e88f450375e3c7d593be75162f4.zip
gcc-4a21a8c34a707e88f450375e3c7d593be75162f4.tar.gz
gcc-4a21a8c34a707e88f450375e3c7d593be75162f4.tar.bz2
Remove gimple_expr_type uses from value-range code
This removes the last uses from value-range code. 2021-07-16 Richard Biener <rguenther@suse.de> * tree-vrp.c (register_edge_assert_for_2): Use the type from the LHS. (vrp_folder::fold_predicate_in): Likewise. * vr-values.c (gimple_assign_nonzero_p): Likewise. (vr_values::extract_range_from_comparison): Likewise. (vr_values::extract_range_from_ubsan_builtin): Use the type of the first operand. (vr_values::extract_range_basic): Push down type computation, use the appropriate LHS. (vr_values::extract_range_from_assignment): Use the type of the LHS.
Diffstat (limited to 'gcc/tree-vrp.c')
-rw-r--r--gcc/tree-vrp.c14
1 files changed, 7 insertions, 7 deletions
diff --git a/gcc/tree-vrp.c b/gcc/tree-vrp.c
index 0565c9b..a9c31bc 100644
--- a/gcc/tree-vrp.c
+++ b/gcc/tree-vrp.c
@@ -1484,13 +1484,13 @@ register_edge_assert_for_2 (tree name, edge e,
}
/* Extract NAME2 from the (optional) sign-changing cast. */
- if (gimple_assign_cast_p (def_stmt))
+ if (gassign *ass = dyn_cast <gassign *> (def_stmt))
{
- if (CONVERT_EXPR_CODE_P (gimple_assign_rhs_code (def_stmt))
- && ! TYPE_UNSIGNED (TREE_TYPE (gimple_assign_rhs1 (def_stmt)))
- && (TYPE_PRECISION (gimple_expr_type (def_stmt))
- == TYPE_PRECISION (TREE_TYPE (gimple_assign_rhs1 (def_stmt)))))
- name3 = gimple_assign_rhs1 (def_stmt);
+ if (CONVERT_EXPR_CODE_P (gimple_assign_rhs_code (ass))
+ && ! TYPE_UNSIGNED (TREE_TYPE (gimple_assign_rhs1 (ass)))
+ && (TYPE_PRECISION (TREE_TYPE (gimple_assign_lhs (ass)))
+ == TYPE_PRECISION (TREE_TYPE (gimple_assign_rhs1 (ass)))))
+ name3 = gimple_assign_rhs1 (ass);
}
/* If name3 is used later, create an ASSERT_EXPR for it. */
@@ -4119,7 +4119,7 @@ vrp_folder::fold_predicate_in (gimple_stmt_iterator *si)
if (val)
{
if (assignment_p)
- val = fold_convert (gimple_expr_type (stmt), val);
+ val = fold_convert (TREE_TYPE (gimple_assign_lhs (stmt)), val);
if (dump_file)
{