LLVM/project 2146dabmlir/lib/Dialect/Affine/Transforms PipelineDataTransfer.cpp, mlir/test/Dialect/Affine pipeline-data-transfer.mlir

[mlir][affine] Add trip count check for affine-pipeline-data-transfer pass (#206755)

Fix `affine-pipeline-data-transfer` to skip loops with a constant trip
count ≤0, avoiding invalid DMA generation that leads to wrong code.
DeltaFile
+27-0mlir/test/Dialect/Affine/pipeline-data-transfer.mlir
+7-1mlir/lib/Dialect/Affine/Transforms/PipelineDataTransfer.cpp
+34-12 files

LLVM/project 5a7be9bllvm/include/llvm/IR Intrinsics.td, llvm/lib/IR Verifier.cpp

[NFC][LLVM] Adopt vector overload types for vp cast intrinsics (#206548)
DeltaFile
+75-0llvm/test/Verifier/vp-intrinsics-bad.ll
+38-30llvm/include/llvm/IR/Intrinsics.td
+1-47llvm/lib/IR/Verifier.cpp
+114-773 files

LLVM/project b5f36b1lldb/source/Target RegisterFlags.cpp, lldb/test/API/functionalities/gdb_remote_client TestXMLRegisterFlags.py

[lldb] Print register enum types only once (#204818)

Even if multiple fields reference them. I found this debugging AArch64
POE which has a register that contains 16 permission fields. All of
which use the same enum type.

Before these changes:
```
(lldb) register info por
<...>
Perm15: 0 = No Access, 1 = Read, 2 = Execute, 3 = Read, Execute, 4 = Write, 5 = Write, Read, 6 = Write, Execute, 7 = Read, Write, Execute <... 14 copies of the enum one per field...>
Perm0: 0 = No Access, 1 = Read, 2 = Execute, 3 = Read, Execute, 4 = Write, 5 = Write, Read, 6 = Write, Execute, 7 = Read, Write, Execute
```
After:
```
(lldb) register info por_el0
<...>
Perm15, Perm14, Perm13, Perm12, Perm11, Perm10, Perm9, Perm8, Perm7, Perm6, Perm5, Perm4, Perm3, Perm2, Perm1, Perm0: 0 = No Access, 1 = Read, 2 = Execute,
                                                                                                                      3 = Read, Execute, 4 = Write,

    [12 lines not shown]
DeltaFile
+18-16lldb/source/Target/RegisterFlags.cpp
+15-2lldb/unittests/Target/RegisterFlagsTest.cpp
+11-0lldb/test/API/linux/aarch64/permission_overlay/TestAArch64LinuxPOE.py
+1-3lldb/test/API/functionalities/gdb_remote_client/TestXMLRegisterFlags.py
+45-214 files

LLVM/project e16a0a3llvm/lib/IR Verifier.cpp, llvm/test/Verifier intrinsic-bad-arg-type1.ll

[NFC][LLVM][Verifier] Eliminate redundant checks for GC intrinsics (#206890)
DeltaFile
+23-0llvm/test/Verifier/intrinsic-bad-arg-type1.ll
+1-16llvm/lib/IR/Verifier.cpp
+24-162 files

LLVM/project c9be4d1cross-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 19f25c0cross-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 d8b196ecross-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 bc4930fcross-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 1c44bfecross-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 dc42244cross-project-tests/debuginfo-tests/dexter Script.md

order->at_least
DeltaFile
+1-1cross-project-tests/debuginfo-tests/dexter/Script.md
+1-11 files

LLVM/project c90e506cross-project-tests/debuginfo-tests/dexter-tests optnone-struct-and-methods.cpp optnone-vectors-and-functions.cpp, cross-project-tests/debuginfo-tests/dexter/dex/debugger/dbgeng dbgeng.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-tests/optnone-struct-and-methods.cpp
+2-2cross-project-tests/debuginfo-tests/dexter-tests/optnone-vectors-and-functions.cpp
+2-2cross-project-tests/debuginfo-tests/dexter/dex/debugger/dbgeng/dbgeng.py
+14-19168 files not shown
+188-208174 files

LLVM/project 7772f8ccross-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 bd7dfb2cross-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 252f874cross-project-tests/debuginfo-tests/dexter-tests optnone-loops.cpp optnone-fastmath.cpp, 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
+3-2cross-project-tests/debuginfo-tests/dexter-tests/optnone-fastmath.cpp
+2-3cross-project-tests/debuginfo-tests/dexter-tests/vla.c
+2-1cross-project-tests/debuginfo-tests/dexter-tests/memvars/merged-store.c
+68-6512 files not shown
+90-7718 files

LLVM/project c97d163cross-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 5eeac8across-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 e2580c6cross-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 ec4781ccross-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 8a31594cross-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 1e24768cross-project-tests/debuginfo-tests/dexter/dex/debugger/DebuggerControllers ScriptDebuggerController.py, cross-project-tests/debuginfo-tests/dexter/dex/evaluation StateMatch.py RunMatch.py

[Dexter] Enable after_hit_count for state nodes

The after_hit_count attribute for a state node causes it to become active
only after it would have become active N times. This uses the existing logic
for incrementing hit counts, i.e. after the node becomes "active", we will
not add another hit count until it stops being active for at least one step.
Since state nodes with after_hit_count do not become active before reaching
the required hit count, this requires us to keep track of an "early" set of
state nodes, meaning nodes that would be active if not for their
after_hit_count.
DeltaFile
+65-31cross-project-tests/debuginfo-tests/dexter/dex/evaluation/StateMatch.py
+38-0cross-project-tests/debuginfo-tests/dexter/feature_tests/scripts/where_hit_count.cpp
+31-0cross-project-tests/debuginfo-tests/dexter/feature_tests/scripts/debugging/then_after_hit_count.cpp
+8-10cross-project-tests/debuginfo-tests/dexter/dex/debugger/DebuggerControllers/ScriptDebuggerController.py
+7-4cross-project-tests/debuginfo-tests/dexter/dex/evaluation/RunMatch.py
+0-8cross-project-tests/debuginfo-tests/dexter/dex/test_script/Nodes.py
+149-531 files not shown
+152-567 files

LLVM/project 467b3f1cross-project-tests/debuginfo-tests/dexter/dex/debugger/DebuggerControllers ScriptDebuggerController.py, cross-project-tests/debuginfo-tests/dexter/dex/evaluation StateMatch.py ExpectRewriter.py

[Dexter] Add condition check to state nodes

This patch enables the ability for state nodes to check conditions, meaning
they will be active only if the condition is met.

Condition evaluation is somewhat language specific; we directly check
whether the value of the evaluated expression is "true" (case-insensitive),
which works for the languages we actually use Dexter with, but may require
generalizing in future.

We also cache conditions as they are evaluated; each time we step, we clear
all cached conditions for the current frame and any expired frames, but we
keep the cached conditions for any frames rootwards from the current frame;
this prevents us from unexpectedly exiting out of a callee frame because of
debug info not surviving a stack unwind; if the early exit is desired, an
!and{at_frame_idx, condition} under the lower frame may suffice.
DeltaFile
+45-10cross-project-tests/debuginfo-tests/dexter/dex/evaluation/StateMatch.py
+53-0cross-project-tests/debuginfo-tests/dexter/feature_tests/scripts/conditions.cpp
+7-3cross-project-tests/debuginfo-tests/dexter/dex/evaluation/ExpectRewriter.py
+9-1cross-project-tests/debuginfo-tests/dexter/dex/debugger/DebuggerControllers/ScriptDebuggerController.py
+6-1cross-project-tests/debuginfo-tests/dexter/dex/evaluation/RunMatch.py
+1-1cross-project-tests/debuginfo-tests/dexter/dex/test_script/Nodes.py
+121-166 files

LLVM/project ba81321cross-project-tests/debuginfo-tests/dexter/dex/test_script Nodes.py, cross-project-tests/debuginfo-tests/dexter/feature_tests/scripts/debugging where_hit_count_early_exit.cpp then_after_hit_count.cpp

Add docs, remove timeouts
DeltaFile
+13-0cross-project-tests/debuginfo-tests/dexter/dex/test_script/Nodes.py
+4-2cross-project-tests/debuginfo-tests/dexter/feature_tests/scripts/debugging/where_hit_count_early_exit.cpp
+3-2cross-project-tests/debuginfo-tests/dexter/feature_tests/scripts/debugging/then_after_hit_count.cpp
+20-43 files

LLVM/project a5aa6adcross-project-tests/debuginfo-tests/dexter/dex/evaluation ExpectMatch.py, cross-project-tests/debuginfo-tests/dexter/feature_tests/scripts/evaluation eval_sublist_aggregates.cpp eval_sublist_aggregates_addresses.cpp

[Dexter] Allow matching lists of values for aggregate members

This patch slightly extends the matching of aggregate members to allow for
lists of expected values for individual members, functioning the same as
lists of expected values for scalar values.
DeltaFile
+136-0cross-project-tests/debuginfo-tests/dexter/feature_tests/scripts/evaluation/eval_sublist_aggregates.cpp
+54-0cross-project-tests/debuginfo-tests/dexter/feature_tests/scripts/evaluation/eval_sublist_aggregates_addresses.cpp
+8-4cross-project-tests/debuginfo-tests/dexter/dex/evaluation/ExpectMatch.py
+198-43 files

LLVM/project cc52286cross-project-tests/debuginfo-tests/dexter/dex/test_script Nodes.py

Add docstring for type (and value)
DeltaFile
+16-0cross-project-tests/debuginfo-tests/dexter/dex/test_script/Nodes.py
+16-01 files

LLVM/project 5703a04cross-project-tests/debuginfo-tests/dexter/feature_tests/scripts/debugging where_hit_count_early_exit.cpp then_after_hit_count.cpp

Fixup odd test comments/checks
DeltaFile
+0-2cross-project-tests/debuginfo-tests/dexter/feature_tests/scripts/debugging/where_hit_count_early_exit.cpp
+1-1cross-project-tests/debuginfo-tests/dexter/feature_tests/scripts/debugging/then_after_hit_count.cpp
+1-32 files

LLVM/project 0a69175cross-project-tests/debuginfo-tests/dexter/dex/evaluation StateMatch.py, cross-project-tests/debuginfo-tests/dexter/feature_tests/scripts/debugging then_after_hit_count.cpp

Address review comments
DeltaFile
+6-4cross-project-tests/debuginfo-tests/dexter/dex/evaluation/StateMatch.py
+1-1cross-project-tests/debuginfo-tests/dexter/feature_tests/scripts/debugging/then_after_hit_count.cpp
+7-52 files

LLVM/project 2044746cross-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

LLVM/project 88ddecbcross-project-tests/debuginfo-tests/dexter/dex/evaluation ExpectRewriter.py Metrics.py, cross-project-tests/debuginfo-tests/dexter/dex/test_script Nodes.py

[Dexter] Add !type and !type/all nodes to test variable types

This patch adds the second kind of variable expect, !type, which tests the
type of a variable as reported by the debugger. As with !value, this is a
string comparison of the debugger output with the script expected value -
this means that even if two types are identical (e.g. typedef), a !type node
will only match the one that the debugger displays by default.

Script writing and aggregates work the same for !type as for !value, and the
metrics reported are largely similar, with the exception that "unexpected",
"seen", and "missing" metrics are reported separately for values and types.
DeltaFile
+98-2cross-project-tests/debuginfo-tests/dexter/dex/test_script/Nodes.py
+71-0cross-project-tests/debuginfo-tests/dexter/feature_tests/scripts/rewriting/Inputs/rewrite_types_expected.cpp
+55-0cross-project-tests/debuginfo-tests/dexter/feature_tests/scripts/rewriting/rewrite_types.cpp
+54-0cross-project-tests/debuginfo-tests/dexter/feature_tests/scripts/evaluation/eval_types.cpp
+9-6cross-project-tests/debuginfo-tests/dexter/dex/evaluation/ExpectRewriter.py
+6-5cross-project-tests/debuginfo-tests/dexter/dex/evaluation/Metrics.py
+293-133 files not shown
+301-199 files

LLVM/project 14452fecross-project-tests/debuginfo-tests/dexter/dex/evaluation StateMatch.py

format
DeltaFile
+12-3cross-project-tests/debuginfo-tests/dexter/dex/evaluation/StateMatch.py
+12-31 files

LLVM/project 9afa565cross-project-tests/debuginfo-tests/dexter/dex/debugger/DebuggerControllers ScriptDebuggerController.py, cross-project-tests/debuginfo-tests/dexter/dex/evaluation StateMatch.py

Address review comments, add check for 'true' assumption
DeltaFile
+10-1cross-project-tests/debuginfo-tests/dexter/dex/debugger/DebuggerControllers/ScriptDebuggerController.py
+4-3cross-project-tests/debuginfo-tests/dexter/feature_tests/scripts/conditions.cpp
+3-2cross-project-tests/debuginfo-tests/dexter/dex/evaluation/StateMatch.py
+17-63 files