Repository URL to install this package:
|
Version:
0.36.2 ▾
|
from __future__ import print_function, absolute_import
from llvmlite import binding as ll
from llvmlite.llvmpy import core as lc
from numba import utils
from numba.targets.codegen import BaseCPUCodegen, CodeLibrary
from .hlc import DATALAYOUT, TRIPLE, hlc
class HSACodeLibrary(CodeLibrary):
def _optimize_functions(self, ll_module):
pass
def _optimize_final_module(self):
pass
def _finalize_specific(self):
pass
def get_asm_str(self):
"""
Get the human-readable assembly.
"""
m = hlc.Module()
m.load_llvm(str(self._final_module))
out = m.finalize()
return str(out.hsail)
class JITHSACodegen(BaseCPUCodegen):
_library_class = HSACodeLibrary
def _init(self, llvm_module):
assert list(llvm_module.global_variables) == [], "Module isn't empty"
self._data_layout = DATALAYOUT[utils.MACHINE_BITS]
self._target_data = ll.create_target_data(self._data_layout)
def _create_empty_module(self, name):
ir_module = lc.Module(name)
ir_module.triple = TRIPLE
return ir_module
def _module_pass_manager(self):
raise NotImplementedError
def _function_pass_manager(self, llvm_module):
raise NotImplementedError
def _add_module(self, module):
pass