diff options
| author | Devang Patel <dpatel@apple.com> | 2007-02-26 20:22:50 +0000 |
|---|---|---|
| committer | Devang Patel <dpatel@apple.com> | 2007-02-26 20:22:50 +0000 |
| commit | 97517ff93093b99d3b4c535d9f6385f296fc1433 (patch) | |
| tree | 7e9b32c77e9257da88c3edaef998a7fed4cf5983 /llvm/lib | |
| parent | 535bd6d3ba31375b54799a14a2534f07d20a0636 (diff) | |
| download | bcm5719-llvm-97517ff93093b99d3b4c535d9f6385f296fc1433.tar.gz bcm5719-llvm-97517ff93093b99d3b4c535d9f6385f296fc1433.zip | |
Use efficient container SmallPtrSet
llvm-svn: 34640
Diffstat (limited to 'llvm/lib')
| -rw-r--r-- | llvm/lib/Transforms/Scalar/LoopUnswitch.cpp | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/llvm/lib/Transforms/Scalar/LoopUnswitch.cpp b/llvm/lib/Transforms/Scalar/LoopUnswitch.cpp index cd8d82bcde8..861e97ce586 100644 --- a/llvm/lib/Transforms/Scalar/LoopUnswitch.cpp +++ b/llvm/lib/Transforms/Scalar/LoopUnswitch.cpp @@ -38,6 +38,7 @@ #include "llvm/Transforms/Utils/Local.h" #include "llvm/Transforms/Utils/BasicBlockUtils.h" #include "llvm/ADT/Statistic.h" +#include "llvm/ADT/SmallPtrSet.h" #include "llvm/ADT/PostOrderIterator.h" #include "llvm/Support/CommandLine.h" #include "llvm/Support/Compiler.h" @@ -62,7 +63,7 @@ namespace { // LoopProcessWorklist - List of loops we need to process. std::vector<Loop*> LoopProcessWorklist; - std::set<Value *> UnswitchedVals; + SmallPtrSet<Value *,8> UnswitchedVals; public: virtual bool runOnFunction(Function &F); @@ -129,6 +130,7 @@ bool LoopUnswitch::runOnFunction(Function &F) { Changed |= visitLoop(L); } + UnswitchedVals.clear(); return Changed; } @@ -189,9 +191,8 @@ bool LoopUnswitch::visitLoop(Loop *L) { // FIXME: this should chose the most expensive case! Constant *UnswitchVal = SI->getCaseValue(1); // Do not process same value again and again. - if (UnswitchedVals.count(UnswitchVal) != 0) + if (!UnswitchedVals.insert(UnswitchVal)) continue; - UnswitchedVals.insert(UnswitchVal); if (UnswitchIfProfitable(LoopCond, UnswitchVal, L)) { ++NumSwitches; |

