[all-commits] [llvm/llvm-project] 90acfb: [memprof] Use linear IDs for Frames and call stack...

Fangrui Song via All-commits all-commits at lists.llvm.org
Thu May 30 18:08:18 PDT 2024


  Branch: refs/heads/users/MaskRay/spr/elf-detect-convergence-of-output-section-addresses
  Home:   https://github.com/llvm/llvm-project
  Commit: 90acfbf90ddcb9c8c3338373bd13cb44f73bbd00
      https://github.com/llvm/llvm-project/commit/90acfbf90ddcb9c8c3338373bd13cb44f73bbd00
  Author: Kazu Hirata <kazu at google.com>
  Date:   2024-05-30 (Thu, 30 May 2024)

  Changed paths:
    M llvm/include/llvm/ProfileData/InstrProfReader.h
    M llvm/include/llvm/ProfileData/MemProf.h
    M llvm/lib/ProfileData/InstrProfReader.cpp
    M llvm/lib/ProfileData/InstrProfWriter.cpp
    M llvm/lib/ProfileData/MemProf.cpp

  Log Message:
  -----------
  [memprof] Use linear IDs for Frames and call stacks (#93740)

With this patch, we stop using on-disk hash tables for Frames and call
stacks.  Instead, we'll write out all the Frames as a flat array while
maintaining mappings from FrameIds to the indexes into the array.
Then we serialize call stacks in terms of those indexes.

Likewise, we'll write out all the call stacks as another flat array
while maintaining mappings from CallStackIds to the indexes into the
call stack array.  One minor difference from Frames is that the
indexes into the call stack array are not contiguous because call
stacks are variable-length objects.

Then we serialize IndexedMemProfRecords in terms of the indexes
into the call stack array.

Now, we describe each call stack with 32-bit indexes into the Frame
array (as opposed to the 64-bit FrameIds in Version 2).  The use of
the smaller type cuts down the profile file size by about 40% relative
to Version 2.  The departure from the on-disk hash tables contributes
a little bit to the savings, too.

For now, IndexedMemProfRecords refer to call stacks with 64-bit
indexes into the call stack array.  As a follow-up, I'll change that
to uint32_t, including necessary updates to RecordWriterTrait.


  Commit: 629b6f4eb129375324486181ac4fda1288ebecbc
      https://github.com/llvm/llvm-project/commit/629b6f4eb129375324486181ac4fda1288ebecbc
  Author: shaw young <58664393+shawbyoung at users.noreply.github.com>
  Date:   2024-05-30 (Thu, 30 May 2024)

  Changed paths:
    M bolt/include/bolt/Core/FunctionLayout.h
    M bolt/lib/Core/FunctionLayout.cpp

  Log Message:
  -----------
  [BOLT][NFC] Extend updateLayoutIndices (#93861)

Make FunctionLayout::updateLayoutIndices const and add an overloaded
function that updates LayoutIndices given an Order parameter.


  Commit: fc2b15987b417174ee6d899178af08c47e04575b
      https://github.com/llvm/llvm-project/commit/fc2b15987b417174ee6d899178af08c47e04575b
  Author: Sterling Augustine <saugustine at google.com>
  Date:   2024-05-30 (Thu, 30 May 2024)

  Changed paths:
    M llvm/test/CodeGen/X86/apx/asm-constraint-2-jR.ll

  Log Message:
  -----------
  Send output to a temp file, even in the error case

Prior to this, the test tries to write to the source directory,
which prevents it from working when the source is on a read-only
file systems.


  Commit: 419d363385c7fa8bd969a817f95ab025ae94277c
      https://github.com/llvm/llvm-project/commit/419d363385c7fa8bd969a817f95ab025ae94277c
  Author: Matt Arsenault <Matthew.Arsenault at amd.com>
  Date:   2024-05-30 (Thu, 30 May 2024)

  Changed paths:
    M llvm/test/CodeGen/AMDGPU/preload-kernargs.ll

  Log Message:
  -----------
  AMDGPU: Add kernarg input attributes to preloaded kernarg test (#93669)

Explicitly mark the unused implicit arguments in the test, since this
should be sensitive to the number of free user SGPRs.

This is in preparation for #83131.


  Commit: d9fbccf9a9b1ee2b76267146b4582415df67e66c
      https://github.com/llvm/llvm-project/commit/d9fbccf9a9b1ee2b76267146b4582415df67e66c
  Author: David Blaikie <dblaikie at gmail.com>
  Date:   2024-05-30 (Thu, 30 May 2024)

  Changed paths:
    M clang/test/Driver/debug-options.c

  Log Message:
  -----------
  Fix test on MacOS where -fstandalone-debug is the default

This test is meant to check the behavior when -fno-standalone-debug is
active - it doesn't care whether it's explicit or implicit, so let's
make it explicit so it applies equally to MacOS and other platforms.


  Commit: 235ddbd138b14aa1479adda2dc16f5f4055f1053
      https://github.com/llvm/llvm-project/commit/235ddbd138b14aa1479adda2dc16f5f4055f1053
  Author: S. Bharadwaj Yadavalli <Bharadwaj.Yadavalli at microsoft.com>
  Date:   2024-05-30 (Thu, 30 May 2024)

  Changed paths:
    M llvm/docs/DirectXUsage.rst

  Log Message:
  -----------
  [DirectX] [Docs] Add DXILOpTableGenDesign.rst to toctree of DirectXUsage. (#93864)

Fix doc build failure.


  Commit: d4ff9615a1531f4a466b7d1fb0f175e3ae489289
      https://github.com/llvm/llvm-project/commit/d4ff9615a1531f4a466b7d1fb0f175e3ae489289
  Author: Jorge Gorbe Moya <jgorbe at google.com>
  Date:   2024-05-30 (Thu, 30 May 2024)

  Changed paths:
    M clang/include/clang/Sema/Attr.h

  Log Message:
  -----------
  Add missing #include for ObjCMethodDecl.

DeclBase.h only contains a forward declaration of ObjCMethodDecl, and
when building clang/Sema/Attr.h with header modules this causes a build
failure because `llvm::isa<ObjCMethodDecl>` requires the full type.


  Commit: 852aaf54071ad072335dcac57f544d4da34c875a
      https://github.com/llvm/llvm-project/commit/852aaf54071ad072335dcac57f544d4da34c875a
  Author: Aaron Siddhartha Mondal <aaron at tracemachina.com>
  Date:   2024-05-31 (Fri, 31 May 2024)

  Changed paths:
    M clang/cmake/caches/Fuchsia-stage2.cmake
    M clang/cmake/caches/Fuchsia.cmake
    M clang/cmake/caches/VectorEngine.cmake
    M clang/utils/analyzer/entrypoint.py
    M compiler-rt/cmake/config-ix.cmake
    M compiler-rt/lib/sanitizer_common/symbolizer/scripts/build_symbolizer.sh
    M compiler-rt/lib/xray/tests/CMakeLists.txt
    M lldb/docs/resources/build.rst
    M lldb/source/Core/CMakeLists.txt
    M llvm/CMakeLists.txt
    M llvm/cmake/config-ix.cmake
    R llvm/cmake/modules/FindTerminfo.cmake
    M llvm/cmake/modules/LLVMConfig.cmake.in
    M llvm/docs/ReleaseNotes.rst
    M llvm/include/llvm/Config/config.h.cmake
    M llvm/lib/Support/CMakeLists.txt
    M llvm/lib/Support/Unix/Process.inc
    M llvm/utils/gn/README.rst
    R llvm/utils/gn/build/libs/terminfo/BUILD.gn
    R llvm/utils/gn/build/libs/terminfo/enable.gni
    M llvm/utils/gn/secondary/llvm/include/llvm/Config/BUILD.gn
    M llvm/utils/gn/secondary/llvm/lib/Support/BUILD.gn
    M llvm/utils/gn/secondary/llvm/tools/llvm-config/BUILD.gn
    M utils/bazel/.bazelrc
    M utils/bazel/llvm-project-overlay/llvm/include/llvm/Config/config.h
    M utils/bazel/llvm_configs/config.h.cmake

  Log Message:
  -----------
  Reapply "[Support] Remove terminfo dependency (#92865)" (#93889)

This reverts commit fe82a3da36196157c0caa1ef2505186782f750d1.

This broke LLDB on MacOS due to a missing symbol during linking.

The fix has been applied in c6c08eee37bada190bd1aa4593c88a5e2c8cdaac.

Original commit message:

The terminfo dependency introduces a significant nonhermeticity into the
build. It doesn't respect `--no-undefined-version` meaning that it's not
a dependency that can be built with Clang 17+. This forces maintainers
of source-based distributions to implement patches or ignore linker
errors.

Remove it to reduce the closure size and improve portability of
LLVM-based tools. Users can still use command line arguments to toggle
color support expliticly.

Fixes #75490
Closes #53294 #23355


  Commit: e1c3e16d24b5cc097ff08e9283f53319acd3f245
      https://github.com/llvm/llvm-project/commit/e1c3e16d24b5cc097ff08e9283f53319acd3f245
  Author: Akira Hatanaka <ahatanak at gmail.com>
  Date:   2024-05-30 (Thu, 30 May 2024)

  Changed paths:
    M clang/docs/ReleaseNotes.rst
    M clang/lib/AST/Decl.cpp
    M clang/test/SemaObjCXX/block-capture.mm

  Log Message:
  -----------
  [clang] Fix a crash when a variable is captured by a block nested inside a lambda (#93749)

`Eval->Value.get` returns a null pointer when the variable doesn't have
an initializer. Use `cast_if_present` instead of `cast`.

This fixes https://github.com/llvm/llvm-project/issues/93625.

rdar://128482541


  Commit: f38d84ce328c2acdce372680a41d8cf6c1bdf7c4
      https://github.com/llvm/llvm-project/commit/f38d84ce328c2acdce372680a41d8cf6c1bdf7c4
  Author: Florian Hahn <flo at fhahn.com>
  Date:   2024-05-30 (Thu, 30 May 2024)

  Changed paths:
    M llvm/lib/Transforms/Vectorize/VPlan.h
    M llvm/test/Transforms/LoopVectorize/AArch64/sve-tail-folding-forced.ll
    M llvm/test/Transforms/LoopVectorize/RISCV/riscv-vector-reverse.ll
    M llvm/test/Transforms/LoopVectorize/first-order-recurrence-sink-replicate-region.ll
    M llvm/test/Transforms/LoopVectorize/interleave-and-scalarize-only.ll
    M llvm/test/Transforms/LoopVectorize/vplan-dot-printing.ll
    M llvm/test/Transforms/LoopVectorize/vplan-printing-before-execute.ll
    M llvm/test/Transforms/LoopVectorize/vplan-printing.ll
    M llvm/test/Transforms/LoopVectorize/vplan-sink-scalars-and-merge.ll
    M llvm/unittests/Transforms/Vectorize/VPlanHCFGTest.cpp

  Log Message:
  -----------
  [VPlan] Use ir-bb prefix for VPIRBasicBlock.

Follow-up to adjust the names and tests after
https://github.com/llvm/llvm-project/pull/93398.


  Commit: e9954ec087d640809082f46d1c7e5ac1767b798d
      https://github.com/llvm/llvm-project/commit/e9954ec087d640809082f46d1c7e5ac1767b798d
  Author: Amir Ayupov <aaupov at fb.com>
  Date:   2024-05-30 (Thu, 30 May 2024)

  Changed paths:
    M bolt/include/bolt/Rewrite/RewriteInstance.h
    M bolt/lib/Rewrite/RewriteInstance.cpp
    M bolt/test/X86/register-fragments-bolt-symbols.s

  Log Message:
  -----------
  [BOLT] Detect .warm split functions as cold fragments (#93759)

CDSplit splits functions up to three ways: main fragment with no suffix,
and fragments with .cold and .warm suffixes.

Add .warm suffix to the regex used to recognize split fragments.

Test Plan: updated register-fragments-bolt-symbols.s


  Commit: 4bd0524dddc8151bd17b23f843a20ffa0ea352c7
      https://github.com/llvm/llvm-project/commit/4bd0524dddc8151bd17b23f843a20ffa0ea352c7
  Author: Fangrui Song <i at maskray.me>
  Date:   2024-05-30 (Thu, 30 May 2024)

  Changed paths:
    M bolt/include/bolt/Core/FunctionLayout.h
    M bolt/include/bolt/Rewrite/RewriteInstance.h
    M bolt/lib/Core/FunctionLayout.cpp
    M bolt/lib/Rewrite/RewriteInstance.cpp
    M bolt/test/X86/register-fragments-bolt-symbols.s
    M clang/cmake/caches/Fuchsia-stage2.cmake
    M clang/cmake/caches/Fuchsia.cmake
    M clang/cmake/caches/VectorEngine.cmake
    M clang/docs/ReleaseNotes.rst
    M clang/include/clang/Sema/Attr.h
    M clang/lib/AST/Decl.cpp
    M clang/test/Driver/debug-options.c
    M clang/test/SemaObjCXX/block-capture.mm
    M clang/utils/analyzer/entrypoint.py
    M compiler-rt/cmake/config-ix.cmake
    M compiler-rt/lib/sanitizer_common/symbolizer/scripts/build_symbolizer.sh
    M compiler-rt/lib/xray/tests/CMakeLists.txt
    M lld/ELF/LinkerScript.cpp
    M lldb/docs/resources/build.rst
    M lldb/source/Core/CMakeLists.txt
    M llvm/CMakeLists.txt
    M llvm/cmake/config-ix.cmake
    R llvm/cmake/modules/FindTerminfo.cmake
    M llvm/cmake/modules/LLVMConfig.cmake.in
    M llvm/docs/DirectXUsage.rst
    M llvm/docs/ReleaseNotes.rst
    M llvm/include/llvm/Config/config.h.cmake
    M llvm/include/llvm/ProfileData/InstrProfReader.h
    M llvm/include/llvm/ProfileData/MemProf.h
    M llvm/lib/ProfileData/InstrProfReader.cpp
    M llvm/lib/ProfileData/InstrProfWriter.cpp
    M llvm/lib/ProfileData/MemProf.cpp
    M llvm/lib/Support/CMakeLists.txt
    M llvm/lib/Support/Unix/Process.inc
    M llvm/lib/Transforms/Vectorize/VPlan.h
    M llvm/test/CodeGen/AMDGPU/preload-kernargs.ll
    M llvm/test/CodeGen/X86/apx/asm-constraint-2-jR.ll
    M llvm/test/Transforms/LoopVectorize/AArch64/sve-tail-folding-forced.ll
    M llvm/test/Transforms/LoopVectorize/RISCV/riscv-vector-reverse.ll
    M llvm/test/Transforms/LoopVectorize/first-order-recurrence-sink-replicate-region.ll
    M llvm/test/Transforms/LoopVectorize/interleave-and-scalarize-only.ll
    M llvm/test/Transforms/LoopVectorize/vplan-dot-printing.ll
    M llvm/test/Transforms/LoopVectorize/vplan-printing-before-execute.ll
    M llvm/test/Transforms/LoopVectorize/vplan-printing.ll
    M llvm/test/Transforms/LoopVectorize/vplan-sink-scalars-and-merge.ll
    M llvm/unittests/Transforms/Vectorize/VPlanHCFGTest.cpp
    M llvm/utils/gn/README.rst
    R llvm/utils/gn/build/libs/terminfo/BUILD.gn
    R llvm/utils/gn/build/libs/terminfo/enable.gni
    M llvm/utils/gn/secondary/llvm/include/llvm/Config/BUILD.gn
    M llvm/utils/gn/secondary/llvm/lib/Support/BUILD.gn
    M llvm/utils/gn/secondary/llvm/tools/llvm-config/BUILD.gn
    M utils/bazel/.bazelrc
    M utils/bazel/llvm-project-overlay/llvm/include/llvm/Config/config.h
    M utils/bazel/llvm_configs/config.h.cmake

  Log Message:
  -----------
  update comment

Created using spr 1.3.5-bogner


Compare: https://github.com/llvm/llvm-project/compare/6a05cd6b491a...4bd0524dddc8

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