[PATCH] D80844: [TRE] Allow accumulator elimination when base case returns non-constant
Eli Friedman via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Mon Jun 1 01:33:49 PDT 2020
efriedma added a comment.
What happens if there are multiple tail calls in a function using different accumulators? Something like the following:
int f(int a) {
if (!a) return 0;
if (a & 1) { return f(a-1)+1; }
return f(a-1)*2;
}
================
Comment at: llvm/lib/Transforms/Scalar/TailRecursionElimination.cpp:797
+ AccRecInstrNew->insertBefore(SI);
+ SI->setFalseValue(AccRecInstrNew);
+ }
----------------
I don't see any tests involving an accumulator and a select?
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D80844/new/
https://reviews.llvm.org/D80844
More information about the llvm-commits
mailing list