From d51ff7cb78e8de31e871d19aaa9990eb2e881969 Mon Sep 17 00:00:00 2001 From: Jim Wilson Date: Fri, 25 Aug 2000 21:50:06 +0000 Subject: Fix IA-64 abort on testcase with switch statement that can be optimized away. * cse.c (cse_insn): Don't pass label subtraction to force_const_mem. From-SVN: r35992 --- gcc/cse.c | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'gcc/cse.c') diff --git a/gcc/cse.c b/gcc/cse.c index 7073f1e..c0b72e3 100644 --- a/gcc/cse.c +++ b/gcc/cse.c @@ -5328,8 +5328,16 @@ cse_insn (insn, libcall_insn) else if (constant_pool_entries_cost && CONSTANT_P (trial) + /* Reject cases that will abort in decode_rtx_const. + On the alpha when simplifying a switch, we get + (const (truncate (minus (label_ref) (label_ref)))). */ && ! (GET_CODE (trial) == CONST && GET_CODE (XEXP (trial, 0)) == TRUNCATE) + /* Likewise on IA-64, except without the truncate. */ + && ! (GET_CODE (trial) == CONST + && GET_CODE (XEXP (trial, 0)) == MINUS + && GET_CODE (XEXP (XEXP (trial, 0), 0)) == LABEL_REF + && GET_CODE (XEXP (XEXP (trial, 0), 1)) == LABEL_REF) && (src_folded == 0 || (GET_CODE (src_folded) != MEM && ! src_folded_force_flag)) -- cgit v1.1