Change Pass::print to take a raw ostream instead of std::ostream,

update all code that this affects.

llvm-svn: 79830
This commit is contained in:
Chris Lattner 2009-08-23 06:03:38 +00:00
parent 817b3012bc
commit 1362602eb2
50 changed files with 138 additions and 191 deletions

View File

@ -155,9 +155,7 @@ public:
///
void initialize(Module &M);
virtual void print(std::ostream &o, const Module *M) const;
void print(std::ostream *o, const Module *M) const { if (o) print(*o, M); }
void dump() const;
void print(raw_ostream &o, Module *) const;
protected:
// destroy - Release memory for the call graph
@ -202,8 +200,7 @@ public:
/// dump - Print out this call graph node.
///
void dump() const;
void print(std::ostream &OS) const;
void print(std::ostream *OS) const { if (OS) print(*OS); }
void print(raw_ostream &OS) const;
//===---------------------------------------------------------------------
// Methods to keep a call graph up to date with a function that has been

View File

@ -22,7 +22,6 @@
#define LLVM_ANALYSIS_DOMINATORS_H
#include "llvm/Pass.h"
#include "llvm/BasicBlock.h"
#include "llvm/Function.h"
#include "llvm/Instructions.h"
#include "llvm/ADT/DenseMap.h"
@ -830,7 +829,7 @@ public:
DT->releaseMemory();
}
virtual void print(std::ostream &OS, const Module* M= 0) const;
virtual void print(raw_ostream &OS, const Module* M= 0) const;
};
//===-------------------------------------
@ -978,7 +977,7 @@ public:
/// print - Convert to human readable form
///
virtual void print(std::ostream &OS, const Module* = 0) const;
virtual void print(raw_ostream &OS, const Module* = 0) const;
};

View File

@ -37,8 +37,7 @@ public:
/// passed in, then the types are printed symbolically if possible, using the
/// symbol table from the module.
///
void print(std::ostream &o, const Module *M) const;
void print(std::ostream *o, const Module *M) const { if (o) print(*o, M); }
void print(raw_ostream &o, const Module *M) const;
private:
/// IncorporateType - Incorporate one type and all of its subtypes into the

View File

@ -22,11 +22,11 @@
#include "llvm/ADT/GraphTraits.h"
#include <vector>
#include <iosfwd>
namespace llvm {
class BasicBlock;
class raw_ostream;
//===----------------------------------------------------------------------===//
//
@ -98,8 +98,7 @@ public:
bool isLoop() const;
/// print - Show contents in human readable format...
void print(std::ostream &O) const;
void print(std::ostream *O) const { if (O) print(*O); }
void print(raw_ostream &O) const;
};
/// succ_begin/succ_end - define methods so that Intervals may be used

View File

@ -60,10 +60,7 @@ public:
IntervalPartition(IntervalPartition &I, bool);
// print - Show contents in human readable format...
virtual void print(std::ostream &O, const Module* = 0) const;
void print(std::ostream *O, const Module* M = 0) const {
if (O) print(*O, M);
}
virtual void print(raw_ostream &O, const Module* = 0) const;
// getRootInterval() - Return the root interval that contains the starting
// block of the function.

View File

@ -938,7 +938,7 @@ public:
virtual void releaseMemory() { LI.releaseMemory(); }
virtual void print(std::ostream &O, const Module* M = 0) const;
virtual void print(raw_ostream &O, const Module* M = 0) const;
virtual void getAnalysisUsage(AnalysisUsage &AU) const;

View File

@ -17,7 +17,6 @@
#include "llvm/Pass.h"
#include "llvm/Analysis/ScalarEvolution.h"
#include "llvm/Support/ConstantRange.h"
#include <iosfwd>
#include <map>
namespace llvm {
@ -33,7 +32,7 @@ public:
LoopVR() : FunctionPass(&ID) {}
bool runOnFunction(Function &F);
virtual void print(std::ostream &os, const Module *) const;
virtual void print(raw_ostream &os, const Module *) const;
void releaseMemory();
void getAnalysisUsage(AnalysisUsage &AU) const;

View File

@ -57,7 +57,7 @@ struct PostDominatorTree : public FunctionPass {
return DT->properlyDominates(A, B);
}
virtual void print(std::ostream &OS, const Module*) const;
virtual void print(raw_ostream &OS, const Module*) const;
};
FunctionPass* createPostDomTree();

View File

@ -601,11 +601,7 @@ namespace llvm {
virtual bool runOnFunction(Function &F);
virtual void releaseMemory();
virtual void getAnalysisUsage(AnalysisUsage &AU) const;
void print(raw_ostream &OS, const Module* = 0) const;
virtual void print(std::ostream &OS, const Module* = 0) const;
void print(std::ostream *OS, const Module* M = 0) const {
if (OS) print(*OS, M);
}
virtual void print(raw_ostream &OS, const Module* = 0) const;
private:
FoldingSet<SCEV> UniqueSCEVs;

View File

@ -347,7 +347,7 @@ namespace llvm {
virtual bool runOnMachineFunction(MachineFunction&);
/// print - Implement the dump method.
virtual void print(std::ostream &O, const Module* = 0) const;
virtual void print(raw_ostream &O, const Module* = 0) const;
/// addIntervalsForSpills - Create new intervals for spilled defs / uses of
/// the given interval. FIXME: It also returns the weight of the spill slot

View File

@ -102,7 +102,7 @@ namespace llvm {
virtual bool runOnMachineFunction(MachineFunction&);
/// print - Implement the dump method.
virtual void print(std::ostream &O, const Module* = 0) const;
virtual void print(raw_ostream &O, const Module* = 0) const;
};
}

View File

@ -162,7 +162,7 @@ public:
virtual void releaseMemory();
virtual void print(std::ostream &OS, const Module*) const;
virtual void print(raw_ostream &OS, const Module*) const;
};
//===-------------------------------------

View File

@ -30,9 +30,7 @@
#define LLVM_PASS_H
#include "llvm/Support/DataTypes.h"
#include "llvm/Support/Streams.h"
#include <cassert>
#include <iosfwd>
#include <utility>
#include <vector>
@ -47,6 +45,7 @@ class ImmutablePass;
class PMStack;
class AnalysisResolver;
class PMDataManager;
class raw_ostream;
// AnalysisID - Use the PassInfo to identify a pass...
typedef const PassInfo* AnalysisID;
@ -103,8 +102,7 @@ public:
/// provide the Module* in case the analysis doesn't need it it can just be
/// ignored.
///
virtual void print(std::ostream &O, const Module *M) const;
void print(std::ostream *O, const Module *M) const { if (O) print(*O, M); }
virtual void print(raw_ostream &O, const Module *M) const;
void dump() const; // dump - Print to stderr.
/// Each pass is responsible for assigning a pass manager to itself.
@ -202,9 +200,6 @@ public:
AnalysisType &getAnalysisID(const PassInfo *PI, Function &F);
};
inline std::ostream &operator<<(std::ostream &OS, const Pass &P) {
P.print(OS, 0); return OS;
}
//===----------------------------------------------------------------------===//
/// ModulePass class - This class is used to implement unstructured

View File

@ -223,8 +223,6 @@ inline raw_ostream &operator<<(raw_ostream &OS, const ConstantRange &CR) {
return OS;
}
std::ostream &operator<<(std::ostream &OS, const ConstantRange &CR);
} // End llvm namespace
#endif

View File

@ -66,7 +66,7 @@ public:
virtual void passRegistered(const PassInfo *P) {
if (ignorablePass(P) || !Opt) return;
if (findOption(P->getPassArgument()) != getNumOptions()) {
cerr << "Two passes with the same argument (-"
errs() << "Two passes with the same argument (-"
<< P->getPassArgument() << ") attempted to be registered!\n";
llvm_unreachable(0);
}

View File

@ -196,7 +196,6 @@ public:
raw_ostream &operator<<(const std::string &Str) {
// Avoid the fast path, it would only increase code size for a marginal win.
write(Str.data(), Str.length());
return *this;
}
@ -220,6 +219,7 @@ public:
this->operator<<(ftostr(N));
return *this;
}
/// write_hex - Output \arg N in hexadecimal, without any prefix or padding.
raw_ostream &write_hex(unsigned long long N);

View File

@ -26,9 +26,6 @@
#include "llvm/Support/Compiler.h"
#include "llvm/Support/GraphWriter.h"
#include "llvm/Config/config.h"
#include <iosfwd>
#include <sstream>
#include <fstream>
using namespace llvm;
namespace llvm {
@ -96,7 +93,7 @@ namespace {
return false;
}
void print(std::ostream &OS, const Module* = 0) const {}
void print(raw_ostream &OS, const Module* = 0) const {}
virtual void getAnalysisUsage(AnalysisUsage &AU) const {
AU.setPreservesAll();
@ -118,7 +115,7 @@ namespace {
return false;
}
void print(std::ostream &OS, const Module* = 0) const {}
void print(raw_ostream &OS, const Module* = 0) const {}
virtual void getAnalysisUsage(AnalysisUsage &AU) const {
AU.setPreservesAll();
@ -150,7 +147,7 @@ namespace {
return false;
}
void print(std::ostream &OS, const Module* = 0) const {}
void print(raw_ostream &OS, const Module* = 0) const {}
virtual void getAnalysisUsage(AnalysisUsage &AU) const {
AU.setPreservesAll();
@ -179,7 +176,7 @@ namespace {
cerr << "\n";
return false;
}
void print(std::ostream &OS, const Module* = 0) const {}
void print(raw_ostream &OS, const Module* = 0) const {}
virtual void getAnalysisUsage(AnalysisUsage &AU) const {
AU.setPreservesAll();

View File

@ -607,7 +607,7 @@ namespace {
//===------------------------------------------------------------------===//
// Implement Analyize interface
//
void print(std::ostream &O, const Module* M) const {
void print(raw_ostream &O, const Module*) const {
PrintPointsToGraph();
}
};

View File

@ -18,8 +18,7 @@
#include "llvm/IntrinsicInst.h"
#include "llvm/Support/CallSite.h"
#include "llvm/Support/Compiler.h"
#include "llvm/Support/Streams.h"
#include <ostream>
#include "llvm/Support/raw_ostream.h"
using namespace llvm;
namespace {
@ -68,30 +67,21 @@ public:
AU.setPreservesAll();
}
void print(std::ostream *o, const Module *M) const {
if (o) print(*o, M);
}
virtual void print(std::ostream &o, const Module *M) const {
o << "CallGraph Root is: ";
virtual void print(raw_ostream &OS, const Module *) const {
OS << "CallGraph Root is: ";
if (Function *F = getRoot()->getFunction())
o << F->getNameStr() << "\n";
else
o << "<<null function: 0x" << getRoot() << ">>\n";
OS << F->getName() << "\n";
else {
OS << "<<null function: 0x" << getRoot() << ">>\n";
}
CallGraph::print(o, M);
CallGraph::print(OS, 0);
}
virtual void releaseMemory() {
destroy();
}
/// dump - Print out this call graph.
///
inline void dump() const {
print(cerr, Mod);
}
CallGraphNode* getExternalCallingNode() const { return ExternalCallingNode; }
CallGraphNode* getCallsExternalNode() const { return CallsExternalNode; }
@ -187,15 +177,11 @@ void CallGraph::destroy() {
}
}
void CallGraph::print(std::ostream &OS, const Module *M) const {
void CallGraph::print(raw_ostream &OS, Module*) const {
for (CallGraph::const_iterator I = begin(), E = end(); I != E; ++I)
I->second->print(OS);
}
void CallGraph::dump() const {
print(cerr, 0);
}
//===----------------------------------------------------------------------===//
// Implementations of public modification methods
//
@ -242,21 +228,21 @@ CallGraphNode *CallGraph::getOrInsertFunction(const Function *F) {
return CGN = new CallGraphNode(const_cast<Function*>(F));
}
void CallGraphNode::print(std::ostream &OS) const {
void CallGraphNode::print(raw_ostream &OS) const {
if (Function *F = getFunction())
OS << "Call graph node for function: '" << F->getNameStr() <<"'\n";
OS << "Call graph node for function: '" << F->getName() <<"'\n";
else
OS << "Call graph node <<null function: 0x" << this << ">>:\n";
for (const_iterator I = begin(), E = end(); I != E; ++I)
if (Function *FI = I->second->getFunction())
OS << " Calls function '" << FI->getNameStr() <<"'\n";
OS << " Calls function '" << FI->getName() <<"'\n";
else
OS << " Calls external node\n";
OS << "\n";
}
void CallGraphNode::dump() const { print(cerr); }
void CallGraphNode::dump() const { print(errs()); }
/// removeCallEdgeFor - This method removes the edge in the node for the
/// specified call site. Note that this method takes linear time, so it

View File

@ -20,6 +20,7 @@
#include "llvm/ADT/SCCIterator.h"
#include "llvm/PassManagers.h"
#include "llvm/Function.h"
#include "llvm/Support/raw_ostream.h"
using namespace llvm;
//===----------------------------------------------------------------------===//
@ -56,7 +57,7 @@ public:
// Print passes managed by this manager
void dumpPassStructure(unsigned Offset) {
llvm::cerr << std::string(Offset*2, ' ') << "Call Graph SCC Pass Manager\n";
errs().indent(Offset*2) << "Call Graph SCC Pass Manager\n";
for (unsigned Index = 0; Index < getNumContainedPasses(); ++Index) {
Pass *P = getContainedPass(Index);
P->dumpPassStructure(Offset + 1);
@ -65,9 +66,8 @@ public:
}
Pass *getContainedPass(unsigned N) {
assert ( N < PassVector.size() && "Pass number out of range!");
Pass *FP = static_cast<Pass *>(PassVector[N]);
return FP;
assert(N < PassVector.size() && "Pass number out of range!");
return static_cast<Pass *>(PassVector[N]);
}
virtual PassManagerType getPassManagerType() const {

View File

@ -92,13 +92,12 @@ bool FindUsedTypes::runOnModule(Module &m) {
// passed in, then the types are printed symbolically if possible, using the
// symbol table from the module.
//
void FindUsedTypes::print(std::ostream &OS, const Module *M) const {
raw_os_ostream RO(OS);
RO << "Types in use by this module:\n";
void FindUsedTypes::print(raw_ostream &OS, const Module *M) const {
OS << "Types in use by this module:\n";
for (std::set<const Type *>::const_iterator I = UsedTypes.begin(),
E = UsedTypes.end(); I != E; ++I) {
RO << " ";
WriteTypeSymbolic(RO, *I, M);
RO << '\n';
OS << " ";
WriteTypeSymbolic(OS, *I, M);
OS << '\n';
}
}

View File

@ -59,7 +59,7 @@ namespace {
virtual void getAnalysisUsage(AnalysisUsage &AU) const {
AU.setPreservesAll();
}
virtual void print(std::ostream &O, const Module *M) const {}
virtual void print(raw_ostream &O, const Module *M) const {}
};
}

View File

@ -37,8 +37,7 @@ bool Interval::isLoop() const {
}
void Interval::print(std::ostream &O) const {
raw_os_ostream OS(O);
void Interval::print(raw_ostream &OS) const {
OS << "-------------------------------------------------------------\n"
<< "Interval Contents:\n";

View File

@ -32,7 +32,7 @@ void IntervalPartition::releaseMemory() {
RootInterval = 0;
}
void IntervalPartition::print(std::ostream &O, const Module*) const {
void IntervalPartition::print(raw_ostream &O, const Module*) const {
for(unsigned i = 0, e = Intervals.size(); i != e; ++i)
Intervals[i]->print(O);
}

View File

@ -309,8 +309,7 @@ void LoopInfo::getAnalysisUsage(AnalysisUsage &AU) const {
AU.addRequired<DominatorTree>();
}
void LoopInfo::print(std::ostream &OS, const Module*) const {
raw_os_ostream OSS(OS);
LI.print(OSS);
void LoopInfo::print(raw_ostream &OS, const Module*) const {
LI.print(OS);
}

View File

@ -228,8 +228,7 @@ void LoopVR::getAnalysisUsage(AnalysisUsage &AU) const {
bool LoopVR::runOnFunction(Function &F) { Map.clear(); return false; }
void LoopVR::print(std::ostream &os, const Module *) const {
raw_os_ostream OS(os);
void LoopVR::print(raw_ostream &OS, const Module *) const {
for (std::map<Value *, ConstantRange *>::const_iterator I = Map.begin(),
E = Map.end(); I != E; ++I) {
OS << *I->first << ": " << *I->second << '\n';

View File

@ -41,9 +41,8 @@ PostDominatorTree::~PostDominatorTree() {
delete DT;
}
void PostDominatorTree::print(std::ostream &OS, const Module *) const {
raw_os_ostream OSS(OS);
DT->print(OSS);
void PostDominatorTree::print(raw_ostream &OS, const Module *) const {
DT->print(OS);
}

View File

@ -5193,7 +5193,3 @@ void ScalarEvolution::print(raw_ostream &OS, const Module* ) const {
PrintLoopInfo(OS, &SE, *I);
}
void ScalarEvolution::print(std::ostream &o, const Module *M) const {
raw_os_ostream OS(o);
print(OS, M);
}

View File

@ -93,7 +93,7 @@ GCStrategy *GCModuleInfo::getOrCreateStrategy(const Module *M,
}
}
cerr << "unsupported GC: " << Name << "\n";
errs() << "unsupported GC: " << Name << "\n";
llvm_unreachable(0);
}

View File

@ -29,6 +29,7 @@
#include "llvm/Target/TargetRegisterInfo.h"
#include "llvm/Support/Compiler.h"
#include "llvm/Support/ErrorHandling.h"
#include "llvm/Support/raw_ostream.h"
using namespace llvm;
@ -108,7 +109,7 @@ GCStrategy::~GCStrategy() {
bool GCStrategy::initializeCustomLowering(Module &M) { return false; }
bool GCStrategy::performCustomLowering(Function &F) {
cerr << "gc " << getName() << " must override performCustomLowering.\n";
errs() << "gc " << getName() << " must override performCustomLowering.\n";
llvm_unreachable(0);
return 0;
}

View File

@ -16,8 +16,9 @@
#include "llvm/Module.h"
#include "llvm/Type.h"
#include "llvm/CodeGen/IntrinsicLowering.h"
#include "llvm/Support/IRBuilder.h"
#include "llvm/Support/ErrorHandling.h"
#include "llvm/Support/IRBuilder.h"
#include "llvm/Support/raw_ostream.h"
#include "llvm/Target/TargetData.h"
#include "llvm/ADT/SmallVector.h"
using namespace llvm;
@ -396,8 +397,8 @@ void IntrinsicLowering::LowerIntrinsicCall(CallInst *CI) {
case Intrinsic::stacksave:
case Intrinsic::stackrestore: {
if (!Warned)
cerr << "WARNING: this target does not support the llvm.stack"
<< (Callee->getIntrinsicID() == Intrinsic::stacksave ?
errs() << "WARNING: this target does not support the llvm.stack"
<< (Callee->getIntrinsicID() == Intrinsic::stacksave ?
"save" : "restore") << " intrinsic.\n";
Warned = true;
if (Callee->getIntrinsicID() == Intrinsic::stacksave)
@ -407,8 +408,8 @@ void IntrinsicLowering::LowerIntrinsicCall(CallInst *CI) {
case Intrinsic::returnaddress:
case Intrinsic::frameaddress:
cerr << "WARNING: this target does not support the llvm."
<< (Callee->getIntrinsicID() == Intrinsic::returnaddress ?
errs() << "WARNING: this target does not support the llvm."
<< (Callee->getIntrinsicID() == Intrinsic::returnaddress ?
"return" : "frame") << "address intrinsic.\n";
CI->replaceAllUsesWith(ConstantPointerNull::get(
cast<PointerType>(CI->getType())));
@ -420,8 +421,8 @@ void IntrinsicLowering::LowerIntrinsicCall(CallInst *CI) {
case Intrinsic::pcmarker:
break; // Simply strip out pcmarker on unsupported architectures
case Intrinsic::readcyclecounter: {
cerr << "WARNING: this target does not support the llvm.readcyclecoun"
<< "ter intrinsic. It is being lowered to a constant 0\n";
errs() << "WARNING: this target does not support the llvm.readcyclecoun"
<< "ter intrinsic. It is being lowered to a constant 0\n";
CI->replaceAllUsesWith(ConstantInt::get(Type::getInt64Ty(Context), 0));
break;
}

View File

@ -516,8 +516,7 @@ bool LiveIntervals::runOnMachineFunction(MachineFunction &fn) {
}
/// print - Implement the dump method.
void LiveIntervals::print(std::ostream &O, const Module* ) const {
raw_os_ostream OS(O);
void LiveIntervals::print(raw_ostream &OS, const Module* ) const {
OS << "********** INTERVALS **********\n";
for (const_iterator I = begin(), E = end(); I != E; ++I) {
I->second->print(OS, tri_);

View File

@ -53,8 +53,7 @@ bool LiveStacks::runOnMachineFunction(MachineFunction &) {
}
/// print - Implement the dump method.
void LiveStacks::print(std::ostream &O, const Module*) const {
raw_os_ostream OS(O);
void LiveStacks::print(raw_ostream &OS, const Module*) const {
OS << "********** INTERVALS **********\n";
for (const_iterator I = begin(), E = end(); I != E; ++I) {

View File

@ -52,7 +52,6 @@ void MachineDominatorTree::releaseMemory() {
DT->releaseMemory();
}
void MachineDominatorTree::print(std::ostream &OS, const Module*) const {
raw_os_ostream OSS(OS);
DT->print(OSS);
void MachineDominatorTree::print(raw_ostream &OS, const Module*) const {
DT->print(OS);
}

View File

@ -121,13 +121,10 @@ namespace {
}
/// print - Implement the dump method.
virtual void print(std::ostream &O, const Module* M = 0) const {
virtual void print(raw_ostream &O, const Module* M = 0) const {
LIs->print(O, M);
}
void print(std::ostream *O, const Module* M = 0) const {
if (O) print(*O, M);
}
private:
MachineBasicBlock::iterator

View File

@ -69,8 +69,8 @@ CCState::AnalyzeFormalArguments(const SmallVectorImpl<ISD::InputArg> &Ins,
ISD::ArgFlagsTy ArgFlags = Ins[i].Flags;
if (Fn(i, ArgVT, ArgVT, CCValAssign::Full, ArgFlags, *this)) {
#ifndef NDEBUG
cerr << "Formal argument #" << i << " has unhandled type "
<< ArgVT.getEVTString();
errs() << "Formal argument #" << i << " has unhandled type "
<< ArgVT.getEVTString();
#endif
llvm_unreachable(0);
}
@ -87,8 +87,8 @@ void CCState::AnalyzeReturn(const SmallVectorImpl<ISD::OutputArg> &Outs,
ISD::ArgFlagsTy ArgFlags = Outs[i].Flags;
if (Fn(i, VT, VT, CCValAssign::Full, ArgFlags, *this)) {
#ifndef NDEBUG
cerr << "Return operand #" << i << " has unhandled type "
<< VT.getEVTString();
errs() << "Return operand #" << i << " has unhandled type "
<< VT.getEVTString();
#endif
llvm_unreachable(0);
}
@ -106,8 +106,8 @@ void CCState::AnalyzeCallOperands(const SmallVectorImpl<ISD::OutputArg> &Outs,
ISD::ArgFlagsTy ArgFlags = Outs[i].Flags;
if (Fn(i, ArgVT, ArgVT, CCValAssign::Full, ArgFlags, *this)) {
#ifndef NDEBUG
cerr << "Call operand #" << i << " has unhandled type "
<< ArgVT.getEVTString();
errs() << "Call operand #" << i << " has unhandled type "
<< ArgVT.getEVTString();
#endif
llvm_unreachable(0);
}
@ -125,8 +125,8 @@ void CCState::AnalyzeCallOperands(SmallVectorImpl<EVT> &ArgVTs,
ISD::ArgFlagsTy ArgFlags = Flags[i];
if (Fn(i, ArgVT, ArgVT, CCValAssign::Full, ArgFlags, *this)) {
#ifndef NDEBUG
cerr << "Call operand #" << i << " has unhandled type "
<< ArgVT.getEVTString();
errs() << "Call operand #" << i << " has unhandled type "
<< ArgVT.getEVTString();
#endif
llvm_unreachable(0);
}
@ -142,8 +142,8 @@ void CCState::AnalyzeCallResult(const SmallVectorImpl<ISD::InputArg> &Ins,
ISD::ArgFlagsTy Flags = Ins[i].Flags;
if (Fn(i, VT, VT, CCValAssign::Full, Flags, *this)) {
#ifndef NDEBUG
cerr << "Call result #" << i << " has unhandled type "
<< VT.getEVTString();
errs() << "Call result #" << i << " has unhandled type "
<< VT.getEVTString();
#endif
llvm_unreachable(0);
}
@ -155,8 +155,8 @@ void CCState::AnalyzeCallResult(const SmallVectorImpl<ISD::InputArg> &Ins,
void CCState::AnalyzeCallResult(EVT VT, CCAssignFn Fn) {
if (Fn(0, VT, VT, CCValAssign::Full, ISD::ArgFlagsTy(), *this)) {
#ifndef NDEBUG
cerr << "Call result has unhandled type "
<< VT.getEVTString();
errs() << "Call result has unhandled type "
<< VT.getEVTString();
#endif
llvm_unreachable(0);
}

View File

@ -35,6 +35,7 @@
#include "llvm/Support/Compiler.h"
#include "llvm/Support/ErrorHandling.h"
#include "llvm/Support/MathExtras.h"
#include "llvm/Support/raw_ostream.h"
#include "llvm/ADT/DenseMap.h"
#include "llvm/ADT/SmallVector.h"
#include "llvm/ADT/SmallPtrSet.h"
@ -950,7 +951,9 @@ SDValue SelectionDAGLegalize::LegalizeOp(SDValue Op) {
switch (Node->getOpcode()) {
default:
#ifndef NDEBUG
cerr << "NODE: "; Node->dump(&DAG); cerr << "\n";
errs() << "NODE: ";
Node->dump(&DAG);
errs() << "\n";
#endif
llvm_unreachable("Do not know how to legalize this operator!");

View File

@ -659,7 +659,7 @@ bool SelectionDAG::RemoveNodeFromCSEMaps(SDNode *N) {
if (!Erased && N->getValueType(N->getNumValues()-1) != MVT::Flag &&
!N->isMachineOpcode() && !doNotCSE(N)) {
N->dump(this);
cerr << "\n";
errs() << "\n";
llvm_unreachable("Node is not in map!");
}
#endif
@ -5644,16 +5644,17 @@ static void DumpNodes(const SDNode *N, unsigned indent, const SelectionDAG *G) {
if (N->getOperand(i).getNode()->hasOneUse())
DumpNodes(N->getOperand(i).getNode(), indent+2, G);
else
cerr << "\n" << std::string(indent+2, ' ')
<< (void*)N->getOperand(i).getNode() << ": <multiple use>";
errs() << "\n" << std::string(indent+2, ' ')
<< (void*)N->getOperand(i).getNode() << ": <multiple use>";
cerr << "\n" << std::string(indent, ' ');
errs() << "\n";
errs().indent(indent);
N->dump(G);
}
void SelectionDAG::dump() const {
cerr << "SelectionDAG has " << AllNodes.size() << " nodes:";
errs() << "SelectionDAG has " << AllNodes.size() << " nodes:";
for (allnodes_const_iterator I = allnodes_begin(), E = allnodes_end();
I != E; ++I) {
@ -5664,7 +5665,7 @@ void SelectionDAG::dump() const {
if (getRoot().getNode()) DumpNodes(getRoot().getNode(), 2, this);
cerr << "\n\n";
errs() << "\n\n";
}
void SDNode::printr(raw_ostream &OS, const SelectionDAG *G) const {

View File

@ -2792,7 +2792,7 @@ bool SimpleRegisterCoalescing::runOnMachineFunction(MachineFunction &fn) {
}
/// print - Implement the dump method.
void SimpleRegisterCoalescing::print(std::ostream &O, const Module* m) const {
void SimpleRegisterCoalescing::print(raw_ostream &O, const Module* m) const {
li_->print(O, m);
}

View File

@ -137,10 +137,7 @@ namespace llvm {
}
/// print - Implement the dump method.
virtual void print(std::ostream &O, const Module* = 0) const;
void print(std::ostream *O, const Module* M = 0) const {
if (O) print(*O, M);
}
virtual void print(raw_ostream &O, const Module* = 0) const;
private:
/// joinIntervals - join compatible live intervals

View File

@ -597,9 +597,4 @@ void ConstantRange::dump() const {
print(errs());
}
std::ostream &llvm::operator<<(std::ostream &o,
const ConstantRange &CR) {
raw_os_ostream OS(o);
OS << CR;
return o;
}

View File

@ -2635,7 +2635,7 @@ PPCTargetLowering::LowerCall_SVR4(SDValue Chain, SDValue Callee,
if (Result) {
#ifndef NDEBUG
cerr << "Call operand #" << i << " has unhandled type "
errs() << "Call operand #" << i << " has unhandled type "
<< ArgVT.getEVTString() << "\n";
#endif
llvm_unreachable(0);

View File

@ -55,7 +55,7 @@ void ExtAddrMode::print(raw_ostream &OS) const {
void ExtAddrMode::dump() const {
print(errs());
cerr << '\n';
errs() << '\n';
}

View File

@ -48,9 +48,8 @@ bool DominatorTree::runOnFunction(Function &F) {
return false;
}
void DominatorTree::print(std::ostream &OS, const Module *) const {
raw_os_ostream OSS(OS);
DT->print(OSS);
void DominatorTree::print(raw_ostream &OS, const Module *) const {
DT->print(OS);
}
@ -264,8 +263,7 @@ DominanceFrontier::calculate(const DominatorTree &DT,
return *Result;
}
void DominanceFrontierBase::print(std::ostream &O, const Module* ) const {
raw_os_ostream OS(O);
void DominanceFrontierBase::print(raw_ostream &OS, const Module* ) const {
for (const_iterator I = begin(), E = end(); I != E; ++I) {
OS << " DomFrontier for BB";
if (I->first)

View File

@ -19,6 +19,7 @@
#include "llvm/ModuleProvider.h"
#include "llvm/ADT/STLExtras.h"
#include "llvm/Support/ManagedStatic.h"
#include "llvm/Support/raw_ostream.h"
#include "llvm/System/Atomic.h"
#include "llvm/System/Mutex.h"
#include "llvm/System/Threading.h"
@ -45,7 +46,7 @@ bool Pass::mustPreserveAnalysisID(const PassInfo *AnalysisID) const {
// dumpPassStructure - Implement the -debug-passes=Structure option
void Pass::dumpPassStructure(unsigned Offset) {
cerr << std::string(Offset*2, ' ') << getPassName() << "\n";
errs().indent(Offset*2) << getPassName() << "\n";
}
/// getPassName - Return a nice clean name for a pass. This usually
@ -62,13 +63,13 @@ const char *Pass::getPassName() const {
// to print out the contents of an analysis. Otherwise it is not necessary to
// implement this method.
//
void Pass::print(std::ostream &O,const Module*) const {
void Pass::print(raw_ostream &O,const Module*) const {
O << "Pass::print not implemented for pass: '" << getPassName() << "'!\n";
}
// dump - call print(cerr);
void Pass::dump() const {
print(*cerr.stream(), 0);
print(errs(), 0);
}
//===----------------------------------------------------------------------===//

View File

@ -34,27 +34,31 @@ namespace {
static char ID; // Pass ID, replacement for typeid
ExternalFunctionsPassedConstants() : ModulePass(&ID) {}
virtual bool runOnModule(Module &M) {
for (Module::iterator I = M.begin(), E = M.end(); I != E; ++I)
if (I->isDeclaration()) {
bool PrintedFn = false;
for (Value::use_iterator UI = I->use_begin(), E = I->use_end();
UI != E; ++UI)
if (Instruction *User = dyn_cast<Instruction>(*UI)) {
CallSite CS = CallSite::get(User);
if (CS.getInstruction()) {
for (CallSite::arg_iterator AI = CS.arg_begin(),
E = CS.arg_end(); AI != E; ++AI)
if (isa<Constant>(*AI)) {
if (!PrintedFn) {
errs() << "Function '" << I->getName() << "':\n";
PrintedFn = true;
}
errs() << *User;
break;
}
}
for (Module::iterator I = M.begin(), E = M.end(); I != E; ++I) {
if (!I->isDeclaration()) continue;
bool PrintedFn = false;
for (Value::use_iterator UI = I->use_begin(), E = I->use_end();
UI != E; ++UI) {
Instruction *User = dyn_cast<Instruction>(*UI);
if (!User) continue;
CallSite CS = CallSite::get(User);
if (!CS.getInstruction()) continue;
for (CallSite::arg_iterator AI = CS.arg_begin(),
E = CS.arg_end(); AI != E; ++AI) {
if (!isa<Constant>(*AI)) continue;
if (!PrintedFn) {
errs() << "Function '" << I->getName() << "':\n";
PrintedFn = true;
}
errs() << *User;
break;
}
}
}
return false;
}
@ -78,7 +82,7 @@ namespace {
AU.addRequiredTransitive<CallGraph>();
}
virtual bool runOnModule(Module &M) {
getAnalysis<CallGraph>().print(std::cerr, &M);
getAnalysis<CallGraph>().print(errs(), &M);
return false;
}
};

View File

@ -70,8 +70,7 @@ namespace {
return false;
}
void print(std::ostream &OS) const {}
void print(std::ostream &OS, const llvm::Module*) const {}
void print(raw_ostream &OS, const llvm::Module*) const {}
virtual void getAnalysisUsage(AnalysisUsage &AU) const {
AU.addRequired<CallGraph>();

View File

@ -39,7 +39,7 @@ namespace {
CFGSCC() : FunctionPass(&ID) {}
bool runOnFunction(Function& func);
void print(std::ostream &O, const Module* = 0) const { }
void print(raw_ostream &O, const Module* = 0) const { }
virtual void getAnalysisUsage(AnalysisUsage &AU) const {
AU.setPreservesAll();
@ -53,7 +53,7 @@ namespace {
// run - Print out SCCs in the call graph for the specified module.
bool runOnModule(Module &M);
void print(std::ostream &O, const Module* = 0) const { }
void print(raw_ostream &O, const Module* = 0) const { }
// getAnalysisUsage - This pass requires the CallGraph.
virtual void getAnalysisUsage(AnalysisUsage &AU) const {

View File

@ -140,7 +140,7 @@ struct CallGraphSCCPassPrinter : public CallGraphSCCPass {
Function *F = SCC[i]->getFunction();
if (F) {
outs().flush();
getAnalysisID<Pass>(PassToPrint).print(cout, F->getParent());
getAnalysisID<Pass>(PassToPrint).print(outs(), F->getParent());
cout << std::flush;
}
}
@ -169,7 +169,7 @@ struct ModulePassPrinter : public ModulePass {
if (!Quiet) {
outs() << "Printing analysis '" << PassToPrint->getPassName() << "':\n";
outs().flush();
getAnalysisID<Pass>(PassToPrint).print(cout, &M);
getAnalysisID<Pass>(PassToPrint).print(outs(), &M);
cout << std::flush;
}
@ -199,7 +199,7 @@ struct FunctionPassPrinter : public FunctionPass {
}
// Get and print pass...
outs().flush();
getAnalysisID<Pass>(PassToPrint).print(cout, F.getParent());
getAnalysisID<Pass>(PassToPrint).print(outs(), F.getParent());
cout << std::flush;
return false;
}
@ -224,7 +224,7 @@ struct LoopPassPrinter : public LoopPass {
if (!Quiet) {
outs() << "Printing analysis '" << PassToPrint->getPassName() << "':\n";
outs().flush();
getAnalysisID<Pass>(PassToPrint).print(cout,
getAnalysisID<Pass>(PassToPrint).print(outs(),
L->getHeader()->getParent()->getParent());
cout << std::flush;
}
@ -256,7 +256,7 @@ struct BasicBlockPassPrinter : public BasicBlockPass {
// Get and print pass...
outs().flush();
getAnalysisID<Pass>(PassToPrint).print(cout, BB.getParent()->getParent());
getAnalysisID<Pass>(PassToPrint).print(outs(), BB.getParent()->getParent());
cout << std::flush;
return false;
}

View File

@ -2071,7 +2071,7 @@ void DAGISelEmitter::EmitInstructionSelector(raw_ostream &OS) {
<< "}\n\n";
OS << "void CannotYetSelectIntrinsic(SDValue N) DISABLE_INLINE {\n"
<< " cerr << \"Cannot yet select: \";\n"
<< " errs() << \"Cannot yet select: \";\n"
<< " unsigned iid = cast<ConstantSDNode>(N.getOperand("
<< "N.getOperand(0).getValueType() == MVT::Other))->getZExtValue();\n"
<< " llvm_report_error(\"Cannot yet select: intrinsic %\" +\n"