Fix rtl sharing in ifcvt try 2

Jan Hubicka jh@suse.cz
Tue Jul 1 18:10:00 GMT 2003


> 
> On Tuesday, Jul 1, 2003, at 13:55 US/Eastern, Jan Hubicka wrote:
> 
> >>On Mon, Jun 30, 2003 at 07:07:20PM +0200, Jan Hubicka wrote:
> >>>OK, so you mean to set centrelly these bits for all operands put into
> >>>if_info and clear it after processing ...
> >>
> >>Yes.  It reduces the number of places that you need to
> >>change, and thus the chance that you'll miss something.
> >>
> >>>Perhaps we need verifier thatn RTL is unshared.
> >>
> >>Yes, this would be a good rtl-checking feature.
> >
> >I am sending the patch.  While copying the code I noticed that it
> >unshares LABEL_REFs that is probably nonsense and also it walks
> >ASM_OPERANDS multiple times.  I've changed it in new copy and now I am
> >testing symetric change to the old copy.
> >
> >The patch passes bootstrap/make check on i386 without finding any
> >sharing.  This is not the case for x86-64 where we share several 
> >subregs
> >after ifcvt.  That should be fixed by the original ifcvt fix
> >OK?
> >
> >I also had to do checking not before reload, but before insn splitting
> >as insn splitting introduces plenty of sharing.  Should I care 
> >unsharing
> >in try_split?
> >
> >Honza
> 
> If this goes in, how much time does this patch add, is it small like 
> most other checking or is it large like rtl_checking?

It depends how many times you check the chain.  At the moment I do call
it twice, once before reload when we can check that memory are unshared
and once at the end of compilation.  The pass is very trivial, so I
would estimate it by at about 2%.

Honza
> 
> 
> Thanks,
> Andrew Pinski
> 



More information about the Gcc-patches mailing list