c++ - 如何将 OpenCL 内核文件(.cl)编译为 llvm IR 文件

标签 c++ clang opencl llvm llvm-ir

如何使用 clang 从 OpenCL 内核文件中获取 LLVM-IR 文件 (.ll)?

this 中的解决方案链接似乎适用于某些文件,但对于包含 OpenCL vector 类型(如 uchar4)的代码,似乎不起作用(发出类型错误)。

是否有一种简单的方法可以做到这一点,或者是否无法通过 clang 获得 LLVM-IR 形式?

最佳答案

至少在 OS X 上,有一个用于 OpenCL 内核的基于 LLVM 的离线编译器,您可以在以下位置找到它:

/System/Library/Frameworks/OpenCL.framework/Libraries/openclc

(它支持 --help 命令行参数,向您显示可能的选项。)

我不知道 openclc 有任何已发布的源代码,所以我想这意味着您不能在其他平台上使用它,但据我所知,没有标准化的二进制文件OpenCL 内核的格式,因此您无法使用它实现平台独立性。

关于c++ - 如何将 OpenCL 内核文件(.cl)编译为 llvm IR 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38161816/

相关文章:

c++ - 如何防止从系统目录中包含文件?

c++ - 模板函数特化说明

c++ - 为什么我从 gdbserver 得到 "not in executable format: Success",但在 gdb 中一切正常?

ubuntu - 在 Ubuntu 10.04 上安装 OpenCL

c - 英特尔核芯显卡上 OpenCL 代码加速与 C 主机代码的时间测量

opencl - CL_INVALID_WORK_GROUP_SIZE错误

c++ - 比较时返回节点信息

c++ - 数组运算符重载

c++ - c++什么时候实例化方法?

macos - 在 OSX 上安装 Go 时出现 Ld 错误