我正在阅读:
http://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html
http://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html
它首先建议:
与 -flto
结合使用时,不应使用此选项(-fwhole-program
)。相反,依赖于链接器插件应提供更安全和更精确的信息。
然后,它建议:
如果程序不需要导出任何符号,则可以组合使用 -flto
和 -fwhole-program
,以允许过程间优化器使用更激进的假设,这可能会带来改进的优化机会。当链接器插件处于活动状态时,不需要使用 -fwhole-program
(请参见 -use-linker-plugin
)。
这是否意味着理论上始终使用 -fuse-linker-plugin
与 -flto
比使用 -fwhole-program
与 -flto
获得更好的优化可执行文件?
我尝试使用ld
分别链接 -fuse-linker-plugin
和 -fwhole-program
,至少可执行文件的大小是不同的。
P.S. 我正在使用CentOS 6上的gcc 4.6.2和ld 2.21.53.0.1。