[all-commits] [llvm/llvm-project] fed8e3: [LLD][COFF] Add support for ARM64EC entry thunks. ...

Jacek Caban via All-commits all-commits at lists.llvm.org
Tue Jun 18 02:14:22 PDT 2024


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: fed8e38c195af5b4806b1088c3ef4d772c0ff450
      https://github.com/llvm/llvm-project/commit/fed8e38c195af5b4806b1088c3ef4d772c0ff450
  Author: Jacek Caban <jacek at codeweavers.com>
  Date:   2024-06-18 (Tue, 18 Jun 2024)

  Changed paths:
    M lld/COFF/Chunks.cpp
    M lld/COFF/Chunks.h
    M lld/COFF/Driver.cpp
    M lld/COFF/ICF.cpp
    M lld/COFF/InputFiles.cpp
    M lld/COFF/InputFiles.h
    M lld/COFF/MarkLive.cpp
    M lld/COFF/SymbolTable.cpp
    M lld/COFF/SymbolTable.h
    M lld/COFF/Writer.cpp
    A lld/test/COFF/arm64ec-entry-thunk.s
    A lld/test/COFF/arm64ec-hybmp.s
    M llvm/include/llvm/BinaryFormat/COFF.h

  Log Message:
  -----------
  [LLD][COFF] Add support for ARM64EC entry thunks. (#88132)

For x86_64 callable functions, ARM64EC requires an entry thunk generated
by the compiler. The linker interprets .hybmp sections to associate
function chunks with their entry points and writes an offset to thunks
preceding function section contents.

Additionally, ICF needs to be aware of entry thunks to not consider
chunks to be equal when they have different entry thunks, and GC needs
to mark entry thunks together with function chunks.

I used a new SectionChunkEC class instead of storing entry thunks in
SectionChunk, following the guideline to keep SectionChunk as compact as
possible. This way, there is no memory usage increase on non-EC targets.



To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications


More information about the All-commits mailing list