Lines Matching refs:Call
563 void visitCallBase(CallBase &Call);
588 void visitIntrinsicCall(Intrinsic::ID ID, CallBase &Call);
609 void verifySwiftErrorCall(CallBase &Call, const Value *SwiftErrorVal);
625 void verifyInlineAsmCall(const CallBase &Call);
626 void verifyStatepoint(const CallBase &Call);
648 void verifyAttachedCallBundle(const CallBase &Call,
2501 void Verifier::verifyInlineAsmCall(const CallBase &Call) { in verifyInlineAsmCall() argument
2502 const InlineAsm *IA = cast<InlineAsm>(Call.getCalledOperand()); in verifyInlineAsmCall()
2516 const Value *Arg = Call.getArgOperand(ArgNo); in verifyInlineAsmCall()
2518 "Operand for indirect constraint must have pointer type", &Call); in verifyInlineAsmCall()
2520 Check(Call.getParamElementType(ArgNo), in verifyInlineAsmCall()
2522 &Call); in verifyInlineAsmCall()
2524 Check(!Call.paramHasAttr(ArgNo, Attribute::ElementType), in verifyInlineAsmCall()
2527 &Call); in verifyInlineAsmCall()
2533 if (auto *CallBr = dyn_cast<CallBrInst>(&Call)) { in verifyInlineAsmCall()
2536 &Call); in verifyInlineAsmCall()
2539 &Call); in verifyInlineAsmCall()
2544 void Verifier::verifyStatepoint(const CallBase &Call) { in verifyStatepoint() argument
2545 assert(Call.getCalledFunction() && in verifyStatepoint()
2546 Call.getCalledFunction()->getIntrinsicID() == in verifyStatepoint()
2549 Check(!Call.doesNotAccessMemory() && !Call.onlyReadsMemory() && in verifyStatepoint()
2550 !Call.onlyAccessesArgMemory(), in verifyStatepoint()
2553 Call); in verifyStatepoint()
2556 cast<ConstantInt>(Call.getArgOperand(1))->getSExtValue(); in verifyStatepoint()
2561 Call); in verifyStatepoint()
2563 Type *TargetElemType = Call.getParamElementType(2); in verifyStatepoint()
2565 "gc.statepoint callee argument must have elementtype attribute", Call); in verifyStatepoint()
2568 "gc.statepoint callee elementtype must be function type", Call); in verifyStatepoint()
2570 const int NumCallArgs = cast<ConstantInt>(Call.getArgOperand(3))->getZExtValue(); in verifyStatepoint()
2574 Call); in verifyStatepoint()
2578 "gc.statepoint mismatch in number of vararg call args", Call); in verifyStatepoint()
2584 Call); in verifyStatepoint()
2587 "gc.statepoint mismatch in number of call args", Call); in verifyStatepoint()
2590 = cast<ConstantInt>(Call.getArgOperand(4))->getZExtValue(); in verifyStatepoint()
2592 "unknown flag used in gc.statepoint flags argument", Call); in verifyStatepoint()
2596 AttributeList Attrs = Call.getAttributes(); in verifyStatepoint()
2599 Type *ArgType = Call.getArgOperand(5 + i)->getType(); in verifyStatepoint()
2603 Call); in verifyStatepoint()
2608 "Attribute 'sret' cannot be used for vararg call arguments!", Call); in verifyStatepoint()
2614 const Value *NumTransitionArgsV = Call.getArgOperand(EndCallArgsInx + 1); in verifyStatepoint()
2618 Call); in verifyStatepoint()
2622 "gc.statepoint w/inline transition bundle is deprecated", Call); in verifyStatepoint()
2625 const Value *NumDeoptArgsV = Call.getArgOperand(EndTransitionArgsInx + 1); in verifyStatepoint()
2629 Call); in verifyStatepoint()
2632 "gc.statepoint w/inline deopt operands is deprecated", Call); in verifyStatepoint()
2635 Check(ExpectedNumArgs == (int)Call.arg_size(), in verifyStatepoint()
2636 "gc.statepoint too many arguments", Call); in verifyStatepoint()
2641 for (const User *U : Call.users()) { in verifyStatepoint()
2643 Check(UserCall, "illegal use of statepoint token", Call, U); in verifyStatepoint()
2649 Call, U); in verifyStatepoint()
2651 Check(UserCall->getArgOperand(0) == &Call, in verifyStatepoint()
2652 "gc.result connected to wrong gc.statepoint", Call, UserCall); in verifyStatepoint()
2653 } else if (isa<GCRelocateInst>(Call)) { in verifyStatepoint()
2654 Check(UserCall->getArgOperand(0) == &Call, in verifyStatepoint()
2655 "gc.relocate connected to wrong gc.statepoint", Call, UserCall); in verifyStatepoint()
3479 void Verifier::visitCallBase(CallBase &Call) { in visitCallBase() argument
3480 Check(Call.getCalledOperand()->getType()->isPointerTy(), in visitCallBase()
3481 "Called function must be a pointer!", Call); in visitCallBase()
3482 FunctionType *FTy = Call.getFunctionType(); in visitCallBase()
3486 Check(Call.arg_size() >= FTy->getNumParams(), in visitCallBase()
3487 "Called function requires more parameters than were provided!", Call); in visitCallBase()
3489 Check(Call.arg_size() == FTy->getNumParams(), in visitCallBase()
3490 "Incorrect number of arguments passed to called function!", Call); in visitCallBase()
3494 Check(Call.getArgOperand(i)->getType() == FTy->getParamType(i), in visitCallBase()
3496 Call.getArgOperand(i), FTy->getParamType(i), Call); in visitCallBase()
3498 AttributeList Attrs = Call.getAttributes(); in visitCallBase()
3500 Check(verifyAttributeCount(Attrs, Call.arg_size()), in visitCallBase()
3501 "Attribute after last parameter!", Call); in visitCallBase()
3504 dyn_cast<Function>(Call.getCalledOperand()->stripPointerCasts()); in visitCallBase()
3508 "Intrinsic called with incompatible signature", Call); in visitCallBase()
3512 auto CC = Call.getCallingConv(); in visitCallBase()
3517 Call); in visitCallBase()
3528 "Incorrect alignment of " + Message + " to called function!", Call); in visitCallBase()
3543 "speculatable attribute may not apply to call sites", Call); in visitCallBase()
3547 Check(Call.getCalledFunction()->getIntrinsicID() == in visitCallBase()
3554 verifyFunctionAttrs(FTy, Attrs, &Call, IsIntrinsic, Call.isInlineAsm()); in visitCallBase()
3559 if (Call.hasInAllocaArgument()) { in visitCallBase()
3560 Value *InAllocaArg = Call.getArgOperand(FTy->getNumParams() - 1); in visitCallBase()
3563 "inalloca argument for call has mismatched alloca", AI, Call); in visitCallBase()
3570 if (Call.paramHasAttr(i, Attribute::SwiftError)) { in visitCallBase()
3571 Value *SwiftErrorArg = Call.getArgOperand(i); in visitCallBase()
3574 "swifterror argument for call has mismatched alloca", AI, Call); in visitCallBase()
3579 SwiftErrorArg, Call); in visitCallBase()
3582 Call); in visitCallBase()
3589 "immarg may not apply only to call sites", Call.getArgOperand(i), in visitCallBase()
3590 Call); in visitCallBase()
3593 if (Call.paramHasAttr(i, Attribute::ImmArg)) { in visitCallBase()
3594 Value *ArgVal = Call.getArgOperand(i); in visitCallBase()
3596 "immarg operand has non-immediate parameter", ArgVal, Call); in visitCallBase()
3599 if (Call.paramHasAttr(i, Attribute::Preallocated)) { in visitCallBase()
3600 Value *ArgVal = Call.getArgOperand(i); in visitCallBase()
3602 Call.countOperandBundlesOfType(LLVMContext::OB_preallocated) != 0; in visitCallBase()
3603 bool isMustTail = Call.isMustTailCall(); in visitCallBase()
3607 ArgVal, Call); in visitCallBase()
3624 for (unsigned Idx = FTy->getNumParams(); Idx < Call.arg_size(); ++Idx) { in visitCallBase()
3625 Type *Ty = Call.getArgOperand(Idx)->getType(); in visitCallBase()
3627 verifyParameterAttrs(ArgAttrs, Ty, &Call); in visitCallBase()
3630 Check(!SawNest, "More than one parameter has attribute nest!", Call); in visitCallBase()
3636 Call); in visitCallBase()
3640 Call); in visitCallBase()
3646 if (!Call.getCalledFunction() || in visitCallBase()
3647 Call.getCalledFunction()->getIntrinsicID() != in visitCallBase()
3651 Call); in visitCallBase()
3654 Check(Idx == Call.arg_size() - 1, in visitCallBase()
3655 "inalloca isn't on the last argument!", Call); in visitCallBase()
3663 "Function has metadata parameter but isn't an intrinsic", Call); in visitCallBase()
3665 "Function has token parameter but isn't an intrinsic", Call); in visitCallBase()
3670 if (!Call.getCalledFunction()) { in visitCallBase()
3677 if (Function *F = Call.getCalledFunction()) in visitCallBase()
3679 visitIntrinsicCall(ID, Call); in visitCallBase()
3689 for (unsigned i = 0, e = Call.getNumOperandBundles(); i < e; ++i) { in visitCallBase()
3690 OperandBundleUse BU = Call.getOperandBundleAt(i); in visitCallBase()
3693 Check(!FoundDeoptBundle, "Multiple deopt operand bundles", Call); in visitCallBase()
3697 Call); in visitCallBase()
3700 Check(!FoundFuncletBundle, "Multiple funclet operand bundles", Call); in visitCallBase()
3703 "Expected exactly one funclet bundle operand", Call); in visitCallBase()
3706 Call); in visitCallBase()
3709 Call); in visitCallBase()
3712 "Expected exactly one cfguardtarget bundle operand", Call); in visitCallBase()
3714 Check(!FoundPtrauthBundle, "Multiple ptrauth operand bundles", Call); in visitCallBase()
3717 "Expected exactly two ptrauth bundle operands", Call); in visitCallBase()
3720 "Ptrauth bundle key operand must be an i32 constant", Call); in visitCallBase()
3722 "Ptrauth bundle discriminator operand must be an i64", Call); in visitCallBase()
3724 Check(!FoundKCFIBundle, "Multiple kcfi operand bundles", Call); in visitCallBase()
3727 Call); in visitCallBase()
3730 "Kcfi bundle operand must be an i32 constant", Call); in visitCallBase()
3733 Call); in visitCallBase()
3736 "Expected exactly one preallocated bundle operand", Call); in visitCallBase()
3742 Call); in visitCallBase()
3744 Check(!FoundGCLiveBundle, "Multiple gc-live operand bundles", Call); in visitCallBase()
3748 "Multiple \"clang.arc.attachedcall\" operand bundles", Call); in visitCallBase()
3750 verifyAttachedCallBundle(Call, BU); in visitCallBase()
3755 Check(!(Call.getCalledFunction() && FoundPtrauthBundle), in visitCallBase()
3756 "Direct call cannot have a ptrauth bundle", Call); in visitCallBase()
3763 if (Call.getFunction()->getSubprogram() && Call.getCalledFunction() && in visitCallBase()
3764 !Call.getCalledFunction()->isInterposable() && in visitCallBase()
3765 !Call.getCalledFunction()->isDeclaration() && in visitCallBase()
3766 Call.getCalledFunction()->getSubprogram()) in visitCallBase()
3767 CheckDI(Call.getDebugLoc(), in visitCallBase()
3770 Call); in visitCallBase()
3772 if (Call.isInlineAsm()) in visitCallBase()
3773 verifyInlineAsmCall(Call); in visitCallBase()
3775 ConvergenceVerifyHelper.visit(Call); in visitCallBase()
3777 visitInstruction(Call); in visitCallBase()
4248 void Verifier::verifySwiftErrorCall(CallBase &Call, in verifySwiftErrorCall() argument
4250 for (const auto &I : llvm::enumerate(Call.args())) { in verifySwiftErrorCall()
4252 Check(Call.paramHasAttr(I.index(), Attribute::SwiftError), in verifySwiftErrorCall()
4255 SwiftErrorVal, Call); in verifySwiftErrorCall()
4275 if (auto *Call = dyn_cast<CallBase>(U)) in verifySwiftErrorValue() local
4276 verifySwiftErrorCall(*const_cast<CallBase *>(Call), SwiftErrorVal); in verifySwiftErrorValue()
5271 void Verifier::visitIntrinsicCall(Intrinsic::ID ID, CallBase &Call) { in visitIntrinsicCall() argument
5272 Function *IF = Call.getCalledFunction(); in visitIntrinsicCall()
5319 for (Value *V : Call.args()) { in visitIntrinsicCall()
5321 visitMetadataAsValue(*MD, Call.getCaller()); in visitIntrinsicCall()
5331 for (auto &Elem : Call.bundle_op_infos()) { in visitIntrinsicCall()
5337 "separate_storage assumptions should have 2 arguments", Call); in visitIntrinsicCall()
5338 Check(Call.getOperand(Elem.Begin)->getType()->isPointerTy() && in visitIntrinsicCall()
5339 Call.getOperand(Elem.Begin + 1)->getType()->isPointerTy(), in visitIntrinsicCall()
5341 Call); in visitIntrinsicCall()
5346 "tags must be valid attribute names", Call); in visitIntrinsicCall()
5351 "alignment assumptions should have 2 or 3 arguments", Call); in visitIntrinsicCall()
5352 Check(Call.getOperand(Elem.Begin)->getType()->isPointerTy(), in visitIntrinsicCall()
5353 "first argument should be a pointer", Call); in visitIntrinsicCall()
5354 Check(Call.getOperand(Elem.Begin + 1)->getType()->isIntegerTy(), in visitIntrinsicCall()
5355 "second argument should be an integer", Call); in visitIntrinsicCall()
5357 Check(Call.getOperand(Elem.Begin + 2)->getType()->isIntegerTy(), in visitIntrinsicCall()
5358 "third argument should be an integer if present", Call); in visitIntrinsicCall()
5361 Check(ArgCount <= 2, "too many arguments", Call); in visitIntrinsicCall()
5365 Check(ArgCount == 2, "this attribute should have 2 arguments", Call); in visitIntrinsicCall()
5366 Check(isa<ConstantInt>(Call.getOperand(Elem.Begin + 1)), in visitIntrinsicCall()
5367 "the second argument should be a constant integral value", Call); in visitIntrinsicCall()
5369 Check((ArgCount) == 1, "this attribute should have one argument", Call); in visitIntrinsicCall()
5371 Check((ArgCount) == 0, "this attribute has no argument", Call); in visitIntrinsicCall()
5378 Type *SrcTy = Call.getOperand(0)->getType(); in visitIntrinsicCall()
5379 Type *DestTy = Call.getType(); in visitIntrinsicCall()
5382 "result type must be at least 2 bits wide", Call); in visitIntrinsicCall()
5388 Call); in visitIntrinsicCall()
5395 Call); in visitIntrinsicCall()
5400 auto *InfoArg = Call.getArgOperand(3)->stripPointerCasts(); in visitIntrinsicCall()
5414 const ConstantInt *TestMask = cast<ConstantInt>(Call.getOperand(1)); in visitIntrinsicCall()
5422 auto *MAV = dyn_cast<MetadataAsValue>(Call.getOperand(1)); in visitIntrinsicCall()
5426 Check(MD != nullptr, "missing rounding mode argument", Call); in visitIntrinsicCall()
5436 "unsupported rounding mode argument", Call); in visitIntrinsicCall()
5442 visitVPIntrinsic(cast<VPIntrinsic>(Call)); in visitIntrinsicCall()
5448 visitConstrainedFPIntrinsic(cast<ConstrainedFPIntrinsic>(Call)); in visitIntrinsicCall()
5451 Check(isa<MetadataAsValue>(Call.getArgOperand(0)), in visitIntrinsicCall()
5452 "invalid llvm.dbg.declare intrinsic call 1", Call); in visitIntrinsicCall()
5453 visitDbgIntrinsic("declare", cast<DbgVariableIntrinsic>(Call)); in visitIntrinsicCall()
5456 visitDbgIntrinsic("value", cast<DbgVariableIntrinsic>(Call)); in visitIntrinsicCall()
5459 visitDbgIntrinsic("assign", cast<DbgVariableIntrinsic>(Call)); in visitIntrinsicCall()
5462 visitDbgLabelIntrinsic("label", cast<DbgLabelInst>(Call)); in visitIntrinsicCall()
5474 const auto *AMI = cast<AtomicMemIntrinsic>(&Call); in visitIntrinsicCall()
5482 Call); in visitIntrinsicCall()
5488 "incorrect alignment of the destination argument", Call); in visitIntrinsicCall()
5491 "incorrect alignment of the source argument", Call); in visitIntrinsicCall()
5496 auto *NumArgs = dyn_cast<ConstantInt>(Call.getArgOperand(0)); in visitIntrinsicCall()
5500 for (User *U : Call.users()) { in visitIntrinsicCall()
5535 Call, *UseCall); in visitIntrinsicCall()
5548 Check(PreallocatedBundle->Inputs.front().get() == &Call, in visitIntrinsicCall()
5556 auto *Token = dyn_cast<CallBase>(Call.getArgOperand(0)); in visitIntrinsicCall()
5561 Check(Call.hasFnAttr(Attribute::Preallocated), in visitIntrinsicCall()
5567 auto *Token = dyn_cast<CallBase>(Call.getArgOperand(0)); in visitIntrinsicCall()
5579 dyn_cast<AllocaInst>(Call.getArgOperand(0)->stripPointerCasts()); in visitIntrinsicCall()
5580 Check(AI, "llvm.gcroot parameter #1 must be an alloca.", Call); in visitIntrinsicCall()
5581 Check(isa<Constant>(Call.getArgOperand(1)), in visitIntrinsicCall()
5582 "llvm.gcroot parameter #2 must be a constant.", Call); in visitIntrinsicCall()
5584 Check(!isa<ConstantPointerNull>(Call.getArgOperand(1)), in visitIntrinsicCall()
5587 Call); in visitIntrinsicCall()
5591 Check(Call.getParent()->getParent()->hasGC(), in visitIntrinsicCall()
5592 "Enclosing function does not use GC.", Call); in visitIntrinsicCall()
5595 Check(isa<Function>(Call.getArgOperand(1)->stripPointerCasts()), in visitIntrinsicCall()
5597 Call); in visitIntrinsicCall()
5600 Check(cast<ConstantInt>(Call.getArgOperand(1))->getZExtValue() < 2, in visitIntrinsicCall()
5601 "rw argument to llvm.prefetch must be 0-1", Call); in visitIntrinsicCall()
5602 Check(cast<ConstantInt>(Call.getArgOperand(2))->getZExtValue() < 4, in visitIntrinsicCall()
5603 "locality argument to llvm.prefetch must be 0-3", Call); in visitIntrinsicCall()
5604 Check(cast<ConstantInt>(Call.getArgOperand(3))->getZExtValue() < 2, in visitIntrinsicCall()
5605 "cache type argument to llvm.prefetch must be 0-1", Call); in visitIntrinsicCall()
5608 Check(isa<AllocaInst>(Call.getArgOperand(1)->stripPointerCasts()), in visitIntrinsicCall()
5609 "llvm.stackprotector parameter #2 must resolve to an alloca.", Call); in visitIntrinsicCall()
5612 BasicBlock *BB = Call.getParent(); in visitIntrinsicCall()
5614 Call); in visitIntrinsicCall()
5616 Call); in visitIntrinsicCall()
5617 for (Value *Arg : Call.args()) { in visitIntrinsicCall()
5622 "llvm.localescape only accepts static allocas", Call); in visitIntrinsicCall()
5624 FrameEscapeInfo[BB->getParent()].first = Call.arg_size(); in visitIntrinsicCall()
5629 Value *FnArg = Call.getArgOperand(0)->stripPointerCasts(); in visitIntrinsicCall()
5634 Call); in visitIntrinsicCall()
5635 auto *IdxArg = cast<ConstantInt>(Call.getArgOperand(2)); in visitIntrinsicCall()
5643 if (auto *CI = dyn_cast<CallInst>(&Call)) in visitIntrinsicCall()
5646 Check(Call.getParent()->getParent()->hasGC(), in visitIntrinsicCall()
5647 "Enclosing function does not use GC.", Call); in visitIntrinsicCall()
5649 verifyStatepoint(Call); in visitIntrinsicCall()
5652 Check(Call.getParent()->getParent()->hasGC(), in visitIntrinsicCall()
5653 "Enclosing function does not use GC.", Call); in visitIntrinsicCall()
5655 auto *Statepoint = Call.getArgOperand(0); in visitIntrinsicCall()
5666 "gc.result operand #1 must be from a statepoint", Call, in visitIntrinsicCall()
5667 Call.getArgOperand(0)); in visitIntrinsicCall()
5672 Check(Call.getType() == TargetFuncType->getReturnType(), in visitIntrinsicCall()
5673 "gc.result result type does not match wrapped callee", Call); in visitIntrinsicCall()
5677 Check(Call.arg_size() == 3, "wrong number of arguments", Call); in visitIntrinsicCall()
5679 Check(isa<PointerType>(Call.getType()->getScalarType()), in visitIntrinsicCall()
5680 "gc.relocate must return a pointer or a vector of pointers", Call); in visitIntrinsicCall()
5686 dyn_cast<LandingPadInst>(Call.getArgOperand(0))) { in visitIntrinsicCall()
5703 auto *Token = Call.getArgOperand(0); in visitIntrinsicCall()
5705 "gc relocate is incorrectly tied to the statepoint", Call, Token); in visitIntrinsicCall()
5709 const Value &StatepointCall = *cast<GCRelocateInst>(Call).getStatepoint(); in visitIntrinsicCall()
5712 Value *Base = Call.getArgOperand(1); in visitIntrinsicCall()
5714 "gc.relocate operand #2 must be integer offset", Call); in visitIntrinsicCall()
5716 Value *Derived = Call.getArgOperand(2); in visitIntrinsicCall()
5718 "gc.relocate operand #3 must be integer offset", Call); in visitIntrinsicCall()
5729 "gc.relocate: statepoint base index out of bounds", Call); in visitIntrinsicCall()
5731 "gc.relocate: statepoint derived index out of bounds", Call); in visitIntrinsicCall()
5738 GCRelocateInst &Relocate = cast<GCRelocateInst>(Call); in visitIntrinsicCall()
5739 auto *ResultType = Call.getType(); in visitIntrinsicCall()
5744 "gc.relocate: relocated value must be a pointer", Call); in visitIntrinsicCall()
5746 "gc.relocate: relocated value must be a pointer", Call); in visitIntrinsicCall()
5750 Call); in visitIntrinsicCall()
5755 Call); in visitIntrinsicCall()
5759 Call.getFunction()); in visitIntrinsicCall()
5764 Check(isGCPtr(ResultType), "gc.relocate: must return gc pointer", Call); in visitIntrinsicCall()
5766 "gc.relocate: relocated value must be a gc pointer", Call); in visitIntrinsicCall()
5768 "gc.relocate: relocated value must be a gc pointer", Call); in visitIntrinsicCall()
5773 if (Call.getCallingConv() == CallingConv::AnyReg) { in visitIntrinsicCall()
5774 Check(Call.getType()->isSingleValueType(), in visitIntrinsicCall()
5775 "patchpoint: invalid return type used with anyregcc", Call); in visitIntrinsicCall()
5781 Check(isa<CatchPadInst>(Call.getArgOperand(0)), in visitIntrinsicCall()
5782 "eh.exceptionpointer argument must be a catchpad", Call); in visitIntrinsicCall()
5786 Check(Call.getType()->isVectorTy(), in visitIntrinsicCall()
5789 Call); in visitIntrinsicCall()
5790 auto *ElemTy = Call.getType()->getScalarType(); in visitIntrinsicCall()
5794 Call); in visitIntrinsicCall()
5798 ConstantInt *VF = cast<ConstantInt>(Call.getArgOperand(1)); in visitIntrinsicCall()
5800 "get_vector_length: VF must be positive", Call); in visitIntrinsicCall()
5804 Check(Call.getType()->isVectorTy(), "masked_load: must return a vector", in visitIntrinsicCall()
5805 Call); in visitIntrinsicCall()
5807 ConstantInt *Alignment = cast<ConstantInt>(Call.getArgOperand(1)); in visitIntrinsicCall()
5808 Value *Mask = Call.getArgOperand(2); in visitIntrinsicCall()
5809 Value *PassThru = Call.getArgOperand(3); in visitIntrinsicCall()
5811 Call); in visitIntrinsicCall()
5813 "masked_load: alignment must be a power of 2", Call); in visitIntrinsicCall()
5814 Check(PassThru->getType() == Call.getType(), in visitIntrinsicCall()
5815 "masked_load: pass through and return type must match", Call); in visitIntrinsicCall()
5817 cast<VectorType>(Call.getType())->getElementCount(), in visitIntrinsicCall()
5818 "masked_load: vector mask must be same length as return", Call); in visitIntrinsicCall()
5822 Value *Val = Call.getArgOperand(0); in visitIntrinsicCall()
5823 ConstantInt *Alignment = cast<ConstantInt>(Call.getArgOperand(2)); in visitIntrinsicCall()
5824 Value *Mask = Call.getArgOperand(3); in visitIntrinsicCall()
5826 Call); in visitIntrinsicCall()
5828 "masked_store: alignment must be a power of 2", Call); in visitIntrinsicCall()
5831 "masked_store: vector mask must be same length as value", Call); in visitIntrinsicCall()
5837 cast<ConstantInt>(Call.getArgOperand(1))->getValue(); in visitIntrinsicCall()
5839 "masked_gather: alignment must be 0 or a power of 2", Call); in visitIntrinsicCall()
5844 cast<ConstantInt>(Call.getArgOperand(2))->getValue(); in visitIntrinsicCall()
5846 "masked_scatter: alignment must be 0 or a power of 2", Call); in visitIntrinsicCall()
5851 Check(isa<CallInst>(Call), "experimental_guard cannot be invoked", Call); in visitIntrinsicCall()
5852 Check(Call.countOperandBundlesOfType(LLVMContext::OB_deopt) == 1, in visitIntrinsicCall()
5859 Check(isa<CallInst>(Call), "experimental_deoptimize cannot be invoked", in visitIntrinsicCall()
5860 Call); in visitIntrinsicCall()
5861 Check(Call.countOperandBundlesOfType(LLVMContext::OB_deopt) == 1, in visitIntrinsicCall()
5864 Check(Call.getType() == Call.getFunction()->getReturnType(), in visitIntrinsicCall()
5867 if (isa<CallInst>(Call)) { in visitIntrinsicCall()
5868 auto *RI = dyn_cast<ReturnInst>(Call.getNextNode()); in visitIntrinsicCall()
5872 if (!Call.getType()->isVoidTy() && RI) in visitIntrinsicCall()
5873 Check(RI->getReturnValue() == &Call, in visitIntrinsicCall()
5881 Check(Call.getFunction()->isVarArg(), in visitIntrinsicCall()
5894 Type *ArgTy = Call.getArgOperand(0)->getType(); in visitIntrinsicCall()
5901 Type *ArgTy = Call.getArgOperand(0)->getType(); in visitIntrinsicCall()
5910 Type *ArgTy = Call.getArgOperand(1)->getType(); in visitIntrinsicCall()
5923 Value *Op1 = Call.getArgOperand(0); in visitIntrinsicCall()
5924 Value *Op2 = Call.getArgOperand(1); in visitIntrinsicCall()
5932 auto *Op3 = cast<ConstantInt>(Call.getArgOperand(2)); in visitIntrinsicCall()
5952 Type *ValTy = Call.getArgOperand(0)->getType(); in visitIntrinsicCall()
5953 Type *ResultTy = Call.getType(); in visitIntrinsicCall()
5958 &Call); in visitIntrinsicCall()
5961 &Call); in visitIntrinsicCall()
5966 &Call); in visitIntrinsicCall()
5972 Type *ValTy = Call.getArgOperand(0)->getType(); in visitIntrinsicCall()
5973 Type *ResultTy = Call.getType(); in visitIntrinsicCall()
5975 "Intrinsic does not support vectors", &Call); in visitIntrinsicCall()
5979 Type *Ty = Call.getType(); in visitIntrinsicCall()
5981 Check(Size % 16 == 0, "bswap must be an even number of bytes", &Call); in visitIntrinsicCall()
5985 ConstantInt *InvariantSize = dyn_cast<ConstantInt>(Call.getArgOperand(0)); in visitIntrinsicCall()
5989 &Call); in visitIntrinsicCall()
5996 Function *IF = Call.getCalledFunction(); in visitIntrinsicCall()
6005 NumRows = cast<ConstantInt>(Call.getArgOperand(2)); in visitIntrinsicCall()
6006 ConstantInt *N = cast<ConstantInt>(Call.getArgOperand(3)); in visitIntrinsicCall()
6007 NumColumns = cast<ConstantInt>(Call.getArgOperand(4)); in visitIntrinsicCall()
6008 Check(cast<FixedVectorType>(Call.getArgOperand(0)->getType()) in visitIntrinsicCall()
6013 Check(cast<FixedVectorType>(Call.getArgOperand(1)->getType()) in visitIntrinsicCall()
6019 ResultTy = cast<VectorType>(Call.getType()); in visitIntrinsicCall()
6021 cast<VectorType>(Call.getArgOperand(0)->getType())->getElementType(); in visitIntrinsicCall()
6023 cast<VectorType>(Call.getArgOperand(1)->getType())->getElementType(); in visitIntrinsicCall()
6027 NumRows = cast<ConstantInt>(Call.getArgOperand(1)); in visitIntrinsicCall()
6028 NumColumns = cast<ConstantInt>(Call.getArgOperand(2)); in visitIntrinsicCall()
6029 ResultTy = cast<VectorType>(Call.getType()); in visitIntrinsicCall()
6031 cast<VectorType>(Call.getArgOperand(0)->getType())->getElementType(); in visitIntrinsicCall()
6034 Stride = dyn_cast<ConstantInt>(Call.getArgOperand(1)); in visitIntrinsicCall()
6035 NumRows = cast<ConstantInt>(Call.getArgOperand(3)); in visitIntrinsicCall()
6036 NumColumns = cast<ConstantInt>(Call.getArgOperand(4)); in visitIntrinsicCall()
6037 ResultTy = cast<VectorType>(Call.getType()); in visitIntrinsicCall()
6041 Stride = dyn_cast<ConstantInt>(Call.getArgOperand(2)); in visitIntrinsicCall()
6042 NumRows = cast<ConstantInt>(Call.getArgOperand(4)); in visitIntrinsicCall()
6043 NumColumns = cast<ConstantInt>(Call.getArgOperand(5)); in visitIntrinsicCall()
6044 ResultTy = cast<VectorType>(Call.getArgOperand(0)->getType()); in visitIntrinsicCall()
6046 cast<VectorType>(Call.getArgOperand(0)->getType())->getElementType(); in visitIntrinsicCall()
6080 VectorType *VecTy = cast<VectorType>(Call.getType()); in visitIntrinsicCall()
6081 int64_t Idx = cast<ConstantInt>(Call.getArgOperand(2))->getSExtValue(); in visitIntrinsicCall()
6083 if (Call.getParent() && Call.getParent()->getParent()) { in visitIntrinsicCall()
6084 AttributeList Attrs = Call.getParent()->getParent()->getAttributes(); in visitIntrinsicCall()
6094 &Call); in visitIntrinsicCall()
6098 VectorType *VecTy = dyn_cast<VectorType>(Call.getType()); in visitIntrinsicCall()
6103 &Call); in visitIntrinsicCall()
6107 Value *Vec = Call.getArgOperand(0); in visitIntrinsicCall()
6108 Value *SubVec = Call.getArgOperand(1); in visitIntrinsicCall()
6109 Value *Idx = Call.getArgOperand(2); in visitIntrinsicCall()
6120 &Call); in visitIntrinsicCall()
6137 Value *Vec = Call.getArgOperand(0); in visitIntrinsicCall()
6138 Value *Idx = Call.getArgOperand(1); in visitIntrinsicCall()
6141 VectorType *ResultTy = cast<VectorType>(Call.getType()); in visitIntrinsicCall()
6150 &Call); in visitIntrinsicCall()
6166 VectorType *AccTy = cast<VectorType>(Call.getArgOperand(0)->getType()); in visitIntrinsicCall()
6167 VectorType *VecTy = cast<VectorType>(Call.getArgOperand(1)->getType()); in visitIntrinsicCall()
6180 NoAliasScopeDecls.push_back(cast<IntrinsicInst>(&Call)); in visitIntrinsicCall()
6189 Type *ElemTy = Call.getParamElementType(0); in visitIntrinsicCall()
6191 &Call); in visitIntrinsicCall()
6198 Type *ElemTy = Call.getAttributes().getParamElementType(1); in visitIntrinsicCall()
6201 &Call); in visitIntrinsicCall()
6205 Check(cast<ConstantInt>(Call.getArgOperand(1))->getZExtValue() < 2, in visitIntrinsicCall()
6206 "write argument to llvm.aarch64.prefetch must be 0 or 1", Call); in visitIntrinsicCall()
6207 Check(cast<ConstantInt>(Call.getArgOperand(2))->getZExtValue() < 4, in visitIntrinsicCall()
6208 "target argument to llvm.aarch64.prefetch must be 0-3", Call); in visitIntrinsicCall()
6209 Check(cast<ConstantInt>(Call.getArgOperand(3))->getZExtValue() < 2, in visitIntrinsicCall()
6210 "stream argument to llvm.aarch64.prefetch must be 0 or 1", Call); in visitIntrinsicCall()
6211 Check(cast<ConstantInt>(Call.getArgOperand(4))->getZExtValue() < 2, in visitIntrinsicCall()
6212 "isdata argument to llvm.aarch64.prefetch must be 0 or 1", Call); in visitIntrinsicCall()
6216 const auto *CBR = dyn_cast<CallBrInst>(Call.getOperand(0)); in visitIntrinsicCall()
6217 Check(CBR, "intrinstic requires callbr operand", &Call); in visitIntrinsicCall()
6221 const BasicBlock *LandingPadBB = Call.getParent(); in visitIntrinsicCall()
6224 CheckFailed("Intrinsic in block must have 1 unique predecessor", &Call); in visitIntrinsicCall()
6229 &Call); in visitIntrinsicCall()
6238 &Call); in visitIntrinsicCall()
6240 Check(&First == &Call, "No other instructions may proceed intrinsic", in visitIntrinsicCall()
6241 &Call); in visitIntrinsicCall()
6245 auto CallerCC = Call.getCaller()->getCallingConv(); in visitIntrinsicCall()
6255 &Call); in visitIntrinsicCall()
6259 Check(Call.paramHasAttr(2, Attribute::InReg), in visitIntrinsicCall()
6260 "SGPR arguments must have the `inreg` attribute", &Call); in visitIntrinsicCall()
6261 Check(!Call.paramHasAttr(3, Attribute::InReg), in visitIntrinsicCall()
6262 "VGPR arguments must not have the `inreg` attribute", &Call); in visitIntrinsicCall()
6266 auto CallerCC = Call.getCaller()->getCallingConv(); in visitIntrinsicCall()
6275 &Call); in visitIntrinsicCall()
6280 Check(!Call.paramHasAttr(InactiveIdx, Attribute::InReg), in visitIntrinsicCall()
6282 &Call); in visitIntrinsicCall()
6283 Check(isa<Argument>(Call.getArgOperand(InactiveIdx)), in visitIntrinsicCall()
6284 "Value for inactive lanes must be a function argument", &Call); in visitIntrinsicCall()
6285 Check(!cast<Argument>(Call.getArgOperand(InactiveIdx))->hasInRegAttr(), in visitIntrinsicCall()
6286 "Value for inactive lanes must be a VGPR function argument", &Call); in visitIntrinsicCall()
6291 Value *V = Call.getArgOperand(0); in visitIntrinsicCall()
6305 Type *Ty0 = Call.getArgOperand(0)->getType(); in visitIntrinsicCall()
6306 Type *Ty1 = Call.getArgOperand(1)->getType(); in visitIntrinsicCall()
6310 &Call); in visitIntrinsicCall()
6314 &Call); in visitIntrinsicCall()
6320 &Call); in visitIntrinsicCall()
6324 &Call); in visitIntrinsicCall()
6328 const Value &Arg0 = *Call.getArgOperand(0); in visitIntrinsicCall()
6339 Function *F = Call.getParent()->getParent(); in visitIntrinsicCall()
6349 BasicBlock *CallBB = Call.getParent(); in visitIntrinsicCall()
6358 for (unsigned I = 0, E = Call.getNumOperandBundles(); I != E; ++I) in visitIntrinsicCall()
6359 if (Call.getOperandBundleAt(I).getTagID() == LLVMContext::OB_funclet) in visitIntrinsicCall()
6364 Check(HasToken, "Missing funclet token on intrinsic call", &Call); in visitIntrinsicCall()
7024 void Verifier::verifyAttachedCallBundle(const CallBase &Call, in verifyAttachedCallBundle() argument
7026 FunctionType *FTy = Call.getFunctionType(); in verifyAttachedCallBundle()
7029 (Call.doesNotReturn() && FTy->getReturnType()->isVoidTy())), in verifyAttachedCallBundle()
7033 Call); in verifyAttachedCallBundle()
7038 Call); in verifyAttachedCallBundle()
7046 "invalid function argument", Call); in verifyAttachedCallBundle()
7051 "invalid function argument", Call); in verifyAttachedCallBundle()