aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorKazu Hirata <kazu@cs.umass.edu>2003-12-20 01:40:41 +0000
committerKazu Hirata <kazu@gcc.gnu.org>2003-12-20 01:40:41 +0000
commit020036b90ebb42cee83694d332800d98960f9e6b (patch)
tree92dd66bd04990b86de6351556965618d10ea0d86 /gcc
parent750e3ed363f683db52807d6137eb676212f9df8b (diff)
downloadgcc-020036b90ebb42cee83694d332800d98960f9e6b.zip
gcc-020036b90ebb42cee83694d332800d98960f9e6b.tar.gz
gcc-020036b90ebb42cee83694d332800d98960f9e6b.tar.bz2
expr.c (check_max_integer_computation_mode): Remove.
* expr.c (check_max_integer_computation_mode): Remove. * dojump.c (do_jump): Don't use MAX_INTEGER_COMPUTATION_MODE. * fold-const.c (fold): Likewise. * system.h (MAX_INTEGER_COMPUTATION_MODE): Poison. * doc/tm.texi (MAX_INTEGER_COMPUTATION_MODE): Remove. From-SVN: r74868
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog8
-rw-r--r--gcc/doc/tm.texi9
-rw-r--r--gcc/dojump.c4
-rw-r--r--gcc/expr.c97
-rw-r--r--gcc/fold-const.c3
-rw-r--r--gcc/system.h2
6 files changed, 9 insertions, 114 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 20b8acf..5528fd7 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,11 @@
+2003-12-19 Kazu Hirata <kazu@cs.umass.edu>
+
+ * expr.c (check_max_integer_computation_mode): Remove.
+ * dojump.c (do_jump): Don't use MAX_INTEGER_COMPUTATION_MODE.
+ * fold-const.c (fold): Likewise.
+ * system.h (MAX_INTEGER_COMPUTATION_MODE): Poison.
+ * doc/tm.texi (MAX_INTEGER_COMPUTATION_MODE): Remove.
+
2003-12-19 James E Wilson <wilson@specifixinc.com>
* configure.in: Delete libunwind_has_eh_support test.
diff --git a/gcc/doc/tm.texi b/gcc/doc/tm.texi
index 028e59d..d6568c9 100644
--- a/gcc/doc/tm.texi
+++ b/gcc/doc/tm.texi
@@ -8940,15 +8940,6 @@ A C statement that adds to @var{clobbers} @code{STRING_CST} trees for
any hard regs the port wishes to automatically clobber for all asms.
@end defmac
-@defmac MAX_INTEGER_COMPUTATION_MODE
-Define this to the largest integer machine mode which can be used for
-operations other than load, store and copy operations.
-
-You need only define this macro if the target holds values larger than
-@code{word_mode} in general purpose registers. Most targets should not define
-this macro.
-@end defmac
-
@defmac MATH_LIBRARY
Define this macro as a C string constant for the linker argument to link
in the system math library, or @samp{""} if the target does not have a
diff --git a/gcc/dojump.c b/gcc/dojump.c
index 1f938a8..6b9569b 100644
--- a/gcc/dojump.c
+++ b/gcc/dojump.c
@@ -126,10 +126,6 @@ do_jump (tree exp, rtx if_false_label, rtx if_true_label)
tree type;
enum machine_mode mode;
-#ifdef MAX_INTEGER_COMPUTATION_MODE
- check_max_integer_computation_mode (exp);
-#endif
-
emit_queue ();
switch (code)
diff --git a/gcc/expr.c b/gcc/expr.c
index cdae28c..93ab7e0 100644
--- a/gcc/expr.c
+++ b/gcc/expr.c
@@ -5943,60 +5943,6 @@ var_rtx (tree exp)
return 0;
}
}
-
-#ifdef MAX_INTEGER_COMPUTATION_MODE
-
-void
-check_max_integer_computation_mode (tree exp)
-{
- enum tree_code code;
- enum machine_mode mode;
-
- /* Strip any NOPs that don't change the mode. */
- STRIP_NOPS (exp);
- code = TREE_CODE (exp);
-
- /* We must allow conversions of constants to MAX_INTEGER_COMPUTATION_MODE. */
- if (code == NOP_EXPR
- && TREE_CODE (TREE_OPERAND (exp, 0)) == INTEGER_CST)
- return;
-
- /* First check the type of the overall operation. We need only look at
- unary, binary and relational operations. */
- if (TREE_CODE_CLASS (code) == '1'
- || TREE_CODE_CLASS (code) == '2'
- || TREE_CODE_CLASS (code) == '<')
- {
- mode = TYPE_MODE (TREE_TYPE (exp));
- if (GET_MODE_CLASS (mode) == MODE_INT
- && mode > MAX_INTEGER_COMPUTATION_MODE)
- internal_error ("unsupported wide integer operation");
- }
-
- /* Check operand of a unary op. */
- if (TREE_CODE_CLASS (code) == '1')
- {
- mode = TYPE_MODE (TREE_TYPE (TREE_OPERAND (exp, 0)));
- if (GET_MODE_CLASS (mode) == MODE_INT
- && mode > MAX_INTEGER_COMPUTATION_MODE)
- internal_error ("unsupported wide integer operation");
- }
-
- /* Check operands of a binary/comparison op. */
- if (TREE_CODE_CLASS (code) == '2' || TREE_CODE_CLASS (code) == '<')
- {
- mode = TYPE_MODE (TREE_TYPE (TREE_OPERAND (exp, 0)));
- if (GET_MODE_CLASS (mode) == MODE_INT
- && mode > MAX_INTEGER_COMPUTATION_MODE)
- internal_error ("unsupported wide integer operation");
-
- mode = TYPE_MODE (TREE_TYPE (TREE_OPERAND (exp, 1)));
- if (GET_MODE_CLASS (mode) == MODE_INT
- && mode > MAX_INTEGER_COMPUTATION_MODE)
- internal_error ("unsupported wide integer operation");
- }
-}
-#endif
/* Return the highest power of two that EXP is known to be a multiple of.
This is used in updating alignment of MEMs in array references. */
@@ -6300,49 +6246,6 @@ expand_expr (tree exp, rtx target, enum machine_mode tmode,
target = 0;
}
-#ifdef MAX_INTEGER_COMPUTATION_MODE
- /* Only check stuff here if the mode we want is different from the mode
- of the expression; if it's the same, check_max_integer_computation_mode
- will handle it. Do we really need to check this stuff at all? */
-
- if (target
- && GET_MODE (target) != mode
- && TREE_CODE (exp) != INTEGER_CST
- && TREE_CODE (exp) != PARM_DECL
- && TREE_CODE (exp) != ARRAY_REF
- && TREE_CODE (exp) != ARRAY_RANGE_REF
- && TREE_CODE (exp) != COMPONENT_REF
- && TREE_CODE (exp) != BIT_FIELD_REF
- && TREE_CODE (exp) != INDIRECT_REF
- && TREE_CODE (exp) != CALL_EXPR
- && TREE_CODE (exp) != VAR_DECL
- && TREE_CODE (exp) != RTL_EXPR)
- {
- enum machine_mode mode = GET_MODE (target);
-
- if (GET_MODE_CLASS (mode) == MODE_INT
- && mode > MAX_INTEGER_COMPUTATION_MODE)
- internal_error ("unsupported wide integer operation");
- }
-
- if (tmode != mode
- && TREE_CODE (exp) != INTEGER_CST
- && TREE_CODE (exp) != PARM_DECL
- && TREE_CODE (exp) != ARRAY_REF
- && TREE_CODE (exp) != ARRAY_RANGE_REF
- && TREE_CODE (exp) != COMPONENT_REF
- && TREE_CODE (exp) != BIT_FIELD_REF
- && TREE_CODE (exp) != INDIRECT_REF
- && TREE_CODE (exp) != VAR_DECL
- && TREE_CODE (exp) != CALL_EXPR
- && TREE_CODE (exp) != RTL_EXPR
- && GET_MODE_CLASS (tmode) == MODE_INT
- && tmode > MAX_INTEGER_COMPUTATION_MODE)
- internal_error ("unsupported wide integer operation");
-
- check_max_integer_computation_mode (exp);
-#endif
-
/* If will do cse, generate all results into pseudo registers
since 1) that allows cse to find more things
and 2) otherwise cse could produce an insn the machine
diff --git a/gcc/fold-const.c b/gcc/fold-const.c
index aea2e08..3da0ebf 100644
--- a/gcc/fold-const.c
+++ b/gcc/fold-const.c
@@ -5205,9 +5205,6 @@ fold (tree expr)
if (kind == 'c')
return t;
-#ifdef MAX_INTEGER_COMPUTATION_MODE
- check_max_integer_computation_mode (expr);
-#endif
orig_t = t;
if (code == NOP_EXPR || code == FLOAT_EXPR || code == CONVERT_EXPR)
diff --git a/gcc/system.h b/gcc/system.h
index f8295f1..8b0b38a 100644
--- a/gcc/system.h
+++ b/gcc/system.h
@@ -620,7 +620,7 @@ typedef char _Bool;
INSN_CACHE_LINE_WIDTH INIT_SECTION_PREAMBLE NEED_ATEXIT ON_EXIT \
EXIT_BODY OBJECT_FORMAT_ROSE MULTIBYTE_CHARS MAP_CHARACTER \
LIBGCC_NEEDS_DOUBLE FINAL_PRESCAN_LABEL DEFAULT_CALLER_SAVES \
- LOAD_ARGS_REVERSED
+ LOAD_ARGS_REVERSED MAX_INTEGER_COMPUTATION_MODE
/* Hooks that are no longer used. */
#pragma GCC poison LANG_HOOKS_FUNCTION_MARK LANG_HOOKS_FUNCTION_FREE \