diff options
| author | Dan Gohman <gohman@apple.com> | 2012-03-02 01:13:53 +0000 | 
|---|---|---|
| committer | Dan Gohman <gohman@apple.com> | 2012-03-02 01:13:53 +0000 | 
| commit | 55b067427b11d3a60a01f92a6e76fd36d56af624 (patch) | |
| tree | 2452df8e80539c2636550f7d7b19b359b15649e8 /llvm/lib/Transforms | |
| parent | e8c0cfbb0082b9301ee0b6234d0967872fc4c4e4 (diff) | |
| download | bcm5719-llvm-55b067427b11d3a60a01f92a6e76fd36d56af624.tar.gz bcm5719-llvm-55b067427b11d3a60a01f92a6e76fd36d56af624.zip | |
Misc micro-optimizations.
llvm-svn: 151869
Diffstat (limited to 'llvm/lib/Transforms')
| -rw-r--r-- | llvm/lib/Transforms/Scalar/ObjCARC.cpp | 22 | 
1 files changed, 12 insertions, 10 deletions
| diff --git a/llvm/lib/Transforms/Scalar/ObjCARC.cpp b/llvm/lib/Transforms/Scalar/ObjCARC.cpp index dd3e7589bd6..cb0eddd2f4c 100644 --- a/llvm/lib/Transforms/Scalar/ObjCARC.cpp +++ b/llvm/lib/Transforms/Scalar/ObjCARC.cpp @@ -88,13 +88,14 @@ namespace {      }  #endif -    ValueT &operator[](KeyT Arg) { +    ValueT &operator[](const KeyT &Arg) {        std::pair<typename MapTy::iterator, bool> Pair =          Map.insert(std::make_pair(Arg, size_t(0)));        if (Pair.second) { -        Pair.first->second = Vector.size(); +        size_t Num = Vector.size(); +        Pair.first->second = Num;          Vector.push_back(std::make_pair(Arg, ValueT())); -        return Vector.back().second; +        return Vector[Num].second;        }        return Vector[Pair.first->second].second;      } @@ -104,14 +105,15 @@ namespace {        std::pair<typename MapTy::iterator, bool> Pair =          Map.insert(std::make_pair(InsertPair.first, size_t(0)));        if (Pair.second) { -        Pair.first->second = Vector.size(); +        size_t Num = Vector.size(); +        Pair.first->second = Num;          Vector.push_back(InsertPair); -        return std::make_pair(llvm::prior(Vector.end()), true); +        return std::make_pair(Vector.begin() + Num, true);        }        return std::make_pair(Vector.begin() + Pair.first->second, false);      } -    const_iterator find(KeyT Key) const { +    const_iterator find(const KeyT &Key) const {        typename MapTy::const_iterator It = Map.find(Key);        if (It == Map.end()) return Vector.end();        return Vector.begin() + It->second; @@ -121,7 +123,7 @@ namespace {      /// from the vector, it just zeros out the key in the vector. This leaves      /// iterators intact, but clients must be prepared for zeroed-out keys when      /// iterating. -    void blot(KeyT Key) { +    void blot(const KeyT &Key) {        typename MapTy::iterator It = Map.find(Key);        if (It == Map.end()) return;        Vector[It->second].first = KeyT(); @@ -2400,7 +2402,7 @@ ObjCARCOpt::CheckForCFGHazards(const BasicBlock *BB,                                 BBState &MyStates) const {    // If any top-down local-use or possible-dec has a succ which is earlier in    // the sequence, forget it. -  for (BBState::ptr_const_iterator I = MyStates.top_down_ptr_begin(), +  for (BBState::ptr_iterator I = MyStates.top_down_ptr_begin(),         E = MyStates.top_down_ptr_end(); I != E; ++I)      switch (I->second.GetSeq()) {      default: break; @@ -2409,7 +2411,7 @@ ObjCARCOpt::CheckForCFGHazards(const BasicBlock *BB,        const TerminatorInst *TI = cast<TerminatorInst>(&BB->back());        bool SomeSuccHasSame = false;        bool AllSuccsHaveSame = true; -      PtrState &S = MyStates.getPtrTopDownState(Arg); +      PtrState &S = I->second;        succ_const_iterator SI(TI), SE(TI, false);        // If the terminator is an invoke marked with the @@ -2452,7 +2454,7 @@ ObjCARCOpt::CheckForCFGHazards(const BasicBlock *BB,        const TerminatorInst *TI = cast<TerminatorInst>(&BB->back());        bool SomeSuccHasSame = false;        bool AllSuccsHaveSame = true; -      PtrState &S = MyStates.getPtrTopDownState(Arg); +      PtrState &S = I->second;        succ_const_iterator SI(TI), SE(TI, false);        // If the terminator is an invoke marked with the | 

