aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-vrp.c
diff options
context:
space:
mode:
authorPatrick Palka <ppalka@gcc.gnu.org>2016-04-21 21:58:08 +0000
committerPatrick Palka <ppalka@gcc.gnu.org>2016-04-21 21:58:08 +0000
commit6e07f9aaf35eeb81ac81a521b9b5d818a5062761 (patch)
tree67a00954e4e426d546e249916de1232ca5d07565 /gcc/tree-vrp.c
parent5c71225085d9b18c54d39bc2601f080c16d99834 (diff)
downloadgcc-6e07f9aaf35eeb81ac81a521b9b5d818a5062761.zip
gcc-6e07f9aaf35eeb81ac81a521b9b5d818a5062761.tar.gz
gcc-6e07f9aaf35eeb81ac81a521b9b5d818a5062761.tar.bz2
vrp: remove redundant has_single_use tests
gcc/ChangeLog: * tree-vrp.c (register_edge_assert_for_2): Remove redundant has_single_use() tests. (register_edge_assert_for_1): Likewise. (find_assert_locations_1): Check the liveness bitmap instead of checking has_single_use(). From-SVN: r235352
Diffstat (limited to 'gcc/tree-vrp.c')
-rw-r--r--gcc/tree-vrp.c29
1 files changed, 10 insertions, 19 deletions
diff --git a/gcc/tree-vrp.c b/gcc/tree-vrp.c
index bbdf9ce..3cb470b 100644
--- a/gcc/tree-vrp.c
+++ b/gcc/tree-vrp.c
@@ -5145,8 +5145,7 @@ register_edge_assert_for_2 (tree name, edge e, gimple_stmt_iterator bsi,
/* Only register an ASSERT_EXPR if NAME was found in the sub-graph
reachable from E. */
- if (live_on_edge (e, name)
- && !has_single_use (name))
+ if (live_on_edge (e, name))
register_new_assert_for (name, name, comp_code, val, NULL, e, bsi);
/* In the case of NAME <= CST and NAME being defined as
@@ -5188,8 +5187,7 @@ register_edge_assert_for_2 (tree name, edge e, gimple_stmt_iterator bsi,
&& (cst2 == NULL_TREE
|| TREE_CODE (cst2) == INTEGER_CST)
&& INTEGRAL_TYPE_P (TREE_TYPE (name3))
- && live_on_edge (e, name3)
- && !has_single_use (name3))
+ && live_on_edge (e, name3))
{
tree tmp;
@@ -5215,8 +5213,7 @@ register_edge_assert_for_2 (tree name, edge e, gimple_stmt_iterator bsi,
&& TREE_CODE (name2) == SSA_NAME
&& TREE_CODE (cst2) == INTEGER_CST
&& INTEGRAL_TYPE_P (TREE_TYPE (name2))
- && live_on_edge (e, name2)
- && !has_single_use (name2))
+ && live_on_edge (e, name2))
{
tree tmp;
@@ -5319,8 +5316,7 @@ register_edge_assert_for_2 (tree name, edge e, gimple_stmt_iterator bsi,
tree op1 = gimple_assign_rhs2 (def_stmt);
if (TREE_CODE (op0) == SSA_NAME
&& TREE_CODE (op1) == INTEGER_CST
- && live_on_edge (e, op0)
- && !has_single_use (op0))
+ && live_on_edge (e, op0))
{
enum tree_code reverse_op = (rhs_code == PLUS_EXPR
? MINUS_EXPR : PLUS_EXPR);
@@ -5346,8 +5342,7 @@ register_edge_assert_for_2 (tree name, edge e, gimple_stmt_iterator bsi,
&& (comp_code == LE_EXPR || comp_code == GT_EXPR
|| !tree_int_cst_equal (val,
TYPE_MIN_VALUE (TREE_TYPE (val))))
- && live_on_edge (e, name2)
- && !has_single_use (name2))
+ && live_on_edge (e, name2))
{
tree tmp, cst;
enum tree_code new_comp_code = comp_code;
@@ -5392,8 +5387,7 @@ register_edge_assert_for_2 (tree name, edge e, gimple_stmt_iterator bsi,
&& INTEGRAL_TYPE_P (TREE_TYPE (name2))
&& IN_RANGE (tree_to_uhwi (cst2), 1, prec - 1)
&& prec == GET_MODE_PRECISION (TYPE_MODE (TREE_TYPE (val)))
- && live_on_edge (e, name2)
- && !has_single_use (name2))
+ && live_on_edge (e, name2))
{
mask = wi::mask (tree_to_uhwi (cst2), false, prec);
val2 = fold_binary (LSHIFT_EXPR, TREE_TYPE (val), val, cst2);
@@ -5498,12 +5492,10 @@ register_edge_assert_for_2 (tree name, edge e, gimple_stmt_iterator bsi,
|| !INTEGRAL_TYPE_P (TREE_TYPE (names[1]))
|| (TYPE_PRECISION (TREE_TYPE (name2))
!= TYPE_PRECISION (TREE_TYPE (names[1])))
- || !live_on_edge (e, names[1])
- || has_single_use (names[1]))
+ || !live_on_edge (e, names[1]))
names[1] = NULL_TREE;
}
- if (live_on_edge (e, name2)
- && !has_single_use (name2))
+ if (live_on_edge (e, name2))
names[0] = name2;
}
}
@@ -5724,8 +5716,7 @@ register_edge_assert_for_1 (tree op, enum tree_code code,
/* We know that OP will have a zero or nonzero value. If OP is used
more than once go ahead and register an assert for OP. */
- if (live_on_edge (e, op)
- && !has_single_use (op))
+ if (live_on_edge (e, op))
{
val = build_int_cst (TREE_TYPE (op), 0);
register_new_assert_for (op, op, code, val, NULL, e, bsi);
@@ -6158,7 +6149,7 @@ find_assert_locations_1 (basic_block bb, sbitmap live)
/* Note we want to register the assert for the
operand of the NOP_EXPR after SI, not after the
conversion. */
- if (! has_single_use (t))
+ if (bitmap_bit_p (live, SSA_NAME_VERSION (t)))
register_new_assert_for (t, t, comp_code, value,
bb, NULL, si);
}