[all-commits] [llvm/llvm-project] 0e8fd3: [lld-macho] Parallelize ObjFile::sourceFile() duri...

Liza Burakova via All-commits all-commits at lists.llvm.org
Mon Sep 14 08:05:24 PDT 2026


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 0e8fd3609aae9dab8e24953a126c1a97871cc7fc
      https://github.com/llvm/llvm-project/commit/0e8fd3609aae9dab8e24953a126c1a97871cc7fc
  Author: Liza Burakova <liza at chromium.org>
  Date:   2026-09-14 (Mon, 14 Sep 2026)

  Changed paths:
    M lld/MachO/SyntheticSections.cpp

  Log Message:
  -----------
  [lld-macho] Parallelize ObjFile::sourceFile() during STABS emission. (#222087)

This is part of the ld64.lld performance improvements tracked by #222068

Currently, SymtabSection::emitStabs() calls emitBeginSourceStab() it
passes in file->sourceFile(), which will call
ObjFile::sourceFile(). This method reads the component's root DIE, which
is a bottleneck when done serially as at this stage the DWARF sections
have not been parsed yet.

This commit parallelizes the calls to ObjFile::sourceFile(), as we
already have the file ids stable sorted.

AI tool use: this is one of the commits that was prototyped by AI. I
rewrote this commit and ran the benchmarking myself.

**Benchmark for mac_debug_component_sym_2**
LLD Baseline
Time (mean ± σ): 8.630 s ± 0.479 s [User: 7.170 s, System: 2.012 s]
  Range (min … max):    8.147 s …  9.661 s    20 runs

LLD Optimized
Time (mean ± σ): 8.149 s ± 0.373 s [User: 7.410 s, System: 2.206 s]
  Range (min … max):    7.804 s …  9.507 s    20 runs

LLD Baseline 2
Time (mean ± σ): 8.365 s ± 0.347 s [User: 7.097 s, System: 1.922 s]
  Range (min … max):    8.036 s …  9.146 s    20 runs



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