自分のプログラムにllvmliteの最適化パスを使用しようとしています。私はパス機能としての私のコードのために次の関数を定義していますなぜllvmliteの最適化のレベルを変更するときに違いはありませんか?
def create_pass_manager_builder(opt=3, loop_vectorize=False, slp_vectorize=False):
pmb = llvm.create_pass_manager_builder()
pmb.opt_level = opt
pmb.loop_vectorize = loop_vectorize
pmb.populate = populate
pmb.add_dead_code_elimination_pass = add_dead_code_elimination_pass
pmb.slp_vectorize = slp_vectorize
pmb.inlining_threshold = _inlining_threshold(opt)
return pmb
と私は次の使用してそれを実行しよう:
module_ref = llvm1.parse_assembly(str(module))
pmb = llvm.create_pass_manager_builder()
pmb.opt_level = 3
pm = llvm.create_module_pass_manager()
pmb.populate(pm)
pm.run(module_ref)
これを持って、私は私のコードのいくつかの最適化を持っています。ただし、最適化レベルを3から2または0に変更すると、最適化の違いはありません。最適化のレベルを変更してその違いを確認するにはどうすればよいですか。