[llvm-commits] [llvm] r102850 - in /llvm/trunk: lib/Transforms/IPO/Inliner.cpp test/Transforms/Inline/delete-call.ll
Chris Lattner
sabre at nondot.org
Sat May 1 10:19:38 PDT 2010
Author: lattner
Date: Sat May 1 12:19:38 2010
New Revision: 102850
URL: http://llvm.org/viewvc/llvm-project?rev=102850&view=rev
Log:
revert r102831. We already delete dead readonly calls in
other places, killing a valid transformation is not the right
answer.
Modified:
llvm/trunk/lib/Transforms/IPO/Inliner.cpp
llvm/trunk/test/Transforms/Inline/delete-call.ll
Modified: llvm/trunk/lib/Transforms/IPO/Inliner.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/IPO/Inliner.cpp?rev=102850&r1=102849&r2=102850&view=diff
==============================================================================
--- llvm/trunk/lib/Transforms/IPO/Inliner.cpp (original)
+++ llvm/trunk/lib/Transforms/IPO/Inliner.cpp Sat May 1 12:19:38 2010
@@ -33,8 +33,7 @@
using namespace llvm;
STATISTIC(NumInlined, "Number of functions inlined");
-// FIXME: Uncomment once call deletion xform is made safe
-// STATISTIC(NumCallsDeleted, "Number of call sites deleted, not inlined");
+STATISTIC(NumCallsDeleted, "Number of call sites deleted, not inlined");
STATISTIC(NumDeleted, "Number of functions deleted because all callers found");
STATISTIC(NumMergedAllocas, "Number of allocas merged together");
@@ -383,9 +382,6 @@
Function *Caller = CS.getCaller();
Function *Callee = CS.getCalledFunction();
- // FIXME: This transformation is not legal unless we can prove
- // that the callee always terminates.
-#if 0
// If this call site is dead and it is to a readonly function, we should
// just delete the call instead of trying to inline it, regardless of
// size. This happens because IPSCCP propagates the result out of the
@@ -400,7 +396,6 @@
// Update the cached cost info with the missing call
growCachedCostInfo(Caller, NULL);
} else {
-#endif
// We can only inline direct calls to non-declarations.
if (Callee == 0 || Callee->isDeclaration()) continue;
@@ -442,9 +437,7 @@
// Update the cached cost info with the inlined call.
growCachedCostInfo(Caller, Callee);
-#if 0
}
-#endif
// If we inlined or deleted the last possible call site to the function,
// delete the function body now.
Modified: llvm/trunk/test/Transforms/Inline/delete-call.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Transforms/Inline/delete-call.ll?rev=102850&r1=102849&r2=102850&view=diff
==============================================================================
--- llvm/trunk/test/Transforms/Inline/delete-call.ll (original)
+++ llvm/trunk/test/Transforms/Inline/delete-call.ll Sat May 1 12:19:38 2010
@@ -1,6 +1,6 @@
; RUN: opt %s -S -inline -functionattrs -stats |& grep {Number of call sites deleted, not inlined}
; RUN: opt %s -S -inline -stats |& grep {Number of functions inlined}
-; XFAIL: *
+
target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:128:128-n8:16:32"
target triple = "i386-apple-darwin9.8"
More information about the llvm-commits
mailing list