Lines Matching refs:Arg

24 static std::pair<Type *, Align> getArgumentTypeAlign(const Argument &Arg,  in getArgumentTypeAlign()  argument
26 Type *Ty = Arg.getType(); in getArgumentTypeAlign()
28 if (Arg.hasByRefAttr()) { in getArgumentTypeAlign()
29 Ty = Arg.getParamByRefType(); in getArgumentTypeAlign()
30 ArgAlign = Arg.getParamAlign(); in getArgumentTypeAlign()
262 for (auto &Arg : Func.args()) in emitKernelArgs() local
263 emitKernelArg(Arg, Offset, Args); in emitKernelArgs()
270 void MetadataStreamerMsgPackV4::emitKernelArg(const Argument &Arg, in emitKernelArg() argument
273 auto Func = Arg.getParent(); in emitKernelArg()
274 auto ArgNo = Arg.getArgNo(); in emitKernelArg()
281 else if (Arg.hasName()) in emitKernelArg()
282 Name = Arg.getName(); in emitKernelArg()
296 if (Arg.getType()->isPointerTy() && Arg.hasNoAliasAttr()) { in emitKernelArg()
297 if (Arg.onlyReadsMemory()) in emitKernelArg()
299 else if (Arg.hasAttribute(Attribute::WriteOnly)) in emitKernelArg()
316 Type *Ty = Arg.hasByRefAttr() ? Arg.getParamByRefType() : Arg.getType(); in emitKernelArg()
321 PointeeAlign = Arg.getParamAlign().valueOrOne(); in emitKernelArg()
327 std::tie(ArgTy, ArgAlign) = getArgumentTypeAlign(Arg, DL); in emitKernelArg()
340 auto Arg = Args.getDocument()->getMapNode(); in emitKernelArg() local
343 Arg[".name"] = Arg.getDocument()->getNode(Name, /*Copy=*/true); in emitKernelArg()
345 Arg[".type_name"] = Arg.getDocument()->getNode(TypeName, /*Copy=*/true); in emitKernelArg()
347 Arg[".size"] = Arg.getDocument()->getNode(Size); in emitKernelArg()
349 Arg[".offset"] = Arg.getDocument()->getNode(Offset); in emitKernelArg()
351 Arg[".value_kind"] = Arg.getDocument()->getNode(ValueKind, /*Copy=*/true); in emitKernelArg()
353 Arg[".pointee_align"] = Arg.getDocument()->getNode(PointeeAlign->value()); in emitKernelArg()
359 Arg[".address_space"] = Arg.getDocument()->getNode(*Qualifier, in emitKernelArg()
363 Arg[".access"] = Arg.getDocument()->getNode(*AQ, /*Copy=*/true); in emitKernelArg()
366 Arg[".actual_access"] = Arg.getDocument()->getNode(*AAQ, /*Copy=*/true); in emitKernelArg()
372 Arg[".is_const"] = Arg.getDocument()->getNode(true); in emitKernelArg()
374 Arg[".is_restrict"] = Arg.getDocument()->getNode(true); in emitKernelArg()
376 Arg[".is_volatile"] = Arg.getDocument()->getNode(true); in emitKernelArg()
378 Arg[".is_pipe"] = Arg.getDocument()->getNode(true); in emitKernelArg()
381 Args.push_back(Arg); in emitKernelArg()