[PATCH] D50166: [ARM64] [Windows] MCLayer support for exception handling

Sanjin Sijaric via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Oct 25 21:24:24 PDT 2018


ssijaric added a comment.

In https://reviews.llvm.org/D50166#1276881, @ssijaric wrote:

> In https://reviews.llvm.org/D50166#1274871, @rnk wrote:
>
> > In https://reviews.llvm.org/D50166#1273097, @efriedma wrote:
> >
> > > Missing test coverage for SEH_SaveFPLR_X, SEH_SaveReg, SEH_SaveFReg, SEH_SetFP, SEH_AddFP, SEH_Nop, and the alloc_s variant of SEH_StackAlloc.  (I'd like to see at least one use of each opcode to show the encoding is correct/consistent with llvm-readobj.)
> >
> >
> > I'd also like to see a test for shrink-wrapping. You may have to disable it if you cannot yet describe such prologues it with SEH_ opcodes.
>
>
> Hi Reid,
>
> I think shrink wrapping is disabled by default for AArch64.  I have a small test case that gets shrink-wrapped, but only if I enable it manually using -enable-shrink-wrap.  Do we need a test case if it's disabled by default?


Wrong observation on my part.  Shrink wrapping is enabled by default on AArch64, but only if it has no Windows CFI.  There is even a comment in Shrink Wrapping that says:

// Windows with CFI has some limitations that make it impossible
// to use shrink-wrapping.

To handle shrink wrapping, we need to be able to break functions into regions, each with each own .pdata and .xdata.  We don't currently support this.  But it is definitely something we should handle in the future.

So, I will skip a test case for shrink wrapping.  Will add a few more tests to cover remaining the unwind codes.


Repository:
  rL LLVM

https://reviews.llvm.org/D50166





More information about the llvm-commits mailing list