【问题标题】:How to apply llvm passes using CMake如何使用 CMake 应用 llvm 通行证
【发布时间】:2018-07-25 16:16:50
【问题描述】:

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

我们希望将此传递应用于使用cmake 构建它的项目(其所有源代码文件)。有没有办法在 cmake 中这样做?

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

【问题讨论】:

    标签: c++ cmake llvm


    【解决方案1】:

    您可以查看甚至使用this 存储库,它以cmake 命令的形式实现各个步骤。

    它的要点是创建各种命令(使用 cmakeadd_custom_command)基本上完全按照您的要求使用各种 LLVM 子工具和各种 cmake 目标属性,在为了从源代码和本地二进制代码(即.o)创建 IR 生成命令。

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

    它在同一个 repo 中包含各种示例,应该足以让您入门。

    【讨论】:

    • 这是一个仅链接的答案。您应该从您的网站复制更多信息。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-06
    • 1970-01-01
    • 2014-06-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多