def translate(func, engine, llvm_module): verify_lowlevel(func) ### Create lfunc ### lfunc = llvm_module.add_function(llvm_type(func.type), func.name) blockmap = allocate_blocks(lfunc, func) ### Create visitor ### translator = Translator(func, lfunc, llvm_type, llvm_module) visitor = opgrouper(translator) ### Codegen ### argloader = LLVMArgLoader(None, engine, llvm_module, lfunc, blockmap) valuemap = vvisit(visitor, func, argloader) update_phis(translator.phis, valuemap, argloader) return lfunc
def initialize(func, env): verify_lowlevel(func) llvm_module = env["codegen.llvm.module"] return llvm_module.add_function(llvm_type(func.type), mangle(func.name))
def initialize(func, env): verify_lowlevel(func) llvm_module = env["codegen.llvm.module"] return llvm_module.add_function(llvm_type(func.type), func.name)