[llvm-commits] [llvm] r119382 - in /llvm/trunk: include/llvm/CodeGen/Passes.h include/llvm/InitializePasses.h lib/CodeGen/ExpandPseudos.cpp lib/CodeGen/LLVMTargetMachine.cpp lib/CodeGen/SelectionDAG/InstrEmitter.cpp

Jakob Stoklund Olesen stoklund at 2pi.dk
Tue Nov 16 14:01:32 PST 2010


On Nov 16, 2010, at 1:40 PM, Jim Grosbach wrote:

> 
> On Nov 16, 2010, at 1:36 PM, Dan Gohman wrote:
>> On Nov 16, 2010, at 1:14 PM, Jim Grosbach wrote:
>> 
>>> Hi Dan,
>>> 
>>> Naming implies redundancy with the ARMExpandPseudos pass for the ARM target. IIRC (vague memories here, so....), these may happen earlier? Would it be reasonable to try to merge those passes?
>> 
>> It looks like ARMExpandPseudos runs after register allocation.
>> This new ExpandPseudos needs to run before register allocation.
>> Consequently, they're not trivially mergeable, at least. But
>> I'm open to suggestions.
>> 
> 
> Ah, OK. That makes sense. The ARM pass definitely needs to run post-RA, as how things get expanded there for some NEON instructions depends on the allocations. Perhaps a name change on this one to reduce chances of confusion? PreRAExpandPseudos or something like that?

Actually, LowerSubregs.cpp wants to be ExpandPseudos.cpp as well. It runs post-ra, and there might be an opportunity to merge it with the target-dependent pseudo expansion passes.

It sounds like we need an early and a late pseudo expansion pass. One to handle TID.usesCustomInsertionHook() instructions, and one to handle TID->isCodeGenOnly().






More information about the llvm-commits mailing list