[all-commits] [llvm/llvm-project] a2fc96: [ELF] Replace SymbolTable::forEachSymbol with iter...

Fangrui Song via All-commits all-commits at lists.llvm.org
Tue Nov 26 09:11:39 PST 2019


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: a2fc96441788fba1e4709d63677f34ed8e321dae
      https://github.com/llvm/llvm-project/commit/a2fc96441788fba1e4709d63677f34ed8e321dae
  Author: Fangrui Song <maskray at google.com>
  Date:   2019-11-26 (Tue, 26 Nov 2019)

  Changed paths:
    M lld/ELF/Driver.cpp
    M lld/ELF/LTO.cpp
    M lld/ELF/MarkLive.cpp
    M lld/ELF/Relocations.cpp
    M lld/ELF/SymbolTable.h
    M lld/ELF/Writer.cpp

  Log Message:
  -----------
  [ELF] Replace SymbolTable::forEachSymbol with iterator_range symbols()

D62381 introduced forEachSymbol(). It seems that many call sites cannot
be parallelized because the body shared some states. Replace
forEachSymbol with iterator_range<filter_iterator<...>> symbols() to
simplify code and improve debuggability (std::function calls take some
frames).

It also allows us to use early return to simplify code added in D69650.

Reviewed By: grimar

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




More information about the All-commits mailing list