如何在LLVM中添加X86后端传递而无需重建各种共享库,包括clang?

时间:2017-03-22 09:34:54

标签: c++ llvm llvm-clang llvm-c++-api

  

如何在LLVM中添加X86后端传递而无需重建各种共享库,包括clang?

研究过LLVM"中端"有一段时间(IR / opt),我决定进入后端。

在这里,我在MachineFunctionPass中创建了一个非常简单的.../lib/Target/X86/,它编译得很好。

现在,根据我的理解,我不能只使用llc加载LLVM后端传递,就像opt w.r.t一样。 IR-通行证。相反,我必须在LLVM基础结构中构建新的传递,因此我从cmake . --build目录发出命令llvm/build

这样可以再次构建所有类型的共享库,包括各种clang特定的.so文件。

问题是这需要超过30分钟,因此这不是构建简单后端传递的正确方法。如何快速配置和构建LLVM传递,以便我可以将其与llc一起使用?

2 个答案:

答案 0 :(得分:1)

我不是LLVM的专家,但这似乎对我有用:

  1. 转到LLVM构建目录:cd ~/llvm/build/
  2. 继续llc构建目录:cd tools/llc/
  3. 构建llccmake --build
  4. 现在,不是使用最顶层的cmake构建脚本,而是构建整个项目(更改文件和依赖项),而只构建llc工具。

    我没有彻底测试过。

答案 1 :(得分:0)

与上述帖子略有不同:

cmake -G Ninja ...

配置llvm。

然后

ninja llc

应该可以正常工作。