• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /freebsd-13-stable/contrib/llvm-project/llvm/lib/Target/AMDGPU/

Lines Matching defs:Arg

271   for (auto &Arg : Func.args())
272 emitKernelArg(Arg);
277 void MetadataStreamerV2::emitKernelArg(const Argument &Arg) {
278 auto Func = Arg.getParent();
279 auto ArgNo = Arg.getArgNo();
286 else if (Arg.hasName())
287 Name = Arg.getName();
300 if (Arg.getType()->isPointerTy() && Arg.onlyReadsMemory() &&
301 Arg.hasNoAliasAttr()) {
314 Type *Ty = Arg.getType();
320 PointeeAlign = DL.getValueOrABITypeAlignment(Arg.getParamAlign(),
325 emitKernelArg(DL, Ty, getValueKind(Arg.getType(), TypeQual, BaseTypeName),
335 HSAMetadata.mKernels.back().mArgs.push_back(Kernel::Arg::Metadata());
336 auto &Arg = HSAMetadata.mKernels.back().mArgs.back();
338 Arg.mName = std::string(Name);
339 Arg.mTypeName = std::string(TypeName);
340 Arg.mSize = DL.getTypeAllocSize(Ty);
341 Arg.mAlign = DL.getABITypeAlign(Ty).value();
342 Arg.mValueKind = ValueKind;
343 Arg.mPointeeAlign = PointeeAlign ? PointeeAlign->value() : 0;
346 Arg.mAddrSpaceQual = getAddressSpaceQualifier(PtrTy->getAddressSpace());
348 Arg.mAccQual = getAccessQualifier(AccQual);
350 // TODO: Emit Arg.mActualAccQual.
356 .Case("const", &Arg.mIsConst)
357 .Case("restrict", &Arg.mIsRestrict)
358 .Case("volatile", &Arg.mIsVolatile)
359 .Case("pipe", &Arg.mIsPipe)
656 for (auto &Arg : Func.args())
657 emitKernelArg(Arg, Offset, Args);
664 void MetadataStreamerV3::emitKernelArg(const Argument &Arg, unsigned &Offset,
666 auto Func = Arg.getParent();
667 auto ArgNo = Arg.getArgNo();
674 else if (Arg.hasName())
675 Name = Arg.getName();
688 if (Arg.getType()->isPointerTy() && Arg.onlyReadsMemory() &&
689 Arg.hasNoAliasAttr()) {
702 Type *Ty = Arg.getType();
708 PointeeAlign = DL.getValueOrABITypeAlignment(Arg.getParamAlign(),
713 emitKernelArg(Func->getParent()->getDataLayout(), Arg.getType(),
714 getValueKind(Arg.getType(), TypeQual, BaseTypeName), Offset,
726 auto Arg = Args.getDocument()->getMapNode();
729 Arg[".name"] = Arg.getDocument()->getNode(Name, /*Copy=*/true);
731 Arg[".type_name"] = Arg.getDocument()->getNode(TypeName, /*Copy=*/true);
734 Arg[".size"] = Arg.getDocument()->getNode(Size);
736 Arg[".offset"] = Arg.getDocument()->getNode(Offset);
738 Arg[".value_kind"] = Arg.getDocument()->getNode(ValueKind, /*Copy=*/true);
740 Arg[".pointee_align"] = Arg.getDocument()->getNode(PointeeAlign->value());
744 Arg[".address_space"] = Arg.getDocument()->getNode(*Qualifier, /*Copy=*/true);
747 Arg[".access"] = Arg.getDocument()->getNode(*AQ, /*Copy=*/true);
749 // TODO: Emit Arg[".actual_access"].
755 Arg[".is_const"] = Arg.getDocument()->getNode(true);
757 Arg[".is_restrict"] = Arg.getDocument()->getNode(true);
759 Arg[".is_volatile"] = Arg.getDocument()->getNode(true);
761 Arg[".is_pipe"] = Arg.getDocument()->getNode(true);
764 Args.push_back(Arg);