Remove incomplete cost analysis.
authorDevang Patel <dpatel@apple.com>
Fri, 24 Aug 2007 05:21:13 +0000 (05:21 +0000)
committerDevang Patel <dpatel@apple.com>
Fri, 24 Aug 2007 05:21:13 +0000 (05:21 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41354 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Transforms/Scalar/LoopIndexSplit.cpp

index de8b08eb25c715b3ebf845b8649506abb3f55d08..854b172422b810139072f2b1f36c33f9a2b3b189 100644 (file)
@@ -103,9 +103,6 @@ namespace {
     /// DeadBB. LiveBB dominates split conidition's other branch.
     void removeBlocks(BasicBlock *DeadBB, Loop *LP, BasicBlock *LiveBB);
 
-    /// Find cost of spliting loop L.
-    unsigned findSplitCost(Loop *L, SplitInfo &SD);
-
     /// safeSplitCondition - Return true if it is possible to
     /// split loop using given split condition.
     bool safeSplitCondition(SplitInfo &SD);
@@ -202,25 +199,10 @@ bool LoopIndexSplit::runOnLoop(Loop *IncomingLoop, LPPassManager &LPM_Ref) {
       ++SI;
   }
 
-  unsigned MaxCost = 99;
-  unsigned Index = 0;
-  unsigned MostProfitableSDIndex = 0;
-  for (SmallVector<SplitInfo, 4>::iterator SI = SplitData.begin(),
-         E = SplitData.end(); SI != E; ++SI, ++Index) {
-    SplitInfo SD = *SI;
-
-    // ICM_EQs are already handled above.
-    assert (SD.SplitCondition->getPredicate() != ICmpInst::ICMP_EQ &&
-            "Unexpected split condition predicate");
-    
-    unsigned Cost = findSplitCost(L, SD);
-    if (Cost < MaxCost)
-      MostProfitableSDIndex = Index;
-  }
-
   // Split most profitiable condition.
-  if (!SplitData.empty())
-    Changed = splitLoop(SplitData[MostProfitableSDIndex]);
+  // FIXME : Implement cost analysis.
+  unsigned MostProfitableSDIndex = 0;
+  Changed = splitLoop(SplitData[MostProfitableSDIndex]);
 
   if (Changed)
     ++NumIndexSplit;
@@ -595,25 +577,6 @@ bool LoopIndexSplit::safeExitingBlock(SplitInfo &SD,
   return true;
 }
 
-/// Find cost of spliting loop L. Cost is measured in terms of size growth.
-/// Size is growth is calculated based on amount of code duplicated in second
-/// loop.
-unsigned LoopIndexSplit::findSplitCost(Loop *L, SplitInfo &SD) {
-
-  unsigned Cost = 0;
-  BasicBlock *SDBlock = SD.SplitCondition->getParent();
-  for (Loop::block_iterator I = L->block_begin(), E = L->block_end();
-       I != E; ++I) {
-    BasicBlock *BB = *I;
-    // If a block is not dominated by split condition block then
-    // it must be duplicated in both loops.
-    if (!DT->dominates(SDBlock, BB))
-      Cost += BB->size();
-  }
-
-  return Cost;
-}
-
 /// removeBlocks - Remove basic block DeadBB and all blocks dominated by DeadBB.
 /// This routine is used to remove split condition's dead branch, dominated by
 /// DeadBB. LiveBB dominates split conidition's other branch.