[PATCH] D82085: [TRE] allow TRE for non-capturing calls.

2020-06-25 Thread Layton Kifer via Phabricator via cfe-commits
laytonio added inline comments. Comment at: llvm/lib/Transforms/Scalar/TailRecursionElimination.cpp:838 +if (isValidTRECandidate(CI)) + HasValidCandidates = true; + } avl wrote: > laytonio wrote: > > Is there any reason to find and validate

[PATCH] D82085: [TRE] allow TRE for non-capturing calls.

2020-06-25 Thread Layton Kifer via Phabricator via cfe-commits
laytonio added inline comments. Comment at: llvm/lib/Transforms/Scalar/TailRecursionElimination.cpp:838 +if (isValidTRECandidate(CI)) + HasValidCandidates = true; + } Is there any reason to find and validate candidates now only to have to

[PATCH] D82085: [TRE] allow TRE for non-capturing calls.

2020-06-24 Thread Layton Kifer via Phabricator via cfe-commits
laytonio added inline comments. Comment at: llvm/lib/Transforms/Scalar/TailRecursionElimination.cpp:816 + for (auto : F) { +for (Instruction : BB) { + if (AllocaInst *AI = dyn_cast()) { You can use `for (Instruction : instructions(F))` here.

[PATCH] D82085: [TRE] allow TRE for non-capturing calls.

2020-06-22 Thread Layton Kifer via Phabricator via cfe-commits
laytonio added inline comments. Comment at: llvm/lib/Transforms/Scalar/TailRecursionElimination.cpp:823 + +bool TailRecursionEliminator::canTRE(Function ) { + // The local stack holds all alloca instructions and all byval arguments. There is no need to pass the

[PATCH] D82085: [TRE] markTails marks call sites as tailcalls though some of them are not.

2020-06-18 Thread Layton Kifer via Phabricator via cfe-commits
laytonio added a comment. Relevant llvm-dev thread. Noncapture use of locals disabling TailRecursionElimination Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D82085/new/