[OpenMP][MLIR] Hoist static allocas emitted by private init regions to the allocation IP of the construct
#915
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.
This is not for merging, it tests the changes of the upstream PR: llvm#171597 on our internal CI.
Having more than 1 descritpr (allocatable or array) on the same
privateclause triggers a runtime crash on GPUs at the moment.For SPMD kernels, the issue happens because the initialization logic includes:
firis lowered tomlir.llvm).Because of these 2 things, temp allocations needed for descriptors beyond the 1st one are preceded by branching which causes the observed the runtime crash.
This PR solves this issue by hoisting these static
allocas instructions to the suitable allca IP of the parent construct.