forked from OSchip/llvm-project
For real this time: PHI Def & Kill tracking added to PHIElimination.
llvm-svn: 76865
This commit is contained in:
parent
7152d39d6d
commit
077415e84b
|
@ -50,6 +50,8 @@ void llvm::PHIElimination::getAnalysisUsage(AnalysisUsage &AU) const {
|
|||
bool llvm::PHIElimination::runOnMachineFunction(MachineFunction &Fn) {
|
||||
MRI = &Fn.getRegInfo();
|
||||
|
||||
PHIDefs.clear();
|
||||
PHIKills.clear();
|
||||
analyzePHINodes(Fn);
|
||||
|
||||
bool Changed = false;
|
||||
|
@ -183,8 +185,8 @@ void llvm::PHIElimination::LowerAtomicPHINode(
|
|||
}
|
||||
|
||||
// Record PHI def.
|
||||
//assert(!hasPHIDef(DestReg) && "Vreg has multiple phi-defs?");
|
||||
//PHIDefs[DestReg] = &MBB;
|
||||
assert(!hasPHIDef(DestReg) && "Vreg has multiple phi-defs?");
|
||||
PHIDefs[DestReg] = &MBB;
|
||||
|
||||
// Update live variable information if there is any.
|
||||
LiveVariables *LV = getAnalysisIfAvailable<LiveVariables>();
|
||||
|
@ -232,7 +234,7 @@ void llvm::PHIElimination::LowerAtomicPHINode(
|
|||
MachineBasicBlock &opBlock = *MPhi->getOperand(i*2+2).getMBB();
|
||||
|
||||
// Record the kill.
|
||||
//PHIKills[SrcReg].insert(&opBlock);
|
||||
PHIKills[SrcReg].insert(&opBlock);
|
||||
|
||||
// If source is defined by an implicit def, there is no need to insert a
|
||||
// copy.
|
||||
|
|
Loading…
Reference in New Issue