【发布时间】:2023-04-03 20:55:01
【问题描述】:
不久前,我查看了 clang、llc 和 opt 的源代码,以了解它们如何为管道添加优化。我的理解是,clang 通过调用 opt 和 llc 调用的相同方法,在其管道中添加了与 opt 和 llc 相同的优化。 clang 也不会单独调用 opt 和/或 llc。
这几乎没问题,只是存在一种风险,即 opt 在某个时候可能会在其管道中进行不同的优化(与 clang 相比),因为源更改是在一个而不是另一个中完成的。 llc 和 clang 的比较也是如此。这种看法正确吗?
我还看到了显示以下工作流程的图表:clang、opt、llvm-linker、再次选择(对于 IPA?)然后是 llc。我无法将此工作流程与我在 clang 中看到的内容联系起来。甚至我对 LTO 的理解是链接器(Say gold)会调用优化。我无法理解 llvm-linker 在这里的作用。
高度赞赏任何见解。
【问题讨论】:
标签: llvm llvm-clang