https://idea.popcount.org/2013-07-24-ir-is-better-than-assembly/IR LLVMフォームアセンブリ対
こんにちは、
私はIR
のアイデアを把握するが、1つの問題は、明らかではありません。
IR
がアセンブリより優れているのはなぜですか?私は作者がそれについて語ったことを読んだことがあり、それは一般に抽象概念の意味でより高いことがわかります。それは型制御を可能にする。しかし、私は何か他のことについて質問したい:
特に、LLVM IR
は中間形式の一種です。しかし、そのような形で最適化が行われるのはなぜですか?アセンブリ出力を最適化することは不可能ですか?確かに、それは可能ですか?ですから、なぜLLVM IRがそのような状況でそれを使用するのがすばらしいのですか?私は、IR
フォームの解析が単純で「より可能」であると考えています。
確かに、アセンブリを最適化することができます(コンパイラは行います)。LLVMは、中間表現のオプティマイザを書くことができるときに、すべてのプラットフォームに対してオプティマイザを書く理由を質問します。 – Chris
@ChrisStathis:アセンブリを最適化しない*、彼らは内部表現を最適化します。通常、ソースの動作のSSA表現です。 asmを入力として取ることは、レジスタやメモリに残っている値がプログラムの遠隔部分の入力であり、まったく死んでいる一時的なものであることを理解することの難しい問題をもたらします。 asmオプティマイザは、すべての関数がコードブロック間でデータを渡すための標準のABI /呼び出し規約に限定されているとは想定できません。 –