对于gcc,此answer告诉我们如何验证链接时间优化是否已执行。对于clang,我看不到任何类似于.gnu.lto
的条目。
更具体地说,我有一个二进制文件,我非常确定LTO应该具有显着的优势,但是我什么也没看到。我想知道cmake是否真的做对了。
是否可以通过查看二进制文件或* .o文件来判断clang是否执行了LTO?
答案 0 :(得分:1)
一种选择是尝试在您的.o文件之一上运行<%@
Register assembly="Microsoft.ReportViewer.WebForms,
Version=11.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91"
namespace="Microsoft.Reporting.WebForms" tagprefix="rsweb" %>
。如果实际执行了LTO,则.o文件包含llvm位代码,而llvm-dis
将生成包含人类可读的llvm ir的.ll文件。否则,它将产生错误消息“错误:无效的位码签名”。
答案 1 :(得分:0)
onCreateEvent(title: string, start: any) {
this.events = [...this.events, {title: title, start: start}]
}
实用程序将报告该文件为“ LLVM IR位码”。 LLVM / clang的LTO工具不会产生“胖”对象文件,而只是IR。