diff options
Diffstat (limited to 'llvm/lib/Transforms')
| -rw-r--r-- | llvm/lib/Transforms/Scalar/LICM.cpp | 12 | 
1 files changed, 2 insertions, 10 deletions
diff --git a/llvm/lib/Transforms/Scalar/LICM.cpp b/llvm/lib/Transforms/Scalar/LICM.cpp index 639e958f040..a1868af12fd 100644 --- a/llvm/lib/Transforms/Scalar/LICM.cpp +++ b/llvm/lib/Transforms/Scalar/LICM.cpp @@ -707,18 +707,10 @@ void LICM::PromoteValuesInLoop() {    // Now that the body of the loop uses the allocas instead of the original    // memory locations, insert code to copy the alloca value back into the -  // original memory location on all exits from the loop.  Note that we only -  // want to insert one copy of the code in each exit block, though the loop may -  // exit to the same block more than once. -  // -  SmallPtrSet<BasicBlock*, 16> ProcessedBlocks; - +  // original memory location on all exits from the loop.    SmallVector<BasicBlock*, 8> ExitBlocks; -  CurLoop->getExitBlocks(ExitBlocks); +  CurLoop->getUniqueExitBlocks(ExitBlocks);    for (unsigned i = 0, e = ExitBlocks.size(); i != e; ++i) { -    if (!ProcessedBlocks.insert(ExitBlocks[i])) -      continue; -        // Copy all of the allocas into their memory locations.      BasicBlock::iterator BI = ExitBlocks[i]->getFirstNonPHI();      Instruction *InsertPos = BI;  | 

