2017-06-01 16 views
0

私は最近、LLVMの最適化を模索したが、小さな疑問持たれています、LLVM最適化パスにはどのレベルの作業が必要ですか?

どのように我々は、組み込みのパスが(LLVMは、私たちが書くことを渡しません)(FunctionPassManagerを使用して)関数レベルで適用することができることを知っていますがまたはモジュールレベルなど?

例 - 万華鏡のチュートリアル4に見られるように:

TheFPM->add(createCFGSimplificationPass()); 

この1つは、それが機能レベルではなく、どのような他のパスであるべきであるということはかなり明白ですか?それらはすべて、あらゆるレベル(BasicBlock、Function、Moduleなど)で正しく動作することを意図していますか?

+0

質問タイトルをもっと具体的にすることをお勧めします。 –

+0

提案をありがとう、私は今それを変更しました。 – mal

答えて

1

私はあなたがソースコードを見ることでそれを見つけることができると思います。 たとえば、hereは、FunctionPassを継承するSimplifyCFGPassのコードであり、hereがMemoryDe​​pendencyAnalysisPassのソースコードであり、わかるように、関数レベルのパスです。

+0

私は15以上の評判を得て答えをアップアップします。ありがとうございました。 – mal

関連する問題