[LLVMdev] Deleting LiveVariables

Jakob Stoklund Olesen stoklund at 2pi.dk
Fri Feb 8 16:20:17 PST 2013


On Feb 8, 2013, at 4:03 PM, Cameron Zwarich <zwarich at apple.com> wrote:

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

Any help would be appreciated.

I did a bit of the easy stuff in 2-addr, it has a LIS = getAnalysisIfAvailable<LiveIntervals>() member that it sometimes updates. It has a lot of weird transformations, though.

I haven't touched phi-elim yet because of the 'bubble-up' approach.

If you want to help with phi-elim, you could hack -early-live-intervals to insert LiveIntervals before phi-elim, and then run MF.verify(this) at the end of runOnMachineFunction(). That should be enough to check that phi-elim updates live intervals correctly even when 2-addr is going to break it later.

> IIRC you run into a lot of problems with NEON subregister defs, which might be fixed by your new direct LiveIntervals implementation.

The direct live intervals work on anything that has virtual registers - it can handle all the sub-register fun.

I don't think you will see any problems with sub-registers in phi-elim because PHI instructions never have sub-register operands. (And this version of phi-elim just inserts a million copies).

/jakob




More information about the llvm-dev mailing list