我看了一下clang,llc的源代码,并在不久前选择了,看看他们每个人如何为管道增加优化。我的理解是,clang通过调用opt和llc调用的相同方法,添加了opt和llc在其管道中所具有的相同优化。 clang也不单独调用opt和/或llc。
这几乎没有问题,只是存在这样的风险:在某些时候,由于在一个而不是另一个中完成的源更改,opt在其管道中(与clang相比)可能最终会有不同的优化。对于llc和clang的比较也是如此。这种看法是否正确?
此外,我已经看到了显示以下工作流程的图表:clang,opt,llvm-linker,再次选择(对于IPA?)然后是llc。我无法将此工作流程连接到我在clang中看到的内容。甚至我对LTO的理解是链接器(Say gold)会调用优化。我无法理解llvm-linker在这里的作用。
非常感谢任何见解。
答案 0 :(得分:2)
opt,llc和llvm-linker是开发人员工具,可用于运行LLVM库中实现的某些方法。最终用户通常不应该使用它们。
“图表”可能只是某人定制的快速LTO管道。