diff options
author | Devang Patel <dpatel@apple.com> | 2008-07-02 01:44:29 +0000 |
---|---|---|
committer | Devang Patel <dpatel@apple.com> | 2008-07-02 01:44:29 +0000 |
commit | 1e41f6d724d6cecd4c3b3409da84608b2df16069 (patch) | |
tree | 05b59972bf64398d8ceb155a4c8165d29cea5c1d | |
parent | 2095c38c7a064190193c8cb238f11a927cb93bff (diff) | |
download | external_llvm-1e41f6d724d6cecd4c3b3409da84608b2df16069.zip external_llvm-1e41f6d724d6cecd4c3b3409da84608b2df16069.tar.gz external_llvm-1e41f6d724d6cecd4c3b3409da84608b2df16069.tar.bz2 |
reuse vectors.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53007 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | lib/Transforms/Scalar/LoopUnswitch.cpp | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/lib/Transforms/Scalar/LoopUnswitch.cpp b/lib/Transforms/Scalar/LoopUnswitch.cpp index 080b873..1b94d9c 100644 --- a/lib/Transforms/Scalar/LoopUnswitch.cpp +++ b/lib/Transforms/Scalar/LoopUnswitch.cpp @@ -85,6 +85,13 @@ namespace { /// OrigLoopExitMap - This is used to map loop exiting block with /// corresponding loop exit block, before updating CFG. DenseMap<BasicBlock *, BasicBlock *> OrigLoopExitMap; + + // LoopBlocks contains all of the basic blocks of the loop, including the + // preheader of the loop, the body of the loop, and the exit blocks of the + // loop, in that order. + std::vector<BasicBlock*> LoopBlocks; + // NewBlocks contained cloned copy of basic blocks from LoopBlocks. + std::vector<BasicBlock*> NewBlocks; public: static char ID; // Pass ID, replacement for typeid explicit LoopUnswitch(bool Os = false) : @@ -761,10 +768,8 @@ void LoopUnswitch::UnswitchNontrivialCondition(Value *LIC, Constant *Val, << " blocks] in Function " << F->getName() << " when '" << *Val << "' == " << *LIC << "\n"; - // LoopBlocks contains all of the basic blocks of the loop, including the - // preheader of the loop, the body of the loop, and the exit blocks of the - // loop, in that order. - std::vector<BasicBlock*> LoopBlocks; + LoopBlocks.clear(); + NewBlocks.clear(); // First step, split the preheader and exit blocks, and add these blocks to // the LoopBlocks list. @@ -792,7 +797,6 @@ void LoopUnswitch::UnswitchNontrivialCondition(Value *LIC, Constant *Val, // Next step, clone all of the basic blocks that make up the loop (including // the loop preheader and exit blocks), keeping track of the mapping between // the instructions and blocks. - std::vector<BasicBlock*> NewBlocks; NewBlocks.reserve(LoopBlocks.size()); DenseMap<const Value*, Value*> ValueMap; for (unsigned i = 0, e = LoopBlocks.size(); i != e; ++i) { |