diff options
author | Paolo Bonzini <bonzini@gnu.org> | 2009-03-30 08:20:32 +0000 |
---|---|---|
committer | Paolo Bonzini <bonzini@gcc.gnu.org> | 2009-03-30 08:20:32 +0000 |
commit | 28ddeea115cc0a6e9eddfae00905a9fb739f2503 (patch) | |
tree | 5b140417cc664479b9a3f420cad41ed2b1c99243 /gcc | |
parent | ebfd146af752ce6aa298f866e36f9a7e66e32ec5 (diff) | |
download | gcc-28ddeea115cc0a6e9eddfae00905a9fb739f2503.zip gcc-28ddeea115cc0a6e9eddfae00905a9fb739f2503.tar.gz gcc-28ddeea115cc0a6e9eddfae00905a9fb739f2503.tar.bz2 |
fold-const.c (const_binop, [...]): Do not set TREE_CONSTANT_OVERFLOW.
2009-03-30 Paolo Bonzini <bonzini@gnu.org>
* fold-const.c (const_binop, fold_convert_const_real_from_fixed,
fold_convert_const_fixed_from_fixed,
fold_convert_const_fixed_from_int,
fold_convert_const_fixed_from_real, fold_negate_const): Do not
set TREE_CONSTANT_OVERFLOW.
* tree.def: Remove mention of TREE_CONSTANT_OVERFLOW.
* tree.h (TREE_CONSTANT_OVERFLOW): Delete.
From-SVN: r145281
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 10 | ||||
-rw-r--r-- | gcc/fold-const.c | 37 | ||||
-rw-r--r-- | gcc/tree.def | 5 | ||||
-rw-r--r-- | gcc/tree.h | 3 |
4 files changed, 17 insertions, 38 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 77ba264..e4b3d9e 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,13 @@ +2009-03-30 Paolo Bonzini <bonzini@gnu.org> + + * fold-const.c (const_binop, fold_convert_const_real_from_fixed, + fold_convert_const_fixed_from_fixed, + fold_convert_const_fixed_from_int, + fold_convert_const_fixed_from_real, fold_negate_const): Do not + set TREE_CONSTANT_OVERFLOW. + * tree.def: Remove mention of TREE_CONSTANT_OVERFLOW. + * tree.h (TREE_CONSTANT_OVERFLOW): Delete. + 2009-03-30 Ira Rosen <irar@il.ibm.com> * tree-vect-loop-manip.c: New file. diff --git a/gcc/fold-const.c b/gcc/fold-const.c index a68b7b8..a56e885 100644 --- a/gcc/fold-const.c +++ b/gcc/fold-const.c @@ -1932,12 +1932,7 @@ const_binop (enum tree_code code, tree arg1, tree arg2, int notrunc) t = build_fixed (type, result); /* Propagate overflow flags. */ if (overflow_p | TREE_OVERFLOW (arg1) | TREE_OVERFLOW (arg2)) - { - TREE_OVERFLOW (t) = 1; - TREE_CONSTANT_OVERFLOW (t) = 1; - } - else if (TREE_CONSTANT_OVERFLOW (arg1) | TREE_CONSTANT_OVERFLOW (arg2)) - TREE_CONSTANT_OVERFLOW (t) = 1; + TREE_OVERFLOW (t) = 1; return t; } @@ -2304,8 +2299,6 @@ fold_convert_const_real_from_fixed (tree type, const_tree arg1) t = build_real (type, value); TREE_OVERFLOW (t) = TREE_OVERFLOW (arg1); - TREE_CONSTANT_OVERFLOW (t) - = TREE_OVERFLOW (t) | TREE_CONSTANT_OVERFLOW (arg1); return t; } @@ -2325,12 +2318,7 @@ fold_convert_const_fixed_from_fixed (tree type, const_tree arg1) /* Propagate overflow flags. */ if (overflow_p | TREE_OVERFLOW (arg1)) - { - TREE_OVERFLOW (t) = 1; - TREE_CONSTANT_OVERFLOW (t) = 1; - } - else if (TREE_CONSTANT_OVERFLOW (arg1)) - TREE_CONSTANT_OVERFLOW (t) = 1; + TREE_OVERFLOW (t) = 1; return t; } @@ -2352,12 +2340,7 @@ fold_convert_const_fixed_from_int (tree type, const_tree arg1) /* Propagate overflow flags. */ if (overflow_p | TREE_OVERFLOW (arg1)) - { - TREE_OVERFLOW (t) = 1; - TREE_CONSTANT_OVERFLOW (t) = 1; - } - else if (TREE_CONSTANT_OVERFLOW (arg1)) - TREE_CONSTANT_OVERFLOW (t) = 1; + TREE_OVERFLOW (t) = 1; return t; } @@ -2378,12 +2361,7 @@ fold_convert_const_fixed_from_real (tree type, const_tree arg1) /* Propagate overflow flags. */ if (overflow_p | TREE_OVERFLOW (arg1)) - { - TREE_OVERFLOW (t) = 1; - TREE_CONSTANT_OVERFLOW (t) = 1; - } - else if (TREE_CONSTANT_OVERFLOW (arg1)) - TREE_CONSTANT_OVERFLOW (t) = 1; + TREE_OVERFLOW (t) = 1; return t; } @@ -15228,12 +15206,7 @@ fold_negate_const (tree arg0, tree type) t = build_fixed (type, f); /* Propagate overflow flags. */ if (overflow_p | TREE_OVERFLOW (arg0)) - { - TREE_OVERFLOW (t) = 1; - TREE_CONSTANT_OVERFLOW (t) = 1; - } - else if (TREE_CONSTANT_OVERFLOW (arg0)) - TREE_CONSTANT_OVERFLOW (t) = 1; + TREE_OVERFLOW (t) = 1; break; } diff --git a/gcc/tree.def b/gcc/tree.def index 21f4db0..a8836c9 100644 --- a/gcc/tree.def +++ b/gcc/tree.def @@ -268,9 +268,8 @@ DEFTREECODE (LANG_TYPE, "lang_type", tcc_type, 0) /* Contents are in TREE_INT_CST_LOW and TREE_INT_CST_HIGH fields, 32 bits each, giving us a 64 bit constant capability. INTEGER_CST nodes can be shared, and therefore should be considered read only. - They should be copied, before setting a flag such as - TREE_OVERFLOW. If an INTEGER_CST has TREE_OVERFLOW or - TREE_CONSTANT_OVERFLOW already set, it is known to be unique. + They should be copied, before setting a flag such as TREE_OVERFLOW. + If an INTEGER_CST has TREE_OVERFLOW already set, it is known to be unique. INTEGER_CST nodes are created for the integral types, for pointer types and for vector and float types in some circumstances. */ DEFTREECODE (INTEGER_CST, "integer_cst", tcc_constant, 0) @@ -1186,9 +1186,6 @@ extern void omp_clause_range_check_failed (const_tree, const char *, int, #define TREE_OVERFLOW(NODE) (CST_CHECK (NODE)->base.public_flag) -/* ??? This is an obsolete synonym for TREE_OVERFLOW. */ -#define TREE_CONSTANT_OVERFLOW(NODE) TREE_OVERFLOW(NODE) - /* TREE_OVERFLOW can only be true for EXPR of CONSTANT_CLASS_P. */ #define TREE_OVERFLOW_P(EXPR) \ |