[llvm-branch-commits] [mlir] 77501bd - [mlir][PassManager] Properly set the initialization generation when cloning a pass manager

River Riddle via llvm-branch-commits llvm-branch-commits at lists.llvm.org
Fri Jan 8 14:51:31 PST 2021


Author: River Riddle
Date: 2021-01-08T14:41:29-08:00
New Revision: 77501bd1754fd15bc5044af78e987f894f494ee9

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

LOG: [mlir][PassManager] Properly set the initialization generation when cloning a pass manager

Fixes a bug where dynamic pass pipelines of cloned pass managers weren't being initialized properly.

Added: 
    

Modified: 
    mlir/lib/Pass/Pass.cpp

Removed: 
    


################################################################################
diff  --git a/mlir/lib/Pass/Pass.cpp b/mlir/lib/Pass/Pass.cpp
index fdc6d56d86a5..d8a59bc83661 100644
--- a/mlir/lib/Pass/Pass.cpp
+++ b/mlir/lib/Pass/Pass.cpp
@@ -246,6 +246,7 @@ OpPassManager::OpPassManager(OpPassManager &&rhs) : impl(std::move(rhs.impl)) {}
 OpPassManager::OpPassManager(const OpPassManager &rhs) { *this = rhs; }
 OpPassManager &OpPassManager::operator=(const OpPassManager &rhs) {
   impl.reset(new OpPassManagerImpl(rhs.impl->name, rhs.impl->nesting));
+  impl->initializationGeneration = rhs.impl->initializationGeneration;
   for (auto &pass : rhs.impl->passes)
     impl->passes.emplace_back(pass->clone());
   return *this;


        


More information about the llvm-branch-commits mailing list