[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