From c73966c2f79290e4eefe6e481f7bc94dd6ca4437 Mon Sep 17 00:00:00 2001 From: madhur13490 Date: Sat, 27 Jun 2020 18:36:25 +0000 Subject: [PATCH] Improve stack object printing. NFC. Reviewers: madhur13490 Reviewed By: madhur13490 Subscribers: qcolombet, arsenm, jvesely, nhaehnle, hiraditya, kerbowa, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D82712 --- llvm/include/llvm/CodeGen/MachineFrameInfo.h | 2 +- llvm/lib/CodeGen/MachineFrameInfo.cpp | 14 ++++++++++---- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/llvm/include/llvm/CodeGen/MachineFrameInfo.h b/llvm/include/llvm/CodeGen/MachineFrameInfo.h index c5e57e6..cfda92b 100644 --- a/llvm/include/llvm/CodeGen/MachineFrameInfo.h +++ b/llvm/include/llvm/CodeGen/MachineFrameInfo.h @@ -821,7 +821,7 @@ public: BitVector getPristineRegs(const MachineFunction &MF) const; /// Used by the MachineFunction printer to print information about - /// stack objects. Implemented in MachineFunction.cpp. + /// stack objects. void print(const MachineFunction &MF, raw_ostream &OS) const; /// dump - Print the function to stderr. diff --git a/llvm/lib/CodeGen/MachineFrameInfo.cpp b/llvm/lib/CodeGen/MachineFrameInfo.cpp index 7ba27ff..a0e706b 100644 --- a/llvm/lib/CodeGen/MachineFrameInfo.cpp +++ b/llvm/lib/CodeGen/MachineFrameInfo.cpp @@ -210,11 +210,16 @@ void MachineFrameInfo::computeMaxCallFrameSize(const MachineFunction &MF) { } void MachineFrameInfo::print(const MachineFunction &MF, raw_ostream &OS) const{ - if (Objects.empty()) return; - + OS << "MF name: " << MF.getName() << "\n"; + if (Objects.empty()) { + OS << "No stack objects.\n"; + return; + } const TargetFrameLowering *FI = MF.getSubtarget().getFrameLowering(); int ValOffset = (FI ? FI->getOffsetOfLocalArea() : 0); + OS << "NumFixedObjects=" << static_cast(NumFixedObjects) << "\n"; + OS << "Frame Objects:\n"; for (unsigned i = 0, e = Objects.size(); i != e; ++i) { @@ -222,12 +227,13 @@ void MachineFrameInfo::print(const MachineFunction &MF, raw_ostream &OS) const{ OS << " fi#" << (int)(i-NumFixedObjects) << ": "; if (SO.StackID != 0) - OS << "id=" << static_cast(SO.StackID) << ' '; + OS << "stackid=" << static_cast(SO.StackID) << ", "; if (SO.Size == ~0ULL) { OS << "dead\n"; continue; } + OS << "isSplitSplot=" << static_cast(SO.isSpillSlot) << ", "; if (SO.Size == 0) OS << "variable sized"; else @@ -235,7 +241,7 @@ void MachineFrameInfo::print(const MachineFunction &MF, raw_ostream &OS) const{ OS << ", align=" << SO.Alignment.value(); if (i < NumFixedObjects) - OS << ", fixed"; + OS << ", fixed objects:"; if (i < NumFixedObjects || SO.SPOffset != -1) { int64_t Off = SO.SPOffset - ValOffset; OS << ", at location [SP"; -- 2.7.4