[llvm-commits] [llvm] r165904 - /llvm/trunk/lib/Transforms/Utils/SimplifyCFG.cpp

Sean Silva silvas at purdue.edu
Sun Oct 14 07:15:26 PDT 2012


This is great! It looks like it also avoids quadratic runtime.

-- Sean Silva

On Sun, Oct 14, 2012 at 7:15 AM, Benjamin Kramer
<benny.kra at googlemail.com> wrote:
> Author: d0k
> Date: Sun Oct 14 06:15:42 2012
> New Revision: 165904
>
> URL: http://llvm.org/viewvc/llvm-project?rev=165904&view=rev
> Log:
> Simplify code. No functionality change.
>
> Modified:
>     llvm/trunk/lib/Transforms/Utils/SimplifyCFG.cpp
>
> Modified: llvm/trunk/lib/Transforms/Utils/SimplifyCFG.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/Utils/SimplifyCFG.cpp?rev=165904&r1=165903&r2=165904&view=diff
> ==============================================================================
> --- llvm/trunk/lib/Transforms/Utils/SimplifyCFG.cpp (original)
> +++ llvm/trunk/lib/Transforms/Utils/SimplifyCFG.cpp Sun Oct 14 06:15:42 2012
> @@ -76,6 +76,8 @@
>        // Comparing pointers is ok as we only rely on the order for uniquing.
>        return Value < RHS.Value;
>      }
> +
> +    bool operator==(BasicBlock *RHSDest) const { return Dest == RHSDest; }
>    };
>
>  class SimplifyCFGOpt {
> @@ -564,11 +566,7 @@
>  /// in the list that match the specified block.
>  static void EliminateBlockCases(BasicBlock *BB,
>                                std::vector<ValueEqualityComparisonCase> &Cases) {
> -  for (unsigned i = 0, e = Cases.size(); i != e; ++i)
> -    if (Cases[i].Dest == BB) {
> -      Cases.erase(Cases.begin()+i);
> -      --i; --e;
> -    }
> +  Cases.erase(std::remove(Cases.begin(), Cases.end(), BB), Cases.end());
>  }
>
>  /// ValuesOverlap - Return true if there are any keys in C1 that exist in C2 as
>
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits



More information about the llvm-commits mailing list