Author: Balazs Benics Date: 2025-02-01T08:21:15+01:00 New Revision: 65708bad579229cd7f62b8d0eaefda4bb20eb6d8
URL: https://github.com/llvm/llvm-project/commit/65708bad579229cd7f62b8d0eaefda4bb20eb6d8 DIFF: https://github.com/llvm/llvm-project/commit/65708bad579229cd7f62b8d0eaefda4bb20eb6d8.diff LOG: [clang][CodeGenOpenCL][NFC] Remove redundant map lookups (#125285) Added: Modified: clang/lib/CodeGen/CGOpenCLRuntime.cpp Removed: ################################################################################ diff --git a/clang/lib/CodeGen/CGOpenCLRuntime.cpp b/clang/lib/CodeGen/CGOpenCLRuntime.cpp index 115b618056a445..9f8ff488755ec3 100644 --- a/clang/lib/CodeGen/CGOpenCLRuntime.cpp +++ b/clang/lib/CodeGen/CGOpenCLRuntime.cpp @@ -130,10 +130,11 @@ void CGOpenCLRuntime::recordBlockInfo(const BlockExpr *E, assert(!EnqueuedBlockMap.contains(E) && "Block expression emitted twice"); assert(isa<llvm::Function>(InvokeF) && "Invalid invoke function"); assert(Block->getType()->isPointerTy() && "Invalid block literal type"); - EnqueuedBlockMap[E].InvokeFunc = InvokeF; - EnqueuedBlockMap[E].BlockArg = Block; - EnqueuedBlockMap[E].BlockTy = BlockTy; - EnqueuedBlockMap[E].KernelHandle = nullptr; + EnqueuedBlockInfo &BlockInfo = EnqueuedBlockMap[E]; + BlockInfo.InvokeFunc = InvokeF; + BlockInfo.BlockArg = Block; + BlockInfo.BlockTy = BlockTy; + BlockInfo.KernelHandle = nullptr; } llvm::Function *CGOpenCLRuntime::getInvokeFunction(const Expr *E) { @@ -148,17 +149,19 @@ CGOpenCLRuntime::emitOpenCLEnqueuedBlock(CodeGenFunction &CGF, const Expr *E) { // to get the block literal. const BlockExpr *Block = getBlockExpr(E); - assert(EnqueuedBlockMap.contains(Block) && "Block expression not emitted"); + auto It = EnqueuedBlockMap.find(Block); + assert(It != EnqueuedBlockMap.end() && "Block expression not emitted"); + EnqueuedBlockInfo &BlockInfo = It->second; // Do not emit the block wrapper again if it has been emitted. - if (EnqueuedBlockMap[Block].KernelHandle) { - return EnqueuedBlockMap[Block]; + if (BlockInfo.KernelHandle) { + return BlockInfo; } auto *F = CGF.getTargetHooks().createEnqueuedBlockKernel( - CGF, EnqueuedBlockMap[Block].InvokeFunc, EnqueuedBlockMap[Block].BlockTy); + CGF, BlockInfo.InvokeFunc, BlockInfo.BlockTy); // The common part of the post-processing of the kernel goes here. - EnqueuedBlockMap[Block].KernelHandle = F; - return EnqueuedBlockMap[Block]; + BlockInfo.KernelHandle = F; + return BlockInfo; } _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits