aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2010-09-21 04:32:08 +0000
committerChris Lattner <sabre@nondot.org>2010-09-21 04:32:08 +0000
commitda39c3964423744b4d79aebef8bece3e9141d5fc (patch)
tree7c6b86b1c4e76697098e115dfd3adbad11ec04f8 /include
parente8e2e80f40495fdd5ad475beb54fcf0989b6b7c5 (diff)
downloadexternal_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.h8
-rw-r--r--include/llvm/CodeGen/MachineMemOperand.h12
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.