18 assert(EltTy &&
"Can't get a pointer to <null> type!");
23 TypedPointerType *&Entry =
31TypedPointerType::TypedPointerType(
Type *E,
unsigned AddrSpace)
32 :
Type(E->getContext(), TypedPointerTyID), PointeeTy(E) {
39 return !ElemTy->isVoidTy() && !ElemTy->isLabelTy() &&
40 !ElemTy->isMetadataTy() && !ElemTy->isTokenTy() &&
41 !ElemTy->isX86_AMXTy();
assert(UImm &&(UImm !=~static_cast< T >(0)) &&"Invalid immediate!")
DenseMap< std::pair< Type *, unsigned >, TypedPointerType * > ASTypedPointerTypes
LLVMContextImpl *const pImpl
The instances of the Type class are immutable: once they are created, they are never changed.
unsigned NumContainedTys
Keeps track of how many Type*'s there are in the ContainedTys list.
Type(LLVMContext &C, TypeID tid)
LLVMContext & getContext() const
Return the LLVMContext in which this type was uniqued.
Type *const * ContainedTys
A pointer to the array of Types contained by this Type.
void setSubclassData(unsigned val)
friend class LLVMContextImpl
static LLVM_ABI bool isValidElementType(Type *ElemTy)
Return true if the specified type is valid as a element type.
static LLVM_ABI TypedPointerType * get(Type *ElementType, unsigned AddressSpace)
This constructs a pointer to an object of the specified type in a numbered address space.
This is an optimization pass for GlobalISel generic memory operations.