[Mlir-commits] [mlir] [mlir][IR] Insert operations before `SingleBlock`'s terminator (PR #65959)

llvmlistbot at llvm.org llvmlistbot at llvm.org
Mon Sep 18 01:08:05 PDT 2023


================
@@ -932,6 +932,10 @@ struct SingleBlock : public TraitBase<ConcreteType, SingleBlock> {
   }
   template <typename OpT = ConcreteType>
   enable_if_single_region<OpT> insert(Block::iterator insertPt, Operation *op) {
+    Block *body = getBody();
+    // Insert op before the block's terminator if it has one
+    if (insertPt == body->end() && body->hasTerminator())
+      insertPt = Block::iterator(body->getTerminator());
----------------
victor-eds wrote:

Changing the definition of `hasTerminator` so that it checks the last operation is definitely a terminator and keeping current semantics should work, right? (of course reverting the change to the assertion in this PR)

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


More information about the Mlir-commits mailing list