[NVPTX] Fix NVPTX output name in the driver with `-save-temps`
authorJoseph Huber <jhuber6@vols.utk.edu>
Wed, 15 Feb 2023 13:37:47 +0000 (07:37 -0600)
committerJoseph Huber <jhuber6@vols.utk.edu>
Wed, 15 Feb 2023 13:39:59 +0000 (07:39 -0600)
commit861764b1c5f7fc31601655f01d84407d42013c30
tree95eefa191d07c919d4a4fc02ed921fb9bd914e89
parent15b90805bcb8a567525a0a3605904f3ea59490dd
[NVPTX] Fix NVPTX output name in the driver with `-save-temps`

Summary:
Currently, OpenMP and direct compilation uses an NVPTX toolchain to
directly invoke the CUDA tools from Clang to do the assembling and
linking of NVPTX codes. This breaks under `-save-temps` because of a
workaround. The `nvlink` linker does not accept `.o` files, so we need
to be selective when we output these. The previous logic keyed off of
presense in the temp files and wasn't a great solution. Change this to
just query the input args for `-c` to see if we stop at the assembler.

Fixes https://github.com/llvm/llvm-project/issues/60767
clang/lib/Driver/ToolChains/Cuda.cpp
clang/test/Driver/cuda-cross-compiling.c