Lines Matching refs:Check

602 #define Check(C, ...)                                                          \  macro
622 Check(I.getOperand(i) != nullptr, "Operand is null", &I); in visit()
645 Check(!GV.isDeclaration() || GV.hasValidDeclarationLinkage(), in visitGlobalValue()
651 Check(A->value() <= Value::MaximumAlignment, in visitGlobalValue()
655 Check(!GV.hasAppendingLinkage() || isa<GlobalVariable>(GV), in visitGlobalValue()
660 Check(GVar && GVar->getValueType()->isArrayTy(), in visitGlobalValue()
665 Check(!GV.hasComdat(), "Declaration may not be in a Comdat!", &GV); in visitGlobalValue()
668 Check(!GV.isDSOLocal(), "GlobalValue with DLLImport Storage is dso_local!", in visitGlobalValue()
671 Check((GV.isDeclaration() && in visitGlobalValue()
678 Check(GV.isDSOLocal(), in visitGlobalValue()
705 Check(GV.getInitializer()->getType() == GV.getValueType(), in visitGlobalVariable()
712 Check(GV.getInitializer()->isNullValue(), in visitGlobalVariable()
714 Check(!GV.isConstant(), "'common' global may not be marked constant!", in visitGlobalVariable()
716 Check(!GV.hasComdat(), "'common' global may not be in a Comdat!", &GV); in visitGlobalVariable()
722 Check(!GV.hasInitializer() || GV.hasAppendingLinkage(), in visitGlobalVariable()
731 Check(STy && (STy->getNumElements() == 2 || STy->getNumElements() == 3) && in visitGlobalVariable()
735 Check(STy->getNumElements() == 3, in visitGlobalVariable()
740 Check(ETy->isPointerTy() && in visitGlobalVariable()
748 Check(!GV.hasInitializer() || GV.hasAppendingLinkage(), in visitGlobalVariable()
753 Check(PTy, "wrong type for intrinsic global variable", &GV); in visitGlobalVariable()
757 Check(InitArray, "wrong initalizer for intrinsic global variable", in visitGlobalVariable()
761 Check(isa<GlobalVariable>(V) || isa<Function>(V) || in visitGlobalVariable()
764 Check(V->hasName(), in visitGlobalVariable()
786 Check(!isa<ScalableVectorType>(GV.getValueType()), in visitGlobalVariable()
790 Check(!STy->containsScalableVectorType(), in visitGlobalVariable()
813 Check(!GV->isDeclarationForLinker(), "Alias must point to a definition", in visitAliaseeSubExpr()
817 Check(Visited.insert(GA2).second, "Aliases cannot form a cycle", &GA); in visitAliaseeSubExpr()
819 Check(!GA2->isInterposable(), in visitAliaseeSubExpr()
841 Check(GlobalAlias::isValidLinkage(GA.getLinkage()), in visitGlobalAlias()
846 Check(Aliasee, "Aliasee cannot be NULL!", &GA); in visitGlobalAlias()
847 Check(GA.getType() == Aliasee->getType(), in visitGlobalAlias()
850 Check(isa<GlobalValue>(Aliasee) || isa<ConstantExpr>(Aliasee), in visitGlobalAlias()
859 Check(GlobalIFunc::isValidLinkage(GI.getLinkage()), in visitGlobalIFunc()
866 Check(Resolver, "IFunc must have a Function resolver", &GI); in visitGlobalIFunc()
867 Check(!Resolver->isDeclarationForLinker(), in visitGlobalIFunc()
875 Check(ResolverTy == ResolverFuncTy->getPointerTo(), in visitGlobalIFunc()
902 Check(&MD.getContext() == &Context, in visitMDNode()
920 Check(!isa<LocalAsMetadata>(Op), "Invalid operand for global metadata!", in visitMDNode()
935 Check(!MD.isTemporary(), "Expected no forward declarations!", &MD); in visitMDNode()
936 Check(MD.isResolved(), "All nodes should be resolved!", &MD); in visitMDNode()
940 Check(MD.getValue(), "Expected valid value", &MD); in visitValueAsMetadata()
941 Check(!MD.getValue()->getType()->isMetadataTy(), in visitValueAsMetadata()
948 Check(F, "function-local metadata used outside a function", L); in visitValueAsMetadata()
954 Check(I->getParent(), "function-local metadata not in basic block", L, I); in visitValueAsMetadata()
962 Check(ActualF == F, "function-local metadata used in wrong function", L); in visitValueAsMetadata()
1530 Check(!GV->hasPrivateLinkage(), "comdat global value has private linkage", in visitComdat()
1542 Check(N->getNumOperands() == 1, in visitModuleIdents()
1544 Check(dyn_cast_or_null<MDString>(N->getOperand(0)), in visitModuleIdents()
1560 Check(N->getNumOperands() == 1, in visitModuleCommandLines()
1562 Check(dyn_cast_or_null<MDString>(N->getOperand(0)), in visitModuleCommandLines()
1606 Check(Op->getNumOperands() == 3, in visitModuleFlag()
1610 Check(mdconst::dyn_extract_or_null<ConstantInt>(Op->getOperand(0)), in visitModuleFlag()
1613 Check(false, in visitModuleFlag()
1618 Check(ID, "invalid ID operand in module flag (expected metadata string)", in visitModuleFlag()
1631 Check(V && V->getValue().isNonNegative(), in visitModuleFlag()
1639 Check(mdconst::dyn_extract_or_null<ConstantInt>(Op->getOperand(2)), in visitModuleFlag()
1649 Check(Value && Value->getNumOperands() == 2, in visitModuleFlag()
1652 Check(isa<MDString>(Value->getOperand(0)), in visitModuleFlag()
1666 Check(isa<MDNode>(Op->getOperand(2)), in visitModuleFlag()
1677 Check(Inserted, in visitModuleFlag()
1684 Check(Value, "wchar_size metadata requires constant integer argument"); in visitModuleFlag()
1691 Check(M.getNamedMetadata("llvm.linker.options"), in visitModuleFlag()
1698 Check(Value, in visitModuleFlag()
1713 Check(F && isa<Function>(F->getValue()->stripPointerCasts()), in visitModuleFlagCGProfileEntry()
1717 Check(Node && Node->getNumOperands() == 3, "expected a MDNode triple", MDO); in visitModuleFlagCGProfileEntry()
1721 Check(Count && Count->getType()->isIntegerTy(), in visitModuleFlagCGProfileEntry()
1761 Check(Attr.isStringAttribute() || in verifyParameterAttrs()
1767 Check(Attrs.getNumAttributes() == 1, in verifyParameterAttrs()
1781 Check(AttrCount <= 1, in verifyParameterAttrs()
1786 Check(!(Attrs.hasAttribute(Attribute::InAlloca) && in verifyParameterAttrs()
1792 Check(!(Attrs.hasAttribute(Attribute::StructRet) && in verifyParameterAttrs()
1798 Check(!(Attrs.hasAttribute(Attribute::ZExt) && in verifyParameterAttrs()
1804 Check(!(Attrs.hasAttribute(Attribute::ReadNone) && in verifyParameterAttrs()
1810 Check(!(Attrs.hasAttribute(Attribute::ReadNone) && in verifyParameterAttrs()
1816 Check(!(Attrs.hasAttribute(Attribute::ReadOnly) && in verifyParameterAttrs()
1822 Check(!(Attrs.hasAttribute(Attribute::NoInline) && in verifyParameterAttrs()
1843 Check(AttrAlign <= MaxAlign, in verifyParameterAttrs()
1847 Check(Attrs.getByValType()->isSized(&Visited), in verifyParameterAttrs()
1852 Check(Attrs.getByRefType()->isSized(&Visited), in verifyParameterAttrs()
1857 Check(Attrs.getInAllocaType()->isSized(&Visited), in verifyParameterAttrs()
1862 Check(Attrs.getPreallocatedType()->isSized(&Visited), in verifyParameterAttrs()
1867 Check(!Attrs.hasAttribute(Attribute::SwiftError), in verifyParameterAttrs()
1872 Check(Attrs.getByRefType() == PTy->getNonOpaquePointerElementType(), in verifyParameterAttrs()
1877 Check(Attrs.getByValType() == PTy->getNonOpaquePointerElementType(), in verifyParameterAttrs()
1882 Check(Attrs.getPreallocatedType() == in verifyParameterAttrs()
1888 Check(Attrs.getInAllocaType() == PTy->getNonOpaquePointerElementType(), in verifyParameterAttrs()
1893 Check(Attrs.getElementType() == PTy->getNonOpaquePointerElementType(), in verifyParameterAttrs()
1919 Check(Attrs.hasParentContext(Context), in verifyFunctionAttrs()
1922 Check(!AttrSet.hasAttributes() || AttrSet.hasParentContext(Context), in verifyFunctionAttrs()
1925 Check(A.hasParentContext(Context), in verifyFunctionAttrs()
1941 Check(RetAttr.isStringAttribute() || in verifyFunctionAttrs()
1955 Check(!ArgAttrs.hasAttribute(Attribute::ImmArg), in verifyFunctionAttrs()
1958 Check(!ArgAttrs.hasAttribute(Attribute::ElementType), in verifyFunctionAttrs()
1967 Check(!SawNest, "More than one parameter has attribute nest!", V); in verifyFunctionAttrs()
1972 Check(!SawReturned, "More than one parameter has attribute returned!", V); in verifyFunctionAttrs()
1973 Check(Ty->canLosslesslyBitCastTo(FT->getReturnType()), in verifyFunctionAttrs()
1980 Check(!SawSRet, "Cannot have multiple 'sret' parameters!", V); in verifyFunctionAttrs()
1981 Check(i == 0 || i == 1, in verifyFunctionAttrs()
1987 Check(!SawSwiftSelf, "Cannot have multiple 'swiftself' parameters!", V); in verifyFunctionAttrs()
1992 Check(!SawSwiftAsync, "Cannot have multiple 'swiftasync' parameters!", V); in verifyFunctionAttrs()
1997 Check(!SawSwiftError, "Cannot have multiple 'swifterror' parameters!", V); in verifyFunctionAttrs()
2002 Check(i == FT->getNumParams() - 1, in verifyFunctionAttrs()
2012 Check(FnAttr.isStringAttribute() || in verifyFunctionAttrs()
2018 Check(!(Attrs.hasFnAttr(Attribute::ReadNone) && in verifyFunctionAttrs()
2022 Check(!(Attrs.hasFnAttr(Attribute::ReadNone) && in verifyFunctionAttrs()
2026 Check(!(Attrs.hasFnAttr(Attribute::ReadOnly) && in verifyFunctionAttrs()
2030 Check(!(Attrs.hasFnAttr(Attribute::ReadNone) && in verifyFunctionAttrs()
2036 Check(!(Attrs.hasFnAttr(Attribute::ReadNone) && in verifyFunctionAttrs()
2040 Check(!(Attrs.hasFnAttr(Attribute::NoInline) && in verifyFunctionAttrs()
2045 Check(Attrs.hasFnAttr(Attribute::NoInline), in verifyFunctionAttrs()
2048 Check(!Attrs.hasFnAttr(Attribute::OptimizeForSize), in verifyFunctionAttrs()
2051 Check(!Attrs.hasFnAttr(Attribute::MinSize), in verifyFunctionAttrs()
2057 Check(GV->hasGlobalUnnamedAddr(), in verifyFunctionAttrs()
2133 Check(MD->getNumOperands() >= 2, in verifyFunctionMetadata()
2137 Check(MD->getOperand(0) != nullptr, "first operand should not be null", in verifyFunctionMetadata()
2139 Check(isa<MDString>(MD->getOperand(0)), in verifyFunctionMetadata()
2143 Check(ProfName.equals("function_entry_count") || in verifyFunctionMetadata()
2150 Check(MD->getOperand(1) != nullptr, "second operand should not be null", in verifyFunctionMetadata()
2152 Check(isa<ConstantAsMetadata>(MD->getOperand(1)), in verifyFunctionMetadata()
2175 Check(GV->getParent() == &M, "Referencing global in another module!", in visitConstantExprsRecursively()
2194 Check(CastInst::castIsValid(Instruction::BitCast, CE->getOperand(0), in visitConstantExpr()
2221 Check(Arg->getType()->isPointerTy(), in verifyInlineAsmCall()
2224 Check(Call.getParamElementType(ArgNo), in verifyInlineAsmCall()
2228 Check(!Call.paramHasAttr(ArgNo, Attribute::ElementType), in verifyInlineAsmCall()
2238 Check(LabelNo == CallBr->getNumIndirectDests(), in verifyInlineAsmCall()
2242 Check(LabelNo == 0, "Label constraints can only be used with callbr", in verifyInlineAsmCall()
2253 Check(!Call.doesNotAccessMemory() && !Call.onlyReadsMemory() && in verifyStatepoint()
2262 Check(NumPatchBytes >= 0, in verifyStatepoint()
2268 Check(TargetElemType, in verifyStatepoint()
2271 Check(TargetFuncType, in verifyStatepoint()
2275 Check(NumCallArgs >= 0, in verifyStatepoint()
2281 Check(NumCallArgs >= NumParams, in verifyStatepoint()
2285 Check(TargetFuncType->getReturnType()->isVoidTy(), in verifyStatepoint()
2290 Check(NumCallArgs == NumParams, in verifyStatepoint()
2295 Check((Flags & ~(uint64_t)StatepointFlags::MaskAll) == 0, in verifyStatepoint()
2304 Check(ArgType == ParamType, in verifyStatepoint()
2311 Check(!ArgAttrs.hasAttribute(Attribute::StructRet), in verifyStatepoint()
2319 Check(isa<ConstantInt>(NumTransitionArgsV), in verifyStatepoint()
2325 Check(NumTransitionArgs == 0, in verifyStatepoint()
2330 Check(isa<ConstantInt>(NumDeoptArgsV), in verifyStatepoint()
2335 Check(NumDeoptArgs == 0, in verifyStatepoint()
2339 Check(ExpectedNumArgs == (int)Call.arg_size(), in verifyStatepoint()
2347 Check(UserCall, "illegal use of statepoint token", Call, U); in verifyStatepoint()
2350 Check(isa<GCRelocateInst>(UserCall) || isa<GCResultInst>(UserCall), in verifyStatepoint()
2355 Check(UserCall->getArgOperand(0) == &Call, in verifyStatepoint()
2358 Check(UserCall->getArgOperand(0) == &Call, in verifyStatepoint()
2378 Check(MaxRecoveredIndex <= EscapedObjectCount, in verifyFrameRecoverIndices()
2419 Check(false, "EH pads can't handle each other's exceptions", in verifySiblingFuncletUnwinds()
2448 Check(&Context == &F.getContext(), in visitFunction()
2451 Check(!F.hasCommonLinkage(), "Functions may not have common linkage", &F); in visitFunction()
2452 Check(FT->getNumParams() == NumArgs, in visitFunction()
2455 Check(F.getReturnType()->isFirstClassType() || in visitFunction()
2459 Check(!F.hasStructRetAttr() || F.getReturnType()->isVoidTy(), in visitFunction()
2464 Check(verifyAttributeCount(Attrs, FT->getNumParams()), in visitFunction()
2475 Check(!Attrs.hasFnAttr(Attribute::Builtin), in visitFunction()
2478 Check(!Attrs.hasAttrSomewhere(Attribute::ElementType), in visitFunction()
2489 Check(F.arg_empty() || Attrs.hasParamAttr(0, Attribute::ByVal), in visitFunction()
2495 Check(F.getReturnType()->isVoidTy(), in visitFunction()
2503 Check(!F.hasStructRetAttr(), "Calling convention does not allow sret", &F); in visitFunction()
2508 Check(!Attrs.hasParamAttr(i, Attribute::ByVal), in visitFunction()
2510 Check(!Attrs.hasParamAttr(i, Attribute::Preallocated), in visitFunction()
2512 Check(!Attrs.hasParamAttr(i, Attribute::InAlloca), in visitFunction()
2518 Check(Arg.getType()->getPointerAddressSpace() != StackAS, in visitFunction()
2532 Check(!F.isVarArg(), in visitFunction()
2542 Check(Arg.getType() == FT->getParamType(i), in visitFunction()
2545 Check(Arg.getType()->isFirstClassType(), in visitFunction()
2548 Check(!Arg.getType()->isMetadataTy(), in visitFunction()
2550 Check(!Arg.getType()->isTokenTy(), in visitFunction()
2552 Check(!Arg.getType()->isX86_AMXTy(), in visitFunction()
2564 Check(!F.getReturnType()->isTokenTy(), in visitFunction()
2566 Check(!F.getReturnType()->isX86_AMXTy(), in visitFunction()
2580 Check(Per->getParent() == F.getParent(), in visitFunction()
2587 Check(MDs.empty(), "unmaterialized function cannot have metadata", &F, in visitFunction()
2596 Check(I.first != LLVMContext::MD_prof, in visitFunction()
2602 Check(!F.hasPersonalityFn(), in visitFunction()
2607 Check(!IsIntrinsic, "llvm intrinsics cannot be defined!", &F); in visitFunction()
2611 Check(pred_empty(Entry), in visitFunction()
2616 Check(!BlockAddress::lookup(Entry)->isConstantUsed(), in visitFunction()
2648 Check(NumProfAttachments == 1, in visitFunction()
2666 Check(false, "Invalid user of intrinsic instruction!", U); in visitFunction()
2673 Check(FT->getNumParams() == 1, "wrong number of parameters", F); in visitFunction()
2674 Check(isa<PointerType>(F.getReturnType()), in visitFunction()
2676 Check(FT->getParamType(0) == F.getReturnType(), in visitFunction()
2682 Check(FT->getNumParams() == 1, "wrong number of parameters", F); in visitFunction()
2683 Check(isa<PointerType>(FT->getParamType(0)), in visitFunction()
2685 Check(F.getReturnType()->isIntegerTy(), in visitFunction()
2715 Check(Scope, "Failed to find DILocalScope", DL); in visitFunction()
2749 Check(BB.getTerminator(), "Basic Block does not have terminator!", &BB); in visitBasicBlock()
2758 Check(PN.getNumIncomingValues() == Preds.size(), in visitBasicBlock()
2776 Check(i == 0 || Values[i].first != Values[i - 1].first || in visitBasicBlock()
2784 Check(Values[i].first == Preds[i], in visitBasicBlock()
2794 Check(I.getParent() == &BB, "Instruction has bogus parent pointer!"); in visitBasicBlock()
2800 Check(&I == I.getParent()->getTerminator(), in visitTerminator()
2807 Check(BI.getCondition()->getType()->isIntegerTy(1), in visitBranchInst()
2817 Check(N == 0, in visitReturnInst()
2822 Check(N == 1 && F->getReturnType() == RI.getOperand(0)->getType(), in visitReturnInst()
2833 Check(SI.getType()->isVoidTy(), "Switch must have void result type!", &SI); in visitSwitchInst()
2839 Check(Case.getCaseValue()->getType() == SwitchTy, in visitSwitchInst()
2841 Check(Constants.insert(Case.getCaseValue()).second, in visitSwitchInst()
2849 Check(BI.getAddress()->getType()->isPointerTy(), in visitIndirectBrInst()
2852 Check(BI.getDestination(i)->getType()->isLabelTy(), in visitIndirectBrInst()
2859 Check(CBI.isInlineAsm(), "Callbr is currently only used for asm-goto!", &CBI); in visitCallBrInst()
2861 Check(!IA->canThrow(), "Unwinding from Callbr is not allowed"); in visitCallBrInst()
2868 Check(!SelectInst::areInvalidOperands(SI.getOperand(0), SI.getOperand(1), in visitSelectInst()
2872 Check(SI.getTrueValue()->getType() == SI.getType(), in visitSelectInst()
2881 Check(false, "User-defined operators should not live outside of a pass!", &I); in visitUserOp1()
2893 Check(SrcTy->isIntOrIntVectorTy(), "Trunc only operates on integer", &I); in visitTruncInst()
2894 Check(DestTy->isIntOrIntVectorTy(), "Trunc only produces integer", &I); in visitTruncInst()
2895 Check(SrcTy->isVectorTy() == DestTy->isVectorTy(), in visitTruncInst()
2897 Check(SrcBitSize > DestBitSize, "DestTy too big for Trunc", &I); in visitTruncInst()
2908 Check(SrcTy->isIntOrIntVectorTy(), "ZExt only operates on integer", &I); in visitZExtInst()
2909 Check(DestTy->isIntOrIntVectorTy(), "ZExt only produces an integer", &I); in visitZExtInst()
2910 Check(SrcTy->isVectorTy() == DestTy->isVectorTy(), in visitZExtInst()
2915 Check(SrcBitSize < DestBitSize, "Type too small for ZExt", &I); in visitZExtInst()
2929 Check(SrcTy->isIntOrIntVectorTy(), "SExt only operates on integer", &I); in visitSExtInst()
2930 Check(DestTy->isIntOrIntVectorTy(), "SExt only produces an integer", &I); in visitSExtInst()
2931 Check(SrcTy->isVectorTy() == DestTy->isVectorTy(), in visitSExtInst()
2933 Check(SrcBitSize < DestBitSize, "Type too small for SExt", &I); in visitSExtInst()
2946 Check(SrcTy->isFPOrFPVectorTy(), "FPTrunc only operates on FP", &I); in visitFPTruncInst()
2947 Check(DestTy->isFPOrFPVectorTy(), "FPTrunc only produces an FP", &I); in visitFPTruncInst()
2948 Check(SrcTy->isVectorTy() == DestTy->isVectorTy(), in visitFPTruncInst()
2950 Check(SrcBitSize > DestBitSize, "DestTy too big for FPTrunc", &I); in visitFPTruncInst()
2964 Check(SrcTy->isFPOrFPVectorTy(), "FPExt only operates on FP", &I); in visitFPExtInst()
2965 Check(DestTy->isFPOrFPVectorTy(), "FPExt only produces an FP", &I); in visitFPExtInst()
2966 Check(SrcTy->isVectorTy() == DestTy->isVectorTy(), in visitFPExtInst()
2968 Check(SrcBitSize < DestBitSize, "DestTy too small for FPExt", &I); in visitFPExtInst()
2981 Check(SrcVec == DstVec, in visitUIToFPInst()
2983 Check(SrcTy->isIntOrIntVectorTy(), in visitUIToFPInst()
2985 Check(DestTy->isFPOrFPVectorTy(), "UIToFP result must be FP or FP vector", in visitUIToFPInst()
2989 Check(cast<VectorType>(SrcTy)->getElementCount() == in visitUIToFPInst()
3004 Check(SrcVec == DstVec, in visitSIToFPInst()
3006 Check(SrcTy->isIntOrIntVectorTy(), in visitSIToFPInst()
3008 Check(DestTy->isFPOrFPVectorTy(), "SIToFP result must be FP or FP vector", in visitSIToFPInst()
3012 Check(cast<VectorType>(SrcTy)->getElementCount() == in visitSIToFPInst()
3027 Check(SrcVec == DstVec, in visitFPToUIInst()
3029 Check(SrcTy->isFPOrFPVectorTy(), "FPToUI source must be FP or FP vector", &I); in visitFPToUIInst()
3030 Check(DestTy->isIntOrIntVectorTy(), in visitFPToUIInst()
3034 Check(cast<VectorType>(SrcTy)->getElementCount() == in visitFPToUIInst()
3049 Check(SrcVec == DstVec, in visitFPToSIInst()
3051 Check(SrcTy->isFPOrFPVectorTy(), "FPToSI source must be FP or FP vector", &I); in visitFPToSIInst()
3052 Check(DestTy->isIntOrIntVectorTy(), in visitFPToSIInst()
3056 Check(cast<VectorType>(SrcTy)->getElementCount() == in visitFPToSIInst()
3068 Check(SrcTy->isPtrOrPtrVectorTy(), "PtrToInt source must be pointer", &I); in visitPtrToIntInst()
3070 Check(DestTy->isIntOrIntVectorTy(), "PtrToInt result must be integral", &I); in visitPtrToIntInst()
3071 Check(SrcTy->isVectorTy() == DestTy->isVectorTy(), "PtrToInt type mismatch", in visitPtrToIntInst()
3077 Check(VSrc->getElementCount() == VDest->getElementCount(), in visitPtrToIntInst()
3089 Check(SrcTy->isIntOrIntVectorTy(), "IntToPtr source must be an integral", &I); in visitIntToPtrInst()
3090 Check(DestTy->isPtrOrPtrVectorTy(), "IntToPtr result must be a pointer", &I); in visitIntToPtrInst()
3092 Check(SrcTy->isVectorTy() == DestTy->isVectorTy(), "IntToPtr type mismatch", in visitIntToPtrInst()
3097 Check(VSrc->getElementCount() == VDest->getElementCount(), in visitIntToPtrInst()
3104 Check( in visitBitCastInst()
3114 Check(SrcTy->isPtrOrPtrVectorTy(), "AddrSpaceCast source must be a pointer", in visitAddrSpaceCastInst()
3116 Check(DestTy->isPtrOrPtrVectorTy(), "AddrSpaceCast result must be a pointer", in visitAddrSpaceCastInst()
3118 Check(SrcTy->getPointerAddressSpace() != DestTy->getPointerAddressSpace(), in visitAddrSpaceCastInst()
3121 Check(SrcVTy->getElementCount() == in visitAddrSpaceCastInst()
3134 Check(&PN == &PN.getParent()->front() || in visitPHINode()
3139 Check(!PN.getType()->isTokenTy(), "PHI nodes cannot have token type!"); in visitPHINode()
3144 Check(PN.getType() == IncValue->getType(), in visitPHINode()
3154 Check(Call.getCalledOperand()->getType()->isPointerTy(), in visitCallBase()
3158 Check(FPTy->isOpaqueOrPointeeTypeMatches(Call.getFunctionType()), in visitCallBase()
3165 Check(Call.arg_size() >= FTy->getNumParams(), in visitCallBase()
3168 Check(Call.arg_size() == FTy->getNumParams(), in visitCallBase()
3173 Check(Call.getArgOperand(i)->getType() == FTy->getParamType(i), in visitCallBase()
3179 Check(verifyAttributeCount(Attrs, Call.arg_size()), in visitCallBase()
3187 Check(ABIAlign <= MaxAlign, in visitCallBase()
3201 Check(Callee->getValueType() == FTy, in visitCallBase()
3207 Check(Callee && Callee->isSpeculatable(), in visitCallBase()
3212 Check(Call.getCalledFunction()->getIntrinsicID() == in visitCallBase()
3227 Check(AI->isUsedWithInAlloca(), in visitCallBase()
3238 Check(AI->isSwiftError(), in visitCallBase()
3243 Check(ArgI, "swifterror argument should come from an alloca or parameter", in visitCallBase()
3245 Check(ArgI->hasSwiftErrorAttr(), in visitCallBase()
3253 Check(Callee && Callee->hasParamAttribute(i, Attribute::ImmArg), in visitCallBase()
3260 Check(isa<ConstantInt>(ArgVal) || isa<ConstantFP>(ArgVal), in visitCallBase()
3269 Check(hasOB != isMustTail, in visitCallBase()
3295 Check(!SawNest, "More than one parameter has attribute nest!", Call); in visitCallBase()
3300 Check(!SawReturned, "More than one parameter has attribute returned!", in visitCallBase()
3302 Check(Ty->canLosslesslyBitCastTo(FTy->getReturnType()), in visitCallBase()
3314 Check(!ArgAttrs.hasAttribute(Attribute::StructRet), in visitCallBase()
3319 Check(Idx == Call.arg_size() - 1, in visitCallBase()
3327 Check(!ParamTy->isMetadataTy(), in visitCallBase()
3329 Check(!ParamTy->isTokenTy(), in visitCallBase()
3336 Check(!FTy->getReturnType()->isTokenTy(), in visitCallBase()
3338 Check(!FTy->getReturnType()->isX86_AMXTy(), in visitCallBase()
3358 Check(!FoundDeoptBundle, "Multiple deopt operand bundles", Call); in visitCallBase()
3361 Check(!FoundGCTransitionBundle, "Multiple gc-transition operand bundles", in visitCallBase()
3365 Check(!FoundFuncletBundle, "Multiple funclet operand bundles", Call); in visitCallBase()
3367 Check(BU.Inputs.size() == 1, in visitCallBase()
3369 Check(isa<FuncletPadInst>(BU.Inputs.front()), in visitCallBase()
3373 Check(!FoundCFGuardTargetBundle, "Multiple CFGuardTarget operand bundles", in visitCallBase()
3376 Check(BU.Inputs.size() == 1, in visitCallBase()
3379 Check(!FoundPtrauthBundle, "Multiple ptrauth operand bundles", Call); in visitCallBase()
3381 Check(BU.Inputs.size() == 2, in visitCallBase()
3383 Check(isa<ConstantInt>(BU.Inputs[0]) && in visitCallBase()
3386 Check(BU.Inputs[1]->getType()->isIntegerTy(64), in visitCallBase()
3389 Check(!FoundPreallocatedBundle, "Multiple preallocated operand bundles", in visitCallBase()
3392 Check(BU.Inputs.size() == 1, in visitCallBase()
3395 Check(Input && in visitCallBase()
3401 Check(!FoundGCLiveBundle, "Multiple gc-live operand bundles", Call); in visitCallBase()
3404 Check(!FoundAttachedCallBundle, in visitCallBase()
3412 Check(!(Call.getCalledFunction() && FoundPtrauthBundle), in visitCallBase()
3433 Check(!Attrs.contains(Attribute::InAlloca), in verifyTailCCMustTailAttrs()
3435 Check(!Attrs.contains(Attribute::InReg), in verifyTailCCMustTailAttrs()
3437 Check(!Attrs.contains(Attribute::SwiftError), in verifyTailCCMustTailAttrs()
3439 Check(!Attrs.contains(Attribute::Preallocated), in verifyTailCCMustTailAttrs()
3441 Check(!Attrs.contains(Attribute::ByRef), in verifyTailCCMustTailAttrs()
3479 Check(!CI.isInlineAsm(), "cannot use musttail call with inline asm", &CI); in verifyMustTailCall()
3484 Check(CallerTy->isVarArg() == CalleeTy->isVarArg(), in verifyMustTailCall()
3486 Check(isTypeCongruent(CallerTy->getReturnType(), CalleeTy->getReturnType()), in verifyMustTailCall()
3490 Check(F->getCallingConv() == CI.getCallingConv(), in verifyMustTailCall()
3502 Check(BI->getOperand(0) == RetVal, in verifyMustTailCall()
3510 Check(Ret, "musttail call must precede a ret with an optional bitcast", &CI); in verifyMustTailCall()
3511 Check(!Ret->getReturnValue() || Ret->getReturnValue() == RetVal || in verifyMustTailCall()
3535 Check(!CallerTy->isVarArg(), Twine("cannot guarantee ") + CCName + in verifyMustTailCall()
3544 Check(CallerTy->getNumParams() == CalleeTy->getNumParams(), in verifyMustTailCall()
3547 Check( in verifyMustTailCall()
3558 Check(CallerABIAttrs == CalleeABIAttrs, in verifyMustTailCall()
3577 Check( in visitInvokeInst()
3588 Check(U.getType() == U.getOperand(0)->getType(), in visitUnaryOperator()
3597 Check(U.getType()->isFPOrFPVectorTy(), in visitUnaryOperator()
3611 Check(B.getOperand(0)->getType() == B.getOperand(1)->getType(), in visitBinaryOperator()
3624 Check(B.getType()->isIntOrIntVectorTy(), in visitBinaryOperator()
3626 Check(B.getType() == B.getOperand(0)->getType(), in visitBinaryOperator()
3638 Check(B.getType()->isFPOrFPVectorTy(), in visitBinaryOperator()
3642 Check(B.getType() == B.getOperand(0)->getType(), in visitBinaryOperator()
3651 Check(B.getType()->isIntOrIntVectorTy(), in visitBinaryOperator()
3653 Check(B.getType() == B.getOperand(0)->getType(), in visitBinaryOperator()
3659 Check(B.getType()->isIntOrIntVectorTy(), in visitBinaryOperator()
3661 Check(B.getType() == B.getOperand(0)->getType(), in visitBinaryOperator()
3675 Check(Op0Ty == Op1Ty, in visitICmpInst()
3678 Check(Op0Ty->isIntOrIntVectorTy() || Op0Ty->isPtrOrPtrVectorTy(), in visitICmpInst()
3681 Check(IC.isIntPredicate(), "Invalid predicate in ICmp instruction!", &IC); in visitICmpInst()
3690 Check(Op0Ty == Op1Ty, in visitFCmpInst()
3693 Check(Op0Ty->isFPOrFPVectorTy(), "Invalid operand types for FCmp instruction", in visitFCmpInst()
3696 Check(FC.isFPPredicate(), "Invalid predicate in FCmp instruction!", &FC); in visitFCmpInst()
3702 Check(ExtractElementInst::isValidOperands(EI.getOperand(0), EI.getOperand(1)), in visitExtractElementInst()
3708 Check(InsertElementInst::isValidOperands(IE.getOperand(0), IE.getOperand(1), in visitInsertElementInst()
3715 Check(ShuffleVectorInst::isValidOperands(SV.getOperand(0), SV.getOperand(1), in visitShuffleVectorInst()
3724 Check(isa<PointerType>(TargetTy), in visitGetElementPtrInst()
3726 Check(GEP.getSourceElementType()->isSized(), "GEP into unsized type!", &GEP); in visitGetElementPtrInst()
3729 Check( in visitGetElementPtrInst()
3734 Check(ElTy, "Invalid indices for GEP pointer type!", &GEP); in visitGetElementPtrInst()
3736 Check(GEP.getType()->isPtrOrPtrVectorTy() && in visitGetElementPtrInst()
3744 Check( in visitGetElementPtrInst()
3752 Check(IndexWidth == GEPWidth, "Invalid GEP index vector width", &GEP); in visitGetElementPtrInst()
3754 Check(IndexTy->isIntOrIntVectorTy(), in visitGetElementPtrInst()
3760 Check(GEP.getAddressSpace() == PTy->getAddressSpace(), in visitGetElementPtrInst()
3776 Check(NumOperands % 2 == 0, "Unfinished range!", Range); in visitRangeMetadata()
3778 Check(NumRanges >= 1, "It should have at least one range!", Range); in visitRangeMetadata()
3784 Check(Low, "The lower limit must be an integer!", Low); in visitRangeMetadata()
3787 Check(High, "The upper limit must be an integer!", High); in visitRangeMetadata()
3788 Check(High->getType() == Low->getType() && High->getType() == Ty, in visitRangeMetadata()
3794 Check(!CurRange.isEmptySet() && !CurRange.isFullSet(), in visitRangeMetadata()
3797 Check(CurRange.intersectWith(LastRange).isEmptySet(), in visitRangeMetadata()
3799 Check(LowV.sgt(LastRange.getLower()), "Intervals are not in order", in visitRangeMetadata()
3801 Check(!isContiguous(CurRange, LastRange), "Intervals are contiguous", in visitRangeMetadata()
3812 Check(FirstRange.intersectWith(LastRange).isEmptySet(), in visitRangeMetadata()
3814 Check(!isContiguous(FirstRange, LastRange), "Intervals are contiguous", in visitRangeMetadata()
3821 Check(Size >= 8, "atomic memory access' size must be byte-sized", Ty, I); in checkAtomicMemAccessSize()
3822 Check(!(Size & (Size - 1)), in checkAtomicMemAccessSize()
3828 Check(PTy, "Load operand must be a pointer.", &LI); in visitLoadInst()
3831 Check(A->value() <= Value::MaximumAlignment, in visitLoadInst()
3834 Check(ElTy->isSized(), "loading unsized types is not allowed", &LI); in visitLoadInst()
3836 Check(LI.getOrdering() != AtomicOrdering::Release && in visitLoadInst()
3839 Check(ElTy->isIntOrPtrTy() || ElTy->isFloatingPointTy(), in visitLoadInst()
3845 Check(LI.getSyncScopeID() == SyncScope::System, in visitLoadInst()
3854 Check(PTy, "Store operand must be a pointer.", &SI); in visitStoreInst()
3856 Check(PTy->isOpaqueOrPointeeTypeMatches(ElTy), in visitStoreInst()
3859 Check(A->value() <= Value::MaximumAlignment, in visitStoreInst()
3862 Check(ElTy->isSized(), "storing unsized types is not allowed", &SI); in visitStoreInst()
3864 Check(SI.getOrdering() != AtomicOrdering::Acquire && in visitStoreInst()
3867 Check(ElTy->isIntOrPtrTy() || ElTy->isFloatingPointTy(), in visitStoreInst()
3873 Check(SI.getSyncScopeID() == SyncScope::System, in visitStoreInst()
3884 Check(Call.paramHasAttr(I.index(), Attribute::SwiftError), in verifySwiftErrorCall()
3896 Check(isa<LoadInst>(U) || isa<StoreInst>(U) || isa<CallInst>(U) || in verifySwiftErrorValue()
3903 Check(StoreI->getOperand(1) == SwiftErrorVal, in verifySwiftErrorValue()
3914 Check(AI.getAllocatedType()->isSized(&Visited), in visitAllocaInst()
3916 Check(AI.getArraySize()->getType()->isIntegerTy(), in visitAllocaInst()
3919 Check(A->value() <= Value::MaximumAlignment, in visitAllocaInst()
3924 Check(AI.getAllocatedType()->isPointerTy(), in visitAllocaInst()
3926 Check(!AI.isArrayAllocation(), in visitAllocaInst()
3936 Check(ElTy->isIntOrPtrTy(), in visitAtomicCmpXchgInst()
3943 Check(RMWI.getOrdering() != AtomicOrdering::Unordered, in visitAtomicRMWInst()
3948 Check(ElTy->isIntegerTy() || ElTy->isFloatingPointTy() || in visitAtomicRMWInst()
3954 Check(ElTy->isFloatingPointTy(), in visitAtomicRMWInst()
3959 Check(ElTy->isIntegerTy(), in visitAtomicRMWInst()
3965 Check(AtomicRMWInst::FIRST_BINOP <= Op && Op <= AtomicRMWInst::LAST_BINOP, in visitAtomicRMWInst()
3972 Check(Ordering == AtomicOrdering::Acquire || in visitFenceInst()
3983 Check(ExtractValueInst::getIndexedType(EVI.getAggregateOperand()->getType(), in visitExtractValueInst()
3991 Check(ExtractValueInst::getIndexedType(IVI.getAggregateOperand()->getType(), in visitInsertValueInst()
4012 Check(BB != &F->getEntryBlock(), "EH pad cannot be in entry block.", &I); in visitEHPadPredecessors()
4020 Check(II && II->getUnwindDest() == BB && II->getNormalDest() != BB, in visitEHPadPredecessors()
4029 Check(BB->getUniquePredecessor() == CPI->getCatchSwitch()->getParent(), in visitEHPadPredecessors()
4033 Check(BB != CPI->getCatchSwitch()->getUnwindDest(), in visitEHPadPredecessors()
4047 Check(II->getUnwindDest() == BB && II->getNormalDest() != BB, in visitEHPadPredecessors()
4055 Check(FromPad != ToPadParent, "A cleanupret must exit its cleanup", CRI); in visitEHPadPredecessors()
4059 Check(false, "EH pad must be jumped to via an unwind edge", ToPad, TI); in visitEHPadPredecessors()
4065 Check(FromPad != ToPad, in visitEHPadPredecessors()
4071 Check(!isa<ConstantTokenNone>(FromPad), in visitEHPadPredecessors()
4073 Check(Seen.insert(FromPad).second, "EH pad jumps through a cycle of pads", in visitEHPadPredecessors()
4078 Check(isa<FuncletPadInst>(FromPad) || isa<CatchSwitchInst>(FromPad), in visitEHPadPredecessors()
4087 Check(LPI.getNumClauses() > 0 || LPI.isCleanup(), in visitLandingPadInst()
4095 Check(LandingPadResultTy == LPI.getType(), in visitLandingPadInst()
4101 Check(F->hasPersonalityFn(), in visitLandingPadInst()
4106 Check(LPI.getParent()->getLandingPadInst() == &LPI, in visitLandingPadInst()
4112 Check(isa<PointerType>(Clause->getType()), in visitLandingPadInst()
4115 Check(LPI.isFilter(i), "Clause is neither catch nor filter!", &LPI); in visitLandingPadInst()
4116 Check(isa<ConstantArray>(Clause) || isa<ConstantAggregateZero>(Clause), in visitLandingPadInst()
4125 Check(RI.getFunction()->hasPersonalityFn(), in visitResumeInst()
4131 Check(LandingPadResultTy == RI.getValue()->getType(), in visitResumeInst()
4143 Check(F->hasPersonalityFn(), in visitCatchPadInst()
4146 Check(isa<CatchSwitchInst>(CPI.getParentPad()), in visitCatchPadInst()
4152 Check(BB->getFirstNonPHI() == &CPI, in visitCatchPadInst()
4160 Check(isa<CatchPadInst>(CatchReturn.getOperand(0)), in visitCatchReturnInst()
4171 Check(F->hasPersonalityFn(), in visitCleanupPadInst()
4176 Check(BB->getFirstNonPHI() == &CPI, in visitCleanupPadInst()
4180 Check(isa<ConstantTokenNone>(ParentPad) || isa<FuncletPadInst>(ParentPad), in visitCleanupPadInst()
4195 Check(Seen.insert(CurrentPad).second, in visitFuncletPadInst()
4224 Check(isa<CatchReturnInst>(U), "Bogus funclet pad use", U); in visitFuncletPadInst()
4274 Check(UnwindPad == FirstUnwindPad, in visitFuncletPadInst()
4337 Check(SwitchUnwindPad == FirstUnwindPad, in visitFuncletPadInst()
4351 Check(F->hasPersonalityFn(), in visitCatchSwitchInst()
4357 Check(BB->getFirstNonPHI() == &CatchSwitch, in visitCatchSwitchInst()
4362 Check(isa<ConstantTokenNone>(ParentPad) || isa<FuncletPadInst>(ParentPad), in visitCatchSwitchInst()
4367 Check(I->isEHPad() && !isa<LandingPadInst>(I), in visitCatchSwitchInst()
4377 Check(CatchSwitch.getNumHandlers() != 0, in visitCatchSwitchInst()
4381 Check(isa<CatchPadInst>(Handler->getFirstNonPHI()), in visitCatchSwitchInst()
4390 Check(isa<CleanupPadInst>(CRI.getOperand(0)), in visitCleanupReturnInst()
4396 Check(I->isEHPad() && !isa<LandingPadInst>(I), in visitCleanupReturnInst()
4426 Check(DT.dominates(Op, U), "Instruction does not dominate all uses!", Op, &I); in verifyDominatesUse()
4430 Check(I.getType()->isPointerTy(), in visitDereferenceableMetadata()
4434 Check((isa<LoadInst>(I) || isa<IntToPtrInst>(I)), in visitDereferenceableMetadata()
4438 Check(MD->getNumOperands() == 1, in visitDereferenceableMetadata()
4443 Check(CI && CI->getType()->isIntegerTy(64), in visitDereferenceableMetadata()
4450 Check(MD->getNumOperands() >= 2, in visitProfMetadata()
4454 Check(MD->getOperand(0) != nullptr, "first operand should not be null", MD); in visitProfMetadata()
4455 Check(isa<MDString>(MD->getOperand(0)), in visitProfMetadata()
4463 Check(MD->getNumOperands() == 2 || MD->getNumOperands() == 3, in visitProfMetadata()
4481 Check(MD->getNumOperands() == 1 + ExpectedNumOperands, in visitProfMetadata()
4486 Check(MDO, "second operand should not be null", MD); in visitProfMetadata()
4487 Check(mdconst::dyn_extract<ConstantInt>(MDO), in visitProfMetadata()
4496 Check(MD->getNumOperands() >= 1, in visitCallStackMetadata()
4500 Check(mdconst::dyn_extract_or_null<ConstantInt>(Op), in visitCallStackMetadata()
4505 Check(isa<CallBase>(I), "!memprof metadata should only exist on calls", &I); in visitMemProfMetadata()
4506 Check(MD->getNumOperands() >= 1, in visitMemProfMetadata()
4517 Check(MIB->getNumOperands() >= 2, in visitMemProfMetadata()
4521 Check(MIB->getOperand(0) != nullptr, in visitMemProfMetadata()
4523 Check(isa<MDNode>(MIB->getOperand(0)), in visitMemProfMetadata()
4529 Check(std::all_of(MIB->op_begin() + 1, MIB->op_end(), in visitMemProfMetadata()
4536 Check(isa<CallBase>(I), "!callsite metadata should only exist on calls", &I); in visitCallsiteMetadata()
4543 Check(isa<MDTuple>(Annotation), "annotation must be a tuple"); in visitAnnotationMetadata()
4544 Check(Annotation->getNumOperands() >= 1, in visitAnnotationMetadata()
4547 Check(isa<MDString>(Op.get()), "operands must be strings"); in visitAnnotationMetadata()
4552 Check(NumOps >= 2 && NumOps <= 3, "scope must have two or three operands", in visitAliasScopeMetadata()
4554 Check(MD->getOperand(0).get() == MD || isa<MDString>(MD->getOperand(0)), in visitAliasScopeMetadata()
4557 Check(isa<MDString>(MD->getOperand(2)), in visitAliasScopeMetadata()
4561 Check(Domain != nullptr, "second scope operand must be MDNode", MD); in visitAliasScopeMetadata()
4564 Check(NumDomainOps >= 1 && NumDomainOps <= 2, in visitAliasScopeMetadata()
4566 Check(Domain->getOperand(0).get() == Domain || in visitAliasScopeMetadata()
4570 Check(isa<MDString>(Domain->getOperand(1)), in visitAliasScopeMetadata()
4577 Check(OpMD != nullptr, "scope list must consist of MDNodes", MD); in visitAliasScopeListMetadata()
4594 Check(OpMD != nullptr, "Access scope list must consist of MDNodes", MD); in visitAccessGroupMetadata()
4595 Check(IsValidAccessScope(OpMD), in visitAccessGroupMetadata()
4604 Check(BB, "Instruction not embedded in basic block!", &I); in visitInstruction()
4608 Check(U != (User *)&I || !DT.isReachableFromEntry(BB), in visitInstruction()
4614 Check(!I.getType()->isVoidTy() || !I.hasName(), in visitInstruction()
4619 Check(I.getType()->isVoidTy() || I.getType()->isFirstClassType(), in visitInstruction()
4624 Check(!I.getType()->isMetadataTy() || isa<CallInst>(I) || isa<InvokeInst>(I), in visitInstruction()
4632 Check(Used->getParent() != nullptr, in visitInstruction()
4647 Check(I.getOperand(i) != nullptr, "Instruction has null operand!", &I); in visitInstruction()
4652 Check(false, "Instruction operands must be first-class values!", &I); in visitInstruction()
4668 Check((!F->isIntrinsic() || in visitInstruction()
4672 Check(!F->isIntrinsic() || isa<CallInst>(I) || in visitInstruction()
4689 Check(F->getParent() == &M, "Referencing function in another module!", &I, in visitInstruction()
4692 Check(OpBB->getParent() == BB->getParent(), in visitInstruction()
4695 Check(OpArg->getParent() == BB->getParent(), in visitInstruction()
4698 Check(GV->getParent() == &M, "Referencing global in another module!", &I, in visitInstruction()
4703 Check(CBI && &CBI->getCalledOperandUse() == &I.getOperandUse(i), in visitInstruction()
4715 Check(I.getType()->isFPOrFPVectorTy(), in visitInstruction()
4717 Check(MD->getNumOperands() == 1, "fpmath takes one operand!", &I); in visitInstruction()
4721 Check(&Accuracy.getSemantics() == &APFloat::IEEEsingle(), in visitInstruction()
4723 Check(Accuracy.isFiniteNonZero() && !Accuracy.isNegative(), in visitInstruction()
4726 Check(false, "invalid fpmath accuracy!", &I); in visitInstruction()
4731 Check(isa<LoadInst>(I) || isa<CallInst>(I) || isa<InvokeInst>(I), in visitInstruction()
4737 Check(isa<LoadInst>(I) || isa<StoreInst>(I), in visitInstruction()
4742 Check(I.getType()->isPointerTy(), "nonnull applies only to pointer types", in visitInstruction()
4744 Check(isa<LoadInst>(I), in visitInstruction()
4768 Check(I.getType()->isPointerTy(), "align applies only to pointer types", in visitInstruction()
4770 Check(isa<LoadInst>(I), in visitInstruction()
4774 Check(AlignMD->getNumOperands() == 1, "align takes one operand!", &I); in visitInstruction()
4776 Check(CI && CI->getType()->isIntegerTy(64), in visitInstruction()
4779 Check(isPowerOf2_64(Align), "align metadata value must be a power of 2!", in visitInstruction()
4781 Check(Align <= Value::MaximumAlignment, in visitInstruction()
4824 Check(IF->isDeclaration(), "Intrinsic functions should never be defined!", in visitIntrinsicCall()
4840 Check(Res != Intrinsic::MatchIntrinsicTypes_NoMatchRet, in visitIntrinsicCall()
4842 Check(Res != Intrinsic::MatchIntrinsicTypes_NoMatchArg, in visitIntrinsicCall()
4847 Check(!Intrinsic::matchIntrinsicVarArg(IsVarArg, TableRef), in visitIntrinsicCall()
4850 Check(!Intrinsic::matchIntrinsicVarArg(IsVarArg, TableRef), in visitIntrinsicCall()
4854 Check(TableRef.empty(), "Intrinsic has too few arguments!", IF); in visitIntrinsicCall()
4862 Check(ExpectedName == IF->getName(), in visitIntrinsicCall()
4874 Check(!Const->getType()->isX86_AMXTy(), in visitIntrinsicCall()
4883 Check(Elem.Tag->getKey() == "ignore" || in visitIntrinsicCall()
4890 Check(ArgCount <= 3 && ArgCount >= 2, in visitIntrinsicCall()
4892 Check(Call.getOperand(Elem.Begin)->getType()->isPointerTy(), in visitIntrinsicCall()
4894 Check(Call.getOperand(Elem.Begin + 1)->getType()->isIntegerTy(), in visitIntrinsicCall()
4897 Check(Call.getOperand(Elem.Begin + 2)->getType()->isIntegerTy(), in visitIntrinsicCall()
4901 Check(ArgCount <= 2, "too many arguments", Call); in visitIntrinsicCall()
4905 Check(ArgCount == 2, "this attribute should have 2 arguments", Call); in visitIntrinsicCall()
4906 Check(isa<ConstantInt>(Call.getOperand(Elem.Begin + 1)), in visitIntrinsicCall()
4909 Check((ArgCount) == 1, "this attribute should have one argument", Call); in visitIntrinsicCall()
4911 Check((ArgCount) == 0, "this attribute has no argument", Call); in visitIntrinsicCall()
4921 Check(GV && GV->isConstant() && GV->hasDefinitiveInitializer(), in visitIntrinsicCall()
4925 Check(isa<ConstantStruct>(Init) || isa<ConstantArray>(Init), in visitIntrinsicCall()
4937 Check(MD != nullptr, "missing rounding mode argument", Call); in visitIntrinsicCall()
4939 Check(isa<MDString>(MD), in visitIntrinsicCall()
4946 Check(RoundMode && *RoundMode != RoundingMode::Dynamic, in visitIntrinsicCall()
4960 Check(isa<MetadataAsValue>(Call.getArgOperand(0)), in visitIntrinsicCall()
4982 Check(IsValidAlignment(MI->getDestAlignment()), in visitIntrinsicCall()
4986 Check(IsValidAlignment(MTI->getSourceAlignment()), in visitIntrinsicCall()
5001 Check(ElementSizeVal.isPowerOf2(), in visitIntrinsicCall()
5010 Check(IsValidAlignment(DstAlignment), in visitIntrinsicCall()
5014 Check(IsValidAlignment(SrcAlignment), in visitIntrinsicCall()
5021 Check(NumArgs != nullptr, in visitIntrinsicCall()
5026 Check(UseCall != nullptr, in visitIntrinsicCall()
5031 Check(AllocArgIndex != nullptr, in visitIntrinsicCall()
5034 Check(AllocArgIndexInt.sge(0) && in visitIntrinsicCall()
5043 Check(!FoundCall, "Can have at most one call corresponding to a " in visitIntrinsicCall()
5052 Check(NumPreallocatedArgs != 0, in visitIntrinsicCall()
5055 Check(NumArgs->equalsInt(NumPreallocatedArgs), in visitIntrinsicCall()
5069 Check(PreallocatedBundle, in visitIntrinsicCall()
5072 Check(PreallocatedBundle->Inputs.front().get() == &Call, in visitIntrinsicCall()
5081 Check(Token && Token->getCalledFunction()->getIntrinsicID() == in visitIntrinsicCall()
5085 Check(Call.hasFnAttr(Attribute::Preallocated), in visitIntrinsicCall()
5092 Check(Token && Token->getCalledFunction()->getIntrinsicID() == in visitIntrinsicCall()
5104 Check(AI, "llvm.gcroot parameter #1 must be an alloca.", Call); in visitIntrinsicCall()
5105 Check(isa<Constant>(Call.getArgOperand(1)), in visitIntrinsicCall()
5108 Check(!isa<ConstantPointerNull>(Call.getArgOperand(1)), in visitIntrinsicCall()
5115 Check(Call.getParent()->getParent()->hasGC(), in visitIntrinsicCall()
5119 Check(isa<Function>(Call.getArgOperand(1)->stripPointerCasts()), in visitIntrinsicCall()
5124 Check(cast<ConstantInt>(Call.getArgOperand(1))->getZExtValue() < 2 && in visitIntrinsicCall()
5129 Check(isa<AllocaInst>(Call.getArgOperand(1)->stripPointerCasts()), in visitIntrinsicCall()
5134 Check(BB == &BB->getParent()->front(), in visitIntrinsicCall()
5136 Check(!SawFrameEscape, "multiple calls to llvm.localescape in one function", in visitIntrinsicCall()
5142 Check(AI && AI->isStaticAlloca(), in visitIntrinsicCall()
5152 Check(Fn && !Fn->isDeclaration(), in visitIntrinsicCall()
5165 Check(!CI->isInlineAsm(), in visitIntrinsicCall()
5167 Check(Call.getParent()->getParent()->hasGC(), in visitIntrinsicCall()
5173 Check(Call.getParent()->getParent()->hasGC(), in visitIntrinsicCall()
5179 Check(StatepointFn && StatepointFn->isDeclaration() && in visitIntrinsicCall()
5188 Check(Call.getType() == TargetFuncType->getReturnType(), in visitIntrinsicCall()
5193 Check(Call.arg_size() == 3, "wrong number of arguments", Call); in visitIntrinsicCall()
5195 Check(isa<PointerType>(Call.getType()->getScalarType()), in visitIntrinsicCall()
5209 Check(InvokeBB, "safepoints should have unique landingpads", in visitIntrinsicCall()
5211 Check(InvokeBB->getTerminator(), "safepoint block should be well formed", in visitIntrinsicCall()
5213 Check(isa<GCStatepointInst>(InvokeBB->getTerminator()), in visitIntrinsicCall()
5220 Check(isa<GCStatepointInst>(Token) || isa<UndefValue>(Token), in visitIntrinsicCall()
5229 Check(isa<ConstantInt>(Base), in visitIntrinsicCall()
5233 Check(isa<ConstantInt>(Derived), in visitIntrinsicCall()
5244 Check(BaseIndex < Opt->Inputs.size(), in visitIntrinsicCall()
5246 Check(DerivedIndex < Opt->Inputs.size(), in visitIntrinsicCall()
5255 Check(Relocate.getDerivedPtr()->getType()->isPtrOrPtrVectorTy(), in visitIntrinsicCall()
5260 Check(ResultType->isVectorTy() == DerivedType->isVectorTy(), in visitIntrinsicCall()
5263 Check( in visitIntrinsicCall()
5272 Check(isa<CatchPadInst>(Call.getArgOperand(0)), in visitIntrinsicCall()
5277 Check(Call.getType()->isVectorTy(), in visitIntrinsicCall()
5282 Check(ElemTy->isIntegerTy(1), in visitIntrinsicCall()
5289 Check(Call.getType()->isVectorTy(), "masked_load: must return a vector", in visitIntrinsicCall()
5296 Check(Mask->getType()->isVectorTy(), "masked_load: mask must be vector", in visitIntrinsicCall()
5298 Check(Alignment->getValue().isPowerOf2(), in visitIntrinsicCall()
5302 Check(PtrTy->isOpaqueOrPointeeTypeMatches(Call.getType()), in visitIntrinsicCall()
5304 Check(PassThru->getType() == Call.getType(), in visitIntrinsicCall()
5306 Check(cast<VectorType>(Mask->getType())->getElementCount() == in visitIntrinsicCall()
5316 Check(Mask->getType()->isVectorTy(), "masked_store: mask must be vector", in visitIntrinsicCall()
5318 Check(Alignment->getValue().isPowerOf2(), in visitIntrinsicCall()
5322 Check(PtrTy->isOpaqueOrPointeeTypeMatches(Val->getType()), in visitIntrinsicCall()
5324 Check(cast<VectorType>(Mask->getType())->getElementCount() == in visitIntrinsicCall()
5333 Check(Alignment.isZero() || Alignment.isPowerOf2(), in visitIntrinsicCall()
5340 Check(Alignment.isZero() || Alignment.isPowerOf2(), in visitIntrinsicCall()
5346 Check(isa<CallInst>(Call), "experimental_guard cannot be invoked", Call); in visitIntrinsicCall()
5347 Check(Call.countOperandBundlesOfType(LLVMContext::OB_deopt) == 1, in visitIntrinsicCall()
5354 Check(isa<CallInst>(Call), "experimental_deoptimize cannot be invoked", in visitIntrinsicCall()
5356 Check(Call.countOperandBundlesOfType(LLVMContext::OB_deopt) == 1, in visitIntrinsicCall()
5359 Check(Call.getType() == Call.getFunction()->getReturnType(), in visitIntrinsicCall()
5364 Check(RI, in visitIntrinsicCall()
5368 Check(RI->getReturnValue() == &Call, in visitIntrinsicCall()
5385 Check(ArgTy->isIntOrIntVectorTy() && ArgTy->isVectorTy(), in visitIntrinsicCall()
5392 Check(ArgTy->isFPOrFPVectorTy() && ArgTy->isVectorTy(), in visitIntrinsicCall()
5401 Check(ArgTy->isFPOrFPVectorTy() && ArgTy->isVectorTy(), in visitIntrinsicCall()
5415 Check(Op1->getType()->isIntOrIntVectorTy(), in visitIntrinsicCall()
5418 Check(Op2->getType()->isIntOrIntVectorTy(), in visitIntrinsicCall()
5423 Check(Op3->getType()->getBitWidth() <= 32, in visitIntrinsicCall()
5428 Check(Op3->getZExtValue() < Op1->getType()->getScalarSizeInBits(), in visitIntrinsicCall()
5432 Check(Op3->getZExtValue() <= Op1->getType()->getScalarSizeInBits(), in visitIntrinsicCall()
5444 Check(!ValTy->isVectorTy() && !ResultTy->isVectorTy(), in visitIntrinsicCall()
5451 Check(Size % 16 == 0, "bswap must be an even number of bytes", &Call); in visitIntrinsicCall()
5456 Check(InvariantSize && in visitIntrinsicCall()
5520 Check(ResultTy->getElementType()->isIntegerTy() || in visitIntrinsicCall()
5525 Check(ResultTy->getElementType() == Op0ElemTy, in visitIntrinsicCall()
5531 Check(ResultTy->getElementType() == Op1ElemTy, in visitIntrinsicCall()
5536 Check(cast<FixedVectorType>(ResultTy)->getNumElements() == in visitIntrinsicCall()
5541 Check(Stride->getZExtValue() >= NumRows->getZExtValue(), in visitIntrinsicCall()
5555 Check((Idx < 0 && std::abs(Idx) <= KnownMinNumElements) || in visitIntrinsicCall()
5566 Check(VecTy && VecTy->getScalarType()->isIntegerTy() && in visitIntrinsicCall()
5584 Check(VecTy->getElementType() == SubVecTy->getElementType(), in visitIntrinsicCall()
5588 Check(IdxN % SubVecEC.getKnownMinValue() == 0, in visitIntrinsicCall()
5596 Check(IdxN < VecEC.getKnownMinValue() && in visitIntrinsicCall()
5614 Check(ResultTy->getElementType() == VecTy->getElementType(), in visitIntrinsicCall()
5618 Check(IdxN % ResultEC.getKnownMinValue() == 0, in visitIntrinsicCall()
5626 Check(IdxN < VecEC.getKnownMinValue() && in visitIntrinsicCall()
5643 Check(ElemTy, "Intrinsic requires elementtype attribute on first argument.", in visitIntrinsicCall()
5652 Check(ElemTy, in visitIntrinsicCall()
5683 Check(RetTy->getElementCount() == ValTy->getElementCount(), in visitVPIntrinsic()
5692 Check(RetTy->isIntOrIntVectorTy() && ValTy->isIntOrIntVectorTy(), in visitVPIntrinsic()
5696 Check(RetTy->getScalarSizeInBits() < ValTy->getScalarSizeInBits(), in visitVPIntrinsic()
5703 Check(RetTy->isIntOrIntVectorTy() && ValTy->isIntOrIntVectorTy(), in visitVPIntrinsic()
5707 Check(RetTy->getScalarSizeInBits() > ValTy->getScalarSizeInBits(), in visitVPIntrinsic()
5714 Check( in visitVPIntrinsic()
5722 Check( in visitVPIntrinsic()
5729 Check(RetTy->isFPOrFPVectorTy() && ValTy->isFPOrFPVectorTy(), in visitVPIntrinsic()
5733 Check(RetTy->getScalarSizeInBits() < ValTy->getScalarSizeInBits(), in visitVPIntrinsic()
5739 Check(RetTy->isFPOrFPVectorTy() && ValTy->isFPOrFPVectorTy(), in visitVPIntrinsic()
5743 Check(RetTy->getScalarSizeInBits() > ValTy->getScalarSizeInBits(), in visitVPIntrinsic()
5749 Check(RetTy->isIntOrIntVectorTy() && ValTy->isPtrOrPtrVectorTy(), in visitVPIntrinsic()
5755 Check(RetTy->isPtrOrPtrVectorTy() && ValTy->isIntOrIntVectorTy(), in visitVPIntrinsic()
5764 Check(CmpInst::isFPPredicate(Pred), in visitVPIntrinsic()
5769 Check(CmpInst::isIntPredicate(Pred), in visitVPIntrinsic()
5791 Check((FPI.arg_size() == NumOperands), in visitConstrainedFPIntrinsic()
5799 Check(!ValTy->isVectorTy() && !ResultTy->isVectorTy(), in visitConstrainedFPIntrinsic()
5808 Check(!ValTy->isVectorTy() && !ResultTy->isVectorTy(), in visitConstrainedFPIntrinsic()
5816 Check(CmpInst::isFPPredicate(Pred), in visitConstrainedFPIntrinsic()
5825 Check(Operand->getType()->isFPOrFPVectorTy(), in visitConstrainedFPIntrinsic()
5832 Check((NumSrcElem > 0) == Operand->getType()->isVectorTy(), in visitConstrainedFPIntrinsic()
5834 Check(Operand->getType()->isIntOrIntVectorTy(), in visitConstrainedFPIntrinsic()
5837 Check(NumSrcElem == cast<FixedVectorType>(OperandT)->getNumElements(), in visitConstrainedFPIntrinsic()
5848 Check(Operand->getType()->isIntOrIntVectorTy(), in visitConstrainedFPIntrinsic()
5855 Check((NumSrcElem > 0) == Operand->getType()->isVectorTy(), in visitConstrainedFPIntrinsic()
5857 Check(Operand->getType()->isFPOrFPVectorTy(), in visitConstrainedFPIntrinsic()
5860 Check(NumSrcElem == cast<FixedVectorType>(OperandT)->getNumElements(), in visitConstrainedFPIntrinsic()
5872 Check(OperandTy->isFPOrFPVectorTy(), in visitConstrainedFPIntrinsic()
5874 Check(ResultTy->isFPOrFPVectorTy(), in visitConstrainedFPIntrinsic()
5876 Check(OperandTy->isVectorTy() == ResultTy->isVectorTy(), in visitConstrainedFPIntrinsic()
5879 Check(cast<FixedVectorType>(OperandTy)->getNumElements() == in visitConstrainedFPIntrinsic()
5885 Check(OperandTy->getScalarSizeInBits() > ResultTy->getScalarSizeInBits(), in visitConstrainedFPIntrinsic()
5889 Check(OperandTy->getScalarSizeInBits() < ResultTy->getScalarSizeInBits(), in visitConstrainedFPIntrinsic()
5905 Check(FPI.getExceptionBehavior().has_value(), in visitConstrainedFPIntrinsic()
5908 Check(FPI.getRoundingMode().has_value(), "invalid rounding mode argument", in visitConstrainedFPIntrinsic()
5972 Check(Loc, "llvm.dbg." + Kind + " intrinsic requires a !dbg attachment", &DLI, in visitDbgLabelIntrinsic()
6089 Check(First->getCallingConv() == F->getCallingConv(), in verifyDeoptimizeCallingConvs()
6100 Check((FTy->getReturnType()->isPointerTy() || in verifyAttachedCallBundle()
6107 Check(BU.Inputs.size() == 1 && isa<Function>(BU.Inputs.front()), in verifyAttachedCallBundle()
6116 Check((IID == Intrinsic::objc_retainAutoreleasedReturnValue || in verifyAttachedCallBundle()
6121 Check((FnName == "objc_retainAutoreleasedReturnValue" || in verifyAttachedCallBundle()
6145 Check(ScopeListMV != nullptr, in verifyNoAliasScopeDecl()
6151 Check(ScopeListMD != nullptr, "!id.scope.list must point to an MDNode", II); in verifyNoAliasScopeDecl()
6152 Check(ScopeListMD->getNumOperands() == 1, in verifyNoAliasScopeDecl()
6196 Check(!DT.dominates(I, J), in verifyNoAliasScopeDecl()