[all-commits] [llvm/llvm-project] 5d46d7: [PDB] Use one func id DenseMap instead of per-sour...

Reid Kleckner via All-commits all-commits at lists.llvm.org
Thu Oct 1 12:22:49 PDT 2020


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: 5d46d7e8b288a52de1eff97d6c5b44039ede6661
      https://github.com/llvm/llvm-project/commit/5d46d7e8b288a52de1eff97d6c5b44039ede6661
  Author: Reid Kleckner <rnk at google.com>
  Date:   2020-10-01 (Thu, 01 Oct 2020)

  Changed paths:
    M lld/COFF/DebugTypes.cpp
    M lld/COFF/DebugTypes.h
    M lld/COFF/PDB.cpp
    M lld/COFF/TypeMerger.h

  Log Message:
  -----------
  [PDB] Use one func id DenseMap instead of per-source maps, NFC

This avoids some DenseMap copies when /Zi is in use, and results in
fewer data structures.

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


  Commit: d12ae042e17b27ebc8d2b5ae3d8dd5f88384d093
      https://github.com/llvm/llvm-project/commit/d12ae042e17b27ebc8d2b5ae3d8dd5f88384d093
  Author: Reid Kleckner <rnk at google.com>
  Date:   2020-10-01 (Thu, 01 Oct 2020)

  Changed paths:
    M llvm/utils/lit/lit/llvm/config.py

  Log Message:
  -----------
  [lit] Fix Python 2/3 compat in new winreg search code

This should fix the test failures on the clang win64 bot:
http://lab.llvm.org:8011/builders/clang-x64-windows-msvc/builds/18830
It has been red since Sept 23-ish.

This was subtle to debug. Windows has 'find' and 'sort' utilities in
C:\Windows\system32, but they don't support all the same flags as the
coreutils programs. I configured the buildbot above with Python 2.7
64-bit (hey, it was set up in 2016). When I installed git for Windows, I
opted to add all the Unix utilities that come with git to the system
PATH. This is *almost* enough to make the LLVM tests pass, but not
quite, because if you use the system PATH, the Windows version of find
and sort come first, but the tests that use diff, cmp, etc, will all
pass. So only a handful of tests will fail, and with cryptic error
messages.

The code changed in this CL doesn't work with Python 2. Before
Python 3.2, the winreg.OpenKey function did not accept the `access=`
keyword argument, the caller was required to pass an unused `reserved`
positional argument of 0. The try/except/pass around the OpenKey
operation masked this usage error in Python 2.

Further, the result of the registry operation has to be converted from
unicode to add it to the environment, but that was incidental.


Compare: https://github.com/llvm/llvm-project/compare/9d1c8c0ba94a...d12ae042e17b


More information about the All-commits mailing list