Lines Matching refs:Arg
171 void handleByValParam(const NVPTXTargetMachine &TM, Argument *Arg);
327 static void adjustByValArgAlignment(Argument *Arg, Value *ArgInParamAS, in adjustByValArgAlignment() argument
329 Function *Func = Arg->getParent(); in adjustByValArgAlignment()
330 Type *StructType = Arg->getParamByValType(); in adjustByValArgAlignment()
336 Arg->getAttribute(Attribute::Alignment).getValueAsInt(); in adjustByValArgAlignment()
342 << CurArgAlign << " for " << *Arg << '\n'); in adjustByValArgAlignment()
346 Arg->removeAttr(Attribute::Alignment); in adjustByValArgAlignment()
347 Arg->addAttr(NewAlignAttr); in adjustByValArgAlignment()
362 bool IsGridConstant = isParamGridConstant(*Arg); in adjustByValArgAlignment()
413 Argument *Arg) { in handleByValParam() argument
414 bool IsGridConstant = isParamGridConstant(*Arg); in handleByValParam()
415 Function *Func = Arg->getParent(); in handleByValParam()
417 Type *StructType = Arg->getParamByValType(); in handleByValParam()
442 << (isParamGridConstant(*Arg) ? "cast " : "copy ") in handleByValParam()
443 << "of " << *Arg << " because of " << *V << "\n"); in handleByValParam()
444 (void)Arg; in handleByValParam()
454 if (llvm::all_of(Arg->users(), AreSupportedUsers)) { in handleByValParam()
458 for (Use &U : Arg->uses()) in handleByValParam()
462 Arg, PointerType::get(StructType, ADDRESS_SPACE_PARAM), Arg->getName(), in handleByValParam()
466 LLVM_DEBUG(dbgs() << "No need to copy or cast " << *Arg << "\n"); in handleByValParam()
471 adjustByValArgAlignment(Arg, ArgInParamAS, TLI); in handleByValParam()
478 if (isParamGridConstant(*Arg)) { in handleByValParam()
487 Arg, IRB.getPtrTy(ADDRESS_SPACE_PARAM), Arg->getName() + ".param")); in handleByValParam()
498 Arg->replaceAllUsesWith(CvtToGenCall); in handleByValParam()
501 CastToParam->setOperand(0, Arg); in handleByValParam()
505 new AllocaInst(StructType, AS, Arg->getName(), FirstInst); in handleByValParam()
509 AllocA->setAlignment(Func->getParamAlign(Arg->getArgNo()) in handleByValParam()
511 Arg->replaceAllUsesWith(AllocA); in handleByValParam()
514 Arg, PointerType::get(Arg->getContext(), ADDRESS_SPACE_PARAM), in handleByValParam()
515 Arg->getName(), FirstInst); in handleByValParam()
520 new LoadInst(StructType, ArgInParam, Arg->getName(), in handleByValParam()
532 if (Argument *Arg = dyn_cast<Argument>(Ptr)) { in markPointerAsGlobal() local
534 InsertPt = Arg->getParent()->getEntryBlock().begin(); in markPointerAsGlobal()
575 if (Argument *Arg = dyn_cast<Argument>(UO)) { in runOnKernelFunction() local
576 if (Arg->hasByValAttr()) { in runOnKernelFunction()
591 for (Argument &Arg : F.args()) { in runOnKernelFunction()
592 if (Arg.getType()->isPointerTy()) { in runOnKernelFunction()
593 if (Arg.hasByValAttr()) in runOnKernelFunction()
594 handleByValParam(TM, &Arg); in runOnKernelFunction()
596 markPointerAsGlobal(&Arg); in runOnKernelFunction()
597 } else if (Arg.getType()->isIntegerTy() && in runOnKernelFunction()
599 HandleIntToPtr(Arg); in runOnKernelFunction()
609 for (Argument &Arg : F.args()) in runOnDeviceFunction()
610 if (Arg.getType()->isPointerTy() && Arg.hasByValAttr()) in runOnDeviceFunction()
611 handleByValParam(TM, &Arg); in runOnDeviceFunction()