Enable PTX backend

This commit is contained in:
Siu Kwan Lam 2012-08-14 15:05:22 -07:00
commit f85713a736
7 changed files with 176 additions and 20 deletions

View file

@ -231,6 +231,12 @@ class EngineBuilder(object):
raise llvm.LLVMException(ret)
return ExecutionEngine(ret, self._module)
def select_target(self):
'''get the corresponding target machine
'''
ptr = _core.LLVMTargetMachineFromEngineBuilder(self.ptr)
return TargetMachine(ptr)
#===----------------------------------------------------------------------===
# Execution engine
#===----------------------------------------------------------------------===
@ -298,13 +304,13 @@ class ExecutionEngine(object):
# Target machine
#===----------------------------------------------------------------------===
def print_registered_targets():
'''
Note: print directly to stdout
'''
_core.LLVMPrintRegisteredTargetsForVersion()
class TargetMachine(object):
@staticmethod
def from_engine_builder(eb):
'''Construct a TargetMachine from an EngineBuilder
'''
ptr = _core.LLVMTargetMachineFromEngineBuilder(eb.ptr)
return TargetMachine(ptr)
def __init__(self, ptr):
self.ptr = ptr
@ -321,3 +327,30 @@ class TargetMachine(object):
'''returns byte string of the module as assembly code of the target machine
'''
return _core.LLVMTargetMachineEmitFile(self.ptr, module.ptr, False)
@property
def target_data(self):
'''get target data of this machine
'''
ptr = _core.LLVMTargetMachineGetTargetData(self.ptr)
return TargetData(ptr)
@property
def target_name(self):
return _core.LLVMTargetMachineGetTargetName(self.ptr)
@property
def target_short_description(self):
return _core.LLVMTargetMachineGetTargetShortDescription(self.ptr)
@property
def triple(self):
return _core.LLVMTargetMachineGetTriple(self.ptr)
@property
def cpu(self):
return _core.LLVMTargetMachineGetCPU(self.ptr)
@property
def feature_string(self):
return _core.LLVMTargetMachineGetFS(self.ptr)