tra accepted this revision.
tra added a comment.
This revision is now accepted and ready to land.

LGTM with few minor nits and questions.

In D140158#4063689 <https://reviews.llvm.org/D140158#4063689>, @jhuber6 wrote:

> Addressing some comments. I don't know if there's a cleaner way to mess 
> around with the `.cubin` nonsense. I liked symbolic links but that doesn't 
> work on Windows.

Can we do a copy or rename instead. That could be more portable.



================
Comment at: clang/lib/Driver/ToolChains/Cuda.cpp:518-521
+                                    const InputInfo &Output,
+                                    const InputInfoList &Inputs,
+                                    const ArgList &Args,
+                                    const char *LinkingOutput) const {
----------------
Nit: Looks like there are tabs.


================
Comment at: clang/lib/Driver/ToolChains/Cuda.cpp:448-450
+  // If we are invoking `nvlink` internally we need to output a `.cubin` file.
+  // Checking if the output is a temporary is the cleanest way to determine
+  // this. Putting this logic in `getInputFIlename` isn't an option because it
----------------
jhuber6 wrote:
> tra wrote:
> > Can't say that I like this approach. It heavily relies on "happens to work".
> > 
> > Perhaps a better way to deal with this is to create the temporary GPU 
> > object file name with ".cubin" extension to start with.
> > 
> > 
> > 
> As far as I know, the files are created independently of the tool-chains so 
> I'm not sure if we'd be able to check there. The current way is to use 
> `getInputFilename` but that doesn't have access to the compilation. As far as 
> I can come up with there's the following solutions
> 
> - Do this and check the temp files
> - Create a symbolic link if the file is empty (Doesn't work on Windows)
> - Make a random global that's true if the Linker tool was built at some point
Naming is hard. :-(

OK, let's add a FIXME to this comment and hope to get it fixed when NVIDIA's 
tools become less obsessive about file extensions. I'll file a bug with them to 
get the ball rolling on their end.


================
Comment at: clang/lib/Driver/ToolChains/Cuda.h:196-197
+
+   void AddCudaIncludeArgs(const llvm::opt::ArgList &DriverArgs,
                            llvm::opt::ArgStringList &CC1Args) const override;
 
----------------
jhuber6 wrote:
> tra wrote:
> > Nit: it's hard to tell whether the whitespace additions are spaces or tabs. 
> > They show up as ">" to me which suggests it may be tabs. Just in case it is 
> > indeed the case, please make sure to un-tabify the changes.
> I think it's because the original file was formatted incorrectly, so all my 
> new changes are formatted correctly. I'm somewhat more tempted to just 
> clang-format it upstream and rebase it.
Clang-formatting the file(s) and submitting that change separately before the 
patch SGTM.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D140158

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

Reply via email to