aboutsummaryrefslogtreecommitdiffstats
path: root/include/llvm/CodeGen/MachineFrameInfo.h
diff options
context:
space:
mode:
authorEvan Cheng <evan.cheng@apple.com>2008-06-04 09:18:41 +0000
committerEvan Cheng <evan.cheng@apple.com>2008-06-04 09:18:41 +0000
commit3f32d65912b4da23793dab618d981be2ce11c331 (patch)
tree6d1861bf53b6feb65e0dd92460b033125aa731f0 /include/llvm/CodeGen/MachineFrameInfo.h
parentd8a46e3a74251989f282ca186893dc90bf48e26d (diff)
downloadexternal_llvm-3f32d65912b4da23793dab618d981be2ce11c331.zip
external_llvm-3f32d65912b4da23793dab618d981be2ce11c331.tar.gz
external_llvm-3f32d65912b4da23793dab618d981be2ce11c331.tar.bz2
Add a stack slot coloring pass. Not yet enabled.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51934 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/llvm/CodeGen/MachineFrameInfo.h')
-rw-r--r--include/llvm/CodeGen/MachineFrameInfo.h22
1 files changed, 16 insertions, 6 deletions
diff --git a/include/llvm/CodeGen/MachineFrameInfo.h b/include/llvm/CodeGen/MachineFrameInfo.h
index 0f40550..b47ef67 100644
--- a/include/llvm/CodeGen/MachineFrameInfo.h
+++ b/include/llvm/CodeGen/MachineFrameInfo.h
@@ -195,6 +195,13 @@ public:
///
int getObjectIndexEnd() const { return (int)Objects.size()-NumFixedObjects; }
+ /// getNumFixedObjects() - Return the number of fixed objects.
+ unsigned getNumFixedObjects() const { return NumFixedObjects; }
+
+ /// getNumObjects() - Return the number of objects.
+ ///
+ unsigned getNumObjects() const { return Objects.size(); }
+
/// getObjectSize - Return the size of the specified object
///
int64_t getObjectSize(int ObjectIdx) const {
@@ -203,6 +210,13 @@ public:
return Objects[ObjectIdx+NumFixedObjects].Size;
}
+ // setObjectSize - Change the size of the specified stack object...
+ void setObjectSize(int ObjectIdx, int64_t Size) {
+ assert(unsigned(ObjectIdx+NumFixedObjects) < Objects.size() &&
+ "Invalid Object Idx!");
+ Objects[ObjectIdx+NumFixedObjects].Size = Size;
+ }
+
/// getObjectAlignment - Return the alignment of the specified stack object...
unsigned getObjectAlignment(int ObjectIdx) const {
assert(unsigned(ObjectIdx+NumFixedObjects) < Objects.size() &&
@@ -324,12 +338,8 @@ public:
/// RemoveStackObject - Remove or mark dead a statically sized stack object.
///
void RemoveStackObject(int ObjectIdx) {
- if (ObjectIdx == (int)(Objects.size()-NumFixedObjects-1))
- // Last object, simply pop it off the list.
- Objects.pop_back();
- else
- // Mark it dead.
- Objects[ObjectIdx+NumFixedObjects].Size = ~0ULL;
+ // Mark it dead.
+ Objects[ObjectIdx+NumFixedObjects].Size = ~0ULL;
}
/// CreateVariableSizedObject - Notify the MachineFrameInfo object that a