[PATCH] D130049: [WinEH][ARM64] Split unwind info for functions larger than 1MB

Z. Zheng via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Jul 26 14:42:39 PDT 2022


zzheng added inline comments.


================
Comment at: llvm/lib/MC/MCWin64EH.cpp:1014
+
+      while (E < Epilogs.size() && Epilogs[E].End < SegEnd) {
+        // Epilogs within current segment.
----------------
mstorsjo wrote:
> Can we assume that all the epilogs are monotonically ordered? (I think it can be reasonable to do that, but maybe it'd be good to have an assert somewhere that tests it?)
> 
I put an assert in the loop that finds and records epilogs' start and end offset (line-990 to line-994), the idea is:
assert(epilog[n].end <= epilog[n+1].start), 


================
Comment at: llvm/test/MC/AArch64/seh-large-func.s:9
+// CHECK-NEXT:     Number: 1
+// CHECK-NEXT:     Name: .text (2E 74 65 78 74 00 00 00)
+// CHECK-NEXT:     VirtualSize: 0x0
----------------
mstorsjo wrote:
> Is it meaningful to include all the section headers in the testcase here? They're mostly distracting here I think, and just extra work to update when working on the testcase in my experience.
makes sense.
will just keep .pdata and .xdata sections


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D130049/new/

https://reviews.llvm.org/D130049



More information about the llvm-commits mailing list