LLVM/project bb9f081cross-project-tests/debuginfo-tests/dexter/dex/evaluation ExpectMatch.py RunMatch.py, cross-project-tests/debuginfo-tests/dexter/dex/test_script Nodes.py

[Dexter] Add !address node (#202801)

Adds a node type for Dexter that allows checking abstract labels instead
of concrete addresses. Each address node has a label and optional
offset, and the first time during evaluation that a given address label
is matched against a valid pointer value, the address label will be
assigned a value that matches the seen address (adjusting for any
offset). From that point, the resolved address value will be used for
the remainder of the test evaluation.
DeltaFile
+138-50cross-project-tests/debuginfo-tests/dexter/dex/evaluation/ExpectMatch.py
+66-0cross-project-tests/debuginfo-tests/dexter/feature_tests/scripts/evaluation/eval_address.cpp
+46-0cross-project-tests/debuginfo-tests/dexter/dex/test_script/Nodes.py
+26-0cross-project-tests/debuginfo-tests/dexter/feature_tests/scripts/parser/invalid-address.test
+15-6cross-project-tests/debuginfo-tests/dexter/dex/evaluation/RunMatch.py
+15-0cross-project-tests/debuginfo-tests/dexter/feature_tests/scripts/parser/parse-address.test
+306-566 files

LLVM/project c06d047clang/docs ReleaseNotes.rst, clang/include/clang/Basic DiagnosticSemaKinds.td

Diagnose noreturn calls from a const or pure function (#206134)

The const and pure functions add the WillReturn LLVM IR attribute which
require the function to return. Calling a noreturn function is UB, so it
is now being diagnosed unless the call is known to be unevaluated.

This diagnostic is enabled by default.

Fixes #129022
DeltaFile
+106-1clang/test/Sema/attr-const-pure.c
+15-0clang/lib/Sema/SemaChecking.cpp
+7-0clang/include/clang/Basic/DiagnosticSemaKinds.td
+3-1clang/docs/ReleaseNotes.rst
+131-24 files

LLVM/project 066b689llvm/include/llvm/IR Instructions.h, llvm/lib/CodeGen AtomicExpandPass.cpp

[IR][NFC] Add LoadStoreInstAttributes to copy load/store attrs
DeltaFile
+34-0llvm/include/llvm/IR/Instructions.h
+4-6llvm/lib/Transforms/InstCombine/InstCombineLoadStoreAlloca.cpp
+2-6llvm/lib/CodeGen/AtomicExpandPass.cpp
+2-2llvm/lib/Target/AMDGPU/AMDGPUSwLowerLDS.cpp
+42-144 files

LLVM/project 2fbe136clang/docs ReleaseNotes.rst, clang/lib/Frontend FrontendAction.cpp

Line and digit directives, OriginalFileName, ModuleName should be unevaluated strings (#201413)

Based on
https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2023/p2361r6.pdf,
line and digit directives should be unevaluated strings. This patch
changes the HandleLineDirective and HandleDigitDirective to parse
strings as unevaluated string literals and fixes the testcase to not
have escape sequences.
DeltaFile
+11-0clang/docs/ReleaseNotes.rst
+4-2clang/lib/Lex/PPDirectives.cpp
+5-0clang/test/Frontend/linemarker-invalid-escape.c
+5-0clang/test/Preprocessor/line-directive.c
+2-1clang/lib/Frontend/FrontendAction.cpp
+1-1clang/test/Preprocessor/line-directive-output.c
+28-42 files not shown
+31-58 files

LLVM/project f8132d8llvm/lib/Target/X86 X86ISelLowering.cpp, llvm/test/CodeGen/X86 combine-reductions.ll

[X86] Fold broadcast(truncate(extract_vector_elt(x, 0))) -> bitcast(broadcast(x)) (#206461)

Fixes regressions in #205098
DeltaFile
+16-0llvm/lib/Target/X86/X86ISelLowering.cpp
+0-1llvm/test/CodeGen/X86/combine-reductions.ll
+16-12 files

LLVM/project 1636530llvm/docs AMDGPUUsage.rst, llvm/include/llvm/BinaryFormat ELF.h

[AMDGPU] Add more generic targets (#205363)

gfx11-7-generic = 0x062
gfx13-generic = 0x063

Co-Authored-By: Claude noreply at anthropic.com
DeltaFile
+15-0llvm/docs/AMDGPUUsage.rst
+14-0llvm/test/Object/AMDGPU/elf-header-flags-mach.yaml
+10-0llvm/lib/Target/AMDGPU/GCNProcessors.td
+10-0llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUTargetStreamer.cpp
+10-0llvm/test/tools/llvm-objdump/ELF/AMDGPU/subtarget.ll
+6-2llvm/include/llvm/BinaryFormat/ELF.h
+65-219 files not shown
+134-1225 files

LLVM/project 5c15801lldb/source/Commands CommandCompletions.cpp, lldb/test/API/functionalities/completion TestCompletion.py

[lldb] Show descriptions for settings (#206044)

This patch shows a description next to each settings completion.
DeltaFile
+18-3lldb/source/Commands/CommandCompletions.cpp
+12-0lldb/test/API/functionalities/completion/TestCompletion.py
+30-32 files

LLVM/project f1caacfllvm/lib/Target/SPIRV SPIRVBuiltins.cpp

[SPIR-V] Reuse getIConstVal instead of custom one where applicable (NFC) (#206131)
DeltaFile
+10-21llvm/lib/Target/SPIRV/SPIRVBuiltins.cpp
+10-211 files

LLVM/project e60b4b6clang/lib/AST/ByteCode Interp.cpp, clang/test/AST/ByteCode dynamic-cast.cpp

[clang][bytecode] Fix an assertion failure in dynamic_cast handling (#206447)

If `Ptr` is already a root pointer, the `getBase()` call ran into an
assertion. Fix this by moving the check to the start of the loop.
DeltaFile
+14-0clang/test/AST/ByteCode/dynamic-cast.cpp
+3-2clang/lib/AST/ByteCode/Interp.cpp
+17-22 files

LLVM/project 787619allvm/lib/Target/AMDGPU AMDGPULateCodeGenPrepare.cpp, llvm/test/CodeGen/AMDGPU issue196582-late-codegenprepare-crash-non-po2.ll

[AMDGPU] Fix bit-packing condition in LiveRegOptimizer (#201520)

This commit changes the condition for determining the eligibility for
bit-packing in LiveRegOptimizer from requiring that the scalar target
type is larger than the source type to instead require that the target
is a multiple of it.

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

---------

Signed-off-by: Steffen Holst Larsen <sholstla at amd.com>
DeltaFile
+25-0llvm/test/CodeGen/AMDGPU/issue196582-late-codegenprepare-crash-non-po2.ll
+3-3llvm/lib/Target/AMDGPU/AMDGPULateCodeGenPrepare.cpp
+28-32 files

LLVM/project cf1f0e9libcxx/include/__ranges adjacent_view.h, libcxx/test/libcxx/ranges/range.adaptors/range.adjacent nodiscard.verify.cpp

[libc++][ranges] Applied [[nodiscard]] to `adjacent_view` (#205206)

[[nodiscard]] should be applied to functions where discarding the return
value is most likely a correctness issue.

- https://libcxx.llvm.org/CodingGuidelines.html
- https://wg21.link/range.adjacent

Towards https://github.com/llvm/llvm-project/issues/172124

---------

Co-authored-by: A. Jiang <de34 at live.cn>
Co-authored-by: Hristo Hristov <zingam at outlook.com>
DeltaFile
+91-0libcxx/test/libcxx/ranges/range.adaptors/range.adjacent/nodiscard.verify.cpp
+19-18libcxx/include/__ranges/adjacent_view.h
+110-182 files

LLVM/project acd0f6fcompiler-rt/include/sanitizer safestack_interface.h, compiler-rt/lib/safestack safestack.cpp

[SafeStack] Allocate unsafe sigaltstack (#206463)

PR https://github.com/llvm/llvm-project/pull/196969 was approved and
merged but with `spr` the wrong base branch was set.

This merges the approved changes into `main`

---------

Co-authored-by: Paul Walker <paul.walker at arm.com>
Co-authored-by: Arseniy Obolenskiy <arseniy.obolenskiy at amd.com>
DeltaFile
+70-0compiler-rt/lib/safestack/safestack.cpp
+20-0compiler-rt/test/safestack/sigaltstack.c
+15-0compiler-rt/include/sanitizer/safestack_interface.h
+105-03 files

LLVM/project 7d409e7llvm/lib/Target/AMDGPU SIInsertWaitcnts.cpp

clang-format
DeltaFile
+7-3llvm/lib/Target/AMDGPU/SIInsertWaitcnts.cpp
+7-31 files

LLVM/project daf2e3allvm/lib/Target/AMDGPU SIInsertWaitcnts.cpp AMDGPUHWEvents.cpp

[RFC][SIInsertWaitCnts] Remove VMemTypes

This can be considered a RFC. I'd personally like to get rid of VMEMTypes
but I don't know if anyone feels strongly that they should be kept.

My motivation for removing VMemTypes is simple: They are just a repeat
of VMEM events, just under a different name, and messier (defined as a
basic enum but actually stored as a bitmask later). It's just confusing.

This patch eliminates the need for them by:

- Adding a new entrypoint in AMDGPUHWEvents to get the basic set of
  VMEM events issued by a VMEM Instruction.
- Set BVH/SAMPLER events irrespective of whether the HW can track them.
  These events exist anyway, it should be up to InsertWaitCnt to deal with them
  properly (which is easy, only `counterOutOfOrder` needed work).
- Tracking an additional set of per-VGPR "PendingEvents" which is
  set using the "basic set of VMEM events" and cleared as needed.


    [3 lines not shown]
DeltaFile
+33-54llvm/lib/Target/AMDGPU/SIInsertWaitcnts.cpp
+7-6llvm/lib/Target/AMDGPU/AMDGPUHWEvents.cpp
+11-0llvm/lib/Target/AMDGPU/AMDGPUHWEvents.h
+51-603 files

LLVM/project 5d24d4fllvm/test/CodeGen/AMDGPU mixed-vmem-types.ll waitcnt-bvh.mir

[AMDGPU][InsertWaitCnts] Improve testing coverage for VMemTypes (#206439)

The next patch will get rid of VMEMTypes, but some of its functionality
was not tested well. This patch adds more tests to fix gaps in testing
so that the next patch in the stack can be shown to have no impact
on codegen.

The 2 issues I had noticed was that we didn't have a test for mixed
vmem types w/ BVH, only for sampler; we also did not have a test
that was affected by `clearVmemTypes`, so removing that call
had no effect.

This patch adds tests for both cases.
DeltaFile
+241-4llvm/test/CodeGen/AMDGPU/mixed-vmem-types.ll
+8-0llvm/test/CodeGen/AMDGPU/waitcnt-bvh.mir
+249-42 files

LLVM/project f97113across-project-tests/debuginfo-tests/dexter Script.md, cross-project-tests/debuginfo-tests/dexter-tests global-constant.cpp

review comments
DeltaFile
+2-1cross-project-tests/debuginfo-tests/dexter-tests/global-constant.cpp
+2-0cross-project-tests/debuginfo-tests/dexter/Script.md
+4-12 files

LLVM/project 01ba354cross-project-tests/debuginfo-tests/dexter/dex/debugger/lldb LLDB.py

Remove all tags that LLDB may add
DeltaFile
+5-2cross-project-tests/debuginfo-tests/dexter/dex/debugger/lldb/LLDB.py
+5-21 files

LLVM/project 286bd14cross-project-tests/debuginfo-tests/dexter-tests optnone-vectors-and-functions.cpp optnone-struct-and-methods.cpp, cross-project-tests/debuginfo-tests/dexter/dex/debugger/visualstudio VisualStudio.py

[Dexter] Switch to using script-mode by default

This patch changes the default mode of Dexter from heuristic-mode to
script-mode. The --use-script argument is replaced with --use-heuristic,
some comments/docs/error messages are updated accordingly, and tests have
their flags switched accordingly.
DeltaFile
+2-6cross-project-tests/debuginfo-tests/dexter/dex/debugger/visualstudio/VisualStudio.py
+3-4cross-project-tests/debuginfo-tests/dexter/feature_tests/subtools/view.cpp
+3-3cross-project-tests/debuginfo-tests/dexter/dex/tools/test/Tool.py
+2-2cross-project-tests/debuginfo-tests/dexter/feature_tests/scripts/evaluation/eval_sublist_aggregates.cpp
+2-2cross-project-tests/debuginfo-tests/dexter-tests/optnone-vectors-and-functions.cpp
+2-2cross-project-tests/debuginfo-tests/dexter-tests/optnone-struct-and-methods.cpp
+14-19168 files not shown
+188-208174 files

LLVM/project 9276305cross-project-tests/debuginfo-tests/dexter-tests optnone-loops.cpp vla.c, cross-project-tests/debuginfo-tests/dexter-tests/memvars unused-merged-value.c ptr-to.c

Address review comments, format
DeltaFile
+46-40cross-project-tests/debuginfo-tests/dexter-tests/optnone-loops.cpp
+11-9cross-project-tests/debuginfo-tests/dexter-tests/memvars/unused-merged-value.c
+4-10cross-project-tests/debuginfo-tests/dexter-tests/memvars/ptr-to.c
+2-3cross-project-tests/debuginfo-tests/dexter-tests/vla.c
+3-2cross-project-tests/debuginfo-tests/dexter-tests/optnone-fastmath.cpp
+2-1cross-project-tests/debuginfo-tests/dexter-tests/memvars/implicit-ptr.c
+68-6512 files not shown
+90-7718 files

LLVM/project 9884f2across-project-tests/debuginfo-tests/dexter-tests optnone-loops.cpp optnone-fastmath.cpp, cross-project-tests/debuginfo-tests/dexter-tests/memvars ctrl-flow.c inlining.c

Apply clang-format within reason
DeltaFile
+9-15cross-project-tests/debuginfo-tests/dexter-tests/optnone-loops.cpp
+5-5cross-project-tests/debuginfo-tests/dexter-tests/optnone-fastmath.cpp
+3-3cross-project-tests/debuginfo-tests/dexter-tests/optnone-struct-and-methods.cpp
+2-2cross-project-tests/debuginfo-tests/dexter-tests/memvars/ctrl-flow.c
+2-2cross-project-tests/debuginfo-tests/dexter-tests/memvars/inlining.c
+2-2cross-project-tests/debuginfo-tests/dexter-tests/memvars/loop.c
+23-297 files not shown
+29-3813 files

LLVM/project 5fd22b8cross-project-tests/debuginfo-tests/dexter-tests optnone-vectors-and-functions.cpp optnone-simple-functions.cpp, cross-project-tests/debuginfo-tests/dexter-tests/memvars inlining-dse.c

[Dexter] Update lldb-based dexter-tests to use script-mode

This patch replaces uses of heuristic-mode Dexter in the dexter-tests suite
with uses of the script-mode, for tests that use DAP (via lldb-dap). The
updates are largely straightforward but occasionally non-trivial, and in
some cases some slight modifications have been made to keep the "spirit" of
the test intact.
DeltaFile
+93-73cross-project-tests/debuginfo-tests/dexter-tests/optnone-vectors-and-functions.cpp
+98-51cross-project-tests/debuginfo-tests/dexter-tests/optnone-simple-functions.cpp
+68-54cross-project-tests/debuginfo-tests/dexter-tests/optnone-loops.cpp
+57-33cross-project-tests/debuginfo-tests/dexter-tests/optnone-fastmath.cpp
+30-19cross-project-tests/debuginfo-tests/dexter-tests/optnone-struct-and-methods.cpp
+19-22cross-project-tests/debuginfo-tests/dexter-tests/memvars/inlining-dse.c
+365-25221 files not shown
+669-39227 files

LLVM/project 895a3f4cross-project-tests/debuginfo-tests/dexter README.md Heuristic.md

[Dexter] Document the structured script model

This patch adds documentation for the script model to the Dexter README,
shunting heuristic-mode information into a separate doc, creating a new
doc for script-mode, and linking to both (with a brief summary of the
differences) from the base README.
DeltaFile
+6-232cross-project-tests/debuginfo-tests/dexter/README.md
+231-0cross-project-tests/debuginfo-tests/dexter/Heuristic.md
+213-0cross-project-tests/debuginfo-tests/dexter/Script.md
+450-2323 files

LLVM/project 76d4c85cross-project-tests/debuginfo-tests/dexter/dex/evaluation ExpectMatch.py, cross-project-tests/debuginfo-tests/dexter/dex/test_script Nodes.py

[Dexter] Add ability to check float values within a range

Adds a new node type, !float, which can be used to match debugger ouptut as
float values rather than as strings, optionally allowing a range to be
specified for inexact matches. This new node allows a list of values to be
given, effectively a shorthand for a list of individual !float nodes.
DeltaFile
+109-1cross-project-tests/debuginfo-tests/dexter/dex/test_script/Nodes.py
+68-0cross-project-tests/debuginfo-tests/dexter/feature_tests/scripts/floats.cpp
+12-1cross-project-tests/debuginfo-tests/dexter/dex/evaluation/ExpectMatch.py
+189-23 files

LLVM/project 28b0ac3cross-project-tests/debuginfo-tests/dexter Script.md

Address various review comments
DeltaFile
+21-20cross-project-tests/debuginfo-tests/dexter/Script.md
+21-201 files

LLVM/project 5c97ae5cross-project-tests/debuginfo-tests/dexter/dex/evaluation Metrics.py

Add irretrievable metric
DeltaFile
+5-0cross-project-tests/debuginfo-tests/dexter/dex/evaluation/Metrics.py
+5-01 files

LLVM/project 82f6a97cross-project-tests/debuginfo-tests/dexter/dex/evaluation Metrics.py

backport: add optimized out metric
DeltaFile
+7-1cross-project-tests/debuginfo-tests/dexter/dex/evaluation/Metrics.py
+7-11 files

LLVM/project afcb409cross-project-tests/debuginfo-tests/dexter/dex/test_script Nodes.py, cross-project-tests/debuginfo-tests/dexter/feature_tests/scripts floats.cpp

Address review comments: extend docs, add test comment
DeltaFile
+7-7cross-project-tests/debuginfo-tests/dexter/feature_tests/scripts/floats.cpp
+2-1cross-project-tests/debuginfo-tests/dexter/dex/test_script/Nodes.py
+9-82 files

LLVM/project 1f6de02cross-project-tests/debuginfo-tests/dexter/dex/debugger/lldb LLDB.py, cross-project-tests/debuginfo-tests/dexter/dex/evaluation Metrics.py

format
DeltaFile
+6-2cross-project-tests/debuginfo-tests/dexter/dex/evaluation/Metrics.py
+1-1cross-project-tests/debuginfo-tests/dexter/dex/debugger/lldb/LLDB.py
+7-32 files

LLVM/project e206673cross-project-tests/debuginfo-tests/dexter/dex/debugger/lldb LLDB.py

Fix: Account for weird function name endings in lldb-dap
DeltaFile
+5-0cross-project-tests/debuginfo-tests/dexter/dex/debugger/lldb/LLDB.py
+5-01 files

LLVM/project 26a1cedcross-project-tests/debuginfo-tests/dexter/dex/evaluation ExpectMatch.py

Add a comment
DeltaFile
+3-0cross-project-tests/debuginfo-tests/dexter/dex/evaluation/ExpectMatch.py
+3-01 files