dhruvachak added a comment.

In D102107#3633705 <https://reviews.llvm.org/D102107#3633705>, @jdoerfert wrote:

> Also, make sure to remove all deviceRTL files and probably reset the 
> autogenerated tests to upstream (and re-generate) before you merge (or 
> reupload).
>
> In D102107#3633678 <https://reviews.llvm.org/D102107#3633678>, @dhruvachak 
> wrote:
>
>> I rebased and resolved conflicts just now and got the compiler built. I did 
>> not update the tests, hence not updating this review. I see the following 
>> outstanding issues:
>>
>> (1) make check-libomptarget produces a bunch of failures with the following 
>> compile-time assertion. So my rebased patch is not interacting correctly 
>> with opaque pointers. It is the same assertion for all the failures.
>> llvm-project/llvm/include/llvm/IR/Type.h:384: llvm::Type* 
>> llvm::Type::getNonOpaquePointerElementType() const: Assertion 
>> `NumContainedTys && "Attempting to get element type of opaque pointer"' 
>> failed.
>
> See my comment below. I think that's the issue.
>
>> (2) From earlier investigation a couple of months back, this patch uses 
>> device alloc and will fail if device allocation is not implemented (e.g. in 
>> main branch of amdgpu). Most of these failures are seen at -O0, OpenMPOpt is 
>> able to optimize them away at higher opt levels. Are we ok with these 
>> failures at -O0?
>
> It used __kmpc_alloc_shared, which should in theory work with O0 (also for 
> AMDGPU) but in practice might not, especially if it has to fallback to 
> malloc. We are working on malloc support right now. This should not stop us. 
> No reasonable code runs with O0 (on AMDGPU) right now.
>
>> (3) There were a few issues found regarding SPDMization, NoCaptureAttrs, 
>> alignment that should be applied to this patch. I have those changes on a 
>> local branch.
>
> Apply them, I can look over everything again.

Yes, I will apply the changes, refresh the tests, and re-upload.



================
Comment at: clang/lib/CodeGen/CGOpenMPRuntimeGPU.cpp:1540
+
+    llvm::Type *PtrElemTy = AggregateV->getType()->getPointerElementType();
+    auto &DL = CGM.getDataLayout();
----------------
jdoerfert wrote:
> This doesn't work anymore with opaque pointers, IIRC. We should remember the 
> type and pass to this place.
Thanks. Changing this fixed the assertions. 


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D102107/new/

https://reviews.llvm.org/D102107

_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to