如何使用CMake应用llvm传递

时间:2018-07-25 16:16:51

标签: c++ cmake llvm

我们已经实现了LLVM传递并将其编译到库(称为libMyPass.so)中。

我们希望将此通行证应用于使用cmake进行构建的项目(其所有源代码文件)。有没有办法在cmake中做到这一点?

通常,我们使用clang从源文件中发出llvm位代码,opt将此过程应用于位代码,llc将新位代码转换为汇编语言然后再次clang将汇编语言编译为可执行文件。我可以使用cmake封装此过程吗?

1 个答案:

答案 0 :(得分:1)

您可以查看甚至使用this存储库,该存储库将各个步骤实现为cmake命令。

要点是创建各种命令(使用cmake的{​​{1}})基本上可以使用各种LLVM子工具以及各种{{1 }}目标属性,以便创建从源到本机二进制代码(即add_custom_command)的IR生成命令。

例如,使用cmake附加到顶级.o目标,并在其SOURCES属性中为每个源文件创建一个(未优化的)llvmir_attach_bc_target()文件

同一回购中包含各种示例,足以让您入门。