Use FunctionInline instead of AlwaysInline. -O3.

Change-Id: I47ec6ee19db9de9d2982bc0d8decebab2357abe9
diff --git a/src/compiler_llvm/compilation_unit.cc b/src/compiler_llvm/compilation_unit.cc
index ccad0f4..4e2f16f 100644
--- a/src/compiler_llvm/compilation_unit.cc
+++ b/src/compiler_llvm/compilation_unit.cc
@@ -330,7 +330,7 @@
   llvm::TargetMachine* target_machine =
     target->createTargetMachine(target_triple, "", target_attr, target_options,
                                 llvm::Reloc::Static, llvm::CodeModel::Small,
-                                llvm::CodeGenOpt::Less);
+                                llvm::CodeGenOpt::Aggressive);
 
   CHECK(target_machine != NULL) << "Failed to create target machine";
 
@@ -347,8 +347,10 @@
 
   // Add optimization pass
   llvm::PassManagerBuilder pm_builder;
-  pm_builder.Inliner = llvm::createAlwaysInlinerPass();
-  pm_builder.OptLevel = 1;
+  pm_builder.Inliner = llvm::createFunctionInliningPass();
+  //pm_builder.Inliner = llvm::createAlwaysInlinerPass();
+  //pm_builder.Inliner = llvm::createPartialInliningPass();
+  pm_builder.OptLevel = 3;
   pm_builder.DisableSimplifyLibCalls = 1;
   pm_builder.populateModulePassManager(pm);
   pm_builder.populateFunctionPassManager(fpm);