https://idea.popcount.org/2013-07-24-ir-is-better-than-assembly/IR LLVM Form vs Montage
Hallo,
Ich greife eine Idee von IR
aber ein Problem ist nicht klar.
Warum ist die IR
besser als eine Baugruppe? Ich habe gelesen, was der Autor darüber gesagt hat, und ich sehe, dass es im Allgemeinen im Sinne der Abstraktion höher ist. Es erlaubt eine Typprüfung. Aber ich möchte über etwas anderes fragen:
Insbesondere LLVM IR
ist eine Art Zwischenform. Aber, warum wird die Optimierung auf diesem Formular durchgeführt? Ist es nicht möglich, den Montageoutput zu optimieren? Tatsächlich ist es möglich? Warum ist der LLVM IR so großartig, ihn in diesem Kontext zu verwenden? Ich vermute, dass die Analyse der IR
Form einfach einfacher und "mehr möglich" ist.
Sicher, Sie könnten Assembly optimieren (Compiler tun.) LLVM fragt, warum schreiben Optimierer für alle Plattformen, wenn Sie einen Optimierer für die Zwischendarstellung schreiben und dann auf Ihre Plattform übersetzen können (Montageanleitung?) – Chris
@ChrisStathis: die meisten Compiler * nicht * Assembly optimieren, sie optimieren ihre eigene interne Darstellung, in der Regel eine SSA-Darstellung des Verhaltens der Quelle. Die Eingabe von asm als Eingabe führt zu dem schwierigen Problem, herauszufinden, welche Werte in den Registern oder im Speicher als Eingaben für entfernte Teile des Programms übrig sind und welche nur tote Provisorien sind. Ein asm-Optimierer kann nicht davon ausgehen, dass sich jede Funktion auf die Standard-ABI-/Aufrufkonvention zum Weiterleiten von Daten zwischen Codeblöcken beschränkt. –