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
This commit is contained in:
Kazu Hirata 2003-12-20 01:40:41 +00:00 committed by Kazu Hirata
parent 750e3ed363
commit 020036b90e
6 changed files with 9 additions and 114 deletions

View File

@ -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.

View File

@ -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

View File

@ -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)

View File

@ -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

View File

@ -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)

View File

@ -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 \