


Was ist eine Zwei-Pass-Kompilierung und wie verbessert sie die Leistung?
Two-Pass ist ein Begriff, der im Zusammenhang mit der Compileroptimierung verwendet wird. Es bezieht sich auf eine Technik, bei der der Compiler den Quellcode zweimal durchläuft, um seine Leistung zu optimieren. Der erste Durchgang wird als „Frontend“ und der zweite Durchgang als „Backend“ bezeichnet.
Der Frontend-Durchgang ist für das Parsen des Quellcodes, die Überprüfung seiner Syntax und Semantik und die Generierung einer Zwischendarstellung (IR) des Codes verantwortlich. Diese IR wird dann in den Backend-Durchlauf eingespeist, der erweiterte Optimierungen am Code durchführt, wie z. B. Schleifenabrollen, Funktions-Inlining und Eliminierung von totem Code. Der Zwei-Durchgangs-Ansatz ermöglicht es dem Compiler, aggressivere Optimierungen durchzuführen, die möglicherweise nicht möglich wären mit einem Single-Pass-Ansatz. Dies liegt daran, dass der Backend-Durchlauf Zugriff auf die gesamte IR des Programms hat, was ihm ermöglicht, fundiertere Entscheidungen über die Optimierung des Codes zu treffen Videospiel-Engines, bei denen die Leistung entscheidend ist. Sie können jedoch auch in anderen Arten von Anwendungen verwendet werden, beispielsweise in Webbrowsern und mobilen Apps, bei denen die Optimierung wichtig, aber nicht so kritisch ist.



