llvm 24 src/CodeGen_ARM.cpp using namespace llvm; llvm 239 src/CodeGen_ARM.cpp Value *CodeGen_ARM::call_pattern(const Pattern &p, llvm::Type *t, const vector<llvm::Value *> &args) { llvm 390 src/CodeGen_ARM.cpp llvm::Type *t_arg = llvm_type_of(matches[0].type()); llvm 391 src/CodeGen_ARM.cpp llvm::Type *t_result = llvm_type_of(op->type); llvm 709 src/CodeGen_ARM.cpp vector<llvm::Type *> arg_types; llvm 720 src/CodeGen_ARM.cpp arg_types = vector<llvm::Type *>(num_vecs + 2, llvm_type_of(intrin_type)); llvm 733 src/CodeGen_ARM.cpp arg_types = vector<llvm::Type *>(num_vecs + 1, llvm_type_of(intrin_type)); llvm 736 src/CodeGen_ARM.cpp llvm::FunctionType *fn_type = FunctionType::get(llvm::Type::getVoidTy(*context), arg_types, false); llvm 737 src/CodeGen_ARM.cpp llvm::Function *fn = dyn_cast_or_null<llvm::Function>(module->getOrInsertFunction(instr.str(), fn_type)); llvm 794 src/CodeGen_ARM.cpp llvm::Function *fn = module->getFunction(builtin.str()); llvm 890 src/CodeGen_ARM.cpp llvm::Type *load_return_type = llvm_type_of(op->type.with_lanes(intrin_lanes*stride->value)); llvm 891 src/CodeGen_ARM.cpp llvm::Type *load_return_pointer_type = load_return_type->getPointerTo(); llvm 926 src/CodeGen_ARM.cpp llvm::Function *fn = module->getFunction(builtin.str()); llvm 63 src/CodeGen_ARM.h llvm::Value *call_pattern(const Pattern &p, Type t, const std::vector<Expr> &args); llvm 64 src/CodeGen_ARM.h llvm::Value *call_pattern(const Pattern &p, llvm::Type *t, const std::vector<llvm::Value *> &args); llvm 26 src/CodeGen_GPU_Host.cpp using namespace llvm; llvm 155 src/CodeGen_GPU_Host.cpp llvm::Instruction *terminator = entry->getTerminator(); llvm 179 src/CodeGen_GPU_Host.cpp llvm::Value *module_state = get_module_state(api_unique_name, false); llvm 324 src/CodeGen_GPU_Host.cpp llvm::Type *target_size_t_type = (target.bits == 32) ? i32_t : i64_t; llvm 327 src/CodeGen_GPU_Host.cpp llvm::PointerType *arg_t = i8_t->getPointerTo(); // void* llvm 331 src/CodeGen_GPU_Host.cpp llvm::Type *gpu_args_arr_type = ArrayType::get(arg_t, num_args+1); llvm 339 src/CodeGen_GPU_Host.cpp llvm::Type *gpu_arg_sizes_arr_type = ArrayType::get(target_size_t_type, llvm 347 src/CodeGen_GPU_Host.cpp llvm::Type *gpu_arg_is_buffer_arr_type = ArrayType::get(i8_t, num_args+1); llvm 472 src/CodeGen_GPU_Host.cpp llvm::Function *dev_run_fn = module->getFunction(run_fn_name); llvm 494 src/CodeGen_GPU_Host.cpp PointerType *void_ptr_type = llvm::Type::getInt8PtrTy(*context); llvm 71 src/CodeGen_GPU_Host.h llvm::Value *get_module_state(const std::string &api_unique_name, llvm 29 src/CodeGen_Hexagon.cpp using namespace llvm; llvm 58 src/CodeGen_Hexagon.cpp std::unique_ptr<llvm::Module> CodeGen_Hexagon::compile(const Module &module) { llvm 571 src/CodeGen_Hexagon.cpp llvm::Function *CodeGen_Hexagon::define_hvx_intrinsic(int id, Type ret_ty, const string &name, llvm 575 src/CodeGen_Hexagon.cpp llvm::Function *intrin = Intrinsic::getDeclaration(module.get(), (llvm::Intrinsic::ID)id); llvm 579 src/CodeGen_Hexagon.cpp llvm::Function *CodeGen_Hexagon::define_hvx_intrinsic(llvm::Function *intrin, Type ret_ty, const string &name, llvm 582 src/CodeGen_Hexagon.cpp llvm::FunctionType *intrin_ty = intrin->getFunctionType(); llvm 585 src/CodeGen_Hexagon.cpp vector<llvm::Type *> llvm_arg_types; llvm 592 src/CodeGen_Hexagon.cpp llvm::FunctionType *wrapper_ty = llvm 593 src/CodeGen_Hexagon.cpp llvm::FunctionType::get(llvm_type_of(ret_ty), llvm_arg_types, false); llvm 594 src/CodeGen_Hexagon.cpp llvm::Function *wrapper = llvm 595 src/CodeGen_Hexagon.cpp llvm::Function::Create(wrapper_ty, llvm::GlobalValue::InternalLinkage, llvm 597 src/CodeGen_Hexagon.cpp llvm::BasicBlock *block = llvm::BasicBlock::Create(module->getContext(), "entry", wrapper); llvm 624 src/CodeGen_Hexagon.cpp llvm::Type *arg_ty = intrin_ty->getParamType(i); llvm 630 src/CodeGen_Hexagon.cpp llvm::Function *fn = nullptr; llvm 664 src/CodeGen_Hexagon.cpp wrapper->addFnAttr(llvm::Attribute::AlwaysInline); llvm 668 src/CodeGen_Hexagon.cpp llvm::verifyFunction(*wrapper); llvm 672 src/CodeGen_Hexagon.cpp Value *CodeGen_Hexagon::create_bitcast(Value *v, llvm::Type *ty) { llvm 683 src/CodeGen_Hexagon.cpp Value *CodeGen_Hexagon::call_intrin_cast(llvm::Type *ret_ty, llvm 684 src/CodeGen_Hexagon.cpp llvm::Function *F, llvm 686 src/CodeGen_Hexagon.cpp llvm::FunctionType *FType = F->getFunctionType(); llvm 695 src/CodeGen_Hexagon.cpp Value *CodeGen_Hexagon::call_intrin_cast(llvm::Type *ret_ty, llvm 698 src/CodeGen_Hexagon.cpp llvm::Function *intrin = Intrinsic::getDeclaration(module.get(), (llvm::Intrinsic::ID)id); llvm 702 src/CodeGen_Hexagon.cpp Value *CodeGen_Hexagon::interleave_vectors(const vector<llvm::Value *> &v) { llvm 704 src/CodeGen_Hexagon.cpp llvm::Type *v_ty = v[0]->getType(); llvm 705 src/CodeGen_Hexagon.cpp llvm::Type *element_ty = v_ty->getVectorElementType(); llvm 715 src/CodeGen_Hexagon.cpp llvm::Type *native_ty = llvm::VectorType::get(element_ty, native_elements); llvm 724 src/CodeGen_Hexagon.cpp llvm::Type *native2_ty = llvm::VectorType::get(element_ty, native_elements*2); llvm 831 src/CodeGen_Hexagon.cpp llvm::Type *a_ty = a->getType(); llvm 832 src/CodeGen_Hexagon.cpp llvm::Type *b_ty = b->getType(); llvm 839 src/CodeGen_Hexagon.cpp llvm::Type *element_ty = a->getType()->getVectorElementType(); llvm 843 src/CodeGen_Hexagon.cpp llvm::Type *native_ty = llvm::VectorType::get(element_ty, native_elements); llvm 844 src/CodeGen_Hexagon.cpp llvm::Type *native2_ty = llvm::VectorType::get(element_ty, native_elements*2); llvm 848 src/CodeGen_Hexagon.cpp llvm::Type *result_ty = VectorType::get(element_ty, result_elements); llvm 870 src/CodeGen_Hexagon.cpp llvm::Function *vcombine = llvm 1001 src/CodeGen_Hexagon.cpp llvm::Type *lut_ty = lut->getType(); llvm 1002 src/CodeGen_Hexagon.cpp llvm::Type *idx_ty = idx->getType(); llvm 1055 src/CodeGen_Hexagon.cpp llvm::Type *native_result_ty = llvm 1056 src/CodeGen_Hexagon.cpp llvm::VectorType::get(lut_ty->getVectorElementType(), native_idx_elements); llvm 1136 src/CodeGen_Hexagon.cpp llvm::Type *i8x_t = VectorType::get(i8_t, indices.size()); llvm 1137 src/CodeGen_Hexagon.cpp llvm::Type *i16x_t = VectorType::get(i16_t, indices.size()); llvm 1182 src/CodeGen_Hexagon.cpp llvm::Type *element_ty = result->getType()->getVectorElementType(); llvm 1238 src/CodeGen_Hexagon.cpp llvm::Function *fn = module->getFunction(name); llvm 1245 src/CodeGen_Hexagon.cpp llvm::Function *fn2 = module->getFunction(name + ".dv"); llvm 1256 src/CodeGen_Hexagon.cpp Value *CodeGen_Hexagon::call_intrin(llvm::Type *result_type, const string &name, llvm 1258 src/CodeGen_Hexagon.cpp llvm::Function *fn = module->getFunction(name); llvm 1265 src/CodeGen_Hexagon.cpp llvm::Function *fn2 = module->getFunction(name + ".dv"); llvm 1522 src/CodeGen_Hexagon.cpp vector<llvm::Value *> args; llvm 1528 src/CodeGen_Hexagon.cpp llvm::Function *prefetch_fn = nullptr; llvm 1542 src/CodeGen_Hexagon.cpp llvm::Type *ptr_type = prefetch_fn->getFunctionType()->params()[0]; llvm 19 src/CodeGen_Hexagon.h std::unique_ptr<llvm::Module> compile(const Module &module); llvm 35 src/CodeGen_Hexagon.h llvm::Function *define_hvx_intrinsic(int intrin, Type ret_ty, llvm 39 src/CodeGen_Hexagon.h llvm::Function *define_hvx_intrinsic(llvm::Function *intrin, Type ret_ty, llvm 75 src/CodeGen_Hexagon.h llvm::Value *call_intrin_cast(llvm::Type *ret_ty, llvm::Function *F, llvm 76 src/CodeGen_Hexagon.h std::vector<llvm::Value *> Ops); llvm 77 src/CodeGen_Hexagon.h llvm::Value *call_intrin_cast(llvm::Type *ret_ty, int id, llvm 78 src/CodeGen_Hexagon.h std::vector<llvm::Value *> Ops); llvm 87 src/CodeGen_Hexagon.h llvm::Value *call_intrin(Type t, const std::string &name, llvm 89 src/CodeGen_Hexagon.h llvm::Value *call_intrin(llvm::Type *t, const std::string &name, llvm 90 src/CodeGen_Hexagon.h std::vector<llvm::Value *>, bool maybe = false); llvm 95 src/CodeGen_Hexagon.h llvm::Value *interleave_vectors(const std::vector<llvm::Value *> &v); llvm 96 src/CodeGen_Hexagon.h llvm::Value *shuffle_vectors(llvm::Value *a, llvm::Value *b, llvm 103 src/CodeGen_Hexagon.h llvm::Value *vlut(llvm::Value *lut, llvm::Value *indices, int min_index = 0, int max_index = 1 << 30); llvm 104 src/CodeGen_Hexagon.h llvm::Value *vlut(llvm::Value *lut, const std::vector<int> &indices); llvm 111 src/CodeGen_Hexagon.h llvm::Value *create_bitcast(llvm::Value *v, llvm::Type *ty); llvm 15 src/CodeGen_Internal.cpp using namespace llvm; llvm 19 src/CodeGen_Internal.cpp vector<llvm::Type*> llvm_types(const Closure& closure, llvm::StructType *buffer_t, LLVMContext &context) { llvm 20 src/CodeGen_Internal.cpp vector<llvm::Type *> res; llvm 34 src/CodeGen_Internal.cpp llvm::StructType *buffer_t, llvm 41 src/CodeGen_Internal.cpp void pack_closure(llvm::StructType *type, llvm 45 src/CodeGen_Internal.cpp llvm::StructType *buffer_t, llvm 50 src/CodeGen_Internal.cpp llvm::Type *t = type->elements()[idx]; llvm 62 src/CodeGen_Internal.cpp llvm::Type *t = type->elements()[idx]; llvm 69 src/CodeGen_Internal.cpp llvm::PointerType *t = buffer_t->getPointerTo(); llvm 85 src/CodeGen_Internal.cpp llvm::StructType *type, llvm 112 src/CodeGen_Internal.cpp llvm::Type *llvm_type_of(LLVMContext *c, Halide::Type t) { llvm 117 src/CodeGen_Internal.cpp return llvm::Type::getHalfTy(*c); llvm 119 src/CodeGen_Internal.cpp return llvm::Type::getFloatTy(*c); llvm 121 src/CodeGen_Internal.cpp return llvm::Type::getDoubleTy(*c); llvm 127 src/CodeGen_Internal.cpp return llvm::Type::getInt8PtrTy(*c); llvm 129 src/CodeGen_Internal.cpp return llvm::Type::getIntNTy(*c, t.bits()); llvm 132 src/CodeGen_Internal.cpp llvm::Type *element_type = llvm_type_of(c, t.element_of()); llvm 357 src/CodeGen_Internal.cpp bool get_md_bool(llvm::Metadata *value, bool &result) { llvm 361 src/CodeGen_Internal.cpp llvm::ConstantAsMetadata *cam = llvm::cast<llvm::ConstantAsMetadata>(value); llvm 365 src/CodeGen_Internal.cpp llvm::ConstantInt *c = llvm::cast<llvm::ConstantInt>(cam->getValue()); llvm 373 src/CodeGen_Internal.cpp bool get_md_string(llvm::Metadata *value, std::string &result) { llvm 378 src/CodeGen_Internal.cpp llvm::MDString *c = llvm::dyn_cast<llvm::MDString>(value); llvm 386 src/CodeGen_Internal.cpp void get_target_options(const llvm::Module &module, llvm::TargetOptions &options, std::string &mcpu, std::string &mattrs) { llvm 392 src/CodeGen_Internal.cpp options = llvm::TargetOptions(); llvm 396 src/CodeGen_Internal.cpp options.AllowFPOpFusion = llvm::FPOpFusion::Fast; llvm 415 src/CodeGen_Internal.cpp use_soft_float_abi ? llvm::FloatABI::Soft : llvm::FloatABI::Hard; llvm 423 src/CodeGen_Internal.cpp void clone_target_options(const llvm::Module &from, llvm::Module &to) { llvm 426 src/CodeGen_Internal.cpp llvm::LLVMContext &context = to.getContext(); llvm 430 src/CodeGen_Internal.cpp to.addModuleFlag(llvm::Module::Warning, "halide_use_soft_float_abi", use_soft_float_abi ? 1 : 0); llvm 435 src/CodeGen_Internal.cpp to.addModuleFlag(llvm::Module::Warning, "halide_mcpu", llvm::MDString::get(context, mcpu)); llvm 440 src/CodeGen_Internal.cpp to.addModuleFlag(llvm::Module::Warning, "halide_mattrs", llvm::MDString::get(context, mattrs)); llvm 444 src/CodeGen_Internal.cpp std::unique_ptr<llvm::TargetMachine> make_target_machine(const llvm::Module &module) { llvm 447 src/CodeGen_Internal.cpp const llvm::Target *target = llvm::TargetRegistry::lookupTarget(module.getTargetTriple(), error_string); llvm 450 src/CodeGen_Internal.cpp llvm::TargetRegistry::printRegisteredTargetsForVersion(); llvm 454 src/CodeGen_Internal.cpp llvm::TargetOptions options; llvm 459 src/CodeGen_Internal.cpp return std::unique_ptr<llvm::TargetMachine>(target->createTargetMachine(module.getTargetTriple(), llvm 462 src/CodeGen_Internal.cpp llvm::Reloc::PIC_, llvm 463 src/CodeGen_Internal.cpp llvm::CodeModel::Default, llvm 464 src/CodeGen_Internal.cpp llvm::CodeGenOpt::Aggressive)); llvm 467 src/CodeGen_Internal.cpp void set_function_attributes_for_target(llvm::Function *fn, Target t) { llvm 24 src/CodeGen_Internal.h llvm::StructType *build_closure_type(const Closure& closure, llvm::StructType *buffer_t, llvm::LLVMContext *context); llvm 30 src/CodeGen_Internal.h void pack_closure(llvm::StructType *type, llvm 31 src/CodeGen_Internal.h llvm::Value *dst, llvm 33 src/CodeGen_Internal.h const Scope<llvm::Value *> &src, llvm 34 src/CodeGen_Internal.h llvm::StructType *buffer_t, llvm 35 src/CodeGen_Internal.h llvm::IRBuilder<> *builder); llvm 42 src/CodeGen_Internal.h Scope<llvm::Value *> &dst, llvm 43 src/CodeGen_Internal.h llvm::StructType *type, llvm 44 src/CodeGen_Internal.h llvm::Value *src, llvm 45 src/CodeGen_Internal.h llvm::IRBuilder<> *builder); llvm 48 src/CodeGen_Internal.h llvm::Type *llvm_type_of(llvm::LLVMContext *context, Halide::Type t); llvm 70 src/CodeGen_Internal.h void get_target_options(const llvm::Module &module, llvm::TargetOptions &options, std::string &mcpu, std::string &mattrs); llvm 73 src/CodeGen_Internal.h void clone_target_options(const llvm::Module &from, llvm::Module &to); llvm 76 src/CodeGen_Internal.h std::unique_ptr<llvm::TargetMachine> make_target_machine(const llvm::Module &module); llvm 79 src/CodeGen_Internal.h void set_function_attributes_for_target(llvm::Function *, Target); llvm 39 src/CodeGen_LLVM.cpp std::unique_ptr<llvm::Module> codegen_llvm(const Module &module, llvm::LLVMContext &context) { llvm 46 src/CodeGen_LLVM.cpp using namespace llvm; llvm 131 src/CodeGen_LLVM.cpp llvm::GlobalValue::LinkageTypes llvm_linkage(LoweredFunc::LinkageType t) { llvm 135 src/CodeGen_LLVM.cpp return llvm::GlobalValue::ExternalLinkage; llvm 140 src/CodeGen_LLVM.cpp return llvm::GlobalValue::ExternalLinkage; llvm 142 src/CodeGen_LLVM.cpp return llvm::GlobalValue::PrivateLinkage; llvm 261 src/CodeGen_LLVM.cpp llvm::LLVMContext &context) { llvm 269 src/CodeGen_LLVM.cpp void CodeGen_LLVM::set_context(llvm::LLVMContext &context) { llvm 274 src/CodeGen_LLVM.cpp llvm::LLVMContext &context) { llvm 373 src/CodeGen_LLVM.cpp llvm::MDBuilder md_builder(*context); llvm 377 src/CodeGen_LLVM.cpp void_t = llvm::Type::getVoidTy(*context); llvm 378 src/CodeGen_LLVM.cpp i1_t = llvm::Type::getInt1Ty(*context); llvm 379 src/CodeGen_LLVM.cpp i8_t = llvm::Type::getInt8Ty(*context); llvm 380 src/CodeGen_LLVM.cpp i16_t = llvm::Type::getInt16Ty(*context); llvm 381 src/CodeGen_LLVM.cpp i32_t = llvm::Type::getInt32Ty(*context); llvm 382 src/CodeGen_LLVM.cpp i64_t = llvm::Type::getInt64Ty(*context); llvm 383 src/CodeGen_LLVM.cpp f16_t = llvm::Type::getHalfTy(*context); llvm 384 src/CodeGen_LLVM.cpp f32_t = llvm::Type::getFloatTy(*context); llvm 385 src/CodeGen_LLVM.cpp f64_t = llvm::Type::getDoubleTy(*context); llvm 483 src/CodeGen_LLVM.cpp std::unique_ptr<llvm::Module> CodeGen_LLVM::compile(const Module &input) { llvm 493 src/CodeGen_LLVM.cpp module->addModuleFlag(llvm::Module::Warning, "halide_use_soft_float_abi", use_soft_float_abi() ? 1 : 0); llvm 494 src/CodeGen_LLVM.cpp module->addModuleFlag(llvm::Module::Warning, "halide_mcpu", MDString::get(*context, mcpu())); llvm 495 src/CodeGen_LLVM.cpp module->addModuleFlag(llvm::Module::Warning, "halide_mattrs", MDString::get(*context, mattrs())); llvm 537 src/CodeGen_LLVM.cpp llvm::Function *wrapper = add_argv_wrapper(names.argv_name); llvm 538 src/CodeGen_LLVM.cpp llvm::Function *metadata_getter = embed_metadata_getter(names.metadata_name, names.simple_name, f.args); llvm 567 src/CodeGen_LLVM.cpp vector<llvm::Type *> arg_types(args.size()); llvm 580 src/CodeGen_LLVM.cpp function = llvm::Function::Create(func_t, llvm_linkage(linkage), extern_name, module.get()); llvm 656 src/CodeGen_LLVM.cpp llvm::raw_os_ostream os(std::cerr); llvm 671 src/CodeGen_LLVM.cpp llvm::Function *annotate_buffer_fn = llvm 693 src/CodeGen_LLVM.cpp std::vector<llvm::Constant*> get_constants(llvm::Type *t, It begin, It end) { llvm 694 src/CodeGen_LLVM.cpp std::vector<llvm::Constant*> ret; llvm 724 src/CodeGen_LLVM.cpp Value *CodeGen_LLVM::register_destructor(llvm::Function *destructor_fn, Value *obj, DestructorType when) { llvm 727 src/CodeGen_LLVM.cpp llvm::Type *void_ptr = i8_t->getPointerTo(); llvm 728 src/CodeGen_LLVM.cpp llvm::Value *stack_slot = create_alloca_at_entry(void_ptr, 1, true); llvm 739 src/CodeGen_LLVM.cpp llvm::Constant *c = dyn_cast<llvm::Constant>(obj); llvm 755 src/CodeGen_LLVM.cpp llvm::Value *should_call = nullptr; llvm 761 src/CodeGen_LLVM.cpp llvm::Function *call_destructor = module->getFunction("call_destructor"); llvm 775 src/CodeGen_LLVM.cpp void CodeGen_LLVM::trigger_destructor(llvm::Function *destructor_fn, Value *stack_slot) { llvm 776 src/CodeGen_LLVM.cpp llvm::Function *call_destructor = module->getFunction("call_destructor"); llvm 849 src/CodeGen_LLVM.cpp llvm::Value *val = codegen(e); llvm 850 src/CodeGen_LLVM.cpp llvm::Constant *constant = dyn_cast<llvm::Constant>(val); llvm 869 src/CodeGen_LLVM.cpp llvm::Function *CodeGen_LLVM::add_argv_wrapper(const std::string &name) { llvm 870 src/CodeGen_LLVM.cpp llvm::Type *args_t[] = {i8_t->getPointerTo()->getPointerTo()}; llvm 871 src/CodeGen_LLVM.cpp llvm::FunctionType *func_t = llvm::FunctionType::get(i32_t, args_t, false); llvm 872 src/CodeGen_LLVM.cpp llvm::Function *wrapper = llvm::Function::Create(func_t, llvm::GlobalValue::ExternalLinkage, name, module.get()); llvm 873 src/CodeGen_LLVM.cpp llvm::BasicBlock *block = llvm::BasicBlock::Create(module->getContext(), "entry", wrapper); llvm 876 src/CodeGen_LLVM.cpp llvm::Value *arg_array = iterator_to_pointer(wrapper->arg_begin()); llvm 878 src/CodeGen_LLVM.cpp std::vector<llvm::Value *> wrapper_args; llvm 879 src/CodeGen_LLVM.cpp for (llvm::Function::arg_iterator i = function->arg_begin(); i != function->arg_end(); i++) { llvm 881 src/CodeGen_LLVM.cpp llvm::Value *ptr = builder->CreateConstGEP1_32(arg_array, wrapper_args.size()); llvm 893 src/CodeGen_LLVM.cpp llvm::CallInst *result = builder->CreateCall(function, wrapper_args); llvm 897 src/CodeGen_LLVM.cpp llvm::raw_os_ostream os(std::cerr); llvm 898 src/CodeGen_LLVM.cpp llvm::verifyFunction(*wrapper, &os); llvm 902 src/CodeGen_LLVM.cpp llvm::Function *CodeGen_LLVM::embed_metadata_getter(const std::string &metadata_name, llvm 940 src/CodeGen_LLVM.cpp llvm::ArrayType *arguments_array = ArrayType::get(argument_t_type, num_args); llvm 965 src/CodeGen_LLVM.cpp llvm::FunctionType *func_t = llvm::FunctionType::get(metadata_t_type->getPointerTo(), false); llvm 966 src/CodeGen_LLVM.cpp llvm::Function *metadata_getter = llvm::Function::Create(func_t, llvm::GlobalValue::ExternalLinkage, metadata_name, module.get()); llvm 967 src/CodeGen_LLVM.cpp llvm::BasicBlock *block = llvm::BasicBlock::Create(module.get()->getContext(), "entry", metadata_getter); llvm 970 src/CodeGen_LLVM.cpp llvm::verifyFunction(*metadata_getter); llvm 975 src/CodeGen_LLVM.cpp llvm::Type *CodeGen_LLVM::llvm_type_of(Type t) { llvm 994 src/CodeGen_LLVM.cpp MyFunctionPassManager(llvm::Module *m) : legacy::FunctionPassManager(m) {} llvm 1038 src/CodeGen_LLVM.cpp for (llvm::Module::iterator i = module->begin(); i != module->end(); i++) { llvm 1054 src/CodeGen_LLVM.cpp void CodeGen_LLVM::sym_push(const string &name, llvm::Value *value) { llvm 1065 src/CodeGen_LLVM.cpp llvm::Value *CodeGen_LLVM::sym_get(const string &name, bool must_succeed) const { llvm 1127 src/CodeGen_LLVM.cpp llvm::Type *llvm_dst = llvm_type_of(dst); llvm 1496 src/CodeGen_LLVM.cpp llvm::DataLayout d(module.get()); llvm 1516 src/CodeGen_LLVM.cpp llvm::Type *base_address_type = base_address->getType(); llvm 1519 src/CodeGen_LLVM.cpp llvm::Type *load_type = llvm_type_of(type)->getPointerTo(address_space); llvm 1526 src/CodeGen_LLVM.cpp llvm::Constant *constant_index = dyn_cast<llvm::Constant>(index); llvm 1532 src/CodeGen_LLVM.cpp llvm::DataLayout d(module.get()); llvm 1551 src/CodeGen_LLVM.cpp void CodeGen_LLVM::add_tbaa_metadata(llvm::Instruction *inst, string buffer, Expr index) { llvm 1590 src/CodeGen_LLVM.cpp llvm::MDBuilder builder(*context); llvm 1781 src/CodeGen_LLVM.cpp llvm::Value *CodeGen_LLVM::create_broadcast(llvm::Value *v, int lanes) { llvm 1876 src/CodeGen_LLVM.cpp llvm::Type *result_type = llvm_type_of(e.type()); llvm 2014 src/CodeGen_LLVM.cpp llvm::Type *slice_type = VectorType::get(llvm_type_of(load->type.element_of()), slice_lanes); llvm 2087 src/CodeGen_LLVM.cpp llvm::Function *debug_to_file = module->getFunction("halide_debug_to_file"); llvm 2117 src/CodeGen_LLVM.cpp llvm::Type *llvm_dst = llvm_type_of(dst); llvm 2123 src/CodeGen_LLVM.cpp llvm::DataLayout d(module.get()); llvm 2125 src/CodeGen_LLVM.cpp llvm::Type *intermediate = llvm_type_of(UInt(32, dst.lanes())); llvm 2138 src/CodeGen_LLVM.cpp llvm::DataLayout d(module.get()); llvm 2140 src/CodeGen_LLVM.cpp llvm::Type *intermediate = llvm_type_of(UInt(32, src.lanes())); llvm 2169 src/CodeGen_LLVM.cpp llvm::Function * builtin_abs = llvm 2199 src/CodeGen_LLVM.cpp llvm::Function *builtin_absd = llvm 2241 src/CodeGen_LLVM.cpp std::vector<llvm::Type*> arg_type(1); llvm 2243 src/CodeGen_LLVM.cpp llvm::Function *fn = Intrinsic::getDeclaration(module.get(), Intrinsic::ctpop, arg_type); llvm 2249 src/CodeGen_LLVM.cpp std::vector<llvm::Type*> arg_type(1); llvm 2251 src/CodeGen_LLVM.cpp llvm::Function *fn = Intrinsic::getDeclaration(module.get(), llvm 2255 src/CodeGen_LLVM.cpp llvm::Value *zero_is_not_undef = llvm::ConstantInt::getFalse(*context); llvm 2256 src/CodeGen_LLVM.cpp llvm::Value *args[2] = { codegen(op->args[0]), zero_is_not_undef }; llvm 2307 src/CodeGen_LLVM.cpp vector<llvm::Value *> args(op->args.size()); llvm 2308 src/CodeGen_LLVM.cpp vector<llvm::Type *> types(op->args.size()); llvm 2322 src/CodeGen_LLVM.cpp llvm::Type *aggregate_t = (all_same_type ? llvm 2323 src/CodeGen_LLVM.cpp (llvm::Type *)ArrayType::get(types[0], types.size()) : llvm 2324 src/CodeGen_LLVM.cpp (llvm::Type *)StructType::get(*context, types)); llvm 2370 src/CodeGen_LLVM.cpp llvm::Value *buf = create_alloca_at_entry(i8_t, buf_size); llvm 2372 src/CodeGen_LLVM.cpp llvm::Value *dst = buf; llvm 2373 src/CodeGen_LLVM.cpp llvm::Value *buf_end = builder->CreateConstGEP1_32(buf, buf_size); llvm 2375 src/CodeGen_LLVM.cpp llvm::Function *append_string = module->getFunction("halide_string_to_string"); llvm 2376 src/CodeGen_LLVM.cpp llvm::Function *append_int64 = module->getFunction("halide_int64_to_string"); llvm 2377 src/CodeGen_LLVM.cpp llvm::Function *append_uint64 = module->getFunction("halide_uint64_to_string"); llvm 2378 src/CodeGen_LLVM.cpp llvm::Function *append_double = module->getFunction("halide_double_to_string"); llvm 2379 src/CodeGen_LLVM.cpp llvm::Function *append_pointer = module->getFunction("halide_pointer_to_string"); llvm 2380 src/CodeGen_LLVM.cpp llvm::Function *append_buffer = module->getFunction("halide_buffer_to_string"); llvm 2464 src/CodeGen_LLVM.cpp llvm::Function *f = module->getFunction(fn->value); llvm 2466 src/CodeGen_LLVM.cpp llvm::Type *arg_types[] = {i8_t->getPointerTo(), i8_t->getPointerTo()}; llvm 2468 src/CodeGen_LLVM.cpp f = llvm::Function::Create(func_t, llvm::Function::ExternalLinkage, fn->value, module.get()); llvm 2516 src/CodeGen_LLVM.cpp llvm::Function *fn; llvm 2517 src/CodeGen_LLVM.cpp llvm::GlobalValue *fn_ptr; llvm 2524 src/CodeGen_LLVM.cpp llvm::Function *sub_fn = module->getFunction(sub_fn_name); llvm 2533 src/CodeGen_LLVM.cpp vector<llvm::Type *> arg_types; llvm 2537 src/CodeGen_LLVM.cpp llvm::Type *result_type = llvm_type_of(op->type); llvm 2539 src/CodeGen_LLVM.cpp sub_fn = llvm::Function::Create(func_t, llvm::Function::ExternalLinkage, llvm 2544 src/CodeGen_LLVM.cpp llvm::GlobalValue *sub_fn_ptr = module->getNamedValue(extern_sub_fn_name); llvm 2585 src/CodeGen_LLVM.cpp llvm::Value *selected_value = nullptr; llvm 2607 src/CodeGen_LLVM.cpp std::vector<llvm::Value *> call_args; llvm 2612 src/CodeGen_LLVM.cpp llvm::CallInst *call = builder->CreateCall(base_fn->getFunctionType(), phi, call_args); llvm 2618 src/CodeGen_LLVM.cpp llvm::Function *prefetch_fn = module->getFunction("_halide_prefetch"); llvm 2621 src/CodeGen_LLVM.cpp vector<llvm::Value *> args; llvm 2626 src/CodeGen_LLVM.cpp llvm::Type *ptr_type = prefetch_fn->getFunctionType()->params()[0]; llvm 2638 src/CodeGen_LLVM.cpp llvm::DataLayout d(module.get()); llvm 2688 src/CodeGen_LLVM.cpp llvm::Function *fn = module->getFunction(name); llvm 2690 src/CodeGen_LLVM.cpp llvm::Type *result_type = llvm_type_of(op->type); llvm 2702 src/CodeGen_LLVM.cpp vector<llvm::Type *> arg_types(args.size()); llvm 2711 src/CodeGen_LLVM.cpp llvm::Type *scalar_result_type = result_type; llvm 2719 src/CodeGen_LLVM.cpp fn = llvm::Function::Create(func_t, llvm::Function::ExternalLinkage, name, module.get()); llvm 2739 src/CodeGen_LLVM.cpp llvm::Type *t = func_t->getParamType(i); llvm 2769 src/CodeGen_LLVM.cpp pair<llvm::Function *, int> vec = llvm 2771 src/CodeGen_LLVM.cpp llvm::Function *vec_fn = vec.first; llvm 2859 src/CodeGen_LLVM.cpp llvm::Type *type = ArrayType::get(i8_t, data.size()); llvm 2873 src/CodeGen_LLVM.cpp void CodeGen_LLVM::create_assertion(Value *cond, Expr message, llvm::Value *error_code) { llvm 2910 src/CodeGen_LLVM.cpp void CodeGen_LLVM::return_with_error_code(llvm::Value *error_code) { llvm 2994 src/CodeGen_LLVM.cpp llvm::Type *voidPointerType = (llvm::Type *)(i8_t->getPointerTo()); llvm 2995 src/CodeGen_LLVM.cpp llvm::Type *args_t[] = {voidPointerType, i32_t, voidPointerType}; llvm 2997 src/CodeGen_LLVM.cpp llvm::Function *containing_function = function; llvm 2998 src/CodeGen_LLVM.cpp function = llvm::Function::Create(func_t, llvm::Function::InternalLinkage, llvm 3025 src/CodeGen_LLVM.cpp llvm::Function::arg_iterator iter = function->arg_begin(); llvm 3048 src/CodeGen_LLVM.cpp llvm::Function *do_par_for = module->getFunction("halide_do_par_for"); llvm 3251 src/CodeGen_LLVM.cpp Value *CodeGen_LLVM::create_alloca_at_entry(llvm::Type *t, int n, bool zero_initialize, const string &name) { llvm 3297 src/CodeGen_LLVM.cpp Value *CodeGen_LLVM::call_intrin(llvm::Type *result_type, int intrin_lanes, llvm 3324 src/CodeGen_LLVM.cpp llvm::Type *result_slice_type = llvm 3325 src/CodeGen_LLVM.cpp llvm::VectorType::get(result_type->getScalarType(), intrin_lanes); llvm 3333 src/CodeGen_LLVM.cpp vector<llvm::Type *> arg_types(arg_values.size()); llvm 3338 src/CodeGen_LLVM.cpp llvm::Function *fn = module->getFunction(name); llvm 3341 src/CodeGen_LLVM.cpp llvm::Type *intrinsic_result_type = VectorType::get(result_type->getScalarType(), intrin_lanes); llvm 3343 src/CodeGen_LLVM.cpp fn = llvm::Function::Create(func_t, llvm::Function::ExternalLinkage, name, module.get()); llvm 3457 src/CodeGen_LLVM.cpp std::pair<llvm::Function *, int> CodeGen_LLVM::find_vector_runtime_function(const std::string &name, int lanes) { llvm 3480 src/CodeGen_LLVM.cpp llvm::Function *vec_fn = module->getFunction(name + "x" + std::to_string(l)); llvm 10 src/CodeGen_LLVM.h namespace llvm { llvm 65 src/CodeGen_LLVM.h llvm::LLVMContext &context); llvm 70 src/CodeGen_LLVM.h virtual std::unique_ptr<llvm::Module> compile(const Module &module); llvm 76 src/CodeGen_LLVM.h void set_context(llvm::LLVMContext &context); llvm 132 src/CodeGen_LLVM.h std::unique_ptr<llvm::Module> module; llvm 133 src/CodeGen_LLVM.h llvm::Function *function; llvm 134 src/CodeGen_LLVM.h llvm::LLVMContext *context; llvm 136 src/CodeGen_LLVM.h llvm::IRBuilder<llvm::ConstantFolder, llvm::IRBuilderDefaultInserter> *builder; llvm 138 src/CodeGen_LLVM.h llvm::IRBuilder<true, llvm::ConstantFolder, llvm::IRBuilderDefaultInserter<true>> *builder; llvm 140 src/CodeGen_LLVM.h llvm::Value *value; llvm 141 src/CodeGen_LLVM.h llvm::MDNode *very_likely_branch; llvm 163 src/CodeGen_LLVM.h void sym_push(const std::string &name, llvm::Value *value); llvm 173 src/CodeGen_LLVM.h llvm::Value* sym_get(const std::string &name, llvm 181 src/CodeGen_LLVM.h llvm::Type *void_t, *i1_t, *i8_t, *i16_t, *i32_t, *i64_t, *f16_t, *f32_t, *f64_t; llvm 182 src/CodeGen_LLVM.h llvm::StructType *buffer_t_type, llvm 193 src/CodeGen_LLVM.h llvm::Type *i8x8, *i8x16, *i8x32; llvm 194 src/CodeGen_LLVM.h llvm::Type *i16x4, *i16x8, *i16x16; llvm 195 src/CodeGen_LLVM.h llvm::Type *i32x2, *i32x4, *i32x8; llvm 196 src/CodeGen_LLVM.h llvm::Type *i64x2, *i64x4; llvm 197 src/CodeGen_LLVM.h llvm::Type *f32x2, *f32x4, *f32x8; llvm 198 src/CodeGen_LLVM.h llvm::Type *f64x2, *f64x4; llvm 228 src/CodeGen_LLVM.h llvm::Value *codegen(Expr); llvm 251 src/CodeGen_LLVM.h llvm::Value *register_destructor(llvm::Function *destructor_fn, llvm::Value *obj, DestructorType when); llvm 254 src/CodeGen_LLVM.h void trigger_destructor(llvm::Function *destructor_fn, llvm::Value *stack_slot); llvm 259 src/CodeGen_LLVM.h llvm::BasicBlock *get_destructor_block(); llvm 265 src/CodeGen_LLVM.h void create_assertion(llvm::Value *condition, Expr message, llvm::Value *error_code = nullptr); llvm 270 src/CodeGen_LLVM.h void return_with_error_code(llvm::Value *error_code); llvm 273 src/CodeGen_LLVM.h llvm::Constant *create_string_constant(const std::string &str); llvm 276 src/CodeGen_LLVM.h llvm::Constant *create_binary_blob(const std::vector<char> &data, const std::string &name, bool constant = true); llvm 279 src/CodeGen_LLVM.h llvm::Value *create_broadcast(llvm::Value *, int lanes); llvm 285 src/CodeGen_LLVM.h llvm::Value *codegen_buffer_pointer(std::string buffer, Type type, llvm::Value *index); llvm 286 src/CodeGen_LLVM.h llvm::Value *codegen_buffer_pointer(std::string buffer, Type type, Expr index); llvm 287 src/CodeGen_LLVM.h llvm::Value *codegen_buffer_pointer(llvm::Value *base_address, Type type, Expr index); llvm 288 src/CodeGen_LLVM.h llvm::Value *codegen_buffer_pointer(llvm::Value *base_address, Type type, llvm::Value *index); llvm 292 src/CodeGen_LLVM.h llvm::Value *make_halide_type_t(Type); llvm 297 src/CodeGen_LLVM.h void add_tbaa_metadata(llvm::Instruction *inst, std::string buffer, Expr index); llvm 384 src/CodeGen_LLVM.h llvm::Type *llvm_type_of(Type); llvm 388 src/CodeGen_LLVM.h llvm::Value *create_alloca_at_entry(llvm::Type *type, int n, llvm 398 src/CodeGen_LLVM.h llvm::Value *get_user_context() const; llvm 403 src/CodeGen_LLVM.h virtual llvm::Value *interleave_vectors(const std::vector<llvm::Value *> &); llvm 414 src/CodeGen_LLVM.h llvm::Value *call_intrin(Type t, int intrin_lanes, llvm 416 src/CodeGen_LLVM.h llvm::Value *call_intrin(llvm::Type *t, int intrin_lanes, llvm 417 src/CodeGen_LLVM.h const std::string &name, std::vector<llvm::Value *>); llvm 422 src/CodeGen_LLVM.h virtual llvm::Value *slice_vector(llvm::Value *vec, int start, int extent); llvm 425 src/CodeGen_LLVM.h virtual llvm::Value *concat_vectors(const std::vector<llvm::Value *> &); llvm 428 src/CodeGen_LLVM.h virtual llvm::Value *shuffle_vectors(llvm::Value *a, llvm::Value *b, llvm 431 src/CodeGen_LLVM.h llvm::Value *shuffle_vectors(llvm::Value *v, const std::vector<int> &indices); llvm 449 src/CodeGen_LLVM.h std::pair<llvm::Function *, int> find_vector_runtime_function(const std::string &name, int lanes); llvm 458 src/CodeGen_LLVM.h Scope<llvm::Value *> symbol_table; llvm 465 src/CodeGen_LLVM.h std::map<std::string, llvm::Constant *> string_constants; llvm 470 src/CodeGen_LLVM.h llvm::BasicBlock *destructor_block; llvm 477 src/CodeGen_LLVM.h llvm::Function* embed_metadata_getter(const std::string &metadata_getter_name, llvm 481 src/CodeGen_LLVM.h llvm::Constant *embed_constant_expr(Expr e); llvm 483 src/CodeGen_LLVM.h llvm::Function *add_argv_wrapper(const std::string &name); llvm 485 src/CodeGen_LLVM.h llvm::Value *codegen_dense_vector_load(const Load *load, llvm::Value *vpred = nullptr); llvm 494 src/CodeGen_LLVM.h EXPORT std::unique_ptr<llvm::Module> codegen_llvm(const Module &module, llvm 495 src/CodeGen_LLVM.h llvm::LLVMContext &context); llvm 11 src/CodeGen_MIPS.cpp using namespace llvm; llvm 26 src/CodeGen_PTX_Dev.cpp using namespace llvm; llvm 34 src/CodeGen_PTX_Dev.cpp context = new llvm::LLVMContext(); llvm 55 src/CodeGen_PTX_Dev.cpp vector<llvm::Type *> arg_types(args.size()); llvm 66 src/CodeGen_PTX_Dev.cpp function = llvm::Function::Create(func_t, llvm::Function::ExternalLinkage, name, module.get()); llvm 115 src/CodeGen_PTX_Dev.cpp llvm::Metadata *md_args[] = { llvm 116 src/CodeGen_PTX_Dev.cpp llvm::ValueAsMetadata::get(function), llvm 118 src/CodeGen_PTX_Dev.cpp llvm::ValueAsMetadata::get(ConstantInt::get(i32_t, 1)) llvm 272 src/CodeGen_PTX_Dev.cpp llvm::Triple triple(module->getTargetTriple()); llvm 277 src/CodeGen_PTX_Dev.cpp const llvm::Target *target = TargetRegistry::lookupTarget(triple.str(), err_str); llvm 297 src/CodeGen_PTX_Dev.cpp llvm::Reloc::PIC_, llvm 298 src/CodeGen_PTX_Dev.cpp llvm::CodeModel::Default, llvm 304 src/CodeGen_PTX_Dev.cpp llvm::SmallString<8> outstr; llvm 337 src/CodeGen_PTX_Dev.cpp module->addModuleFlag(llvm::Module::Override, "nvvm-reflect-ftz", llvm 341 src/CodeGen_PTX_Dev.cpp for (llvm::Function &fn : *module) { llvm 379 src/CodeGen_PTX_Dev.cpp for (llvm::Module::iterator i = module->begin(); i != module->end(); i++) { llvm 12 src/CodeGen_PTX_Dev.h namespace llvm { llvm 54 src/CodeGen_PTX_Dev.h llvm::BasicBlock *entry_block; llvm 21 src/CodeGen_Posix.cpp using namespace llvm; llvm 140 src/CodeGen_Posix.cpp llvm::Function *allocated_in = alloca_inst ? alloca_inst->getParent()->getParent() : nullptr; llvm 141 src/CodeGen_Posix.cpp llvm::Function *current_func = builder->GetInsertBlock()->getParent(); llvm 167 src/CodeGen_Posix.cpp llvm::Type *t = llvm 179 src/CodeGen_Posix.cpp llvm::Function *malloc_fn = module->getFunction("halide_malloc"); llvm 183 src/CodeGen_Posix.cpp llvm::Function::arg_iterator arg_iter = malloc_fn->arg_begin(); llvm 222 src/CodeGen_Posix.cpp llvm::Function *free_fn = module->getFunction(free_function); llvm 42 src/CodeGen_Posix.h llvm::Value *ptr; llvm 45 src/CodeGen_Posix.h llvm::Value *destructor; llvm 48 src/CodeGen_Posix.h llvm::Function *destructor_function; llvm 88 src/CodeGen_Posix.h llvm::Value *codegen_allocation_size(const std::string &name, Type type, const std::vector<Expr> &extents); llvm 15 src/CodeGen_PowerPC.cpp using namespace llvm; llvm 22 src/CodeGen_X86.cpp using namespace llvm; llvm 11 src/CodeGen_X86.h namespace llvm { llvm 10 src/Float16.cpp llvm::APFloat::roundingMode llvm 14 src/Float16.cpp return llvm::APFloat::roundingMode::rmTowardZero; llvm 16 src/Float16.cpp return llvm::APFloat::roundingMode::rmNearestTiesToEven; llvm 18 src/Float16.cpp return llvm::APFloat::roundingMode::rmNearestTiesToAway; llvm 20 src/Float16.cpp return llvm::APFloat::roundingMode::rmTowardPositive; llvm 22 src/Float16.cpp return llvm::APFloat::roundingMode::rmTowardNegative; llvm 29 src/Float16.cpp float16_t toFP16(llvm::APFloat v) { llvm 35 src/Float16.cpp llvm::APFloat toLLVMAPF(float16_t v) { llvm 36 src/Float16.cpp llvm::APInt bitRepr(16, (uint64_t)v.to_bits(), /*isSigned=*/false); llvm 38 src/Float16.cpp llvm::APFloat repr(llvm::APFloat::IEEEhalf(), bitRepr); llvm 40 src/Float16.cpp llvm::APFloat repr(llvm::APFloat::IEEEhalf, bitRepr); llvm 48 src/Float16.cpp void checkConversion(llvm::APFloat::opStatus status, llvm 51 src/Float16.cpp llvm::APFloat result) { llvm 53 src/Float16.cpp internal_assert(!(status & llvm::APFloat::opStatus::opInvalidOp)) << "Unexpected invalid op\n"; llvm 54 src/Float16.cpp internal_assert(!(status & llvm::APFloat::opStatus::opDivByZero)) << "Unexpected div by zero\n"; llvm 55 src/Float16.cpp if (status & llvm::APFloat::opStatus::opOverflow) { llvm 59 src/Float16.cpp if (status & llvm::APFloat::opStatus::opUnderflow) { llvm 60 src/Float16.cpp internal_assert(status & llvm::APFloat::opStatus::opInexact) << "Underflow was flagged but inexact was not\n"; llvm 67 src/Float16.cpp if (status & llvm::APFloat::opStatus::opInexact) { llvm 78 src/Float16.cpp llvm::APFloat convertedValue(value); llvm 80 src/Float16.cpp llvm::APFloat::opStatus status = convertedValue.convert( llvm 82 src/Float16.cpp llvm::APFloat::IEEEhalf(), llvm 84 src/Float16.cpp llvm::APFloat::IEEEhalf, llvm 95 src/Float16.cpp llvm::APFloat convertedValue(llvm::APFloat::IEEEhalf()); llvm 97 src/Float16.cpp llvm::APFloat convertedValue(llvm::APFloat::IEEEhalf); llvm 100 src/Float16.cpp llvm::APFloat::opStatus status = convertedValue.convertFromString(value, llvm 110 src/Float16.cpp llvm::APFloat convertedValue(llvm::APFloat::IEEEhalf()); llvm 112 src/Float16.cpp llvm::APFloat convertedValue(llvm::APFloat::IEEEhalf); llvm 119 src/Float16.cpp llvm::APFloatBase::integerPart asIP = value; llvm 121 src/Float16.cpp llvm::integerPart asIP = value; llvm 123 src/Float16.cpp llvm::APFloat::opStatus status = convertedValue.convertFromSignExtendedInteger( llvm 173 src/Float16.cpp llvm::APFloat convertedValue = toLLVMAPF(*this); llvm 178 src/Float16.cpp convertedValue.convert(llvm::APFloat::IEEEsingle(), llvm::APFloat::rmNearestTiesToEven, &losesInfo); llvm 180 src/Float16.cpp convertedValue.convert(llvm::APFloat::IEEEsingle, llvm::APFloat::rmNearestTiesToEven, &losesInfo); llvm 187 src/Float16.cpp llvm::APFloat convertedValue = toLLVMAPF(*this); llvm 192 src/Float16.cpp convertedValue.convert(llvm::APFloat::IEEEdouble(), llvm::APFloat::rmNearestTiesToEven, &losesInfo); llvm 194 src/Float16.cpp convertedValue.convert(llvm::APFloat::IEEEdouble, llvm::APFloat::rmNearestTiesToEven, &losesInfo); llvm 202 src/Float16.cpp llvm::APFloat zero = llvm::APFloat::getZero(llvm::APFloat::IEEEhalf(), !positive); llvm 204 src/Float16.cpp llvm::APFloat zero = llvm::APFloat::getZero(llvm::APFloat::IEEEhalf, !positive); llvm 211 src/Float16.cpp llvm::APFloat inf = llvm::APFloat::getInf(llvm::APFloat::IEEEhalf(), !positive); llvm 213 src/Float16.cpp llvm::APFloat inf = llvm::APFloat::getInf(llvm::APFloat::IEEEhalf, !positive); llvm 220 src/Float16.cpp llvm::APFloat nan = llvm::APFloat::getNaN(llvm::APFloat::IEEEhalf()); llvm 222 src/Float16.cpp llvm::APFloat nan = llvm::APFloat::getNaN(llvm::APFloat::IEEEhalf); llvm 228 src/Float16.cpp llvm::APFloat result = toLLVMAPF(*this); llvm 229 src/Float16.cpp llvm::APFloat rhsAPF = toLLVMAPF(rhs); llvm 236 src/Float16.cpp llvm::APFloat result = toLLVMAPF(*this); llvm 237 src/Float16.cpp llvm::APFloat rhsAPF = toLLVMAPF(rhs); llvm 244 src/Float16.cpp llvm::APFloat result = toLLVMAPF(*this); llvm 245 src/Float16.cpp llvm::APFloat rhsAPF = toLLVMAPF(rhs); llvm 252 src/Float16.cpp llvm::APFloat result = toLLVMAPF(*this); llvm 253 src/Float16.cpp llvm::APFloat rhsAPF = toLLVMAPF(denominator); llvm 260 src/Float16.cpp llvm::APFloat result = toLLVMAPF(*this); llvm 261 src/Float16.cpp llvm::APFloat rhsAPF = toLLVMAPF(denominator); llvm 268 src/Float16.cpp llvm::APFloat result = toLLVMAPF(*this); llvm 269 src/Float16.cpp llvm::APFloat rhsAPF = toLLVMAPF(denominator); llvm 282 src/Float16.cpp llvm::APFloat result = toLLVMAPF(*this); llvm 304 src/Float16.cpp llvm::APFloat lhsAPF = toLLVMAPF(*this); llvm 305 src/Float16.cpp llvm::APFloat rhsAPF = toLLVMAPF(rhs); llvm 306 src/Float16.cpp return lhsAPF.compare(rhsAPF) == llvm::APFloat::cmpEqual; llvm 314 src/Float16.cpp llvm::APFloat repr = toLLVMAPF(*this); llvm 320 src/Float16.cpp llvm::APFloat::rmNearestTiesToEven); llvm 328 src/Float16.cpp llvm::APFloat lhsAPF = toLLVMAPF(*this); llvm 329 src/Float16.cpp llvm::APFloat rhsAPF = toLLVMAPF(rhs); llvm 330 src/Float16.cpp return lhsAPF.compare(rhsAPF) == llvm::APFloat::cmpGreaterThan; llvm 335 src/Float16.cpp llvm::APFloat lhsAPF = toLLVMAPF(*this); llvm 336 src/Float16.cpp llvm::APFloat rhsAPF = toLLVMAPF(rhs); llvm 337 src/Float16.cpp return lhsAPF.compare(rhsAPF) == llvm::APFloat::cmpLessThan; llvm 341 src/Float16.cpp llvm::APFloat lhsAPF = toLLVMAPF(*this); llvm 342 src/Float16.cpp llvm::APFloat rhsAPF = toLLVMAPF(rhs); llvm 343 src/Float16.cpp return lhsAPF.compare(rhsAPF) == llvm::APFloat::cmpUnordered; llvm 347 src/Float16.cpp llvm::APFloat repr = toLLVMAPF(*this); llvm 348 src/Float16.cpp llvm::SmallVector<char, 16> result; llvm 354 src/Float16.cpp llvm::APFloat repr = toLLVMAPF(*this); llvm 359 src/Float16.cpp llvm::APFloat repr = toLLVMAPF(*this); llvm 364 src/Float16.cpp llvm::APFloat repr = toLLVMAPF(*this); llvm 369 src/Float16.cpp llvm::APFloat repr = toLLVMAPF(*this); llvm 866 src/HexagonOffload.cpp llvm::LLVMContext context; llvm 867 src/HexagonOffload.cpp std::unique_ptr<llvm::Module> llvm_module(compile_module_to_llvm_module(device_code, context)); llvm 869 src/HexagonOffload.cpp llvm::SmallVector<char, 4096> object; llvm 870 src/HexagonOffload.cpp llvm::raw_svector_ostream object_stream(object); llvm 875 src/HexagonOffload.cpp llvm::SmallString<4096> assembly; llvm 876 src/HexagonOffload.cpp llvm::raw_svector_ostream assembly_stream(assembly); llvm 870 src/Introspection.cpp llvm::object::ObjectFile *obj = nullptr; llvm 875 src/Introspection.cpp llvm::Expected<llvm::object::OwningBinary<llvm::object::ObjectFile>> maybe_obj = llvm 876 src/Introspection.cpp llvm::object::ObjectFile::createObjectFile(binary); llvm 888 src/Introspection.cpp llvm::ErrorOr<llvm::object::OwningBinary<llvm::object::ObjectFile>> maybe_obj = llvm 889 src/Introspection.cpp llvm::object::ObjectFile::createObjectFile(binary); llvm 908 src/Introspection.cpp void parse_object_file(llvm::object::ObjectFile *obj) { llvm 910 src/Introspection.cpp llvm::StringRef debug_info, debug_abbrev, debug_str, debug_line, debug_ranges; llvm 918 src/Introspection.cpp for (llvm::object::section_iterator iter = obj->section_begin(); llvm 920 src/Introspection.cpp llvm::StringRef name; llvm 948 src/Introspection.cpp llvm::DataExtractor extractor(debug_info, true, obj->getBytesInAddress()); llvm 949 src/Introspection.cpp llvm::DataExtractor debug_abbrev_extractor(debug_abbrev, true, obj->getBytesInAddress()); llvm 954 src/Introspection.cpp llvm::DataExtractor e(debug_line, true, obj->getBytesInAddress()); llvm 959 src/Introspection.cpp void parse_debug_ranges(const llvm::DataExtractor &e) { llvm 963 src/Introspection.cpp void parse_debug_abbrev(const llvm::DataExtractor &e, uint32_t off = 0) { llvm 990 src/Introspection.cpp void parse_debug_info(const llvm::DataExtractor &e, llvm 991 src/Introspection.cpp const llvm::DataExtractor &debug_abbrev, llvm 992 src/Introspection.cpp llvm::StringRef debug_str, llvm 993 src/Introspection.cpp llvm::StringRef debug_ranges) { llvm 997 src/Introspection.cpp llvm::StringRef debug_info = e.getData(); llvm 1858 src/Introspection.cpp void parse_debug_line(const llvm::DataExtractor &e) { llvm 81 src/JITModule.cpp llvm::sys::DynamicLibrary::LoadLibraryPermanently("libGL.so.1", &error); llvm 83 src/JITModule.cpp llvm::sys::DynamicLibrary::LoadLibraryPermanently("libX11.so", &error); llvm 92 src/JITModule.cpp llvm::sys::DynamicLibrary::LoadLibraryPermanently("/System/Library/Frameworks/AGL.framework/AGL", &error); llvm 94 src/JITModule.cpp llvm::sys::DynamicLibrary::LoadLibraryPermanently("/System/Library/Frameworks/OpenGL.framework/OpenGL", &error); llvm 109 src/JITModule.cpp llvm::sys::DynamicLibrary::LoadLibraryPermanently("/System/Library/Frameworks/Metal.framework/Metal", &error); llvm 119 src/JITModule.cpp using namespace llvm; llvm 137 src/JITModule.cpp llvm::LLVMContext context; llvm 157 src/JITModule.cpp llvm::Function *fn = ee.FindFunctionNamed(name.c_str()); llvm 245 src/JITModule.cpp std::unique_ptr<llvm::Module> llvm_module(compile_module_to_llvm_module(m, jit_module->context)); llvm 252 src/JITModule.cpp void JITModule::compile_module(std::unique_ptr<llvm::Module> m, const string &function_name, const Target &target, llvm 266 src/JITModule.cpp llvm::TargetOptions options; llvm 272 src/JITModule.cpp llvm::EngineBuilder engine_builder((std::move(m))); llvm 275 src/JITModule.cpp engine_builder.setEngineKind(llvm::EngineKind::JIT); llvm 305 src/JITModule.cpp std::vector<llvm::JITEventListener *> listeners; llvm 308 src/JITModule.cpp listeners.push_back(llvm::JITEventListener::createIntelJITEventListener()); llvm 424 src/JITModule.cpp llvm::Module dummy_module("ThisIsRidiculous", jit_module->context); llvm 425 src/JITModule.cpp llvm::Type *halide_buffer_t = dummy_module.getTypeByName("struct.halide_buffer_t"); llvm 427 src/JITModule.cpp halide_buffer_t = llvm::StructType::create(jit_module->context, "struct.halide_buffer_t"); llvm 429 src/JITModule.cpp llvm::Type *halide_buffer_t_star = llvm::PointerType::get(halide_buffer_t, 0); llvm 431 src/JITModule.cpp llvm::Type *ret_type; llvm 434 src/JITModule.cpp ret_type = llvm::Type::getVoidTy(jit_module->context); llvm 439 src/JITModule.cpp std::vector<llvm::Type *> llvm_arg_types; llvm 448 src/JITModule.cpp symbol.llvm_type = llvm::FunctionType::get(ret_type, llvm_arg_types, false); llvm 637 src/JITModule.cpp JITModule &make_module(llvm::Module *for_module, Target target, llvm 689 src/JITModule.cpp std::unique_ptr<llvm::Module> module(get_initial_module_for_target(one_gpu, llvm 776 src/JITModule.cpp std::vector<JITModule> JITSharedRuntime::get(llvm::Module *for_module, const Target &target, bool create) { llvm 16 src/JITModule.h namespace llvm { llvm 38 src/JITModule.h llvm::Type *llvm_type; llvm 40 src/JITModule.h Symbol(void *address, llvm::Type *llvm_type) : address(address), llvm_type(llvm_type) {} llvm 111 src/JITModule.h EXPORT void compile_module(std::unique_ptr<llvm::Module> mod, llvm 146 src/JITModule.h EXPORT static std::vector<JITModule> get(llvm::Module *m, const Target &target, bool create = true); llvm 13 src/LLVM_Output.cpp std::unique_ptr<llvm::raw_fd_ostream> make_raw_fd_ostream(const std::string &filename) { llvm 16 src/LLVM_Output.cpp std::unique_ptr<llvm::raw_fd_ostream> raw_out(new llvm::raw_fd_ostream(filename, err, llvm::sys::fs::F_None)); llvm 24 src/LLVM_Output.cpp void emit_file(llvm::Module &module, Internal::LLVMOStream& out, llvm::TargetMachine::CodeGenFileType file_type) { llvm 33 src/LLVM_Output.cpp llvm::DataLayout target_data_layout(*(target_machine->getDataLayout())); llvm 35 src/LLVM_Output.cpp llvm::DataLayout target_data_layout(target_machine->createDataLayout()); llvm 44 src/LLVM_Output.cpp llvm::legacy::PassManager pass_manager; llvm 46 src/LLVM_Output.cpp pass_manager.add(new llvm::TargetLibraryInfoWrapperPass(llvm::Triple(module.getTargetTriple()))); llvm 50 src/LLVM_Output.cpp pass_manager.add(llvm::createAlwaysInlinerPass()); llvm 52 src/LLVM_Output.cpp pass_manager.add(llvm::createAlwaysInlinerLegacyPass()); llvm 59 src/LLVM_Output.cpp pass_manager.add(llvm::createRewriteSymbolsPass()); llvm 70 src/LLVM_Output.cpp std::unique_ptr<llvm::Module> compile_module_to_llvm_module(const Module &module, llvm::LLVMContext &context) { llvm 74 src/LLVM_Output.cpp void compile_llvm_module_to_object(llvm::Module &module, Internal::LLVMOStream& out) { llvm 75 src/LLVM_Output.cpp emit_file(module, out, llvm::TargetMachine::CGFT_ObjectFile); llvm 78 src/LLVM_Output.cpp void compile_llvm_module_to_assembly(llvm::Module &module, Internal::LLVMOStream& out) { llvm 79 src/LLVM_Output.cpp emit_file(module, out, llvm::TargetMachine::CGFT_AssemblyFile); llvm 82 src/LLVM_Output.cpp void compile_llvm_module_to_llvm_bitcode(llvm::Module &module, Internal::LLVMOStream& out) { llvm 86 src/LLVM_Output.cpp void compile_llvm_module_to_llvm_assembly(llvm::Module &module, Internal::LLVMOStream& out) { llvm 94 src/LLVM_Output.cpp std::vector<llvm::NewArchiveMember> new_members; llvm 96 src/LLVM_Output.cpp llvm::Expected<llvm::NewArchiveMember> new_member = llvm 97 src/LLVM_Output.cpp llvm::NewArchiveMember::getFile(src, /*Deterministic=*/true); llvm 102 src/LLVM_Output.cpp internal_error << src << ": " << llvm::toString(new_member.takeError()) << "\n"; llvm 107 src/LLVM_Output.cpp std::vector<llvm::NewArchiveIterator> new_members; llvm 109 src/LLVM_Output.cpp new_members.push_back(llvm::NewArchiveIterator(src)); llvm 112 src/LLVM_Output.cpp std::vector<llvm::NewArchiveIterator> new_members; llvm 114 src/LLVM_Output.cpp new_members.push_back(llvm::NewArchiveIterator(src, src)); llvm 120 src/LLVM_Output.cpp ? llvm::object::Archive::K_BSD llvm 121 src/LLVM_Output.cpp : llvm::object::Archive::K_GNU; llvm 123 src/LLVM_Output.cpp auto result = llvm::writeArchive(dst_file, new_members, llvm 128 src/LLVM_Output.cpp auto result = llvm::writeArchive(dst_file, new_members, llvm 133 src/LLVM_Output.cpp auto result = llvm::writeArchive(dst_file, new_members, llvm 15 src/LLVM_Output.h namespace llvm { llvm 27 src/LLVM_Output.h typedef llvm::raw_pwrite_stream LLVMOStream; llvm 31 src/LLVM_Output.h EXPORT std::unique_ptr<llvm::Module> compile_module_to_llvm_module(const Module &module, llvm::LLVMContext &context); llvm 34 src/LLVM_Output.h std::unique_ptr<llvm::raw_fd_ostream> make_raw_fd_ostream(const std::string &filename); llvm 38 src/LLVM_Output.h EXPORT void compile_llvm_module_to_object(llvm::Module &module, Internal::LLVMOStream& out); llvm 39 src/LLVM_Output.h EXPORT void compile_llvm_module_to_assembly(llvm::Module &module, Internal::LLVMOStream& out); llvm 44 src/LLVM_Output.h EXPORT void compile_llvm_module_to_llvm_bitcode(llvm::Module &module, Internal::LLVMOStream& out); llvm 45 src/LLVM_Output.h EXPORT void compile_llvm_module_to_llvm_assembly(llvm::Module &module, Internal::LLVMOStream& out); llvm 11 src/LLVM_Runtime_Linker.cpp std::unique_ptr<llvm::Module> parse_bitcode_file(llvm::StringRef buf, llvm::LLVMContext *context, const char *id) { llvm 13 src/LLVM_Runtime_Linker.cpp llvm::MemoryBufferRef bitcode_buffer = llvm::MemoryBufferRef(buf, id); llvm 16 src/LLVM_Runtime_Linker.cpp auto ret_val = llvm::expectedToErrorOr( llvm 17 src/LLVM_Runtime_Linker.cpp llvm::parseBitcodeFile(bitcode_buffer, *context)); llvm 19 src/LLVM_Runtime_Linker.cpp auto ret_val = llvm::parseBitcodeFile(bitcode_buffer, *context); llvm 26 src/LLVM_Runtime_Linker.cpp std::unique_ptr<llvm::Module> result(std::move(*ret_val)); llvm 37 src/LLVM_Runtime_Linker.cpp std::unique_ptr<llvm::Module> get_initmod_##mod(llvm::LLVMContext *context) { \ llvm 38 src/LLVM_Runtime_Linker.cpp llvm::StringRef sb = llvm::StringRef((const char *)halide_internal_initmod_##mod, \ llvm 44 src/LLVM_Runtime_Linker.cpp std::unique_ptr<llvm::Module> get_initmod_##mod(llvm::LLVMContext *, bool, bool) { \ llvm 46 src/LLVM_Runtime_Linker.cpp return std::unique_ptr<llvm::Module>(); \ llvm 48 src/LLVM_Runtime_Linker.cpp std::unique_ptr<llvm::Module> get_initmod_##mod##_ll(llvm::LLVMContext *) { \ llvm 50 src/LLVM_Runtime_Linker.cpp return std::unique_ptr<llvm::Module>(); \ llvm 58 src/LLVM_Runtime_Linker.cpp std::unique_ptr<llvm::Module> get_initmod_##mod(llvm::LLVMContext *context, bool bits_64, bool debug) { \ llvm 222 src/LLVM_Runtime_Linker.cpp llvm::DataLayout get_data_layout_for_target(Target target) { llvm 226 src/LLVM_Runtime_Linker.cpp return llvm::DataLayout("e-m:o-p:32:32-f64:32:64-f80:128-n8:16:32-S128"); llvm 228 src/LLVM_Runtime_Linker.cpp return llvm::DataLayout("e-m:x-p:32:32-i64:64-f80:32-n8:16:32-a:0:32-S32"); llvm 230 src/LLVM_Runtime_Linker.cpp return llvm::DataLayout("e-m:e-p:32:32-i64:64-f80:32-n8:16:32-a:0:32-S32"); llvm 233 src/LLVM_Runtime_Linker.cpp return llvm::DataLayout("e-m:e-p:32:32-f64:32:64-f80:32-n8:16:32-S128"); llvm 237 src/LLVM_Runtime_Linker.cpp return llvm::DataLayout("e-m:o-i64:64-f80:128-n8:16:32:64-S128"); llvm 239 src/LLVM_Runtime_Linker.cpp return llvm::DataLayout("e-m:w-i64:64-f80:128-n8:16:32:64-S128"); llvm 241 src/LLVM_Runtime_Linker.cpp return llvm::DataLayout("e-m:e-i64:64-f80:128-n8:16:32:64-S128"); llvm 243 src/LLVM_Runtime_Linker.cpp return llvm::DataLayout("e-m:e-i64:64-f80:128-n8:16:32:64-S128"); llvm 249 src/LLVM_Runtime_Linker.cpp return llvm::DataLayout("e-m:o-p:32:32-f64:32:64-v64:32:64-v128:32:128-a:0:32-n32-S32"); llvm 251 src/LLVM_Runtime_Linker.cpp return llvm::DataLayout("e-m:e-p:32:32-i64:64-v128:64:128-a:0:32-n32-S64"); llvm 255 src/LLVM_Runtime_Linker.cpp return llvm::DataLayout("e-m:o-i64:64-i128:128-n32:64-S128"); llvm 258 src/LLVM_Runtime_Linker.cpp return llvm::DataLayout("e-m:e-i64:64-i128:128-n32:64-S128"); llvm 260 src/LLVM_Runtime_Linker.cpp return llvm::DataLayout("e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128"); llvm 266 src/LLVM_Runtime_Linker.cpp return llvm::DataLayout("e-m:m-p:32:32-i8:8:32-i16:16:32-i64:64-n32-S64"); llvm 268 src/LLVM_Runtime_Linker.cpp return llvm::DataLayout("e-m:m-i8:8:32-i16:16:32-i64:64-n32:64-S128"); llvm 272 src/LLVM_Runtime_Linker.cpp return llvm::DataLayout("e-m:e-i32:32-n32"); llvm 274 src/LLVM_Runtime_Linker.cpp return llvm::DataLayout("e-m:e-i64:64-n32:64"); llvm 277 src/LLVM_Runtime_Linker.cpp return llvm::DataLayout( llvm 282 src/LLVM_Runtime_Linker.cpp return llvm::DataLayout("unreachable"); llvm 290 src/LLVM_Runtime_Linker.cpp llvm::Triple get_triple_for_target(const Target &target) { llvm 291 src/LLVM_Runtime_Linker.cpp llvm::Triple triple; llvm 295 src/LLVM_Runtime_Linker.cpp triple.setArch(llvm::Triple::x86); llvm 298 src/LLVM_Runtime_Linker.cpp triple.setArch(llvm::Triple::x86_64); llvm 302 src/LLVM_Runtime_Linker.cpp triple.setOS(llvm::Triple::Linux); llvm 303 src/LLVM_Runtime_Linker.cpp triple.setEnvironment(llvm::Triple::GNU); llvm 305 src/LLVM_Runtime_Linker.cpp triple.setVendor(llvm::Triple::Apple); llvm 306 src/LLVM_Runtime_Linker.cpp triple.setOS(llvm::Triple::MacOSX); llvm 308 src/LLVM_Runtime_Linker.cpp triple.setVendor(llvm::Triple::PC); llvm 309 src/LLVM_Runtime_Linker.cpp triple.setOS(llvm::Triple::Win32); llvm 311 src/LLVM_Runtime_Linker.cpp triple.setEnvironment(llvm::Triple::GNU); llvm 313 src/LLVM_Runtime_Linker.cpp triple.setEnvironment(llvm::Triple::MSVC); llvm 317 src/LLVM_Runtime_Linker.cpp triple.setObjectFormat(llvm::Triple::ELF); llvm 320 src/LLVM_Runtime_Linker.cpp triple.setOS(llvm::Triple::Linux); llvm 321 src/LLVM_Runtime_Linker.cpp triple.setEnvironment(llvm::Triple::Android); llvm 324 src/LLVM_Runtime_Linker.cpp triple.setVendor(llvm::Triple::Apple); llvm 325 src/LLVM_Runtime_Linker.cpp triple.setOS(llvm::Triple::IOS); llvm 332 src/LLVM_Runtime_Linker.cpp triple.setArch(llvm::Triple::arm); llvm 337 src/LLVM_Runtime_Linker.cpp triple.setArch(llvm::Triple::aarch64); llvm 344 src/LLVM_Runtime_Linker.cpp triple.setOS(llvm::Triple::Linux); llvm 345 src/LLVM_Runtime_Linker.cpp triple.setEnvironment(llvm::Triple::EABI); llvm 347 src/LLVM_Runtime_Linker.cpp triple.setOS(llvm::Triple::IOS); llvm 348 src/LLVM_Runtime_Linker.cpp triple.setVendor(llvm::Triple::Apple); llvm 350 src/LLVM_Runtime_Linker.cpp triple.setOS(llvm::Triple::Linux); llvm 351 src/LLVM_Runtime_Linker.cpp triple.setEnvironment(llvm::Triple::GNUEABIHF); llvm 358 src/LLVM_Runtime_Linker.cpp triple.setArch(llvm::Triple::mipsel); llvm 361 src/LLVM_Runtime_Linker.cpp triple.setArch(llvm::Triple::mips64el); llvm 365 src/LLVM_Runtime_Linker.cpp triple.setOS(llvm::Triple::Linux); llvm 366 src/LLVM_Runtime_Linker.cpp triple.setEnvironment(llvm::Triple::Android); llvm 374 src/LLVM_Runtime_Linker.cpp triple.setVendor(llvm::Triple::UnknownVendor); llvm 375 src/LLVM_Runtime_Linker.cpp triple.setOS(llvm::Triple::Linux); llvm 376 src/LLVM_Runtime_Linker.cpp triple.setEnvironment(llvm::Triple::GNU); llvm 378 src/LLVM_Runtime_Linker.cpp triple.setArch(llvm::Triple::ppc); llvm 382 src/LLVM_Runtime_Linker.cpp triple.setArch(llvm::Triple::ppc64le); llvm 388 src/LLVM_Runtime_Linker.cpp triple.setVendor(llvm::Triple::UnknownVendor); llvm 389 src/LLVM_Runtime_Linker.cpp triple.setArch(llvm::Triple::hexagon); llvm 390 src/LLVM_Runtime_Linker.cpp triple.setObjectFormat(llvm::Triple::ELF); llvm 405 src/LLVM_Runtime_Linker.cpp void link_modules(std::vector<std::unique_ptr<llvm::Module>> &modules, Target t) { llvm 407 src/LLVM_Runtime_Linker.cpp llvm::DataLayout data_layout = get_data_layout_for_target(t); llvm 408 src/LLVM_Runtime_Linker.cpp llvm::Triple triple = Internal::get_triple_for_target(t); llvm 420 src/LLVM_Runtime_Linker.cpp bool failed = llvm::Linker::linkModules(*modules[0], llvm 423 src/LLVM_Runtime_Linker.cpp bool failed = llvm::Linker::LinkModules(modules[0].get(), llvm 456 src/LLVM_Runtime_Linker.cpp llvm::GlobalValue::LinkageTypes linkage = gv.getLinkage(); llvm 457 src/LLVM_Runtime_Linker.cpp if (linkage == llvm::GlobalValue::WeakAnyLinkage) { llvm 458 src/LLVM_Runtime_Linker.cpp gv.setLinkage(llvm::GlobalValue::LinkOnceAnyLinkage); llvm 459 src/LLVM_Runtime_Linker.cpp } else if (linkage == llvm::GlobalValue::WeakODRLinkage) { llvm 460 src/LLVM_Runtime_Linker.cpp gv.setLinkage(llvm::GlobalValue::LinkOnceODRLinkage); llvm 478 src/LLVM_Runtime_Linker.cpp llvm::GlobalValue::LinkageTypes linkage = f.getLinkage(); llvm 480 src/LLVM_Runtime_Linker.cpp if (linkage == llvm::GlobalValue::WeakAnyLinkage) { llvm 481 src/LLVM_Runtime_Linker.cpp f.setLinkage(llvm::GlobalValue::LinkOnceAnyLinkage); llvm 482 src/LLVM_Runtime_Linker.cpp } else if (linkage == llvm::GlobalValue::WeakODRLinkage) { llvm 483 src/LLVM_Runtime_Linker.cpp f.setLinkage(llvm::GlobalValue::LinkOnceODRLinkage); llvm 490 src/LLVM_Runtime_Linker.cpp llvm::GlobalValue *llvm_used = modules[0]->getNamedGlobal("llvm.used"); llvm 498 src/LLVM_Runtime_Linker.cpp llvm::GlobalValue *runtime_api = llvm 513 src/LLVM_Runtime_Linker.cpp void undo_win32_name_mangling(llvm::Module *m) { llvm 514 src/LLVM_Runtime_Linker.cpp llvm::IRBuilder<> builder(m->getContext()); llvm 516 src/LLVM_Runtime_Linker.cpp for (llvm::Module::iterator iter = m->begin(); iter != m->end(); ++iter) { llvm 517 src/LLVM_Runtime_Linker.cpp llvm::Function &f = *iter; llvm 520 src/LLVM_Runtime_Linker.cpp if (f.getCallingConv() == llvm::CallingConv::X86_StdCall && llvm 530 src/LLVM_Runtime_Linker.cpp llvm::Function *unmangled = llvm::Function::Create(f.getFunctionType(), f.getLinkage(), unmangled_name, m); llvm 534 src/LLVM_Runtime_Linker.cpp llvm::BasicBlock *block = llvm::BasicBlock::Create(m->getContext(), "entry", &f); llvm 537 src/LLVM_Runtime_Linker.cpp vector<llvm::Value *> args; llvm 542 src/LLVM_Runtime_Linker.cpp llvm::CallInst *c = builder.CreateCall(unmangled, args); llvm 554 src/LLVM_Runtime_Linker.cpp void add_underscore_to_posix_call(llvm::CallInst *call, llvm::Function *fn, llvm::Module *m) { llvm 556 src/LLVM_Runtime_Linker.cpp llvm::Function *alt = m->getFunction(new_name); llvm 558 src/LLVM_Runtime_Linker.cpp alt = llvm::Function::Create(fn->getFunctionType(), llvm 559 src/LLVM_Runtime_Linker.cpp llvm::GlobalValue::ExternalLinkage, llvm 570 src/LLVM_Runtime_Linker.cpp void add_underscores_to_posix_calls_on_windows(llvm::Module *m) { llvm 579 src/LLVM_Runtime_Linker.cpp if (llvm::CallInst *call = llvm::dyn_cast<llvm::CallInst>(&instruction)) { llvm 580 src/LLVM_Runtime_Linker.cpp if (llvm::Function *called_fn = call->getCalledFunction()) { llvm 592 src/LLVM_Runtime_Linker.cpp std::unique_ptr<llvm::Module> get_initial_module_for_target(Target t, llvm::LLVMContext *c, bool for_shared_jit_runtime, bool just_gpu) { llvm 621 src/LLVM_Runtime_Linker.cpp vector<std::unique_ptr<llvm::Module>> modules; llvm 898 src/LLVM_Runtime_Linker.cpp std::unique_ptr<llvm::Module> get_initial_module_for_ptx_device(Target target, llvm::LLVMContext *c) { llvm 899 src/LLVM_Runtime_Linker.cpp std::vector<std::unique_ptr<llvm::Module>> modules; llvm 902 src/LLVM_Runtime_Linker.cpp std::unique_ptr<llvm::Module> module; llvm 923 src/LLVM_Runtime_Linker.cpp for (llvm::Module::iterator iter = modules[0]->begin(); iter != modules[0]->end(); iter++) { llvm 924 src/LLVM_Runtime_Linker.cpp llvm::Function &f = *iter; llvm 937 src/LLVM_Runtime_Linker.cpp if (!f.isDeclaration() && !f.hasFnAttribute(llvm::Attribute::NoInline)) { llvm 938 src/LLVM_Runtime_Linker.cpp f.setLinkage(llvm::GlobalValue::AvailableExternallyLinkage); llvm 943 src/LLVM_Runtime_Linker.cpp f.addFnAttr(llvm::Attribute::NoDuplicate); llvm 947 src/LLVM_Runtime_Linker.cpp llvm::Triple triple("nvptx64--"); llvm 950 src/LLVM_Runtime_Linker.cpp llvm::DataLayout dl("e-i64:64-v16:16-v32:32-n16:32:64"); llvm 957 src/LLVM_Runtime_Linker.cpp void add_bitcode_to_module(llvm::LLVMContext *context, llvm::Module &module, llvm 959 src/LLVM_Runtime_Linker.cpp llvm::StringRef sb = llvm::StringRef((const char *)&bitcode[0], bitcode.size()); llvm 960 src/LLVM_Runtime_Linker.cpp std::unique_ptr<llvm::Module> add_in = parse_bitcode_file(sb, context, name.c_str()); llvm 963 src/LLVM_Runtime_Linker.cpp bool failed = llvm::Linker::linkModules(module, std::move(add_in)); llvm 965 src/LLVM_Runtime_Linker.cpp bool failed = llvm::Linker::LinkModules(&module, add_in.release()); llvm 11 src/LLVM_Runtime_Linker.h namespace llvm { llvm 21 src/LLVM_Runtime_Linker.h llvm::Triple get_triple_for_target(const Target &target); llvm 24 src/LLVM_Runtime_Linker.h std::unique_ptr<llvm::Module> get_initial_module_for_target(Target, llvm::LLVMContext *, bool for_shared_jit_runtime = false, bool just_gpu = false); llvm 27 src/LLVM_Runtime_Linker.h std::unique_ptr<llvm::Module> get_initial_module_for_ptx_device(Target, llvm::LLVMContext *c); llvm 30 src/LLVM_Runtime_Linker.h void add_bitcode_to_module(llvm::LLVMContext *context, llvm::Module &module, llvm 4 src/MatlabWrapper.cpp using namespace llvm; llvm 10 src/MatlabWrapper.cpp llvm::Function *define_matlab_wrapper(llvm::Module *module, llvm 11 src/MatlabWrapper.cpp llvm::Function *pipeline_argv_wrapper, llvm 12 src/MatlabWrapper.cpp llvm::Function *metadata_getter) { llvm 18 src/MatlabWrapper.cpp llvm::Function *call_pipeline = module->getFunction("halide_matlab_call_pipeline"); llvm 21 src/MatlabWrapper.cpp llvm::Type *void_ty = llvm::Type::getVoidTy(ctx); llvm 22 src/MatlabWrapper.cpp llvm::Type *i8_ty = llvm::Type::getInt8Ty(ctx); llvm 23 src/MatlabWrapper.cpp llvm::Type *i32_ty = llvm::Type::getInt32Ty(ctx); llvm 26 src/MatlabWrapper.cpp llvm::Type *mxArray_ty = module->getTypeByName("struct.mxArray"); llvm 28 src/MatlabWrapper.cpp llvm::Type *mxArray_ptr_ty = mxArray_ty->getPointerTo(); llvm 29 src/MatlabWrapper.cpp llvm::Type *mxArray_ptr_ptr_ty = mxArray_ptr_ty->getPointerTo(); llvm 33 src/MatlabWrapper.cpp llvm::Type *mex_arg_types[] = { llvm 40 src/MatlabWrapper.cpp llvm::Function *mex = llvm::Function::Create(mex_ty, llvm::GlobalValue::ExternalLinkage, "mexFunction", module); llvm 47 src/MatlabWrapper.cpp llvm::CallInst *metadata_ptr = ir.CreateCall(metadata_getter); llvm 50 src/MatlabWrapper.cpp llvm::Function::arg_iterator mex_args = mex->arg_begin(); llvm 11 src/MatlabWrapper.h namespace llvm { llvm 23 src/MatlabWrapper.h EXPORT llvm::Function *define_matlab_wrapper(llvm::Module *module, llvm 24 src/MatlabWrapper.h llvm::Function *pipeline_argv_wrapper, llvm 25 src/MatlabWrapper.h llvm::Function *metadata_getter); llvm 245 src/Module.cpp llvm::LLVMContext context; llvm 246 src/Module.cpp std::unique_ptr<llvm::Module> llvm_module(compile_module_to_llvm_module(*this, context)); llvm 248 src/Module.cpp llvm::SmallVector<char, 4096> object; llvm 249 src/Module.cpp llvm::raw_svector_ostream object_stream(object); llvm 254 src/Module.cpp llvm::SmallString<4096> assembly; llvm 255 src/Module.cpp llvm::raw_svector_ostream assembly_stream(assembly); llvm 318 src/Module.cpp llvm::LLVMContext context; llvm 319 src/Module.cpp std::unique_ptr<llvm::Module> llvm_module(compile_module_to_llvm_module(*this, context));