Autor Thema: Compileroptimierung  (Gelesen 3304 mal)

SSJ7Gohan

  • Beiträge: 398
    • Profil anzeigen
Gespeichert
« am: 21. November 2005, 14:45 »
Ich schreibe im Moment einen Java-JIT-Compiler. Er funktioniert auch soweit ganz gut, erzeugt aber nur relativ zu dem was möglich wäre langsamen Code.

Problem an der ganzen Sache:
Java ist stackbasiert. Das heißt, z.B. die IADD (integer add) instruction pop zwei Parameter vom Stack, addiert sie und pushed das Ergebniss auf den Stack.

Ich wollte beim Compiliervorgang jetzt den Bytecode von Java in ein Code für eine virtuelle Maschine mit unendlich Registern umwandeln. Je nach Optimierungseinstellungen kann dieser Code dann weiter optimiert werden. (Inlining usw.) Dieser Code sollte dann zu x86 Code kompiliert werden.

Hat jemand noch andere Vorschläge für die Optimierung des Compilers?

Legend

  • Beiträge: 635
    • Profil anzeigen
    • http://os.joachimnock.de
Gespeichert
« Antwort #1 am: 21. November 2005, 17:41 »
Nun ja, der Herr Belady hat ja scheinbar den optimalen Ansatz zur Register Allokation mal entwickelt. Soll jedoch ein O(n^2) Algorithmus sein. Es soll auch einen O(n) Algorithmus geben, welcher natürlich schneller abzuarbeiten sein, jedoch soll das Ergebnis ~10% langsamer sein. So als Tipps zum nachlesen.
*post*

 

Einloggen