From 2d38576d566021b78ec69f53d385a08027471a01 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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@229060 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Transforms/Scalar/LoopUnrollPass.cpp | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/lib/Transforms/Scalar/LoopUnrollPass.cpp b/lib/Transforms/Scalar/LoopUnrollPass.cpp index 0851f436904..8cf0450dd9e 100644 --- a/lib/Transforms/Scalar/LoopUnrollPass.cpp +++ b/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); } } -- 2.11.0