Lines Matching refs:Func
246 void MetadataStreamerV2::emitKernelLanguage(const Function &Func) { in emitKernelLanguage() argument
250 auto Node = Func.getParent()->getNamedMetadata("opencl.ocl.version"); in emitKernelLanguage()
264 void MetadataStreamerV2::emitKernelAttrs(const Function &Func) { in emitKernelAttrs() argument
267 if (auto Node = Func.getMetadata("reqd_work_group_size")) in emitKernelAttrs()
269 if (auto Node = Func.getMetadata("work_group_size_hint")) in emitKernelAttrs()
271 if (auto Node = Func.getMetadata("vec_type_hint")) { in emitKernelAttrs()
276 if (Func.hasFnAttribute("runtime-handle")) { in emitKernelAttrs()
278 Func.getFnAttribute("runtime-handle").getValueAsString().str(); in emitKernelAttrs()
282 void MetadataStreamerV2::emitKernelArgs(const Function &Func) { in emitKernelArgs() argument
283 for (auto &Arg : Func.args()) in emitKernelArgs()
286 emitHiddenKernelArgs(Func); in emitKernelArgs()
290 auto Func = Arg.getParent(); in emitKernelArg() local
295 Node = Func->getMetadata("kernel_arg_name"); in emitKernelArg()
302 Node = Func->getMetadata("kernel_arg_type"); in emitKernelArg()
307 Node = Func->getMetadata("kernel_arg_base_type"); in emitKernelArg()
316 Node = Func->getMetadata("kernel_arg_access_qual"); in emitKernelArg()
322 Node = Func->getMetadata("kernel_arg_type_qual"); in emitKernelArg()
326 const DataLayout &DL = Func->getParent()->getDataLayout(); in emitKernelArg()
383 void MetadataStreamerV2::emitHiddenKernelArgs(const Function &Func) { in emitHiddenKernelArgs() argument
385 getIntegerAttribute(Func, "amdgpu-implicitarg-num-bytes", 0); in emitHiddenKernelArgs()
390 auto &DL = Func.getParent()->getDataLayout(); in emitHiddenKernelArgs()
391 auto Int64Ty = Type::getInt64Ty(Func.getContext()); in emitHiddenKernelArgs()
400 auto Int8PtrTy = Type::getInt8PtrTy(Func.getContext(), in emitHiddenKernelArgs()
406 if (Func.getParent()->getNamedMetadata("llvm.printf.fmts")) in emitHiddenKernelArgs()
408 else if (Func.getParent()->getFunction("__ockl_hostcall_internal")) { in emitHiddenKernelArgs()
411 assert(!Func.getParent()->getNamedMetadata("llvm.printf.fmts")); in emitHiddenKernelArgs()
420 if (Func.hasFnAttribute("calls-enqueue-kernel")) { in emitHiddenKernelArgs()
457 auto &Func = MF.getFunction(); in emitKernel() local
458 if (Func.getCallingConv() != CallingConv::AMDGPU_KERNEL) in emitKernel()
467 Kernel.mName = std::string(Func.getName()); in emitKernel()
468 Kernel.mSymbolName = (Twine(Func.getName()) + Twine("@kd")).str(); in emitKernel()
469 emitKernelLanguage(Func); in emitKernel()
470 emitKernelAttrs(Func); in emitKernel()
471 emitKernelArgs(Func); in emitKernel()
630 void MetadataStreamerV3::emitKernelLanguage(const Function &Func, in emitKernelLanguage() argument
633 auto Node = Func.getParent()->getNamedMetadata("opencl.ocl.version"); in emitKernelLanguage()
649 void MetadataStreamerV3::emitKernelAttrs(const Function &Func, in emitKernelAttrs() argument
652 if (auto Node = Func.getMetadata("reqd_work_group_size")) in emitKernelAttrs()
654 if (auto Node = Func.getMetadata("work_group_size_hint")) in emitKernelAttrs()
656 if (auto Node = Func.getMetadata("vec_type_hint")) { in emitKernelAttrs()
663 if (Func.hasFnAttribute("runtime-handle")) { in emitKernelAttrs()
665 Func.getFnAttribute("runtime-handle").getValueAsString().str(), in emitKernelAttrs()
670 void MetadataStreamerV3::emitKernelArgs(const Function &Func, in emitKernelArgs() argument
674 for (auto &Arg : Func.args()) in emitKernelArgs()
677 emitHiddenKernelArgs(Func, Offset, Args); in emitKernelArgs()
684 auto Func = Arg.getParent(); in emitKernelArg() local
689 Node = Func->getMetadata("kernel_arg_name"); in emitKernelArg()
696 Node = Func->getMetadata("kernel_arg_type"); in emitKernelArg()
701 Node = Func->getMetadata("kernel_arg_base_type"); in emitKernelArg()
710 Node = Func->getMetadata("kernel_arg_access_qual"); in emitKernelArg()
716 Node = Func->getMetadata("kernel_arg_type_qual"); in emitKernelArg()
720 const DataLayout &DL = Func->getParent()->getDataLayout(); in emitKernelArg()
788 void MetadataStreamerV3::emitHiddenKernelArgs(const Function &Func, in emitHiddenKernelArgs() argument
792 getIntegerAttribute(Func, "amdgpu-implicitarg-num-bytes", 0); in emitHiddenKernelArgs()
797 auto &DL = Func.getParent()->getDataLayout(); in emitHiddenKernelArgs()
798 auto Int64Ty = Type::getInt64Ty(Func.getContext()); in emitHiddenKernelArgs()
811 Type::getInt8PtrTy(Func.getContext(), AMDGPUAS::GLOBAL_ADDRESS); in emitHiddenKernelArgs()
816 if (Func.getParent()->getNamedMetadata("llvm.printf.fmts")) in emitHiddenKernelArgs()
819 else if (Func.getParent()->getFunction("__ockl_hostcall_internal")) { in emitHiddenKernelArgs()
822 assert(!Func.getParent()->getNamedMetadata("llvm.printf.fmts")); in emitHiddenKernelArgs()
832 if (Func.hasFnAttribute("calls-enqueue-kernel")) { in emitHiddenKernelArgs()
905 auto &Func = MF.getFunction(); in emitKernel() local
908 assert(Func.getCallingConv() == CallingConv::AMDGPU_KERNEL || in emitKernel()
909 Func.getCallingConv() == CallingConv::SPIR_KERNEL); in emitKernel()
915 Kern[".name"] = Kern.getDocument()->getNode(Func.getName()); in emitKernel()
917 (Twine(Func.getName()) + Twine(".kd")).str(), /*Copy=*/true); in emitKernel()
918 emitKernelLanguage(Func, Kern); in emitKernel()
919 emitKernelAttrs(Func, Kern); in emitKernel()
920 emitKernelArgs(Func, Kern); in emitKernel()