From fabead06137e34773b26c619b0085e2c03e06f4d Mon Sep 17 00:00:00 2001 From: Nathan Sidwell Date: Fri, 20 Aug 2004 14:28:28 +0000 Subject: [PATCH] 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 --- gcc/ChangeLog | 4 ++++ gcc/fold-const.c | 18 +----------------- 2 files changed, 5 insertions(+), 17 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index d6bba043dc4..d0e31e46676 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,9 @@ 2004-08-20 Nathan Sidwell + * fold-const.c (int_const_binop): Don't generate non-overflowing + size-types specially. + (fold_convert_const): Likewise. + * stor-layout.c (initialize_sizetypes): Set SIZETYPE earlier, clear cache on copied sizetype. diff --git a/gcc/fold-const.c b/gcc/fold-const.c index 092712bad95..2384bd1dd23 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), -- 2.30.2