Lines Matching refs:Arg
26 static std::pair<Type *, Align> getArgumentTypeAlign(const Argument &Arg, in getArgumentTypeAlign() argument
28 Type *Ty = Arg.getType(); in getArgumentTypeAlign()
30 if (Arg.hasByRefAttr()) { in getArgumentTypeAlign()
31 Ty = Arg.getParamByRefType(); in getArgumentTypeAlign()
32 ArgAlign = Arg.getParamAlign(); in getArgumentTypeAlign()
263 for (auto &Arg : Func.args()) in emitKernelArgs() local
264 emitKernelArg(Arg, Offset, Args); in emitKernelArgs()
271 void MetadataStreamerMsgPackV4::emitKernelArg(const Argument &Arg, in emitKernelArg() argument
274 auto Func = Arg.getParent(); in emitKernelArg()
275 auto ArgNo = Arg.getArgNo(); in emitKernelArg()
282 else if (Arg.hasName()) in emitKernelArg()
283 Name = Arg.getName(); in emitKernelArg()
297 if (Arg.getType()->isPointerTy() && Arg.hasNoAliasAttr()) { in emitKernelArg()
298 if (Arg.onlyReadsMemory()) in emitKernelArg()
300 else if (Arg.hasAttribute(Attribute::WriteOnly)) in emitKernelArg()
317 Type *Ty = Arg.hasByRefAttr() ? Arg.getParamByRefType() : Arg.getType(); in emitKernelArg()
322 PointeeAlign = Arg.getParamAlign().valueOrOne(); in emitKernelArg()
328 std::tie(ArgTy, ArgAlign) = getArgumentTypeAlign(Arg, DL); in emitKernelArg()
341 auto Arg = Args.getDocument()->getMapNode(); in emitKernelArg() local
344 Arg[".name"] = Arg.getDocument()->getNode(Name, /*Copy=*/true); in emitKernelArg()
346 Arg[".type_name"] = Arg.getDocument()->getNode(TypeName, /*Copy=*/true); in emitKernelArg()
348 Arg[".size"] = Arg.getDocument()->getNode(Size); in emitKernelArg()
350 Arg[".offset"] = Arg.getDocument()->getNode(Offset); in emitKernelArg()
352 Arg[".value_kind"] = Arg.getDocument()->getNode(ValueKind, /*Copy=*/true); in emitKernelArg()
354 Arg[".pointee_align"] = Arg.getDocument()->getNode(PointeeAlign->value()); in emitKernelArg()
360 Arg[".address_space"] = Arg.getDocument()->getNode(*Qualifier, in emitKernelArg()
364 Arg[".access"] = Arg.getDocument()->getNode(*AQ, /*Copy=*/true); in emitKernelArg()
367 Arg[".actual_access"] = Arg.getDocument()->getNode(*AAQ, /*Copy=*/true); in emitKernelArg()
373 Arg[".is_const"] = Arg.getDocument()->getNode(true); in emitKernelArg()
375 Arg[".is_restrict"] = Arg.getDocument()->getNode(true); in emitKernelArg()
377 Arg[".is_volatile"] = Arg.getDocument()->getNode(true); in emitKernelArg()
379 Arg[".is_pipe"] = Arg.getDocument()->getNode(true); in emitKernelArg()
382 Args.push_back(Arg); in emitKernelArg()