OSDN Git Service

[mlir][PassManager] Properly set the initialization generation when cloning a pass...
authorRiver Riddle <riddleriver@gmail.com>
Fri, 8 Jan 2021 22:41:14 +0000 (14:41 -0800)
committerRiver Riddle <riddleriver@gmail.com>
Fri, 8 Jan 2021 22:41:29 +0000 (14:41 -0800)
Fixes a bug where dynamic pass pipelines of cloned pass managers weren't being initialized properly.

mlir/lib/Pass/Pass.cpp

index fdc6d56..d8a59bc 100644 (file)
@@ -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;