[all-commits] [llvm/llvm-project] 863aa0: [LLD][ELF] Fix performance of MarkLive::scanEhFram...

Andrew Ng via All-commits all-commits at lists.llvm.org
Tue Sep 8 11:36:19 PDT 2020


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: 863aa0a37bd1a57b0720eda6d646f9abd51bf6c2
      https://github.com/llvm/llvm-project/commit/863aa0a37bd1a57b0720eda6d646f9abd51bf6c2
  Author: Andrew Ng <andrew.ng at sony.com>
  Date:   2020-09-08 (Tue, 08 Sep 2020)

  Changed paths:
    M lld/ELF/MarkLive.cpp

  Log Message:
  -----------
  [LLD][ELF] Fix performance of MarkLive::scanEhFrameSection

MarkLive::scanEhFrameSection is used to retain personality/LSDA
functions when --gc-sections is enabled.

Improve its performance by only iterating over the .eh_frame relocations
that need to be resolved for an EhSectionPiece. This optimization makes
the same assumption as elsewhere in LLD that the .eh_frame relocations
are sorted by r_offset.

This appears to be a performance regression introduced in commit
e6c24299d237 (https://reviews.llvm.org/D59800).

This change has been seen to reduce link time by up to ~50%.

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




More information about the All-commits mailing list