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

Devang Patel dpatel at apple.com
Wed Feb 13 12:47:37 PST 2008


Author: dpatel
Date: Wed Feb 13 14:47:35 2008
New Revision: 47083

URL: http://llvm.org/viewvc/llvm-project?rev=47083&view=rev
Log:
Selectively print llvm asm file or write bit code file 
as an intermediate file based on input command line options.

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=47083&r1=47082&r2=47083&view=diff

==============================================================================
--- llvm-gcc-4.2/trunk/gcc/llvm-backend.cpp (original)
+++ llvm-gcc-4.2/trunk/gcc/llvm-backend.cpp Wed Feb 13 14:47:35 2008
@@ -559,22 +559,22 @@
   if (PerFunctionPasses)
     PerFunctionPasses->doFinalization();
 
-  // Emit intermediate .bc file before module level optimization passes are run.
-  if (emit_llvm_bc && flag_debug_llvm_module_opt) {
+  // Emit intermediate file before module level optimization passes are run.
+  if (flag_debug_llvm_module_opt) {
     
     static PassManager *IntermediatePM = new PassManager();
     IntermediatePM->add(new TargetData(*TheTarget->getTargetData()));
 
-  // Emit an LLVM .bc file to the output.  This is used when passed
-  // -emit-llvm -c to the GCC driver.
-
     char asm_intermediate_out_filename[MAXPATHLEN];
     strcpy(&asm_intermediate_out_filename[0], asm_file_name);
     strcat(&asm_intermediate_out_filename[0],".0");
     FILE *asm_intermediate_out_file = fopen(asm_intermediate_out_filename, "w+b");
     AsmIntermediateOutStream = new oFILEstream(asm_intermediate_out_file);
     AsmIntermediateOutFile = new OStream(*AsmIntermediateOutStream);
-    IntermediatePM->add(CreateBitcodeWriterPass(*AsmIntermediateOutStream));
+    if (emit_llvm_bc)
+      IntermediatePM->add(CreateBitcodeWriterPass(*AsmIntermediateOutStream));
+    if (emit_llvm)
+      IntermediatePM->add(new PrintModulePass(AsmIntermediateOutFile));
     IntermediatePM->run(*TheModule);
     AsmIntermediateOutStream->flush();
     fflush(asm_intermediate_out_file);





More information about the llvm-commits mailing list