This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [PATCH] Fix bootstrap on SPARC/Solaris with RTL checking
> The PR32374 has occurence of similar problem, just in more slipperly
> case - here we emit clobber of memory slot referenced via
> virtual_stack_regs_reg and instantiate_virtual_regs skips the clobber.
Mine is not in the RTL stream though, it's in CALL_INSN_FUNCTION_USAGE.
> Perhaps rather than teaching dataflow to tolerate clobVbers of memory
> and perhaps the dead but still appearing virtuals or teaching
> instantiate to instantiate virutals, we can just avoid the clobbers of
> memory from being emitted at first place?
Note that dataflow already knows how to handle them. In df_uses_record:
case CLOBBER:
/* If we are clobbering a MEM, mark any registers inside the address
as being used. */
if (MEM_P (XEXP (x, 0)))
df_uses_record (collection_rec,
&XEXP (XEXP (x, 0), 0),
DF_REF_REG_MEM_STORE, bb, insn, flags);
This has been directly copied from flow.c:mark_used_regs.
Do you think that we can fully get rid of them, i.e. that we don't need to
record the USEs for the regs referenced in the address? In both cases, in
the RTL stream and in CALL_INSN_FUNCTION_USAGE?
--
Eric Botcazou