diff options
author | David Greene <greened@obbligato.org> | 2009-08-03 21:55:09 +0000 |
---|---|---|
committer | David Greene <greened@obbligato.org> | 2009-08-03 21:55:09 +0000 |
commit | 180b5e789d07f611994743f4e936b44a7947c7fb (patch) | |
tree | fd2c7e1b494e4829cff1bb3dfac8e2552d795fe1 /lib | |
parent | 92873462f7745daa9cc72844bc21af915c3c4027 (diff) | |
download | external_llvm-180b5e789d07f611994743f4e936b44a7947c7fb.tar.gz external_llvm-180b5e789d07f611994743f4e936b44a7947c7fb.tar.bz2 external_llvm-180b5e789d07f611994743f4e936b44a7947c7fb.zip |
Re-apply LiveInterval index dumping patch, with fixes suggested by Bill
and others.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78003 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib')
-rw-r--r-- | lib/CodeGen/Dump.cpp | 18 | ||||
-rw-r--r-- | lib/CodeGen/LiveIntervalAnalysis.cpp | 6 | ||||
-rw-r--r-- | lib/CodeGen/MachineBasicBlock.cpp | 10 | ||||
-rw-r--r-- | lib/CodeGen/MachineFunction.cpp | 9 |
4 files changed, 36 insertions, 7 deletions
diff --git a/lib/CodeGen/Dump.cpp b/lib/CodeGen/Dump.cpp new file mode 100644 index 0000000000..2e70d5f25e --- /dev/null +++ b/lib/CodeGen/Dump.cpp @@ -0,0 +1,18 @@ +//===- lib/Support/Dump.h - Virtual function homes --------------*- C++ -*-===// +// +// The LLVM Compiler Infrastructure +// +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// +// +// This file provides the PrefixPrinter virtual function homes. +// +//===----------------------------------------------------------------------===// + +#include "llvm/CodeGen/Dump.h" + +using namespace llvm; + +PrefixPrinter::~PrefixPrinter() {} diff --git a/lib/CodeGen/LiveIntervalAnalysis.cpp b/lib/CodeGen/LiveIntervalAnalysis.cpp index 2c7cc765e4..63a391a319 100644 --- a/lib/CodeGen/LiveIntervalAnalysis.cpp +++ b/lib/CodeGen/LiveIntervalAnalysis.cpp @@ -2501,3 +2501,9 @@ LiveRange LiveIntervals::addLiveRangeToEndOfBlock(unsigned reg, return LR; } + +raw_ostream & +IntervalPrefixPrinter::operator()(raw_ostream &out, + const MachineInstr &instr) const { + return out << liinfo.getInstructionIndex(&instr); +} diff --git a/lib/CodeGen/MachineBasicBlock.cpp b/lib/CodeGen/MachineBasicBlock.cpp index 80ca8727f7..b30a3fcf30 100644 --- a/lib/CodeGen/MachineBasicBlock.cpp +++ b/lib/CodeGen/MachineBasicBlock.cpp @@ -153,12 +153,14 @@ static inline void OutputReg(raw_ostream &os, unsigned RegNo, os << " %reg" << RegNo; } -void MachineBasicBlock::print(std::ostream &OS) const { +void MachineBasicBlock::print(std::ostream &OS, + const PrefixPrinter &prefix) const { raw_os_ostream RawOS(OS); - print(RawOS); + print(RawOS, prefix); } -void MachineBasicBlock::print(raw_ostream &OS) const { +void MachineBasicBlock::print(raw_ostream &OS, + const PrefixPrinter &prefix) const { const MachineFunction *MF = getParent(); if(!MF) { OS << "Can't print out MachineBasicBlock because parent MachineFunction" @@ -191,7 +193,7 @@ void MachineBasicBlock::print(raw_ostream &OS) const { } for (const_iterator I = begin(); I != end(); ++I) { - OS << "\t"; + prefix(OS, *I) << "\t"; I->print(OS, &getParent()->getTarget()); } diff --git a/lib/CodeGen/MachineFunction.cpp b/lib/CodeGen/MachineFunction.cpp index 858f40362b..2e9303aeef 100644 --- a/lib/CodeGen/MachineFunction.cpp +++ b/lib/CodeGen/MachineFunction.cpp @@ -218,7 +218,8 @@ void MachineFunction::dump() const { print(*cerr.stream()); } -void MachineFunction::print(std::ostream &OS) const { +void MachineFunction::print(std::ostream &OS, + const PrefixPrinter &prefix) const { OS << "# Machine code for " << Fn->getNameStr () << "():\n"; // Print Frame Information @@ -260,8 +261,10 @@ void MachineFunction::print(std::ostream &OS) const { OS << "\n"; } - for (const_iterator BB = begin(); BB != end(); ++BB) - BB->print(OS); + for (const_iterator BB = begin(); BB != end(); ++BB) { + prefix(OS, *BB); + BB->print(OS, prefix); + } OS << "\n# End machine code for " << Fn->getNameStr () << "().\n\n"; } |