[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