检查LLVM LTO和ThinLTO优化?

问题描述 投票:1回答:1

通常,在编译器优化之后,我们得到文本LLVM IR,以便我们可以在优化和推理之前和之后比较IR。在LTO中,我们通常将IR bitcode文件输入到链接器(lld)并获取本机对象文件。在LTO通过后,有没有办法获得单一的单片LLVM IR(文本表示)?是否有任何有效的方法来分析目标代码,以找出优化,而不仅仅是看到目标文件的文本部分。

谢谢

如果您需要更多信息,请告诉我!

llvm llvm-ir lld
1个回答
1
投票

LTO优化或多或少与在正常编译期间应用于代码的优化相同。不同之处在于,优化模块来自链接程序的所有模块。

因此,您可以将所有源代码编译为LLVM IR(例如使用-flto),然后使用llvm-link链接目标文件(实际上是bitcode文件),然后在此生成的bitcode上运行opt优化。在LTO阶段应用的通行证列表可以在lib/Transforms/IPO/PassManagerBuilder.cpp, populateLTOPassManager()中看到。还有一个很好的opt选项叫做-print-after,在应用给定的传球后发出文本的IR表示。

© www.soinside.com 2019 - 2024. All rights reserved.