jdoerfert added a comment.

Are there unresolved concerns we should address in this review?



================
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:
> > 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.
> I think it's fine here for this patch, but I definitely want to move it into 
> LLVM in the future once I start generalizing more of this stuff.
I'm OK with it being here but the place to consider (IMHO) is 
`llvm/lib/Frontend`, maybe `/CUDA/Register.cpp`.


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