Erklärung der gcc-optimierung

8

Aus Hacker Neugier, ich frage mich, wie gcc gelingt, die Funktion darunter intelligent zu optimieren?

%Vor%

$objdump -D c.o unten ist für den Arm, aber x86 ist in der Logik nicht anders.

%Vor%

Ich frage mich meistens, ob dies das Ergebnis einer Kette von Optimierungen oder etwas wie eine Template-Übereinstimmung ist? Gibt es Dokumentation zu solchen Optimierungen?

    
auselen 19.02.2013, 09:09
quelle

1 Antwort

10

Der Optimierer führt dies in Phasen / Durchläufen aus ... Wenn Sie -O2 angeben, sind viele Optimierungen aktiviert. Die wichtigsten Optimierungen, die hier zum Tragen kommen, sind

  1. Loop-Abrollung
  2. konstante Propagierung
  3. konstante Faltung
  4. Beseitigung von toten Codes

Ссылка

also dieser Code

%Vor%

Nach dem Schleifenausrollen wird

%Vor%

nach konstanter Propagierung pass

%Vor%

nach der Eliminierung des Dead-Codes

%Vor%

nach konstanter Faltung

%Vor%

und schließlich

%Vor%     
amdn 19.02.2013, 09:34
quelle

Tags und Links