diff options
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 8 | ||||
-rw-r--r-- | gcc/doc/tm.texi | 9 | ||||
-rw-r--r-- | gcc/dojump.c | 4 | ||||
-rw-r--r-- | gcc/expr.c | 97 | ||||
-rw-r--r-- | gcc/fold-const.c | 3 | ||||
-rw-r--r-- | gcc/system.h | 2 |
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) @@ -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 \ |