diff options
Diffstat (limited to 'include/llvm/CodeGen/MachineFrameInfo.h')
-rw-r--r-- | include/llvm/CodeGen/MachineFrameInfo.h | 22 |
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 |