aboutsummaryrefslogtreecommitdiff
path: root/lib/Analysis/InlineCost.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'lib/Analysis/InlineCost.cpp')
-rw-r--r--lib/Analysis/InlineCost.cpp5
1 files changed, 5 insertions, 0 deletions
diff --git a/lib/Analysis/InlineCost.cpp b/lib/Analysis/InlineCost.cpp
index 6e251aa214..86f98c6b0f 100644
--- a/lib/Analysis/InlineCost.cpp
+++ b/lib/Analysis/InlineCost.cpp
@@ -189,6 +189,11 @@ unsigned CodeMetrics::CountBonusForConstant(Value *V) {
}
}
+ // FIXME: The only reason we're applying the bonus once is while it's great
+ // to devirtualize calls the magnitude of the bonus x number of call sites
+ // can lead to a huge code explosion when we prefer to inline 1000 instruction
+ // functions that have 10 call sites. This should be made a function of the
+ // estimated inline penalty/benefit + the indirect call bonus.
if (indirectCallBonus) Bonus += InlineConstants::IndirectCallBonus;
return Bonus;