Ist es möglich, eine Assembler-Sprache in LLVM IR zu übersetzen, zu optimieren und dann in eine andere Architektur umzuwandeln? Wie würdest du mit "Push" und "Pop" auf dem Stack im IR umgehen? Dies ist der einfachste Einwand, den ich gefunden habe, aber ich bin mir sicher, dass es Tonnen wie diese gibt.
Ich plane, einen dynamischen Rekompiler zu erstellen, und es scheint, dass dies eine ausgezeichnete Lösung wäre, da LLVM automatisch meinen Code für die neue Architektur optimieren würde. Ist all das mit LLVM möglich?
Danke
Dies ist eine ähnliche Frage: Kompilieren Sie einen x86-Code mit LLVM zu einem schnelleren x86
Die Antwort ist, dass LLVM das nicht direkt machen kann, aber als Teil eines Tools verwendet werden kann, das dies tut.
Es ist möglich.
Sie müssen jedoch eine Codebasis mit dem LLVM
entwickeln, um den Prozess zu implementieren, der die Assemblersprache in LLVM IR
übersetzt.
Dann kann LLVM
Ihnen helfen, für neue Architektur zu optimieren und zu generieren.
Also müssen Sie den Übersetzer entwickeln, der die Assemblersprache in LLVM IR übersetzen kann. Ich habe schon gesehen, dass jemand das macht, Sie können auf der Website suchen.