tra added a comment.

In D77451#1964971 <https://reviews.llvm.org/D77451#1964971>, @sammccall wrote:

> > NVCC uses different options that should be properly translated
>
> Interested to see how this will work. Is clang itself going to support these 
> args (act compatibly with nvcc, or is the idea that just tools will be?


I don't think it makes a lot of sense to create nvcc-compatible driver. Even if 
we did, we'd still have to handle things in the tooling library, too, in a way 
similar to what we currently do for cl or clang-cl.  Argument translation could 
use some refactoring, too, to make it more generic and easier to adapt.



================
Comment at: clang/lib/Tooling/InterpolatingCompilationDatabase.cpp:119
+  case types::TY_CUDA_DEVICE:
+  case types::TY_CUDA_FATBIN:
+    return types::TY_CUDA:
----------------
sammccall wrote:
> tra wrote:
> > I don't think you need CUDA_FATBIN for clangd.  If your input is .fatbin, 
> > the source code has been long gone.
> This establishes equivalence classes within which it makes sense to transfer 
> command-line flags. So if you might have compile_commands.json entries 
> building .fatbin inputs, and those flags are a sensible template for building 
> *.cu.cc files, then you want fatbin here, otherwise not.
Both nvcc and clang can build .ptx (nvcc's `-ptx`, clang's `--cuda-device-only 
-S`) or .cubin (`-cubin` and `--cuda-device-only -c`).  I believe neither nvcc 
not clang expose fatbin as a compilation result. It's purely for internal 
driver use in both cases. 


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D77451



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

Reply via email to