aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/Frontend/Backend.cpp10
1 files changed, 8 insertions, 2 deletions
diff --git a/lib/Frontend/Backend.cpp b/lib/Frontend/Backend.cpp
index 5930b33028..03b60e01d0 100644
--- a/lib/Frontend/Backend.cpp
+++ b/lib/Frontend/Backend.cpp
@@ -331,8 +331,14 @@ void BackendConsumer::CreatePasses() {
switch (Inlining) {
case CodeGenOptions::NoInlining: break;
case CodeGenOptions::NormalInlining: {
- // Inline small functions
- unsigned Threshold = (CodeGenOpts.OptimizeSize || OptLevel < 3) ? 50 : 200;
+ // Set the inline threshold following llvm-gcc.
+ //
+ // FIXME: Derive these constants in a principled fashion.
+ unsigned Threshold = 200;
+ if (CodeGenOpts.OptimizeSize)
+ Threshold = 50;
+ else if (OptLevel > 2)
+ Threshold = 250;
InliningPass = createFunctionInliningPass(Threshold);
break;
}