Lines Matching refs:Arg
26 static std::pair<Type *, Align> getArgumentTypeAlign(const Argument &Arg,
28 Type *Ty = Arg.getType();
30 if (Arg.hasByRefAttr()) {
31 Ty = Arg.getParamByRefType();
32 ArgAlign = Arg.getParamAlign();
263 for (auto &Arg : Func.args()) {
264 if (Arg.hasAttribute("amdgpu-hidden-argument"))
267 emitKernelArg(Arg, Offset, Args);
275 void MetadataStreamerMsgPackV4::emitKernelArg(const Argument &Arg,
278 const auto *Func = Arg.getParent();
279 auto ArgNo = Arg.getArgNo();
286 else if (Arg.hasName())
287 Name = Arg.getName();
301 if (Arg.getType()->isPointerTy() && Arg.hasNoAliasAttr()) {
302 if (Arg.onlyReadsMemory())
304 else if (Arg.hasAttribute(Attribute::WriteOnly))
321 Type *Ty = Arg.hasByRefAttr() ? Arg.getParamByRefType() : Arg.getType();
326 PointeeAlign = Arg.getParamAlign().valueOrOne();
332 std::tie(ArgTy, ArgAlign) = getArgumentTypeAlign(Arg, DL);
345 auto Arg = Args.getDocument()->getMapNode();
348 Arg[".name"] = Arg.getDocument()->getNode(Name, /*Copy=*/true);
350 Arg[".type_name"] = Arg.getDocument()->getNode(TypeName, /*Copy=*/true);
352 Arg[".size"] = Arg.getDocument()->getNode(Size);
354 Arg[".offset"] = Arg.getDocument()->getNode(Offset);
356 Arg[".value_kind"] = Arg.getDocument()->getNode(ValueKind, /*Copy=*/true);
358 Arg[".pointee_align"] = Arg.getDocument()->getNode(PointeeAlign->value());
364 Arg[".address_space"] = Arg.getDocument()->getNode(*Qualifier,
368 Arg[".access"] = Arg.getDocument()->getNode(*AQ, /*Copy=*/true);
371 Arg[".actual_access"] = Arg.getDocument()->getNode(*AAQ, /*Copy=*/true);
377 Arg[".is_const"] = Arg.getDocument()->getNode(true);
379 Arg[".is_restrict"] = Arg.getDocument()->getNode(true);
381 Arg[".is_volatile"] = Arg.getDocument()->getNode(true);
383 Arg[".is_pipe"] = Arg.getDocument()->getNode(true);
386 Args.push_back(Arg);