Lines Matching defs:OutlinedFn

706     Function *OutlinedFn = Extractor.extractCodeRegion(CEAC);
711 OutlinedFn->addFnAttr(TargetCpuAttr);
715 OutlinedFn->addFnAttr(TargetFeaturesAttr);
718 LLVM_DEBUG(dbgs() << " Outlined function: " << *OutlinedFn << "\n");
719 assert(OutlinedFn->getReturnType()->isVoidTy() &&
724 OutlinedFn->removeFromParent();
725 M.getFunctionList().insertAfter(OuterFn->getIterator(), OutlinedFn);
730 BasicBlock &ArtificialEntry = OutlinedFn->getEntryBlock();
755 assert(&OutlinedFn->getEntryBlock() == OI.EntryBB);
756 assert(OutlinedFn && OutlinedFn->getNumUses() == 1);
760 OI.PostOutlineCB(*OutlinedFn);
1070 const LocationDescription &Loc, Function *OutlinedFn, Value *OutlinedFnID,
1171 // We need to use this callback to replace call to the OutlinedFn in OuterFn
1174 OpenMPIRBuilder *OMPIRBuilder, Function &OutlinedFn, Function *OuterFn,
1180 OutlinedFn.addParamAttr(0, Attribute::NoAlias);
1181 OutlinedFn.addParamAttr(1, Attribute::NoAlias);
1182 OutlinedFn.addParamAttr(0, Attribute::NoUndef);
1183 OutlinedFn.addParamAttr(1, Attribute::NoUndef);
1184 OutlinedFn.addFnAttr(Attribute::NoUnwind);
1186 assert(OutlinedFn.arg_size() >= 2 &&
1188 unsigned NumCapturedVars = OutlinedFn.arg_size() - /* tid & bounded tid */ 2;
1190 CallInst *CI = cast<CallInst>(OutlinedFn.user_back());
1230 Builder.CreateBitCast(&OutlinedFn, OMPIRBuilder->ParallelTaskPtr),
1245 Function::arg_iterator OutlinedAI = OutlinedFn.arg_begin();
1259 // We need to use this callback to replace call to the OutlinedFn in OuterFn
1262 hostParallelCallback(OpenMPIRBuilder *OMPIRBuilder, Function &OutlinedFn,
1291 OutlinedFn.addParamAttr(0, Attribute::NoAlias);
1292 OutlinedFn.addParamAttr(1, Attribute::NoAlias);
1293 OutlinedFn.addFnAttr(Attribute::NoUnwind);
1295 assert(OutlinedFn.arg_size() >= 2 &&
1297 unsigned NumCapturedVars = OutlinedFn.arg_size() - /* tid & bounded tid */ 2;
1299 CallInst *CI = cast<CallInst>(OutlinedFn.user_back());
1306 Builder.CreateBitCast(&OutlinedFn, OMPIRBuilder->ParallelTaskPtr)};
1333 Function::arg_iterator OutlinedAI = OutlinedFn.arg_begin();
1494 std::move(ToBeDeleted)](Function &OutlinedFn) {
1495 targetParallelCallback(this, OutlinedFn, OuterFn, OuterAllocaBlock, Ident,
1502 std::move(ToBeDeleted)](Function &OutlinedFn) {
1503 hostParallelCallback(this, OutlinedFn, OuterFn, Ident, IfCondition,
1827 TaskAllocaBB, ToBeDeleted](Function &OutlinedFn) mutable {
1829 assert(OutlinedFn.getNumUses() == 1 &&
1831 CallInst *StaleCI = cast<CallInst>(OutlinedFn.user_back());
1890 /*task_func=*/&OutlinedFn});
1987 CI = Builder.CreateCall(&OutlinedFn, {ThreadID, TaskData});
1989 CI = Builder.CreateCall(&OutlinedFn, {ThreadID});
2014 LoadInst *Shareds = Builder.CreateLoad(VoidPtr, OutlinedFn.getArg(1));
2015 OutlinedFn.getArg(1)->replaceUsesWithIf(
4296 Function &OutlinedFn, Type *ParallelTaskPtr,
4329 User *OutlinedFnUser = OutlinedFn.getUniqueUndroppableUser();
4345 OutlinedFn);
4438 std::move(ToBeDeleted)](Function &OutlinedFn) {
4439 workshareLoopTargetCallback(this, CLI, Ident, OutlinedFn, ParallelTaskPtr,
6264 Function *OutlinedFn) {
6266 OutlinedFn->setLinkage(GlobalValue::WeakODRLinkage);
6268 OutlinedFn->setDSOLocal(false);
6269 OutlinedFn->setVisibility(GlobalValue::ProtectedVisibility);
6271 OutlinedFn->setCallingConv(CallingConv::AMDGPU_KERNEL);
6275 Constant *OpenMPIRBuilder::createOutlinedFunctionID(Function *OutlinedFn,
6278 assert(OutlinedFn && "The outlined function must exist if embedded");
6279 return OutlinedFn;
6287 Constant *OpenMPIRBuilder::createTargetRegionEntryAddr(Function *OutlinedFn,
6289 if (OutlinedFn)
6290 return OutlinedFn;
6302 Function *&OutlinedFn, Constant *&OutlinedFnID) {
6307 OutlinedFn = Config.isTargetDevice() || !Config.openMPOffloadMandatory()
6322 OutlinedFnID = registerTargetRegionFunction(EntryInfo, OutlinedFn,
6327 TargetRegionEntryInfo &EntryInfo, Function *OutlinedFn,
6329 if (OutlinedFn)
6330 setOutlinedTargetRegionFunctionAttributes(OutlinedFn);
6331 auto OutlinedFnID = createOutlinedFunctionID(OutlinedFn, EntryFnIDName);
6332 auto EntryAddr = createTargetRegionEntryAddr(OutlinedFn, EntryFnName);
6773 TargetRegionEntryInfo &EntryInfo, Function *&OutlinedFn,
6786 OutlinedFn, OutlinedFnID);
6789 Function *OutlinedFn, Value *OutlinedFnID,
6796 // outlined into the function OutlinedFn.
6908 Builder.restoreIP(emitKernelLaunch(Builder, OutlinedFn, OutlinedFnID,
6914 HasNoWait](Function &OutlinedFn) mutable {
6915 assert(OutlinedFn.getNumUses() == 1 &&
6918 CallInst *StaleCI = cast<CallInst>(OutlinedFn.user_back());
7058 OpenMPIRBuilder::InsertPointTy AllocaIP, Function *OutlinedFn,
7080 Builder.CreateCall(OutlinedFn, Args);
7110 OutlinedFn, OutlinedFnID, EmitTargetCallFallbackCB, KArgs, DeviceID,
7114 Builder, OutlinedFn, OutlinedFnID, EmitTargetCallFallbackCB, KArgs,
7132 Function *OutlinedFn;
7137 emitTargetOutlinedFunction(*this, Builder, EntryInfo, OutlinedFn,
7144 emitTargetCall(*this, Builder, AllocaIP, OutlinedFn, OutlinedFnID, NumTeams,
8274 ToBeDeleted](Function &OutlinedFn) mutable {
8278 assert(OutlinedFn.getNumUses() == 1 &&
8280 CallInst *StaleCI = cast<CallInst>(OutlinedFn.user_back());
8283 assert((OutlinedFn.arg_size() == 2 || OutlinedFn.arg_size() == 3) &&
8286 bool HasShared = OutlinedFn.arg_size() == 3;
8288 OutlinedFn.getArg(0)->setName("global.tid.ptr");
8289 OutlinedFn.getArg(1)->setName("bound.tid.ptr");
8291 OutlinedFn.getArg(2)->setName("data");
8298 Ident, Builder.getInt32(StaleCI->arg_size() - 2), &OutlinedFn};