tree.h (tree_int_cst_msb): Remove.
2011-08-18 Richard Guenther <rguenther@suse.de> * tree.h (tree_int_cst_msb): Remove. * tree.c (tree_int_cst_msb): Likewise. (tree_int_cst_sign_bit): Move from ... * tree-ssa-loop-ivopts.c (tree_int_cst_sign_bit): ... here. From-SVN: r177853
This commit is contained in:
parent
68f932c443
commit
6b8045e1bb
4 changed files with 20 additions and 32 deletions
|
@ -1,3 +1,10 @@
|
|||
2011-08-18 Richard Guenther <rguenther@suse.de>
|
||||
|
||||
* tree.h (tree_int_cst_msb): Remove.
|
||||
* tree.c (tree_int_cst_msb): Likewise.
|
||||
(tree_int_cst_sign_bit): Move from ...
|
||||
* tree-ssa-loop-ivopts.c (tree_int_cst_sign_bit): ... here.
|
||||
|
||||
2011-08-18 Richard Sandiford <richard.sandiford@linaro.org>
|
||||
|
||||
* doc/tm.texi.in (TARGET_RTX_COSTS): Add an opno paramter.
|
||||
|
|
|
@ -2892,26 +2892,6 @@ var_at_stmt (struct loop *loop, struct iv_cand *cand, gimple stmt)
|
|||
return cand->var_before;
|
||||
}
|
||||
|
||||
/* Return the most significant (sign) bit of T. Similar to tree_int_cst_msb,
|
||||
but the bit is determined from TYPE_PRECISION, not MODE_BITSIZE. */
|
||||
|
||||
int
|
||||
tree_int_cst_sign_bit (const_tree t)
|
||||
{
|
||||
unsigned bitno = TYPE_PRECISION (TREE_TYPE (t)) - 1;
|
||||
unsigned HOST_WIDE_INT w;
|
||||
|
||||
if (bitno < HOST_BITS_PER_WIDE_INT)
|
||||
w = TREE_INT_CST_LOW (t);
|
||||
else
|
||||
{
|
||||
w = TREE_INT_CST_HIGH (t);
|
||||
bitno -= HOST_BITS_PER_WIDE_INT;
|
||||
}
|
||||
|
||||
return (w >> bitno) & 1;
|
||||
}
|
||||
|
||||
/* If A is (TYPE) BA and B is (TYPE) BB, and the types of BA and BB have the
|
||||
same precision that is at least as wide as the precision of TYPE, stores
|
||||
BA to A and BB to B, and returns the type of BA. Otherwise, returns the
|
||||
|
|
24
gcc/tree.c
24
gcc/tree.c
|
@ -6513,21 +6513,23 @@ tree_low_cst (const_tree t, int pos)
|
|||
return TREE_INT_CST_LOW (t);
|
||||
}
|
||||
|
||||
/* Return the most significant bit of the integer constant T. */
|
||||
/* Return the most significant (sign) bit of T. */
|
||||
|
||||
int
|
||||
tree_int_cst_msb (const_tree t)
|
||||
tree_int_cst_sign_bit (const_tree t)
|
||||
{
|
||||
int prec;
|
||||
HOST_WIDE_INT h;
|
||||
unsigned HOST_WIDE_INT l;
|
||||
unsigned bitno = TYPE_PRECISION (TREE_TYPE (t)) - 1;
|
||||
unsigned HOST_WIDE_INT w;
|
||||
|
||||
/* Note that using TYPE_PRECISION here is wrong. We care about the
|
||||
actual bits, not the (arbitrary) range of the type. */
|
||||
prec = GET_MODE_BITSIZE (TYPE_MODE (TREE_TYPE (t))) - 1;
|
||||
rshift_double (TREE_INT_CST_LOW (t), TREE_INT_CST_HIGH (t), prec,
|
||||
2 * HOST_BITS_PER_WIDE_INT, &l, &h, 0);
|
||||
return (l & 1) == 1;
|
||||
if (bitno < HOST_BITS_PER_WIDE_INT)
|
||||
w = TREE_INT_CST_LOW (t);
|
||||
else
|
||||
{
|
||||
w = TREE_INT_CST_HIGH (t);
|
||||
bitno -= HOST_BITS_PER_WIDE_INT;
|
||||
}
|
||||
|
||||
return (w >> bitno) & 1;
|
||||
}
|
||||
|
||||
/* Return an indication of the sign of the integer constant T.
|
||||
|
|
|
@ -4380,7 +4380,6 @@ tree_low_cst (const_tree t, int pos)
|
|||
return TREE_INT_CST_LOW (t);
|
||||
}
|
||||
#endif
|
||||
extern int tree_int_cst_msb (const_tree);
|
||||
extern int tree_int_cst_sgn (const_tree);
|
||||
extern int tree_int_cst_sign_bit (const_tree);
|
||||
extern unsigned int tree_int_cst_min_precision (tree, bool);
|
||||
|
|
Loading…
Add table
Reference in a new issue