Print machine frame objects with the frame offset intrinsic to the machine

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5329 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Chris Lattner 2003-01-16 18:35:57 +00:00
parent 55f6fab9f1
commit 9085d8a9a9
2 changed files with 16 additions and 10 deletions

View File

@ -33,6 +33,7 @@
class TargetData;
class TargetRegisterClass;
class MachineFunction;
#include <vector>
class MachineFrameInfo {
@ -205,10 +206,10 @@ public:
/// print - Used by the MachineFunction printer to print information about
/// stack objects. Implemented in MachineFunction.cpp
///
void print(std::ostream &OS) const;
void print(const MachineFunction &MF, std::ostream &OS) const;
/// dump - Call print(std::cerr) to be called from the debugger.
void dump() const;
/// dump - Call print(MF, std::cerr) to be called from the debugger.
void dump(const MachineFunction &MF) const;
};
#endif

View File

@ -120,7 +120,7 @@ void MachineFunction::print(std::ostream &OS) const {
<< "\"\n";
// Print Frame Information
getFrameInfo()->print(OS);
getFrameInfo()->print(*this, OS);
// Print Constant Pool
getConstantPool()->print(OS);
@ -188,7 +188,9 @@ int MachineFrameInfo::CreateStackObject(const TargetRegisterClass *RC) {
}
void MachineFrameInfo::print(std::ostream &OS) const {
void MachineFrameInfo::print(const MachineFunction &MF, std::ostream &OS) const{
int ValOffset = MF.getTarget().getFrameInfo().getOffsetOfLocalArea();
for (unsigned i = 0, e = Objects.size(); i != e; ++i) {
const StackObject &SO = Objects[i];
OS << " <fi #" << (int)(i-NumFixedObjects) << "> is ";
@ -200,11 +202,12 @@ void MachineFrameInfo::print(std::ostream &OS) const {
if (i < NumFixedObjects)
OS << " fixed";
if (i < NumFixedObjects || SO.SPOffset != -1) {
int Off = SO.SPOffset + ValOffset;
OS << " at location [SP";
if (SO.SPOffset > 0)
OS << "+" << SO.SPOffset;
else if (SO.SPOffset < 0)
OS << SO.SPOffset;
if (Off > 0)
OS << "+" << Off;
else if (Off < 0)
OS << Off;
OS << "]";
}
OS << "\n";
@ -214,7 +217,9 @@ void MachineFrameInfo::print(std::ostream &OS) const {
OS << " Stack frame contains variable sized objects\n";
}
void MachineFrameInfo::dump() const { print(std::cerr); }
void MachineFrameInfo::dump(const MachineFunction &MF) const {
print(MF, std::cerr);
}
//===----------------------------------------------------------------------===//