llvm-project/llvm/test/Transforms/TailCallElim
Sanjoy Das e06ef141fc Avoid tail recursion elimination across calls with operand bundles
Summary:
In some specific scenarios with well understood operand bundle types
(like `"deopt"`) it may be possible to go ahead and convert recursion to
iteration, but TailRecursionElimination does not have that logic today
so avoid doing the right thing for now.

I need some input on whether `"funclet"` operand bundles should also
block tail recursion elimination.  If not, I'll allow TRE across calls
with `"funclet"` operand bundles and add a test case.

Reviewers: rnk, majnemer, nlewycky, ahatanak

Subscribers: mcrosier, llvm-commits

Differential Revision: https://reviews.llvm.org/D26270

llvm-svn: 286147
2016-11-07 21:01:49 +00:00
..
2010-06-26-MultipleReturnValues.ll
EraseBB.ll
accum_recursion.ll [PM] Port TailCallElim 2016-07-06 23:48:41 +00:00
ackermann.ll
basic.ll
deopt-bundle.ll Avoid tail recursion elimination across calls with operand bundles 2016-11-07 21:01:49 +00:00
dont_reorder_load.ll Push isDereferenceableAndAlignedPointer down into isSafeToLoadUnconditionally 2016-01-17 12:35:29 +00:00
dup_tail.ll
inf-recursion.ll
notail.ll
reorder_load.ll Push isDereferenceableAndAlignedPointer down into isSafeToLoadUnconditionally 2016-01-17 12:35:29 +00:00
setjmp.ll