[all-commits] [llvm/llvm-project] 96b0b9: [X86] Enable shrink-wrapping for no-frame-pointer ...

Fangrui Song via All-commits all-commits at lists.llvm.org
Wed Nov 4 16:52:06 PST 2020


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: 96b0b9a5e3c2a038c8590b2d71fa6cc03dc96aa4
      https://github.com/llvm/llvm-project/commit/96b0b9a5e3c2a038c8590b2d71fa6cc03dc96aa4
  Author: Fangrui Song <i at maskray.me>
  Date:   2020-11-04 (Wed, 04 Nov 2020)

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

  Log Message:
  -----------
  [X86] Enable shrink-wrapping for no-frame-pointer non-nounwind functions on platforms not using compact unwind

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 chose to not perform shrink-wrapping for no-frame-pointer 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.

Reviewed By: qcolombet

Differential Revision: https://reviews.llvm.org/D89930




More information about the All-commits mailing list