• Home
  • Raw
  • Download

Lines Matching refs:CS

122   void Write(ImmutableCallSite CS) {  in Write()
123 Write(CS.getInstruction()); in Write()
420 void visitIntrinsicCallSite(Intrinsic::ID ID, CallSite CS);
438 void verifyCallSite(CallSite CS);
439 void verifySwiftErrorCallSite(CallSite CS, const Value *SwiftErrorVal);
455 void verifyStatepoint(ImmutableCallSite CS);
1674 void Verifier::verifyStatepoint(ImmutableCallSite CS) { in verifyStatepoint() argument
1675 assert(CS.getCalledFunction() && in verifyStatepoint()
1676 CS.getCalledFunction()->getIntrinsicID() == in verifyStatepoint()
1679 const Instruction &CI = *CS.getInstruction(); in verifyStatepoint()
1681 Assert(!CS.doesNotAccessMemory() && !CS.onlyReadsMemory() && in verifyStatepoint()
1682 !CS.onlyAccessesArgMemory(), in verifyStatepoint()
1687 const Value *IDV = CS.getArgument(0); in verifyStatepoint()
1691 const Value *NumPatchBytesV = CS.getArgument(1); in verifyStatepoint()
1702 const Value *Target = CS.getArgument(2); in verifyStatepoint()
1708 const Value *NumCallArgsV = CS.getArgument(3); in verifyStatepoint()
1732 const Value *FlagsV = CS.getArgument(4); in verifyStatepoint()
1743 Type *ArgType = CS.getArgument(5 + i)->getType(); in verifyStatepoint()
1752 const Value *NumTransitionArgsV = CS.getArgument(EndCallArgsInx+1); in verifyStatepoint()
1763 const Value *NumDeoptArgsV = CS.getArgument(EndTransitionArgsInx+1); in verifyStatepoint()
1775 Assert(ExpectedNumArgs <= (int)CS.arg_size(), in verifyStatepoint()
2496 void Verifier::verifyCallSite(CallSite CS) { in verifyCallSite() argument
2497 Instruction *I = CS.getInstruction(); in verifyCallSite()
2499 Assert(CS.getCalledValue()->getType()->isPointerTy(), in verifyCallSite()
2501 PointerType *FPTy = cast<PointerType>(CS.getCalledValue()->getType()); in verifyCallSite()
2506 Assert(FPTy->getElementType() == CS.getFunctionType(), in verifyCallSite()
2509 FunctionType *FTy = CS.getFunctionType(); in verifyCallSite()
2513 Assert(CS.arg_size() >= FTy->getNumParams(), in verifyCallSite()
2516 Assert(CS.arg_size() == FTy->getNumParams(), in verifyCallSite()
2521 Assert(CS.getArgument(i)->getType() == FTy->getParamType(i), in verifyCallSite()
2523 CS.getArgument(i), FTy->getParamType(i), I); in verifyCallSite()
2525 AttributeSet Attrs = CS.getAttributes(); in verifyCallSite()
2527 Assert(verifyAttributeCount(Attrs, CS.arg_size()), in verifyCallSite()
2536 if (CS.hasInAllocaArgument()) { in verifyCallSite()
2537 Value *InAllocaArg = CS.getArgument(FTy->getNumParams() - 1); in verifyCallSite()
2546 if (CS.paramHasAttr(i+1, Attribute::SwiftError)) { in verifyCallSite()
2547 Value *SwiftErrorArg = CS.getArgument(i); in verifyCallSite()
2568 for (unsigned Idx = 1 + FTy->getNumParams(); Idx <= CS.arg_size(); ++Idx) { in verifyCallSite()
2569 Type *Ty = CS.getArgument(Idx-1)->getType(); in verifyCallSite()
2591 Assert(Idx == CS.arg_size(), "inalloca isn't on the last argument!", I); in verifyCallSite()
2596 if (CS.getCalledFunction() == nullptr || in verifyCallSite()
2597 !CS.getCalledFunction()->getName().startswith("llvm.")) { in verifyCallSite()
2607 if (CS.getCalledFunction() == nullptr) in verifyCallSite()
2611 if (Function *F = CS.getCalledFunction()) in verifyCallSite()
2613 visitIntrinsicCallSite(ID, CS); in verifyCallSite()
2619 for (unsigned i = 0, e = CS.getNumOperandBundles(); i < e; ++i) { in verifyCallSite()
2620 OperandBundleUse BU = CS.getOperandBundleAt(i); in verifyCallSite()
2643 if (I->getFunction()->getSubprogram() && CS.getCalledFunction() && in verifyCallSite()
2644 CS.getCalledFunction()->getSubprogram()) in verifyCallSite()
3032 void Verifier::verifySwiftErrorCallSite(CallSite CS, in verifySwiftErrorCallSite() argument
3035 for (CallSite::arg_iterator I = CS.arg_begin(), E = CS.arg_end(); in verifySwiftErrorCallSite()
3038 Assert(CS.paramHasAttr(Idx+1, Attribute::SwiftError), in verifySwiftErrorCallSite()
3041 SwiftErrorVal, CS); in verifySwiftErrorCallSite()
3752 void Verifier::visitIntrinsicCallSite(Intrinsic::ID ID, CallSite CS) { in visitIntrinsicCallSite() argument
3753 Function *IF = CS.getCalledFunction(); in visitIntrinsicCallSite()
3799 for (Value *V : CS.args()) in visitIntrinsicCallSite()
3801 visitMetadataAsValue(*MD, CS.getCaller()); in visitIntrinsicCallSite()
3808 Assert(isa<ConstantInt>(CS.getArgOperand(1)), in visitIntrinsicCallSite()
3811 CS); in visitIntrinsicCallSite()
3814 Assert(isa<MetadataAsValue>(CS.getArgOperand(0)), in visitIntrinsicCallSite()
3815 "invalid llvm.dbg.declare intrinsic call 1", CS); in visitIntrinsicCallSite()
3816 visitDbgIntrinsic("declare", cast<DbgDeclareInst>(*CS.getInstruction())); in visitIntrinsicCallSite()
3819 visitDbgIntrinsic("value", cast<DbgValueInst>(*CS.getInstruction())); in visitIntrinsicCallSite()
3824 ConstantInt *AlignCI = dyn_cast<ConstantInt>(CS.getArgOperand(3)); in visitIntrinsicCallSite()
3827 CS); in visitIntrinsicCallSite()
3830 "alignment argument of memory intrinsics must be a power of 2", CS); in visitIntrinsicCallSite()
3831 Assert(isa<ConstantInt>(CS.getArgOperand(4)), in visitIntrinsicCallSite()
3833 CS); in visitIntrinsicCallSite()
3841 dyn_cast<AllocaInst>(CS.getArgOperand(0)->stripPointerCasts()); in visitIntrinsicCallSite()
3842 Assert(AI, "llvm.gcroot parameter #1 must be an alloca.", CS); in visitIntrinsicCallSite()
3843 Assert(isa<Constant>(CS.getArgOperand(1)), in visitIntrinsicCallSite()
3844 "llvm.gcroot parameter #2 must be a constant.", CS); in visitIntrinsicCallSite()
3846 Assert(!isa<ConstantPointerNull>(CS.getArgOperand(1)), in visitIntrinsicCallSite()
3849 CS); in visitIntrinsicCallSite()
3853 Assert(CS.getParent()->getParent()->hasGC(), in visitIntrinsicCallSite()
3854 "Enclosing function does not use GC.", CS); in visitIntrinsicCallSite()
3857 Assert(isa<Function>(CS.getArgOperand(1)->stripPointerCasts()), in visitIntrinsicCallSite()
3859 CS); in visitIntrinsicCallSite()
3862 Assert(isa<ConstantInt>(CS.getArgOperand(1)) && in visitIntrinsicCallSite()
3863 isa<ConstantInt>(CS.getArgOperand(2)) && in visitIntrinsicCallSite()
3864 cast<ConstantInt>(CS.getArgOperand(1))->getZExtValue() < 2 && in visitIntrinsicCallSite()
3865 cast<ConstantInt>(CS.getArgOperand(2))->getZExtValue() < 4, in visitIntrinsicCallSite()
3866 "invalid arguments to llvm.prefetch", CS); in visitIntrinsicCallSite()
3869 Assert(isa<AllocaInst>(CS.getArgOperand(1)->stripPointerCasts()), in visitIntrinsicCallSite()
3870 "llvm.stackprotector parameter #2 must resolve to an alloca.", CS); in visitIntrinsicCallSite()
3875 Assert(isa<ConstantInt>(CS.getArgOperand(0)), in visitIntrinsicCallSite()
3877 CS); in visitIntrinsicCallSite()
3880 Assert(isa<ConstantInt>(CS.getArgOperand(1)), in visitIntrinsicCallSite()
3881 "llvm.invariant.end parameter #2 must be a constant integer", CS); in visitIntrinsicCallSite()
3885 BasicBlock *BB = CS.getParent(); in visitIntrinsicCallSite()
3887 "llvm.localescape used outside of entry block", CS); in visitIntrinsicCallSite()
3889 "multiple calls to llvm.localescape in one function", CS); in visitIntrinsicCallSite()
3890 for (Value *Arg : CS.args()) { in visitIntrinsicCallSite()
3895 "llvm.localescape only accepts static allocas", CS); in visitIntrinsicCallSite()
3897 FrameEscapeInfo[BB->getParent()].first = CS.getNumArgOperands(); in visitIntrinsicCallSite()
3902 Value *FnArg = CS.getArgOperand(0)->stripPointerCasts(); in visitIntrinsicCallSite()
3907 CS); in visitIntrinsicCallSite()
3908 auto *IdxArg = dyn_cast<ConstantInt>(CS.getArgOperand(2)); in visitIntrinsicCallSite()
3910 CS); in visitIntrinsicCallSite()
3918 Assert(!CS.isInlineAsm(), in visitIntrinsicCallSite()
3919 "gc.statepoint support for inline assembly unimplemented", CS); in visitIntrinsicCallSite()
3920 Assert(CS.getParent()->getParent()->hasGC(), in visitIntrinsicCallSite()
3921 "Enclosing function does not use GC.", CS); in visitIntrinsicCallSite()
3923 verifyStatepoint(CS); in visitIntrinsicCallSite()
3926 Assert(CS.getParent()->getParent()->hasGC(), in visitIntrinsicCallSite()
3927 "Enclosing function does not use GC.", CS); in visitIntrinsicCallSite()
3929 CallSite StatepointCS(CS.getArgOperand(0)); in visitIntrinsicCallSite()
3935 "gc.result operand #1 must be from a statepoint", CS, in visitIntrinsicCallSite()
3936 CS.getArgOperand(0)); in visitIntrinsicCallSite()
3942 Assert(CS.getType() == TargetFuncType->getReturnType(), in visitIntrinsicCallSite()
3943 "gc.result result type does not match wrapped callee", CS); in visitIntrinsicCallSite()
3947 Assert(CS.getNumArgOperands() == 3, "wrong number of arguments", CS); in visitIntrinsicCallSite()
3949 Assert(isa<PointerType>(CS.getType()->getScalarType()), in visitIntrinsicCallSite()
3950 "gc.relocate must return a pointer or a vector of pointers", CS); in visitIntrinsicCallSite()
3956 dyn_cast<LandingPadInst>(CS.getArgOperand(0))) { in visitIntrinsicCallSite()
3974 auto Token = CS.getArgOperand(0); in visitIntrinsicCallSite()
3976 "gc relocate is incorrectly tied to the statepoint", CS, Token); in visitIntrinsicCallSite()
3982 cast<GCRelocateInst>(*CS.getInstruction()).getStatepoint()); in visitIntrinsicCallSite()
3985 Value* Base = CS.getArgOperand(1); in visitIntrinsicCallSite()
3987 "gc.relocate operand #2 must be integer offset", CS); in visitIntrinsicCallSite()
3989 Value* Derived = CS.getArgOperand(2); in visitIntrinsicCallSite()
3991 "gc.relocate operand #3 must be integer offset", CS); in visitIntrinsicCallSite()
3997 "gc.relocate: statepoint base index out of bounds", CS); in visitIntrinsicCallSite()
3999 "gc.relocate: statepoint derived index out of bounds", CS); in visitIntrinsicCallSite()
4029 CS); in visitIntrinsicCallSite()
4033 CS); in visitIntrinsicCallSite()
4039 GCRelocateInst &Relocate = cast<GCRelocateInst>(*CS.getInstruction()); in visitIntrinsicCallSite()
4041 "gc.relocate: relocated value must be a gc pointer", CS); in visitIntrinsicCallSite()
4043 auto ResultType = CS.getType(); in visitIntrinsicCallSite()
4047 CS); in visitIntrinsicCallSite()
4052 CS); in visitIntrinsicCallSite()
4057 Assert(isa<CatchPadInst>(CS.getArgOperand(0)), in visitIntrinsicCallSite()
4058 "eh.exceptionpointer argument must be a catchpad", CS); in visitIntrinsicCallSite()
4062 Assert(CS.getType()->isVectorTy(), "masked_load: must return a vector", CS); in visitIntrinsicCallSite()
4064 Value *Ptr = CS.getArgOperand(0); in visitIntrinsicCallSite()
4066 Value *Mask = CS.getArgOperand(2); in visitIntrinsicCallSite()
4067 Value *PassThru = CS.getArgOperand(3); in visitIntrinsicCallSite()
4069 "masked_load: mask must be vector", CS); in visitIntrinsicCallSite()
4073 Assert(DataTy == CS.getType(), in visitIntrinsicCallSite()
4074 "masked_load: return must match pointer type", CS); in visitIntrinsicCallSite()
4076 "masked_load: pass through and data type must match", CS); in visitIntrinsicCallSite()
4079 "masked_load: vector mask must be same length as data", CS); in visitIntrinsicCallSite()
4083 Value *Val = CS.getArgOperand(0); in visitIntrinsicCallSite()
4084 Value *Ptr = CS.getArgOperand(1); in visitIntrinsicCallSite()
4086 Value *Mask = CS.getArgOperand(3); in visitIntrinsicCallSite()
4088 "masked_store: mask must be vector", CS); in visitIntrinsicCallSite()
4093 "masked_store: storee must match pointer type", CS); in visitIntrinsicCallSite()
4096 "masked_store: vector mask must be same length as data", CS); in visitIntrinsicCallSite()
4101 Assert(CS.isCall(), "experimental_guard cannot be invoked", CS); in visitIntrinsicCallSite()
4102 Assert(CS.countOperandBundlesOfType(LLVMContext::OB_deopt) == 1, in visitIntrinsicCallSite()
4109 Assert(CS.isCall(), "experimental_deoptimize cannot be invoked", CS); in visitIntrinsicCallSite()
4110 Assert(CS.countOperandBundlesOfType(LLVMContext::OB_deopt) == 1, in visitIntrinsicCallSite()
4113 Assert(CS.getType() == CS.getInstruction()->getFunction()->getReturnType(), in visitIntrinsicCallSite()
4116 if (CS.isCall()) { in visitIntrinsicCallSite()
4117 auto *DeoptCI = CS.getInstruction(); in visitIntrinsicCallSite()
4122 if (!CS.getType()->isVoidTy() && RI) in visitIntrinsicCallSite()