Author: Kazu Hirata Date: 2025-03-20T09:10:23-07:00 New Revision: 69b70110b78930b942a5e92db40bcefd0ac7890b
URL: https://github.com/llvm/llvm-project/commit/69b70110b78930b942a5e92db40bcefd0ac7890b DIFF: https://github.com/llvm/llvm-project/commit/69b70110b78930b942a5e92db40bcefd0ac7890b.diff LOG: [TableGen] Avoid repeated hash lookups (NFC) (#132142) Added: Modified: clang/utils/TableGen/NeonEmitter.cpp Removed: ################################################################################ diff --git a/clang/utils/TableGen/NeonEmitter.cpp b/clang/utils/TableGen/NeonEmitter.cpp index 5669b5e329587..bc142526ac973 100644 --- a/clang/utils/TableGen/NeonEmitter.cpp +++ b/clang/utils/TableGen/NeonEmitter.cpp @@ -1809,12 +1809,11 @@ Intrinsic::DagEmitter::emitDagSaveTemp(const DagInit *DI) { assert_with_loc(!N.empty(), "save_temp() expects a name as the first argument"); - assert_with_loc(Intr.Variables.find(N) == Intr.Variables.end(), - "Variable already defined!"); - Intr.Variables[N] = Variable(A.first, N + Intr.VariablePostfix); + auto [It, Inserted] = + Intr.Variables.try_emplace(N, A.first, N + Intr.VariablePostfix); + assert_with_loc(Inserted, "Variable already defined!"); - std::string S = - A.first.str() + " " + Intr.Variables[N].getName() + " = " + A.second; + std::string S = A.first.str() + " " + It->second.getName() + " = " + A.second; return std::make_pair(Type::getVoid(), S); } @@ -2246,9 +2245,9 @@ void NeonEmitter::genIntrinsicRangeCheckCode( // Sorted by immediate argument index ArrayRef<ImmCheck> Checks = Def->getImmChecks(); - const auto it = Emitted.find(Def->getMangledName()); - if (it != Emitted.end()) { - assert(areRangeChecksCompatible(Checks, it->second) && + auto [It, Inserted] = Emitted.try_emplace(Def->getMangledName(), Checks); + if (!Inserted) { + assert(areRangeChecksCompatible(Checks, It->second) && "Neon intrinsics with incompatible immediate range checks cannot " "share a builtin."); continue; // Ensure this is emitted only once @@ -2262,7 +2261,6 @@ void NeonEmitter::genIntrinsicRangeCheckCode( << Check.getVecSizeInBits() << ");\n" << " break;\n"; } - Emitted[Def->getMangledName()] = Checks; } OS << "#endif\n\n"; _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits