[llvm] [SPIRV] Avoid repeated hash lookups (NFC) (PR #130241)
Kazu Hirata via llvm-commits
llvm-commits at lists.llvm.org
Thu Mar 6 20:51:37 PST 2025
https://github.com/kazutakahirata created https://github.com/llvm/llvm-project/pull/130241
None
>From e5c4651844312ab25df789c85813c019da03c707 Mon Sep 17 00:00:00 2001
From: Kazu Hirata <kazu at google.com>
Date: Thu, 6 Mar 2025 09:04:12 -0800
Subject: [PATCH] [SPIRV] Avoid repeated hash lookups (NFC)
---
llvm/lib/Target/SPIRV/SPIRVGlobalRegistry.cpp | 15 ++++++++-------
1 file changed, 8 insertions(+), 7 deletions(-)
diff --git a/llvm/lib/Target/SPIRV/SPIRVGlobalRegistry.cpp b/llvm/lib/Target/SPIRV/SPIRVGlobalRegistry.cpp
index 24f9912e40be5..cbec1c95eadc3 100644
--- a/llvm/lib/Target/SPIRV/SPIRVGlobalRegistry.cpp
+++ b/llvm/lib/Target/SPIRV/SPIRVGlobalRegistry.cpp
@@ -1008,8 +1008,8 @@ SPIRVType *SPIRVGlobalRegistry::findSPIRVType(
Register Reg = DT.find(Ty, &MIRBuilder.getMF());
if (Reg.isValid())
return getSPIRVTypeForVReg(Reg);
- if (ForwardPointerTypes.contains(Ty))
- return ForwardPointerTypes[Ty];
+ if (auto It = ForwardPointerTypes.find(Ty); It != ForwardPointerTypes.end())
+ return It->second;
return restOfCreateSPIRVType(Ty, MIRBuilder, AccQual, EmitIR);
}
@@ -1103,14 +1103,15 @@ SPIRVType *SPIRVGlobalRegistry::createSPIRVType(
// Null pointer means we have a loop in type definitions, make and
// return corresponding OpTypeForwardPointer.
if (SpvElementType == nullptr) {
- if (!ForwardPointerTypes.contains(Ty))
- ForwardPointerTypes[Ty] = getOpTypeForwardPointer(SC, MIRBuilder);
- return ForwardPointerTypes[Ty];
+ auto [It, Inserted] = ForwardPointerTypes.try_emplace(Ty);
+ if (Inserted)
+ It->second = getOpTypeForwardPointer(SC, MIRBuilder);
+ return It->second;
}
// If we have forward pointer associated with this type, use its register
// operand to create OpTypePointer.
- if (ForwardPointerTypes.contains(Ty)) {
- Register Reg = getSPIRVTypeID(ForwardPointerTypes[Ty]);
+ if (auto It = ForwardPointerTypes.find(Ty); It != ForwardPointerTypes.end()) {
+ Register Reg = getSPIRVTypeID(It->second);
return getOpTypePointer(SC, SpvElementType, MIRBuilder, Reg);
}
More information about the llvm-commits
mailing list