Lines Matching refs:CB

881 propagateMemProfMetadata(Function *Callee, CallBase &CB,  in propagateMemProfMetadata()  argument
884 MDNode *CallsiteMD = CB.getMetadata(LLVMContext::MD_callsite); in propagateMemProfMetadata()
913 static void PropagateCallSiteMetadata(CallBase &CB, Function::iterator FStart, in PropagateCallSiteMetadata() argument
916 CB.getMetadata(LLVMContext::MD_mem_parallel_loop_access); in PropagateCallSiteMetadata()
917 MDNode *AccessGroup = CB.getMetadata(LLVMContext::MD_access_group); in PropagateCallSiteMetadata()
918 MDNode *AliasScope = CB.getMetadata(LLVMContext::MD_alias_scope); in PropagateCallSiteMetadata()
919 MDNode *NoAlias = CB.getMetadata(LLVMContext::MD_noalias); in PropagateCallSiteMetadata()
1092 static void AddAliasScopeMetadata(CallBase &CB, ValueToValueMapTy &VMap, in AddAliasScopeMetadata() argument
1098 const Function *CalledFunc = CB.getCalledFunction(); in AddAliasScopeMetadata()
1102 if (CB.paramHasAttr(Arg.getArgNo(), Attribute::NoAlias) && !Arg.use_empty()) in AddAliasScopeMetadata()
1148 IRBuilder<>(&CB).CreateNoAliasScopeDeclaration(AScopeList); in AddAliasScopeMetadata()
1250 if (!CB.paramHasAttr(A->getArgNo(), Attribute::NoAlias)) in AddAliasScopeMetadata()
1353 static AttrBuilder IdentifyValidUBGeneratingAttributes(CallBase &CB) { in IdentifyValidUBGeneratingAttributes() argument
1354 AttrBuilder Valid(CB.getContext()); in IdentifyValidUBGeneratingAttributes()
1355 if (auto DerefBytes = CB.getRetDereferenceableBytes()) in IdentifyValidUBGeneratingAttributes()
1357 if (auto DerefOrNullBytes = CB.getRetDereferenceableOrNullBytes()) in IdentifyValidUBGeneratingAttributes()
1359 if (CB.hasRetAttr(Attribute::NoAlias)) in IdentifyValidUBGeneratingAttributes()
1361 if (CB.hasRetAttr(Attribute::NoUndef)) in IdentifyValidUBGeneratingAttributes()
1368 static AttrBuilder IdentifyValidPoisonGeneratingAttributes(CallBase &CB) { in IdentifyValidPoisonGeneratingAttributes() argument
1369 AttrBuilder Valid(CB.getContext()); in IdentifyValidPoisonGeneratingAttributes()
1370 if (CB.hasRetAttr(Attribute::NonNull)) in IdentifyValidPoisonGeneratingAttributes()
1372 if (CB.hasRetAttr(Attribute::Alignment)) in IdentifyValidPoisonGeneratingAttributes()
1373 Valid.addAlignmentAttr(CB.getRetAlign()); in IdentifyValidPoisonGeneratingAttributes()
1377 static void AddReturnAttributes(CallBase &CB, ValueToValueMapTy &VMap) { in AddReturnAttributes() argument
1378 AttrBuilder ValidUB = IdentifyValidUBGeneratingAttributes(CB); in AddReturnAttributes()
1379 AttrBuilder ValidPG = IdentifyValidPoisonGeneratingAttributes(CB); in AddReturnAttributes()
1382 auto *CalledFunction = CB.getCalledFunction(); in AddReturnAttributes()
1476 if (CB.hasRetAttr(Attribute::NoUndef) || in AddReturnAttributes()
1486 static void AddAlignmentAssumptions(CallBase &CB, InlineFunctionInfo &IFI) { in AddAlignmentAssumptions() argument
1490 AssumptionCache *AC = &IFI.GetAssumptionCache(*CB.getCaller()); in AddAlignmentAssumptions()
1491 auto &DL = CB.getCaller()->getParent()->getDataLayout(); in AddAlignmentAssumptions()
1498 Function *CalledFunc = CB.getCalledFunction(); in AddAlignmentAssumptions()
1508 DT.recalculate(*CB.getCaller()); in AddAlignmentAssumptions()
1513 Value *ArgVal = CB.getArgOperand(Arg.getArgNo()); in AddAlignmentAssumptions()
1514 if (getKnownAlignment(ArgVal, DL, &CB, AC, &DT) >= *Alignment) in AddAlignmentAssumptions()
1517 CallInst *NewAsmp = IRBuilder<>(&CB).CreateAlignmentAssumption( in AddAlignmentAssumptions()
1756 const CallBase &CB) { in collectEscapedLocals() argument
1762 for (const Value *Arg : CB.args()) { in collectEscapedLocals()
1806 const CallBase &CB) { in trackInlinedStores() argument
1809 << CB.getCalledFunction()->getName() << "\n"); in trackInlinedStores()
1810 std::unique_ptr<DataLayout> DL = std::make_unique<DataLayout>(CB.getModule()); in trackInlinedStores()
1811 at::trackAssignments(Start, End, collectEscapedLocals(*DL, CB), *DL); in trackInlinedStores()
1948 inlineRetainOrClaimRVCalls(CallBase &CB, objcarc::ARCInstKind RVCallKind, in inlineRetainOrClaimRVCalls() argument
1950 Module *Mod = CB.getModule(); in inlineRetainOrClaimRVCalls()
2002 Value *BundleArgs[] = {*objcarc::getAttachedARCFunction(&CB)}; in inlineRetainOrClaimRVCalls()
2032 llvm::InlineResult llvm::InlineFunction(CallBase &CB, InlineFunctionInfo &IFI, in InlineFunction() argument
2037 assert(CB.getParent() && CB.getFunction() && "Instruction not in function!"); in InlineFunction()
2040 if (isa<CallBrInst>(CB)) in InlineFunction()
2046 Function *CalledFunc = CB.getCalledFunction(); in InlineFunction()
2054 if (CB.hasOperandBundles()) { in InlineFunction()
2055 for (int i = 0, e = CB.getNumOperandBundles(); i != e; ++i) { in InlineFunction()
2056 auto OBUse = CB.getOperandBundleAt(i); in InlineFunction()
2086 if (CB.isConvergent()) { in InlineFunction()
2101 bool MarkNoUnwind = CB.doesNotThrow(); in InlineFunction()
2103 BasicBlock *OrigBB = CB.getParent(); in InlineFunction()
2155 CB.getOperandBundle(LLVMContext::OB_funclet); in InlineFunction()
2188 if (CallSiteEHPad && isa<CallInst>(CB)) { in InlineFunction()
2224 ScopedAliasMetadataDeepCloner SAMetadataCloner(CB.getCalledFunction()); in InlineFunction()
2230 auto AI = CB.arg_begin(); in InlineFunction()
2240 if (CB.isByValArgument(ArgNo)) { in InlineFunction()
2241 ActualArg = HandleByValArgument(CB.getParamByValType(ArgNo), ActualArg, in InlineFunction()
2242 &CB, CalledFunc, IFI, in InlineFunction()
2246 {ActualArg, (Value *)*AI, CB.getParamByValType(ArgNo)}); in InlineFunction()
2256 AddAlignmentAssumptions(CB, IFI); in InlineFunction()
2262 salvageKnowledge(&CB, AC); in InlineFunction()
2275 objcarc::ARCInstKind RVCallKind = objcarc::getAttachedARCFunctionKind(&CB); in InlineFunction()
2277 inlineRetainOrClaimRVCalls(CB, RVCallKind, Returns); in InlineFunction()
2290 updateCallProfile(CalledFunc, VMap, *Profile, CB, IFI.PSI, in InlineFunction()
2300 CB.getOperandBundle(LLVMContext::OB_deopt); in InlineFunction()
2350 fixupLineNumbers(Caller, FirstNewBlock, &CB, in InlineFunction()
2355 trackInlinedStores(FirstNewBlock, Caller->end(), CB); in InlineFunction()
2367 AddAliasScopeMetadata(CB, VMap, DL, CalleeAAR, InlinedFunctionInfo); in InlineFunction()
2371 AddReturnAttributes(CB, VMap); in InlineFunction()
2373 propagateMemProfMetadata(CalledFunc, CB, in InlineFunction()
2377 PropagateCallSiteMetadata(CB, FirstNewBlock, Caller->end()); in InlineFunction()
2444 i < CB.arg_size(); i++) { in InlineFunction()
2445 VarArgsToForward.push_back(CB.getArgOperand(i)); in InlineFunction()
2446 VarArgsAttrs.push_back(CB.getAttributes().getParamAttrs(i)); in InlineFunction()
2452 if (CallInst *CI = dyn_cast<CallInst>(&CB)) in InlineFunction()
2615 if (auto *II = dyn_cast<InvokeInst>(&CB)) { in InlineFunction()
2664 if (Caller->getReturnType() == CB.getType()) { in InlineFunction()
2726 bool NeedBitCast = !CB.use_empty() && CB.getType() != NewRetTy; in InlineFunction()
2767 if (auto *CB = dyn_cast<CallBase>(&I)) in InlineFunction() local
2768 if (!(CB->getCalledFunction() && in InlineFunction()
2769 CB->getCalledFunction()->isIntrinsic())) in InlineFunction()
2770 IFI.InlinedCallSites.push_back(CB); in InlineFunction()
2778 OrigBB->splice(CB.getIterator(), &*FirstNewBlock, FirstNewBlock->begin(), in InlineFunction()
2785 if (InvokeInst *II = dyn_cast<InvokeInst>(&CB)) { in InlineFunction()
2786 BranchInst *NewBr = BranchInst::Create(II->getNormalDest(), &CB); in InlineFunction()
2792 if (!CB.use_empty()) { in InlineFunction()
2794 if (&CB == R->getReturnValue()) in InlineFunction()
2795 CB.replaceAllUsesWith(PoisonValue::get(CB.getType())); in InlineFunction()
2797 CB.replaceAllUsesWith(R->getReturnValue()); in InlineFunction()
2800 CB.eraseFromParent(); in InlineFunction()
2820 if (InvokeInst *II = dyn_cast<InvokeInst>(&CB)) { in InlineFunction()
2823 CreatedBranchToNormalDest = BranchInst::Create(II->getNormalDest(), &CB); in InlineFunction()
2836 AfterCallBB = OrigBB->splitBasicBlock(CB.getIterator(), in InlineFunction()
2868 if (!CB.use_empty()) { in InlineFunction()
2869 PHI = PHINode::Create(RTy, Returns.size(), CB.getName()); in InlineFunction()
2873 CB.replaceAllUsesWith(PHI); in InlineFunction()
2905 if (!CB.use_empty()) { in InlineFunction()
2906 if (&CB == Returns[0]->getReturnValue()) in InlineFunction()
2907 CB.replaceAllUsesWith(PoisonValue::get(CB.getType())); in InlineFunction()
2909 CB.replaceAllUsesWith(Returns[0]->getReturnValue()); in InlineFunction()
2926 } else if (!CB.use_empty()) { in InlineFunction()
2929 CB.replaceAllUsesWith(PoisonValue::get(CB.getType())); in InlineFunction()
2933 CB.eraseFromParent(); in InlineFunction()