mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-04-28 08:37:41 +00:00
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:
parent
cb3e3d3005
commit
45cfe545ec
@ -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
|
||||
|
@ -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;
|
||||
};
|
||||
|
||||
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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.
|
||||
|
@ -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;
|
||||
|
||||
|
@ -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;
|
||||
|
@ -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();
|
||||
|
@ -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;
|
||||
|
@ -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
|
||||
|
@ -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;
|
||||
};
|
||||
}
|
||||
|
||||
|
@ -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;
|
||||
};
|
||||
|
||||
//===-------------------------------------
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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);
|
||||
}
|
||||
|
@ -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);
|
||||
|
@ -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();
|
||||
|
@ -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();
|
||||
}
|
||||
};
|
||||
|
@ -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
|
||||
|
@ -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 {
|
||||
|
@ -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';
|
||||
}
|
||||
}
|
||||
|
@ -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 {}
|
||||
|
||||
};
|
||||
}
|
||||
|
@ -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";
|
||||
|
||||
|
@ -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);
|
||||
}
|
||||
|
@ -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);
|
||||
}
|
||||
|
||||
|
@ -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';
|
||||
|
@ -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);
|
||||
}
|
||||
|
||||
|
||||
|
@ -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);
|
||||
}
|
||||
|
@ -93,7 +93,7 @@ GCStrategy *GCModuleInfo::getOrCreateStrategy(const Module *M,
|
||||
}
|
||||
}
|
||||
|
||||
cerr << "unsupported GC: " << Name << "\n";
|
||||
errs() << "unsupported GC: " << Name << "\n";
|
||||
llvm_unreachable(0);
|
||||
}
|
||||
|
||||
|
@ -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;
|
||||
}
|
||||
|
@ -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;
|
||||
}
|
||||
|
@ -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_);
|
||||
|
@ -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) {
|
||||
|
@ -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);
|
||||
}
|
||||
|
@ -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
|
||||
|
@ -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);
|
||||
}
|
||||
|
@ -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!");
|
||||
|
||||
|
@ -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 {
|
||||
|
@ -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);
|
||||
}
|
||||
|
||||
|
@ -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
|
||||
|
@ -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;
|
||||
}
|
||||
|
||||
|
@ -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);
|
||||
|
@ -55,7 +55,7 @@ void ExtAddrMode::print(raw_ostream &OS) const {
|
||||
|
||||
void ExtAddrMode::dump() const {
|
||||
print(errs());
|
||||
cerr << '\n';
|
||||
errs() << '\n';
|
||||
}
|
||||
|
||||
|
||||
|
@ -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)
|
||||
|
@ -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);
|
||||
}
|
||||
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
@ -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;
|
||||
}
|
||||
};
|
||||
|
@ -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>();
|
||||
|
@ -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 {
|
||||
|
@ -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;
|
||||
}
|
||||
|
@ -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"
|
||||
|
Loading…
x
Reference in New Issue
Block a user