[all-commits] [llvm/llvm-project] 6f7920: Reapply "[CodeGen] [WinException] Only produce han...

Martin Storsjö via All-commits all-commits at lists.llvm.org
Mon Nov 23 13:17:40 PST 2020


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: 6f792041a5cb964b4099614952a54c4961bfb872
      https://github.com/llvm/llvm-project/commit/6f792041a5cb964b4099614952a54c4961bfb872
  Author: Martin Storsjö <martin at martin.st>
  Date:   2020-11-23 (Mon, 23 Nov 2020)

  Changed paths:
    M llvm/include/llvm/MC/MCStreamer.h
    M llvm/include/llvm/MC/MCWin64EH.h
    M llvm/include/llvm/MC/MCWinEH.h
    M llvm/lib/CodeGen/AsmPrinter/WinException.cpp
    M llvm/lib/MC/MCStreamer.cpp
    M llvm/lib/MC/MCWin64EH.cpp
    M llvm/lib/Target/AArch64/MCTargetDesc/AArch64WinCOFFStreamer.cpp
    M llvm/lib/Target/X86/MCTargetDesc/X86WinCOFFStreamer.cpp
    M llvm/test/CodeGen/AArch64/win64-jumptable.ll
    M llvm/test/CodeGen/AArch64/wineh1.mir
    M llvm/test/CodeGen/X86/avx512-intel-ocl.ll
    M llvm/test/CodeGen/X86/avx512-regcall-Mask.ll
    M llvm/test/CodeGen/X86/avx512-regcall-NoMask.ll
    M llvm/test/CodeGen/X86/break-false-dep.ll
    M llvm/test/CodeGen/X86/conditional-tailcall-pgso.ll
    M llvm/test/CodeGen/X86/conditional-tailcall.ll
    M llvm/test/CodeGen/X86/gnu-seh-nolpads.ll
    M llvm/test/CodeGen/X86/mixed-ptr-sizes.ll
    M llvm/test/CodeGen/X86/musttail-varargs.ll
    M llvm/test/CodeGen/X86/no-sse-win64.ll
    M llvm/test/CodeGen/X86/win64-jumptable.ll
    M llvm/test/CodeGen/X86/win64_frame.ll

  Log Message:
  -----------
  Reapply "[CodeGen] [WinException] Only produce handler data at the end of the function if needed"

This reapplies 36c64af9d7f97414d48681b74352c9684077259b in updated
form.

Emit the xdata for each function at .seh_endproc. This keeps the
exact same output header order for most code generated by the LLVM
CodeGen layer. (Sections still change order for code built from
assembly where functions lack an explicit .seh_handlerdata
directive, and functions with chained unwind info.)

The practical effect should be that assembly output lacks
superfluous ".seh_handlerdata; .text" pairs at the end of functions
that don't handle exceptions, which allows such functions to use
the AArch64 packed unwind format again.

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




More information about the All-commits mailing list