[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