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

How to compile OpenCL Kernel file(.cl) to llvm IR file

本文关键字:文件 编译 IR llvm cl OpenCL 内核      更新时间:2023-10-16

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

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

是否有一个简单的方法来做到这一点,或者是不可能获得LLVM-IR形式与clang?

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

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

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

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