[PATCH] D138614: [Clang][OpenMP][AMDGPU] Fix capture of variably modified type alias in teams distribute
Alexey Bataev via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Tue Nov 29 10:49:04 PST 2022
ABataev added inline comments.
================
Comment at: clang/lib/CodeGen/CGOpenMPRuntimeGPU.cpp:243
if (!FD->getType()->isReferenceType()) {
- assert(!VD->getType()->isVariablyModifiedType() &&
+ bool isVMT = VD->getType()->isVariablyModifiedType();
+ assert((!isVMT || (isVMT && !IsForCombinedParallelRegion)) &&
----------------
doru1004 wrote:
> doru1004 wrote:
> > ABataev wrote:
> > > Is it for pointers only? Or for other types too?
> > I am not sure about that distinction; it allows for the same types as before except that when the directive is not a combined parallel for directive it returns immediately because the variable will then have to be captured and shared.
> Correction: it allows for VMTs to pass through in cases in which you don't use a combined parallel for directive.
`IsVMTTy`?
================
Comment at: clang/lib/CodeGen/CGOpenMPRuntimeGPU.cpp:243
if (!FD->getType()->isReferenceType()) {
- assert(!VD->getType()->isVariablyModifiedType() &&
+ bool isVMT = VD->getType()->isVariablyModifiedType();
+ assert((!isVMT || (isVMT && !IsForCombinedParallelRegion)) &&
----------------
ABataev wrote:
> doru1004 wrote:
> > doru1004 wrote:
> > > ABataev wrote:
> > > > Is it for pointers only? Or for other types too?
> > > I am not sure about that distinction; it allows for the same types as before except that when the directive is not a combined parallel for directive it returns immediately because the variable will then have to be captured and shared.
> > Correction: it allows for VMTs to pass through in cases in which you don't use a combined parallel for directive.
> `IsVMTTy`?
How can it be captured by value? Why does it happen? My first question relates to the assertion you changed. I assume, it applies only to the pointers. Otherwise, please add more context how we can capture mariably modifiable type by value.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D138614/new/
https://reviews.llvm.org/D138614
More information about the cfe-commits
mailing list