tra added a comment.

In D120132#3349936 <https://reviews.llvm.org/D120132#3349936>, @yaxunl wrote:

> Users may use clang driver to compile HIP program and C++ program with one 
> clang driver invocation, e.g.
>
>   clang --offload-arch=gfx906 a.hip b.cpp
>
> Clang driver will create job actions for a.hip and b.cpp separately. The job 
> actions for a.hip have HIP offload kind. The job actions for b.cpp have 
> 'none' offload kind.
>
> Only job actions having HIP offload kind should have HIP include paths, 
> otherwise, even if clang driver is used for compiling one single C++ program, 
> it will add HIP include path.

Are you saying that clang driver would pick HIP toolchain for the C++ 
compilation? It does not make sense. It that were the case we would be risking 
picking up C++ toolchain for the HIP compilation, too and that would obviously 
not work at all.

AFAICT, clang certainly does not add CUDA include paths to C++ compilations 
passed to the top-level invocation. I believe this should work for HIP, too. 
Search for cuda-11.5 below:

  # bin/clang++ --cuda-path=$HOME/local/cuda-11.5.0 -### -c a.cu b.cc
  
  clang version 15.0.0
  Target: x86_64-unknown-linux-gnu
  Thread model: posix
  InstalledDir: /usr/local/home/tra/work/llvm/build/release+assert+zapcc/bin
   "/usr/local/home/tra/work/llvm/build/release+assert+zapcc/bin/clang-15" 
"-cc1" "-triple" "nvptx64-nvidia-cuda" "-aux-triple" "x86_64-unknown-linux-gnu" 
"-S" "-disable-free" "-clear-ast-before-backend" "-main-file-name" "a.cu" 
"-mrelocation-model" "static" "-mframe-pointer=all" "-fno-rounding-math" 
"-fno-verbose-asm" "-no-integrated-as" "-aux-target-cpu" "x86-64" 
"-fcuda-is-device" "-mllvm" "-enable-memcpyopt-without-libcalls" 
"-mlink-builtin-bitcode" 
"/usr/local/home/tra/local/cuda-11.5.0/nvvm/libdevice/libdevice.10.bc" 
"-target-feature" "+ptx75" "-target-sdk-version=11.5" "-target-cpu" "sm_35" 
"-mllvm" "-treat-scalable-fixed-error-as-warning" "-debugger-tuning=gdb" 
"-fno-dwarf-directory-asm" "-resource-dir" 
"/usr/local/home/tra/work/llvm/build/release+assert+zapcc/lib/clang/15.0.0" 
"-internal-isystem" 
"/usr/local/home/tra/work/llvm/build/release+assert+zapcc/lib/clang/15.0.0/include/cuda_wrappers"
 "-include" "__clang_cuda_runtime_wrapper.h" "-internal-isystem" 
"/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11" 
"-internal-isystem" 
"/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/x86_64-linux-gnu/c++/11" 
"-internal-isystem" 
"/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/backward" 
"-internal-isystem" 
"/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11" 
"-internal-isystem" 
"/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/x86_64-linux-gnu/c++/11" 
"-internal-isystem" 
"/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/backward" 
"-internal-isystem" 
"/usr/local/home/tra/work/llvm/build/release+assert+zapcc/lib/clang/15.0.0/include"
 "-internal-isystem" "/usr/local/include" "-internal-isystem" 
"/usr/lib/gcc/x86_64-linux-gnu/11/../../../../x86_64-linux-gnu/include" 
"-internal-externc-isystem" "/usr/include/x86_64-linux-gnu" 
"-internal-externc-isystem" "/include" "-internal-externc-isystem" 
"/usr/include" "-internal-isystem" 
"/usr/local/home/tra/local/cuda-11.5.0/include" "-internal-isystem" 
"/usr/local/home/tra/work/llvm/build/release+assert+zapcc/lib/clang/15.0.0/include"
 "-internal-isystem" "/usr/local/include" "-internal-isystem" 
"/usr/lib/gcc/x86_64-linux-gnu/11/../../../../x86_64-linux-gnu/include" 
"-internal-externc-isystem" "/usr/include/x86_64-linux-gnu" 
"-internal-externc-isystem" "/include" "-internal-externc-isystem" 
"/usr/include" "-fdeprecated-macro" "-fno-autolink" 
"-fdebug-compilation-dir=/usr/local/home/tra/work/llvm/build/release+assert+zapcc"
 "-ferror-limit" "19" "-fgnuc-version=4.2.1" "-fcxx-exceptions" "-fexceptions" 
"-fcolor-diagnostics" "-cuid=fce3a17633fb941f" "-D__GCC_HAVE_DWARF2_CFI_ASM=1" 
"-o" "/tmp/a-8486d3/a-sm_35.s" "-x" "cuda" "a.cu"
   "/usr/local/home/tra/local/cuda-11.5.0/bin/ptxas" "-m64" "-O0" "--gpu-name" 
"sm_35" "--output-file" "/tmp/a-7c357d/a-sm_35.o" "/tmp/a-8486d3/a-sm_35.s"
   "/usr/local/home/tra/local/cuda-11.5.0/bin/fatbinary" "-64" "--create" 
"/tmp/a-c46038.fatbin" "--image=profile=sm_35,file=/tmp/a-7c357d/a-sm_35.o" 
"--image=profile=compute_35,file=/tmp/a-8486d3/a-sm_35.s"
   "/usr/local/home/tra/work/llvm/build/release+assert+zapcc/bin/clang-15" 
"-cc1" "-triple" "x86_64-unknown-linux-gnu" "-target-sdk-version=11.5" 
"-aux-triple" "nvptx64-nvidia-cuda" "-emit-obj" "-mrelax-all" 
"--mrelax-relocations" "-disable-free" "-clear-ast-before-backend" 
"-main-file-name" "a.cu" "-mrelocation-model" "static" "-mframe-pointer=all" 
"-fmath-errno" "-ffp-contract=on" "-fno-rounding-math" "-mconstructor-aliases" 
"-funwind-tables=2" "-target-cpu" "x86-64" "-tune-cpu" "generic" "-mllvm" 
"-treat-scalable-fixed-error-as-warning" "-debugger-tuning=gdb" 
"-fcoverage-compilation-dir=/usr/local/home/tra/work/llvm/build/release+assert+zapcc"
 "-resource-dir" 
"/usr/local/home/tra/work/llvm/build/release+assert+zapcc/lib/clang/15.0.0" 
"-internal-isystem" 
"/usr/local/home/tra/work/llvm/build/release+assert+zapcc/lib/clang/15.0.0/include/cuda_wrappers"
 "-include" "__clang_cuda_runtime_wrapper.h" "-internal-isystem" 
"/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11" 
"-internal-isystem" 
"/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/x86_64-linux-gnu/c++/11" 
"-internal-isystem" 
"/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/backward" 
"-internal-isystem" 
"/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11" 
"-internal-isystem" 
"/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/x86_64-linux-gnu/c++/11" 
"-internal-isystem" 
"/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/backward" 
"-internal-isystem" 
"/usr/local/home/tra/work/llvm/build/release+assert+zapcc/lib/clang/15.0.0/include"
 "-internal-isystem" "/usr/local/include" "-internal-isystem" 
"/usr/lib/gcc/x86_64-linux-gnu/11/../../../../x86_64-linux-gnu/include" 
"-internal-externc-isystem" "/usr/include/x86_64-linux-gnu" 
"-internal-externc-isystem" "/include" "-internal-externc-isystem" 
"/usr/include" "-internal-isystem" 
"/usr/local/home/tra/work/llvm/build/release+assert+zapcc/lib/clang/15.0.0/include"
 "-internal-isystem" "/usr/local/include" "-internal-isystem" 
"/usr/lib/gcc/x86_64-linux-gnu/11/../../../../x86_64-linux-gnu/include" 
"-internal-externc-isystem" "/usr/include/x86_64-linux-gnu" 
"-internal-externc-isystem" "/include" "-internal-externc-isystem" 
"/usr/include" "-internal-isystem" 
"/usr/local/home/tra/local/cuda-11.5.0/include" "-fdeprecated-macro" 
"-fdebug-compilation-dir=/usr/local/home/tra/work/llvm/build/release+assert+zapcc"
 "-ferror-limit" "19" "-fgnuc-version=4.2.1" "-fcxx-exceptions" "-fexceptions" 
"-fcolor-diagnostics" "-fcuda-include-gpubinary" "/tmp/a-c46038.fatbin" 
"-cuid=fce3a17633fb941f" "-faddrsig" "-D__GCC_HAVE_DWARF2_CFI_ASM=1" "-o" "a.o" 
"-x" "cuda" "a.cu"
   "/usr/local/home/tra/work/llvm/build/release+assert+zapcc/bin/clang-15" 
"-cc1" "-triple" "x86_64-unknown-linux-gnu" "-emit-obj" "-mrelax-all" 
"--mrelax-relocations" "-disable-free" "-clear-ast-before-backend" 
"-main-file-name" "b.cc" "-mrelocation-model" "static" "-mframe-pointer=all" 
"-fmath-errno" "-ffp-contract=on" "-fno-rounding-math" "-mconstructor-aliases" 
"-funwind-tables=2" "-target-cpu" "x86-64" "-tune-cpu" "generic" "-mllvm" 
"-treat-scalable-fixed-error-as-warning" "-debugger-tuning=gdb" 
"-fcoverage-compilation-dir=/usr/local/home/tra/work/llvm/build/release+assert+zapcc"
 "-resource-dir" 
"/usr/local/home/tra/work/llvm/build/release+assert+zapcc/lib/clang/15.0.0" 
"-internal-isystem" 
"/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11" 
"-internal-isystem" 
"/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/x86_64-linux-gnu/c++/11" 
"-internal-isystem" 
"/usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/backward" 
"-internal-isystem" 
"/usr/local/home/tra/work/llvm/build/release+assert+zapcc/lib/clang/15.0.0/include"
 "-internal-isystem" "/usr/local/include" "-internal-isystem" 
"/usr/lib/gcc/x86_64-linux-gnu/11/../../../../x86_64-linux-gnu/include" 
"-internal-externc-isystem" "/usr/include/x86_64-linux-gnu" 
"-internal-externc-isystem" "/include" "-internal-externc-isystem" 
"/usr/include" "-fdeprecated-macro" 
"-fdebug-compilation-dir=/usr/local/home/tra/work/llvm/build/release+assert+zapcc"
 "-ferror-limit" "19" "-fgnuc-version=4.2.1" "-fcxx-exceptions" "-fexceptions" 
"-fcolor-diagnostics" "-faddrsig" "-D__GCC_HAVE_DWARF2_CFI_ASM=1" "-o" "b.o" 
"-x" "c++" "b.cc"


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

https://reviews.llvm.org/D120132

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

Reply via email to