This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]