Lines Matching refs:CB

878 // inlining of Callee into the callsite at CB. The updates include merging the
886 propagateMemProfMetadata(Function *Callee, CallBase &CB,
889 MDNode *CallsiteMD = CB.getMetadata(LLVMContext::MD_callsite);
918 static void PropagateCallSiteMetadata(CallBase &CB, Function::iterator FStart,
921 CB.getMetadata(LLVMContext::MD_mem_parallel_loop_access);
922 MDNode *AccessGroup = CB.getMetadata(LLVMContext::MD_access_group);
923 MDNode *AliasScope = CB.getMetadata(LLVMContext::MD_alias_scope);
924 MDNode *NoAlias = CB.getMetadata(LLVMContext::MD_noalias);
1097 static void AddAliasScopeMetadata(CallBase &CB, ValueToValueMapTy &VMap,
1103 const Function *CalledFunc = CB.getCalledFunction();
1107 if (CB.paramHasAttr(Arg.getArgNo(), Attribute::NoAlias) && !Arg.use_empty())
1153 IRBuilder<>(&CB).CreateNoAliasScopeDeclaration(AScopeList);
1255 if (!CB.paramHasAttr(A->getArgNo(), Attribute::NoAlias))
1350 static AttrBuilder IdentifyValidAttributes(CallBase &CB) {
1352 AttrBuilder AB(CB.getContext(), CB.getAttributes().getRetAttrs());
1355 AttrBuilder Valid(CB.getContext());
1370 static void AddReturnAttributes(CallBase &CB, ValueToValueMapTy &VMap) {
1374 AttrBuilder Valid = IdentifyValidAttributes(CB);
1377 auto *CalledFunction = CB.getCalledFunction();
1426 static void AddAlignmentAssumptions(CallBase &CB, InlineFunctionInfo &IFI) {
1430 AssumptionCache *AC = &IFI.GetAssumptionCache(*CB.getCaller());
1431 auto &DL = CB.getCaller()->getParent()->getDataLayout();
1438 Function *CalledFunc = CB.getCalledFunction();
1448 DT.recalculate(*CB.getCaller());
1453 Value *ArgVal = CB.getArgOperand(Arg.getArgNo());
1454 if (getKnownAlignment(ArgVal, DL, &CB, AC, &DT) >= *Alignment)
1457 CallInst *NewAsmp = IRBuilder<>(&CB).CreateAlignmentAssumption(
1467 static void UpdateCallGraphAfterInlining(CallBase &CB,
1472 const Function *Caller = CB.getCaller();
1473 const Function *Callee = CB.getCalledFunction();
1535 CallerNode->removeCallEdgeFor(*cast<CallBase>(&CB));
1733 /// Find Alloca and linked DbgAssignIntrinsic for locals escaped by \p CB.
1735 const CallBase &CB) {
1741 for (const Value *Arg : CB.args()) {
1783 const CallBase &CB) {
1786 << CB.getCalledFunction()->getName() << "\n");
1787 std::unique_ptr<DataLayout> DL = std::make_unique<DataLayout>(CB.getModule());
1788 at::trackAssignments(Start, End, collectEscapedLocals(*DL, CB), *DL);
1922 inlineRetainOrClaimRVCalls(CallBase &CB, objcarc::ARCInstKind RVCallKind,
1924 Module *Mod = CB.getModule();
1977 Value *BundleArgs[] = {*objcarc::getAttachedARCFunction(&CB)};
2008 llvm::InlineResult llvm::InlineFunction(CallBase &CB, InlineFunctionInfo &IFI,
2013 assert(CB.getParent() && CB.getFunction() && "Instruction not in function!");
2016 if (isa<CallBrInst>(CB))
2022 Function *CalledFunc = CB.getCalledFunction();
2029 if (CB.hasOperandBundles()) {
2030 for (int i = 0, e = CB.getNumOperandBundles(); i != e; ++i) {
2031 uint32_t Tag = CB.getOperandBundleAt(i).getTagID();
2049 bool MarkNoUnwind = CB.doesNotThrow();
2051 BasicBlock *OrigBB = CB.getParent();
2103 CB.getOperandBundle(LLVMContext::OB_funclet);
2136 if (CallSiteEHPad && isa<CallInst>(CB)) {
2172 ScopedAliasMetadataDeepCloner SAMetadataCloner(CB.getCalledFunction());
2178 auto AI = CB.arg_begin();
2188 if (CB.isByValArgument(ArgNo)) {
2189 ActualArg = HandleByValArgument(CB.getParamByValType(ArgNo), ActualArg,
2190 &CB, CalledFunc, IFI,
2194 {ActualArg, (Value *)*AI, CB.getParamByValType(ArgNo)});
2204 AddAlignmentAssumptions(CB, IFI);
2210 salvageKnowledge(&CB, AC);
2223 objcarc::ARCInstKind RVCallKind = objcarc::getAttachedARCFunctionKind(&CB);
2225 inlineRetainOrClaimRVCalls(CB, RVCallKind, Returns);
2238 updateCallProfile(CalledFunc, VMap, *Profile, CB, IFI.PSI,
2248 CB.getOperandBundle(LLVMContext::OB_deopt);
2297 UpdateCallGraphAfterInlining(CB, FirstNewBlock, VMap, IFI);
2302 fixupLineNumbers(Caller, FirstNewBlock, &CB,
2307 trackInlinedStores(FirstNewBlock, Caller->end(), CB);
2319 AddAliasScopeMetadata(CB, VMap, DL, CalleeAAR, InlinedFunctionInfo);
2323 AddReturnAttributes(CB, VMap);
2325 propagateMemProfMetadata(CalledFunc, CB,
2329 PropagateCallSiteMetadata(CB, FirstNewBlock, Caller->end());
2384 i < CB.arg_size(); i++) {
2385 VarArgsToForward.push_back(CB.getArgOperand(i));
2386 VarArgsAttrs.push_back(CB.getAttributes().getParamAttrs(i));
2392 if (CallInst *CI = dyn_cast<CallInst>(&CB))
2560 if (auto *II = dyn_cast<InvokeInst>(&CB)) {
2609 if (Caller->getReturnType() == CB.getType()) {
2668 bool NeedBitCast = !CB.use_empty() && CB.getType() != NewRetTy;
2709 if (auto *CB = dyn_cast<CallBase>(&I))
2710 if (!(CB->getCalledFunction() &&
2711 CB->getCalledFunction()->isIntrinsic()))
2712 IFI.InlinedCallSites.push_back(CB);
2720 OrigBB->splice(CB.getIterator(), &*FirstNewBlock, FirstNewBlock->begin(),
2727 if (InvokeInst *II = dyn_cast<InvokeInst>(&CB)) {
2728 BranchInst *NewBr = BranchInst::Create(II->getNormalDest(), &CB);
2734 if (!CB.use_empty()) {
2736 if (&CB == R->getReturnValue())
2737 CB.replaceAllUsesWith(UndefValue::get(CB.getType()));
2739 CB.replaceAllUsesWith(R->getReturnValue());
2742 CB.eraseFromParent();
2762 if (InvokeInst *II = dyn_cast<InvokeInst>(&CB)) {
2765 CreatedBranchToNormalDest = BranchInst::Create(II->getNormalDest(), &CB);
2778 AfterCallBB = OrigBB->splitBasicBlock(CB.getIterator(),
2810 if (!CB.use_empty()) {
2811 PHI = PHINode::Create(RTy, Returns.size(), CB.getName(),
2815 CB.replaceAllUsesWith(PHI);
2847 if (!CB.use_empty()) {
2848 if (&CB == Returns[0]->getReturnValue())
2849 CB.replaceAllUsesWith(UndefValue::get(CB.getType()));
2851 CB.replaceAllUsesWith(Returns[0]->getReturnValue());
2868 } else if (!CB.use_empty()) {
2871 CB.replaceAllUsesWith(PoisonValue::get(CB.getType()));
2875 CB.eraseFromParent();