che sto leggendo: http://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.htmlg ++ flag di ottimizzazione: -fuse-linker-plugin vs -fwhole programma
Essa suggerisce primo: In combinazione con -flto di utilizzare questa opzione (-fwhole-programma) non dovrebbe essere usato. Invece basarsi su un plugin linker dovrebbe fornire informazioni più sicure e più precise.
E poi, suggerisce: Se il programma non richiede alcun simbolo da esportare, è possibile combinare -flto e -fwhole programma per consentire gli ottimizzatori interprocedurali di utilizzare ipotesi più aggressivi che può portare a migliori opportunità di ottimizzazione. L'utilizzo di -fwhole-program non è necessario quando il plug-in del linker è attivo (vedere -fuse-linker-plugin).
Vuol dire che in teoria, utilizzando -fuse-linker-plugin con -flto ottiene sempre un eseguibile meglio ottimizzato che usare -fwhole programma con -flto?
ho cercato di usare ld di collegamento con -fuse-linker-plugin e -fwhole programma a parte, e le dimensioni gli eseguibili almeno sono diversi.
Grazie in anticipo.
P.S. Sto usando gcc 4.6.2 e ld 2.21.53.0.1 su CentOS 6.
fwiw, seguendo la tua citazione - "L'uso di -fwhole-program non è necessario quando il plugin linker è attivo (vedi -fuse-linker-plugin)." - vedremo più avanti nella documentazione - ** "Questa opzione [' -fuse-linker-plugin'] è abilitata di default quando il supporto LTO in GCC è abilitato e GCC è stato configurato per l'uso con un linker che supporta i plugin (GNU ld 2.21 o più recente o oro). "** - quindi suppongo che copra le installazioni moderne più ragionevoli di gcc. nel senso che hanno un'opzione predefinita che rende '-fwhole-program' non necessario. ma questa è solo la mia interpretazione di tutto questo! –