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.