[PATCH] D125648: [ARM SEH 6] [ARM] Add SEH opcodes in frame lowering

Martin Storsjö via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Sun May 15 14:38:39 PDT 2022


mstorsjo created this revision.
mstorsjo added reviewers: efriedma, rnk, zzheng.
Herald added subscribers: hiraditya, kristof.beyls.
Herald added a project: All.
mstorsjo requested review of this revision.
Herald added a project: LLVM.

Skip inserting regular CFI instructions if using WinCFI.

This is based a fair amount on the corresponding ARM64 implementation,
but instead of trying to insert the SEH opcodes one by one where
we generate other prolog/epilog instructions, we try to walk over the
whole prolog/epilog range and insert them. This is done because in
many cases, the exact number of instructions inserted is abstracted
away deeper.

For some cases, we manually insert specific SEH opcodes directly where
instructions are generated, where the automatic mapping of instructions
to SEH opcodes doesn't hold up (e.g. for __chkstk stack probes).


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D125648

Files:
  llvm/lib/Target/ARM/ARMAsmPrinter.cpp
  llvm/lib/Target/ARM/ARMBaseRegisterInfo.h
  llvm/lib/Target/ARM/ARMExpandPseudoInsts.cpp
  llvm/lib/Target/ARM/ARMFrameLowering.cpp
  llvm/lib/Target/ARM/ARMInstrInfo.td
  llvm/lib/Target/ARM/ARMSubtarget.cpp
  llvm/test/CodeGen/ARM/Windows/wineh-opcodes.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D125648.429566.patch
Type: text/x-patch
Size: 39981 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20220515/35048d56/attachment-0001.bin>


More information about the llvm-commits mailing list