From: Chandler Carruth Date: Fri, 13 Feb 2015 04:30:44 +0000 (+0000) Subject: [unroll] Don't check the loop set for whether an instruction is X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=2d38576d566021b78ec69f53d385a08027471a01;p=oota-llvm.git [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 --- 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); } }