From d0b1c98c960b1073015bb9a87c9d10a2115fd32f Mon Sep 17 00:00:00 2001 From: Amir Ayupov Date: Tue, 3 May 2022 19:30:41 -0700 Subject: [PATCH] [BOLT][NFC] ICP: simplify findTargetsIndex Unnest lambda and use `llvm::is_contained`. Reviewed By: rafauler Differential Revision: https://reviews.llvm.org/D124877 --- bolt/lib/Passes/IndirectCallPromotion.cpp | 23 ++++++++++------------- 1 file changed, 10 insertions(+), 13 deletions(-) diff --git a/bolt/lib/Passes/IndirectCallPromotion.cpp b/bolt/lib/Passes/IndirectCallPromotion.cpp index a028802734ef..dca7fe148e00 100644 --- a/bolt/lib/Passes/IndirectCallPromotion.cpp +++ b/bolt/lib/Passes/IndirectCallPromotion.cpp @@ -515,20 +515,17 @@ IndirectCallPromotion::findCallTargetSymbols(std::vector &Targets, JumpTableInfoType HotTargets = maybeGetHotJumpTableTargets(BB, CallInst, TargetFetchInst, JT); - if (!HotTargets.empty()) { - auto findTargetsIndex = [&](uint64_t JTIndex) { - for (size_t I = 0; I < Targets.size(); ++I) { - std::vector &JTIs = Targets[I].JTIndices; - if (std::find(JTIs.begin(), JTIs.end(), JTIndex) != JTIs.end()) - return I; - } - LLVM_DEBUG( - dbgs() << "BOLT-ERROR: Unable to find target index for hot jump " - << " table entry in " << *BB.getFunction() << "\n"); - llvm_unreachable("Hot indices must be referred to by at least one " - "callsite"); - }; + auto findTargetsIndex = [&](uint64_t JTIndex) { + for (size_t I = 0; I < Targets.size(); ++I) + if (llvm::is_contained(Targets[I].JTIndices, JTIndex)) + return I; + LLVM_DEBUG(dbgs() << "BOLT-ERROR: Unable to find target index for hot jump " + << " table entry in " << *BB.getFunction() << "\n"); + llvm_unreachable("Hot indices must be referred to by at least one " + "callsite"); + }; + if (!HotTargets.empty()) { if (opts::Verbosity >= 1) for (size_t I = 0; I < HotTargets.size(); ++I) outs() << "BOLT-INFO: HotTarget[" << I << "] = (" << HotTargets[I].first