https://github.com/RiverDave approved this pull request.

LGTM. 

This is a bit more related to the HIP runtime: I did a quick grep around the 
codebase and found another gap under `cir::MissingFeatures::hipModuleCtor()` 
here:
https://github.com/llvm/llvm-project/blob/b9057571ff0d5d901145ccbacc60396236c91e59/clang/lib/CIR/Dialect/Transforms/LoweringPrepare.cpp#L2529

It looks like OG appends the CUID hash to `__hip_gpubin_handle` 
([CGCUDANV.cpp#L996-L1000](https://github.com/llvm/llvm-project/blob/793137b8a9f92ad09f08701fd297aead07515a50/clang/lib/CodeGen/CGCUDANV.cpp#L996-L1000)),
 and CIR doesn't. This seems to fire when no fatbin is passed, where OG emits 
an external `__hip_fatbin[_<cuid>]` in .hip_fatbin 
([CGCUDANV.cpp#L920-L932](https://github.com/llvm/llvm-project/blob/793137b8a9f92ad09f08701fd297aead07515a50/clang/lib/CodeGen/CGCUDANV.cpp#L920-L932)),
 is still only covered by hipModuleCtor.

Back then when we were testing our implementation, I'm pretty sure that early 
return never fired so I'm unsure under which workloads that's a blocker. I 
think it might be worth implementing this for completeness later on 😛 

https://github.com/llvm/llvm-project/pull/229001
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to