Compiler

Welche Optimierung wird durch Link-Time Optimization (LTO) am ehesten möglich?

  1. AAuch Funktionen in verschiedenen Dateien können z. B. inline eingesetzt werden
  2. BNur Schleifen innerhalb einer einzelnen Funktion lassen sich entfalten
  3. CDas Linken entfällt, und Objektdateien sind direkt ausführbar
Antwort und Erläuterung anzeigen

Antwort: A. Auch Funktionen in verschiedenen Dateien können z. B. inline eingesetzt werden

Bei der normalen Kompilierung wird jede Quelldatei einzeln in Maschinencode übersetzt; der Inhalt von Funktionen in anderen Dateien ist daher nicht sichtbar, und dateiübergreifendes Inlining oder Konstantenpropagierung ist nicht möglich. Bei LTO werden die einzelnen Dateien in der Zwischendarstellung belassen und das gesamte Programm wird beim Linken gemeinsam optimiert. Dadurch werden dateiübergreifendes Inlining und die Entfernung von nirgends aufgerufenen Funktionen möglich. Das Entfalten von Schleifen innerhalb einer Funktion ist auch bei der normalen Kompilierung möglich.

Dieses Thema üben Zur Themenseite

Weitere Fragen zu Compiler

  1. In C ist der Überlauf von vorzeichenbehafteten Ganzzahlen undefiniertes Verhalten. Welcher Code kann ein optimierender Compiler unter dieser Voraussetzung für die obige Funktion erzeugen?
  2. Welcher Programmfehler lässt sich bereits zur Kompilierzeit finden?
  3. Was ist der Hauptvorteil der Typprüfung durch den Compiler bei einer Sprache mit statischen Typen?
  4. Was wird häufig verwendet, um die Regeln zur Erkennung von Token in der lexikalischen Analyse auszudrücken?
  5. Welche Grammatikart dient zur Beschreibung der Grammatik vieler Programmiersprachen und bildet die Grundlage der Syntaxanalyse?

Vergleiche zu diesem Thema