Code generation support for 'parallel masked' directive.
The EmitOMPParallelMaskedDirective was implemented.
In addition, the appropiate device functions were added.
Fix #59939.
Differential D143527
[OpenMP][5.1] Fix parallel masked is ignored #59939 randreshg on Feb 7 2023, 1:52 PM. Authored by
Details Code generation support for 'parallel masked' directive. The EmitOMPParallelMaskedDirective was implemented. Fix #59939.
Diff Detail
Event Timeline
Comment Actions I’m confused that Shilei said in the issue in GitHub that this is supported already. But front end is just throwing an error message. Also. Should the same CGM.ErrorUnsupported be applied to all the llvm_unreachable in that switch Comment Actions Our Sema can support it but CodeGen doesn't. Here we want to error it out instead of "silently" pass if assertion is disabled.
That might be a good idea.
Comment Actions This is not a fix. It's "progress" in the sense that we should not have unreachable in the first place but proper errors. That said, it still doesn't solve the issue and certainly doesn't fix https://github.com/llvm/llvm-project/issues/59939. See my comments and use https://godbolt.org/z/q7MaKbarv as test for this.
Comment Actions The parallel masked directive is emitted as a combined directive that consists of two implicit directives: 'parallel' with 'masked' directive.
Comment Actions Just a suggestion, I think this works, although it may be best to use OpenMPIRBuilder.
Comment Actions LG, minor nits, see below.
|
... here. And see what happens.