[Mlir-commits] [mlir] [mlir][spirv] Split conditional basic blocks during deserialization (PR #127639)
Igor Wodiany
llvmlistbot at llvm.org
Mon Feb 24 07:57:15 PST 2025
IgWod-IMG wrote:
I have pushed an updated patch. `blockMergeInfo` is now correctly maintained in the splitting function. I also found an issue with non-deterministic crashes. The non-determinism itself is not fixed (discussed below), but the failures I started to see were due to me modifying the `DenseMap` key within the loop - instead of reinserting the element - breaking the internals of the data structure – silly me.
@kuhar if you're happy with the updated code then it's ready. Should we wait for @mishaobu to okay it before we merge it?
Now, the "issues" that is still present (although it doesn't cause any crashes with this patch) is that the deserialzier is non-deterministic due to use of a `DenseMap`. The selection and loop regions are sunk by iterating the `DenseMap` and the order of items within map may vary from run to run, as the`Block` pointer is used as a key. This doesn’t cause any issues with supported shaders; however, it makes debugging more difficult when things fail. Anyway, it’s outside the scope of this PR.
https://github.com/llvm/llvm-project/pull/127639
More information about the Mlir-commits
mailing list