LLVM: lib/IR/TypedPointerType.cpp Source File (original) (raw)
Go to the documentation of this file.
1
2
3
4
5
6
7
8
9
10
11
14
15using namespace llvm;
16
18 assert(EltTy && "Can't get a pointer to type!");
20
22
23 TypedPointerType *&Entry =
25
26 if (!Entry)
28 return Entry;
29}
30
31TypedPointerType::TypedPointerType(Type *E, unsigned AddrSpace)
32 : Type(E->getContext(), TypedPointerTyID), PointeeTy(E) {
36}
37
39 return !ElemTy->isVoidTy() && !ElemTy->isLabelTy() &&
40 !ElemTy->isMetadataTy() && !ElemTy->isTokenTy() &&
41 !ElemTy->isX86_AMXTy();
42}
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.
Definition TypedPointerType.cpp:38
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.
Definition TypedPointerType.cpp:17
This is an optimization pass for GlobalISel generic memory operations.