From ff922374bbefd042ffacfb19563b9faac11cce3d Mon Sep 17 00:00:00 2001 From: Zichen Lu Date: Fri, 18 Apr 2025 11:24:16 +0800 Subject: [PATCH] [mlir][target] RAII wrap moduleToObject timer to ensure call clear function --- mlir/lib/Target/LLVM/NVVM/Target.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/mlir/lib/Target/LLVM/NVVM/Target.cpp b/mlir/lib/Target/LLVM/NVVM/Target.cpp index 586748df8d154..f8420385cbec4 100644 --- a/mlir/lib/Target/LLVM/NVVM/Target.cpp +++ b/mlir/lib/Target/LLVM/NVVM/Target.cpp @@ -26,6 +26,7 @@ #include "mlir/Target/LLVMIR/Dialect/NVVM/NVVMToLLVMIRTranslation.h" #include "mlir/Target/LLVMIR/Export.h" +#include "llvm/ADT/ScopeExit.h" #include "llvm/Config/llvm-config.h" #include "llvm/Support/FileSystem.h" #include "llvm/Support/FileUtilities.h" @@ -673,6 +674,7 @@ NVPTXSerializer::moduleToObject(llvm::Module &llvmModule) { llvm::Timer moduleToObjectTimer( "moduleToObjectTimer", "Timer for perf llvm-ir -> isa and isa -> binary."); + auto clear = llvm::make_scope_exit([&]() { moduleToObjectTimer.clear(); }); // Return LLVM IR if the compilation target is `offload`. #define DEBUG_TYPE "serialize-to-llvm" LLVM_DEBUG({