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);