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 Tuesday 14 December 2004 00:08, Richard Henderson wrote:
> On Mon, Dec 13, 2004 at 11:38:08PM +0100, Steven Bosscher wrote:
> > We should probably disable make_accurate_live_analysis for GCC 4.0.
> > The patch below disables it unconditionally, but one could also
> > disable it based on some function of the number of basic blocks and
> > pseudos (I just couldn't think of one).
>
> For the record, on IRC I suggested re-ordering the computation such
> that we compute pavin/out for blocks of registers at a time, rather
> than all of them at once.  Similar to how gcse is re-blocked these days.

Perhaps we can simply limit the size of the bitmaps by not
fully computing partial availability but instead some kind
of "partial non-liveness".

What we have now computes partial availability of all regs,
globally, even if we already know that those registers are 
not live.  For example a register set in a successor of the
ENTRY block may be partially available in a predecessor of
the EXIT block, but it probably is not live there.

All we are interested in is pruning registers that are in
LIVE{IN,OUT} but not in PAV{IN,OUT}.  So what we can do,
perhaps, is something like this:

  PAVIN_RELEVANT = intersection of PAVIN and LIVEIN
  PLIVEOUT_RELEVANT = intersection of PAVOUT and LIVEOUT
  
That would stop the bitmaps from growing excessively large,
so we don't have to limit this pass, or compute things in 
blocks.

Vlad, what do you think?

Gr.
Steven


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