[PATCH] D49465: [ARM] Enable tail calls for all Thumb1 targets.

Eli Friedman via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Aug 7 17:07:12 PDT 2018


efriedma updated this revision to Diff 159626.
efriedma edited the summary of this revision.
efriedma added a comment.
This revision is now accepted and ready to land.
Herald added a subscriber: mgorny.

Updated to use a pass after isel to convert a call in tail position to a tail-call, rather than try to do the opposite in frame lowering.  I'm not completely happy with this; the pass is a lot more code than I'd really like.  But I don't have any better ideas.

Still need to look more at the CodeGenPrepare tail duplication issue; we might need to suppress the transform for Thumb1, even if that means missing some cases we could tail-call.  And I probably need some more testcases.


Repository:
  rL LLVM

https://reviews.llvm.org/D49465

Files:
  lib/Target/ARM/ARM.h
  lib/Target/ARM/ARMISelLowering.cpp
  lib/Target/ARM/ARMISelLowering.h
  lib/Target/ARM/ARMInstrInfo.td
  lib/Target/ARM/ARMInstrThumb.td
  lib/Target/ARM/ARMSubtarget.cpp
  lib/Target/ARM/ARMTargetMachine.cpp
  lib/Target/ARM/CMakeLists.txt
  lib/Target/ARM/Thumb1TailCallOptimizer.cpp
  test/CodeGen/ARM/thumb_indirect_calls.ll
  test/CodeGen/ARM/v8m-tail-call.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D49465.159626.patch
Type: text/x-patch
Size: 22192 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20180808/649c9bd4/attachment.bin>


More information about the llvm-commits mailing list