[Mlir-commits] [mlir] [mlir][target] RAII wrap moduleToObject timer to ensure call `clear` function (PR #136142)

Mehdi Amini llvmlistbot at llvm.org
Thu Apr 17 07:08:30 PDT 2025


================
@@ -691,6 +687,18 @@ NVPTXSerializer::moduleToObject(llvm::Module &llvmModule) {
   return std::nullopt;
 #endif // LLVM_HAS_NVPTX_TARGET
 
+  auto timerDeleter = [](llvm::Timer *timer) {
+    if (timer != nullptr) {
+      timer->clear();
+      delete timer;
+    }
+  };
+  std::unique_ptr<llvm::Timer, decltype(timerDeleter)> moduleToObjectTimer(
+      new llvm::Timer("moduleToObjectTimer",
+                      "Timer for perf llvm-ir -> isa and isa -> binary."),
+      timerDeleter);
+  moduleToObjectTimer->startTimer();
+
----------------
joker-eph wrote:

Can't we just do the following:

```
auto clear = llvm::make_scope_exit([&]() { moduleToObjectTimer.clear(); });
```


https://github.com/llvm/llvm-project/pull/136142


More information about the Mlir-commits mailing list