[PATCH] D89930: [X86] Enable shrink-wrapping for frameless non-nounwind functions on platforms not using compact unwind

Fangrui Song via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Oct 21 22:53:53 PDT 2020


MaskRay created this revision.
MaskRay added reviewers: craig.topper, qcolombet, RKSimon.
Herald added subscribers: llvm-commits, pengfei, hiraditya.
Herald added a project: LLVM.
MaskRay requested review of this revision.

The current compact unwind scheme does not work when the prologue is not at the
start (the instructions before the prologue cannot be described).  (Technically
this is fixable, but it requires multiple compact unwind descriptors for one
function.)

rL255175 <https://reviews.llvm.org/rL255175> chose to not perform shrink-wrapping for frameless functions not
marked as nounwind to work around PR25614. This is overly limited, as platforms
not supporting compact unwind (all non-Darwin) does not need the workaround.
This patch restricts the limitation to compact unwind platforms.


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D89930

Files:
  llvm/lib/Target/X86/X86FrameLowering.cpp
  llvm/test/CodeGen/X86/absolute-cmp.ll
  llvm/test/CodeGen/X86/avx512-mask-op.ll
  llvm/test/CodeGen/X86/live-out-reg-info.ll
  llvm/test/CodeGen/X86/swifterror.ll
  llvm/test/CodeGen/X86/test-vs-bittest.ll
  llvm/test/CodeGen/X86/x86-shrink-wrap-unwind.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D89930.299870.patch
Type: text/x-patch
Size: 47208 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20201022/3668e0ce/attachment.bin>


More information about the llvm-commits mailing list