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

Igor Wodiany llvmlistbot at llvm.org
Wed Feb 19 01:29:14 PST 2025


================
@@ -2158,13 +2158,55 @@ LogicalResult spirv::Deserializer::wireUpBlockArgument() {
   return success();
 }
 
+LogicalResult spirv::Deserializer::splitConditionalBlocks() {
+  auto splitBlock = [&](Block *block) {
+    // Do not split loop headers
+    if (auto it = blockMergeInfo.find(block); it != blockMergeInfo.end()) {
+      if (it->second.continueBlock) {
+        return;
+      }
+    }
+
+    if (!block->mightHaveTerminator())
+      return;
+
+    auto terminator = block->getTerminator();
----------------
IgWod-IMG wrote:

Apologies, I know that's something you previously commented on one of the previous PRs. This PR was developed earlier, but only submitted now, and I forgot to apply lessons learned to it :)

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


More information about the Mlir-commits mailing list