re PR target/11229 (pure-1.c fails on powerpc64-linux with -O1)

PR target/11229
	* cse.c (cse_insn): Set classp using src_const_elt if
	src_eqv_elt is NULL.

From-SVN: r74225
This commit is contained in:
Alan Modra 2003-12-03 11:09:55 +00:00 committed by Alan Modra
parent 01c43039cf
commit 1fcc57f195
2 changed files with 16 additions and 0 deletions

View File

@ -1,3 +1,9 @@
2003-12-03 Alan Modra <amodra@bigpond.net.au>
PR target/11229
* cse.c (cse_insn): Set classp using src_const_elt if
src_eqv_elt is NULL.
2003-12-03 Richard Earnshaw <rearnsha@arm.com>
* gcse.c (reg_clear_last_set): New function.

View File

@ -5827,6 +5827,16 @@ cse_insn (rtx insn, rtx libcall_insn)
enum machine_mode mode
= GET_MODE (src) == VOIDmode ? GET_MODE (dest) : GET_MODE (src);
/* It's possible that we have a source value known to be
constant but don't have a REG_EQUAL note on the insn.
Lack of a note will mean src_eqv_elt will be NULL. This
can happen where we've generated a SUBREG to access a
CONST_INT that is already in a register in a wider mode.
Ensure that the source expression is put in the proper
constant class. */
if (!classp)
classp = sets[i].src_const_elt;
if (sets[i].src_elt == 0)
{
/* Don't put a hard register source into the table if this is