Enable PTX backend
This commit is contained in:
parent
ec71908874
commit
f85713a736
7 changed files with 176 additions and 20 deletions
45
llvm/ee.py
45
llvm/ee.py
|
|
@ -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)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue