C++ 如何在LLVM中添加X86后端过程,而不必重建各种共享库,包括clang?
如何在LLVM中添加X86后端过程,而不必重建各种共享库,包括clang 在研究了一段时间的LLVM“中间端”(C++ 如何在LLVM中添加X86后端过程,而不必重建各种共享库,包括clang?,c++,llvm,llvm-clang,llvm-c++-api,C++,Llvm,Llvm Clang,Llvm C++ Api,如何在LLVM中添加X86后端过程,而不必重建各种共享库,包括clang 在研究了一段时间的LLVM“中间端”(IR/opt)之后,我决定进入后端 在这里,我在../lib/Target/X86/中创建了一个非常简单的MachineFunctionPass,它可以很好地编译 现在,据我所知,我不能使用llc加载LLVM后端通道,就像optw.r.t.IR通道一样。相反,我必须将新的pass构建到LLVM基础结构中,因此我发出命令cmake--从我的llvm/build目录生成 这会导致重新构建各
IR
/opt
)之后,我决定进入后端
在这里,我在../lib/Target/X86/
中创建了一个非常简单的MachineFunctionPass
,它可以很好地编译
现在,据我所知,我不能使用llc
加载LLVM后端通道,就像opt
w.r.t.IR通道一样。相反,我必须将新的pass构建到LLVM基础结构中,因此我发出命令cmake--从我的llvm/build
目录生成
这会导致重新构建各种共享库,包括各种clang
specific.so文件
问题是这需要30分钟以上,因此这不是构建简单后端通道的正确方法。如何快速配置并将pass构建到LLVM中,以便与llc
一起使用?我不是LLVM方面的专家,但这似乎适合我:
转到LLVM构建目录:cd~/LLVM/build/
转到llc
构建目录:cd-tools/llc/
构建llc
:cmake--Build
现在,不再使用最顶层的cmake
build脚本,该脚本将生成整个项目(更改的文件和依赖项),而只使用llc
工具进行构建
我还没有对此进行彻底测试。与上面的帖子略有不同:
cmake -G Ninja ...
配置llvm
然后
应该可以正常工作。为什么默认目标(几乎)构建每个可执行文件?构建系统不应该检测到只有“llc”的依赖项发生了变化吗?可能是因为依赖项。您没有说您更改了什么文件以及使用了什么构建系统。
ninja llc