Remove ugly and horrible code. It's not necessary for correctness, and can be added...
authorOwen Anderson <resistor@mac.com>
Thu, 13 Dec 2007 05:43:37 +0000 (05:43 +0000)
committerOwen Anderson <resistor@mac.com>
Thu, 13 Dec 2007 05:43:37 +0000 (05:43 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44986 91177308-0d34-0410-b5e6-96231b3b80d8

lib/CodeGen/StrongPHIElimination.cpp

index 9519e7c9d7ed545efa1d9f03869158539036a75a..eef10ef3c0df0228aedd3778712363bc8fe83e0e 100644 (file)
@@ -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;
       }
     }