Pep*_*lac 11 optimization gcc lto
我试图用下一个标志编译汇编我的源代码:
1.2 -flto
. -flto -ffat-lto-objects
3.-flto -fno-fat-lto-objects
第三个提供slim
了文档中编写的优化LTO代码,但我没有看到输出汇编文件在第一个和第二个之间有任何差异,为什么?
OS:linux
编译器:GCC 4.7
小智 14
胖和非胖目标文件之间的区别在于胖目标文件既包含中间语言,也包含正常编译的代码.在链接时,如果在没有-flto的情况下调用编译器,胖对象将作为普通对象文件处理(并丢弃LTO信息),而细长对象将使用LTO优化器,因为没有它就无法处理它们.
如果你们都使用-flto进行编译和链接,那么胖子和超薄对象都应该为你提供相同的二进制文件,只有细长的对象会更小更快编译,因为你将避免冗余的代码生成.