LLVM 20.0.0git |
Class to represent function types.More...
#include "llvm/IR/DerivedTypes.h"
Public Types | |
using | param_iterator =Type::subtype_iterator |
![]() | |
enum | TypeID { HalfTyID = 0,BFloatTyID,FloatTyID,DoubleTyID, X86_FP80TyID,FP128TyID,PPC_FP128TyID,VoidTyID, LabelTyID,MetadataTyID,X86_AMXTyID,TokenTyID, IntegerTyID,FunctionTyID,PointerTyID,StructTyID, ArrayTyID,FixedVectorTyID,ScalableVectorTyID,TypedPointerTyID, TargetExtTyID } |
Definitions of all of the base types for theType system.More... | |
using | subtype_iterator =Type *const * |
using | subtype_reverse_iterator = std::reverse_iterator<subtype_iterator > |
Public Member Functions | |
FunctionType (constFunctionType &)=delete | |
FunctionType & | operator= (constFunctionType &)=delete |
bool | isVarArg ()const |
Type * | getReturnType ()const |
param_iterator | param_begin ()const |
param_iterator | param_end ()const |
ArrayRef<Type * > | params ()const |
Type * | getParamType (unsigned i)const |
Parameter type accessors. | |
unsigned | getNumParams ()const |
Return the number of fixed parameters this function type requires. | |
![]() | |
void | print (raw_ostream &O,bool IsForDebug=false,bool NoDetails=false)const |
Print the current type. | |
void | dump ()const |
LLVMContext & | getContext ()const |
Return theLLVMContext in which this type was uniqued. | |
TypeID | getTypeID ()const |
Return the type id for the type. | |
bool | isVoidTy ()const |
Return true if this is 'void'. | |
bool | isHalfTy ()const |
Return true if this is 'half', a 16-bit IEEE fp type. | |
bool | isBFloatTy ()const |
Return true if this is 'bfloat', a 16-bit bfloat type. | |
bool | is16bitFPTy ()const |
Return true if this is a 16-bit float type. | |
bool | isFloatTy ()const |
Return true if this is 'float', a 32-bit IEEE fp type. | |
bool | isDoubleTy ()const |
Return true if this is 'double', a 64-bit IEEE fp type. | |
bool | isX86_FP80Ty ()const |
Return true if this is x86 long double. | |
bool | isFP128Ty ()const |
Return true if this is 'fp128'. | |
bool | isPPC_FP128Ty ()const |
Return true if this is powerpc long double. | |
bool | isIEEELikeFPTy ()const |
Return true if this is a well-behaved IEEE-like type, which has a IEEE compatible layout as defined byAPFloat::isIEEE(), and does not have non-IEEE values, such as x86_fp80's unnormal values. | |
bool | isFloatingPointTy ()const |
Return true if this is one of the floating-point types. | |
bool | isMultiUnitFPType ()const |
Returns true if this is a floating-point type that is an unevaluated sum of multiple floating-point units. | |
constfltSemantics & | getFltSemantics ()const |
bool | isX86_AMXTy ()const |
Return true if this isX86 AMX. | |
bool | isTargetExtTy ()const |
Return true if this is a target extension type. | |
bool | isScalableTargetExtTy ()const |
Return true if this is a target extension type with a scalable layout. | |
bool | isScalableTy (SmallPtrSetImpl<constType * > &Visited)const |
Return true if this is a type whose size is a known multiple of vscale. | |
bool | isScalableTy ()const |
bool | containsNonGlobalTargetExtType (SmallPtrSetImpl<constType * > &Visited)const |
Return true if this type is or contains a target extension type that disallows being used as a global. | |
bool | containsNonGlobalTargetExtType ()const |
bool | containsNonLocalTargetExtType (SmallPtrSetImpl<constType * > &Visited)const |
Return true if this type is or contains a target extension type that disallows being used as a local. | |
bool | containsNonLocalTargetExtType ()const |
bool | isFPOrFPVectorTy ()const |
Return true if this is a FP type or a vector of FP. | |
bool | isLabelTy ()const |
Return true if this is 'label'. | |
bool | isMetadataTy ()const |
Return true if this is 'metadata'. | |
bool | isTokenTy ()const |
Return true if this is 'token'. | |
bool | isIntegerTy ()const |
True if this is an instance ofIntegerType. | |
bool | isIntegerTy (unsigned Bitwidth)const |
Return true if this is anIntegerType of the given width. | |
bool | isIntOrIntVectorTy ()const |
Return true if this is an integer type or a vector of integer types. | |
bool | isIntOrIntVectorTy (unsignedBitWidth)const |
Return true if this is an integer type or a vector of integer types of the given width. | |
bool | isIntOrPtrTy ()const |
Return true if this is an integer type or a pointer type. | |
bool | isFunctionTy ()const |
True if this is an instance ofFunctionType. | |
bool | isStructTy ()const |
True if this is an instance ofStructType. | |
bool | isArrayTy ()const |
True if this is an instance ofArrayType. | |
bool | isPointerTy ()const |
True if this is an instance ofPointerType. | |
bool | isPtrOrPtrVectorTy ()const |
Return true if this is a pointer type or a vector of pointer types. | |
bool | isVectorTy ()const |
True if this is an instance ofVectorType. | |
bool | isRISCVVectorTupleTy ()const |
bool | canLosslesslyBitCastTo (Type *Ty)const |
Return true if this type could be converted with a lossless BitCast to type 'Ty'. | |
bool | isEmptyTy ()const |
Return true if this type is empty, that is, it has no elements or all of its elements are empty. | |
bool | isFirstClassType ()const |
Return true if the type is "first class", meaning it is a valid type for aValue. | |
bool | isSingleValueType ()const |
Return true if the type is a valid type for a register in codegen. | |
bool | isAggregateType ()const |
Return true if the type is an aggregate type. | |
bool | isSized (SmallPtrSetImpl<Type * > *Visited=nullptr)const |
Return true if it makes sense to take the size of this type. | |
TypeSize | getPrimitiveSizeInBits ()constLLVM_READONLY |
Return the basic size of this type if it is a primitive type. | |
unsigned | getScalarSizeInBits ()constLLVM_READONLY |
If this is a vector type, return the getPrimitiveSizeInBits value for the element type. | |
int | getFPMantissaWidth ()const |
Return the width of the mantissa of this type. | |
bool | isIEEE ()const |
Return whether the type is IEEE compatible, as defined by the eponymous method inAPFloat. | |
Type * | getScalarType ()const |
If this is a vector type, return the element type, otherwise return 'this'. | |
subtype_iterator | subtype_begin ()const |
subtype_iterator | subtype_end ()const |
ArrayRef<Type * > | subtypes ()const |
subtype_reverse_iterator | subtype_rbegin ()const |
subtype_reverse_iterator | subtype_rend ()const |
Type * | getContainedType (unsigned i)const |
This method is used to implement the type iterator (defined at the end of the file). | |
unsigned | getNumContainedTypes ()const |
Return the number of types in the derived type. | |
unsigned | getIntegerBitWidth ()const |
Type * | getFunctionParamType (unsigned i)const |
unsigned | getFunctionNumParams ()const |
bool | isFunctionVarArg ()const |
StringRef | getStructName ()const |
unsigned | getStructNumElements ()const |
Type * | getStructElementType (unsignedN)const |
uint64_t | getArrayNumElements ()const |
Type * | getArrayElementType ()const |
StringRef | getTargetExtName ()const |
Type * | getWithNewType (Type *EltTy)const |
Given vector type, change the element type, whilst keeping the old number of elements. | |
Type * | getWithNewBitWidth (unsigned NewBitWidth)const |
Given an integer or vector type, change the lane bitwidth to NewBitwidth, whilst keeping the old number of lanes. | |
Type * | getExtendedType ()const |
Given scalar/vector integer type, returns a type with elements twice as wide as in the original type. | |
unsigned | getPointerAddressSpace ()const |
Get the address space of this pointer or pointer vector type. | |
PointerType * | getPointerTo (unsigned AddrSpace=0)const |
Return a pointer to the current type. | |
Additional Inherited Members | |
![]() | |
Type (LLVMContext &C,TypeID tid) | |
~Type ()=default | |
unsigned | getSubclassData ()const |
void | setSubclassData (unsigned val) |
![]() | |
unsigned | NumContainedTys = 0 |
Keeps track of how many Type*'s there are in the ContainedTys list. | |
Type *const * | ContainedTys = nullptr |
A pointer to the array of Types contained by thisType. | |
Class to represent function types.
Definition at line105 of fileDerivedTypes.h.
Definition at line128 of fileDerivedTypes.h.
| delete |
Methods for support type inquiry through isa, cast, and dyn_cast.
Definition at line147 of fileDerivedTypes.h.
Referencesllvm::Type::FunctionTyID.
| static |
This static method is the primary way of constructing aFunctionType.
Referenced byllvm::SanitizerStatReport::create(),llvm::MIRParserImpl::createDummyFunction(),llvm::RandomIRBuilder::createFunctionDeclaration(),llvm::IRBuilderBase::CreateIntrinsic(),createMergedFunction(),createOutlinedFunction(),llvm::orc::ReOptimizeLayer::createReoptimizeCall(),llvm::ThunkInserter< Derived, InsertedThunksTy >::createThunkFunction(),llvm::orc::IRSpeculationLayer::emit(),llvm::AtomicInfo::EmitAtomicLibcall(),llvm::AtomicInfo::EmitAtomicLoadLibcall(),emitTargetTaskProxyFunction(),llvm::OpenMPIRBuilder::emitUserDefinedMapper(),llvm::SanitizerStatReport::finish(),fixFunctionTypeIfPtrArgs(),llvm::AMDGPU::generateCrashCode(),getFreshReductionFunc(),llvm::AMDGPUMangledLibFunc::getFunctionType(),getFunctionTypeFromAsyncSuspend(),getOriginalFunctionType(),llvm::getOrInsertLibFunc(),getOrInsertValueProfilingCall(),llvm::coro::Shape::getResumeFunctionType(),InsertSafepointPoll(),insertUseHolderAfter(),makeStatepointExplicitImpl(),llvm::reconstructFunctionType(),runImpl(), andllvm::toTypedFunPointer().
| static |
Create aFunctionType taking no parameters.
| inline |
Return the number of fixed parameters this function type requires.
This does not consider varargs.
Definition at line144 of fileDerivedTypes.h.
Referencesllvm::Type::NumContainedTys.
Referenced byllvm::AMDGPUMangledLibFunc::AMDGPUMangledLibFunc(),llvm::FunctionComparator::cmpTypes(),createThunk(),llvm::VFShape::get(),llvm::Mangler::getNameWithPrefix(),getParamType(),llvm::InlineFunction(),llvm::AMDGPULibFunc::isCompatibleSignature(),llvm::isLibFreeFunction(),llvm::CallLowering::lowerCall(),llvm::HexagonTargetLowering::LowerCall(),llvm::HexagonTargetLowering::LowerFormalArguments(),llvm::MCJIT::runFunction(),llvm::ExecutionEngine::runFunctionAsMain(),llvm::FastISel::CallLoweringInfo::setCallee(),llvm::TargetLowering::CallLoweringInfo::setCallee(),llvm::VFABI::tryDemangleForVFABI(),llvm::InlineAsm::verify(), andllvm::SelectionDAGBuilder::visitSPDescriptorParent().
Parameter type accessors.
Definition at line137 of fileDerivedTypes.h.
Referencesassert(),llvm::Type::ContainedTys, andgetNumParams().
Referenced byllvm::AMDGPUMangledLibFunc::AMDGPUMangledLibFunc(),llvm::FunctionComparator::cmpTypes(),llvm::VFABI::createFunctionType(),llvm::IRBuilderBase::CreateLaunderInvariantGroup(),llvm::IRBuilderBase::CreateStripInvariantGroup(),llvm::AArch64TargetLowering::emitStoreConditional(),llvm::ARMTargetLowering::emitStoreConditional(),llvm::VPWidenCallRecipe::execute(),llvm::AMDGPULibCalls::fold(),getArgSPIRVType(),llvm::AMDGPULibFunc::isCompatibleSignature(),llvm::isLibFreeFunction(),llvm::SITargetLowering::LowerFormalArguments(),llvm::MCJIT::runFunction(),llvm::ExecutionEngine::runFunctionAsMain(),llvm::UpgradeARCRuntime(), andllvm::SelectionDAGBuilder::visitSPDescriptorParent().
| inline |
Definition at line126 of fileDerivedTypes.h.
Referencesllvm::Type::ContainedTys.
Referenced byllvm::FunctionComparator::cmpTypes(),llvm::computeSignatureVTs(),llvm::VFABI::createFunctionType(),llvm::objcarc::hasAttachedCallOpBundle(),llvm::isLibFreeFunction(),llvm::SPIRVCallLowering::lowerFormalArguments(),llvm::Intrinsic::matchIntrinsicSignature(),llvm::CallBase::mutateFunctionType(),replaceFallthroughCoroEnd(),llvm::MCJIT::runFunction(),llvm::ExecutionEngine::runFunctionAsMain(),llvm::CallBase::setCalledFunction(),llvm::toTypedFunPointer(),llvm::UpgradeARCRuntime(),llvm::InlineAsm::verify(), andllvm::SelectionDAGBuilder::visitSPDescriptorParent().
| inline |
Definition at line125 of fileDerivedTypes.h.
Referencesllvm::Type::getSubclassData().
Referenced byllvm::FunctionComparator::cmpTypes(),llvm::computeSignatureVTs(),llvm::Intrinsic::getIntrinsicSignature(),llvm::Mangler::getNameWithPrefix(),llvm::CallLowering::lowerCall(),llvm::MCJIT::runFunction(),llvm::FastISel::CallLoweringInfo::setCallee(),llvm::TargetLowering::CallLoweringInfo::setCallee(),llvm::toTypedFunPointer(), andllvm::InlineAsm::verify().
| delete |
| inline |
Definition at line130 of fileDerivedTypes.h.
Referencesllvm::Type::ContainedTys.
Referenced byllvm::AMDGPULibFunc::getOrInsertFunction(),llvm::LoopVectorizationCostModel::getVectorIntrinsicCost(),llvm::IntrinsicCostAttributes::IntrinsicCostAttributes(), andparams().
| inline |
Definition at line131 of fileDerivedTypes.h.
Referencesllvm::Type::ContainedTys, andllvm::Type::NumContainedTys.
Referenced byllvm::AMDGPULibFunc::getOrInsertFunction(),llvm::LoopVectorizationCostModel::getVectorIntrinsicCost(),llvm::IntrinsicCostAttributes::IntrinsicCostAttributes(), andparams().
Definition at line132 of fileDerivedTypes.h.
Referencesparam_begin(), andparam_end().
Referenced byllvm::VPWidenCallRecipe::computeCost(),llvm::computeSignatureVTs(),llvm::coro::Shape::getRetconResumeTypes(),llvm::lowerGlobalIFuncUsersAsGlobalCtor(),llvm::Intrinsic::matchIntrinsicSignature(),llvm::InsertFunctionStrategy::mutate(),llvm::IRSimilarity::IRInstructionData::setCalleeName(), andllvm::toTypedFunPointer().