[PATCH] D133581: [lld-macho] Sort data-in-code entries

Nico Weber via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Sep 15 08:56:10 PDT 2022


thakis added a comment.

In D133581#3786416 <https://reviews.llvm.org/D133581#3786416>, @thakis wrote:

> As for why we don't hit this on AArch64: http://llvm-cs.pcc.me.uk/lib/Target/AArch64/AArch64AsmPrinter.cpp#686 `AArch64AsmPrinter::emitJumpTableInfo` overrides `AsmPrinter::emitJumpTableInfo`, and the override doesn't call `OutStreamer->emitDataRegion(MCDR_DataRegionJT32);` for whatever reason. It probably should?
>
> But that explains why we _don't_ currently see the assert on arm64.
>
> With that, I think everything's explained :)

Follow-up to this: After D113576 <https://reviews.llvm.org/D113576>, llvm _always_ puts jump tables in `__TEXT,__const` on aarch64, so it never shows up in disassembly -- even for inline functions. (Things then rely on `-dead_strip` to remove the unused data from the jump tables references from non-prevailing inlines, instead of them not being linked in to the binary in the first place.) clang coming with the version of Xcode I'm using doesn't have that change yet as far as I can tell, so I didn't notice this immediately.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D133581



More information about the llvm-commits mailing list