Commit 05ff4c5f by Richard Sandiford Committed by Richard Sandiford

Simplify cst_and_fits_in_hwi

While looking at the use of cst_and_fits_in_hwi in tree-ssa-loop-ivopts.c,
I had difficulty working out what the function actually tests.  The
final NUNITS check seems redundant, since it asks about the number of
HWIs in the _unextended_ constant.  We've already checked that the
unextended constant has no more than HOST_BITS_PER_WIDE_INT bits, so the
length must be 1.

I think this was my fault, sorry.

Tested on x86_64-linux-gnu and aarch64-linux-gnu.

gcc/
	* tree.c (cst_and_fits_in_hwi): Simplify.

From-SVN: r235722
parent 697e0b28
2016-05-02 Richard Sandiford <richard.sandiford@arm.com>
* tree.c (cst_and_fits_in_hwi): Simplify.
2016-05-02 Richard Sandiford <richard.sandiford@arm.com>
* tree.h (wi::to_wide): New function.
* expr.c (expand_expr_real_1): Use wi::to_wide.
* fold-const.c (int_const_binop_1): Likewise.
......
......@@ -1675,13 +1675,8 @@ build_low_bits_mask (tree type, unsigned bits)
bool
cst_and_fits_in_hwi (const_tree x)
{
if (TREE_CODE (x) != INTEGER_CST)
return false;
if (TYPE_PRECISION (TREE_TYPE (x)) > HOST_BITS_PER_WIDE_INT)
return false;
return TREE_INT_CST_NUNITS (x) == 1;
return (TREE_CODE (x) == INTEGER_CST
&& TYPE_PRECISION (TREE_TYPE (x)) <= HOST_BITS_PER_WIDE_INT);
}
/* Build a newly constructed VECTOR_CST node of length LEN. */
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment