Make opt -O3 act more like clang -O3 etc., by making the inlining thresholds
authorEli Friedman <eli.friedman@gmail.com>
Mon, 18 Jan 2010 22:38:31 +0000 (22:38 +0000)
committerEli Friedman <eli.friedman@gmail.com>
Mon, 18 Jan 2010 22:38:31 +0000 (22:38 +0000)
match.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93798 91177308-0d34-0410-b5e6-96231b3b80d8

tools/opt/opt.cpp

index a4ad9ab571ffc2c3133652c13ddf29b72d2b6137..292a42aab41f89e222f09079fcb406c0a6c48b44 100644 (file)
@@ -288,7 +288,17 @@ void AddOptimizationPasses(PassManager &MPM, FunctionPassManager &FPM,
                            unsigned OptLevel) {
   createStandardFunctionPasses(&FPM, OptLevel);
 
-  llvm::Pass *InliningPass = OptLevel > 1 ? createFunctionInliningPass() : 0;
+  llvm::Pass *InliningPass = 0;
+  if (DisableInline) {
+    // No inlining pass
+  } else if (OptLevel) {
+    unsigned Threshold = 200;
+    if (OptLevel > 2)
+      Threshold = 250;
+    InliningPass = createFunctionInliningPass(Threshold);
+  } else {
+    InliningPass = createAlwaysInlinerPass();
+  }
   createStandardModulePasses(&MPM, OptLevel,
                              /*OptimizeSize=*/ false,
                              UnitAtATime,