forked from OSchip/llvm-project
revert r102831. We already delete dead readonly calls in
other places, killing a valid transformation is not the right answer. llvm-svn: 102850
This commit is contained in:
parent
b136e626ea
commit
b49a622fe9
|
@ -33,8 +33,7 @@
|
||||||
using namespace llvm;
|
using namespace llvm;
|
||||||
|
|
||||||
STATISTIC(NumInlined, "Number of functions inlined");
|
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(NumDeleted, "Number of functions deleted because all callers found");
|
||||||
STATISTIC(NumMergedAllocas, "Number of allocas merged together");
|
STATISTIC(NumMergedAllocas, "Number of allocas merged together");
|
||||||
|
|
||||||
|
@ -383,9 +382,6 @@ bool Inliner::runOnSCC(CallGraphSCC &SCC) {
|
||||||
Function *Caller = CS.getCaller();
|
Function *Caller = CS.getCaller();
|
||||||
Function *Callee = CS.getCalledFunction();
|
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
|
// 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
|
// just delete the call instead of trying to inline it, regardless of
|
||||||
// size. This happens because IPSCCP propagates the result out of the
|
// size. This happens because IPSCCP propagates the result out of the
|
||||||
|
@ -400,7 +396,6 @@ bool Inliner::runOnSCC(CallGraphSCC &SCC) {
|
||||||
// Update the cached cost info with the missing call
|
// Update the cached cost info with the missing call
|
||||||
growCachedCostInfo(Caller, NULL);
|
growCachedCostInfo(Caller, NULL);
|
||||||
} else {
|
} else {
|
||||||
#endif
|
|
||||||
// We can only inline direct calls to non-declarations.
|
// We can only inline direct calls to non-declarations.
|
||||||
if (Callee == 0 || Callee->isDeclaration()) continue;
|
if (Callee == 0 || Callee->isDeclaration()) continue;
|
||||||
|
|
||||||
|
@ -442,9 +437,7 @@ bool Inliner::runOnSCC(CallGraphSCC &SCC) {
|
||||||
|
|
||||||
// Update the cached cost info with the inlined call.
|
// Update the cached cost info with the inlined call.
|
||||||
growCachedCostInfo(Caller, Callee);
|
growCachedCostInfo(Caller, Callee);
|
||||||
#if 0
|
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
// If we inlined or deleted the last possible call site to the function,
|
// If we inlined or deleted the last possible call site to the function,
|
||||||
// delete the function body now.
|
// delete the function body now.
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
; RUN: opt %s -S -inline -functionattrs -stats |& grep {Number of call sites deleted, not inlined}
|
; 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}
|
; 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 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"
|
target triple = "i386-apple-darwin9.8"
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue