Drkcore

12012010 Python llvm

macbookにllvm-pyを入れてみた

おもむろにllvmをインストール。

sudo port install llvm

でok。llvm-pyはサイトからダウンロードしてきていれた。

で、サンプルをやってみる。

#!/usr/bin/env python

from llvm import *
from llvm.core import *
from llvm.ee import *

my_module = Module.new('my_module')
ty_int = Type.int()   # by default 32 bits
ty_func = Type.function(ty_int, [ty_int, ty_int])
f_sum = my_module.add_function(ty_func, "sum")
f_sum.args[0].name = "a"
f_sum.args[1].name = "b"
bb = f_sum.append_basic_block("entry")
builder = Builder.new(bb)
tmp = builder.add(f_sum.args[0], f_sum.args[1], "tmp")
builder.ret(tmp)

mp = ModuleProvider.new(my_module)

ee = ExecutionEngine.new(mp)

arg1 = GenericValue.int(ty_int, 100)
arg2 = GenericValue.int(ty_int, 42)

print my_module
retval = ee.run_function(f_sum, [arg1, arg2])

print "returned", retval.as_int()

実行結果

; ModuleID = 'my_module'

define i32 @sum(i32 %a, i32 %b) {
entry:
    %tmp = add i32 %a, %b       ; <i32> [#uses=1]
    ret i32 %tmp
}

returned 142

About

  • もう5年目(wishlistありマス♡)
  • 最近はPythonとDeepLearning
  • 日本酒自粛中
  • ドラムンベースからミニマルまで
  • ポケモンGOゆるめ

Tag

Python Deep Learning javascript chemoinformatics Emacs sake and more...

Ad

© kzfm 2003-2021