[all-commits] [llvm/llvm-project] ecc93e: [ELF] Replace InputBaseSection::{areRelocsRela, fir...

Fangrui Song via All-commits all-commits at lists.llvm.org
Wed Oct 27 09:51:19 PDT 2021


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: ecc93ed2d738910449e0106eb487490e784c7d2b
      https://github.com/llvm/llvm-project/commit/ecc93ed2d738910449e0106eb487490e784c7d2b
  Author: Fangrui Song <i at maskray.me>
  Date:   2021-10-27 (Wed, 27 Oct 2021)

  Changed paths:
    M lld/ELF/Arch/PPC64.cpp
    M lld/ELF/DWARF.cpp
    M lld/ELF/Driver.cpp
    M lld/ELF/ICF.cpp
    M lld/ELF/InputFiles.cpp
    M lld/ELF/InputFiles.h
    M lld/ELF/InputSection.cpp
    M lld/ELF/InputSection.h
    M lld/ELF/MarkLive.cpp
    M lld/ELF/Relocations.cpp
    M lld/ELF/SyntheticSections.cpp

  Log Message:
  -----------
  [ELF] Replace InputBaseSection::{areRelocsRela,firstRelocation,numRelocation} with relSecIdx

For `InputSection` `.foo`, its `InputBaseSection::{areRelocsRela,firstRelocation,numRelocation}` basically
encode the information of `.rel[a].foo`. However, one uint32_t (the relocation section index)
suffices. See the implementation of `relsOrRelas`.

This change decreases sizeof(InputSection) from 184 to 176 on 64-bit Linux.

The maximum resident set size linking a large application (1.2G output) decreases by 0.39%.

Differential Revision: https://reviews.llvm.org/D112513




More information about the All-commits mailing list