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