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

update all code that this affects.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79830 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Chris Lattner
2009-08-23 06:03:38 +00:00
parent cb3e3d3005
commit 45cfe545ec
50 changed files with 138 additions and 191 deletions

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