Compiler

Was wird bei der Entfernung von totem Code (Dead Code Elimination) entfernt?

  1. ADer am häufigsten ausgeführte, wichtigste Codeteil des Programms
  2. BTeile, die nie ausgeführt werden, und Berechnungen, deren Ergebnis nirgends verwendet wird
  3. CAusgabebefehle zur Anzeige von Ergebnissen auf dem Bildschirm
Antwort und Erläuterung anzeigen

Antwort: B. Teile, die nie ausgeführt werden, und Berechnungen, deren Ergebnis nirgends verwendet wird

Die Entfernung von totem Code ist eine Optimierung, die den Inhalt von Verzweigungen, deren Bedingung immer falsch ist und die nie ausgeführt werden, sowie Zuweisungen, deren berechnetes Ergebnis nirgends verwendet wird, entfernt. Nach Konstantenpropagierung und Constant Folding entstehen viele nicht mehr verwendete Zuweisungen, weshalb die Verfahren kombiniert werden. Häufig ausgeführte Teile sind wichtige Teile, die beschleunigt werden sollen, und dürfen nicht entfernt werden. Befehle mit von außen sichtbarer Wirkung, wie die Bildschirmausgabe, sind Teil des Programmergebnisses und werden nicht entfernt.

Dieses Thema üben Zur Themenseite

Weitere Fragen zu Compiler

  1. Welche Kombination aus Vor- und Nachteil des Inlinings von Funktionen ist richtig?
  2. Welche Hauptwirkung von Loop Unrolling (Schleifenentfaltung) ist richtig?
  3. Welche Berechnung in der obigen Schleife ist Ziel der Verschiebung von schleifeninvarianten Ausdrücken (Loop-Invariant Code Motion, aus der Schleife heraus)? (x und y werden in der Schleife nicht verändert.)
  4. Welche Transformation ist richtig, wenn in der obigen Schleife auf die Indexberechnung i * 4 Strength Reduction angewendet wird?
  5. Was ist der Hauptgrund, warum sich die obige Schleife mit SIMD-Befehlen schwer vektorisieren lässt?

Vergleiche zu diesem Thema