[all-commits] [llvm/llvm-project] 9b7f61: [COFF] Paritally inline Symbol::getName, NFC

Reid Kleckner via All-commits all-commits at lists.llvm.org
Sun May 3 08:20:13 PDT 2020


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: 9b7f6146bd4734f4ded2c3e572261961a43d3ef2
      https://github.com/llvm/llvm-project/commit/9b7f6146bd4734f4ded2c3e572261961a43d3ef2
  Author: Reid Kleckner <rnk at google.com>
  Date:   2020-05-03 (Sun, 03 May 2020)

  Changed paths:
    M lld/COFF/Symbols.cpp
    M lld/COFF/Symbols.h

  Log Message:
  -----------
  [COFF] Paritally inline Symbol::getName, NFC


  Commit: 53913a65b408ade2956061b4c0aaed6bba907403
      https://github.com/llvm/llvm-project/commit/53913a65b408ade2956061b4c0aaed6bba907403
  Author: Reid Kleckner <rnk at google.com>
  Date:   2020-05-03 (Sun, 03 May 2020)

  Changed paths:
    M llvm/lib/Support/Path.cpp
    M llvm/lib/Support/Windows/Path.inc
    M llvm/unittests/Support/Path.cpp

  Log Message:
  -----------
  Optimize path::remove_dots

LLD calls this on every source file string in every object file when
writing PDBs, so it is somewhat hot.

Avoid rewriting paths that do not contain path traversal components
(./..). Use find_first_not_of(separators) directly instead of using the
path iterators. The path component iterators appear to be slow, and
directly searching for slashes makes it easier to find double separators
that need to be canonicalized.

I discovered that the VFS relies on remote_dots to not canonicalize
early slashes (/foo or C:/foo) on Windows, so I had to leave that
behavior behind with unit tests for it. This is undesirable, but I claim
that my change is NFC.


Compare: https://github.com/llvm/llvm-project/compare/682f0b366be2...53913a65b408


More information about the All-commits mailing list