summaryrefslogtreecommitdiff
path: root/lib/Transforms/IPO/InlineSimple.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'lib/Transforms/IPO/InlineSimple.cpp')
-rw-r--r--lib/Transforms/IPO/InlineSimple.cpp8
1 files changed, 1 insertions, 7 deletions
diff --git a/lib/Transforms/IPO/InlineSimple.cpp b/lib/Transforms/IPO/InlineSimple.cpp
index 0c950c7ba3..c0d97c5515 100644
--- a/lib/Transforms/IPO/InlineSimple.cpp
+++ b/lib/Transforms/IPO/InlineSimple.cpp
@@ -217,13 +217,7 @@ int SimpleInliner::getInlineCost(CallSite CS) {
// Don't inline into something too big, which would make it bigger. Here, we
// count each basic block as a single unit.
//
- // FIXME: THIS IS A TOTAL HACK. The problem is that we don't keep track of
- // which call sites are the result of an inlining operation. Because of this,
- // if we inline a recursive function into a callee, we will see a new call to
- // the recursive function. Every time we inline we get a new callsite for the
- // function, which only stops when the caller reaches its inlining limit.
- // Until the real problem is fixed, we apply this gnasty hack.
- InlineCost += Caller->size();
+ InlineCost += Caller->size()/20;
// Look at the size of the callee. Each basic block counts as 20 units, and