Compiler construction 如何将CUDA编译为llvm IR?

Compiler construction 如何将CUDA编译为llvm IR?,compiler-construction,cuda,llvm,clang,Compiler Construction,Cuda,Llvm,Clang,我花了三天时间试图将CUDA内核编译成llvm IR,但我做不到。我更改了langoptions.cpp,并添加了CUDA=1,但仍会发出提示cuda语法的错误消息(如_synchthreads()调用)。 我已经做了以下工作: 下载llvm(包括clang)修改的langoptions.cpp(CUDA=1; 在构造函数中),并安装它 已安装CUDA toolkit 4.1和CUDA SDK 使用clang编译了一个CUDA示例,使用: clang -I${CUDA_HOME}/include

我花了三天时间试图将CUDA内核编译成llvm IR,但我做不到。我更改了langoptions.cpp,并添加了
CUDA=1,但仍会发出提示cuda语法的错误消息(如_synchthreads()调用)。
我已经做了以下工作:

  • 下载llvm(包括clang)修改的langoptions.cpp(CUDA=1; 在构造函数中),并安装它
  • 已安装CUDA toolkit 4.1和CUDA SDK
  • 使用clang编译了一个CUDA示例,使用:

    clang -I${CUDA_HOME}/include -I${CUDA_SDK_INC}
    ~/workspace/cuda_example/mis_kernel.cu -S -emit-llvm -o
    ~/workspace/cuda_example/a.ll
    

  • 正如我所说的,它不起作用。

    在公共LLVM中继中的clang–x=CUDA
    是在NVIDIA之外进行的实验性工作;如有疑问,请联系llvm开发人员别名


    NVCC不支持发射LLVM IR。

    你好,harri,trunk LLVM目前有nvptx目标(我猜是Justin Holewinski;发布的目标),所以我想现在可以用clang构建CUDA了?还是在叮当当当的前端还有工作要做?