Add missing const qualifiers.
[oota-llvm.git] / include / llvm / CodeGen / MachineFrameInfo.h
index 6f13eec68768700a8c759628fe2542279661e537..be481f7ab8271c2300fa8cd7e5e67fe1a87a4a40 100644 (file)
@@ -77,16 +77,16 @@ class MachineFrameInfo {
   // StackObject - Represent a single object allocated on the stack.
   struct StackObject {
     // The size of this object on the stack. 0 means a variable sized object
-    unsigned Size;
+    uint64_t Size;
 
     // Alignment - The required alignment of this stack slot.
     unsigned Alignment;
 
     // SPOffset - The offset of this object from the stack pointer on entry to
     // the function.  This field has no meaning for a variable sized element.
-    int SPOffset;
+    int64_t SPOffset;
 
-    StackObject(unsigned Sz, unsigned Al, int SP)
+    StackObject(uint64_t Sz, unsigned Al, int64_t SP)
       : Size(Sz), Alignment(Al), SPOffset(SP) {}
   };
 
@@ -110,7 +110,7 @@ class MachineFrameInfo {
   /// above.  It then updates StackSize to contain the number of bytes that need
   /// to be allocated on entry to the function.
   ///
-  unsigned StackSize;
+  uint64_t StackSize;
   
   /// OffsetAdjustment - The amount that a frame offset needs to be adjusted to
   /// have the actual offset from the stack/frame pointer.  The calculation is 
@@ -156,7 +156,7 @@ class MachineFrameInfo {
   
 public:
   MachineFrameInfo() {
-    NumFixedObjects = StackSize = OffsetAdjustment = MaxAlignment = 0;
+    StackSize = NumFixedObjects = OffsetAdjustment = MaxAlignment = 0;
     HasVarSizedObjects = false;
     HasCalls = false;
     MaxCallFrameSize = 0;
@@ -184,7 +184,7 @@ public:
 
   /// getObjectSize - Return the size of the specified object
   ///
-  int getObjectSize(int ObjectIdx) const {
+  int64_t getObjectSize(int ObjectIdx) const {
     assert(ObjectIdx+NumFixedObjects < Objects.size() && "Invalid Object Idx!");
     return Objects[ObjectIdx+NumFixedObjects].Size;
   }
@@ -198,7 +198,7 @@ public:
   /// getObjectOffset - Return the assigned stack offset of the specified object
   /// from the incoming stack pointer.
   ///
-  int getObjectOffset(int ObjectIdx) const {
+  int64_t getObjectOffset(int ObjectIdx) const {
     assert(ObjectIdx+NumFixedObjects < Objects.size() && "Invalid Object Idx!");
     return Objects[ObjectIdx+NumFixedObjects].SPOffset;
   }
@@ -206,7 +206,7 @@ public:
   /// setObjectOffset - Set the stack frame offset of the specified object.  The
   /// offset is relative to the stack pointer on entry to the function.
   ///
-  void setObjectOffset(int ObjectIdx, int SPOffset) {
+  void setObjectOffset(int ObjectIdx, int64_t SPOffset) {
     assert(ObjectIdx+NumFixedObjects < Objects.size() && "Invalid Object Idx!");
     Objects[ObjectIdx+NumFixedObjects].SPOffset = SPOffset;
   }
@@ -215,11 +215,11 @@ public:
   /// all of the fixed size frame objects.  This is only valid after
   /// Prolog/Epilog code insertion has finalized the stack frame layout.
   ///
-  unsigned getStackSize() const { return StackSize; }
+  uint64_t getStackSize() const { return StackSize; }
 
   /// setStackSize - Set the size of the stack...
   ///
-  void setStackSize(unsigned Size) { StackSize = Size; }
+  void setStackSize(uint64_t Size) { StackSize = Size; }
   
   /// getOffsetAdjustment - Return the correction for frame offsets.
   ///
@@ -257,16 +257,22 @@ public:
   /// All fixed objects should be created before other objects are created for
   /// efficiency.  This returns an index with a negative value.
   ///
-  int CreateFixedObject(unsigned Size, int SPOffset) {
+  int CreateFixedObject(uint64_t Size, int64_t SPOffset) {
     assert(Size != 0 && "Cannot allocate zero size fixed stack objects!");
     Objects.insert(Objects.begin(), StackObject(Size, 1, SPOffset));
     return -++NumFixedObjects;
   }
 
+  /// isFixedObjectIndex - Returns true if the specified index corresponds to a
+  /// fixed stack object.
+  bool isFixedObjectIndex(int ObjectIdx) const {
+    return ObjectIdx < 0 && (ObjectIdx >= -(int)NumFixedObjects);
+  }
+
   /// CreateStackObject - Create a new statically sized stack object, returning
   /// a postive identifier to represent it.
   ///
-  int CreateStackObject(unsigned Size, unsigned Alignment) {
+  int CreateStackObject(uint64_t Size, unsigned Alignment) {
     // Keep track of the maximum alignment.
     if (MaxAlignment < Alignment) MaxAlignment = Alignment;