[LLVMdev] Deleting LiveVariables

Cameron Zwarich zwarich at apple.com
Fri Feb 8 16:03:58 PST 2013


How much of the work is done here? I'd be happy to do the phi elimination part, since I basically did that for StrongPhiElimination (RIP). IIRC you run into a lot of problems with NEON subregister defs, which might be fixed by your new direct LiveIntervals implementation.

Cameron

On Feb 8, 2013, at 3:41 PM, Jakob Stoklund Olesen <stoklund at 2pi.dk> wrote:

> I just enabled a new algorithm for computing live intervals that doesn't depend on LiveVariables.
> 
> The goal is to get rid of the LiveVariables analysis completely, but unfortunately PHI elimination and the two-address pass still use LiveVariables for some optimizations. They don't require it, they work just fine without it at -O0. They use it to generate better code in some cases.
> 
> The current pass order in the optimizing pipeline is:
> 
>      Live Variable Analysis
>      Eliminate PHI nodes for register allocation
>      Two-Address instruction pass
>      Slot index numbering
>      Live Interval Analysis
> 
> LiveIntervals still claims to require LiveVariables to make sure it stays live during phi-elim and 2-addr.
> 
> The plan is to 'bubble up' LiveIntervals, by first teaching 2-addr to use and update it:
> 
>      Live Variable Analysis
>      Eliminate PHI nodes for register allocation
>      Slot index numbering
>      Live Interval Analysis
>      Two-Address instruction pass
> 
> There is an -early-live-intervals option that enables that pass order.
> 
> Then do the same to phi-elim:
> 
>      Live Variable Analysis
>      Slot index numbering
>      Live Interval Analysis
>      Eliminate PHI nodes for register allocation
>      Two-Address instruction pass
> 
> Then LiveVariables can be deleted. (And so can SparseBitVector).
> 
> When live intervals are computed on SSA form, we can use tricks to speed up live range computations for values that span large loops by resurrecting the MachineLoopRanges analysis.
> 
> /jakob
> 
> _______________________________________________
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev




More information about the llvm-dev mailing list