g++ - Optimierung-Flags: -fuse-linker-plugin vs -fwhole-program

Ich lese:

http://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html

Es als erstes vorgeschlagen:

In Kombination mit -flto mit dieser option (-fwhole-program) sollten nicht verwendet werden. Statt sich auf ein linker-plugin sollte sicherer und präziser Informationen.

Und dann schlägt es vor:

Wenn das Programm erfordert keine Symbole exportiert werden, ist es möglich, zu kombinieren -flto und -fwhole-program zu ermöglichen, die interprozedurale Optimierung, um mehr aggressive Annahmen, die sich möglicherweise führen zu einer Verbesserung der Möglichkeiten zur Optimierung. Verwendung von -fwhole-program ist nicht notwendig, wenn der linker-plugin aktiv ist (siehe -fuse-linker-plugin).

Heißt es, dass in der Theorie, mit -fuse-linker-plugin mit -flto bekommt immer eine optimierte ausführbare Datei als mit -fwhole-program mit -flto?

Habe ich versucht zu verwenden ld link mit -fuse-linker-plugin und -fwhole-program getrennt, und die ausführbaren Dateien' Größen sind zumindest anders.

P. S. ich bin mit gcc 4.6.2 und ld 2.21.53.0.1 auf CentOS 6.

  • fwiw, nach deinem Zitat - "Option-fwhole-program ist nicht notwendig, wenn der linker-plugin aktiv ist (siehe -fuse-linker-plugin)." - wir später sehen werden, die in der Dokumentation - "die option [-fuse-linker-plugin] ist standardmäßig aktiviert, wenn LTO-Unterstützung des GCC aktiviert ist, und GCC wurde konfiguriert für die Verwendung mit linker Unterstützung von plugins (GNU ld 2.21 oder höher oder gold)." - so würde ich vermuten, dass deckt die meisten vernünftigen modernen Installationen, die von gcc. das heißt, Sie haben eine default-option, die macht -fwhole-program unnötig. aber das ist nur meine interpretation des ganzen!
InformationsquelleAutor Hei | 2013-03-25
Schreibe einen Kommentar