Lines Matching refs:Call

449   void visitCallBase(CallBase &Call);
473 void visitIntrinsicCall(Intrinsic::ID ID, CallBase &Call);
493 void verifySwiftErrorCall(CallBase &Call, const Value *SwiftErrorVal);
508 void verifyStatepoint(const CallBase &Call);
1896 void Verifier::verifyStatepoint(const CallBase &Call) { in verifyStatepoint() argument
1897 assert(Call.getCalledFunction() && in verifyStatepoint()
1898 Call.getCalledFunction()->getIntrinsicID() == in verifyStatepoint()
1901 Assert(!Call.doesNotAccessMemory() && !Call.onlyReadsMemory() && in verifyStatepoint()
1902 !Call.onlyAccessesArgMemory(), in verifyStatepoint()
1905 Call); in verifyStatepoint()
1907 const Value *IDV = Call.getArgOperand(0); in verifyStatepoint()
1909 Call); in verifyStatepoint()
1911 const Value *NumPatchBytesV = Call.getArgOperand(1); in verifyStatepoint()
1914 Call); in verifyStatepoint()
1921 Call); in verifyStatepoint()
1923 const Value *Target = Call.getArgOperand(2); in verifyStatepoint()
1926 "gc.statepoint callee must be of function pointer type", Call, Target); in verifyStatepoint()
1929 const Value *NumCallArgsV = Call.getArgOperand(3); in verifyStatepoint()
1933 Call); in verifyStatepoint()
1938 Call); in verifyStatepoint()
1942 "gc.statepoint mismatch in number of vararg call args", Call); in verifyStatepoint()
1948 Call); in verifyStatepoint()
1951 "gc.statepoint mismatch in number of call args", Call); in verifyStatepoint()
1953 const Value *FlagsV = Call.getArgOperand(4); in verifyStatepoint()
1955 "gc.statepoint flags must be constant integer", Call); in verifyStatepoint()
1958 "unknown flag used in gc.statepoint flags argument", Call); in verifyStatepoint()
1962 AttributeList Attrs = Call.getAttributes(); in verifyStatepoint()
1965 Type *ArgType = Call.getArgOperand(5 + i)->getType(); in verifyStatepoint()
1969 Call); in verifyStatepoint()
1975 Call); in verifyStatepoint()
1981 const Value *NumTransitionArgsV = Call.getArgOperand(EndCallArgsInx + 1); in verifyStatepoint()
1985 Call); in verifyStatepoint()
1989 "gc.statepoint number of transition arguments must be positive", Call); in verifyStatepoint()
1992 const Value *NumDeoptArgsV = Call.getArgOperand(EndTransitionArgsInx + 1); in verifyStatepoint()
1996 Call); in verifyStatepoint()
2001 Call); in verifyStatepoint()
2005 Assert(ExpectedNumArgs <= (int)Call.arg_size(), in verifyStatepoint()
2006 "gc.statepoint too few arguments according to length fields", Call); in verifyStatepoint()
2011 for (const User *U : Call.users()) { in verifyStatepoint()
2013 Assert(UserCall, "illegal use of statepoint token", Call, U); in verifyStatepoint()
2019 Call, U); in verifyStatepoint()
2021 Assert(UserCall->getArgOperand(0) == &Call, in verifyStatepoint()
2022 "gc.result connected to wrong gc.statepoint", Call, UserCall); in verifyStatepoint()
2023 } else if (isa<GCRelocateInst>(Call)) { in verifyStatepoint()
2024 Assert(UserCall->getArgOperand(0) == &Call, in verifyStatepoint()
2025 "gc.relocate connected to wrong gc.statepoint", Call, UserCall); in verifyStatepoint()
2750 void Verifier::visitCallBase(CallBase &Call) { in visitCallBase() argument
2751 Assert(Call.getCalledValue()->getType()->isPointerTy(), in visitCallBase()
2752 "Called function must be a pointer!", Call); in visitCallBase()
2753 PointerType *FPTy = cast<PointerType>(Call.getCalledValue()->getType()); in visitCallBase()
2756 "Called function is not pointer to function type!", Call); in visitCallBase()
2758 Assert(FPTy->getElementType() == Call.getFunctionType(), in visitCallBase()
2759 "Called function is not the same type as the call!", Call); in visitCallBase()
2761 FunctionType *FTy = Call.getFunctionType(); in visitCallBase()
2765 Assert(Call.arg_size() >= FTy->getNumParams(), in visitCallBase()
2767 Call); in visitCallBase()
2769 Assert(Call.arg_size() == FTy->getNumParams(), in visitCallBase()
2770 "Incorrect number of arguments passed to called function!", Call); in visitCallBase()
2774 Assert(Call.getArgOperand(i)->getType() == FTy->getParamType(i), in visitCallBase()
2776 Call.getArgOperand(i), FTy->getParamType(i), Call); in visitCallBase()
2778 AttributeList Attrs = Call.getAttributes(); in visitCallBase()
2780 Assert(verifyAttributeCount(Attrs, Call.arg_size()), in visitCallBase()
2781 "Attribute after last parameter!", Call); in visitCallBase()
2787 dyn_cast<Function>(Call.getCalledValue()->stripPointerCasts()); in visitCallBase()
2789 "speculatable attribute may not apply to call sites", Call); in visitCallBase()
2793 verifyFunctionAttrs(FTy, Attrs, &Call); in visitCallBase()
2798 if (Call.hasInAllocaArgument()) { in visitCallBase()
2799 Value *InAllocaArg = Call.getArgOperand(FTy->getNumParams() - 1); in visitCallBase()
2802 "inalloca argument for call has mismatched alloca", AI, Call); in visitCallBase()
2809 if (Call.paramHasAttr(i, Attribute::SwiftError)) { in visitCallBase()
2810 Value *SwiftErrorArg = Call.getArgOperand(i); in visitCallBase()
2813 "swifterror argument for call has mismatched alloca", AI, Call); in visitCallBase()
2819 SwiftErrorArg, Call); in visitCallBase()
2822 Call); in visitCallBase()
2838 for (unsigned Idx = FTy->getNumParams(); Idx < Call.arg_size(); ++Idx) { in visitCallBase()
2839 Type *Ty = Call.getArgOperand(Idx)->getType(); in visitCallBase()
2841 verifyParameterAttrs(ArgAttrs, Ty, &Call); in visitCallBase()
2844 Assert(!SawNest, "More than one parameter has attribute nest!", Call); in visitCallBase()
2850 Call); in visitCallBase()
2854 Call); in visitCallBase()
2860 if (!Call.getCalledFunction() || in visitCallBase()
2861 Call.getCalledFunction()->getIntrinsicID() != in visitCallBase()
2865 Call); in visitCallBase()
2868 Assert(Idx == Call.arg_size() - 1, in visitCallBase()
2869 "inalloca isn't on the last argument!", Call); in visitCallBase()
2874 if (!Call.getCalledFunction() || in visitCallBase()
2875 !Call.getCalledFunction()->getName().startswith("llvm.")) { in visitCallBase()
2878 "Function has metadata parameter but isn't an intrinsic", Call); in visitCallBase()
2880 "Function has token parameter but isn't an intrinsic", Call); in visitCallBase()
2885 if (!Call.getCalledFunction()) in visitCallBase()
2889 if (Function *F = Call.getCalledFunction()) in visitCallBase()
2891 visitIntrinsicCall(ID, Call); in visitCallBase()
2897 for (unsigned i = 0, e = Call.getNumOperandBundles(); i < e; ++i) { in visitCallBase()
2898 OperandBundleUse BU = Call.getOperandBundleAt(i); in visitCallBase()
2901 Assert(!FoundDeoptBundle, "Multiple deopt operand bundles", Call); in visitCallBase()
2905 Call); in visitCallBase()
2908 Assert(!FoundFuncletBundle, "Multiple funclet operand bundles", Call); in visitCallBase()
2911 "Expected exactly one funclet bundle operand", Call); in visitCallBase()
2914 Call); in visitCallBase()
2921 if (Call.getFunction()->getSubprogram() && Call.getCalledFunction() && in visitCallBase()
2922 Call.getCalledFunction()->getSubprogram()) in visitCallBase()
2923 AssertDI(Call.getDebugLoc(), in visitCallBase()
2926 Call); in visitCallBase()
2928 visitInstruction(Call); in visitCallBase()
3339 void Verifier::verifySwiftErrorCall(CallBase &Call, in verifySwiftErrorCall() argument
3342 for (auto I = Call.arg_begin(), E = Call.arg_end(); I != E; ++I, ++Idx) { in verifySwiftErrorCall()
3344 Assert(Call.paramHasAttr(Idx, Attribute::SwiftError), in verifySwiftErrorCall()
3347 SwiftErrorVal, Call); in verifySwiftErrorCall()
3366 if (auto *Call = dyn_cast<CallBase>(U)) in verifySwiftErrorValue() local
3367 verifySwiftErrorCall(*const_cast<CallBase *>(Call), SwiftErrorVal); in verifySwiftErrorValue()
4084 void Verifier::visitIntrinsicCall(Intrinsic::ID ID, CallBase &Call) { in visitIntrinsicCall() argument
4085 Function *IF = Call.getCalledFunction(); in visitIntrinsicCall()
4131 for (Value *V : Call.args()) in visitIntrinsicCall()
4133 visitMetadataAsValue(*MD, Call.getCaller()); in visitIntrinsicCall()
4139 auto *InfoArg = Call.getArgOperand(3)->stripPointerCasts(); in visitIntrinsicCall()
4154 Assert(isa<ConstantInt>(Call.getArgOperand(1)), in visitIntrinsicCall()
4157 Call); in visitIntrinsicCall()
4183 visitConstrainedFPIntrinsic(cast<ConstrainedFPIntrinsic>(Call)); in visitIntrinsicCall()
4186 Assert(isa<MetadataAsValue>(Call.getArgOperand(0)), in visitIntrinsicCall()
4187 "invalid llvm.dbg.declare intrinsic call 1", Call); in visitIntrinsicCall()
4188 visitDbgIntrinsic("declare", cast<DbgVariableIntrinsic>(Call)); in visitIntrinsicCall()
4191 visitDbgIntrinsic("addr", cast<DbgVariableIntrinsic>(Call)); in visitIntrinsicCall()
4194 visitDbgIntrinsic("value", cast<DbgVariableIntrinsic>(Call)); in visitIntrinsicCall()
4197 visitDbgLabelIntrinsic("label", cast<DbgLabelInst>(Call)); in visitIntrinsicCall()
4202 const auto *MI = cast<MemIntrinsic>(&Call); in visitIntrinsicCall()
4208 Call); in visitIntrinsicCall()
4212 Call); in visitIntrinsicCall()
4214 Assert(isa<ConstantInt>(Call.getArgOperand(3)), in visitIntrinsicCall()
4216 Call); in visitIntrinsicCall()
4222 const auto *AMI = cast<AtomicMemIntrinsic>(&Call); in visitIntrinsicCall()
4229 Call); in visitIntrinsicCall()
4234 Call); in visitIntrinsicCall()
4242 Call); in visitIntrinsicCall()
4250 "incorrect alignment of the destination argument", Call); in visitIntrinsicCall()
4254 "incorrect alignment of the source argument", Call); in visitIntrinsicCall()
4263 dyn_cast<AllocaInst>(Call.getArgOperand(0)->stripPointerCasts()); in visitIntrinsicCall()
4264 Assert(AI, "llvm.gcroot parameter #1 must be an alloca.", Call); in visitIntrinsicCall()
4265 Assert(isa<Constant>(Call.getArgOperand(1)), in visitIntrinsicCall()
4266 "llvm.gcroot parameter #2 must be a constant.", Call); in visitIntrinsicCall()
4268 Assert(!isa<ConstantPointerNull>(Call.getArgOperand(1)), in visitIntrinsicCall()
4271 Call); in visitIntrinsicCall()
4275 Assert(Call.getParent()->getParent()->hasGC(), in visitIntrinsicCall()
4276 "Enclosing function does not use GC.", Call); in visitIntrinsicCall()
4279 Assert(isa<Function>(Call.getArgOperand(1)->stripPointerCasts()), in visitIntrinsicCall()
4281 Call); in visitIntrinsicCall()
4284 Assert(isa<ConstantInt>(Call.getArgOperand(1)) && in visitIntrinsicCall()
4285 isa<ConstantInt>(Call.getArgOperand(2)) && in visitIntrinsicCall()
4286 cast<ConstantInt>(Call.getArgOperand(1))->getZExtValue() < 2 && in visitIntrinsicCall()
4287 cast<ConstantInt>(Call.getArgOperand(2))->getZExtValue() < 4, in visitIntrinsicCall()
4288 "invalid arguments to llvm.prefetch", Call); in visitIntrinsicCall()
4291 Assert(isa<AllocaInst>(Call.getArgOperand(1)->stripPointerCasts()), in visitIntrinsicCall()
4292 "llvm.stackprotector parameter #2 must resolve to an alloca.", Call); in visitIntrinsicCall()
4297 Assert(isa<ConstantInt>(Call.getArgOperand(0)), in visitIntrinsicCall()
4299 Call); in visitIntrinsicCall()
4302 Assert(isa<ConstantInt>(Call.getArgOperand(1)), in visitIntrinsicCall()
4303 "llvm.invariant.end parameter #2 must be a constant integer", Call); in visitIntrinsicCall()
4307 BasicBlock *BB = Call.getParent(); in visitIntrinsicCall()
4309 "llvm.localescape used outside of entry block", Call); in visitIntrinsicCall()
4311 "multiple calls to llvm.localescape in one function", Call); in visitIntrinsicCall()
4312 for (Value *Arg : Call.args()) { in visitIntrinsicCall()
4317 "llvm.localescape only accepts static allocas", Call); in visitIntrinsicCall()
4319 FrameEscapeInfo[BB->getParent()].first = Call.getNumArgOperands(); in visitIntrinsicCall()
4324 Value *FnArg = Call.getArgOperand(0)->stripPointerCasts(); in visitIntrinsicCall()
4329 Call); in visitIntrinsicCall()
4330 auto *IdxArg = dyn_cast<ConstantInt>(Call.getArgOperand(2)); in visitIntrinsicCall()
4332 Call); in visitIntrinsicCall()
4340 if (auto *CI = dyn_cast<CallInst>(&Call)) in visitIntrinsicCall()
4343 Assert(Call.getParent()->getParent()->hasGC(), in visitIntrinsicCall()
4344 "Enclosing function does not use GC.", Call); in visitIntrinsicCall()
4346 verifyStatepoint(Call); in visitIntrinsicCall()
4349 Assert(Call.getParent()->getParent()->hasGC(), in visitIntrinsicCall()
4350 "Enclosing function does not use GC.", Call); in visitIntrinsicCall()
4352 const auto *StatepointCall = dyn_cast<CallBase>(Call.getArgOperand(0)); in visitIntrinsicCall()
4358 "gc.result operand #1 must be from a statepoint", Call, in visitIntrinsicCall()
4359 Call.getArgOperand(0)); in visitIntrinsicCall()
4365 Assert(Call.getType() == TargetFuncType->getReturnType(), in visitIntrinsicCall()
4366 "gc.result result type does not match wrapped callee", Call); in visitIntrinsicCall()
4370 Assert(Call.getNumArgOperands() == 3, "wrong number of arguments", Call); in visitIntrinsicCall()
4372 Assert(isa<PointerType>(Call.getType()->getScalarType()), in visitIntrinsicCall()
4373 "gc.relocate must return a pointer or a vector of pointers", Call); in visitIntrinsicCall()
4379 dyn_cast<LandingPadInst>(Call.getArgOperand(0))) { in visitIntrinsicCall()
4396 auto Token = Call.getArgOperand(0); in visitIntrinsicCall()
4398 "gc relocate is incorrectly tied to the statepoint", Call, Token); in visitIntrinsicCall()
4403 *cast<CallBase>(cast<GCRelocateInst>(Call).getStatepoint()); in visitIntrinsicCall()
4406 Value *Base = Call.getArgOperand(1); in visitIntrinsicCall()
4408 "gc.relocate operand #2 must be integer offset", Call); in visitIntrinsicCall()
4410 Value *Derived = Call.getArgOperand(2); in visitIntrinsicCall()
4412 "gc.relocate operand #3 must be integer offset", Call); in visitIntrinsicCall()
4418 "gc.relocate: statepoint base index out of bounds", Call); in visitIntrinsicCall()
4420 "gc.relocate: statepoint derived index out of bounds", Call); in visitIntrinsicCall()
4450 Call); in visitIntrinsicCall()
4454 Call); in visitIntrinsicCall()
4460 GCRelocateInst &Relocate = cast<GCRelocateInst>(Call); in visitIntrinsicCall()
4462 "gc.relocate: relocated value must be a gc pointer", Call); in visitIntrinsicCall()
4464 auto ResultType = Call.getType(); in visitIntrinsicCall()
4468 Call); in visitIntrinsicCall()
4473 Call); in visitIntrinsicCall()
4478 Assert(isa<CatchPadInst>(Call.getArgOperand(0)), in visitIntrinsicCall()
4479 "eh.exceptionpointer argument must be a catchpad", Call); in visitIntrinsicCall()
4483 Assert(Call.getType()->isVectorTy(), "masked_load: must return a vector", in visitIntrinsicCall()
4484 Call); in visitIntrinsicCall()
4486 Value *Ptr = Call.getArgOperand(0); in visitIntrinsicCall()
4488 Value *Mask = Call.getArgOperand(2); in visitIntrinsicCall()
4489 Value *PassThru = Call.getArgOperand(3); in visitIntrinsicCall()
4491 Call); in visitIntrinsicCall()
4495 Assert(DataTy == Call.getType(), in visitIntrinsicCall()
4496 "masked_load: return must match pointer type", Call); in visitIntrinsicCall()
4498 "masked_load: pass through and data type must match", Call); in visitIntrinsicCall()
4501 "masked_load: vector mask must be same length as data", Call); in visitIntrinsicCall()
4505 Value *Val = Call.getArgOperand(0); in visitIntrinsicCall()
4506 Value *Ptr = Call.getArgOperand(1); in visitIntrinsicCall()
4508 Value *Mask = Call.getArgOperand(3); in visitIntrinsicCall()
4510 Call); in visitIntrinsicCall()
4515 "masked_store: storee must match pointer type", Call); in visitIntrinsicCall()
4518 "masked_store: vector mask must be same length as data", Call); in visitIntrinsicCall()
4523 Assert(isa<CallInst>(Call), "experimental_guard cannot be invoked", Call); in visitIntrinsicCall()
4524 Assert(Call.countOperandBundlesOfType(LLVMContext::OB_deopt) == 1, in visitIntrinsicCall()
4531 Assert(isa<CallInst>(Call), "experimental_deoptimize cannot be invoked", in visitIntrinsicCall()
4532 Call); in visitIntrinsicCall()
4533 Assert(Call.countOperandBundlesOfType(LLVMContext::OB_deopt) == 1, in visitIntrinsicCall()
4536 Assert(Call.getType() == Call.getFunction()->getReturnType(), in visitIntrinsicCall()
4539 if (isa<CallInst>(Call)) { in visitIntrinsicCall()
4540 auto *RI = dyn_cast<ReturnInst>(Call.getNextNode()); in visitIntrinsicCall()
4544 if (!Call.getType()->isVoidTy() && RI) in visitIntrinsicCall()
4545 Assert(RI->getReturnValue() == &Call, in visitIntrinsicCall()
4556 Value *Op1 = Call.getArgOperand(0); in visitIntrinsicCall()
4557 Value *Op2 = Call.getArgOperand(1); in visitIntrinsicCall()
4567 Value *Op1 = Call.getArgOperand(0); in visitIntrinsicCall()
4568 Value *Op2 = Call.getArgOperand(1); in visitIntrinsicCall()
4576 auto *Op3 = dyn_cast<ConstantInt>(Call.getArgOperand(2)); in visitIntrinsicCall()