Esempio n. 1
0
 def create(self, tm=None):
     if tm is None:
         tm = self.select_target()
     if not isinstance(tm, TargetMachine):
         tm = tm._tm
     if self._use_mcjit:
         return llvm.create_mcjit_compiler(self.module, tm._tm)
     else:
         return llvm.create_jit_compiler_with_tm(self.module, tm._tm)
Esempio n. 2
0
 def create(self, tm=None):
     if tm is None:
         tm = self.select_target()
     if isinstance(tm, TargetMachine):
         tm = tm._tm
     if self._use_mcjit:
         return llvm.create_mcjit_compiler(self.module, tm)
     else:
         return llvm.create_jit_compiler_with_tm(self.module, tm)
Esempio n. 3
0
    def _init(self, llvm_module):
        assert list(llvm_module.global_variables) == [], "Module isn't empty"

        target = ll.Target.from_default_triple()
        tm_options = dict(cpu='', features='', opt=config.OPT)
        self._customize_tm_options(tm_options)
        tm = target.create_target_machine(**tm_options)

        # MCJIT is still defective under Windows
        if sys.platform.startswith('win32'):
            engine = ll.create_jit_compiler_with_tm(llvm_module, tm)
        else:
            engine = ll.create_mcjit_compiler(llvm_module, tm)

        tli = ll.create_target_library_info(llvm_module.triple)

        self._tli = tli
        self._tm = tm
        self._engine = engine
        self._target_data = engine.target_data
        self._data_layout = str(self._target_data)
        self._mpm = self._module_pass_manager()
Esempio n. 4
0
    def _init(self, llvm_module):
        assert list(llvm_module.global_variables) == [], "Module isn't empty"

        target = ll.Target.from_default_triple()
        tm_options = dict(cpu='', features='', opt=config.OPT)
        self._customize_tm_options(tm_options)
        tm = target.create_target_machine(**tm_options)

        # MCJIT is still defective under Windows
        if sys.platform.startswith('win32'):
            engine = ll.create_jit_compiler_with_tm(llvm_module, tm)
        else:
            engine = ll.create_mcjit_compiler(llvm_module, tm)

        tli = ll.create_target_library_info(llvm_module.triple)

        self._tli = tli
        self._tm = tm
        self._engine = engine
        self._target_data = engine.target_data
        self._data_layout = str(self._target_data)
        self._mpm = self._module_pass_manager()
Esempio n. 5
0
 def jit(self, mod, target_machine=None):
     if target_machine is None:
         target_machine = self.target_machine()
     return llvm.create_jit_compiler_with_tm(mod, target_machine)
Esempio n. 6
0
 def jit(self, mod, target_machine=None):
     if target_machine is None:
         target_machine = self.target_machine()
     return llvm.create_jit_compiler_with_tm(mod, target_machine)