PR17340 - disable accurate live analysis for now?

Steven Bosscher stevenb@suse.de
Tue Dec 14 18:28:00 GMT 2004


On Tuesday 14 December 2004 19:01, Vladimir Makarov wrote:
> Steven Bosscher wrote:
> >On Dec 14, 2004 06:34 PM, Vladimir Makarov <vmakarov@redhat.com> wrote:
> >>Steven Bosscher wrote:
> >>>Only, are you sure this is necessary?  I did not need it:
> >>
> >>All the patch is not necessary for the correct work.  So my addition is
> >>not critical if it works for you.  But my pavout is more accurate and
> >>more compact (the difference is in that your pavout will still have
> >>registers calculated in bb and dead at the end of the bb, e.g. registers
> >>mentioned in REG_UNUSED notes).
> >
> >Ah, right.  Well, I think we can remedy that in a way such that
> >you don't need the temporary bitmap.  You now have:
> >
> >     bb.live_pavout = union (bb.live_pavin - b.killed, bb.avloc)
> >                      & global_live_at_end
> >
> >(Note: You have a typo there, you want bb.killed, ie. extra 'b')
> >
> >Can't that be computed as,
> >
> >     bb.live_killed = bb.killed & global_live_at_end (== bb.killed???)
>
> Unfortunately it is not true.
>
> >     bb.live_avloc = bb.avloc & global_live_at_end
> >     bb.live_pavout = union (bb.live_pavin-b.live_killed,bb.live_avloc)
> >
> >bb.live_killed and bb.live_avloc would be local properties so you
> >can precompute them.
>
> Yes, it is a good trick.  I'll redo my patch and send it after t

Actually, if bb.live_killed != bb.killed then are my proposed changes
correct?  I don't think so because it means we'd kill fewer regs for
LIVE_PAVOUT, so PAVOUT would be a larger set than with your original
patch.  You can still do LIVE_AVLOC = AVLOC & LIVEOUT, but for PAVIN
and KILLED you'd compute a set that is too large.

Gr.
Steven



More information about the Gcc-patches mailing list