Я читаю:
http://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html
Сначала предлагается:
В сочетании с -flto
использование этой опции (-fwhole-program
) не должно использоваться. Вместо этого использование плагина компоновщика должно предоставлять более безопасную и точную информацию.
И тогда, это предлагает:
Если программе не требуется экспортировать какие-либо символы, можно объединить -flto
и -fwhole-program
, чтобы межпроцедурные оптимизаторы могли использовать более агрессивные допущения, которые могут привести к улучшению возможностей оптимизации. Использование -fwhole-program
не требуется, когда подключаемый модуль компоновщика активен (см. -fuse-linker-plugin
).
Означает ли это, что в теории использование -fuse-linker-plugin
с -flto
всегда дает лучший оптимизированный исполняемый файл, чем использование -fwhole-program
с -flto
?
Я пытался использовать ld
для связи с -fuse-linker-plugin
и -fwhole-program
по отдельности, и размеры исполняемых файлов по крайней мере разные.
Постскриптум Я использую gcc 4.6.2 и ld 2.21.53.0.1 на CentOS 6.