diff options
author | David Greene <greened@obbligato.org> | 2009-07-14 20:18:05 +0000 |
---|---|---|
committer | David Greene <greened@obbligato.org> | 2009-07-14 20:18:05 +0000 |
commit | a31f96cf2bb2d4868d629b17b4e8ec106a23e776 (patch) | |
tree | 90d314a81dfda17ca4c96c57774b0a789e25df90 /llvm/lib/Target/CppBackend | |
parent | f6a5ab9abddb9c57c116449490114ec695f7e85f (diff) | |
download | bcm5719-llvm-a31f96cf2bb2d4868d629b17b4e8ec106a23e776.tar.gz bcm5719-llvm-a31f96cf2bb2d4868d629b17b4e8ec106a23e776.zip |
Have asm printers use formatted_raw_ostream directly to avoid a
dynamic_cast<>.
llvm-svn: 75670
Diffstat (limited to 'llvm/lib/Target/CppBackend')
-rw-r--r-- | llvm/lib/Target/CppBackend/CPPBackend.cpp | 12 | ||||
-rw-r--r-- | llvm/lib/Target/CppBackend/CPPTargetMachine.h | 5 |
2 files changed, 9 insertions, 8 deletions
diff --git a/llvm/lib/Target/CppBackend/CPPBackend.cpp b/llvm/lib/Target/CppBackend/CPPBackend.cpp index 9ebbf00dbc9..b2d72dd228c 100644 --- a/llvm/lib/Target/CppBackend/CPPBackend.cpp +++ b/llvm/lib/Target/CppBackend/CPPBackend.cpp @@ -29,8 +29,8 @@ #include "llvm/ADT/SmallPtrSet.h" #include "llvm/Support/CommandLine.h" #include "llvm/Support/ErrorHandling.h" +#include "llvm/Support/FormattedStream.h" #include "llvm/Support/Streams.h" -#include "llvm/Support/raw_ostream.h" #include "llvm/Config/config.h" #include <algorithm> #include <set> @@ -98,7 +98,7 @@ namespace { /// CppWriter - This class is the main chunk of code that converts an LLVM /// module to a C++ translation unit. class CppWriter : public ModulePass { - raw_ostream &Out; + formatted_raw_ostream &Out; const Module *TheModule; uint64_t uniqueNum; TypeMap TypeNames; @@ -113,7 +113,7 @@ namespace { public: static char ID; - explicit CppWriter(raw_ostream &o) : + explicit CppWriter(formatted_raw_ostream &o) : ModulePass(&ID), Out(o), uniqueNum(0), is_inline(false) {} virtual const char *getPassName() const { return "C++ backend"; } @@ -166,7 +166,7 @@ namespace { }; static unsigned indent_level = 0; - inline raw_ostream& nl(raw_ostream& Out, int delta = 0) { + inline formatted_raw_ostream& nl(formatted_raw_ostream& Out, int delta = 0) { Out << "\n"; if (delta >= 0 || indent_level >= unsigned(-delta)) indent_level += delta; @@ -1807,8 +1807,8 @@ namespace { Out << "#include <llvm/BasicBlock.h>\n"; Out << "#include <llvm/Instructions.h>\n"; Out << "#include <llvm/InlineAsm.h>\n"; + Out << "#include <llvm/Support/FormattedStream.h>\n"; Out << "#include <llvm/Support/MathExtras.h>\n"; - Out << "#include <llvm/Support/raw_ostream.h>\n"; Out << "#include <llvm/Pass.h>\n"; Out << "#include <llvm/PassManager.h>\n"; Out << "#include <llvm/ADT/SmallVector.h>\n"; @@ -2013,7 +2013,7 @@ char CppWriter::ID = 0; //===----------------------------------------------------------------------===// bool CPPTargetMachine::addPassesToEmitWholeFile(PassManager &PM, - raw_ostream &o, + formatted_raw_ostream &o, CodeGenFileType FileType, CodeGenOpt::Level OptLevel) { if (FileType != TargetMachine::AssemblyFile) return true; diff --git a/llvm/lib/Target/CppBackend/CPPTargetMachine.h b/llvm/lib/Target/CppBackend/CPPTargetMachine.h index db4bc0e722c..84a07eaece3 100644 --- a/llvm/lib/Target/CppBackend/CPPTargetMachine.h +++ b/llvm/lib/Target/CppBackend/CPPTargetMachine.h @@ -19,7 +19,7 @@ namespace llvm { -class raw_ostream; +class formatted_raw_ostream; struct CPPTargetMachine : public TargetMachine { const TargetData DataLayout; // Calculates type size & alignment @@ -28,7 +28,8 @@ struct CPPTargetMachine : public TargetMachine { : DataLayout(&M) {} virtual bool WantsWholeFile() const { return true; } - virtual bool addPassesToEmitWholeFile(PassManager &PM, raw_ostream &Out, + virtual bool addPassesToEmitWholeFile(PassManager &PM, + formatted_raw_ostream &Out, CodeGenFileType FileType, CodeGenOpt::Level OptLevel); |