[llvm-branch-commits] [clang] [flang] [lld] [llvm] [Flang] LLVM_ENABLE_RUNTIMES=flang-rt (PR #110217)
via llvm-branch-commits
llvm-branch-commits at lists.llvm.org
Tue Nov 26 05:59:53 PST 2024
jeanPerier wrote:
> Exceptions are unconditionally disabled in `cmake/modules/AddFlangRT.cmake`: https://github.com/llvm/llvm-project/pull/110217/files#diff-be23c742c88da2fe1ce8d045ad3e39bed2c26ee02ffadcb4c04db40a4857cb55R70
Ah, this only changes for the CUDA build then (using `-DFLANG_RT_EXPERIMENTAL_OFFLOAD_SUPPORT=CUDA` and `-DFLANG_RT_CUDA_RUNTIME_PTX_WITHOUT_GLOBAL_VARS=ON`).
With the new build, I am not seeing those flags passed to NVCC when compiling runtime with CUDA (I cannot see them using make VERBOSE=1). With LLVM mechanism from [AddLLVM, these flags are added based on the source extension, not the cmake language](https://github.com/llvm/llvm-project/blob/bf483ddb42065405e345393e022dc72357ec5a3a/llvm/cmake/modules/AddLLVM.cmake#L77-L96).
I think it is because COMPILE_LANGUAGE:CXX does not work for sources where the language has been set to CUDA. Since CUDA may be C or C++ sources, it would also be wrong to add them to COMPILE_LANGUAGE:CUDA.
I do not think cmake has a way to specify flags to be passed to host compilers ([from this cmake issue](https://gitlab.kitware.com/cmake/cmake/-/issues/25911)).
Maybe you could define those flags in some functions that could be used both here to set COMPILE_LANGUAGE:CXX flags and in `AddFlangRTOffload` to add these flags to the `CUDA_COMPILE_OPTIONS`.
https://github.com/llvm/llvm-project/pull/110217
More information about the llvm-branch-commits
mailing list