[Mlir-commits] [mlir] d5ec49f - [mlir] Initialize DefaultTimingManager::out. (#87522)

llvmlistbot at llvm.org llvmlistbot at llvm.org
Wed Apr 3 10:56:58 PDT 2024


Author: Chenguang Wang
Date: 2024-04-03T10:56:55-07:00
New Revision: d5ec49ff3dc26cdbe350e9cafc6b8e331fff7911

URL: https://github.com/llvm/llvm-project/commit/d5ec49ff3dc26cdbe350e9cafc6b8e331fff7911
DIFF: https://github.com/llvm/llvm-project/commit/d5ec49ff3dc26cdbe350e9cafc6b8e331fff7911.diff

LOG: [mlir] Initialize DefaultTimingManager::out. (#87522)

`DefaultTimingManager::clear()` uses `out` to initialize `TimerImpl`,
but the `out` is `nullptr` by default. This means if
`DefaultTimingManager::setOutput()` is never called,
`DefaultTimingManager` destructor may generate SIGSEGV.

Added: 
    

Modified: 
    mlir/lib/Support/Timing.cpp

Removed: 
    


################################################################################
diff  --git a/mlir/lib/Support/Timing.cpp b/mlir/lib/Support/Timing.cpp
index 1d6796e9d8dc50..ac16eb7d224c9a 100644
--- a/mlir/lib/Support/Timing.cpp
+++ b/mlir/lib/Support/Timing.cpp
@@ -499,7 +499,8 @@ class DefaultTimingManagerImpl {
 } // namespace mlir
 
 DefaultTimingManager::DefaultTimingManager()
-    : impl(std::make_unique<DefaultTimingManagerImpl>()) {
+    : impl(std::make_unique<DefaultTimingManagerImpl>()),
+      out(std::make_unique<OutputTextStrategy>(llvm::errs())) {
   clear(); // initializes the root timer
 }
 


        


More information about the Mlir-commits mailing list