diff --git a/llvm/lib/Transforms/IPO/SampleProfileProbe.cpp b/llvm/lib/Transforms/IPO/SampleProfileProbe.cpp index ec2594b0d9dc1..a614e2d169534 100644 --- a/llvm/lib/Transforms/IPO/SampleProfileProbe.cpp +++ b/llvm/lib/Transforms/IPO/SampleProfileProbe.cpp @@ -148,8 +148,9 @@ void PseudoProbeVerifier::verifyProbeFactors( auto &PrevProbeFactors = FunctionProbeFactors[F->getName()]; for (const auto &I : ProbeFactors) { float CurProbeFactor = I.second; - if (PrevProbeFactors.count(I.first)) { - float PrevProbeFactor = PrevProbeFactors[I.first]; + auto [It, Inserted] = PrevProbeFactors.try_emplace(I.first); + if (!Inserted) { + float PrevProbeFactor = It->second; if (std::abs(CurProbeFactor - PrevProbeFactor) > DistributionFactorVariance) { if (!BannerPrinted) { @@ -163,7 +164,7 @@ void PseudoProbeVerifier::verifyProbeFactors( } // Update - PrevProbeFactors[I.first] = I.second; + It->second = I.second; } }