Reg2Mem cleanup and optimizations:

- enable phi instructions demotion to stack
 - create alloca instructions in the entry block


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43208 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Anton Korobeynikov
2007-10-21 23:05:16 +00:00
parent c6185038b8
commit a024e8ceda
3 changed files with 75 additions and 27 deletions

View File

@ -78,12 +78,13 @@ bool SimplifyCFG(BasicBlock *BB);
/// invalidating the SSA information for the value. It returns the pointer to
/// the alloca inserted to create a stack slot for X.
///
AllocaInst *DemoteRegToStack(Instruction &X, bool VolatileLoads = false);
AllocaInst *DemoteRegToStack(Instruction &X, bool VolatileLoads = false,
Instruction *AllocaPoint = NULL);
/// DemotePHIToStack - This function takes a virtual register computed by a phi
/// node and replaces it with a slot in the stack frame, allocated via alloca.
/// The phi node is deleted and it returns the pointer to the alloca inserted.
AllocaInst *DemotePHIToStack(PHINode *P);
AllocaInst *DemotePHIToStack(PHINode *P, Instruction *AllocaPoint = NULL);
} // End llvm namespace