Ensure we propagate the return index when a return block is folded into an existing block #1051
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Ensure we propagate the return index when a return block is folded into an existing block
Without this change, my trivial program that I scaled down to in order to debug something failed to compile.
The trivial program was something like this
During cubecl's optimization passes, this would eventually look for post dominators during GVN
Since the whole program had been folded into a single basic block, but the opt.ret index had not been updated, this would attempt to traverse the graph starting from a non-existent index, leading to a panic.
This change ensures that the opt.ret index is updated if we remove the block it was previously pointing to, at least in this pass.