[llvm-dev] Issue with -fembed-bitcode in OpenMP target offload with CUDA (original) (raw)
Nader Al Awar via llvm-dev llvm-dev at lists.llvm.org
Tue Mar 30 13:56:51 PDT 2021
- Previous message: [llvm-dev] [RFC] Abstracting over SSA form IRs to implement generic analyses
- Next message: [llvm-dev] C++ compiler error I do not understand
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
I'm having some trouble using -fembed-bitcode with OpenMP offloading to an Nvidia GPU. I'm on LLVM 13.0, commit ca721042f1c9876eb350da22d1fda44626d2783b. Given this program:
#include
int main(){ #pragma omp target { if (omp_is_initial_device()) { printf("Hello World from Host.\n"); } else { printf("Hello World from Accelerator(s).\n"); } } }
Running "clang++ -fopenmp -fopenmp-targets=nvptx64 -fembed-bitcode main.cpp" results in fatal error: error in backend: Cannot select: intrinsic %llvm.nvvm.bar.warp.sync. It does run normally without the -fembed-bitcode flag though.
If I grep for this intrinsic in the install folder I can find it in IR/IntrinsicImpl.inc, but for some reason it's not getting picked up by clang. It could be that I haven't built llvm and clang properly. What I'm doing now is that I'm building clang once, and then I build it again with OpenMP enabled using clang as the compiler. Is that the proper way to build the target offloading plugin?
Thanks, Nader Al Awar
- Previous message: [llvm-dev] [RFC] Abstracting over SSA form IRs to implement generic analyses
- Next message: [llvm-dev] C++ compiler error I do not understand
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]