diff options
author | Micah Villmow <villmow@gmail.com> | 2012-10-09 22:27:29 +0000 |
---|---|---|
committer | Micah Villmow <villmow@gmail.com> | 2012-10-09 22:27:29 +0000 |
commit | 63b8ab29c420703dc5ef32e6d76d9e4d8f60f19e (patch) | |
tree | 0bbbe067f88714506cb55da3f3f052c4686d577a | |
parent | 2fa8af224ea026f9432e833fd6f42a216423a010 (diff) | |
download | external_llvm-63b8ab29c420703dc5ef32e6d76d9e4d8f60f19e.zip external_llvm-63b8ab29c420703dc5ef32e6d76d9e4d8f60f19e.tar.gz external_llvm-63b8ab29c420703dc5ef32e6d76d9e4d8f60f19e.tar.bz2 |
Add in some interfaces that will allow easier access to the pointer address space.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165554 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | include/llvm/CodeGen/SelectionDAGNodes.h | 7 | ||||
-rw-r--r-- | include/llvm/Instructions.h | 14 | ||||
-rw-r--r-- | include/llvm/Operator.h | 7 |
3 files changed, 25 insertions, 3 deletions
diff --git a/include/llvm/CodeGen/SelectionDAGNodes.h b/include/llvm/CodeGen/SelectionDAGNodes.h index fd89973..63d4759 100644 --- a/include/llvm/CodeGen/SelectionDAGNodes.h +++ b/include/llvm/CodeGen/SelectionDAGNodes.h @@ -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 diff --git a/include/llvm/Instructions.h b/include/llvm/Instructions.h index 17b75b0..877e46f 100644 --- a/include/llvm/Instructions.h +++ b/include/llvm/Instructions.h @@ -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) { diff --git a/include/llvm/Operator.h b/include/llvm/Operator.h index 459df2b..61ac163 100644 --- a/include/llvm/Operator.h +++ b/include/llvm/Operator.h @@ -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; } |