2011-10-01から1ヶ月間の記事一覧

LLVMの最適化パス

LLVMの最適化パスはlib/Transforms以下にあるようです。 lib/Transforms/InstCombine以下は全てピープホール最適化(覗き穴最適化)に関するパスが集まっていて、 -A + B --> B - A -A + -B --> -(A + B) のような局所的な最適化が行われています。 パッと見…

オリジナル言語のLLVMフロントエンドをKonohaScriptで実装する その4

前回までで作成したASTから、LLVMの中間表現(IR)を作成していきます。 http://llvm.org/docs/tutorial/こちらのページの5章までの内容になります。 具体的にはASTのクラス毎に定義されているcodegen関数を定義していきます。 四則演算、比較などのオペレー…