diff options
author | Owen Anderson <resistor@mac.com> | 2007-12-13 05:43:37 +0000 |
---|---|---|
committer | Owen Anderson <resistor@mac.com> | 2007-12-13 05:43:37 +0000 |
commit | 1f93edd08a5ee239f764d52a36ffdaa5ef03f7be (patch) | |
tree | 58f62ba93f9da3689981132f249c3dbbe7536ba1 /llvm/lib/CodeGen/StrongPHIElimination.cpp | |
parent | 8610d2de027fb7589b88249febe01e1ea67fe684 (diff) | |
download | bcm5719-llvm-1f93edd08a5ee239f764d52a36ffdaa5ef03f7be.tar.gz bcm5719-llvm-1f93edd08a5ee239f764d52a36ffdaa5ef03f7be.zip |
Remove ugly and horrible code. It's not necessary for correctness, and can be added back later if it causes code quality issues.
llvm-svn: 44986
Diffstat (limited to 'llvm/lib/CodeGen/StrongPHIElimination.cpp')
-rw-r--r-- | llvm/lib/CodeGen/StrongPHIElimination.cpp | 54 |
1 files changed, 7 insertions, 47 deletions
diff --git a/llvm/lib/CodeGen/StrongPHIElimination.cpp b/llvm/lib/CodeGen/StrongPHIElimination.cpp index 9519e7c9d7e..eef10ef3c0d 100644 --- a/llvm/lib/CodeGen/StrongPHIElimination.cpp +++ b/llvm/lib/CodeGen/StrongPHIElimination.cpp @@ -330,43 +330,6 @@ void StrongPHIElimination::processPHIUnion(MachineInstr* Inst, LiveVariables::VarInfo& CInfo = LV.getVarInfo(child->getReg()); if (isLiveOut(Info, CInfo.DefInst->getParent())) { - interferences.insert(child); - } else if (isLiveIn(Info, CInfo.DefInst->getParent()) || - Info.DefInst->getParent() == CInfo.DefInst->getParent()) { - // FIXME: Add (p, c) to possible local interferences - } - - if (!visited.count(child)) { - worklist.push_back(child); - inserted = true; - } - } - - if (interferences.size() == 1) { - DomForestNode* child = *interferences.begin(); - - unsigned numParentCopies = 0; - unsigned numChildCopies = 0; - for (int i = Inst->getNumOperands() - 1; i >= 2; i-=2) { - unsigned SrcReg = Inst->getOperand(i-1).getReg(); - if (SrcReg == DFNode->getReg()) numParentCopies++; - else if (SrcReg == child->getReg()) numChildCopies++; - } - - if (numParentCopies < numChildCopies) { - // Insert copies for child - for (int i = Inst->getNumOperands() - 1; i >= 2; i-=2) { - if (Inst->getOperand(i-1).getReg() == child->getReg()) { - unsigned SrcReg = child->getReg(); - MachineBasicBlock* From = Inst->getOperand(i).getMBB(); - - Waiting[From].push_back(std::make_pair(SrcReg, DestReg)); - PHIUnion.erase(SrcReg); - } - } - - // FIXME: Make child's children parent's children - } else { // Insert copies for parent for (int i = Inst->getNumOperands() - 1; i >= 2; i-=2) { if (Inst->getOperand(i-1).getReg() == DFNode->getReg()) { @@ -377,17 +340,14 @@ void StrongPHIElimination::processPHIUnion(MachineInstr* Inst, PHIUnion.erase(SrcReg); } } + } else if (isLiveIn(Info, CInfo.DefInst->getParent()) || + Info.DefInst->getParent() == CInfo.DefInst->getParent()) { + // FIXME: Add (p, c) to possible local interferences } - } else if (interferences.size() > 1) { - // Insert copies for parent - for (int i = Inst->getNumOperands() - 1; i >= 2; i-=2) { - if (Inst->getOperand(i-1).getReg() == DFNode->getReg()) { - unsigned SrcReg = DFNode->getReg(); - MachineBasicBlock* From = Inst->getOperand(i).getMBB(); - - Waiting[From].push_back(std::make_pair(SrcReg, DestReg)); - PHIUnion.erase(SrcReg); - } + + if (!visited.count(child)) { + worklist.push_back(child); + inserted = true; } } |