mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2026-04-25 21:18:19 +00:00
Added PHI Def & Kill tracking to PHIElimination pass.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76849 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -182,6 +182,10 @@ void llvm::PHIElimination::LowerAtomicPHINode(
|
||||
TII->copyRegToReg(MBB, AfterPHIsIt, DestReg, IncomingReg, RC, RC);
|
||||
}
|
||||
|
||||
// Record PHI def.
|
||||
//assert(!hasPHIDef(DestReg) && "Vreg has multiple phi-defs?");
|
||||
//PHIDefs[DestReg] = &MBB;
|
||||
|
||||
// Update live variable information if there is any.
|
||||
LiveVariables *LV = getAnalysisIfAvailable<LiveVariables>();
|
||||
if (LV) {
|
||||
@@ -223,6 +227,13 @@ void llvm::PHIElimination::LowerAtomicPHINode(
|
||||
assert(TargetRegisterInfo::isVirtualRegister(SrcReg) &&
|
||||
"Machine PHI Operands must all be virtual registers!");
|
||||
|
||||
// Get the MachineBasicBlock equivalent of the BasicBlock that is the source
|
||||
// path the PHI.
|
||||
MachineBasicBlock &opBlock = *MPhi->getOperand(i*2+2).getMBB();
|
||||
|
||||
// Record the kill.
|
||||
//PHIKills[SrcReg].insert(&opBlock);
|
||||
|
||||
// If source is defined by an implicit def, there is no need to insert a
|
||||
// copy.
|
||||
MachineInstr *DefMI = MRI->getVRegDef(SrcReg);
|
||||
@@ -231,10 +242,6 @@ void llvm::PHIElimination::LowerAtomicPHINode(
|
||||
continue;
|
||||
}
|
||||
|
||||
// Get the MachineBasicBlock equivalent of the BasicBlock that is the source
|
||||
// path the PHI.
|
||||
MachineBasicBlock &opBlock = *MPhi->getOperand(i*2+2).getMBB();
|
||||
|
||||
// Check to make sure we haven't already emitted the copy for this block.
|
||||
// This can happen because PHI nodes may have multiple entries for the same
|
||||
// basic block.
|
||||
|
||||
Reference in New Issue
Block a user