diff --git a/llvm/lib/Transforms/Scalar/LoopUnrollPass.cpp b/llvm/lib/Transforms/Scalar/LoopUnrollPass.cpp index feebf1aede93..5586032b742b 100644 --- a/llvm/lib/Transforms/Scalar/LoopUnrollPass.cpp +++ b/llvm/lib/Transforms/Scalar/LoopUnrollPass.cpp @@ -330,12 +330,14 @@ class UnrollAnalyzer : public InstVisitor { unsigned TripCount; ScalarEvolution &SE; const TargetTransformInfo &TTI; - unsigned NumberOfOptimizedInstructions; DenseMap SimplifiedValues; DenseMap LoadBaseAddresses; SmallPtrSet CountedInsns; + /// \brief Count the number of optimized instructions. + unsigned NumberOfOptimizedInstructions; + // Provide base case for our instruction visit. bool visitInstruction(Instruction &I) { return false; }; // TODO: We should also visit ICmp, FCmp, GetElementPtr, Trunc, ZExt, SExt, @@ -456,8 +458,8 @@ public: SmallVector Worklist; SimplifiedValues.clear(); CountedInsns.clear(); - NumberOfOptimizedInstructions = 0; + // We start by adding all loads to the worklist. for (auto LoadDescr : LoadBaseAddresses) { LoadInst *LI = LoadDescr.first; @@ -500,6 +502,7 @@ public: NumberOfOptimizedInstructions = 0; SmallVector Worklist; SmallPtrSet DeadInstructions; + // Start by initializing worklist with simplified instructions. for (auto Folded : SimplifiedValues) { if (auto FoldedInsn = dyn_cast(Folded.first)) {