|
LLVM
8.0.1
|
Class to represent pointers. More...
#include "llvm/IR/DerivedTypes.h"


Public Member Functions | |
| PointerType (const PointerType &)=delete | |
| PointerType & | operator= (const PointerType &)=delete |
| Type * | getElementType () const |
| unsigned | getAddressSpace () const |
| Return the address space of the Pointer type. More... | |
Public Member Functions inherited from llvm::Type | |
| void | print (raw_ostream &O, bool IsForDebug=false, bool NoDetails=false) const |
| Print the current type. More... | |
| void | dump () const |
| LLVMContext & | getContext () const |
| Return the LLVMContext in which this type was uniqued. More... | |
| TypeID | getTypeID () const |
| Return the type id for the type. More... | |
| bool | isVoidTy () const |
| Return true if this is 'void'. More... | |
| bool | isHalfTy () const |
| Return true if this is 'half', a 16-bit IEEE fp type. More... | |
| bool | isFloatTy () const |
| Return true if this is 'float', a 32-bit IEEE fp type. More... | |
| bool | isDoubleTy () const |
| Return true if this is 'double', a 64-bit IEEE fp type. More... | |
| bool | isX86_FP80Ty () const |
| Return true if this is x86 long double. More... | |
| bool | isFP128Ty () const |
| Return true if this is 'fp128'. More... | |
| bool | isPPC_FP128Ty () const |
| Return true if this is powerpc long double. More... | |
| bool | isFloatingPointTy () const |
| Return true if this is one of the six floating-point types. More... | |
| const fltSemantics & | getFltSemantics () const |
| bool | isX86_MMXTy () const |
| Return true if this is X86 MMX. More... | |
| bool | isFPOrFPVectorTy () const |
| Return true if this is a FP type or a vector of FP. More... | |
| bool | isLabelTy () const |
| Return true if this is 'label'. More... | |
| bool | isMetadataTy () const |
| Return true if this is 'metadata'. More... | |
| bool | isTokenTy () const |
| Return true if this is 'token'. More... | |
| bool | isIntegerTy () const |
| True if this is an instance of IntegerType. More... | |
| bool | isIntegerTy (unsigned Bitwidth) const |
| Return true if this is an IntegerType of the given width. More... | |
| bool | isIntOrIntVectorTy () const |
| Return true if this is an integer type or a vector of integer types. More... | |
| bool | isIntOrIntVectorTy (unsigned BitWidth) const |
| Return true if this is an integer type or a vector of integer types of the given width. More... | |
| bool | isIntOrPtrTy () const |
| Return true if this is an integer type or a pointer type. More... | |
| bool | isFunctionTy () const |
| True if this is an instance of FunctionType. More... | |
| bool | isStructTy () const |
| True if this is an instance of StructType. More... | |
| bool | isArrayTy () const |
| True if this is an instance of ArrayType. More... | |
| bool | isPointerTy () const |
| True if this is an instance of PointerType. More... | |
| bool | isPtrOrPtrVectorTy () const |
| Return true if this is a pointer type or a vector of pointer types. More... | |
| bool | isVectorTy () const |
| True if this is an instance of VectorType. More... | |
| bool | canLosslesslyBitCastTo (Type *Ty) const |
| Return true if this type could be converted with a lossless BitCast to type 'Ty'. More... | |
| bool | isEmptyTy () const |
| Return true if this type is empty, that is, it has no elements or all of its elements are empty. More... | |
| bool | isFirstClassType () const |
| Return true if the type is "first class", meaning it is a valid type for a Value. More... | |
| bool | isSingleValueType () const |
| Return true if the type is a valid type for a register in codegen. More... | |
| bool | isAggregateType () const |
| Return true if the type is an aggregate type. More... | |
| bool | isSized (SmallPtrSetImpl< Type *> *Visited=nullptr) const |
| Return true if it makes sense to take the size of this type. More... | |
| unsigned | getPrimitiveSizeInBits () const LLVM_READONLY |
| Return the basic size of this type if it is a primitive type. More... | |
| unsigned | getScalarSizeInBits () const LLVM_READONLY |
| If this is a vector type, return the getPrimitiveSizeInBits value for the element type. More... | |
| int | getFPMantissaWidth () const |
| Return the width of the mantissa of this type. More... | |
| Type * | getScalarType () const |
| If this is a vector type, return the element type, otherwise return 'this'. More... | |
| 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). More... | |
| unsigned | getNumContainedTypes () const |
| Return the number of types in the derived type. More... | |
| unsigned | getIntegerBitWidth () const |
| Type * | getFunctionParamType (unsigned i) const |
| unsigned | getFunctionNumParams () const |
| bool | isFunctionVarArg () const |
| StringRef | getStructName () const |
| unsigned | getStructNumElements () const |
| Type * | getStructElementType (unsigned N) const |
| Type * | getSequentialElementType () const |
| uint64_t | getArrayNumElements () const |
| Type * | getArrayElementType () const |
| unsigned | getVectorNumElements () const |
| Type * | getVectorElementType () const |
| Type * | getPointerElementType () const |
| unsigned | getPointerAddressSpace () const |
| Get the address space of this pointer or pointer vector type. More... | |
| PointerType * | getPointerTo (unsigned AddrSpace=0) const |
| Return a pointer to the current type. More... | |
Additional Inherited Members | |
Public Types inherited from llvm::Type | |
| enum | TypeID { VoidTyID = 0, HalfTyID, FloatTyID, DoubleTyID, X86_FP80TyID, FP128TyID, PPC_FP128TyID, LabelTyID, MetadataTyID, X86_MMXTyID, TokenTyID, IntegerTyID, FunctionTyID, StructTyID, ArrayTyID, PointerTyID, VectorTyID } |
| Definitions of all of the base types for the Type system. More... | |
| using | subtype_iterator = Type *const * |
| using | subtype_reverse_iterator = std::reverse_iterator< subtype_iterator > |
Protected Member Functions inherited from llvm::Type | |
| Type (LLVMContext &C, TypeID tid) | |
| ~Type ()=default | |
| unsigned | getSubclassData () const |
| void | setSubclassData (unsigned val) |
Static Protected Member Functions inherited from llvm::Type | |
| static bool | isSequentialType (TypeID TyID) |
Protected Attributes inherited from llvm::Type | |
| unsigned | NumContainedTys = 0 |
| Keeps track of how many Type*'s there are in the ContainedTys list. More... | |
| Type *const * | ContainedTys = nullptr |
| A pointer to the array of Types contained by this Type. More... | |
Class to represent pointers.
Definition at line 467 of file DerivedTypes.h.
|
delete |
Implement support type inquiry through isa, cast, and dyn_cast.
Definition at line 498 of file DerivedTypes.h.
References llvm::Type::getTypeID(), and llvm::Type::PointerTyID.
|
static |
This constructs a pointer to an object of the specified type in a numbered address space.
Definition at line 630 of file Type.cpp.
References llvm::LLVMContextImpl::ASPointerTypes, assert(), llvm::Type::ContainedTys, E, llvm::Type::getContext(), isValidElementType(), llvm::Type::NumContainedTys, llvm::LLVMContext::pImpl, llvm::Type::PointerTyID, llvm::LLVMContextImpl::PointerTypes, llvm::Type::setSubclassData(), llvm::Type::Type(), and llvm::LLVMContextImpl::TypeAllocator.
Referenced by llvm::VNCoercion::analyzeLoadFromClobberingMemInst(), atomicSizeSupported(), buildPCRelGlobalAddress(), llvm::ConstantFoldGetElementPtr(), llvm::createEfficiencySanitizerPass(), llvm::orc::createIRTypedAddress(), llvm::createMemCpyLoopKnownSize(), llvm::createMemCpyLoopUnknownSize(), createMemSetLoop(), createPrivateNonConstGlobalForString(), DecodeFixedType(), llvm::SIFrameLowering::emitEntryFunctionPrologue(), findUser(), FunctionNumber(), getAccessType(), llvm::ConstantExpr::getAddrSpaceCast(), llvm::SelectionDAG::getEVTAlignment(), getFoldedAlignOf(), getFoldedSizeOf(), llvm::GetElementPtrInst::getGEPReturnType(), GetHeapSROAValue(), llvm::VNCoercion::getLoadValueForLoad(), llvm::VNCoercion::getMemInstValueForLoadHelper(), getMulHu(), getNegativeIsTrueBoolVec(), llvm::Module::getOrInsertFunction(), llvm::Module::getOrInsertGlobal(), getOrInsertGlobal(), llvm::Type::getPointerTo(), getUnqual(), llvm::SCEVExpander::hoistIVInc(), INITIALIZE_PASS(), instrumentMaskedLoadOrStore(), inversePermutation(), isCallPromotable(), isLoadInvariantInLoop(), llvm::SITargetLowering::isTypeDesirableForOp(), LLVMPointerType(), llvm::TargetLowering::LowerCallTo(), llvm::R600TargetLowering::LowerFormalArguments(), llvm::NVPTXTargetLowering::LowerFormalArguments(), LowerMULH(), llvm::AMDGPUCallLowering::lowerReturn(), llvm::RandomIRBuilder::newSink(), parseOptionalLinkageAux(), PerformHeapAllocSRoA(), performMaskedAtomicOp(), RedzoneSizeForScale(), llvm::R600TargetLowering::ReplaceNodeResults(), shouldFixMainFunction(), shouldKeepInEntry(), simplifyAllocaArraySize(), SimplifyGEPInst(), simplifyNeonVld1(), simplifyX86MaskedLoad(), simplifyX86MaskedStore(), TypeSizeToSizeIndex(), llvm::AMDGPULibCalls::useNative(), llvm::InstCombiner::visitAddrSpaceCast(), and llvm::InstCombiner::visitAllocaInst().
|
inline |
Return the address space of the Pointer type.
Definition at line 495 of file DerivedTypes.h.
References llvm::Type::getSubclassData().
Referenced by llvm::MachineIRBuilder::buildGlobalValue(), canDemoteGlobalVar(), llvm::CastInst::castIsValid(), llvm::orc::cloneGlobalVariableDecl(), llvm::FunctionComparator::cmpConstants(), llvm::FunctionComparator::cmpTypes(), llvm::ConstantFoldGetElementPtr(), ConvertDoubleToBytes(), llvm::convertToDeclaration(), llvm::GlobalAlias::create(), createGlobalFwdRef(), llvm::NVPTXAsmPrinter::doFinalization(), FindAllMemoryUses(), findUser(), forceRenaming(), llvm::GlobalValue::getAddressSpace(), llvm::ConstantExpr::getAddrSpaceCast(), getArrayElements(), getAttrKindEncoding(), llvm::getCallsiteCost(), llvm::X86TTIImpl::getGatherScatterOpCost(), llvm::getInlineCost(), getNaturalGEPWithOffset(), getOpenCLAlignment(), getTypePartition(), llvm::SCEVExpander::hoistIVInc(), INITIALIZE_PASS(), llvm::isAllocaPromotable(), isCallPromotable(), isContiguous(), llvm::AMDGPU::isGlobalSegment(), llvm::AMDGPU::isGroupSegment(), isKnownTypeIdMember(), llvm::DataLayout::isNonIntegralPointerType(), isObjectDereferencedInBlock(), llvm::AMDGPU::isReadOnlySegment(), isTypeCongruent(), isZeroLengthArray(), llvm::Intrinsic::matchIntrinsicType(), maybePrintComdat(), MergeAliasResults(), mergeConstants(), PrintLLVMName(), processInternalGlobal(), selectJumpTableArmEncoding(), SRAGlobal(), TryToShrinkGlobalToBoolean(), llvm::InstCombiner::visitAddrSpaceCast(), llvm::InstCombiner::visitBitCast(), llvm::ObjectSizeOffsetVisitor::visitConstantPointerNull(), and llvm::InstCombiner::visitGetElementPtrInst().
|
inline |
Definition at line 486 of file DerivedTypes.h.
References isValidElementType().
Referenced by buildFrameType(), llvm::concatenateVectors(), llvm::ConstantFoldGetElementPtr(), llvm::GlobalAlias::create(), createGlobalFwdRef(), decomposeSimpleLinearExpr(), llvm::AsmPrinter::EmitGlobalVariable(), FindAllMemoryUses(), findInitTrampoline(), foldOperationIntoPhiValue(), FunctionNumber(), llvm::ConstantExpr::getAddrSpaceCast(), getAttrKindEncoding(), llvm::getCallsiteCost(), llvm::getMallocAllocatedType(), getMemCmpLoad(), getMinVisibility(), getNaturalGEPWithOffset(), llvm::RISCVTargetLowering::getTgtMemIntrinsic(), llvm::AArch64TargetLowering::getTgtMemIntrinsic(), llvm::ARMTargetLowering::getTgtMemIntrinsic(), HandleByValArgument(), INITIALIZE_PASS(), isArray(), isContiguous(), llvm::isSafeToLoadUnconditionally(), LLVMBuildLoad(), llvm::SparcTargetLowering::LowerCall_32(), llvm::SelectionDAGBuilder::LowerCallSiteWithDeoptBundle(), llvm::FastISel::lowerCallTo(), llvm::Intrinsic::matchIntrinsicType(), llvm::TargetLowering::ParseConstraints(), PrintLLVMName(), readWideAPInt(), shouldFixMainFunction(), llvm::HexagonTargetObjectFile::shouldPutJumpTableInFunctionSection(), tryToElideArgumentCopy(), updateOperand(), llvm::InstCombiner::visitAddrSpaceCast(), llvm::Interpreter::visitAllocaInst(), llvm::ObjectSizeOffsetVisitor::visitArgument(), llvm::InstCombiner::visitBitCast(), llvm::InstCombiner::visitGetElementPtrInst(), llvm::ObjectSizeOffsetVisitor::visitGlobalVariable(), and wrapConstantAsMetadata().
|
inlinestatic |
This constructs a pointer to an object of the specified type in the generic address space (address space zero).
Definition at line 482 of file DerivedTypes.h.
References get().
Referenced by llvm::fuzzerop::anyPtrType(), appendToGlobalArray(), ComputePostOrders(), llvm::InlineAsmKeyType::create(), createCallInst(), createMalloc(), llvm::createShadowStackGCLoweringPass(), DecodeFixedType(), findInitTrampoline(), llvm::CodeExtractor::findInputsOutputs(), llvm::InlineAsm::get(), llvm::ScalarEvolution::getElementSize(), getMemCmpLoad(), llvm::ConstantExpr::getOffsetOf(), getSignature(), llvm::ConstantExpr::getSizeOf(), INITIALIZE_PASS(), llvm::SparcTargetLowering::LowerF128_LibCallArg(), llvm::SparcTargetLowering::LowerF128Op(), MarkBlocksLiveIn(), parseOptionalLinkageAux(), llvm::WholeProgramDevirtPass::run(), llvm::fuzzerop::sizedPtrType(), UpgradeMaskedLoad(), UpgradeMaskedStore(), and llvm::InstCombiner::visitCallInst().
Return true if we can load or store from a pointer to this type.
Definition at line 661 of file Type.cpp.
References llvm::Type::isFunctionTy(), and isValidElementType().
Return true if the specified type is valid as a element type.
Definition at line 656 of file Type.cpp.
References llvm::Type::isLabelTy(), llvm::Type::isMetadataTy(), llvm::Type::isTokenTy(), and llvm::Type::isVoidTy().
Referenced by FunctionNumber(), llvm::GlobalVariable::GlobalVariable(), maybeSetDSOLocal(), and parseOptionalLinkageAux().
|
delete |
1.8.13