Cleanup LLVM code generation code.
Materialize the bitcode in the end of CompileClass,
so that the code generation time won't be calculated
in method compilation time.
Change-Id: I1e2bd0b23bcb5c55bd966a31b1df0b8b34922f94
diff --git a/src/compiler_llvm/compilation_unit.cc b/src/compiler_llvm/compilation_unit.cc
index 08c3dfc..ac956ef 100644
--- a/src/compiler_llvm/compilation_unit.cc
+++ b/src/compiler_llvm/compilation_unit.cc
@@ -193,24 +193,22 @@
fpm.run(*F);
}
fpm.doFinalization();
- LOG(INFO) << "Intraprocedural optimization finished!";
// Run the code generation passes
pm.run(*module_);
- LOG(INFO) << "Code generation finished!";
+ // Keep the generated executable
out_file->keep();
- LOG(DEBUG) << "ELF: " << elf_filename_ << " (done)";
+ LOG(INFO) << "ELF: " << elf_filename_ << " (done)";
+
+ // Free the resources
+ context_.reset(NULL);
+ irb_.reset(NULL);
+ module_ = NULL;
return true;
}
-void CompilationUnit::Finalize() {
- context_.reset(NULL);
- irb_.reset(NULL);
- module_ = NULL;
-}
-
} // namespace compiler_llvm
} // namespace art