[llvm-commits] [llvm-gcc-4.2] r55111 - /llvm-gcc-4.2/trunk/gcc/llvm-backend.cpp

Chris Lattner sabre at nondot.org
Wed Aug 20 22:48:27 PDT 2008


Author: lattner
Date: Thu Aug 21 00:48:27 2008
New Revision: 55111

URL: http://llvm.org/viewvc/llvm-project?rev=55111&view=rev
Log:
adapt to changes in the backend to use raw_ostream.

Modified:
    llvm-gcc-4.2/trunk/gcc/llvm-backend.cpp

Modified: llvm-gcc-4.2/trunk/gcc/llvm-backend.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/llvm-backend.cpp?rev=55111&r1=55110&r2=55111&view=diff

==============================================================================
--- llvm-gcc-4.2/trunk/gcc/llvm-backend.cpp (original)
+++ llvm-gcc-4.2/trunk/gcc/llvm-backend.cpp Thu Aug 21 00:48:27 2008
@@ -50,6 +50,7 @@
 #include "llvm/Support/Streams.h"
 #include "llvm/Support/ManagedStatic.h"
 #include "llvm/Support/MemoryBuffer.h"
+#include "llvm/Support/raw_ostream.h"
 #include "llvm/System/Program.h"
 #include <cassert>
 #undef VISIBILITY_HIDDEN
@@ -239,6 +240,7 @@
 }
 
 oFILEstream *AsmOutStream = 0;
+static raw_ostream *AsmOutRawStream = 0;
 oFILEstream *AsmIntermediateOutStream = 0;
 
 /// Read bytecode from PCH file. Initialize TheModule and setup
@@ -289,6 +291,8 @@
 void llvm_pch_write_init(void) {
   timevar_push(TV_LLVM_INIT);
   AsmOutStream = new oFILEstream(asm_out_file);
+  // FIXME: disentangle ostream madness here.  Kill off ostream and FILE.
+  AsmOutRawStream = new raw_os_ostream(*AsmOutStream);
   AsmOutFile = new OStream(*AsmOutStream);
 
   assert(!OptimizationPassesCreated);
@@ -456,7 +460,7 @@
 
     // Normal mode, emit a .s file by running the code generator.
     // Note, this also adds codegenerator level optimization passes.
-    switch (TheTarget->addPassesToEmitFile(*PM, *AsmOutStream,
+    switch (TheTarget->addPassesToEmitFile(*PM, *AsmOutRawStream,
                                            TargetMachine::AssemblyFile,
                                            /*FAST*/optimize == 0)) {
     default:
@@ -490,6 +494,8 @@
 void llvm_asm_file_start(void) {
   timevar_push(TV_LLVM_INIT);
   AsmOutStream = new oFILEstream(asm_out_file);
+  // FIXME: disentangle ostream madness here.  Kill off ostream and FILE.
+  AsmOutRawStream = new raw_os_ostream(*AsmOutStream);
   AsmOutFile = new OStream(*AsmOutStream);
 
   flag_llvm_pch_read = 0;
@@ -643,8 +649,11 @@
     CodeGenPasses->doFinalization();
   }
 
+  AsmOutRawStream->flush();
   AsmOutStream->flush();
   fflush(asm_out_file);
+  delete AsmOutRawStream;
+  AsmOutRawStream = 0;
   delete AsmOutStream;
   AsmOutStream = 0;
   delete AsmOutFile;





More information about the llvm-commits mailing list