diff --git a/llvm/lib/Transforms/IPO/AttributorAttributes.cpp b/llvm/lib/Transforms/IPO/AttributorAttributes.cpp index 60aa758917b0b..4b7902ff502d3 100644 --- a/llvm/lib/Transforms/IPO/AttributorAttributes.cpp +++ b/llvm/lib/Transforms/IPO/AttributorAttributes.cpp @@ -1679,8 +1679,8 @@ ChangeStatus AAPointerInfoFloating::updateImpl(Attributor &A) { if (auto *PHI = dyn_cast(Usr)) { // Note the order here, the Usr access might change the map, CurPtr is // already in it though. - bool IsFirstPHIUser = !OffsetInfoMap.count(PHI); - auto &UsrOI = OffsetInfoMap[PHI]; + auto [PhiIt, IsFirstPHIUser] = OffsetInfoMap.try_emplace(PHI); + auto &UsrOI = PhiIt->second; auto &PtrOI = OffsetInfoMap[CurPtr]; // Check if the PHI operand has already an unknown offset as we can't