[Mlir-commits] [mlir] [mlir][spirv] Split conditional basic blocks during deserialization (PR #127639)

Jakub Kuderski llvmlistbot at llvm.org
Fri Feb 21 08:33:16 PST 2025


================
@@ -2158,13 +2158,54 @@ LogicalResult spirv::Deserializer::wireUpBlockArgument() {
   return success();
 }
 
+LogicalResult spirv::Deserializer::splitConditionalBlocks() {
+  for (auto it = blockMergeInfo.begin(); it != blockMergeInfo.end(); ++it) {
+    auto &[block, mergeInfo] = *it;
+
+    // Skip processing loop regions. For loop regions continueBlock is non-null.
+    if (mergeInfo.continueBlock)
+      continue;
+
+    if (!block->mightHaveTerminator())
+      continue;
+
+    Operation *terminator = block->getTerminator();
+    assert(terminator != nullptr);
----------------
kuhar wrote:

```suggestion
    assert(terminator);
```

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


More information about the Mlir-commits mailing list