tree.h (tree_fits_shwi_p, [...]): Declare.
gcc/ * tree.h (tree_fits_shwi_p, tree_fits_uhwi_p): Declare. * tree.c (tree_fits_shwi_p, tree_fits_uhwi_p): Define. From-SVN: r204954
This commit is contained in:
parent
a2ca7c8cb9
commit
b04268a57f
|
@ -1,3 +1,8 @@
|
|||
2013-11-18 Richard Sandiford <rdsandiford@googlemail.com>
|
||||
|
||||
* tree.h (tree_fits_shwi_p, tree_fits_uhwi_p): Declare.
|
||||
* tree.c (tree_fits_shwi_p, tree_fits_uhwi_p): Define.
|
||||
|
||||
2013-11-18 Kirill Yukhin <kirill.yukhin@intel.com>
|
||||
|
||||
* gcc/config/ia64/ia64.c (ia64_split_tmode_move): Mark
|
||||
|
|
26
gcc/tree.c
26
gcc/tree.c
|
@ -6990,6 +6990,32 @@ host_integerp (const_tree t, int pos)
|
|||
|| (pos && TREE_INT_CST_HIGH (t) == 0)));
|
||||
}
|
||||
|
||||
/* Return true if T is an INTEGER_CST whose numerical value (extended
|
||||
according to TYPE_UNSIGNED) fits in a signed HOST_WIDE_INT. */
|
||||
|
||||
bool
|
||||
tree_fits_shwi_p (const_tree t)
|
||||
{
|
||||
return (t != NULL_TREE
|
||||
&& TREE_CODE (t) == INTEGER_CST
|
||||
&& ((TREE_INT_CST_HIGH (t) == 0
|
||||
&& (HOST_WIDE_INT) TREE_INT_CST_LOW (t) >= 0)
|
||||
|| (TREE_INT_CST_HIGH (t) == -1
|
||||
&& (HOST_WIDE_INT) TREE_INT_CST_LOW (t) < 0
|
||||
&& !TYPE_UNSIGNED (TREE_TYPE (t)))));
|
||||
}
|
||||
|
||||
/* Return true if T is an INTEGER_CST whose numerical value (extended
|
||||
according to TYPE_UNSIGNED) fits in an unsigned HOST_WIDE_INT. */
|
||||
|
||||
bool
|
||||
tree_fits_uhwi_p (const_tree t)
|
||||
{
|
||||
return (t != NULL_TREE
|
||||
&& TREE_CODE (t) == INTEGER_CST
|
||||
&& TREE_INT_CST_HIGH (t) == 0);
|
||||
}
|
||||
|
||||
/* Return the HOST_WIDE_INT least significant bits of T if it is an
|
||||
INTEGER_CST and there is no overflow. POS is nonzero if the result must
|
||||
be non-negative. We must be able to satisfy the above conditions. */
|
||||
|
|
10
gcc/tree.h
10
gcc/tree.h
|
@ -3662,6 +3662,16 @@ extern int host_integerp (const_tree, int)
|
|||
ATTRIBUTE_PURE /* host_integerp is pure only when checking is disabled. */
|
||||
#endif
|
||||
;
|
||||
extern bool tree_fits_shwi_p (const_tree)
|
||||
#ifndef ENABLE_TREE_CHECKING
|
||||
ATTRIBUTE_PURE /* tree_fits_shwi_p is pure only when checking is disabled. */
|
||||
#endif
|
||||
;
|
||||
extern bool tree_fits_uhwi_p (const_tree)
|
||||
#ifndef ENABLE_TREE_CHECKING
|
||||
ATTRIBUTE_PURE /* tree_fits_uhwi_p is pure only when checking is disabled. */
|
||||
#endif
|
||||
;
|
||||
extern HOST_WIDE_INT tree_low_cst (const_tree, int);
|
||||
#if !defined ENABLE_TREE_CHECKING && (GCC_VERSION >= 4003)
|
||||
extern inline __attribute__ ((__gnu_inline__)) HOST_WIDE_INT
|
||||
|
|
Loading…
Reference in New Issue