aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree.c
diff options
context:
space:
mode:
authorRichard Sandiford <richard.sandiford@arm.com>2016-05-02 09:40:32 +0000
committerRichard Sandiford <rsandifo@gcc.gnu.org>2016-05-02 09:40:32 +0000
commit05ff4c5fa71037322916d2936dce3f762357c647 (patch)
treebfbee29e0058f39e7d014ec7b5ba08ce5fe1af90 /gcc/tree.c
parent697e0b28cca9e5f3e1ee59131c048ef93014fb2f (diff)
downloadgcc-05ff4c5fa71037322916d2936dce3f762357c647.zip
gcc-05ff4c5fa71037322916d2936dce3f762357c647.tar.gz
gcc-05ff4c5fa71037322916d2936dce3f762357c647.tar.bz2
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
Diffstat (limited to 'gcc/tree.c')
-rw-r--r--gcc/tree.c9
1 files changed, 2 insertions, 7 deletions
diff --git a/gcc/tree.c b/gcc/tree.c
index 8ec2d5c..f7366f6 100644
--- a/gcc/tree.c
+++ b/gcc/tree.c
@@ -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. */