Simplify cst_and_fits_in_hwi
authorRichard Sandiford <richard.sandiford@arm.com>
Mon, 2 May 2016 09:40:32 +0000 (09:40 +0000)
committerRichard Sandiford <rsandifo@gcc.gnu.org>
Mon, 2 May 2016 09:40:32 +0000 (09:40 +0000)
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

gcc/ChangeLog
gcc/tree.c

index 7b1c8389cadac192e15aa742ad7a1306eb354e3e..7ea67aaf2ae64adebcbbf93d02efa7d6afea5d7b 100644 (file)
@@ -1,3 +1,7 @@
+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.
index 8ec2d5c146c1d5e31838b4167c16ff7e05f596a7..f7366f63402481bcbf0777379a741f1595cea96c 100644 (file)
@@ -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.  */