tra added inline comments.

================
Comment at: clang/tools/clang-linker-wrapper/OffloadWrapper.cpp:351
+///       required for texture / surface / managed variables.
+Function *createRegisterGlobalsFunction(Module &M) {
+  LLVMContext &C = M.getContext();
----------------
jhuber6 wrote:
> tra wrote:
> > Do you think generation of the CUDA registration glue could be shared with 
> > the front-end?
> > 
> I was thinking about it, but ultimately decided to keep the noise outside of 
> the new driver to a minimum. Maybe if we move to the offloading entries being 
> a common format we can easily share this code. Keeping it in Clang would have 
> the advantage that it's easier to test directly and ensures we don't de-sync 
> if anything changes. The only downside is that in the future I may want to 
> push this functionality to a linker plugin or similar, which would require 
> pulling it out of Clang again to prevent us needing to link in Clang to build 
> LLVM.
> 
> Also needing to do this all through the builder API isn't ideal, it would be 
> nice if we had some kind of runtime to call to do this for us, but I didn't 
> feel like adding yet another shared library for CUDA. I considered putting it 
> inside the cuda header wrappers as well, but forcing every CUDA file to have 
> some externally visible weak registration blob didn't sit well with me.
Perhaps front-end is not the right place for it, indeed. LLVM itself may be a 
better choice. We already have some things there for somewhat similar purposes 
(like lib/WindowsManifest) so adding a helper function to generate runtime glue 
for CUDA should not be unreasonable.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D123812

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

Reply via email to