测试了一些链接时优化的用法 - 可打印的版本 +- WeHack BBS (https://bbs.wehack.space) +-- 版块: 计算机技术 (https://bbs.wehack.space/forum-5.html) +--- 版块: 程序设计讨论区 (https://bbs.wehack.space/forum-14.html) +--- 主题: 测试了一些链接时优化的用法 (/thread-253.html) |
测试了一些链接时优化的用法 - vimacs - 05-06-2021 GCC的链接时优化在支持链接器插件的系统上默认生成thin-LTO目标文件,即不产生机器码,只产生GIMPLE中间表示,目标文件格式为ELF. 最后的链接步骤使用gcc/g++,它们作为driver调用连接器,最终使用的是GCC的collect2程序,可以自动对LTO目标文件做链接时优化,和没有LTO数据的目标文件链接起来。ld.bfd和ld.gold都支持GCC的LTO,但lld不支持。 LLVM Clang的thin-LTO目标文件是字节码文件,和用clang -emit-llvm -c产生的文件类型相同,没有ELF结构。ld.bfd和ld.gold通过LLVM的LLVMgold.so插件调用LLVM的链接时优化,而lld不需要此插件。 使用-ffat-lto-objects产生fat-LTO目标文件可以让不支持同种LTO的链接器使用这种目标文件,最后链接时不使用链接时优化。 |