aboutsummaryrefslogtreecommitdiff
path: root/gcc/fold-const.c
diff options
context:
space:
mode:
authorNathan Sidwell <nathan@codesourcery.com>2004-08-20 14:28:28 +0000
committerNathan Sidwell <nathan@gcc.gnu.org>2004-08-20 14:28:28 +0000
commitfabead06137e34773b26c619b0085e2c03e06f4d (patch)
treed3da5d39adba6b1b0e4d10a71161c188470c2bbc /gcc/fold-const.c
parent3224beadb4cebe8137600efe3d13082f40076cc1 (diff)
downloadgcc-fabead06137e34773b26c619b0085e2c03e06f4d.zip
gcc-fabead06137e34773b26c619b0085e2c03e06f4d.tar.gz
gcc-fabead06137e34773b26c619b0085e2c03e06f4d.tar.bz2
fold-const.c (int_const_binop): Don't generate non-overflowing size-types specially.
* fold-const.c (int_const_binop): Don't generate non-overflowing size-types specially. (fold_convert_const): Likewise. From-SVN: r86321
Diffstat (limited to 'gcc/fold-const.c')
-rw-r--r--gcc/fold-const.c18
1 files changed, 1 insertions, 17 deletions
diff --git a/gcc/fold-const.c b/gcc/fold-const.c
index 092712b..2384bd1 100644
--- a/gcc/fold-const.c
+++ b/gcc/fold-const.c
@@ -1412,16 +1412,7 @@ int_const_binop (enum tree_code code, tree arg1, tree arg2, int notrunc)
abort ();
}
- /* If this is for a sizetype, can be represented as one (signed)
- HOST_WIDE_INT word, and doesn't overflow, use size_int since it caches
- constants. */
- if (is_sizetype
- && ((hi == 0 && (HOST_WIDE_INT) low >= 0)
- || (hi == -1 && (HOST_WIDE_INT) low < 0))
- && overflow == 0 && ! TREE_OVERFLOW (arg1) && ! TREE_OVERFLOW (arg2))
- return size_int_type (low, type);
- else
- t = build_int_cst (TREE_TYPE (arg1), low, hi);
+ t = build_int_cst (TREE_TYPE (arg1), low, hi);
if (notrunc)
{
@@ -1783,13 +1774,6 @@ fold_convert_const (enum tree_code code, tree type, tree arg1)
if (TYPE_PRECISION (type) > 2 * HOST_BITS_PER_WIDE_INT)
return NULL_TREE;
- /* If we are trying to make a sizetype for a small integer, use
- size_int to pick up cached types to reduce duplicate nodes. */
- if (TREE_CODE (type) == INTEGER_TYPE && TYPE_IS_SIZETYPE (type)
- && !TREE_CONSTANT_OVERFLOW (arg1)
- && compare_tree_int (arg1, 10000) < 0)
- return size_int_type (TREE_INT_CST_LOW (arg1), type);
-
/* Given an integer constant, make new constant with new type,
appropriately sign-extended or truncated. */
t = build_int_cst (type, TREE_INT_CST_LOW (arg1),