[PATCH] D60031: Split tailcallelim into tailcallmark and tailcallelim

Hideto Ueno via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Sat Mar 30 09:41:03 PDT 2019


uenoku created this revision.
Herald added subscribers: llvm-commits, jdoerfert, dexonsmith, steven_wu, eraman, mgorny, mehdi_amini.
Herald added a project: LLVM.

Currently, tailcallelim does 
(1) mark call instruction as "tail" if possible
(2) eliminate tail call and generate loops

Like memcpyopt, some passes add call instruction but these calls are not marked as tail[1]. So it is better to add (1) after such passes.

I split tailcallelim into tailcallmark and tailcallelim.

tailcallmark - only for marking function calls as "tail".
tailcallelim - does what old tailcalleim did except for marking the calls.

[1]https://reviews.llvm.org/D59534


Repository:
  rL LLVM

https://reviews.llvm.org/D60031

Files:
  include/llvm/InitializePasses.h
  include/llvm/LinkAllPasses.h
  include/llvm/Transforms/Scalar.h
  include/llvm/Transforms/Scalar/TailCallMarking.h
  lib/Passes/PassBuilder.cpp
  lib/Passes/PassRegistry.def
  lib/Transforms/IPO/PassManagerBuilder.cpp
  lib/Transforms/Scalar/CMakeLists.txt
  lib/Transforms/Scalar/Scalar.cpp
  lib/Transforms/Scalar/TailCallMarking.cpp
  lib/Transforms/Scalar/TailRecursionElimination.cpp
  test/Other/new-pm-defaults.ll
  test/Other/new-pm-lto-defaults.ll
  test/Other/new-pm-thinlto-defaults.ll
  test/Transforms/Inline/byval-tail-call.ll
  test/Transforms/TailCallElim/2010-06-26-MultipleReturnValues.ll
  test/Transforms/TailCallElim/accum_recursion.ll
  test/Transforms/TailCallElim/basic.ll
  test/Transforms/TailCallElim/debugloc.ll
  test/Transforms/TailCallElim/deopt-bundle.ll
  test/Transforms/TailCallElim/inf-recursion.ll
  test/Transforms/TailCallElim/notail.ll
  test/Transforms/TailCallElim/opt-remarks-recursion.ll
  test/Transforms/TailCallElim/reorder_load.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D60031.192980.patch
Type: text/x-patch
Size: 32516 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20190330/8ee828ee/attachment.bin>


More information about the llvm-commits mailing list