From a random opt-stat output:
Top 10 remarks:
tailcallelim/tailcall 53%
inline/AlwaysInline 13%
gvn/LoadClobbered 13%
inline/Inlined 8%
inline/TooCostly 2%
inline/NoDefinition 2%
licm/LoadWithLoopInvariantAddressInvalidated 2%
licm/Hoisted 1%
asm-printer/InstructionCount 1%
prologepilog/StackSize 1%
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@319235
91177308-0d34-0410-b5e6-
96231b3b80d8
if (Visited[CI->getParent()] != ESCAPED) {
// If the escape point was part way through the block, calls after the
// escape point wouldn't have been put into DeferredTails.
- ORE->emit([&]() {
- return OptimizationRemark(DEBUG_TYPE, "tailcall", CI)
- << "marked as tail call candidate";
- });
+ DEBUG(dbgs() << "Marked as tail call candidate: " << *CI << "\n");
CI->setTailCall();
Modified = true;
} else {
; RUN: opt %s -tailcallelim -pass-remarks=tailcallelim -o /dev/null 2>&1 | FileCheck %s
; RUN: opt %s -o /dev/null -passes='require<opt-remark-emit>,tailcallelim' -pass-remarks=tailcallelim 2>&1 | FileCheck %s
-; CHECK: /home/davide/pat.c:2:20: marked as tail call candidate
; CHECK: /home/davide/pat.c:2:20: transforming tail recursion into loop
define i32 @fib(i32 %n) nounwind ssp {
entry: