From 020036b90ebb42cee83694d332800d98960f9e6b Mon Sep 17 00:00:00 2001 From: Kazu Hirata Date: Sat, 20 Dec 2003 01:40:41 +0000 Subject: 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 --- gcc/expr.c | 97 -------------------------------------------------------------- 1 file changed, 97 deletions(-) (limited to 'gcc/expr.c') 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 -- cgit v1.1