binding for EngineBuilder

This commit is contained in:
Siu Kwan Lam 2013-02-01 11:45:19 -06:00
commit ca0a2b9fdd
6 changed files with 206 additions and 75 deletions

View file

@ -0,0 +1,49 @@
from binding import *
from namespace import llvm
from Module import Module
from JITMemoryManager import JITMemoryManager
from CodeGen import CodeGenOpt, Reloc, CodeModel
from StringRef import StringRef
from ExecutionEngine import ExecutionEngine
from TargetMachine import TargetMachine
EngineBuilder = llvm.Class()
@llvm.Class() # a fake class (actually a namespace)
class EngineKind:
Kind = Enum('JIT', 'Interpreter')
@EngineBuilder
class EngineBuilder:
new = Constructor(ownedptr(Module))
delete = Destructor()
def _setter(*args):
return Method(ref(EngineBuilder), *args)
setEngineKind = _setter(EngineKind.Kind)
setJITMemoryManager = _setter(ptr(JITMemoryManager))
setErrorStr = CustomMethod('EngineBuilder_setErrorStr',
PyObjectPtr, PyObjectPtr)
setOptLevel = _setter(CodeGenOpt.Level)
#setTargetOptions =
setRelocationModel = _setter(Reloc.Model)
setCodeModel = _setter(CodeModel.Model)
setAllocateGVsWithCode = _setter(cast(bool, Bool))
setMArch = _setter(cast(str, StringRef))
setMCPU = _setter(cast(str, StringRef))
setUseMCJIT = _setter(cast(bool, Bool))
_setMAttrs = CustomMethod('EngineBuilder_setMAttrs',
PyObjectPtr, PyObjectPtr)
@CustomPythonMethod
def setMAttrs(self, attrs):
attrlist = list(str(a) for a in attrs)
return self._setMAttrs(attrlist)
create = Method(ptr(ExecutionEngine),
ownedptr(TargetMachine)).require_only(0)
selectTarget = Method(ptr(TargetMachine))

View file

@ -0,0 +1,11 @@
from binding import *
from namespace import llvm
TargetMachine = llvm.Class()
@TargetMachine
class TargetMachine:
_include_ = 'llvm/Target/TargetMachine.h'
delete = Destructor()