mirror of
https://github.com/RPCSX/llvm.git
synced 2024-11-29 22:50:47 +00:00
remove std::ostream versions of printing stuff for MBB and MF,
upgrading a few things to use raw_ostream git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79811 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
51a1132403
commit
cf143a4d91
@ -310,7 +310,6 @@ public:
|
|||||||
|
|
||||||
// Debugging methods.
|
// Debugging methods.
|
||||||
void dump() const;
|
void dump() const;
|
||||||
void print(std::ostream &OS) const;
|
|
||||||
void print(raw_ostream &OS) const;
|
void print(raw_ostream &OS) const;
|
||||||
|
|
||||||
/// getNumber - MachineBasicBlocks are uniquely numbered at the function
|
/// getNumber - MachineBasicBlocks are uniquely numbered at the function
|
||||||
@ -339,7 +338,6 @@ private: // Methods used to maintain doubly linked list of blocks...
|
|||||||
void removePredecessor(MachineBasicBlock *pred);
|
void removePredecessor(MachineBasicBlock *pred);
|
||||||
};
|
};
|
||||||
|
|
||||||
std::ostream& operator<<(std::ostream &OS, const MachineBasicBlock &MBB);
|
|
||||||
raw_ostream& operator<<(raw_ostream &OS, const MachineBasicBlock &MBB);
|
raw_ostream& operator<<(raw_ostream &OS, const MachineBasicBlock &MBB);
|
||||||
|
|
||||||
//===--------------------------------------------------------------------===//
|
//===--------------------------------------------------------------------===//
|
||||||
|
@ -207,7 +207,6 @@ public:
|
|||||||
/// print - Print out the MachineFunction in a format suitable for debugging
|
/// print - Print out the MachineFunction in a format suitable for debugging
|
||||||
/// to the specified stream.
|
/// to the specified stream.
|
||||||
///
|
///
|
||||||
void print(std::ostream &OS) const;
|
|
||||||
void print(raw_ostream &OS) const;
|
void print(raw_ostream &OS) const;
|
||||||
|
|
||||||
/// viewCFG - This function is meant for use from the debugger. You can just
|
/// viewCFG - This function is meant for use from the debugger. You can just
|
||||||
|
@ -15,7 +15,6 @@
|
|||||||
#ifndef LLVM_CODEGEN_PASSES_H
|
#ifndef LLVM_CODEGEN_PASSES_H
|
||||||
#define LLVM_CODEGEN_PASSES_H
|
#define LLVM_CODEGEN_PASSES_H
|
||||||
|
|
||||||
#include <iosfwd>
|
|
||||||
#include <string>
|
#include <string>
|
||||||
|
|
||||||
namespace llvm {
|
namespace llvm {
|
||||||
@ -25,6 +24,7 @@ namespace llvm {
|
|||||||
class TargetMachine;
|
class TargetMachine;
|
||||||
class TargetLowering;
|
class TargetLowering;
|
||||||
class RegisterCoalescer;
|
class RegisterCoalescer;
|
||||||
|
class raw_ostream;
|
||||||
|
|
||||||
/// createUnreachableBlockEliminationPass - The LLVM code generator does not
|
/// createUnreachableBlockEliminationPass - The LLVM code generator does not
|
||||||
/// work well with unreachable basic blocks (what live ranges make sense for a
|
/// work well with unreachable basic blocks (what live ranges make sense for a
|
||||||
@ -36,7 +36,7 @@ namespace llvm {
|
|||||||
|
|
||||||
/// MachineFunctionPrinter pass - This pass prints out the machine function to
|
/// MachineFunctionPrinter pass - This pass prints out the machine function to
|
||||||
/// the given stream, as a debugging tool.
|
/// the given stream, as a debugging tool.
|
||||||
FunctionPass *createMachineFunctionPrinterPass(std::ostream *OS,
|
FunctionPass *createMachineFunctionPrinterPass(raw_ostream &OS,
|
||||||
const std::string &Banner ="");
|
const std::string &Banner ="");
|
||||||
|
|
||||||
/// MachineLoopInfo pass - This pass is a loop analysis pass.
|
/// MachineLoopInfo pass - This pass is a loop analysis pass.
|
||||||
@ -166,7 +166,7 @@ namespace llvm {
|
|||||||
|
|
||||||
/// Creates a pass to print GC metadata.
|
/// Creates a pass to print GC metadata.
|
||||||
///
|
///
|
||||||
FunctionPass *createGCInfoPrinter(std::ostream &OS);
|
FunctionPass *createGCInfoPrinter(raw_ostream &OS);
|
||||||
|
|
||||||
/// createMachineLICMPass - This pass performs LICM on machine instructions.
|
/// createMachineLICMPass - This pass performs LICM on machine instructions.
|
||||||
///
|
///
|
||||||
|
@ -19,17 +19,19 @@
|
|||||||
#include "llvm/Function.h"
|
#include "llvm/Function.h"
|
||||||
#include "llvm/Support/Compiler.h"
|
#include "llvm/Support/Compiler.h"
|
||||||
#include "llvm/Support/ErrorHandling.h"
|
#include "llvm/Support/ErrorHandling.h"
|
||||||
|
#include "llvm/Support/raw_ostream.h"
|
||||||
using namespace llvm;
|
using namespace llvm;
|
||||||
|
|
||||||
namespace {
|
namespace {
|
||||||
|
|
||||||
class VISIBILITY_HIDDEN Printer : public FunctionPass {
|
class VISIBILITY_HIDDEN Printer : public FunctionPass {
|
||||||
static char ID;
|
static char ID;
|
||||||
std::ostream &OS;
|
raw_ostream &OS;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
explicit Printer(std::ostream &OS = *cerr);
|
Printer() : FunctionPass(&ID), OS(errs()) {}
|
||||||
|
explicit Printer(raw_ostream &OS) : FunctionPass(&ID), OS(OS) {}
|
||||||
|
|
||||||
|
|
||||||
const char *getPassName() const;
|
const char *getPassName() const;
|
||||||
void getAnalysisUsage(AnalysisUsage &AU) const;
|
void getAnalysisUsage(AnalysisUsage &AU) const;
|
||||||
@ -122,12 +124,10 @@ void GCModuleInfo::clear() {
|
|||||||
|
|
||||||
char Printer::ID = 0;
|
char Printer::ID = 0;
|
||||||
|
|
||||||
FunctionPass *llvm::createGCInfoPrinter(std::ostream &OS) {
|
FunctionPass *llvm::createGCInfoPrinter(raw_ostream &OS) {
|
||||||
return new Printer(OS);
|
return new Printer(OS);
|
||||||
}
|
}
|
||||||
|
|
||||||
Printer::Printer(std::ostream &OS)
|
|
||||||
: FunctionPass(&ID), OS(OS) {}
|
|
||||||
|
|
||||||
const char *Printer::getPassName() const {
|
const char *Printer::getPassName() const {
|
||||||
return "Print Garbage Collector Information";
|
return "Print Garbage Collector Information";
|
||||||
|
@ -78,10 +78,10 @@ LLVMTargetMachine::addPassesToEmitFile(PassManagerBase &PM,
|
|||||||
PM.add(createDebugLabelFoldingPass());
|
PM.add(createDebugLabelFoldingPass());
|
||||||
|
|
||||||
if (PrintMachineCode)
|
if (PrintMachineCode)
|
||||||
PM.add(createMachineFunctionPrinterPass(cerr));
|
PM.add(createMachineFunctionPrinterPass(errs()));
|
||||||
|
|
||||||
if (addPreEmitPass(PM, OptLevel) && PrintMachineCode)
|
if (addPreEmitPass(PM, OptLevel) && PrintMachineCode)
|
||||||
PM.add(createMachineFunctionPrinterPass(cerr));
|
PM.add(createMachineFunctionPrinterPass(errs()));
|
||||||
|
|
||||||
if (OptLevel != CodeGenOpt::None)
|
if (OptLevel != CodeGenOpt::None)
|
||||||
PM.add(createCodePlacementOptPass());
|
PM.add(createCodePlacementOptPass());
|
||||||
@ -178,7 +178,7 @@ bool LLVMTargetMachine::addPassesToEmitMachineCode(PassManagerBase &PM,
|
|||||||
return true;
|
return true;
|
||||||
|
|
||||||
if (addPreEmitPass(PM, OptLevel) && PrintMachineCode)
|
if (addPreEmitPass(PM, OptLevel) && PrintMachineCode)
|
||||||
PM.add(createMachineFunctionPrinterPass(cerr));
|
PM.add(createMachineFunctionPrinterPass(errs()));
|
||||||
|
|
||||||
addCodeEmitter(PM, OptLevel, MCE);
|
addCodeEmitter(PM, OptLevel, MCE);
|
||||||
if (PrintEmittedAsm)
|
if (PrintEmittedAsm)
|
||||||
@ -203,7 +203,7 @@ bool LLVMTargetMachine::addPassesToEmitMachineCode(PassManagerBase &PM,
|
|||||||
return true;
|
return true;
|
||||||
|
|
||||||
if (addPreEmitPass(PM, OptLevel) && PrintMachineCode)
|
if (addPreEmitPass(PM, OptLevel) && PrintMachineCode)
|
||||||
PM.add(createMachineFunctionPrinterPass(cerr));
|
PM.add(createMachineFunctionPrinterPass(errs()));
|
||||||
|
|
||||||
addCodeEmitter(PM, OptLevel, JCE);
|
addCodeEmitter(PM, OptLevel, JCE);
|
||||||
if (PrintEmittedAsm)
|
if (PrintEmittedAsm)
|
||||||
@ -217,7 +217,7 @@ bool LLVMTargetMachine::addPassesToEmitMachineCode(PassManagerBase &PM,
|
|||||||
static void printAndVerify(PassManagerBase &PM,
|
static void printAndVerify(PassManagerBase &PM,
|
||||||
bool allowDoubleDefs = false) {
|
bool allowDoubleDefs = false) {
|
||||||
if (PrintMachineCode)
|
if (PrintMachineCode)
|
||||||
PM.add(createMachineFunctionPrinterPass(cerr));
|
PM.add(createMachineFunctionPrinterPass(errs()));
|
||||||
|
|
||||||
if (VerifyMachineCode)
|
if (VerifyMachineCode)
|
||||||
PM.add(createMachineVerifierPass(allowDoubleDefs));
|
PM.add(createMachineVerifierPass(allowDoubleDefs));
|
||||||
@ -334,7 +334,7 @@ bool LLVMTargetMachine::addCommonCodeGenPasses(PassManagerBase &PM,
|
|||||||
printAndVerify(PM);
|
printAndVerify(PM);
|
||||||
|
|
||||||
if (PrintGCInfo)
|
if (PrintGCInfo)
|
||||||
PM.add(createGCInfoPrinter(*cerr));
|
PM.add(createGCInfoPrinter(errs()));
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
@ -32,10 +32,6 @@ MachineBasicBlock::~MachineBasicBlock() {
|
|||||||
LeakDetector::removeGarbageObject(this);
|
LeakDetector::removeGarbageObject(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
std::ostream &llvm::operator<<(std::ostream &OS, const MachineBasicBlock &MBB) {
|
|
||||||
MBB.print(OS);
|
|
||||||
return OS;
|
|
||||||
}
|
|
||||||
raw_ostream &llvm::operator<<(raw_ostream &OS, const MachineBasicBlock &MBB) {
|
raw_ostream &llvm::operator<<(raw_ostream &OS, const MachineBasicBlock &MBB) {
|
||||||
MBB.print(OS);
|
MBB.print(OS);
|
||||||
return OS;
|
return OS;
|
||||||
@ -159,7 +155,7 @@ bool MachineBasicBlock::isOnlyReachableByFallthrough() const {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void MachineBasicBlock::dump() const {
|
void MachineBasicBlock::dump() const {
|
||||||
print(*cerr.stream());
|
print(errs());
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline void OutputReg(raw_ostream &os, unsigned RegNo,
|
static inline void OutputReg(raw_ostream &os, unsigned RegNo,
|
||||||
@ -173,11 +169,6 @@ static inline void OutputReg(raw_ostream &os, unsigned RegNo,
|
|||||||
os << " %reg" << RegNo;
|
os << " %reg" << RegNo;
|
||||||
}
|
}
|
||||||
|
|
||||||
void MachineBasicBlock::print(std::ostream &OS) const {
|
|
||||||
raw_os_ostream RawOS(OS);
|
|
||||||
print(RawOS);
|
|
||||||
}
|
|
||||||
|
|
||||||
void MachineBasicBlock::print(raw_ostream &OS) const {
|
void MachineBasicBlock::print(raw_ostream &OS) const {
|
||||||
const MachineFunction *MF = getParent();
|
const MachineFunction *MF = getParent();
|
||||||
if (!MF) {
|
if (!MF) {
|
||||||
|
@ -33,18 +33,16 @@
|
|||||||
#include "llvm/Support/Compiler.h"
|
#include "llvm/Support/Compiler.h"
|
||||||
#include "llvm/Support/GraphWriter.h"
|
#include "llvm/Support/GraphWriter.h"
|
||||||
#include "llvm/Support/raw_ostream.h"
|
#include "llvm/Support/raw_ostream.h"
|
||||||
#include <fstream>
|
|
||||||
#include <sstream>
|
|
||||||
using namespace llvm;
|
using namespace llvm;
|
||||||
|
|
||||||
namespace {
|
namespace {
|
||||||
struct VISIBILITY_HIDDEN Printer : public MachineFunctionPass {
|
struct VISIBILITY_HIDDEN Printer : public MachineFunctionPass {
|
||||||
static char ID;
|
static char ID;
|
||||||
|
|
||||||
std::ostream *OS;
|
raw_ostream &OS;
|
||||||
const std::string Banner;
|
const std::string Banner;
|
||||||
|
|
||||||
Printer(std::ostream *os, const std::string &banner)
|
Printer(raw_ostream &os, const std::string &banner)
|
||||||
: MachineFunctionPass(&ID), OS(os), Banner(banner) {}
|
: MachineFunctionPass(&ID), OS(os), Banner(banner) {}
|
||||||
|
|
||||||
const char *getPassName() const { return "MachineFunction Printer"; }
|
const char *getPassName() const { return "MachineFunction Printer"; }
|
||||||
@ -55,8 +53,8 @@ namespace {
|
|||||||
}
|
}
|
||||||
|
|
||||||
bool runOnMachineFunction(MachineFunction &MF) {
|
bool runOnMachineFunction(MachineFunction &MF) {
|
||||||
(*OS) << Banner;
|
OS << Banner;
|
||||||
MF.print (*OS);
|
MF.print(OS);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
@ -66,7 +64,7 @@ namespace {
|
|||||||
/// Returns a newly-created MachineFunction Printer pass. The default banner is
|
/// Returns a newly-created MachineFunction Printer pass. The default banner is
|
||||||
/// empty.
|
/// empty.
|
||||||
///
|
///
|
||||||
FunctionPass *llvm::createMachineFunctionPrinterPass(std::ostream *OS,
|
FunctionPass *llvm::createMachineFunctionPrinterPass(raw_ostream &OS,
|
||||||
const std::string &Banner){
|
const std::string &Banner){
|
||||||
return new Printer(OS, Banner);
|
return new Printer(OS, Banner);
|
||||||
}
|
}
|
||||||
@ -220,11 +218,6 @@ void MachineFunction::dump() const {
|
|||||||
print(errs());
|
print(errs());
|
||||||
}
|
}
|
||||||
|
|
||||||
void MachineFunction::print(std::ostream &OS) const {
|
|
||||||
raw_os_ostream RawOS(OS);
|
|
||||||
print(RawOS);
|
|
||||||
}
|
|
||||||
|
|
||||||
void MachineFunction::print(raw_ostream &OS) const {
|
void MachineFunction::print(raw_ostream &OS) const {
|
||||||
OS << "# Machine code for " << Fn->getName() << "():\n";
|
OS << "# Machine code for " << Fn->getName() << "():\n";
|
||||||
|
|
||||||
@ -284,15 +277,16 @@ namespace llvm {
|
|||||||
!Node->getBasicBlock()->getName().empty())
|
!Node->getBasicBlock()->getName().empty())
|
||||||
return Node->getBasicBlock()->getNameStr() + ":";
|
return Node->getBasicBlock()->getNameStr() + ":";
|
||||||
|
|
||||||
std::ostringstream Out;
|
std::string OutStr;
|
||||||
if (ShortNames) {
|
{
|
||||||
Out << Node->getNumber() << ':';
|
raw_string_ostream OSS(OutStr);
|
||||||
return Out.str();
|
|
||||||
|
if (ShortNames)
|
||||||
|
OSS << Node->getNumber() << ':';
|
||||||
|
else
|
||||||
|
Node->print(OSS);
|
||||||
}
|
}
|
||||||
|
|
||||||
Node->print(Out);
|
|
||||||
|
|
||||||
std::string OutStr = Out.str();
|
|
||||||
if (OutStr[0] == '\n') OutStr.erase(OutStr.begin());
|
if (OutStr[0] == '\n') OutStr.erase(OutStr.begin());
|
||||||
|
|
||||||
// Process string output to make it nicer...
|
// Process string output to make it nicer...
|
||||||
|
@ -239,15 +239,15 @@ bool MachineSinking::SinkInstruction(MachineInstr *MI, bool &SawStore) {
|
|||||||
if (MI->getParent() == SuccToSinkTo)
|
if (MI->getParent() == SuccToSinkTo)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
DEBUG(cerr << "Sink instr " << *MI);
|
DEBUG(errs() << "Sink instr " << *MI);
|
||||||
DEBUG(cerr << "to block " << *SuccToSinkTo);
|
DEBUG(errs() << "to block " << *SuccToSinkTo);
|
||||||
|
|
||||||
// If the block has multiple predecessors, this would introduce computation on
|
// If the block has multiple predecessors, this would introduce computation on
|
||||||
// a path that it doesn't already exist. We could split the critical edge,
|
// a path that it doesn't already exist. We could split the critical edge,
|
||||||
// but for now we just punt.
|
// but for now we just punt.
|
||||||
// FIXME: Split critical edges if not backedges.
|
// FIXME: Split critical edges if not backedges.
|
||||||
if (SuccToSinkTo->pred_size() > 1) {
|
if (SuccToSinkTo->pred_size() > 1) {
|
||||||
DEBUG(cerr << " *** PUNTING: Critical edge found\n");
|
DEBUG(errs() << " *** PUNTING: Critical edge found\n");
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -23,9 +23,6 @@
|
|||||||
// the verifier errors.
|
// the verifier errors.
|
||||||
//===----------------------------------------------------------------------===//
|
//===----------------------------------------------------------------------===//
|
||||||
|
|
||||||
#include "llvm/ADT/DenseSet.h"
|
|
||||||
#include "llvm/ADT/SetOperations.h"
|
|
||||||
#include "llvm/ADT/SmallVector.h"
|
|
||||||
#include "llvm/Function.h"
|
#include "llvm/Function.h"
|
||||||
#include "llvm/CodeGen/LiveVariables.h"
|
#include "llvm/CodeGen/LiveVariables.h"
|
||||||
#include "llvm/CodeGen/MachineFunctionPass.h"
|
#include "llvm/CodeGen/MachineFunctionPass.h"
|
||||||
@ -35,6 +32,9 @@
|
|||||||
#include "llvm/Target/TargetMachine.h"
|
#include "llvm/Target/TargetMachine.h"
|
||||||
#include "llvm/Target/TargetRegisterInfo.h"
|
#include "llvm/Target/TargetRegisterInfo.h"
|
||||||
#include "llvm/Target/TargetInstrInfo.h"
|
#include "llvm/Target/TargetInstrInfo.h"
|
||||||
|
#include "llvm/ADT/DenseSet.h"
|
||||||
|
#include "llvm/ADT/SetOperations.h"
|
||||||
|
#include "llvm/ADT/SmallVector.h"
|
||||||
#include "llvm/Support/Compiler.h"
|
#include "llvm/Support/Compiler.h"
|
||||||
#include "llvm/Support/Debug.h"
|
#include "llvm/Support/Debug.h"
|
||||||
#include "llvm/Support/ErrorHandling.h"
|
#include "llvm/Support/ErrorHandling.h"
|
||||||
|
Loading…
Reference in New Issue
Block a user