Commit 1fcc57f1 by Alan Modra Committed by Alan Modra

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
parent 01c43039
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.
......
......@@ -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
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment