From b0f74b24faa4bbbe5f07facb1e414c94e03ab428 Mon Sep 17 00:00:00 2001 From: Benjamin Kramer Date: Fri, 7 Mar 2014 21:35:39 +0000 Subject: [C++11] Convert sort predicates into lambdas. No functionality change. llvm-svn: 203288 --- llvm/lib/Transforms/Scalar/ConstantHoisting.cpp | 21 ++++++++------------- 1 file changed, 8 insertions(+), 13 deletions(-) (limited to 'llvm/lib/Transforms/Scalar/ConstantHoisting.cpp') diff --git a/llvm/lib/Transforms/Scalar/ConstantHoisting.cpp b/llvm/lib/Transforms/Scalar/ConstantHoisting.cpp index 4940424c123..b4419313b06 100644 --- a/llvm/lib/Transforms/Scalar/ConstantHoisting.cpp +++ b/llvm/lib/Transforms/Scalar/ConstantHoisting.cpp @@ -191,18 +191,6 @@ void ConstantHoisting::CollectConstants(Function &F) { CollectConstants(I); } -/// \brief Compare function for sorting integer constants by type and by value -/// within a type in ConstantMaps. -static bool -ConstantMapLessThan(const std::pair &LHS, - const std::pair &RHS) { - if (LHS.first->getType() == RHS.first->getType()) - return LHS.first->getValue().ult(RHS.first->getValue()); - else - return LHS.first->getType()->getBitWidth() < - RHS.first->getType()->getBitWidth(); -} - /// \brief Find the base constant within the given range and rebase all other /// constants with respect to the base constant. void ConstantHoisting::FindAndMakeBaseConstant(ConstantMapType::iterator S, @@ -239,7 +227,14 @@ void ConstantHoisting::FindAndMakeBaseConstant(ConstantMapType::iterator S, /// an add from a common base constant. void ConstantHoisting::FindBaseConstants() { // Sort the constants by value and type. This invalidates the mapping. - std::sort(ConstantMap.begin(), ConstantMap.end(), ConstantMapLessThan); + std::sort(ConstantMap.begin(), ConstantMap.end(), + [](const std::pair &LHS, + const std::pair &RHS) { + if (LHS.first->getType() != RHS.first->getType()) + return LHS.first->getType()->getBitWidth() < + RHS.first->getType()->getBitWidth(); + return LHS.first->getValue().ult(RHS.first->getValue()); + }); // Simple linear scan through the sorted constant map for viable merge // candidates. -- cgit v1.2.3