diff options
author | Chris Lattner <sabre@nondot.org> | 2010-09-21 04:32:08 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2010-09-21 04:32:08 +0000 |
commit | da39c3964423744b4d79aebef8bece3e9141d5fc (patch) | |
tree | 7c6b86b1c4e76697098e115dfd3adbad11ec04f8 /include | |
parent | e8e2e80f40495fdd5ad475beb54fcf0989b6b7c5 (diff) | |
download | external_llvm-da39c3964423744b4d79aebef8bece3e9141d5fc.zip external_llvm-da39c3964423744b4d79aebef8bece3e9141d5fc.tar.gz external_llvm-da39c3964423744b4d79aebef8bece3e9141d5fc.tar.bz2 |
start pushing MachinePointerInfo out through the MachineMemOperand interface
to the MachineFunction construction methods.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114390 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include')
-rw-r--r-- | include/llvm/CodeGen/MachineFunction.h | 8 | ||||
-rw-r--r-- | include/llvm/CodeGen/MachineMemOperand.h | 12 |
2 files changed, 17 insertions, 3 deletions
diff --git a/include/llvm/CodeGen/MachineFunction.h b/include/llvm/CodeGen/MachineFunction.h index 5bb453d..f50b48f 100644 --- a/include/llvm/CodeGen/MachineFunction.h +++ b/include/llvm/CodeGen/MachineFunction.h @@ -37,6 +37,7 @@ class MCContext; class Pass; class TargetMachine; class TargetRegisterClass; +struct MachinePointerInfo; template <> struct ilist_traits<MachineBasicBlock> @@ -372,6 +373,13 @@ public: int64_t o, uint64_t s, unsigned base_alignment); + /// getMachineMemOperand - Allocate a new MachineMemOperand. + /// MachineMemOperands are owned by the MachineFunction and need not be + /// explicitly deallocated. + MachineMemOperand *getMachineMemOperand(MachinePointerInfo PtrInfo, + unsigned f, uint64_t s, + unsigned base_alignment); + /// getMachineMemOperand - Allocate a new MachineMemOperand by copying /// an existing one, adjusting by an offset and using the given size. /// MachineMemOperands are owned by the MachineFunction and need not be diff --git a/include/llvm/CodeGen/MachineMemOperand.h b/include/llvm/CodeGen/MachineMemOperand.h index b9b35e6..0386c19 100644 --- a/include/llvm/CodeGen/MachineMemOperand.h +++ b/include/llvm/CodeGen/MachineMemOperand.h @@ -29,8 +29,14 @@ class raw_ostream; /// or to virtual locations (such as frame indices) that are exposed during /// codegen. struct MachinePointerInfo { + /// V - This is the IR pointer value for the access, or it is null if unknown. + /// If this is null, then the access is to a pointer in the default address + /// space. const Value *V; + + /// Offset - This is an offset from the base Value*. int64_t Offset; + MachinePointerInfo(const Value *v, int64_t offset) : V(v), Offset(offset) {} }; @@ -64,9 +70,9 @@ public: }; /// MachineMemOperand - Construct an MachineMemOperand object with the - /// specified address Value, flags, offset, size, and base alignment. - MachineMemOperand(const Value *v, unsigned int f, int64_t o, uint64_t s, - unsigned int base_alignment); + /// specified PtrInfo, flags, size, and base alignment. + MachineMemOperand(MachinePointerInfo PtrInfo, unsigned flags, uint64_t s, + unsigned base_alignment); /// getValue - Return the base address of the memory access. This may either /// be a normal LLVM IR Value, or one of the special values used in CodeGen. |