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:
parent
750e3ed363
commit
020036b90e
@ -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.
|
||||
|
@ -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
|
||||
|
@ -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)
|
||||
|
97
gcc/expr.c
97
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
|
||||
|
@ -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)
|
||||
|
@ -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 \
|
||||
|
Loading…
Reference in New Issue
Block a user