[all-commits] [llvm/llvm-project] a81542: Reland D119909 [ELF] Parallelize initializeLocalSy...

Fangrui Song via All-commits all-commits at lists.llvm.org
Fri Mar 4 19:00:22 PST 2022


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: a815424cc5df25d3e2dbdbc5fb3bf3f4dc927dff
      https://github.com/llvm/llvm-project/commit/a815424cc5df25d3e2dbdbc5fb3bf3f4dc927dff
  Author: Fangrui Song <i at maskray.me>
  Date:   2022-03-04 (Fri, 04 Mar 2022)

  Changed paths:
    M lld/ELF/Driver.cpp
    M lld/ELF/InputFiles.cpp
    M lld/ELF/InputFiles.h
    M lld/ELF/InputSection.cpp

  Log Message:
  -----------
  Reland D119909 [ELF] Parallelize initializeLocalSymbols

ObjFile::parse combines symbol initialization and resolution. Many tasks
unrelated to symbol resolution can be postponed and parallelized. This patch
extracts local symbol initialization and parallelizes it.

Technically the new function initializeLocalSymbols can be merged into
ObjFile::postParse, but functions like getSrcMsg may access the
uninitialized (all nullptr) local part of InputFile::symbols.

Linking chrome: 1.02x as fast with glibc malloc, 1.04x as fast with mimalloc

Depends on f456c3ae3f4182b23673929e8fe0aa18bcec4289 and D119908

Reviewed By: ikudrin

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




More information about the All-commits mailing list