mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-26 21:32:10 +00:00
Added an automatic cast to "std::ostream*" etc. from OStream. We then can
rework the hacks that had us passing OStream in. We pass in std::ostream* instead, check for null, and then dispatch to the correct print() method. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32636 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
89b0d995d2
commit
5c7e326585
@ -27,7 +27,6 @@
|
|||||||
|
|
||||||
#include "llvm/Support/Streams.h"
|
#include "llvm/Support/Streams.h"
|
||||||
#include <bitset>
|
#include <bitset>
|
||||||
#include <vector>
|
|
||||||
#include <functional>
|
#include <functional>
|
||||||
|
|
||||||
namespace llvm {
|
namespace llvm {
|
||||||
@ -173,10 +172,8 @@ public:
|
|||||||
///
|
///
|
||||||
/// Printing and debugging support
|
/// Printing and debugging support
|
||||||
///
|
///
|
||||||
void print(OStream &O) const {
|
|
||||||
if (O.stream()) print(*O.stream());
|
|
||||||
}
|
|
||||||
void print(std::ostream &O) const;
|
void print(std::ostream &O) const;
|
||||||
|
void print(std::ostream *O) const { if (O) print(*O); }
|
||||||
void dump() const { print(cerr); }
|
void dump() const { print(cerr); }
|
||||||
|
|
||||||
public:
|
public:
|
||||||
@ -247,23 +244,17 @@ public:
|
|||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
inline void BitSetVector::print(std::ostream& O) const
|
inline void BitSetVector::print(llvm_ostream& O) const
|
||||||
{
|
{
|
||||||
for (std::vector<bitword>::const_iterator
|
for (std::vector<bitword>::const_iterator
|
||||||
I=bitsetVec.begin(), E=bitsetVec.end(); I != E; ++I)
|
I=bitsetVec.begin(), E=bitsetVec.end(); I != E; ++I)
|
||||||
O << "<" << (*I) << ">" << (I+1 == E? "\n" : ", ");
|
O << "<" << (*I) << ">" << (I+1 == E? "\n" : ", ");
|
||||||
}
|
}
|
||||||
|
|
||||||
inline OStream& operator<< (OStream& O, const BitSetVector& bset) {
|
inline std::ostream& operator<<(std::ostream& O, const BitSetVector& bset) {
|
||||||
bset.print(O);
|
bset.print(O);
|
||||||
return O;
|
return O;
|
||||||
}
|
}
|
||||||
inline std::ostream& operator<< (std::ostream& O, const BitSetVector& bset)
|
|
||||||
{
|
|
||||||
bset.print(O);
|
|
||||||
return O;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
///
|
///
|
||||||
/// Optimized versions of fundamental comparison operations
|
/// Optimized versions of fundamental comparison operations
|
||||||
|
@ -156,10 +156,8 @@ public:
|
|||||||
iterator end() const { return iterator(); }
|
iterator end() const { return iterator(); }
|
||||||
bool empty() const { return PtrList == 0; }
|
bool empty() const { return PtrList == 0; }
|
||||||
|
|
||||||
void print(OStream &OS) const {
|
|
||||||
if (OS.stream()) print(*OS.stream());
|
|
||||||
}
|
|
||||||
void print(std::ostream &OS) const;
|
void print(std::ostream &OS) const;
|
||||||
|
void print(std::ostream *OS) const { if (OS) print(*OS); }
|
||||||
void dump() const;
|
void dump() const;
|
||||||
|
|
||||||
/// Define an iterator for alias sets... this is just a forward iterator.
|
/// Define an iterator for alias sets... this is just a forward iterator.
|
||||||
@ -248,10 +246,6 @@ private:
|
|||||||
bool aliasesCallSite(CallSite CS, AliasAnalysis &AA) const;
|
bool aliasesCallSite(CallSite CS, AliasAnalysis &AA) const;
|
||||||
};
|
};
|
||||||
|
|
||||||
inline OStream& operator<<(OStream &OS, const AliasSet &AS) {
|
|
||||||
AS.print(OS);
|
|
||||||
return OS;
|
|
||||||
}
|
|
||||||
inline std::ostream& operator<<(std::ostream &OS, const AliasSet &AS) {
|
inline std::ostream& operator<<(std::ostream &OS, const AliasSet &AS) {
|
||||||
AS.print(OS);
|
AS.print(OS);
|
||||||
return OS;
|
return OS;
|
||||||
@ -361,10 +355,8 @@ public:
|
|||||||
iterator begin() { return AliasSets.begin(); }
|
iterator begin() { return AliasSets.begin(); }
|
||||||
iterator end() { return AliasSets.end(); }
|
iterator end() { return AliasSets.end(); }
|
||||||
|
|
||||||
void print(OStream &OS) const {
|
|
||||||
if (OS.stream()) print(*OS.stream());
|
|
||||||
}
|
|
||||||
void print(std::ostream &OS) const;
|
void print(std::ostream &OS) const;
|
||||||
|
void print(std::ostream *OS) const { if (OS) print(*OS); }
|
||||||
void dump() const;
|
void dump() const;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
@ -390,10 +382,6 @@ private:
|
|||||||
AliasSet *findAliasSetForCallSite(CallSite CS);
|
AliasSet *findAliasSetForCallSite(CallSite CS);
|
||||||
};
|
};
|
||||||
|
|
||||||
inline OStream& operator<<(OStream &OS, const AliasSetTracker &AST) {
|
|
||||||
AST.print(OS);
|
|
||||||
return OS;
|
|
||||||
}
|
|
||||||
inline std::ostream& operator<<(std::ostream &OS, const AliasSetTracker &AST) {
|
inline std::ostream& operator<<(std::ostream &OS, const AliasSetTracker &AST) {
|
||||||
AST.print(OS);
|
AST.print(OS);
|
||||||
return OS;
|
return OS;
|
||||||
|
@ -152,10 +152,8 @@ public:
|
|||||||
///
|
///
|
||||||
void initialize(Module &M);
|
void initialize(Module &M);
|
||||||
|
|
||||||
void print(OStream &o, const Module *M) const {
|
|
||||||
if (o.stream()) print(*o.stream(), M);
|
|
||||||
}
|
|
||||||
virtual void print(std::ostream &o, const Module *M) const;
|
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 dump() const;
|
||||||
|
|
||||||
// stub - dummy function, just ignore it
|
// stub - dummy function, just ignore it
|
||||||
@ -201,10 +199,8 @@ public:
|
|||||||
/// dump - Print out this call graph node.
|
/// dump - Print out this call graph node.
|
||||||
///
|
///
|
||||||
void dump() const;
|
void dump() const;
|
||||||
void print(OStream &OS) const {
|
|
||||||
if (OS.stream()) print(*OS.stream());
|
|
||||||
}
|
|
||||||
void print(std::ostream &OS) const;
|
void print(std::ostream &OS) const;
|
||||||
|
void print(std::ostream *OS) const { if (OS) print(*OS); }
|
||||||
|
|
||||||
//===---------------------------------------------------------------------
|
//===---------------------------------------------------------------------
|
||||||
// Methods to keep a call graph up to date with a function that has been
|
// Methods to keep a call graph up to date with a function that has been
|
||||||
|
@ -144,6 +144,9 @@ public:
|
|||||||
/// print - Convert to human readable form
|
/// print - Convert to human readable form
|
||||||
///
|
///
|
||||||
virtual void print(std::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);
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
//===-------------------------------------
|
//===-------------------------------------
|
||||||
@ -234,6 +237,9 @@ public:
|
|||||||
/// print - Convert to human readable form
|
/// print - Convert to human readable form
|
||||||
///
|
///
|
||||||
virtual void print(std::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);
|
||||||
|
}
|
||||||
|
|
||||||
/// dominates - Return true if A dominates B. This performs the special
|
/// dominates - Return true if A dominates B. This performs the special
|
||||||
/// checks necessary if A and B are in the same basic block.
|
/// checks necessary if A and B are in the same basic block.
|
||||||
@ -410,6 +416,9 @@ public:
|
|||||||
/// print - Convert to human readable form
|
/// print - Convert to human readable form
|
||||||
///
|
///
|
||||||
virtual void print(std::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);
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
//===-------------------------------------
|
//===-------------------------------------
|
||||||
@ -546,6 +555,9 @@ public:
|
|||||||
/// print - Convert to human readable form
|
/// print - Convert to human readable form
|
||||||
///
|
///
|
||||||
virtual void print(std::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);
|
||||||
|
}
|
||||||
protected:
|
protected:
|
||||||
/// getNode - return the (Post)DominatorTree node for the specified basic
|
/// getNode - return the (Post)DominatorTree node for the specified basic
|
||||||
/// block. This is the same as using operator[] on this class.
|
/// block. This is the same as using operator[] on this class.
|
||||||
@ -635,6 +647,9 @@ public:
|
|||||||
/// print - Convert to human readable form
|
/// print - Convert to human readable form
|
||||||
///
|
///
|
||||||
virtual void print(std::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);
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
@ -34,6 +34,7 @@ public:
|
|||||||
/// symbol table from the module.
|
/// symbol table from the module.
|
||||||
///
|
///
|
||||||
void print(std::ostream &o, const Module *M) const;
|
void print(std::ostream &o, const Module *M) const;
|
||||||
|
void print(std::ostream *o, const Module *M) const { if (o) print(*o, M); }
|
||||||
|
|
||||||
private:
|
private:
|
||||||
/// IncorporateType - Incorporate one type and all of its subtypes into the
|
/// IncorporateType - Incorporate one type and all of its subtypes into the
|
||||||
|
@ -99,6 +99,7 @@ public:
|
|||||||
|
|
||||||
/// print - Show contents in human readable format...
|
/// print - Show contents in human readable format...
|
||||||
void print(std::ostream &O) const;
|
void print(std::ostream &O) const;
|
||||||
|
void print(std::ostream *O) const { if (O) print(*O); }
|
||||||
};
|
};
|
||||||
|
|
||||||
/// succ_begin/succ_end - define methods so that Intervals may be used
|
/// succ_begin/succ_end - define methods so that Intervals may be used
|
||||||
|
@ -61,6 +61,9 @@ public:
|
|||||||
|
|
||||||
// print - Show contents in human readable format...
|
// print - Show contents in human readable format...
|
||||||
virtual void print(std::ostream &O, const Module* = 0) const;
|
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);
|
||||||
|
}
|
||||||
|
|
||||||
// getRootInterval() - Return the root interval that contains the starting
|
// getRootInterval() - Return the root interval that contains the starting
|
||||||
// block of the function.
|
// block of the function.
|
||||||
|
@ -217,10 +217,10 @@ public:
|
|||||||
/// the mapping in the LoopInfo class.
|
/// the mapping in the LoopInfo class.
|
||||||
void removeBlockFromLoop(BasicBlock *BB);
|
void removeBlockFromLoop(BasicBlock *BB);
|
||||||
|
|
||||||
void print(OStream &O, unsigned Depth = 0) const {
|
|
||||||
if (O.stream()) print(*O.stream(), Depth);
|
|
||||||
}
|
|
||||||
void print(std::ostream &O, unsigned Depth = 0) const;
|
void print(std::ostream &O, unsigned Depth = 0) const;
|
||||||
|
void print(std::ostream *O, unsigned Depth = 0) const {
|
||||||
|
if (O) print(*O, Depth);
|
||||||
|
}
|
||||||
void dump() const;
|
void dump() const;
|
||||||
private:
|
private:
|
||||||
friend class LoopInfo;
|
friend class LoopInfo;
|
||||||
@ -283,10 +283,11 @@ public:
|
|||||||
virtual bool runOnFunction(Function &F);
|
virtual bool runOnFunction(Function &F);
|
||||||
|
|
||||||
virtual void releaseMemory();
|
virtual void releaseMemory();
|
||||||
void print(OStream &O, const Module* = 0) const {
|
|
||||||
if (O.stream()) print(*O.stream());
|
|
||||||
}
|
|
||||||
void print(std::ostream &O, const Module* = 0) const;
|
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 getAnalysisUsage(AnalysisUsage &AU) const;
|
virtual void getAnalysisUsage(AnalysisUsage &AU) const;
|
||||||
|
|
||||||
|
@ -97,20 +97,14 @@ namespace llvm {
|
|||||||
/// print - Print out the internal representation of this scalar to the
|
/// print - Print out the internal representation of this scalar to the
|
||||||
/// specified stream. This should really only be used for debugging
|
/// specified stream. This should really only be used for debugging
|
||||||
/// purposes.
|
/// purposes.
|
||||||
void print(OStream &OS) const {
|
|
||||||
if (OS.stream()) print(*OS.stream());
|
|
||||||
}
|
|
||||||
virtual void print(std::ostream &OS) const = 0;
|
virtual void print(std::ostream &OS) const = 0;
|
||||||
|
void print(std::ostream *OS) const { if (OS) print(*OS); }
|
||||||
|
|
||||||
/// dump - This method is used for debugging.
|
/// dump - This method is used for debugging.
|
||||||
///
|
///
|
||||||
void dump() const;
|
void dump() const;
|
||||||
};
|
};
|
||||||
|
|
||||||
inline OStream &operator<<(OStream &OS, const SCEV &S) {
|
|
||||||
S.print(OS);
|
|
||||||
return OS;
|
|
||||||
}
|
|
||||||
inline std::ostream &operator<<(std::ostream &OS, const SCEV &S) {
|
inline std::ostream &operator<<(std::ostream &OS, const SCEV &S) {
|
||||||
S.print(OS);
|
S.print(OS);
|
||||||
return OS;
|
return OS;
|
||||||
@ -128,10 +122,8 @@ namespace llvm {
|
|||||||
virtual bool isLoopInvariant(const Loop *L) const;
|
virtual bool isLoopInvariant(const Loop *L) const;
|
||||||
virtual const Type *getType() const;
|
virtual const Type *getType() const;
|
||||||
virtual bool hasComputableLoopEvolution(const Loop *L) const;
|
virtual bool hasComputableLoopEvolution(const Loop *L) const;
|
||||||
void print(OStream &OS) const {
|
|
||||||
if (OS.stream()) print(*OS.stream());
|
|
||||||
}
|
|
||||||
virtual void print(std::ostream &OS) const;
|
virtual void print(std::ostream &OS) const;
|
||||||
|
void print(std::ostream *OS) const { if (OS) print(*OS); }
|
||||||
virtual SCEVHandle
|
virtual SCEVHandle
|
||||||
replaceSymbolicValuesWithConcrete(const SCEVHandle &Sym,
|
replaceSymbolicValuesWithConcrete(const SCEVHandle &Sym,
|
||||||
const SCEVHandle &Conc) const;
|
const SCEVHandle &Conc) const;
|
||||||
@ -242,10 +234,10 @@ namespace llvm {
|
|||||||
virtual bool runOnFunction(Function &F);
|
virtual bool runOnFunction(Function &F);
|
||||||
virtual void releaseMemory();
|
virtual void releaseMemory();
|
||||||
virtual void getAnalysisUsage(AnalysisUsage &AU) const;
|
virtual void getAnalysisUsage(AnalysisUsage &AU) const;
|
||||||
void print(OStream &OS, const Module* = 0) const {
|
|
||||||
if (OS.stream()) print(*OS.stream());
|
|
||||||
}
|
|
||||||
virtual void print(std::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);
|
||||||
|
}
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -62,6 +62,7 @@ namespace llvm {
|
|||||||
}
|
}
|
||||||
|
|
||||||
virtual void print(std::ostream &OS) const;
|
virtual void print(std::ostream &OS) const;
|
||||||
|
void print(std::ostream *OS) const { if (OS) print(*OS); }
|
||||||
|
|
||||||
/// Methods for support type inquiry through isa, cast, and dyn_cast:
|
/// Methods for support type inquiry through isa, cast, and dyn_cast:
|
||||||
static inline bool classof(const SCEVConstant *S) { return true; }
|
static inline bool classof(const SCEVConstant *S) { return true; }
|
||||||
@ -108,6 +109,7 @@ namespace llvm {
|
|||||||
virtual ConstantRange getValueRange() const;
|
virtual ConstantRange getValueRange() const;
|
||||||
|
|
||||||
virtual void print(std::ostream &OS) const;
|
virtual void print(std::ostream &OS) const;
|
||||||
|
void print(std::ostream *OS) const { if (OS) print(*OS); }
|
||||||
|
|
||||||
/// Methods for support type inquiry through isa, cast, and dyn_cast:
|
/// Methods for support type inquiry through isa, cast, and dyn_cast:
|
||||||
static inline bool classof(const SCEVTruncateExpr *S) { return true; }
|
static inline bool classof(const SCEVTruncateExpr *S) { return true; }
|
||||||
@ -154,6 +156,7 @@ namespace llvm {
|
|||||||
}
|
}
|
||||||
|
|
||||||
virtual void print(std::ostream &OS) const;
|
virtual void print(std::ostream &OS) const;
|
||||||
|
void print(std::ostream *OS) const { if (OS) print(*OS); }
|
||||||
|
|
||||||
/// Methods for support type inquiry through isa, cast, and dyn_cast:
|
/// Methods for support type inquiry through isa, cast, and dyn_cast:
|
||||||
static inline bool classof(const SCEVZeroExtendExpr *S) { return true; }
|
static inline bool classof(const SCEVZeroExtendExpr *S) { return true; }
|
||||||
@ -218,6 +221,7 @@ namespace llvm {
|
|||||||
|
|
||||||
virtual const Type *getType() const { return getOperand(0)->getType(); }
|
virtual const Type *getType() const { return getOperand(0)->getType(); }
|
||||||
virtual void print(std::ostream &OS) const;
|
virtual void print(std::ostream &OS) const;
|
||||||
|
void print(std::ostream *OS) const { if (OS) print(*OS); }
|
||||||
|
|
||||||
/// Methods for support type inquiry through isa, cast, and dyn_cast:
|
/// Methods for support type inquiry through isa, cast, and dyn_cast:
|
||||||
static inline bool classof(const SCEVCommutativeExpr *S) { return true; }
|
static inline bool classof(const SCEVCommutativeExpr *S) { return true; }
|
||||||
@ -332,6 +336,7 @@ namespace llvm {
|
|||||||
virtual const Type *getType() const;
|
virtual const Type *getType() const;
|
||||||
|
|
||||||
void print(std::ostream &OS) const;
|
void print(std::ostream &OS) const;
|
||||||
|
void print(std::ostream *OS) const { if (OS) print(*OS); }
|
||||||
|
|
||||||
/// Methods for support type inquiry through isa, cast, and dyn_cast:
|
/// Methods for support type inquiry through isa, cast, and dyn_cast:
|
||||||
static inline bool classof(const SCEVSDivExpr *S) { return true; }
|
static inline bool classof(const SCEVSDivExpr *S) { return true; }
|
||||||
@ -428,6 +433,7 @@ namespace llvm {
|
|||||||
const SCEVHandle &Conc) const;
|
const SCEVHandle &Conc) const;
|
||||||
|
|
||||||
virtual void print(std::ostream &OS) const;
|
virtual void print(std::ostream &OS) const;
|
||||||
|
void print(std::ostream *OS) const { if (OS) print(*OS); }
|
||||||
|
|
||||||
/// Methods for support type inquiry through isa, cast, and dyn_cast:
|
/// Methods for support type inquiry through isa, cast, and dyn_cast:
|
||||||
static inline bool classof(const SCEVAddRecExpr *S) { return true; }
|
static inline bool classof(const SCEVAddRecExpr *S) { return true; }
|
||||||
@ -472,6 +478,7 @@ namespace llvm {
|
|||||||
virtual const Type *getType() const;
|
virtual const Type *getType() const;
|
||||||
|
|
||||||
virtual void print(std::ostream &OS) const;
|
virtual void print(std::ostream &OS) const;
|
||||||
|
void print(std::ostream *OS) const { if (OS) print(*OS); }
|
||||||
|
|
||||||
/// Methods for support type inquiry through isa, cast, and dyn_cast:
|
/// Methods for support type inquiry through isa, cast, and dyn_cast:
|
||||||
static inline bool classof(const SCEVUnknown *S) { return true; }
|
static inline bool classof(const SCEVUnknown *S) { return true; }
|
||||||
|
@ -106,7 +106,8 @@ public:
|
|||||||
|
|
||||||
/// print - Write trace to output stream.
|
/// print - Write trace to output stream.
|
||||||
///
|
///
|
||||||
void print (OStream &O) const;
|
void print (std::ostream &O) const;
|
||||||
|
void print (std::ostream *O) const { if (O) print(*O); }
|
||||||
|
|
||||||
/// dump - Debugger convenience method; writes trace to standard error
|
/// dump - Debugger convenience method; writes trace to standard error
|
||||||
/// output stream.
|
/// output stream.
|
||||||
|
@ -53,6 +53,9 @@ public:
|
|||||||
const Argument *getPrev() const { return Prev; }
|
const Argument *getPrev() const { return Prev; }
|
||||||
|
|
||||||
virtual void print(std::ostream &OS) const;
|
virtual void print(std::ostream &OS) const;
|
||||||
|
void print(std::ostream *OS) const {
|
||||||
|
if (OS) print(*OS);
|
||||||
|
}
|
||||||
|
|
||||||
/// classof - Methods for support type inquiry through isa, cast, and
|
/// classof - Methods for support type inquiry through isa, cast, and
|
||||||
/// dyn_cast:
|
/// dyn_cast:
|
||||||
|
@ -152,6 +152,7 @@ public:
|
|||||||
InstListType &getInstList() { return InstList; }
|
InstListType &getInstList() { return InstList; }
|
||||||
|
|
||||||
virtual void print(std::ostream &OS) const { print(OS, 0); }
|
virtual void print(std::ostream &OS) const { print(OS, 0); }
|
||||||
|
void print(std::ostream *OS) const { if (OS) print(*OS); }
|
||||||
void print(std::ostream &OS, AssemblyAnnotationWriter *AAW) const;
|
void print(std::ostream &OS, AssemblyAnnotationWriter *AAW) const;
|
||||||
|
|
||||||
/// Methods for support type inquiry through isa, cast, and dyn_cast:
|
/// Methods for support type inquiry through isa, cast, and dyn_cast:
|
||||||
|
@ -31,6 +31,7 @@ namespace {
|
|||||||
(void) llvm::createSimpleRegisterAllocator();
|
(void) llvm::createSimpleRegisterAllocator();
|
||||||
(void) llvm::createLocalRegisterAllocator();
|
(void) llvm::createLocalRegisterAllocator();
|
||||||
(void) llvm::createLinearScanRegisterAllocator();
|
(void) llvm::createLinearScanRegisterAllocator();
|
||||||
|
(void) llvm::createGraphColoringRegisterAllocator();
|
||||||
|
|
||||||
(void) llvm::createBFS_DAGScheduler(NULL, NULL, NULL);
|
(void) llvm::createBFS_DAGScheduler(NULL, NULL, NULL);
|
||||||
(void) llvm::createSimpleDAGScheduler(NULL, NULL, NULL);
|
(void) llvm::createSimpleDAGScheduler(NULL, NULL, NULL);
|
||||||
|
@ -57,16 +57,13 @@ namespace llvm {
|
|||||||
|
|
||||||
void dump() const;
|
void dump() const;
|
||||||
void print(std::ostream &os) const;
|
void print(std::ostream &os) const;
|
||||||
|
void print(std::ostream *os) const { if (os) print(*os); }
|
||||||
|
|
||||||
private:
|
private:
|
||||||
LiveRange(); // DO NOT IMPLEMENT
|
LiveRange(); // DO NOT IMPLEMENT
|
||||||
};
|
};
|
||||||
|
|
||||||
std::ostream& operator<<(std::ostream& os, const LiveRange &LR);
|
std::ostream& operator<<(std::ostream& os, const LiveRange &LR);
|
||||||
inline OStream& operator<<(OStream& os, const LiveRange &LR) {
|
|
||||||
if (os.stream()) LR.print(*os.stream());
|
|
||||||
return os;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
inline bool operator<(unsigned V, const LiveRange &LR) {
|
inline bool operator<(unsigned V, const LiveRange &LR) {
|
||||||
@ -260,9 +257,9 @@ namespace llvm {
|
|||||||
return beginNumber() < other.beginNumber();
|
return beginNumber() < other.beginNumber();
|
||||||
}
|
}
|
||||||
|
|
||||||
void print(OStream OS, const MRegisterInfo *MRI = 0) const;
|
void print(std::ostream &OS, const MRegisterInfo *MRI = 0) const;
|
||||||
void print(std::ostream &OS, const MRegisterInfo *MRI = 0) const {
|
void print(std::ostream *OS, const MRegisterInfo *MRI = 0) const {
|
||||||
print(OStream(OS), MRI);
|
if (OS) print(*OS, MRI);
|
||||||
}
|
}
|
||||||
void dump() const;
|
void dump() const;
|
||||||
|
|
||||||
@ -273,11 +270,6 @@ namespace llvm {
|
|||||||
LiveInterval& operator=(const LiveInterval& rhs); // DO NOT IMPLEMENT
|
LiveInterval& operator=(const LiveInterval& rhs); // DO NOT IMPLEMENT
|
||||||
};
|
};
|
||||||
|
|
||||||
inline OStream &operator<<(OStream &OS, const LiveInterval &LI) {
|
|
||||||
LI.print(OS);
|
|
||||||
return OS;
|
|
||||||
}
|
|
||||||
|
|
||||||
inline std::ostream &operator<<(std::ostream &OS, const LiveInterval &LI) {
|
inline std::ostream &operator<<(std::ostream &OS, const LiveInterval &LI) {
|
||||||
LI.print(OS);
|
LI.print(OS);
|
||||||
return OS;
|
return OS;
|
||||||
|
@ -161,6 +161,9 @@ namespace llvm {
|
|||||||
|
|
||||||
/// print - Implement the dump method.
|
/// print - Implement the dump method.
|
||||||
virtual void print(std::ostream &O, const Module* = 0) const;
|
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);
|
||||||
|
}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
/// RemoveMachineInstrFromMaps - This marks the specified machine instr as
|
/// RemoveMachineInstrFromMaps - This marks the specified machine instr as
|
||||||
|
@ -189,10 +189,8 @@ public:
|
|||||||
|
|
||||||
// Debugging methods.
|
// Debugging methods.
|
||||||
void dump() const;
|
void dump() const;
|
||||||
void print(OStream &OS) const {
|
|
||||||
if (OS.stream()) print(*OS.stream());
|
|
||||||
}
|
|
||||||
void print(std::ostream &OS) const;
|
void print(std::ostream &OS) const;
|
||||||
|
void print(std::ostream *OS) const { if (OS) print(*OS); }
|
||||||
|
|
||||||
/// getNumber - MachineBasicBlocks are uniquely numbered at the function
|
/// getNumber - MachineBasicBlocks are uniquely numbered at the function
|
||||||
/// level, unless they're not in a MachineFunction yet, in which case this
|
/// level, unless they're not in a MachineFunction yet, in which case this
|
||||||
@ -226,10 +224,6 @@ private: // Methods used to maintain doubly linked list of blocks...
|
|||||||
};
|
};
|
||||||
|
|
||||||
std::ostream& operator<<(std::ostream &OS, const MachineBasicBlock &MBB);
|
std::ostream& operator<<(std::ostream &OS, const MachineBasicBlock &MBB);
|
||||||
inline OStream& operator<<(OStream &OS, const MachineBasicBlock &MBB) {
|
|
||||||
if (OS.stream()) MBB.print(*OS.stream());
|
|
||||||
return OS;
|
|
||||||
}
|
|
||||||
|
|
||||||
//===--------------------------------------------------------------------===//
|
//===--------------------------------------------------------------------===//
|
||||||
// GraphTraits specializations for machine basic block graphs (machine-CFGs)
|
// GraphTraits specializations for machine basic block graphs (machine-CFGs)
|
||||||
|
@ -49,17 +49,10 @@ public:
|
|||||||
|
|
||||||
/// print - Implement operator<<...
|
/// print - Implement operator<<...
|
||||||
///
|
///
|
||||||
void print(OStream &O) const {
|
|
||||||
if (O.stream()) print(*O.stream());
|
|
||||||
}
|
|
||||||
virtual void print(std::ostream &O) const = 0;
|
virtual void print(std::ostream &O) const = 0;
|
||||||
|
void print(std::ostream *O) const { if (O) print(*O); }
|
||||||
};
|
};
|
||||||
|
|
||||||
inline OStream &operator<<(OStream &OS,
|
|
||||||
const MachineConstantPoolValue &V) {
|
|
||||||
V.print(OS);
|
|
||||||
return OS;
|
|
||||||
}
|
|
||||||
inline std::ostream &operator<<(std::ostream &OS,
|
inline std::ostream &operator<<(std::ostream &OS,
|
||||||
const MachineConstantPoolValue &V) {
|
const MachineConstantPoolValue &V) {
|
||||||
V.print(OS);
|
V.print(OS);
|
||||||
@ -143,10 +136,8 @@ public:
|
|||||||
/// print - Used by the MachineFunction printer to print information about
|
/// print - Used by the MachineFunction printer to print information about
|
||||||
/// constant pool objects. Implemented in MachineFunction.cpp
|
/// constant pool objects. Implemented in MachineFunction.cpp
|
||||||
///
|
///
|
||||||
void print(OStream &OS) const {
|
|
||||||
if (OS.stream()) print(*OS.stream());
|
|
||||||
}
|
|
||||||
void print(std::ostream &OS) const;
|
void print(std::ostream &OS) const;
|
||||||
|
void print(std::ostream *OS) const { if (OS) print(*OS); }
|
||||||
|
|
||||||
/// dump - Call print(std::cerr) to be called from the debugger.
|
/// dump - Call print(std::cerr) to be called from the debugger.
|
||||||
///
|
///
|
||||||
|
@ -238,6 +238,7 @@ public:
|
|||||||
/// to the specified stream.
|
/// to the specified stream.
|
||||||
///
|
///
|
||||||
void print(std::ostream &OS) const;
|
void print(std::ostream &OS) const;
|
||||||
|
void print(std::ostream *OS) const { if (OS) print(*OS); }
|
||||||
|
|
||||||
/// 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
|
||||||
/// say 'call F->viewCFG()' and a ghostview window should pop up from the
|
/// say 'call F->viewCFG()' and a ghostview window should pop up from the
|
||||||
|
@ -78,6 +78,7 @@ private:
|
|||||||
MachineOperand() {}
|
MachineOperand() {}
|
||||||
|
|
||||||
void print(std::ostream &os) const;
|
void print(std::ostream &os) const;
|
||||||
|
void print(std::ostream *os) const { if (os) print(*os); }
|
||||||
|
|
||||||
public:
|
public:
|
||||||
MachineOperand(const MachineOperand &M) {
|
MachineOperand(const MachineOperand &M) {
|
||||||
@ -288,10 +289,6 @@ public:
|
|||||||
IsDead = false;
|
IsDead = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
friend OStream& operator<<(OStream& os, const MachineOperand& mop) {
|
|
||||||
if (os.stream()) mop.print(*os.stream());
|
|
||||||
return os;
|
|
||||||
}
|
|
||||||
friend std::ostream& operator<<(std::ostream& os, const MachineOperand& mop) {
|
friend std::ostream& operator<<(std::ostream& os, const MachineOperand& mop) {
|
||||||
mop.print(os);
|
mop.print(os);
|
||||||
return os;
|
return os;
|
||||||
@ -403,16 +400,13 @@ public:
|
|||||||
//
|
//
|
||||||
// Debugging support
|
// Debugging support
|
||||||
//
|
//
|
||||||
void print(OStream &OS, const TargetMachine *TM) const {
|
void print(std::ostream *OS, const TargetMachine *TM) const {
|
||||||
if (OS.stream()) print(*OS.stream(), TM);
|
if (OS) print(*OS, TM);
|
||||||
}
|
}
|
||||||
void print(std::ostream &OS, const TargetMachine *TM) const;
|
void print(std::ostream &OS, const TargetMachine *TM) const;
|
||||||
void print(std::ostream &OS) const;
|
void print(std::ostream &OS) const;
|
||||||
|
void print(std::ostream *OS) const { if (OS) print(*OS); }
|
||||||
void dump() const;
|
void dump() const;
|
||||||
friend OStream& operator<<(OStream& os, const MachineInstr& minstr) {
|
|
||||||
if (os.stream()) minstr.print(*os.stream());
|
|
||||||
return os;
|
|
||||||
}
|
|
||||||
friend std::ostream& operator<<(std::ostream& os, const MachineInstr& minstr){
|
friend std::ostream& operator<<(std::ostream& os, const MachineInstr& minstr){
|
||||||
minstr.print(os);
|
minstr.print(os);
|
||||||
return os;
|
return os;
|
||||||
|
@ -90,6 +90,7 @@ public:
|
|||||||
/// jump tables. Implemented in MachineFunction.cpp
|
/// jump tables. Implemented in MachineFunction.cpp
|
||||||
///
|
///
|
||||||
void print(std::ostream &OS) const;
|
void print(std::ostream &OS) const;
|
||||||
|
void print(std::ostream *OS) const { if (OS) print(*OS); }
|
||||||
|
|
||||||
/// dump - Call print(std::cerr) to be called from the debugger.
|
/// dump - Call print(std::cerr) to be called from the debugger.
|
||||||
///
|
///
|
||||||
|
@ -70,10 +70,8 @@ public:
|
|||||||
void dump(int indent=0) const;
|
void dump(int indent=0) const;
|
||||||
|
|
||||||
// Debugging support
|
// Debugging support
|
||||||
void print(OStream &os) const {
|
|
||||||
if (os.stream()) print(*os.stream());
|
|
||||||
}
|
|
||||||
virtual void print(std::ostream &os) const = 0;
|
virtual void print(std::ostream &os) const = 0;
|
||||||
|
void print(std::ostream *os) const { if (os) print(*os); }
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
friend class SchedGraphCommon;
|
friend class SchedGraphCommon;
|
||||||
@ -96,11 +94,6 @@ protected:
|
|||||||
};
|
};
|
||||||
|
|
||||||
// ostream << operator for SchedGraphNode class
|
// ostream << operator for SchedGraphNode class
|
||||||
inline OStream &operator<<(OStream &os,
|
|
||||||
const SchedGraphNodeCommon &node) {
|
|
||||||
node.print(os);
|
|
||||||
return os;
|
|
||||||
}
|
|
||||||
inline std::ostream &operator<<(std::ostream &os,
|
inline std::ostream &operator<<(std::ostream &os,
|
||||||
const SchedGraphNodeCommon &node) {
|
const SchedGraphNodeCommon &node) {
|
||||||
node.print(os);
|
node.print(os);
|
||||||
@ -188,10 +181,8 @@ public:
|
|||||||
|
|
||||||
public:
|
public:
|
||||||
// Debugging support
|
// Debugging support
|
||||||
void print(OStream &os) const {
|
|
||||||
if (os.stream()) print(*os.stream());
|
|
||||||
}
|
|
||||||
void print(std::ostream &os) const;
|
void print(std::ostream &os) const;
|
||||||
|
void print(std::ostream *os) const { if (os) print(*os); }
|
||||||
void dump(int indent=0) const;
|
void dump(int indent=0) const;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
@ -200,10 +191,6 @@ private:
|
|||||||
};
|
};
|
||||||
|
|
||||||
// ostream << operator for SchedGraphNode class
|
// ostream << operator for SchedGraphNode class
|
||||||
inline OStream &operator<<(OStream &os, const SchedGraphEdge &edge) {
|
|
||||||
edge.print(os);
|
|
||||||
return os;
|
|
||||||
}
|
|
||||||
inline std::ostream &operator<<(std::ostream &os, const SchedGraphEdge &edge) {
|
inline std::ostream &operator<<(std::ostream &os, const SchedGraphEdge &edge) {
|
||||||
edge.print(os);
|
edge.print(os);
|
||||||
return os;
|
return os;
|
||||||
|
@ -54,6 +54,7 @@ public:
|
|||||||
virtual bool isNullValue() const = 0;
|
virtual bool isNullValue() const = 0;
|
||||||
|
|
||||||
virtual void print(std::ostream &O) const;
|
virtual void print(std::ostream &O) const;
|
||||||
|
void print(std::ostream *O) const { if (O) print(*O); }
|
||||||
|
|
||||||
/// canTrap - Return true if evaluation of this constant could trap. This is
|
/// canTrap - Return true if evaluation of this constant could trap. This is
|
||||||
/// true for things like constant expressions that could divide by zero.
|
/// true for things like constant expressions that could divide by zero.
|
||||||
|
@ -194,6 +194,7 @@ public:
|
|||||||
bool arg_empty() const { return ArgumentList.empty(); }
|
bool arg_empty() const { return ArgumentList.empty(); }
|
||||||
|
|
||||||
virtual void print(std::ostream &OS) const { print(OS, 0); }
|
virtual void print(std::ostream &OS) const { print(OS, 0); }
|
||||||
|
void print(std::ostream *OS) const { if (OS) print(*OS); }
|
||||||
void print(std::ostream &OS, AssemblyAnnotationWriter *AAW) const;
|
void print(std::ostream &OS, AssemblyAnnotationWriter *AAW) 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
|
||||||
|
@ -123,6 +123,7 @@ public:
|
|||||||
virtual void replaceUsesOfWithOnConstant(Value *From, Value *To, Use *U);
|
virtual void replaceUsesOfWithOnConstant(Value *From, Value *To, Use *U);
|
||||||
|
|
||||||
virtual void print(std::ostream &OS) const;
|
virtual void print(std::ostream &OS) const;
|
||||||
|
void print(std::ostream *OS) const { if (OS) print(*OS); }
|
||||||
|
|
||||||
// Methods for support type inquiry through isa, cast, and dyn_cast:
|
// Methods for support type inquiry through isa, cast, and dyn_cast:
|
||||||
static inline bool classof(const GlobalVariable *) { return true; }
|
static inline bool classof(const GlobalVariable *) { return true; }
|
||||||
|
@ -60,6 +60,7 @@ public:
|
|||||||
const std::string &getConstraintString() const { return Constraints; }
|
const std::string &getConstraintString() const { return Constraints; }
|
||||||
|
|
||||||
virtual void print(std::ostream &O) const { print(O, 0); }
|
virtual void print(std::ostream &O) const { print(O, 0); }
|
||||||
|
void print(std::ostream *O) const { if (O) print(*O); }
|
||||||
void print(std::ostream &OS, AssemblyAnnotationWriter *AAW) const;
|
void print(std::ostream &OS, AssemblyAnnotationWriter *AAW) const;
|
||||||
|
|
||||||
/// Verify - This static method can be used by the parser to check to see if
|
/// Verify - This static method can be used by the parser to check to see if
|
||||||
|
@ -169,6 +169,7 @@ public:
|
|||||||
static bool isTrapping(unsigned op);
|
static bool isTrapping(unsigned op);
|
||||||
|
|
||||||
virtual void print(std::ostream &OS) const { print(OS, 0); }
|
virtual void print(std::ostream &OS) const { print(OS, 0); }
|
||||||
|
void print(std::ostream *OS) const { if (OS) print(*OS); }
|
||||||
void print(std::ostream &OS, AssemblyAnnotationWriter *AAW) const;
|
void print(std::ostream &OS, AssemblyAnnotationWriter *AAW) const;
|
||||||
|
|
||||||
/// Methods for support type inquiry through isa, cast, and dyn_cast:
|
/// Methods for support type inquiry through isa, cast, and dyn_cast:
|
||||||
|
@ -295,15 +295,13 @@ public:
|
|||||||
/// @{
|
/// @{
|
||||||
public:
|
public:
|
||||||
/// Print the module to an output stream
|
/// Print the module to an output stream
|
||||||
void print(OStream &OS) const {
|
|
||||||
if (OS.stream()) print(*OS.stream(), 0);
|
|
||||||
}
|
|
||||||
void print(std::ostream &OS) const { print(OS, 0); }
|
void print(std::ostream &OS) const { print(OS, 0); }
|
||||||
|
void print(std::ostream *OS) const { if (OS) print(*OS); }
|
||||||
/// Print the module to an output stream with AssemblyAnnotationWriter.
|
/// Print the module to an output stream with AssemblyAnnotationWriter.
|
||||||
void print(OStream &OS, AssemblyAnnotationWriter *AAW) const {
|
|
||||||
if (OS.stream()) print(*OS.stream(), AAW);
|
|
||||||
}
|
|
||||||
void print(std::ostream &OS, AssemblyAnnotationWriter *AAW) const;
|
void print(std::ostream &OS, AssemblyAnnotationWriter *AAW) const;
|
||||||
|
void print(std::ostream *OS, AssemblyAnnotationWriter *AAW) const {
|
||||||
|
if (OS) print(*OS, AAW);
|
||||||
|
}
|
||||||
/// Dump the module to std::cerr (for debugging).
|
/// Dump the module to std::cerr (for debugging).
|
||||||
void dump() const;
|
void dump() const;
|
||||||
/// This function causes all the subinstructions to "let go" of all references
|
/// This function causes all the subinstructions to "let go" of all references
|
||||||
|
@ -105,10 +105,8 @@ public:
|
|||||||
/// provide the Module* in case the analysis doesn't need it it can just be
|
/// provide the Module* in case the analysis doesn't need it it can just be
|
||||||
/// ignored.
|
/// ignored.
|
||||||
///
|
///
|
||||||
void print(OStream &O, const Module *M) const {
|
|
||||||
if (O.stream()) print(*O.stream(), M);
|
|
||||||
}
|
|
||||||
virtual void print(std::ostream &O, const Module *M) const;
|
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; // dump - call print(std::cerr, 0);
|
void dump() const; // dump - call print(std::cerr, 0);
|
||||||
|
|
||||||
// Access AnalysisResolver_New
|
// Access AnalysisResolver_New
|
||||||
|
@ -141,10 +141,8 @@ class ConstantRange {
|
|||||||
|
|
||||||
/// print - Print out the bounds to a stream...
|
/// print - Print out the bounds to a stream...
|
||||||
///
|
///
|
||||||
void print(OStream &OS) const {
|
|
||||||
if (OS.stream()) print(*OS.stream());
|
|
||||||
}
|
|
||||||
void print(std::ostream &OS) const;
|
void print(std::ostream &OS) const;
|
||||||
|
void print(std::ostream *OS) const { if (OS) print(*OS); }
|
||||||
|
|
||||||
/// dump - Allow printing from a debugger easily...
|
/// dump - Allow printing from a debugger easily...
|
||||||
///
|
///
|
||||||
|
@ -65,10 +65,10 @@ bool isCurrentDebugType(const char *Type);
|
|||||||
/// places the std::c* I/O streams into one .cpp file and relieves the whole
|
/// places the std::c* I/O streams into one .cpp file and relieves the whole
|
||||||
/// program from having to have hundreds of static c'tor/d'tors for them.
|
/// program from having to have hundreds of static c'tor/d'tors for them.
|
||||||
///
|
///
|
||||||
OStream getErrorOutputStream(const char *DebugType);
|
OStream &getErrorOutputStream(const char *DebugType);
|
||||||
|
|
||||||
#ifdef NDEBUG
|
#ifdef NDEBUG
|
||||||
#define DOUT NullStream
|
#define DOUT cnull
|
||||||
#else
|
#else
|
||||||
#define DOUT getErrorOutputStream(DEBUG_TYPE)
|
#define DOUT getErrorOutputStream(DEBUG_TYPE)
|
||||||
#endif
|
#endif
|
||||||
|
@ -39,6 +39,11 @@ namespace llvm {
|
|||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// inline BaseStream &operator << (std::ios &(*Func)(std::ios&)) {
|
||||||
|
// if (Stream) *Stream << Func;
|
||||||
|
// return *this;
|
||||||
|
// }
|
||||||
|
|
||||||
template <typename Ty>
|
template <typename Ty>
|
||||||
BaseStream &operator << (const Ty &Thing) {
|
BaseStream &operator << (const Ty &Thing) {
|
||||||
if (Stream) *Stream << Thing;
|
if (Stream) *Stream << Thing;
|
||||||
@ -51,6 +56,8 @@ namespace llvm {
|
|||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
operator StreamTy* () { return Stream; }
|
||||||
|
|
||||||
bool operator == (const StreamTy &S) { return &S == Stream; }
|
bool operator == (const StreamTy &S) { return &S == Stream; }
|
||||||
bool operator != (const StreamTy &S) { return !(*this == S); }
|
bool operator != (const StreamTy &S) { return !(*this == S); }
|
||||||
bool operator == (const BaseStream &S) { return S.Stream == Stream; }
|
bool operator == (const BaseStream &S) { return S.Stream == Stream; }
|
||||||
@ -61,7 +68,7 @@ namespace llvm {
|
|||||||
typedef BaseStream<std::istream> IStream;
|
typedef BaseStream<std::istream> IStream;
|
||||||
typedef BaseStream<std::stringstream> StringStream;
|
typedef BaseStream<std::stringstream> StringStream;
|
||||||
|
|
||||||
extern OStream NullStream;
|
extern OStream cnull;
|
||||||
extern OStream cout;
|
extern OStream cout;
|
||||||
extern OStream cerr;
|
extern OStream cerr;
|
||||||
extern IStream cin;
|
extern IStream cin;
|
||||||
|
@ -98,6 +98,7 @@ public:
|
|||||||
|
|
||||||
/// Print feature string.
|
/// Print feature string.
|
||||||
void print(std::ostream &OS) const;
|
void print(std::ostream &OS) const;
|
||||||
|
void print(std::ostream *OS) const { if (OS) print(*OS); }
|
||||||
|
|
||||||
// Dump feature info.
|
// Dump feature info.
|
||||||
void dump() const;
|
void dump() const;
|
||||||
|
@ -141,10 +141,8 @@ protected:
|
|||||||
///
|
///
|
||||||
mutable std::vector<AbstractTypeUser *> AbstractTypeUsers;
|
mutable std::vector<AbstractTypeUser *> AbstractTypeUsers;
|
||||||
public:
|
public:
|
||||||
void print(OStream &O) const {
|
|
||||||
if (O.stream()) print(*O.stream());
|
|
||||||
}
|
|
||||||
void print(std::ostream &O) const;
|
void print(std::ostream &O) const;
|
||||||
|
void print(std::ostream *O) const { if (O) print(*O); }
|
||||||
|
|
||||||
/// @brief Debugging support: print to stderr
|
/// @brief Debugging support: print to stderr
|
||||||
void dump() const;
|
void dump() const;
|
||||||
|
@ -75,10 +75,8 @@ public:
|
|||||||
|
|
||||||
/// print - Implement operator<< on Value...
|
/// print - Implement operator<< on Value...
|
||||||
///
|
///
|
||||||
void print(OStream &O) const {
|
|
||||||
if (O.stream()) print(*O.stream());
|
|
||||||
}
|
|
||||||
virtual void print(std::ostream &O) const = 0;
|
virtual void print(std::ostream &O) const = 0;
|
||||||
|
void print(std::ostream *O) const { if (O) print(*O); }
|
||||||
|
|
||||||
/// All values are typed, get the type of this value.
|
/// All values are typed, get the type of this value.
|
||||||
///
|
///
|
||||||
|
@ -74,8 +74,8 @@ public:
|
|||||||
AU.setPreservesAll();
|
AU.setPreservesAll();
|
||||||
}
|
}
|
||||||
|
|
||||||
void print(OStream &o, const Module *M) const {
|
void print(std::ostream *o, const Module *M) const {
|
||||||
if (o.stream()) print(*o.stream(), M);
|
if (o) print(*o, M);
|
||||||
}
|
}
|
||||||
|
|
||||||
virtual void print(std::ostream &o, const Module *M) const {
|
virtual void print(std::ostream &o, const Module *M) const {
|
||||||
|
@ -31,13 +31,12 @@ Module *Trace::getModule() const {
|
|||||||
|
|
||||||
/// print - Write trace to output stream.
|
/// print - Write trace to output stream.
|
||||||
///
|
///
|
||||||
void Trace::print(OStream &O) const {
|
void Trace::print(std::ostream &O) const {
|
||||||
Function *F = getFunction ();
|
Function *F = getFunction ();
|
||||||
O << "; Trace from function " << F->getName() << ", blocks:\n";
|
O << "; Trace from function " << F->getName() << ", blocks:\n";
|
||||||
for (const_iterator i = begin(), e = end(); i != e; ++i) {
|
for (const_iterator i = begin(), e = end(); i != e; ++i) {
|
||||||
O << "; ";
|
O << "; ";
|
||||||
if (O.stream())
|
WriteAsOperand(O, *i, true, getModule());
|
||||||
WriteAsOperand(*O.stream(), *i, true, getModule());
|
|
||||||
O << "\n";
|
O << "\n";
|
||||||
}
|
}
|
||||||
O << "; Trace parent function: \n" << *F;
|
O << "; Trace parent function: \n" << *F;
|
||||||
|
@ -1297,4 +1297,6 @@ void llvm::WriteBytecodeToFile(const Module *M, OStream &Out,
|
|||||||
|
|
||||||
// make sure it hits disk now
|
// make sure it hits disk now
|
||||||
Out.stream()->flush();
|
Out.stream()->flush();
|
||||||
|
void * p;
|
||||||
|
Out << std::hex << p << "\n";
|
||||||
}
|
}
|
||||||
|
@ -137,8 +137,8 @@ public:
|
|||||||
}
|
}
|
||||||
|
|
||||||
#ifndef NDEBUG
|
#ifndef NDEBUG
|
||||||
void print(OStream &O) const {
|
void print(std::ostream *O) const {
|
||||||
if (O.stream()) print(*O.stream());
|
if (O) print(*O);
|
||||||
}
|
}
|
||||||
void print(std::ostream &O) const {
|
void print(std::ostream &O) const {
|
||||||
O << ".debug_" << Tag;
|
O << ".debug_" << Tag;
|
||||||
@ -245,8 +245,8 @@ public:
|
|||||||
void Emit(const Dwarf &DW) const;
|
void Emit(const Dwarf &DW) const;
|
||||||
|
|
||||||
#ifndef NDEBUG
|
#ifndef NDEBUG
|
||||||
void print(OStream &O) {
|
void print(std::ostream *O) {
|
||||||
if (O.stream()) print(*O.stream());
|
if (O) print(*O);
|
||||||
}
|
}
|
||||||
void print(std::ostream &O);
|
void print(std::ostream &O);
|
||||||
void dump();
|
void dump();
|
||||||
@ -335,8 +335,8 @@ public:
|
|||||||
void Profile(FoldingSetNodeID &ID) ;
|
void Profile(FoldingSetNodeID &ID) ;
|
||||||
|
|
||||||
#ifndef NDEBUG
|
#ifndef NDEBUG
|
||||||
void print(OStream &O, unsigned IncIndent = 0) {
|
void print(std::ostream *O, unsigned IncIndent = 0) {
|
||||||
if (O.stream()) print(*O.stream(), IncIndent);
|
if (O) print(*O, IncIndent);
|
||||||
}
|
}
|
||||||
void print(std::ostream &O, unsigned IncIndent = 0);
|
void print(std::ostream &O, unsigned IncIndent = 0);
|
||||||
void dump();
|
void dump();
|
||||||
@ -386,8 +386,8 @@ public:
|
|||||||
virtual void Profile(FoldingSetNodeID &ID) = 0;
|
virtual void Profile(FoldingSetNodeID &ID) = 0;
|
||||||
|
|
||||||
#ifndef NDEBUG
|
#ifndef NDEBUG
|
||||||
void print(OStream &O) {
|
void print(std::ostream *O) {
|
||||||
if (O.stream()) print(*O.stream());
|
if (O) print(*O);
|
||||||
}
|
}
|
||||||
virtual void print(std::ostream &O) = 0;
|
virtual void print(std::ostream &O) = 0;
|
||||||
void dump();
|
void dump();
|
||||||
|
@ -475,7 +475,7 @@ void LiveRange::dump() const {
|
|||||||
cerr << *this << "\n";
|
cerr << *this << "\n";
|
||||||
}
|
}
|
||||||
|
|
||||||
void LiveInterval::print(OStream OS, const MRegisterInfo *MRI) const {
|
void LiveInterval::print(std::ostream &OS, const MRegisterInfo *MRI) const {
|
||||||
if (MRI && MRegisterInfo::isPhysicalRegister(reg))
|
if (MRI && MRegisterInfo::isPhysicalRegister(reg))
|
||||||
OS << MRI->getName(reg);
|
OS << MRI->getName(reg);
|
||||||
else
|
else
|
||||||
|
@ -473,7 +473,8 @@ private:
|
|||||||
|
|
||||||
/// print - Print ordering to specified output stream.
|
/// print - Print ordering to specified output stream.
|
||||||
///
|
///
|
||||||
void print(OStream &O) const;
|
void print(std::ostream &O) const;
|
||||||
|
void print(std::ostream *O) const { if (O) print(*O); }
|
||||||
|
|
||||||
void dump(const char *tag) const;
|
void dump(const char *tag) const;
|
||||||
|
|
||||||
@ -485,7 +486,8 @@ private:
|
|||||||
|
|
||||||
/// printNI - Print node info.
|
/// printNI - Print node info.
|
||||||
///
|
///
|
||||||
void printNI(OStream &O, NodeInfo *NI) const;
|
void printNI(std::ostream &O, NodeInfo *NI) const;
|
||||||
|
void printNI(std::ostream *O, NodeInfo *NI) const { if (O) printNI(O, NI); }
|
||||||
|
|
||||||
/// printChanges - Hilight changes in order caused by scheduling.
|
/// printChanges - Hilight changes in order caused by scheduling.
|
||||||
///
|
///
|
||||||
@ -636,7 +638,7 @@ void ScheduleDAGSimple::AddToGroup(NodeInfo *D, NodeInfo *U) {
|
|||||||
|
|
||||||
/// print - Print ordering to specified output stream.
|
/// print - Print ordering to specified output stream.
|
||||||
///
|
///
|
||||||
void ScheduleDAGSimple::print(OStream &O) const {
|
void ScheduleDAGSimple::print(std::ostream &O) const {
|
||||||
#ifndef NDEBUG
|
#ifndef NDEBUG
|
||||||
O << "Ordering\n";
|
O << "Ordering\n";
|
||||||
for (unsigned i = 0, N = Ordering.size(); i < N; i++) {
|
for (unsigned i = 0, N = Ordering.size(); i < N; i++) {
|
||||||
@ -710,16 +712,16 @@ static bool isFlagUser(SDNode *A) {
|
|||||||
|
|
||||||
/// printNI - Print node info.
|
/// printNI - Print node info.
|
||||||
///
|
///
|
||||||
void ScheduleDAGSimple::printNI(OStream &O, NodeInfo *NI) const {
|
void ScheduleDAGSimple::printNI(std::ostream &O, NodeInfo *NI) const {
|
||||||
#ifndef NDEBUG
|
#ifndef NDEBUG
|
||||||
SDNode *Node = NI->Node;
|
SDNode *Node = NI->Node;
|
||||||
*(O.stream()) << " "
|
O << " "
|
||||||
<< std::hex << Node << std::dec
|
<< std::hex << Node << std::dec
|
||||||
<< ", Lat=" << NI->Latency
|
<< ", Lat=" << NI->Latency
|
||||||
<< ", Slot=" << NI->Slot
|
<< ", Slot=" << NI->Slot
|
||||||
<< ", ARITY=(" << Node->getNumOperands() << ","
|
<< ", ARITY=(" << Node->getNumOperands() << ","
|
||||||
<< Node->getNumValues() << ")"
|
<< Node->getNumValues() << ")"
|
||||||
<< " " << Node->getOperationName(&DAG);
|
<< " " << Node->getOperationName(&DAG);
|
||||||
if (isFlagDefiner(Node)) O << "<#";
|
if (isFlagDefiner(Node)) O << "<#";
|
||||||
if (isFlagUser(Node)) O << ">#";
|
if (isFlagUser(Node)) O << ">#";
|
||||||
#endif
|
#endif
|
||||||
|
@ -113,11 +113,6 @@ void VirtRegMap::virtFolded(unsigned VirtReg, MachineInstr *OldMI,
|
|||||||
}
|
}
|
||||||
|
|
||||||
void VirtRegMap::print(std::ostream &OS) const {
|
void VirtRegMap::print(std::ostream &OS) const {
|
||||||
OStream LOS(OS);
|
|
||||||
print(LOS);
|
|
||||||
}
|
|
||||||
|
|
||||||
void VirtRegMap::print(OStream &OS) const {
|
|
||||||
const MRegisterInfo* MRI = MF.getTarget().getRegisterInfo();
|
const MRegisterInfo* MRI = MF.getTarget().getRegisterInfo();
|
||||||
|
|
||||||
OS << "********** REGISTER MAP **********\n";
|
OS << "********** REGISTER MAP **********\n";
|
||||||
@ -136,8 +131,7 @@ void VirtRegMap::print(OStream &OS) const {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void VirtRegMap::dump() const {
|
void VirtRegMap::dump() const {
|
||||||
OStream OS = DOUT;
|
print(DOUT);
|
||||||
print(OS);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -145,10 +145,14 @@ namespace llvm {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void print(std::ostream &OS) const;
|
void print(std::ostream &OS) const;
|
||||||
void print(OStream &OS) const;
|
void print(std::ostream *OS) const { if (OS) print(*OS); }
|
||||||
void dump() const;
|
void dump() const;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
inline std::ostream *operator<<(std::ostream *OS, const VirtRegMap &VRM) {
|
||||||
|
VRM.print(OS);
|
||||||
|
return OS;
|
||||||
|
}
|
||||||
inline std::ostream &operator<<(std::ostream &OS, const VirtRegMap &VRM) {
|
inline std::ostream &operator<<(std::ostream &OS, const VirtRegMap &VRM) {
|
||||||
VRM.print(OS);
|
VRM.print(OS);
|
||||||
return OS;
|
return OS;
|
||||||
|
@ -68,9 +68,9 @@ bool llvm::isCurrentDebugType(const char *DebugType) {
|
|||||||
// places the std::c* I/O streams into one .cpp file and relieves the whole
|
// places the std::c* I/O streams into one .cpp file and relieves the whole
|
||||||
// program from having to have hundreds of static c'tor/d'tors for them.
|
// program from having to have hundreds of static c'tor/d'tors for them.
|
||||||
//
|
//
|
||||||
OStream llvm::getErrorOutputStream(const char *DebugType) {
|
OStream &llvm::getErrorOutputStream(const char *DebugType) {
|
||||||
if (DebugFlag && isCurrentDebugType(DebugType))
|
if (DebugFlag && isCurrentDebugType(DebugType))
|
||||||
return cerr;
|
return cerr;
|
||||||
else
|
else
|
||||||
return NullStream;
|
return cnull;
|
||||||
}
|
}
|
||||||
|
@ -16,7 +16,7 @@
|
|||||||
#include <iostream>
|
#include <iostream>
|
||||||
using namespace llvm;
|
using namespace llvm;
|
||||||
|
|
||||||
OStream llvm::NullStream;
|
OStream llvm::cnull;
|
||||||
OStream llvm::cout(std::cout);
|
OStream llvm::cout(std::cout);
|
||||||
OStream llvm::cerr(std::cerr);
|
OStream llvm::cerr(std::cerr);
|
||||||
IStream llvm::cin(std::cin);
|
IStream llvm::cin(std::cin);
|
||||||
|
@ -96,7 +96,8 @@ bool LowerSwitch::runOnFunction(Function &F) {
|
|||||||
|
|
||||||
// operator<< - Used for debugging purposes.
|
// operator<< - Used for debugging purposes.
|
||||||
//
|
//
|
||||||
OStream& operator<<(OStream &O, const std::vector<LowerSwitch::Case> &C) {
|
std::ostream& operator<<(std::ostream &O,
|
||||||
|
const std::vector<LowerSwitch::Case> &C) {
|
||||||
O << "[";
|
O << "[";
|
||||||
|
|
||||||
for (std::vector<LowerSwitch::Case>::const_iterator B = C.begin(),
|
for (std::vector<LowerSwitch::Case>::const_iterator B = C.begin(),
|
||||||
@ -107,6 +108,10 @@ OStream& operator<<(OStream &O, const std::vector<LowerSwitch::Case> &C) {
|
|||||||
|
|
||||||
return O << "]";
|
return O << "]";
|
||||||
}
|
}
|
||||||
|
OStream& operator<<(OStream &O, const std::vector<LowerSwitch::Case> &C) {
|
||||||
|
if (O.stream()) *O.stream() << C;
|
||||||
|
return O;
|
||||||
|
}
|
||||||
|
|
||||||
// switchConvert - Convert the switch statement into a binary lookup of
|
// switchConvert - Convert the switch statement into a binary lookup of
|
||||||
// the case values. The function recursively builds this tree.
|
// the case values. The function recursively builds this tree.
|
||||||
|
Loading…
Reference in New Issue
Block a user