diff --git a/lib/Transforms/Scalar/LoopIndexSplit.cpp b/lib/Transforms/Scalar/LoopIndexSplit.cpp index de8b08eb25c..854b172422b 100644 --- a/lib/Transforms/Scalar/LoopIndexSplit.cpp +++ b/lib/Transforms/Scalar/LoopIndexSplit.cpp @@ -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::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.