[PATCH] D61690: [X86] Deduplicate symbol lowering logic, NFC

John Reagan via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu May 16 11:57:23 PDT 2019


JohnReagan added a comment.

I like that you combined it for ease of use.  We have OpenVMS-specific changes for our out-of-tree cross-compilers (based on 3.4.2) and it was even worse back then.  Having it in one place makes it easier for us.  We're currently rebasing for native compilers based on 8.0.0 but will probably rebase again quickly.

We have a unique memory model that is a mixture of small/medium/large.   We allocate all static data in 32-bit space (and our stacks are 32-bits) but have code in 64-bit space so we always use GOT address even for "local" statics.  We also always go through the GOT for calls to routines in different ELF sections since our linker might group them into clusters farther than 32-bits apart.  Plus, our linker makes routine trampolines in 32-bit space for when somebody takes the "address" of a routine and expects to store it into a 32-bit location (our VAX heritage)

I'll be submitting a lightning talk this fall on "When 3 memory models on x86 isn't enough"


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D61690





More information about the llvm-commits mailing list