From 6a1cf0d0d9cbf79f30aa5d76bca19615f12ea57f Mon Sep 17 00:00:00 2001 From: Aldy Hernandez Date: Thu, 15 Jun 2023 17:46:02 +0200 Subject: Move maybe_set_nonzero_bits() to its only user. gcc/ChangeLog: * tree-vrp.cc (maybe_set_nonzero_bits): Move from here... * tree-ssa-dom.cc (maybe_set_nonzero_bits): ...to here. * tree-vrp.h (maybe_set_nonzero_bits): Remove. --- gcc/tree-vrp.cc | 65 --------------------------------------------------------- 1 file changed, 65 deletions(-) (limited to 'gcc/tree-vrp.cc') diff --git a/gcc/tree-vrp.cc b/gcc/tree-vrp.cc index c52e997..d61b087 100644 --- a/gcc/tree-vrp.cc +++ b/gcc/tree-vrp.cc @@ -633,71 +633,6 @@ overflow_comparison_p (tree_code code, tree name, tree val, tree *new_cst) true, new_cst); } -/* Handle - _4 = x_3 & 31; - if (_4 != 0) - goto ; - else - goto ; - : - __builtin_unreachable (); - : - - If x_3 has no other immediate uses (checked by caller), var is the - x_3 var, we can clear low 5 bits from the non-zero bitmask. */ - -void -maybe_set_nonzero_bits (edge e, tree var) -{ - basic_block cond_bb = e->src; - gcond *cond = safe_dyn_cast (*gsi_last_bb (cond_bb)); - tree cst; - - if (cond == NULL - || gimple_cond_code (cond) != ((e->flags & EDGE_TRUE_VALUE) - ? EQ_EXPR : NE_EXPR) - || TREE_CODE (gimple_cond_lhs (cond)) != SSA_NAME - || !integer_zerop (gimple_cond_rhs (cond))) - return; - - gimple *stmt = SSA_NAME_DEF_STMT (gimple_cond_lhs (cond)); - if (!is_gimple_assign (stmt) - || gimple_assign_rhs_code (stmt) != BIT_AND_EXPR - || TREE_CODE (gimple_assign_rhs2 (stmt)) != INTEGER_CST) - return; - if (gimple_assign_rhs1 (stmt) != var) - { - gimple *stmt2; - - if (TREE_CODE (gimple_assign_rhs1 (stmt)) != SSA_NAME) - return; - stmt2 = SSA_NAME_DEF_STMT (gimple_assign_rhs1 (stmt)); - if (!gimple_assign_cast_p (stmt2) - || gimple_assign_rhs1 (stmt2) != var - || !CONVERT_EXPR_CODE_P (gimple_assign_rhs_code (stmt2)) - || (TYPE_PRECISION (TREE_TYPE (gimple_assign_rhs1 (stmt))) - != TYPE_PRECISION (TREE_TYPE (var)))) - return; - } - cst = gimple_assign_rhs2 (stmt); - if (POINTER_TYPE_P (TREE_TYPE (var))) - { - struct ptr_info_def *pi = SSA_NAME_PTR_INFO (var); - if (pi && pi->misalign) - return; - wide_int w = wi::bit_not (wi::to_wide (cst)); - unsigned int bits = wi::ctz (w); - if (bits == 0 || bits >= HOST_BITS_PER_INT) - return; - unsigned int align = 1U << bits; - if (pi == NULL || pi->align < align) - set_ptr_info_alignment (get_ptr_info (var), align, 0); - } - else - set_nonzero_bits (var, wi::bit_and_not (get_nonzero_bits (var), - wi::to_wide (cst))); -} - /* Searches the case label vector VEC for the index *IDX of the CASE_LABEL that includes the value VAL. The search is restricted to the range [START_IDX, n - 1] where n is the size of VEC. -- cgit v1.1