From: Chris Lattner Date: Mon, 13 Dec 2010 02:00:58 +0000 (+0000) Subject: convert an std::sort to array_pod_sort. X-Git-Url: http://plrg.eecs.uci.edu/git/?a=commitdiff_plain;h=6d4d21e29d4840236ab6f15c5247379820021d0c;p=oota-llvm.git convert an std::sort to array_pod_sort. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121669 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Transforms/Utils/SimplifyCFG.cpp b/lib/Transforms/Utils/SimplifyCFG.cpp index 8cc63e603ad..912d1d63520 100644 --- a/lib/Transforms/Utils/SimplifyCFG.cpp +++ b/lib/Transforms/Utils/SimplifyCFG.cpp @@ -29,8 +29,8 @@ #include "llvm/ADT/SmallVector.h" #include "llvm/ADT/SmallPtrSet.h" #include "llvm/ADT/Statistic.h" +#include "llvm/ADT/STLExtras.h" #include -#include #include #include using namespace llvm; @@ -610,6 +610,12 @@ namespace { }; } +static int ConstantIntSortPredicate(const void *P1, const void *P2) { + const ConstantInt *LHS = *(const ConstantInt**)P1; + const ConstantInt *RHS = *(const ConstantInt**)P2; + return LHS->getValue().ult(RHS->getValue()); +} + /// FoldValueComparisonIntoPredecessors - The specified terminator is a value /// equality comparison instruction (either a switch or a branch on "X == c"). /// See if any of the predecessors of the terminator block are value comparisons @@ -1985,7 +1991,7 @@ bool SimplifyCFGOpt::run(BasicBlock *BB) { if (CompVal) { // There might be duplicate constants in the list, which the switch // instruction can't handle, remove them now. - std::sort(Values.begin(), Values.end(), ConstantIntOrdering()); + array_pod_sort(Values.begin(), Values.end(), ConstantIntSortPredicate); Values.erase(std::unique(Values.begin(), Values.end()), Values.end()); // Figure out which block is which destination.