Commit a22265a4 by Jeff Law Committed by Jeff Law

ira.c (validate_equiv_mem): Remove code to avoid invalidation of readonly memory…

ira.c (validate_equiv_mem): Remove code to avoid invalidation of readonly memory equivalances for...

	* ira.c (validate_equiv_mem): Remove code to avoid invalidation
	of readonly memory equivalances for const/pure calls.

From-SVN: r166309
parent 2a2651b7
2010-11-04 Jeff Law <law@redhat.com>
* ira.c (validate_equiv_mem): Remove code to avoid invalidation
of readonly memory equivalances for const/pure calls.
2010-11-04 Richard Guenther <rguenther@suse.de>
PR tree-optimization/45733
......@@ -1915,8 +1915,12 @@ validate_equiv_mem (rtx start, rtx reg, rtx memref)
if (find_reg_note (insn, REG_DEAD, reg))
return 1;
if (CALL_P (insn) && ! MEM_READONLY_P (memref)
&& ! RTL_CONST_OR_PURE_CALL_P (insn))
/* This used to ignore readonly memory and const/pure calls. The problem
is the equivalent form may reference a pseudo which gets assigned a
call clobbered hard reg. When we later replace REG with its
equivalent form, the value in the call-clobbered reg has been
changed and all hell breaks loose. */
if (CALL_P (insn))
return 0;
note_stores (PATTERN (insn), validate_equiv_mem_from_store, NULL);
......
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