[all-commits] [llvm/llvm-project] 655d62: [mlir][tablegen] Fix tablegen bug with `Complex` c...

Craig Topper via All-commits all-commits at lists.llvm.org
Tue Aug 20 16:33:36 PDT 2024


  Branch: refs/heads/users/bogner/sprmain.directx-register-a-few-dxil-passes-with-the-new-pm
  Home:   https://github.com/llvm/llvm-project
  Commit: 655d62c4b326f2606b1e89a4dff0212c1d9226ab
      https://github.com/llvm/llvm-project/commit/655d62c4b326f2606b1e89a4dff0212c1d9226ab
  Author: Alex Rice <alexrice999 at hotmail.co.uk>
  Date:   2024-08-20 (Tue, 20 Aug 2024)

  Changed paths:
    M mlir/include/mlir/IR/CommonTypeConstraints.td

  Log Message:
  -----------
  [mlir][tablegen] Fix tablegen bug with `Complex` class (#104974)

The `Complex` class in tablegen tries to store its element type, but due
to a name collision it actually ends up storing the `type` field of the
`ConfinedType` superclass, and so `elementType` is always set to
`AnyComplex`.

This renames the field so that it gets correctly set.


  Commit: 30318401ad64b11dcad891d8ba86b81715caa408
      https://github.com/llvm/llvm-project/commit/30318401ad64b11dcad891d8ba86b81715caa408
  Author: Mircea Trofin <mtrofin at google.com>
  Date:   2024-08-20 (Tue, 20 Aug 2024)

  Changed paths:
    M llvm/unittests/Analysis/CMakeLists.txt

  Log Message:
  -----------
  Fix post-104491 (#105191)


  Commit: c44202574ff9a8c0632aba30c2765b134557435f
      https://github.com/llvm/llvm-project/commit/c44202574ff9a8c0632aba30c2765b134557435f
  Author: Peiming Liu <peiming at google.com>
  Date:   2024-08-20 (Tue, 20 Aug 2024)

  Changed paths:
    M mlir/include/mlir/Dialect/SparseTensor/IR/SparseTensorOps.td
    M mlir/lib/Dialect/SparseTensor/IR/SparseTensorDialect.cpp
    M mlir/lib/Dialect/SparseTensor/Transforms/SparseTensorRewriting.cpp
    M mlir/lib/Dialect/SparseTensor/Transforms/Sparsification.cpp
    M mlir/lib/Dialect/SparseTensor/Transforms/Utils/CodegenEnv.h
    M mlir/lib/Dialect/SparseTensor/Transforms/Utils/LoopEmitter.cpp
    M mlir/lib/Dialect/SparseTensor/Transforms/Utils/LoopEmitter.h
    M mlir/test/Dialect/SparseTensor/sparse_kernels_to_iterator.mlir

  Log Message:
  -----------
  [mlir][sparse] support sparsification to coiterate operations. (#102546)


  Commit: b941ba1e126d44f94ff317c9a996143c3165774b
      https://github.com/llvm/llvm-project/commit/b941ba1e126d44f94ff317c9a996143c3165774b
  Author: Sumanth Gundapaneni <sumanth.gundapaneni at amd.com>
  Date:   2024-08-20 (Tue, 20 Aug 2024)

  Changed paths:
    M llvm/docs/LangRef.rst
    M llvm/lib/CodeGen/MachineVerifier.cpp
    M llvm/lib/IR/Verifier.cpp
    A llvm/test/Assembler/lround.ll
    M llvm/test/MachineVerifier/test_g_llround.mir
    M llvm/test/MachineVerifier/test_g_lround.mir

  Log Message:
  -----------
  llvm.lround: Update verifier to validate support of vector types. (#98950)

Both IRVerifier and Machine Verifier are updated


  Commit: 31e55d461693df035049e09cbeeb8886ca2cb6d3
      https://github.com/llvm/llvm-project/commit/31e55d461693df035049e09cbeeb8886ca2cb6d3
  Author: Dmitry Vasilyev <dvassiliev at accesssoftek.com>
  Date:   2024-08-20 (Tue, 20 Aug 2024)

  Changed paths:
    M lldb/test/API/lang/cpp/bitfields/TestCppBitfields.py

  Log Message:
  -----------
  [lldb] Disable the API test TestCppBitfields on Windows (#105037)

This test causes the assert in clang CodeGen and python crashes with the
error code 0x80000003. See #105019 for more details. Note the similar
test lldb/test/API/lang/c/bitfields/TestBitfields.py is already disabled
on Windows.


  Commit: f73050e722dd2e484358d03674eb186f3a2f4799
      https://github.com/llvm/llvm-project/commit/f73050e722dd2e484358d03674eb186f3a2f4799
  Author: Louis Dionne <ldionne.2 at gmail.com>
  Date:   2024-08-20 (Tue, 20 Aug 2024)

  Changed paths:
    M libcxx/include/__algorithm/partition.h
    M libcxx/include/__pstl/backends/default.h
    M libcxx/test/std/algorithms/alg.modifying.operations/alg.partitions/partition.pass.cpp
    M libcxx/test/std/algorithms/alg.nonmodifying/alg.contains/ranges.contains.pass.cpp
    M libcxx/test/std/algorithms/alg.nonmodifying/alg.ends_with/ranges.ends_with.pass.cpp
    M libcxx/test/std/containers/associative/from_range_associative_containers.h
    M libcxx/test/std/containers/container.adaptors/from_range_container_adaptors.h
    M libcxx/test/std/containers/sequences/from_range_sequence_containers.h
    M libcxx/test/std/containers/unord/from_range_unordered_containers.h
    M libcxx/test/std/iterators/iterator.primitives/range.iter.ops/range.iter.ops.distance/iterator_sentinel.pass.cpp
    M libcxx/test/std/iterators/iterator.primitives/range.iter.ops/range.iter.ops.distance/range.pass.cpp
    M libcxx/test/std/ranges/range.adaptors/range.counted/counted.pass.cpp
    M libcxx/test/std/ranges/range.adaptors/range.elements/iterator/increment.pass.cpp
    M libcxx/test/std/ranges/range.adaptors/range.split/begin.pass.cpp
    A libcxx/test/std/ranges/range.utility/range.subrange/begin_end.pass.cpp
    M libcxx/test/std/strings/basic.string/string.cons/from_range.pass.cpp
    M libcxx/test/std/utilities/format/format.range/format.range.formatter/format.functions.tests.h
    M libcxx/test/std/utilities/memory/specialized.algorithms/specialized.construct/construct_at.pass.cpp
    A libcxx/test/support/double_move_tracker.h
    M libcxx/test/support/test_iterators.h

  Log Message:
  -----------
  [libc++] Fix several double-moves in the code base (#104616)

This patch hardens the "test iterators" we use to test algorithms by
ensuring that they don't get double-moved. As a result of this
hardening, the tests started reporting multiple failures where we would
double-move iterators, which are being fixed in this patch.

In particular:
- Fixed a double-move in pstl.partition
- Add coverage for begin()/end() in subrange tests
- Fix tests for ranges::ends_with and ranges::contains, which were
  incorrectly calling begin() twice on the same subrange containing
  non-copyable input iterators.

Fixes #100709


  Commit: fd4f9520a6a08c3dcf15622e3b887d8f3624fc42
      https://github.com/llvm/llvm-project/commit/fd4f9520a6a08c3dcf15622e3b887d8f3624fc42
  Author: Ahmed Bougacha <ahmed at bougacha.org>
  Date:   2024-08-20 (Tue, 20 Aug 2024)

  Changed paths:
    M llvm/include/llvm/BinaryFormat/MachO.h
    M llvm/lib/BinaryFormat/MachO.cpp
    M llvm/lib/MC/MachObjectWriter.cpp
    M llvm/lib/Object/MachOObjectFile.cpp
    M llvm/test/MC/AArch64/arm64e-subtype.s
    A llvm/test/tools/llvm-objdump/AArch64/Inputs/fat.macho-arm64e-kernel-ptrauth-abi
    A llvm/test/tools/llvm-objdump/AArch64/Inputs/fat.macho-arm64e-ptrauth-abi
    A llvm/test/tools/llvm-objdump/AArch64/macho-universal-arm64e-kernel-ptrauth-abi.test
    A llvm/test/tools/llvm-objdump/AArch64/macho-universal-arm64e-ptrauth-abi.test
    A llvm/test/tools/llvm-objdump/macho-ptrauth-cpusubtype.test
    M llvm/tools/dsymutil/MachOUtils.cpp
    M llvm/tools/llvm-objdump/MachODump.cpp
    M llvm/unittests/BinaryFormat/MachOTest.cpp

  Log Message:
  -----------
  [AArch64][MachO] Add ptrauth ABI version to arm64e cpusubtype. (#104650)

In a mach_header, the cpusubtype is a 32-bit field, but it's split in 2
subfields:
- the low 24 bits containing the cpu subtype proper, (e.g.,
CPU_SUBTYPE_ARM64E 2)
- the high 8 bits containing a capability field used for additional
feature flags.

Notably, it's only the subtype subfield that participates in fat file
slice discrimination: the caps are ignored.

arm64e uses the caps subfield to encode a ptrauth ABI version:
- 0x80 (CPU_SUBTYPE_PTRAUTH_ABI) denotes a versioned binary
- 0x40 denotes a kernel-ABI binary
- 0x00-0x0F holds the ptrauth ABI version

This teaches the basic obj tools to decode that (or ignore it when
unneeded).

It also teaches the MachO writer to default to emitting versioned
binaries, but with a version of 0 (and without the kernel ABI flag).

Modern arm64e requires versioned binaries: a binary with 0x00 caps in
cpusubtype is now rejected by the linker and everything after. We can
live without the sophistication of specifying the version and kernel ABI
for now.

Co-authored-by: Francis Visoiu Mistrih <francisvm at apple.com>


  Commit: 552d26e275b094f7ceb96ede9cc478b23e2c12cc
      https://github.com/llvm/llvm-project/commit/552d26e275b094f7ceb96ede9cc478b23e2c12cc
  Author: Finlay <finlay.marno at codeplay.com>
  Date:   2024-08-20 (Tue, 20 Aug 2024)

  Changed paths:
    M mlir/include/mlir/Dialect/GPU/IR/GPUOps.td
    M mlir/lib/Conversion/GPUToLLVMSPV/GPUToLLVMSPV.cpp
    M mlir/test/Conversion/GPUToLLVMSPV/gpu-to-llvm-spv.mlir
    M mlir/test/Dialect/GPU/invalid.mlir

  Log Message:
  -----------
  [mlir][gpu] Add extra value types for gpu::ShuffleOp (#104605)

Expand the accepted types for gpu.shuffle to any integer, float or 1d vector of integers or floats.
Also updated the gpu-to-llvm-spv pass to support those types.


  Commit: 349d76d490fe0e32995f7381c91c17f38541f691
      https://github.com/llvm/llvm-project/commit/349d76d490fe0e32995f7381c91c17f38541f691
  Author: Connie Zhu <60797237+connieyzhu at users.noreply.github.com>
  Date:   2024-08-20 (Tue, 20 Aug 2024)

  Changed paths:
    M llvm/utils/lit/tests/Inputs/shtest-cat/cat-error-0.txt
    M llvm/utils/lit/tests/Inputs/shtest-cat/cat-error-1.txt
    M llvm/utils/lit/tests/Inputs/shtest-cat/cat.txt

  Log Message:
  -----------
  [llvm-lit][test] Updated built-in cat command tests (#104473)

This patch makes changes to improve syntax in tests and to add more
strict checks on cat output. This is a prequisite for
https://github.com/llvm/llvm-project/pull/101530.


  Commit: 6558e04f02858bff61c01c9ec0900849fc8532f5
      https://github.com/llvm/llvm-project/commit/6558e04f02858bff61c01c9ec0900849fc8532f5
  Author: Connie Zhu <60797237+connieyzhu at users.noreply.github.com>
  Date:   2024-08-20 (Tue, 20 Aug 2024)

  Changed paths:
    M lldb/test/Shell/Driver/TestUseColor.test

  Log Message:
  -----------
  [lldb][test] Change unsupported cat -e to cat -v to work with lit internal shell (#104878)

This patch changes the test that uses the `cat -e` option to `cat -v` so
that the test can be run using lit's internal shell. For `cat`, the `-v`
option prints non-printing characters in ^ and M- notation, while the
`-e` option adds `$` to the end of lines in addition to printing
non-printing characters in ^ and M- notation. This is an alternative
patch to https://github.com/llvm/llvm-project/pull/102061, opting to
rewrite the test that uses `cat -e` instead of extending support to the
`-e` option.

Fixes https://github.com/llvm/llvm-project/issues/102377


  Commit: ce132a58b8d5fcd21c50204171f5c30d939df516
      https://github.com/llvm/llvm-project/commit/ce132a58b8d5fcd21c50204171f5c30d939df516
  Author: Matt Arsenault <Matthew.Arsenault at amd.com>
  Date:   2024-08-20 (Tue, 20 Aug 2024)

  Changed paths:
    M clang/lib/CodeGen/CGBuiltin.cpp
    M clang/test/CodeGenOpenCL/builtins-fp-atomics-gfx12.cl
    M clang/test/CodeGenOpenCL/builtins-fp-atomics-gfx90a.cl
    M clang/test/CodeGenOpenCL/builtins-fp-atomics-gfx940.cl

  Log Message:
  -----------
  clang/AMDGPU: Emit atomicrmw from {global|flat}_atomic_fadd_v2f16 builtins (#96873)


  Commit: 10cc4a5fab3ad8da7a64ba784007b99a039134c1
      https://github.com/llvm/llvm-project/commit/10cc4a5fab3ad8da7a64ba784007b99a039134c1
  Author: Peter Klausler <35819229+klausler at users.noreply.github.com>
  Date:   2024-08-20 (Tue, 20 Aug 2024)

  Changed paths:
    M flang/lib/Semantics/expression.cpp
    A flang/test/Semantics/structconst10.f90

  Log Message:
  -----------
  [flang] More support for anonymous parent components in struct constr… (#102642)

…uctors

A non-conforming extension to Fortran present in a couple other
compilers is allowing a anonymous component in a structure constructor
to initialize a parent (or greater ancestor) component. This was working
in this compiler only for direct parents, and only when the type was not
use-associated.

Fixes https://github.com/llvm/llvm-project/issues/102557.


  Commit: 90d753ab75afdaab998cad20620b8197610e6dbd
      https://github.com/llvm/llvm-project/commit/90d753ab75afdaab998cad20620b8197610e6dbd
  Author: Peter Klausler <35819229+klausler at users.noreply.github.com>
  Date:   2024-08-20 (Tue, 20 Aug 2024)

  Changed paths:
    M flang/lib/Semantics/resolve-names.cpp
    A flang/test/Semantics/implicit15.f90

  Log Message:
  -----------
  [flang] Fix inheritance of IMPLICIT typing rules (#102692)

Interfaces don't inherit the IMPLICIT typing rules of their enclosing
scope, and separate MODULE PROCEDUREs inherit the IMPLICIT typing rules
of submodule in which they are defined, not the rules from their
interface.

Fixes https://github.com/llvm/llvm-project/issues/102558.


  Commit: f0590177b28a3940b9afdf2f65eae054eeb49eed
      https://github.com/llvm/llvm-project/commit/f0590177b28a3940b9afdf2f65eae054eeb49eed
  Author: Peter Klausler <35819229+klausler at users.noreply.github.com>
  Date:   2024-08-20 (Tue, 20 Aug 2024)

  Changed paths:
    M flang/lib/Semantics/definable.cpp
    M flang/test/Semantics/undef-result01.f90

  Log Message:
  -----------
  [flang] Silence an inappropriate warning (#104685)

A bare ALLOCATE statement with no SOURCE= rightly earns a warning about
an undefined function result, if that result is an allocatable that
appears in the ALLOCATE. But in the case of a pointer, where the warning
should care more about the pointer's association status than the value
of its target, a bare ALLOCATE should suffice to silence the warning.


  Commit: 143be4eafc69ed9a0923f44cdf99710cbaa70132
      https://github.com/llvm/llvm-project/commit/143be4eafc69ed9a0923f44cdf99710cbaa70132
  Author: Peter Klausler <35819229+klausler at users.noreply.github.com>
  Date:   2024-08-20 (Tue, 20 Aug 2024)

  Changed paths:
    M flang/lib/Semantics/tools.cpp
    M flang/test/Semantics/declarations05.f90

  Log Message:
  -----------
  [flang] Silence spurious error (#104821)

Don't complain about a local object with an impure final procedure in a
pure subprogram when the local object is a named constant.

Fixes https://github.com/llvm/llvm-project/issues/104796.


  Commit: 1e1cf258c718bdce8c50c2b1923f1a522163fbc9
      https://github.com/llvm/llvm-project/commit/1e1cf258c718bdce8c50c2b1923f1a522163fbc9
  Author: Peter Klausler <35819229+klausler at users.noreply.github.com>
  Date:   2024-08-20 (Tue, 20 Aug 2024)

  Changed paths:
    M flang/include/flang/Evaluate/real.h
    M flang/lib/Evaluate/fold-real.cpp
    M flang/test/Evaluate/fold-nearest.f90

  Log Message:
  -----------
  [flang] Fix IEEE_NEAREST_AFTER folding edge cases (#104846)

Conversions of infinities from other kinds to real(10) were incorrect,
and comparisons of real(2) vs real(3) are dicey as conversions in one
direction can overflow and conversions in the other can lose precision.
Use real(16) as the common type for comparisons in IEEE_NEAREST_AFTER.


  Commit: 8266d47cd18eaf8755fba2a496c799c931f3bf6c
      https://github.com/llvm/llvm-project/commit/8266d47cd18eaf8755fba2a496c799c931f3bf6c
  Author: Johannes Doerfert <johannes at jdoerfert.de>
  Date:   2024-08-20 (Tue, 20 Aug 2024)

  Changed paths:
    M llvm/lib/Transforms/IPO/AttributorAttributes.cpp
    M llvm/test/Transforms/Attributor/call-simplify-pointer-info.ll
    M llvm/test/Transforms/Attributor/multiple-offsets-pointer-info.ll
    M llvm/test/Transforms/Attributor/value-simplify-pointer-info.ll

  Log Message:
  -----------
  [Attributor] Improve AAUnderlyingObjects (#104835)

- Allocas and GlobalValues cannot be simplified, so we should not try.
- If we never used any assumed state, the AAUnderlyingObjects doesn't
require an additional update.
- If we have seen an object (or it's underlying object) before, we do
not need to inspect it anymore.

The original logic for "SeenObjects" was flawed and caused us to add
intermediate values to the underlying object list if a PHI or select
instruction referenced the same underlying object twice. The test
changes are all instances of this situation and we now correctly derive
`memory(none)` for the functions that only access stack memory.

---------

Co-authored-by: Shilei Tian <i at tianshilei.me>


  Commit: c932a0eb2ee222380a7fe237b7efb872c39e7d6b
      https://github.com/llvm/llvm-project/commit/c932a0eb2ee222380a7fe237b7efb872c39e7d6b
  Author: Fangrui Song <i at maskray.me>
  Date:   2024-08-20 (Tue, 20 Aug 2024)

  Changed paths:
    M llvm/lib/Target/DirectX/DXIL.td

  Log Message:
  -----------
  [Driver,DXIL] Fix build


  Commit: 0a22655f31b146da68f1276c072b30be8392d1ef
      https://github.com/llvm/llvm-project/commit/0a22655f31b146da68f1276c072b30be8392d1ef
  Author: Matt Arsenault <Matthew.Arsenault at amd.com>
  Date:   2024-08-20 (Tue, 20 Aug 2024)

  Changed paths:
    M clang/lib/CodeGen/CGBuiltin.cpp
    M clang/test/CodeGenOpenCL/builtins-fp-atomics-gfx90a.cl
    M clang/test/CodeGenOpenCL/builtins-fp-atomics-gfx940.cl

  Log Message:
  -----------
  clang/AMDGPU: Emit atomicrmw from flat_atomic_{f32|f64} builtins (#96874)


  Commit: 5822cc271be4cb9dcf454922ea13aac11d88be8a
      https://github.com/llvm/llvm-project/commit/5822cc271be4cb9dcf454922ea13aac11d88be8a
  Author: Matt Arsenault <Matthew.Arsenault at amd.com>
  Date:   2024-08-20 (Tue, 20 Aug 2024)

  Changed paths:
    M clang/lib/CodeGen/CGBuiltin.cpp
    M clang/test/CodeGenOpenCL/builtins-fp-atomics-gfx12.cl
    M clang/test/CodeGenOpenCL/builtins-fp-atomics-gfx940.cl

  Log Message:
  -----------
  clang/AMDGPU: Emit atomicrmw for global/flat fadd v2bf16 builtins (#96875)


  Commit: 93e0f312c2a8709e7d4747570ddd40243314ea6b
      https://github.com/llvm/llvm-project/commit/93e0f312c2a8709e7d4747570ddd40243314ea6b
  Author: Matt Arsenault <Matthew.Arsenault at amd.com>
  Date:   2024-08-20 (Tue, 20 Aug 2024)

  Changed paths:
    M clang/lib/CodeGen/CGBuiltin.cpp
    M clang/test/CodeGenOpenCL/builtins-fp-atomics-gfx90a.cl

  Log Message:
  -----------
  clang/AMDGPU: Emit atomicrmw for flat/global atomic min/max f64 builtins (#96876)


  Commit: 6e8c97035ca32c6b163f8735a340e15e011ec0c8
      https://github.com/llvm/llvm-project/commit/6e8c97035ca32c6b163f8735a340e15e011ec0c8
  Author: vporpo <vporpodas at google.com>
  Date:   2024-08-20 (Tue, 20 Aug 2024)

  Changed paths:
    M llvm/include/llvm/SandboxIR/SandboxIR.h
    M llvm/include/llvm/SandboxIR/SandboxIRValues.def
    M llvm/include/llvm/SandboxIR/Tracker.h
    M llvm/lib/SandboxIR/SandboxIR.cpp
    M llvm/lib/SandboxIR/Tracker.cpp
    M llvm/unittests/SandboxIR/SandboxIRTest.cpp
    M llvm/unittests/SandboxIR/TrackerTest.cpp

  Log Message:
  -----------
  [SandboxIR] Implement CatchSwitchInst (#104652)

This patch implements sandboxir::CatchSwitchInst mirroring
llvm::CatchSwitchInst.


  Commit: afeef4dbc3a9e523c82022ccd30bf9875ded12c8
      https://github.com/llvm/llvm-project/commit/afeef4dbc3a9e523c82022ccd30bf9875ded12c8
  Author: Matt Arsenault <Matthew.Arsenault at amd.com>
  Date:   2024-08-20 (Tue, 20 Aug 2024)

  Changed paths:
    M llvm/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp
    M llvm/lib/Target/AMDGPU/AMDGPUTargetMachine.h

  Log Message:
  -----------
  AMDGPU/NewPM: Fill out passes in addCodeGenPrepare (#102867)

AMDGPUAnnotateKernelFeatures hasn't been ported yet, but it
should be soon removable.


  Commit: 33e18b2b433a6e8331e09cc60965e4c943b66c05
      https://github.com/llvm/llvm-project/commit/33e18b2b433a6e8331e09cc60965e4c943b66c05
  Author: Matt Arsenault <Matthew.Arsenault at amd.com>
  Date:   2024-08-20 (Tue, 20 Aug 2024)

  Changed paths:
    M llvm/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp
    M llvm/lib/Target/AMDGPU/AMDGPUTargetMachine.h

  Log Message:
  -----------
  AMDGPU/NewPM: Start filling out addIRPasses (#102884)

This is not complete, but gets AtomicExpand running. I was able
to get further than I expected; we're quite close to having all
the IR codegen passes ported.


  Commit: 26ae31662b4ac3fe5569733316ac7de9d19d5fd5
      https://github.com/llvm/llvm-project/commit/26ae31662b4ac3fe5569733316ac7de9d19d5fd5
  Author: yingopq <115543042+yingopq at users.noreply.github.com>
  Date:   2024-08-20 (Tue, 20 Aug 2024)

  Changed paths:
    M clang/include/clang/Basic/CodeGenOptions.def
    M clang/include/clang/Driver/Options.td
    M clang/lib/Driver/ToolChains/Clang.cpp
    A clang/test/Driver/mips-msa.c

  Log Message:
  -----------
  [clang] Support -Wa, options -mmsa and -mno-msa (#99615)

Co-authored-by: Fangrui Song <i at maskray.me>


  Commit: 66ab4b80a4103a67a3c79b8c3b0974e301903f05
      https://github.com/llvm/llvm-project/commit/66ab4b80a4103a67a3c79b8c3b0974e301903f05
  Author: Kelvin Li <kkwli at users.noreply.github.com>
  Date:   2024-08-20 (Tue, 20 Aug 2024)

  Changed paths:
    M flang/unittests/Runtime/Time.cpp

  Log Message:
  -----------
  [flang] Re-enable date_and_time intrinsic test (NFC) (#104967)


  Commit: d03dcf6e8c360e2b46bed16b329d186c68fbcc6a
      https://github.com/llvm/llvm-project/commit/d03dcf6e8c360e2b46bed16b329d186c68fbcc6a
  Author: ZERICO2005 <71151164+ZERICO2005 at users.noreply.github.com>
  Date:   2024-08-20 (Tue, 20 Aug 2024)

  Changed paths:
    M clang/docs/LanguageExtensions.rst

  Log Message:
  -----------
  [NFC] Fixed two typos: "__builin_" --> "__builtin_" (#98782)

Fixed two typos:
1. `__builin_va_list` --> `__builtin_va_list`
2. `__builin_suspend` --> `__builtin_suspend`


  Commit: 660de533a23485eec4c5f8d3d88f9dd53497bcf8
      https://github.com/llvm/llvm-project/commit/660de533a23485eec4c5f8d3d88f9dd53497bcf8
  Author: Michael Park <mcypark at gmail.com>
  Date:   2024-08-20 (Tue, 20 Aug 2024)

  Changed paths:
    M clang/docs/InternalsManual.rst

  Log Message:
  -----------
  [NFC] Fix a typo in InternalsManual: ActOnCXX -> ActOnXXX (#105207)

This part of the manual describes uses of `ActOnXXX` and `BuildXXX`.


  Commit: 1233df731761060a655814fb975dc741b2ab5393
      https://github.com/llvm/llvm-project/commit/1233df731761060a655814fb975dc741b2ab5393
  Author: Peter Klausler <35819229+klausler at users.noreply.github.com>
  Date:   2024-08-20 (Tue, 20 Aug 2024)

  Changed paths:
    M flang/test/Evaluate/fold-nearest.f90

  Log Message:
  -----------
  [flang] Disable failing test (#105327)

flang/test/Evaluate/fold-nearest.f90 is failing oddly on ppc64le;
disable it for now while I sort things out.


  Commit: 2599d695128381e6932b43f0e95649c533308d6d
      https://github.com/llvm/llvm-project/commit/2599d695128381e6932b43f0e95649c533308d6d
  Author: Craig Topper <craig.topper at sifive.com>
  Date:   2024-08-20 (Tue, 20 Aug 2024)

  Changed paths:
    M llvm/lib/Target/RISCV/GISel/RISCVLegalizerInfo.cpp
    M llvm/test/CodeGen/RISCV/GlobalISel/alu-roundtrip.ll
    M llvm/test/CodeGen/RISCV/GlobalISel/instruction-select/alu_m-rv64.mir
    M llvm/test/CodeGen/RISCV/GlobalISel/legalizer/legalize-div-rv64.mir
    M llvm/test/CodeGen/RISCV/GlobalISel/legalizer/legalize-rem-rv64.mir

  Log Message:
  -----------
  [RISCV][GISel] Remove s32 support on RV64 for DIV, and REM. (#102519)

Based on experience with SelectionDAG and experimental-rv64-legal-i32, I
don't believe making s32 a legal type is viable without introducing an
invariant that s32 values are always sign extended like Mips64 does.
Mips64 does this with a separate 32-bit register class.

`experimental-rv64-legal-i32` was removed in ##102509.

This patch is part of a series to remove s32 support so we can remove
the isel patterns that SelectionDAG is no longer using. To restore code
quality, we will need to add custom W nodes like SelectionDAG.


  Commit: 295fe0bd438209831071ffbacf003c4941f31b90
      https://github.com/llvm/llvm-project/commit/295fe0bd438209831071ffbacf003c4941f31b90
  Author: Justin Stitt <justinstitt at google.com>
  Date:   2024-08-20 (Tue, 20 Aug 2024)

  Changed paths:
    M clang/docs/ReleaseNotes.rst
    M clang/docs/UndefinedBehaviorSanitizer.rst
    M clang/include/clang/AST/Expr.h
    M clang/include/clang/AST/Stmt.h
    M clang/include/clang/Basic/LangOptions.h
    M clang/include/clang/Driver/Options.td
    M clang/include/clang/Driver/SanitizerArgs.h
    M clang/lib/AST/Expr.cpp
    M clang/lib/CodeGen/CGExprScalar.cpp
    M clang/lib/Driver/SanitizerArgs.cpp
    M clang/lib/Driver/ToolChains/Clang.cpp
    M clang/lib/Frontend/CompilerInvocation.cpp
    M clang/lib/Serialization/ASTReaderStmt.cpp
    M clang/lib/Serialization/ASTWriterStmt.cpp
    A clang/test/CodeGen/ignore-overflow-pattern-false-pos.c
    A clang/test/CodeGen/ignore-overflow-pattern.c

  Log Message:
  -----------
  [Clang] Re-land Overflow Pattern Exclusions (#104889)

Introduce "-fsanitize-undefined-ignore-overflow-pattern=" which can
be used to disable sanitizer instrumentation for common overflow-dependent
code patterns.

For a wide selection of projects, proper overflow sanitization could
help catch bugs and solve security vulnerabilities. Unfortunately, in
some cases the integer overflow sanitizers are too noisy for their users
and are often left disabled. Providing users with a method to disable
sanitizer instrumentation of common patterns could mean more projects
actually utilize the sanitizers in the first place.

One such project that has opted to not use integer overflow (or
truncation) sanitizers is the Linux Kernel. There has been some
discussion[1] recently concerning mitigation strategies for unexpected
arithmetic overflow. This discussion is still ongoing and a succinct
article[2] accurately sums up the discussion. In summary, many Kernel
developers do not want to introduce more arithmetic wrappers when
most developers understand the code patterns as they are.

Patterns like:

  if (base + offset < base) { ... }

or

  while (i--) { ... }

or

  #define SOME -1UL

are extremely common in a code base like the Linux Kernel. It is
perhaps too much to ask of kernel developers to use arithmetic wrappers
in these cases. For example:

  while (wrapping_post_dec(i)) { ... }

which wraps some builtin would not fly. This would incur too many
changes to existing code; the code churn would be too much, at least too
much to justify turning on overflow sanitizers.

Currently, this commit tackles three pervasive idioms:

1. "if (a + b < a)" or some logically-equivalent re-ordering like "if (a > b + a)"
2. "while (i--)" (for unsigned) a post-decrement always overflows here
3. "-1UL, -2UL, etc" negation of unsigned constants will always overflow

The patterns that are excluded can be chosen from the following list:

- add-overflow-test
- post-decr-while
- negated-unsigned-const

These can be enabled with a comma-separated list:

  -fsanitize-undefined-ignore-overflow-pattern=add-overflow-test,negated-unsigned-const

"all" or "none" may also be used to specify that all patterns should be
excluded or that none should be.

[1] https://lore.kernel.org/all/202404291502.612E0A10@keescook/
[2] https://lwn.net/Articles/979747/

CCs: @efriedma-quic @kees @jyknight @fmayer @vitalybuka
Signed-off-by: Justin Stitt <justinstitt at google.com>
Co-authored-by: Bill Wendling <morbo at google.com>


  Commit: e96146cd46b29e0d100a4566358da8fb38bea43e
      https://github.com/llvm/llvm-project/commit/e96146cd46b29e0d100a4566358da8fb38bea43e
  Author: Joseph Huber <huberjn at outlook.com>
  Date:   2024-08-20 (Tue, 20 Aug 2024)

  Changed paths:
    M offload/test/api/omp_device_alloc.c

  Log Message:
  -----------
  [OpenMP] Temporarily disable test to keep bots green

Summary:
This test mysteriously fails on the bots but not locally, disable until
I can figure out why.


  Commit: dd90c72b05822927bf62724759f73c491166248c
      https://github.com/llvm/llvm-project/commit/dd90c72b05822927bf62724759f73c491166248c
  Author: Matt Arsenault <Matthew.Arsenault at amd.com>
  Date:   2024-08-21 (Wed, 21 Aug 2024)

  Changed paths:
    M llvm/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp

  Log Message:
  -----------
  AMDGPU: Temporarily stop adding AtomicExpand to new PM passes

This breaks using -passes=atomic-expand (but only sometimes?).
Somehow an AtomicExpand pass ends up running without a TargetMachine,
despite always being constructed with one.


  Commit: 0c489863e77575287caa57f1194c78ac3c30035b
      https://github.com/llvm/llvm-project/commit/0c489863e77575287caa57f1194c78ac3c30035b
  Author: Peter Klausler <35819229+klausler at users.noreply.github.com>
  Date:   2024-08-20 (Tue, 20 Aug 2024)

  Changed paths:
    M flang/test/Evaluate/fold-nearest.f90

  Log Message:
  -----------
  [flang] Disable part of failing test (temporary) (#105350)

A new section of a test is failing on aarch64 and ppc64le; disable it
while I sort things out.


  Commit: 8f3050684ef22aa8403c3820e89ebef915136bf7
      https://github.com/llvm/llvm-project/commit/8f3050684ef22aa8403c3820e89ebef915136bf7
  Author: Maksim Panchenko <maks at fb.com>
  Date:   2024-08-20 (Tue, 20 Aug 2024)

  Changed paths:
    M bolt/lib/Core/BinaryFunction.cpp

  Log Message:
  -----------
  [BOLT] Reduce CFI warning verbosity (#105336)

CFI programs may have more saves than restores and this is completely
benign from BOLT's perspective. Reduce the verbosity and print the
warning only under `-v=1` and above.


  Commit: 91b423d955ff1da6cfbe82436ffee280fa25cd02
      https://github.com/llvm/llvm-project/commit/91b423d955ff1da6cfbe82436ffee280fa25cd02
  Author: Philip Reames <preames at rivosinc.com>
  Date:   2024-08-20 (Tue, 20 Aug 2024)

  Changed paths:
    M llvm/include/llvm/CodeGen/ISDOpcodes.h
    M llvm/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp
    M llvm/lib/CodeGen/SelectionDAG/MatchContext.h
    M llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-int.ll

  Log Message:
  -----------
  [DAG][RISCV] Use vp.<binop> when widening illegal types for binops which can trap (#105214)

This allows the use a single wider operation with a restricted EVL
instead of having to split and cover via decreasing powers-of-two sizes.

On RISCV, this avoids the need for a bunch of vslidedown and vslideup
instructions to extract subvectors, and VL toggles to switch between the
various widths.

Note there is a potential downside of using vp nodes; we loose any
generic DAG combines which might have applied to the split form.


  Commit: 2353f484a51b9aab992402400010bbb450fea1b2
      https://github.com/llvm/llvm-project/commit/2353f484a51b9aab992402400010bbb450fea1b2
  Author: Michael Jones <michaelrj at google.com>
  Date:   2024-08-20 (Tue, 20 Aug 2024)

  Changed paths:
    M libc/startup/linux/CMakeLists.txt

  Log Message:
  -----------
  [libc] Include startup code when installing all (#105203)

Previously the libc startup code was marked `EXCLUDE_FROM_ALL` due to
build issues. This patch removes that as no longer necessary.


  Commit: aeeb74f94f51b515392f5503054dfd98b0af775b
      https://github.com/llvm/llvm-project/commit/aeeb74f94f51b515392f5503054dfd98b0af775b
  Author: Martin Storsjö <martin at martin.st>
  Date:   2024-08-21 (Wed, 21 Aug 2024)

  Changed paths:
    M llvm/cmake/platforms/WinMsvc.cmake

  Log Message:
  -----------
  [cmake] Set up llvm-ml as ASM_MASM tool in WinMsvc.cmake (#104903)

Nowadays, an ASM_MASM tool is required for building the BLAKE3 assembly
in llvm/lib/Support - the llvm-ml tool can do this.


  Commit: a3c66c8f35df9d231761385e2986c54e824d39fa
      https://github.com/llvm/llvm-project/commit/a3c66c8f35df9d231761385e2986c54e824d39fa
  Author: Michael Jones <michaelrj at google.com>
  Date:   2024-08-20 (Tue, 20 Aug 2024)

  Changed paths:
    M libc/newhdrgen/yaml_to_classes.py

  Log Message:
  -----------
  [libc] move newheadergen back to safe_load (#105374)

In #100024 we moved from safe_load to load for reading the yaml in
newheadergen due to dependency issues. Those should be resolved by now
so this should be a simple safety improvement.


  Commit: 389f339c11179fe047e7f564657c86247933e445
      https://github.com/llvm/llvm-project/commit/389f339c11179fe047e7f564657c86247933e445
  Author: Rahul Joshi <rjoshi at nvidia.com>
  Date:   2024-08-20 (Tue, 20 Aug 2024)

  Changed paths:
    M llvm/benchmarks/CMakeLists.txt
    A llvm/benchmarks/GetIntrinsicForClangBuiltin.cpp
    M llvm/include/llvm/IR/Intrinsics.h
    M llvm/include/llvm/TableGen/StringToOffsetTable.h
    M llvm/unittests/IR/IntrinsicsTest.cpp
    M llvm/utils/TableGen/IntrinsicEmitter.cpp

  Log Message:
  -----------
  [TableGen] Rework `EmitIntrinsicToBuiltinMap` (#104681)

Rework `IntrinsicEmitter::EmitIntrinsicToBuiltinMap` for improved
    peformance as well as refactor the code.

    Performance:
    - Current generated code does a linear search on the TargetPrefix,
      followed by a binary search on the builtin names for that
      target's builtins.
    - Improve the performance of this code in 2 ways:
      (a) Use binary search on the target prefix to lookup the builtin
          table for the target.
      (b) Improve the (common) case of when all builtins for a target
          share a common prefix.  Check this common prefix first, and
then do the binary search in the builtin table using the builtin
          name with the common prefix removed. This should help
          both data size (by creating a smaller static string table) and
          runtime (by reducing the cost of binary search on smaller
          strings).

    Refactor:
    - Use range based for loops for iterating over maps.
- Use formatv() and C++ raw string literals to simplify the emission
code.
    - Change the generated `getIntrinsicForClangBuiltin` and 
      `getIntrinsicForMSBuiltin`  to take a `StringRef` instead of 
      `const char *` for the prefix.


  Commit: 5e6a1987a5d4574d3c3811f878ddbbbf7c35fa01
      https://github.com/llvm/llvm-project/commit/5e6a1987a5d4574d3c3811f878ddbbbf7c35fa01
  Author: Craig Topper <craig.topper at sifive.com>
  Date:   2024-08-20 (Tue, 20 Aug 2024)

  Changed paths:
    M llvm/lib/Target/RISCV/GISel/RISCVLegalizerInfo.cpp
    M llvm/test/CodeGen/RISCV/GlobalISel/iabs.ll
    M llvm/test/CodeGen/RISCV/GlobalISel/legalizer/legalize-abs-rv64.mir

  Log Message:
  -----------
  [RISCV][GISel] Remove s32 support for G_ABS on RV64.


  Commit: 019e1a3a4285ae34c215d4b7526df041e0aeb250
      https://github.com/llvm/llvm-project/commit/019e1a3a4285ae34c215d4b7526df041e0aeb250
  Author: Benjamin Kramer <benny.kra at googlemail.com>
  Date:   2024-08-20 (Tue, 20 Aug 2024)

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

  Log Message:
  -----------
  [bazel] Add missing dependencies for c8a678b1e4863df2845b1305849534047f10caf1


  Commit: c9a4c51bb0018778bb78871e555b06613530f155
      https://github.com/llvm/llvm-project/commit/c9a4c51bb0018778bb78871e555b06613530f155
  Author: Peter Klausler <35819229+klausler at users.noreply.github.com>
  Date:   2024-08-20 (Tue, 20 Aug 2024)

  Changed paths:
    M flang/test/Evaluate/fold-nearest.f90

  Log Message:
  -----------
  [flang] Fix test on ppc64le & aarch64 (#105439)

Don't try to fold x87 extended precision operations in a test unless
it's targeting x86-64.


  Commit: 1a2a18fdc00dc9fc8955107d16b48a476320e542
      https://github.com/llvm/llvm-project/commit/1a2a18fdc00dc9fc8955107d16b48a476320e542
  Author: Justin Bogner <mail at justinbogner.com>
  Date:   2024-08-20 (Tue, 20 Aug 2024)

  Changed paths:
    M llvm/test/Analysis/DXILResource/buffer-frombinding.ll

  Log Message:
  -----------
  [DXIL][Analysis] Update test to match comment. NFC (#105409)

The mismatch between the comment on this test and the test itself was
pointed out in
https://github.com/llvm/llvm-project/pull/100699#discussion_r1715835841,
but apparently I failed to actually commit the fix.


  Commit: 26b79f87079091ecd805f6dfb624df7ba6d702d1
      https://github.com/llvm/llvm-project/commit/26b79f87079091ecd805f6dfb624df7ba6d702d1
  Author: Noah Goldstein <goldstein.w.n at gmail.com>
  Date:   2024-08-20 (Tue, 20 Aug 2024)

  Changed paths:
    A llvm/test/Transforms/FunctionAttrs/cold.ll

  Log Message:
  -----------
  [FunctionAttrs] Add tests for deducing attr `cold` on functions; NFC


  Commit: b7eac8c6fea1ba3930d08011a0e5e3a262bfaece
      https://github.com/llvm/llvm-project/commit/b7eac8c6fea1ba3930d08011a0e5e3a262bfaece
  Author: Noah Goldstein <goldstein.w.n at gmail.com>
  Date:   2024-08-20 (Tue, 20 Aug 2024)

  Changed paths:
    M llvm/lib/Transforms/IPO/FunctionAttrs.cpp
    M llvm/test/Transforms/FunctionAttrs/cold.ll

  Log Message:
  -----------
  [FunctionAttrs] deduce attr `cold` on functions if all CG paths call a `cold` function

Closes #101298


  Commit: 8d712b4e3f14fe0102a5065cbd5b758dc997b529
      https://github.com/llvm/llvm-project/commit/8d712b4e3f14fe0102a5065cbd5b758dc997b529
  Author: Michael Buch <michaelbuch12 at gmail.com>
  Date:   2024-08-20 (Tue, 20 Aug 2024)

  Changed paths:
    M lldb/test/Shell/Expr/TestAnonNamespaceParamFunc.cpp

  Log Message:
  -----------
  [lldb][test] XFAIL TestAnonNamespaceParamFunc.cpp on Windows

This recently added test is failing on Windows with:
```
c:\users\tcwg\llvm-worker\lldb-aarch64-windows\build\bin\lldb.exe --no-lldbinit -S C:/Users/tcwg/llvm-worker/lldb-aarch64-windows/build/tools/lldb\test\Shell\lit-lldb-init-quiet C:\Users\tcwg\llvm-worker\lldb-aarch64-windows\build\tools\lldb\test\Shell\Expr\Output\TestAnonNamespaceParamFunc.cpp.tmp -o run -o "expression func(a)" -o exit | c:\users\tcwg\llvm-worker\lldb-aarch64-windows\build\bin\filecheck.exe C:\Users\tcwg\llvm-worker\lldb-aarch64-windows\llvm-project\lldb\test\Shell\Expr\TestAnonNamespaceParamFunc.cpp
executed command: 'c:\users\tcwg\llvm-worker\lldb-aarch64-windows\build\bin\lldb.exe' --no-lldbinit -S 'C:/Users/tcwg/llvm-worker/lldb-aarch64-windows/build/tools/lldb\test\Shell\lit-lldb-init-quiet' 'C:\Users\tcwg\llvm-worker\lldb-aarch64-windows\build\tools\lldb\test\Shell\Expr\Output\TestAnonNamespaceParamFunc.cpp.tmp' -o run -o 'expression func(a)' -o exit
.---command stderr------------
| TestAnonNamespaceParamFunc.cpp.tmp :: Class 'tagARRAYDESC' has a member 'tdescElem' of type 'tagTYPEDESC' which does not have a complete definition.error: TestAnonNamespaceParamFunc.cpp.tmp :: Class 'tagARRAYDESC' has a member 'tdescElem' of type 'tagTYPEDESC' which does not have a complete definition.
| (lldb) TestAnonNamespaceParamFunc.cpp.tmp :: Class 'std::partial_ordering' has a member 'less' of type 'std::partial_ordering' which does not have a complete definition.error: TestAnonNamespaceParamFunc.cpp.tmp :: Class 'std::partial_ordering' has a member 'less' of type 'std::partial_ordering' which does not have a complete definition.
| (lldb) TestAnonNamespaceParamFunc.cpp.tmp :: Class 'std::strong_ordering' has a member 'less' of type 'std::strong_ordering' which does not have a complete definition.error: TestAnonNamespaceParamFunc.cpp.tmp :: Class 'std::strong_ordering' has a member 'less' of type 'std::strong_ordering' which does not have a complete definition.
| (lldb) TestAnonNamespaceParamFunc.cpp.tmp :: Class 'std::weak_ordering' has a member 'less' of type 'std::weak_ordering' which does not have a complete definition.error: TestAnonNamespaceParamFunc.cpp.tmp :: Class 'std::weak_ordering' has a member 'less' of type 'std::weak_ordering' which does not have a complete definition.
| (lldb) error: Couldn't look up symbols:
|   int func(struct `anonymous namespace'::InAnon)
| Hint: The expression tried to call a function that is not present in the target, perhaps because it was optimized out by the compiler.
`-----------------------------
executed command: 'c:\users\tcwg\llvm-worker\lldb-aarch64-windows\build\bin\filecheck.exe' 'C:\Users\tcwg\llvm-worker\lldb-aarch64-windows\llvm-project\lldb\test\Shell\Expr\TestAnonNamespaceParamFunc.cpp'
.---command stderr------------
| C:\Users\tcwg\llvm-worker\lldb-aarch64-windows\llvm-project\lldb\test\Shell\Expr\TestAnonNamespaceParamFunc.cpp:10:11: error: CHECK: expected string not found in input
| // CHECK: (int) $0 = 15
|           ^
| <stdin>:16:26: note: scanning from here
| (lldb) expression func(a)
|                          ^
```

So the function is still not callable. But AFAICT, this is not a
regression, since this function wasn't callable prior to the patch
anyway. I currently do not have a Windows setup to test this on,
so XFAIL for now.


  Commit: 1e9d0028d35ae69263aa848b4cb02245f442eb5c
      https://github.com/llvm/llvm-project/commit/1e9d0028d35ae69263aa848b4cb02245f442eb5c
  Author: Craig Topper <craig.topper at sifive.com>
  Date:   2024-08-20 (Tue, 20 Aug 2024)

  Changed paths:
    M llvm/lib/Target/RISCV/GISel/RISCVLegalizerInfo.cpp

  Log Message:
  -----------
  [RISCV][GISel] Split LoadStoreActions in LoadActions and StoreActions.

Remove widenToNextPow2 from StoreActions.
Reorder clampScalar and lowerIfMemSizeNotByteSizePow2 for StoreActions.

These match AArch64 and got me further on a test case I was playing with
that contained a i129 store.


  Commit: f01f80ce6ca7640bb0e267b84b1ed0e89b57e2d9
      https://github.com/llvm/llvm-project/commit/f01f80ce6ca7640bb0e267b84b1ed0e89b57e2d9
  Author: Adrian Prantl <aprantl at apple.com>
  Date:   2024-08-20 (Tue, 20 Aug 2024)

  Changed paths:
    M lldb/bindings/python/python-wrapper.swig
    M lldb/include/lldb/API/SBFrame.h
    M lldb/include/lldb/Interpreter/ScriptInterpreter.h
    M lldb/include/lldb/Target/StackFrame.h
    M lldb/include/lldb/Target/StackFrameList.h
    M lldb/include/lldb/Target/StackFrameRecognizer.h
    M lldb/include/lldb/Target/Thread.h
    M lldb/source/API/SBFrame.cpp
    M lldb/source/API/SBThread.cpp
    M lldb/source/Commands/CommandCompletions.cpp
    M lldb/source/Commands/CommandObjectFrame.cpp
    M lldb/source/Commands/CommandObjectMemory.cpp
    M lldb/source/Commands/CommandObjectThread.cpp
    M lldb/source/Commands/Options.td
    M lldb/source/Core/Debugger.cpp
    M lldb/source/Interpreter/CommandInterpreter.cpp
    M lldb/source/Plugins/LanguageRuntime/CPlusPlus/CPPLanguageRuntime.cpp
    M lldb/source/Plugins/ScriptInterpreter/Python/SWIGPythonBridge.h
    M lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp
    M lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPythonImpl.h
    M lldb/source/Target/Process.cpp
    M lldb/source/Target/StackFrame.cpp
    M lldb/source/Target/StackFrameList.cpp
    M lldb/source/Target/StackFrameRecognizer.cpp
    M lldb/source/Target/Thread.cpp
    M lldb/source/Target/ThreadPlanStepOut.cpp
    M lldb/test/API/commands/frame/recognizer/TestFrameRecognizer.py
    M lldb/test/API/commands/frame/recognizer/main.m
    M lldb/test/API/commands/frame/recognizer/recognizer.py
    A lldb/test/API/lang/cpp/std-function-recognizer/Makefile
    A lldb/test/API/lang/cpp/std-function-recognizer/TestStdFunctionRecognizer.py
    A lldb/test/API/lang/cpp/std-function-recognizer/main.cpp

  Log Message:
  -----------
  [lldb] Extend frame recognizers to hide frames from backtraces (#104523)

Compilers and language runtimes often use helper functions that are
fundamentally uninteresting when debugging anything but the
compiler/runtime itself. This patch introduces a user-extensible
mechanism that allows for these frames to be hidden from backtraces and
automatically skipped over when navigating the stack with `up` and
`down`.

This does not affect the numbering of frames, so `f <N>` will still
provide access to the hidden frames. The `bt` output will also print a
hint that frames have been hidden.

My primary motivation for this feature is to hide thunks in the Swift
programming language, but I'm including an example recognizer for
`std::function::operator()` that I wished for myself many times while
debugging LLDB.

rdar://126629381


Example output. (Yes, my proof-of-concept recognizer could hide even
more frames if we had a method that returned the function name without
the return type or I used something that isn't based off regex, but it's
really only meant as an example).

before:
```
(lldb) thread backtrace --filtered=false
* thread #1, queue = 'com.apple.main-thread', stop reason = breakpoint 1.1
  * frame #0: 0x0000000100001f04 a.out`foo(x=1, y=1) at main.cpp:4:10
    frame #1: 0x0000000100003a00 a.out`decltype(std::declval<int (*&)(int, int)>()(std::declval<int>(), std::declval<int>())) std::__1::__invoke[abi:se200000]<int (*&)(int, int), int, int>(__f=0x000000016fdff280, __args=0x000000016fdff224, __args=0x000000016fdff220) at invoke.h:149:25
    frame #2: 0x000000010000399c a.out`int std::__1::__invoke_void_return_wrapper<int, false>::__call[abi:se200000]<int (*&)(int, int), int, int>(__args=0x000000016fdff280, __args=0x000000016fdff224, __args=0x000000016fdff220) at invoke.h:216:12
    frame #3: 0x0000000100003968 a.out`std::__1::__function::__alloc_func<int (*)(int, int), std::__1::allocator<int (*)(int, int)>, int (int, int)>::operator()[abi:se200000](this=0x000000016fdff280, __arg=0x000000016fdff224, __arg=0x000000016fdff220) at function.h:171:12
    frame #4: 0x00000001000026bc a.out`std::__1::__function::__func<int (*)(int, int), std::__1::allocator<int (*)(int, int)>, int (int, int)>::operator()(this=0x000000016fdff278, __arg=0x000000016fdff224, __arg=0x000000016fdff220) at function.h:313:10
    frame #5: 0x0000000100003c38 a.out`std::__1::__function::__value_func<int (int, int)>::operator()[abi:se200000](this=0x000000016fdff278, __args=0x000000016fdff224, __args=0x000000016fdff220) const at function.h:430:12
    frame #6: 0x0000000100002038 a.out`std::__1::function<int (int, int)>::operator()(this= Function = foo(int, int) , __arg=1, __arg=1) const at function.h:989:10
    frame #7: 0x0000000100001f64 a.out`main(argc=1, argv=0x000000016fdff4f8) at main.cpp:9:10
    frame #8: 0x0000000183cdf154 dyld`start + 2476
(lldb) 
```

after

```
(lldb) bt
* thread #1, queue = 'com.apple.main-thread', stop reason = breakpoint 1.1
  * frame #0: 0x0000000100001f04 a.out`foo(x=1, y=1) at main.cpp:4:10
    frame #1: 0x0000000100003a00 a.out`decltype(std::declval<int (*&)(int, int)>()(std::declval<int>(), std::declval<int>())) std::__1::__invoke[abi:se200000]<int (*&)(int, int), int, int>(__f=0x000000016fdff280, __args=0x000000016fdff224, __args=0x000000016fdff220) at invoke.h:149:25
    frame #2: 0x000000010000399c a.out`int std::__1::__invoke_void_return_wrapper<int, false>::__call[abi:se200000]<int (*&)(int, int), int, int>(__args=0x000000016fdff280, __args=0x000000016fdff224, __args=0x000000016fdff220) at invoke.h:216:12
    frame #6: 0x0000000100002038 a.out`std::__1::function<int (int, int)>::operator()(this= Function = foo(int, int) , __arg=1, __arg=1) const at function.h:989:10
    frame #7: 0x0000000100001f64 a.out`main(argc=1, argv=0x000000016fdff4f8) at main.cpp:9:10
    frame #8: 0x0000000183cdf154 dyld`start + 2476
Note: Some frames were hidden by frame recognizers
```


  Commit: 4a4b233f35adaed44e50157db3846d0d23f2f6e1
      https://github.com/llvm/llvm-project/commit/4a4b233f35adaed44e50157db3846d0d23f2f6e1
  Author: DanielLevi6 <75536731+DanielLevi6 at users.noreply.github.com>
  Date:   2024-08-20 (Tue, 20 Aug 2024)

  Changed paths:
    M mlir/include/mlir/Dialect/Linalg/Transforms/Transforms.h
    M mlir/lib/Dialect/Linalg/Transforms/ElementwiseOpFusion.cpp

  Log Message:
  -----------
  [mlir][linalg] Improve getPreservedProducerResults estimation in ElementwiseOpFusion (#104409)

This commit changes the getPreservedProducerResults function so that it
takes the consumer into account along with the producer, in order to
predict which of the producer’s outputs can be dropped during the fusion
process. It provides a more accurate prediction, considering that the
fusion process also depends on the consumer.


  Commit: a16f0dc9c2f0690e28622b0d80bd154fb0e6a30a
      https://github.com/llvm/llvm-project/commit/a16f0dc9c2f0690e28622b0d80bd154fb0e6a30a
  Author: Craig Topper <craig.topper at sifive.com>
  Date:   2024-08-20 (Tue, 20 Aug 2024)

  Changed paths:
    M llvm/lib/Target/RISCV/GISel/RISCVCallLowering.cpp
    M llvm/test/CodeGen/RISCV/GlobalISel/irtranslator/calling-conv-ilp32-ilp32f-ilp32d-common.ll
    M llvm/test/CodeGen/RISCV/GlobalISel/irtranslator/calling-conv-lp64-lp64f-lp64d-common.ll

  Log Message:
  -----------
  [RISCV][GISel] Allow >2*XLen integers in isSupportedReturnType.


  Commit: 763f4bddc8f54c7fedff3c15b6b62b5221d09524
      https://github.com/llvm/llvm-project/commit/763f4bddc8f54c7fedff3c15b6b62b5221d09524
  Author: Craig Topper <craig.topper at sifive.com>
  Date:   2024-08-20 (Tue, 20 Aug 2024)

  Changed paths:
    M bolt/lib/Core/BinaryFunction.cpp
    M clang/docs/InternalsManual.rst
    M clang/docs/LanguageExtensions.rst
    M clang/docs/ReleaseNotes.rst
    M clang/docs/UndefinedBehaviorSanitizer.rst
    M clang/include/clang/AST/Expr.h
    M clang/include/clang/AST/Stmt.h
    M clang/include/clang/Basic/CodeGenOptions.def
    M clang/include/clang/Basic/LangOptions.h
    M clang/include/clang/Driver/Options.td
    M clang/include/clang/Driver/SanitizerArgs.h
    M clang/lib/AST/Expr.cpp
    M clang/lib/CodeGen/CGBuiltin.cpp
    M clang/lib/CodeGen/CGExprScalar.cpp
    M clang/lib/Driver/SanitizerArgs.cpp
    M clang/lib/Driver/ToolChains/Clang.cpp
    M clang/lib/Frontend/CompilerInvocation.cpp
    M clang/lib/Serialization/ASTReaderStmt.cpp
    M clang/lib/Serialization/ASTWriterStmt.cpp
    A clang/test/CodeGen/ignore-overflow-pattern-false-pos.c
    A clang/test/CodeGen/ignore-overflow-pattern.c
    M clang/test/CodeGenOpenCL/builtins-fp-atomics-gfx12.cl
    M clang/test/CodeGenOpenCL/builtins-fp-atomics-gfx90a.cl
    M clang/test/CodeGenOpenCL/builtins-fp-atomics-gfx940.cl
    A clang/test/Driver/mips-msa.c
    M flang/include/flang/Evaluate/real.h
    M flang/lib/Evaluate/fold-real.cpp
    M flang/lib/Semantics/definable.cpp
    M flang/lib/Semantics/expression.cpp
    M flang/lib/Semantics/resolve-names.cpp
    M flang/lib/Semantics/tools.cpp
    M flang/test/Evaluate/fold-nearest.f90
    M flang/test/Semantics/declarations05.f90
    A flang/test/Semantics/implicit15.f90
    A flang/test/Semantics/structconst10.f90
    M flang/test/Semantics/undef-result01.f90
    M flang/unittests/Runtime/Time.cpp
    M libc/newhdrgen/yaml_to_classes.py
    M libc/startup/linux/CMakeLists.txt
    M libcxx/include/__algorithm/partition.h
    M libcxx/include/__pstl/backends/default.h
    M libcxx/test/std/algorithms/alg.modifying.operations/alg.partitions/partition.pass.cpp
    M libcxx/test/std/algorithms/alg.nonmodifying/alg.contains/ranges.contains.pass.cpp
    M libcxx/test/std/algorithms/alg.nonmodifying/alg.ends_with/ranges.ends_with.pass.cpp
    M libcxx/test/std/containers/associative/from_range_associative_containers.h
    M libcxx/test/std/containers/container.adaptors/from_range_container_adaptors.h
    M libcxx/test/std/containers/sequences/from_range_sequence_containers.h
    M libcxx/test/std/containers/unord/from_range_unordered_containers.h
    M libcxx/test/std/iterators/iterator.primitives/range.iter.ops/range.iter.ops.distance/iterator_sentinel.pass.cpp
    M libcxx/test/std/iterators/iterator.primitives/range.iter.ops/range.iter.ops.distance/range.pass.cpp
    M libcxx/test/std/ranges/range.adaptors/range.counted/counted.pass.cpp
    M libcxx/test/std/ranges/range.adaptors/range.elements/iterator/increment.pass.cpp
    M libcxx/test/std/ranges/range.adaptors/range.split/begin.pass.cpp
    A libcxx/test/std/ranges/range.utility/range.subrange/begin_end.pass.cpp
    M libcxx/test/std/strings/basic.string/string.cons/from_range.pass.cpp
    M libcxx/test/std/utilities/format/format.range/format.range.formatter/format.functions.tests.h
    M libcxx/test/std/utilities/memory/specialized.algorithms/specialized.construct/construct_at.pass.cpp
    A libcxx/test/support/double_move_tracker.h
    M libcxx/test/support/test_iterators.h
    M lldb/bindings/python/python-wrapper.swig
    M lldb/include/lldb/API/SBFrame.h
    M lldb/include/lldb/Interpreter/ScriptInterpreter.h
    M lldb/include/lldb/Target/StackFrame.h
    M lldb/include/lldb/Target/StackFrameList.h
    M lldb/include/lldb/Target/StackFrameRecognizer.h
    M lldb/include/lldb/Target/Thread.h
    M lldb/source/API/SBFrame.cpp
    M lldb/source/API/SBThread.cpp
    M lldb/source/Commands/CommandCompletions.cpp
    M lldb/source/Commands/CommandObjectFrame.cpp
    M lldb/source/Commands/CommandObjectMemory.cpp
    M lldb/source/Commands/CommandObjectThread.cpp
    M lldb/source/Commands/Options.td
    M lldb/source/Core/Debugger.cpp
    M lldb/source/Interpreter/CommandInterpreter.cpp
    M lldb/source/Plugins/LanguageRuntime/CPlusPlus/CPPLanguageRuntime.cpp
    M lldb/source/Plugins/ScriptInterpreter/Python/SWIGPythonBridge.h
    M lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp
    M lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPythonImpl.h
    M lldb/source/Target/Process.cpp
    M lldb/source/Target/StackFrame.cpp
    M lldb/source/Target/StackFrameList.cpp
    M lldb/source/Target/StackFrameRecognizer.cpp
    M lldb/source/Target/Thread.cpp
    M lldb/source/Target/ThreadPlanStepOut.cpp
    M lldb/test/API/commands/frame/recognizer/TestFrameRecognizer.py
    M lldb/test/API/commands/frame/recognizer/main.m
    M lldb/test/API/commands/frame/recognizer/recognizer.py
    M lldb/test/API/lang/cpp/bitfields/TestCppBitfields.py
    A lldb/test/API/lang/cpp/std-function-recognizer/Makefile
    A lldb/test/API/lang/cpp/std-function-recognizer/TestStdFunctionRecognizer.py
    A lldb/test/API/lang/cpp/std-function-recognizer/main.cpp
    M lldb/test/Shell/Driver/TestUseColor.test
    M lldb/test/Shell/Expr/TestAnonNamespaceParamFunc.cpp
    M llvm/benchmarks/CMakeLists.txt
    A llvm/benchmarks/GetIntrinsicForClangBuiltin.cpp
    M llvm/cmake/platforms/WinMsvc.cmake
    M llvm/docs/LangRef.rst
    M llvm/include/llvm/BinaryFormat/MachO.h
    M llvm/include/llvm/CodeGen/ISDOpcodes.h
    M llvm/include/llvm/IR/Intrinsics.h
    M llvm/include/llvm/SandboxIR/SandboxIR.h
    M llvm/include/llvm/SandboxIR/SandboxIRValues.def
    M llvm/include/llvm/SandboxIR/Tracker.h
    M llvm/include/llvm/TableGen/StringToOffsetTable.h
    M llvm/lib/BinaryFormat/MachO.cpp
    M llvm/lib/CodeGen/MachineVerifier.cpp
    M llvm/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp
    M llvm/lib/CodeGen/SelectionDAG/MatchContext.h
    M llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
    M llvm/lib/IR/Verifier.cpp
    M llvm/lib/MC/MachObjectWriter.cpp
    M llvm/lib/Object/MachOObjectFile.cpp
    M llvm/lib/SandboxIR/SandboxIR.cpp
    M llvm/lib/SandboxIR/Tracker.cpp
    M llvm/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp
    M llvm/lib/Target/AMDGPU/AMDGPUTargetMachine.h
    M llvm/lib/Target/DirectX/DXIL.td
    M llvm/lib/Target/RISCV/GISel/RISCVCallLowering.cpp
    M llvm/lib/Target/RISCV/GISel/RISCVLegalizerInfo.cpp
    M llvm/lib/Transforms/IPO/AttributorAttributes.cpp
    M llvm/lib/Transforms/IPO/FunctionAttrs.cpp
    M llvm/test/Analysis/DXILResource/buffer-frombinding.ll
    A llvm/test/Assembler/lround.ll
    M llvm/test/CodeGen/RISCV/GlobalISel/alu-roundtrip.ll
    M llvm/test/CodeGen/RISCV/GlobalISel/iabs.ll
    M llvm/test/CodeGen/RISCV/GlobalISel/instruction-select/alu_m-rv64.mir
    M llvm/test/CodeGen/RISCV/GlobalISel/irtranslator/calling-conv-ilp32-ilp32f-ilp32d-common.ll
    M llvm/test/CodeGen/RISCV/GlobalISel/irtranslator/calling-conv-lp64-lp64f-lp64d-common.ll
    M llvm/test/CodeGen/RISCV/GlobalISel/legalizer/legalize-abs-rv64.mir
    M llvm/test/CodeGen/RISCV/GlobalISel/legalizer/legalize-div-rv64.mir
    M llvm/test/CodeGen/RISCV/GlobalISel/legalizer/legalize-rem-rv64.mir
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-int.ll
    M llvm/test/MC/AArch64/arm64e-subtype.s
    M llvm/test/MachineVerifier/test_g_llround.mir
    M llvm/test/MachineVerifier/test_g_lround.mir
    M llvm/test/Transforms/Attributor/call-simplify-pointer-info.ll
    M llvm/test/Transforms/Attributor/multiple-offsets-pointer-info.ll
    M llvm/test/Transforms/Attributor/value-simplify-pointer-info.ll
    A llvm/test/Transforms/FunctionAttrs/cold.ll
    A llvm/test/tools/llvm-objdump/AArch64/Inputs/fat.macho-arm64e-kernel-ptrauth-abi
    A llvm/test/tools/llvm-objdump/AArch64/Inputs/fat.macho-arm64e-ptrauth-abi
    A llvm/test/tools/llvm-objdump/AArch64/macho-universal-arm64e-kernel-ptrauth-abi.test
    A llvm/test/tools/llvm-objdump/AArch64/macho-universal-arm64e-ptrauth-abi.test
    A llvm/test/tools/llvm-objdump/macho-ptrauth-cpusubtype.test
    M llvm/tools/dsymutil/MachOUtils.cpp
    M llvm/tools/llvm-objdump/MachODump.cpp
    M llvm/unittests/Analysis/CMakeLists.txt
    M llvm/unittests/BinaryFormat/MachOTest.cpp
    M llvm/unittests/IR/IntrinsicsTest.cpp
    M llvm/unittests/SandboxIR/SandboxIRTest.cpp
    M llvm/unittests/SandboxIR/TrackerTest.cpp
    M llvm/utils/TableGen/IntrinsicEmitter.cpp
    M llvm/utils/lit/tests/Inputs/shtest-cat/cat-error-0.txt
    M llvm/utils/lit/tests/Inputs/shtest-cat/cat-error-1.txt
    M llvm/utils/lit/tests/Inputs/shtest-cat/cat.txt
    M mlir/include/mlir/Dialect/GPU/IR/GPUOps.td
    M mlir/include/mlir/Dialect/Linalg/Transforms/Transforms.h
    M mlir/include/mlir/Dialect/SparseTensor/IR/SparseTensorOps.td
    M mlir/include/mlir/IR/CommonTypeConstraints.td
    M mlir/lib/Conversion/GPUToLLVMSPV/GPUToLLVMSPV.cpp
    M mlir/lib/Dialect/Linalg/Transforms/ElementwiseOpFusion.cpp
    M mlir/lib/Dialect/SparseTensor/IR/SparseTensorDialect.cpp
    M mlir/lib/Dialect/SparseTensor/Transforms/SparseTensorRewriting.cpp
    M mlir/lib/Dialect/SparseTensor/Transforms/Sparsification.cpp
    M mlir/lib/Dialect/SparseTensor/Transforms/Utils/CodegenEnv.h
    M mlir/lib/Dialect/SparseTensor/Transforms/Utils/LoopEmitter.cpp
    M mlir/lib/Dialect/SparseTensor/Transforms/Utils/LoopEmitter.h
    M mlir/test/Conversion/GPUToLLVMSPV/gpu-to-llvm-spv.mlir
    M mlir/test/Dialect/GPU/invalid.mlir
    M mlir/test/Dialect/SparseTensor/sparse_kernels_to_iterator.mlir
    M offload/test/api/omp_device_alloc.c
    M utils/bazel/llvm-project-overlay/llvm/unittests/BUILD.bazel

  Log Message:
  -----------
  [𝘀𝗽𝗿] changes introduced through rebase

Created using spr 1.3.5-bogner

[skip ci]


Compare: https://github.com/llvm/llvm-project/compare/c207912be468...763f4bddc8f5

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