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: PR17340 - disable accurate live analysis for now?


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???)
     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.

Gr.
Steven



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