2012-09-28 13 views

Antwort

11

Ich bin nicht genug von einem Compiler gee^H^H^H Experten in der Lage sein, viel davon zu machen, aber vielleicht kann jemand darauf aufbauen ...

Die entsprechenden Bits von gcc sein können leicht genug erhalten (wenn Sie nicht versuchen, und schauen Sie sich die ganze Sache) mit:

svn co --depth=immediates svn://gcc.gnu.org/svn/gcc/trunk/gcc gcc 
cd gcc 
svn --set-depth infinity update config c cp 

(zumindest das ist die Teilmenge, die auf C/C relevant schien ++, die ich Sachen gefunden, fügen andere Verzeichnisse, wenn Sie bin interessiert an anderen sprachen gcc unterstützt)

Und dann

ergibt einen Bildschirm Wert (35 Zeilen) Treffer auf einer kleinen Anzahl von Dateien. Ich werde es jemand anderem überlassen, um eine detailliertere Analyse zu veröffentlichen (falls sich jemand wirklich genug darum kümmert).

Ein paar von ihnen fielen mir ins Auge. Ich werde erwähnen, dass (zum Zeitpunkt des Schreibens):

  • Die einzige Erwähnung von flag_expensive_optimizations in cp/ (C++ Unterstützung) in einem Abschnitt des Codes /* Handle ordinary C++ destructors. */ kommentiert und scheint die Einstellung einer LOOKUP_NONVIRTUAL Flagge zu beeinflussen , mit zugehörigem Kommentar /* Optimize for space over speed here. */

  • Es gibt ein paar Treffer innerhalb des prozessorspezifischen config/-Verzeichnisses (sparc, alpha, sh, i386). Der einzige i386 eines gilt für TARGET_AVX, wenn sie nicht für die Größe optimiert und wird /* When not optimize for size, enable vzeroupper optimization for TARGET_AVX with -fexpensive-optimizations and split 32-byte AVX unaligned load/store. */

Einen Blick auf ein paar anderen Hits mich kommentiert redete ich nur zufrieden sein sollte mein Wissen über diese Funktion auf der Ebene des gcc zu verlassen Dokumentation.

Verwandte Themen