Path: blob/main/docs/source/user-guide/examples/parseasm.py
1154 views
from llvmlite import binding as llvm1from llvmlite import ir as lc23llvm.initialize_native_target()4llvm.initialize_native_asmprinter()56mod = lc.Module()7mod.triple = llvm.get_default_triple()8func = lc.Function(mod, lc.FunctionType(lc.VoidType(), [lc.IntType(32)]),9name='foo')10builder = lc.IRBuilder(func.append_basic_block())11builder.ret_void()1213print(mod)1415mod = llvm.parse_assembly(str(mod))1617mod.verify()18print(repr(mod))19print(mod)2021tm = llvm.Target.from_default_triple().create_target_machine()22pto = llvm.create_pipeline_tuning_options()2324with llvm.create_new_module_pass_manager() as pm:25pb = llvm.create_pass_builder(tm, pto)26pm.run(mod, pb)2728print(mod)2930ee = llvm.create_mcjit_compiler(mod, tm)31func = mod.get_function("foo")32print(func, ee.get_function_address("foo"))33ee.close()3435llvm.shutdown()36373839