forked from OSchip/llvm-project
Add in some interfaces that will allow easier access to the pointer address space.
llvm-svn: 165554
This commit is contained in:
parent
ff758fbd45
commit
7edfe5f6b2
|
@ -956,7 +956,12 @@ public:
|
|||
const MachinePointerInfo &getPointerInfo() const {
|
||||
return MMO->getPointerInfo();
|
||||
}
|
||||
|
||||
|
||||
/// getAddressSpace - Return the address space for the associated pointer
|
||||
unsigned getAddressSpace() const {
|
||||
return getPointerInfo().getAddrSpace();
|
||||
}
|
||||
|
||||
/// refineAlignment - Update this MemSDNode's MachineMemOperand information
|
||||
/// to reflect the alignment of NewMMO, if it has a greater alignment.
|
||||
/// This must only be used when the new alignment applies to all users of
|
||||
|
|
|
@ -778,7 +778,7 @@ public:
|
|||
static Type *getIndexedType(Type *Ptr, ArrayRef<Constant *> IdxList);
|
||||
static Type *getIndexedType(Type *Ptr, ArrayRef<uint64_t> IdxList);
|
||||
|
||||
/// getIndexedType - Returns the address space used by the GEP pointer.
|
||||
/// getAddressSpace - Returns the address space used by the GEP pointer.
|
||||
///
|
||||
static unsigned getAddressSpace(Value *Ptr);
|
||||
|
||||
|
@ -798,7 +798,7 @@ public:
|
|||
}
|
||||
|
||||
unsigned getPointerAddressSpace() const {
|
||||
return cast<PointerType>(getType())->getAddressSpace();
|
||||
return cast<PointerType>(getPointerOperandType())->getAddressSpace();
|
||||
}
|
||||
|
||||
/// getPointerOperandType - Method to return the pointer operand as a
|
||||
|
@ -3640,6 +3640,11 @@ public:
|
|||
/// @brief Clone an identical IntToPtrInst
|
||||
virtual IntToPtrInst *clone_impl() const;
|
||||
|
||||
/// @brief return the address space of the pointer.
|
||||
unsigned getAddressSpace() const {
|
||||
return cast<PointerType>(getType())->getAddressSpace();
|
||||
}
|
||||
|
||||
// Methods for support type inquiry through isa, cast, and dyn_cast:
|
||||
static inline bool classof(const IntToPtrInst *) { return true; }
|
||||
static inline bool classof(const Instruction *I) {
|
||||
|
@ -3677,6 +3682,11 @@ public:
|
|||
BasicBlock *InsertAtEnd ///< The block to insert the instruction into
|
||||
);
|
||||
|
||||
/// @brief return the address space of the pointer.
|
||||
unsigned getPointerAddressSpace() const {
|
||||
return cast<PointerType>(getOperand(0)->getType())->getAddressSpace();
|
||||
}
|
||||
|
||||
// Methods for support type inquiry through isa, cast, and dyn_cast:
|
||||
static inline bool classof(const PtrToIntInst *) { return true; }
|
||||
static inline bool classof(const Instruction *I) {
|
||||
|
|
|
@ -16,6 +16,7 @@
|
|||
#define LLVM_OPERATOR_H
|
||||
|
||||
#include "llvm/Constants.h"
|
||||
#include "llvm/DerivedTypes.h"
|
||||
#include "llvm/Instruction.h"
|
||||
#include "llvm/Type.h"
|
||||
|
||||
|
@ -290,6 +291,12 @@ public:
|
|||
return getPointerOperand()->getType();
|
||||
}
|
||||
|
||||
/// getPointerAddressSpace - Method to return the address space of the
|
||||
/// pointer operand.
|
||||
unsigned getPointerAddressSpace() const {
|
||||
return cast<PointerType>(getPointerOperandType())->getAddressSpace();
|
||||
}
|
||||
|
||||
unsigned getNumIndices() const { // Note: always non-negative
|
||||
return getNumOperands() - 1;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue