Lines Matching defs:OutlinedFn

745     Function *OutlinedFn = Extractor.extractCodeRegion(CEAC);
750 OutlinedFn->addFnAttr(TargetCpuAttr);
754 OutlinedFn->addFnAttr(TargetFeaturesAttr);
757 LLVM_DEBUG(dbgs() << " Outlined function: " << *OutlinedFn << "\n");
758 assert(OutlinedFn->getReturnType()->isVoidTy() &&
763 OutlinedFn->removeFromParent();
764 M.getFunctionList().insertAfter(OuterFn->getIterator(), OutlinedFn);
769 BasicBlock &ArtificialEntry = OutlinedFn->getEntryBlock();
794 assert(&OutlinedFn->getEntryBlock() == OI.EntryBB);
795 assert(OutlinedFn && OutlinedFn->getNumUses() == 1);
799 OI.PostOutlineCB(*OutlinedFn);
1253 // We need to use this callback to replace call to the OutlinedFn in OuterFn
1256 OpenMPIRBuilder *OMPIRBuilder, Function &OutlinedFn, Function *OuterFn,
1262 OutlinedFn.addParamAttr(0, Attribute::NoAlias);
1263 OutlinedFn.addParamAttr(1, Attribute::NoAlias);
1264 OutlinedFn.addParamAttr(0, Attribute::NoUndef);
1265 OutlinedFn.addParamAttr(1, Attribute::NoUndef);
1266 OutlinedFn.addFnAttr(Attribute::NoUnwind);
1268 assert(OutlinedFn.arg_size() >= 2 &&
1270 unsigned NumCapturedVars = OutlinedFn.arg_size() - /* tid & bounded tid */ 2;
1272 CallInst *CI = cast<CallInst>(OutlinedFn.user_back());
1312 Builder.CreateBitCast(&OutlinedFn, OMPIRBuilder->ParallelTaskPtr),
1327 Function::arg_iterator OutlinedAI = OutlinedFn.arg_begin();
1341 // We need to use this callback to replace call to the OutlinedFn in OuterFn
1344 hostParallelCallback(OpenMPIRBuilder *OMPIRBuilder, Function &OutlinedFn,
1373 OutlinedFn.addParamAttr(0, Attribute::NoAlias);
1374 OutlinedFn.addParamAttr(1, Attribute::NoAlias);
1375 OutlinedFn.addFnAttr(Attribute::NoUnwind);
1377 assert(OutlinedFn.arg_size() >= 2 &&
1379 unsigned NumCapturedVars = OutlinedFn.arg_size() - /* tid & bounded tid */ 2;
1381 CallInst *CI = cast<CallInst>(OutlinedFn.user_back());
1388 Builder.CreateBitCast(&OutlinedFn, OMPIRBuilder->ParallelTaskPtr)};
1415 Function::arg_iterator OutlinedAI = OutlinedFn.arg_begin();
1577 std::move(ToBeDeleted)](Function &OutlinedFn) {
1578 targetParallelCallback(this, OutlinedFn, OuterFn, OuterAllocaBlock, Ident,
1585 std::move(ToBeDeleted)](Function &OutlinedFn) {
1586 hostParallelCallback(this, OutlinedFn, OuterFn, Ident, IfCondition,
1928 ToBeDeleted](Function &OutlinedFn) mutable {
1930 assert(OutlinedFn.getNumUses() == 1 &&
1932 CallInst *StaleCI = cast<CallInst>(OutlinedFn.user_back());
2000 /*task_func=*/&OutlinedFn});
2138 CI = Builder.CreateCall(&OutlinedFn, {ThreadID, TaskData});
2140 CI = Builder.CreateCall(&OutlinedFn, {ThreadID});
2165 LoadInst *Shareds = Builder.CreateLoad(VoidPtr, OutlinedFn.getArg(1));
2166 OutlinedFn.getArg(1)->replaceUsesWithIf(
4470 Function &OutlinedFn, Type *ParallelTaskPtr,
4504 User *OutlinedFnUser = OutlinedFn.getUniqueUndroppableUser();
4520 OutlinedFn);
4613 std::move(ToBeDeleted)](Function &OutlinedFn) {
4614 workshareLoopTargetCallback(this, CLI, Ident, OutlinedFn, ParallelTaskPtr,
6463 Function *OutlinedFn) {
6465 OutlinedFn->setLinkage(GlobalValue::WeakODRLinkage);
6467 OutlinedFn->setDSOLocal(false);
6468 OutlinedFn->setVisibility(GlobalValue::ProtectedVisibility);
6470 OutlinedFn->setCallingConv(CallingConv::AMDGPU_KERNEL);
6472 OutlinedFn->setCallingConv(CallingConv::PTX_Kernel);
6476 Constant *OpenMPIRBuilder::createOutlinedFunctionID(Function *OutlinedFn,
6479 assert(OutlinedFn && "The outlined function must exist if embedded");
6480 return OutlinedFn;
6488 Constant *OpenMPIRBuilder::createTargetRegionEntryAddr(Function *OutlinedFn,
6490 if (OutlinedFn)
6491 return OutlinedFn;
6503 Function *&OutlinedFn, Constant *&OutlinedFnID) {
6512 OutlinedFn = *CBResult;
6514 OutlinedFn = nullptr;
6528 OutlinedFnID = registerTargetRegionFunction(EntryInfo, OutlinedFn,
6534 TargetRegionEntryInfo &EntryInfo, Function *OutlinedFn,
6536 if (OutlinedFn)
6537 setOutlinedTargetRegionFunctionAttributes(OutlinedFn);
6538 auto OutlinedFnID = createOutlinedFunctionID(OutlinedFn, EntryFnIDName);
6539 auto EntryAddr = createTargetRegionEntryAddr(OutlinedFn, EntryFnName);
7096 Function *&OutlinedFn, Constant *&OutlinedFnID,
7109 EntryInfo, GenerateOutlinedFunction, IsOffloadEntry, OutlinedFn,
7125 // outlined into the function OutlinedFn.
7236 DeviceID](Function &OutlinedFn) mutable {
7237 assert(OutlinedFn.getNumUses() == 1 &&
7240 CallInst *StaleCI = cast<CallInst>(OutlinedFn.user_back());
7408 Value *IfCond, Function *OutlinedFn, Constant *OutlinedFnID,
7419 Builder.CreateCall(OutlinedFn, Args);
7602 Function *OutlinedFn;
7608 *this, Builder, IsOffloadEntry, EntryInfo, DefaultAttrs, OutlinedFn,
7617 OutlinedFn, OutlinedFnID, Args, GenMapInfoCB, Dependencies,
9119 ToBeDeleted](Function &OutlinedFn) mutable {
9123 assert(OutlinedFn.getNumUses() == 1 &&
9125 CallInst *StaleCI = cast<CallInst>(OutlinedFn.user_back());
9128 assert((OutlinedFn.arg_size() == 2 || OutlinedFn.arg_size() == 3) &&
9131 bool HasShared = OutlinedFn.arg_size() == 3;
9133 OutlinedFn.getArg(0)->setName("global.tid.ptr");
9134 OutlinedFn.getArg(1)->setName("bound.tid.ptr");
9136 OutlinedFn.getArg(2)->setName("data");
9143 Ident, Builder.getInt32(StaleCI->arg_size() - 2), &OutlinedFn};