In reload, retain only those clobbers added for variable-array handling.
From-SVN: r56863
This commit is contained in:
parent
dc0ba55a5b
commit
41e34bab13
@ -1,3 +1,8 @@
|
||||
2002-09-05 Dale Johannesen <dalej@apple.com>
|
||||
|
||||
* reload1.c (reload): Retain only those memory clobbers
|
||||
added for variable-array handling.
|
||||
|
||||
2002-09-05 Jason Thorpe <thorpej@wasabisystems.com>
|
||||
|
||||
* config/arm/arm.c (arm_return_in_memory): Implement ATPCS
|
||||
|
@ -1180,9 +1180,9 @@ reload (first, global)
|
||||
|
||||
/* Make a pass over all the insns and delete all USEs which we inserted
|
||||
only to tag a REG_EQUAL note on them. Remove all REG_DEAD and REG_UNUSED
|
||||
notes. Delete all CLOBBER insns that don't refer to the return value
|
||||
or to memory (mem:BLK CLOBBERs must be retained to prevent the scheduler
|
||||
from misarranging variable-array code) and simplify (subreg (reg))
|
||||
notes. Delete all CLOBBER insns, except those that refer to the return
|
||||
value and the special mem:BLK CLOBBERs added to prevent the scheduler
|
||||
from misarranging variable-array code, and simplify (subreg (reg))
|
||||
operands. Also remove all REG_RETVAL and REG_LIBCALL notes since they
|
||||
are no longer useful or accurate. Strip and regenerate REG_INC notes
|
||||
that may have been moved around. */
|
||||
@ -1203,7 +1203,10 @@ reload (first, global)
|
||||
|| find_reg_note (insn, REG_EQUAL, NULL_RTX)))
|
||||
|| (GET_CODE (PATTERN (insn)) == CLOBBER
|
||||
&& (GET_CODE (XEXP (PATTERN (insn), 0)) != MEM
|
||||
|| GET_MODE (XEXP (PATTERN (insn), 0)) != BLKmode)
|
||||
|| GET_MODE (XEXP (PATTERN (insn), 0)) != BLKmode
|
||||
|| (GET_CODE (XEXP (XEXP (PATTERN (insn), 0), 0)) != SCRATCH
|
||||
&& XEXP (XEXP (PATTERN (insn), 0), 0)
|
||||
!= stack_pointer_rtx))
|
||||
&& (GET_CODE (XEXP (PATTERN (insn), 0)) != REG
|
||||
|| ! REG_FUNCTION_VALUE_P (XEXP (PATTERN (insn), 0)))))
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user