From 5457e20d2739db63f654c70269418a8153e8c945 Mon Sep 17 00:00:00 2001 From: Chandler Carruth Date: Fri, 13 Feb 2015 04:30:44 +0000 Subject: [PATCH] [unroll] Don't check the loop set for whether an instruction is contained in it each time we try to add it to the worklist, just check this when pulling it off the worklist. That way we do it at most once per instruction with the cost of the worklist set we would need to pay anyways. llvm-svn: 229060 --- llvm/lib/Transforms/Scalar/LoopUnrollPass.cpp | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/llvm/lib/Transforms/Scalar/LoopUnrollPass.cpp b/llvm/lib/Transforms/Scalar/LoopUnrollPass.cpp index 0851f436904e..8cf0450dd9ed 100644 --- a/llvm/lib/Transforms/Scalar/LoopUnrollPass.cpp +++ b/llvm/lib/Transforms/Scalar/LoopUnrollPass.cpp @@ -472,8 +472,6 @@ public: Instruction *UI = dyn_cast(U); if (!UI) continue; - if (!L->contains(UI)) - continue; Worklist.insert(UI); } } @@ -483,14 +481,14 @@ public: // its users as well. while (!Worklist.empty()) { Instruction *I = Worklist.pop_back_val(); + if (!L->contains(I)) + continue; if (!visit(I)) continue; for (User *U : I->users()) { Instruction *UI = dyn_cast(U); if (!UI) continue; - if (!L->contains(UI)) - continue; Worklist.insert(UI); } }