diff options
author | Trevor Saunders <tbsaunde+gcc@tbsaunde.org> | 2015-07-09 02:49:51 +0000 |
---|---|---|
committer | Trevor Saunders <tbsaunde@gcc.gnu.org> | 2015-07-09 02:49:51 +0000 |
commit | f1657f05ef0fbc5183051de277141159f15a9472 (patch) | |
tree | e4dc3a562a1e0900ee3ab1384aba87e00500bcef /gcc/fold-const.c | |
parent | 1acfc9ca30d79133bca85399440c0d7fa123fb51 (diff) | |
download | gcc-f1657f05ef0fbc5183051de277141159f15a9472.zip gcc-f1657f05ef0fbc5183051de277141159f15a9472.tar.gz gcc-f1657f05ef0fbc5183051de277141159f15a9472.tar.bz2 |
reduce conditional compilation for LOAD_EXTEND_OP
Provide a default in files where that is possible, so that everything
else there can be unconditionally compiled. However rtlanal.c and
reload.c do tricky things that break providing a global default, so we
can't do that yet.
gcc/ChangeLog:
2015-07-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
* combine.c (try_combine): Don't check if LOAD_EXTEND_OP is
defined.
(simplify_set): Likewise.
* cse.c (cse_insn): Likewise.
* fold-const.c (fold_single_bit_test): Likewise.
(fold_unary_loc): Likewise.
* postreload.c (reload_cse_simplify_set): Likewise.
(reload_cse_simplify_operands): Likewise.
From-SVN: r225591
Diffstat (limited to 'gcc/fold-const.c')
-rw-r--r-- | gcc/fold-const.c | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/gcc/fold-const.c b/gcc/fold-const.c index 0ad7d86..61eee4a 100644 --- a/gcc/fold-const.c +++ b/gcc/fold-const.c @@ -77,6 +77,10 @@ along with GCC; see the file COPYING3. If not see #include "generic-match.h" #include "optabs.h" +#ifndef LOAD_EXTEND_OP +#define LOAD_EXTEND_OP(M) UNKNOWN +#endif + /* Nonzero if we are folding constants inside an initializer; zero otherwise. */ int folding_initializer = 0; @@ -6646,12 +6650,8 @@ fold_single_bit_test (location_t loc, enum tree_code code, /* If we are going to be able to omit the AND below, we must do our operations as unsigned. If we must use the AND, we have a choice. Normally unsigned is faster, but for some machines signed is. */ -#ifdef LOAD_EXTEND_OP ops_unsigned = (LOAD_EXTEND_OP (operand_mode) == SIGN_EXTEND && !flag_syntax_only) ? 0 : 1; -#else - ops_unsigned = 1; -#endif signed_type = lang_hooks.types.type_for_mode (operand_mode, 0); unsigned_type = lang_hooks.types.type_for_mode (operand_mode, 1); @@ -7815,7 +7815,6 @@ fold_unary_loc (location_t loc, enum tree_code code, tree type, tree op0) cst &= HOST_WIDE_INT_M1U << (TYPE_PRECISION (TREE_TYPE (and1)) - 1); change = (cst == 0); -#ifdef LOAD_EXTEND_OP if (change && !flag_syntax_only && (LOAD_EXTEND_OP (TYPE_MODE (TREE_TYPE (and0))) @@ -7825,7 +7824,6 @@ fold_unary_loc (location_t loc, enum tree_code code, tree type, tree op0) and0 = fold_convert_loc (loc, uns, and0); and1 = fold_convert_loc (loc, uns, and1); } -#endif } if (change) { |