[all-commits] [llvm/llvm-project] 131eb3: [BOLT] Match blocks with calls as anchors (#96596)

Fangrui Song via All-commits all-commits at lists.llvm.org
Wed Jul 10 17:33:57 PDT 2024


  Branch: refs/heads/users/MaskRay/spr/nsan-add-shared-runtime
  Home:   https://github.com/llvm/llvm-project
  Commit: 131eb30584333b61888735b4fefe53dd25b741e0
      https://github.com/llvm/llvm-project/commit/131eb30584333b61888735b4fefe53dd25b741e0
  Author: Shaw Young <58664393+shawbyoung at users.noreply.github.com>
  Date:   2024-07-10 (Wed, 10 Jul 2024)

  Changed paths:
    M bolt/include/bolt/Core/HashUtilities.h
    M bolt/include/bolt/Profile/YAMLProfileReader.h
    M bolt/include/bolt/Utils/NameResolver.h
    M bolt/lib/Core/HashUtilities.cpp
    M bolt/lib/Profile/StaleProfileMatching.cpp
    M bolt/lib/Profile/YAMLProfileReader.cpp
    A bolt/test/X86/match-functions-with-calls-as-anchors.test

  Log Message:
  -----------
  [BOLT] Match blocks with calls as anchors (#96596)

Added another hash level – call hash – following opcode hash matching
for stale block matching. Call hash strings are the concatenation of the
lexicographically ordered names of each blocks’ called functions. This 
change bolsters block matching in cases where some instructions have
been removed or added but calls remain constant.

Test Plan: added match-functions-with-calls-as-anchors.test.


  Commit: 8146aeef41e9a3a272b2d0017c0e94f0e387ae08
      https://github.com/llvm/llvm-project/commit/8146aeef41e9a3a272b2d0017c0e94f0e387ae08
  Author: James Y Knight <jyknight at google.com>
  Date:   2024-07-10 (Wed, 10 Jul 2024)

  Changed paths:
    M llvm/lib/Target/X86/X86IntrinsicsInfo.h

  Log Message:
  -----------
  NFC: clang-format X86IntrinsicsInfo.h.

(To reduce noise from a future real change, since changes in these
giant arrays trigger a reformat of the whole array.)


  Commit: ed09637c496dee37b23d73040dff6f7a4805c53a
      https://github.com/llvm/llvm-project/commit/ed09637c496dee37b23d73040dff6f7a4805c53a
  Author: Vitaly Buka <vitalybuka at google.com>
  Date:   2024-07-10 (Wed, 10 Jul 2024)

  Changed paths:
    M compiler-rt/cmake/config-ix.cmake

  Log Message:
  -----------
  [NFC] Move HWASAN_SUPPORTED_ARCH close to COMPILER_RT_HAS_ASAN


  Commit: 541f22ee361a8b3029ac898db29d3e9184fb1671
      https://github.com/llvm/llvm-project/commit/541f22ee361a8b3029ac898db29d3e9184fb1671
  Author: Walter Erquinigo <a20012251 at gmail.com>
  Date:   2024-07-10 (Wed, 10 Jul 2024)

  Changed paths:
    M lldb/include/lldb/API/SBLanguageRuntime.h
    M lldb/include/lldb/Target/Language.h
    M lldb/source/API/SBLanguageRuntime.cpp
    M lldb/tools/lldb-dap/DAP.cpp
    M lldb/tools/lldb-dap/DAP.h
    M lldb/tools/lldb-dap/Options.td
    M lldb/tools/lldb-dap/lldb-dap.cpp

  Log Message:
  -----------
  [lldb-dap] Support throw and catch exception breakpoints for dynamica… (#97871)

…lly registered languages

First of all, this is done to support exceptions for the Mojo language,
but it's done in a way that will benefit any other plugin language.

1. I added a new lldb-dap CLI argument (not DAP field) called
`pre-init-commands`. These commands are executed before DAP
initialization. The other `init-commands` are executed after DAP
initialization. It's worth mentioning that the debug adapter returns to
VSCode the list of supported exception breakpoints during DAP
initialization, which means that I need to register the Mojo plugin
before that initialization step, hence the need for `pre-init-commands`.
In general, language plugins should be registered in that step, as they
affect the capabilities of the debugger.
2. I added a set of APIs for lldb-dap to query information of each
language related to exception breakpoints. E.g. whether a language
supports throw or catch breakpoints, how the throw keyword is called in
each particular language, etc.
3. I'm realizing that the Swift support for exception breakpoints in
lldb-dap should have been implemented in this way, instead of hardcoding
it.


  Commit: 56069ab1a35e74d0d8d632121e1891d41cb56a2d
      https://github.com/llvm/llvm-project/commit/56069ab1a35e74d0d8d632121e1891d41cb56a2d
  Author: Keith Smiley <keithbsmiley at gmail.com>
  Date:   2024-07-10 (Wed, 10 Jul 2024)

  Changed paths:
    M utils/bazel/llvm-project-overlay/bolt/BUILD.bazel

  Log Message:
  -----------
  [bazel] Port #96596 (#98411)

This change added a circular dependency in the profile and core headers,
so this splits out a target with just the headers for use by the core
library.


  Commit: d38a8e937b51f52ab4c324b99d984d3031833b63
      https://github.com/llvm/llvm-project/commit/d38a8e937b51f52ab4c324b99d984d3031833b63
  Author: Vitaly Buka <vitalybuka at google.com>
  Date:   2024-07-10 (Wed, 10 Jul 2024)

  Changed paths:
    M compiler-rt/lib/CMakeLists.txt
    M compiler-rt/lib/lsan/CMakeLists.txt
    M compiler-rt/lib/ubsan/CMakeLists.txt

  Log Message:
  -----------
  Undo lsan part of #98240 (#98409)

Undo lsan, ubsan from #98240 and
388c55a3e676a75ac242ff4f2db3fa39e5f0b0a3

There are parts which do not check COMPILER_RT_HAS_*.


  Commit: 8ab1dd3c5196960a42965081fdf521b367e8607a
      https://github.com/llvm/llvm-project/commit/8ab1dd3c5196960a42965081fdf521b367e8607a
  Author: David Tellenbach <dtellenbach at apple.com>
  Date:   2024-07-10 (Wed, 10 Jul 2024)

  Changed paths:
    M llvm/lib/DWARFLinker/Classic/DWARFStreamer.cpp
    M llvm/lib/DWARFLinker/Parallel/DebugLineSectionEmitter.h
    M llvm/test/tools/dsymutil/ARM/discriminator.test
    A llvm/test/tools/dsymutil/ARM/discriminator_repeated.test
    A llvm/test/tools/dsymutil/Inputs/discriminator_repeated.arm64.dylib
    A llvm/test/tools/dsymutil/Inputs/discriminator_repeated.arm64.o

  Log Message:
  -----------
  [DWARFLinker] Allow emission of repeated identical discriminators (#98255)

Zero discriminator for each row in the line-table to correctly emit
repeated but identical discriminators.

Without this patch line-tables like

    0x0000000100003bac     12     20      0   0            65       0
    0x0000000100003bb4     12     30      0   0            65       0
    0x0000000100003bbc     12     28      0   0            65       0
    0x0000000100003bcc     12     17      0   0            65       0

get falsely linked as

    0x0000000100003bac     12     20      0   0            65       0
    0x0000000100003bb4     12     30      0   0             0       0
    0x0000000100003bbc     12     28      0   0             0       0
    0x0000000100003bcc     12     17      0   0             0       0


  Commit: b1e03d3d2960c879066b43c228712a52f50e88a3
      https://github.com/llvm/llvm-project/commit/b1e03d3d2960c879066b43c228712a52f50e88a3
  Author: Fangrui Song <i at maskray.me>
  Date:   2024-07-10 (Wed, 10 Jul 2024)

  Changed paths:
    M libc/src/__support/macros/sanitizer.h

  Log Message:
  -----------
  [libc] Restore LIBC_HAVE_ADDRESS_SANITIZER as it is used by some tests

Follow-up to #98402


  Commit: 54c32becf0991e60261bf8e80caee43cc6c0d65f
      https://github.com/llvm/llvm-project/commit/54c32becf0991e60261bf8e80caee43cc6c0d65f
  Author: Xiang Li <python3kgae at outlook.com>
  Date:   2024-07-10 (Wed, 10 Jul 2024)

  Changed paths:
    M clang/lib/Driver/ToolChains/HLSL.h
    M clang/test/Driver/dxc_debug.hlsl

  Log Message:
  -----------
  [HLSL] Set default DwarfVersion to 4 for HLSL. (#97854)

Set default DwarfVersion to 4 for HLSL to match DXIL which does not
support DwarfVersion 5.

Based on
https://registry.khronos.org/SPIR-V/specs/unified1/DebugInfo.html SPIRV
is currently using Dwarf4 as well.

This is for the Dwarf Version 5 part of #96912.


  Commit: 9324c952e5d4744f86fc87662dee387134915bf0
      https://github.com/llvm/llvm-project/commit/9324c952e5d4744f86fc87662dee387134915bf0
  Author: Fangrui Song <i at maskray.me>
  Date:   2024-07-10 (Wed, 10 Jul 2024)

  Changed paths:
    M clang/lib/Driver/SanitizerArgs.cpp
    M clang/lib/Driver/ToolChains/CommonArgs.cpp
    M clang/test/Driver/sanitizer-ld.c

  Log Message:
  -----------
  [Driver] -fsanitize=numerical: work with ubsan and support -shared-libsan

* `-fsanitize=numerical,undefined`: don't link in the ubsan standalone
  runtime.
* `-shared-libsan`: link against `libclang_rt.nsan.so`

The compiler-rt part will be properly fixed by #98415


  Commit: 9ac1eab2d8aa16256a885b462c9bc9fe069a3da2
      https://github.com/llvm/llvm-project/commit/9ac1eab2d8aa16256a885b462c9bc9fe069a3da2
  Author: Fangrui Song <i at maskray.me>
  Date:   2024-07-10 (Wed, 10 Jul 2024)

  Changed paths:
    M bolt/include/bolt/Core/HashUtilities.h
    M bolt/include/bolt/Profile/YAMLProfileReader.h
    M bolt/include/bolt/Utils/NameResolver.h
    M bolt/lib/Core/HashUtilities.cpp
    M bolt/lib/Profile/StaleProfileMatching.cpp
    M bolt/lib/Profile/YAMLProfileReader.cpp
    A bolt/test/X86/match-functions-with-calls-as-anchors.test
    M clang/lib/Driver/ToolChains/HLSL.h
    M clang/test/Driver/dxc_debug.hlsl
    M compiler-rt/cmake/config-ix.cmake
    M compiler-rt/lib/CMakeLists.txt
    M compiler-rt/lib/lsan/CMakeLists.txt
    M compiler-rt/lib/ubsan/CMakeLists.txt
    M libc/src/__support/macros/sanitizer.h
    M lldb/include/lldb/API/SBLanguageRuntime.h
    M lldb/include/lldb/Target/Language.h
    M lldb/source/API/SBLanguageRuntime.cpp
    M lldb/tools/lldb-dap/DAP.cpp
    M lldb/tools/lldb-dap/DAP.h
    M lldb/tools/lldb-dap/Options.td
    M lldb/tools/lldb-dap/lldb-dap.cpp
    M llvm/lib/DWARFLinker/Classic/DWARFStreamer.cpp
    M llvm/lib/DWARFLinker/Parallel/DebugLineSectionEmitter.h
    M llvm/lib/Target/X86/X86IntrinsicsInfo.h
    M llvm/test/tools/dsymutil/ARM/discriminator.test
    A llvm/test/tools/dsymutil/ARM/discriminator_repeated.test
    A llvm/test/tools/dsymutil/Inputs/discriminator_repeated.arm64.dylib
    A llvm/test/tools/dsymutil/Inputs/discriminator_repeated.arm64.o
    M utils/bazel/llvm-project-overlay/bolt/BUILD.bazel

  Log Message:
  -----------
  .

Created using spr 1.3.5-bogner


Compare: https://github.com/llvm/llvm-project/compare/a7f65a66ef95...9ac1eab2d8aa

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