不久前,我查看了clang、llc和opt的源代码,以了解它们中的每一个是如何对管道进行优化的。我的理解是,clang通过调用opt和llc调用的相同方法,在其管道中添加了与opt和llc相同的优化。同样,clang不会单独调用opt和/或llc。
这几乎是好的,除了存在这样的风险:在某个时刻,opt可能会在其流水线中以不同的优化结束(与clang相比),这是因为在一个中完成了源代码更改,而不是在另一个中完成了源代码更改。llc和clang的比较也是如此。这种看法正确吗?
我还看到了显示以下工作流程的图表: clang,opt,llvm-linker,opt再一次(对于IPA?)然后是有限责任公司。我无法将此工作流连接到我在clang中看到的内容。甚至我对LTO的理解都是链接器(比如黄金)会调用优化。我不能理解llvm-linker在这里的作用。
任何见解都会受到高度赞赏。
发布于 2016-11-02 00:02:57
llc和llvm-linker是开发人员端工具,可用于运行LLVM库中实现的一些方法。最终用户通常不应该使用它们。
这些“图表”可能只是一些人定制的快速而肮脏的LTO管道。
https://stackoverflow.com/questions/40350990
复制相似问题