LLVM/project 73c925dllvm/lib/Transforms/Scalar LoopInterchange.cpp, llvm/test/Transforms/LoopInterchange indirectbr.ll

[LoopInterchange] Reject if outer loop header PHI has more than two incoming values (#204120)

Previously, there were cases where PHIs in the outer loop header did not
have exactly two incoming values, which caused an assertion failure.
Such PHIs are legal and can appear, so the assertion was incorrect.
This patch removes the assertion. As the assertion was in the legality
check phase, this patch adds logic that merely rejects such cases
instead of the assertion.

Fixes #204065.
DeltaFile
+65-0llvm/test/Transforms/LoopInterchange/indirectbr.ll
+5-2llvm/lib/Transforms/Scalar/LoopInterchange.cpp
+70-22 files

LLVM/project 92b3cfellvm/test/CodeGen/AMDGPU vgpr-excess-threshold-percent-invalid.ll

Fix test on windows builds

Change-Id: Ic877ba6abf44be2f937f89ec459b81e5778b6e1f
DeltaFile
+2-2llvm/test/CodeGen/AMDGPU/vgpr-excess-threshold-percent-invalid.ll
+2-21 files

LLVM/project 0c65e3bllvm/include/llvm/MC/MCDisassembler MCDisassembler.h, llvm/lib/Target/AMDGPU/Disassembler AMDGPUDisassembler.cpp AMDGPUDisassembler.h

AMDGPU/Disassembler: Emit target ID directive at correct location

Refactored to eliminate code duplication:
- Removed the outer disassembleObject wrapper function
- Moved DisassemblerTarget setup into dumpObject() before section processing
- Emit directive immediately after creating DisassemblerTarget
- Reuse the same DisassemblerTarget for actual disassembly

This ensures the directive appears right after "file format" and before
"Contents of section" in llvm-objdump output, while avoiding the
duplication of setup code.

Co-Authored-By: Claude Opus 4.6 <noreply at anthropic.com>
DeltaFile
+162-154llvm/tools/llvm-objdump/llvm-objdump.cpp
+6-7llvm/lib/Target/AMDGPU/Disassembler/AMDGPUDisassembler.cpp
+3-4llvm/include/llvm/MC/MCDisassembler/MCDisassembler.h
+2-3llvm/lib/Target/AMDGPU/Disassembler/AMDGPUDisassembler.h
+3-2llvm/test/tools/llvm-objdump/ELF/AMDGPU/kd-zeroed-gfx10.s
+0-2llvm/tools/llvm-objdump/OffloadDump.cpp
+176-1726 files

LLVM/project a0be344flang/lib/Lower OpenACC.cpp, flang/test/Lower/OpenACC acc-routine-bind-clone-signature.f90 acc-routine-bind-string-undeclared.f90

[flang][acc][lowering] Declare undeclared acc routine bind(name) targets (#203088)

An `!$acc routine ... bind(target)` can name a target with no func.func
in the program unit. Lowering emits an acc.routine op referencing it,
and external-name-interop / nvhpc-acc-bind-routine then reference an
undeclared symbol, tripping the MLIR verifier ("does not reference a
symbol in the current scope").

Materialize a private func.func for each otherwise-undeclared bind
target after primary translation, gated on the decorated procedure
having been lowered (so the declared set matches the acc.routine bind
references actually emitted). bind(symbol) targets reuse
getOrDeclareFunction (mangled, honoring BIND(C)); bind("string") targets
use the new getOrDeclareNamedFunction (verbatim asm name, left untouched
by external-name-interop).
DeltaFile
+39-0flang/lib/Lower/OpenACC.cpp
+25-0flang/test/Lower/OpenACC/acc-routine-bind-clone-signature.f90
+18-0flang/test/Lower/OpenACC/acc-routine-bind-string-undeclared.f90
+17-0flang/test/Lower/OpenACC/acc-routine-bind-devtype-undeclared.f90
+17-0flang/test/Lower/OpenACC/acc-routine-bind-undeclared.f90
+14-0flang/test/Lower/OpenACC/acc-routine-bind-gate-skip.f90
+130-03 files not shown
+159-09 files

LLVM/project eb3e0dbllvm/lib/Transforms/Scalar LoopStrengthReduce.cpp, llvm/test/Transforms/LoopStrengthReduce/AArch64 use-outside-loop.ll

[LSR] Narrow search space by merging users outside and inside loop (#202676)

Loop Strength Reduce can give different (and worse) results for a loop
when it is followed by uses of variables used inside the loop. This is
because the uses outside the loop increase the size of the search space,
which can lead to using NarrowSearchSpaceByPickingWinnerRegs which often
discards the best solution.

Solve this by narrowing the search space by merging uses outside the
loop with uses inside the loop. This ignores the Kind and AccessTy of
the use which can mean that the cost may be inaccurate, but it will give
the same cost as if we had just ignored the uses outside of the loop.

This is a re-commit of #185929 with an additional check that merging the
users doesn't cause an invalid offset to be used.
DeltaFile
+629-0llvm/test/Transforms/LoopStrengthReduce/AArch64/use-outside-loop.ll
+165-0llvm/test/Transforms/LoopStrengthReduce/X86/use-outside-loop-crash.ll
+73-0llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp
+867-03 files

LLVM/project 4646ad8llvm/lib/Transforms/InstCombine InstCombineCalls.cpp

[InstCombine] Avoid computeKnownBits when trying to fold assumes (#203550)

There isn't much value in dropping redundant assumes via
`computeKnownBits`, since SCCP should be able to replace the argument
with a constant in any cases where `computeKnownBits` can do the same.
Instead, InstCombine can simply check whether the argument to an assume
is a constant and fold based on that.
DeltaFile
+5-10llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp
+5-101 files

LLVM/project 5f17a2ecross-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
+66-29cross-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
+150-511 files not shown
+153-547 files

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

darker
DeltaFile
+2-0cross-project-tests/debuginfo-tests/dexter/dex/evaluation/StateMatch.py
+2-01 files

LLVM/project e97e159cross-project-tests/debuginfo-tests/dexter/dex/evaluation ExpectWriter.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
+96-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/ExpectWriter.py
+6-5cross-project-tests/debuginfo-tests/dexter/dex/evaluation/Metrics.py
+291-133 files not shown
+299-199 files

LLVM/project 2c1e04bcross-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 9dfd7b8cross-project-tests/debuginfo-tests/dexter/dex/debugger/DebuggerControllers ScriptDebuggerController.py, cross-project-tests/debuginfo-tests/dexter/dex/evaluation StateMatch.py ExpectWriter.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
+9-1cross-project-tests/debuginfo-tests/dexter/dex/debugger/DebuggerControllers/ScriptDebuggerController.py
+6-1cross-project-tests/debuginfo-tests/dexter/dex/evaluation/ExpectWriter.py
+6-1cross-project-tests/debuginfo-tests/dexter/dex/evaluation/RunMatch.py
+1-1cross-project-tests/debuginfo-tests/dexter/dex/test_script/Nodes.py
+120-146 files

LLVM/project c0c9005cross-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-3cross-project-tests/debuginfo-tests/dexter/dex/evaluation/ExpectMatch.py
+198-33 files

LLVM/project e0b02c5cross-project-tests/debuginfo-tests/dexter/dex/evaluation ExpectWriter.py, cross-project-tests/debuginfo-tests/dexter/dex/test_script Script.py

[Dexter] Add support for writing !step values

Following from the previous patch, this patch adds support to Dexter for
generating expected values for !step nodes. This is relatively limited:
the kind of !step which this is most well-suited to this is !step exactly,
as the !step order of ignoring extra lines is redundant (all lines are added
as expected values), and !step never can't know what lines could have been
stepped on but weren't without some extra work (e.g. finding viable
breakpoint locations in the enclosing state node).
DeltaFile
+97-0cross-project-tests/debuginfo-tests/dexter/feature_tests/scripts/rewriting/Inputs/rewrite_step_lines_expected.cpp
+56-9cross-project-tests/debuginfo-tests/dexter/dex/evaluation/ExpectWriter.py
+31-0cross-project-tests/debuginfo-tests/dexter/feature_tests/scripts/rewriting/Inputs/rewrite_step_lines.cpp
+21-0cross-project-tests/debuginfo-tests/dexter/feature_tests/scripts/rewriting/rewrite_step_lines.test
+1-3cross-project-tests/debuginfo-tests/dexter/dex/test_script/Script.py
+206-125 files

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

[Dexter] Add for_hit_count for state nodes

This patch adds the ability for state nodes to use a `for_hit_count: <int>`
field to limit the number of times that a given state node will be active.
DeltaFile
+75-11cross-project-tests/debuginfo-tests/dexter/dex/evaluation/StateMatch.py
+78-0cross-project-tests/debuginfo-tests/dexter/feature_tests/scripts/debugging/where_for_hit_count.cpp
+35-11cross-project-tests/debuginfo-tests/dexter/dex/debugger/DebuggerControllers/ScriptDebuggerController.py
+33-0cross-project-tests/debuginfo-tests/dexter/feature_tests/scripts/debugging/where_hit_count_early_exit.cpp
+26-0cross-project-tests/debuginfo-tests/dexter/feature_tests/scripts/debugging/where_fn_hit_count.cpp
+10-4cross-project-tests/debuginfo-tests/dexter/dex/evaluation/ExpectWriter.py
+257-263 files not shown
+269-329 files

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

[Dexter] Add !step node for testing stepping behaviour

This patch adds a node for generating metrics based on lines stepped on. The
new node has 3 versions: !step exactly, !step order, and !step never, which
check an expected list of line numbers against the actual line numbers seen
while the expect is active.
DeltaFile
+94-28cross-project-tests/debuginfo-tests/dexter/dex/evaluation/RunMatch.py
+79-2cross-project-tests/debuginfo-tests/dexter/dex/evaluation/Metrics.py
+69-0cross-project-tests/debuginfo-tests/dexter/feature_tests/scripts/evaluation/eval_steps_penalties.cpp
+46-0cross-project-tests/debuginfo-tests/dexter/feature_tests/scripts/evaluation/eval_steps_perfect.cpp
+32-1cross-project-tests/debuginfo-tests/dexter/dex/test_script/Nodes.py
+19-0cross-project-tests/debuginfo-tests/dexter/feature_tests/scripts/parser/step-node-expected-values.test
+339-312 files not shown
+354-338 files

LLVM/project f3a35d5cross-project-tests/debuginfo-tests/dexter/dex/dextIR StepIR.py, cross-project-tests/debuginfo-tests/dexter/feature_tests/scripts/debugging then_at_frame.cpp

[Dexter] Add at_frame_idx to check values in frames above current

This patch adds a new attribute for !and nodes, `at_frame_idx`, which
matches against frames above its parent node; for example, in the script:

```
!where {function: foo}:
  !where {function: bar}:
    !and {at_frame_idx: 1}:
      !value x: 0
```

The `!value x` node checks the value of 'x' in 'foo' while the debugger is
inside 'bar'. Use of this attribute comes with some restrictions: a !where
node can never be nested under a !and{at_frame_idx} node, and neither can
another !and{at_frame_idx} node.
DeltaFile
+61-0cross-project-tests/debuginfo-tests/dexter/feature_tests/scripts/rewriting/Inputs/rewrite_at_frame_expected.cpp
+60-0cross-project-tests/debuginfo-tests/dexter/feature_tests/scripts/debugging/then_at_frame.cpp
+49-0cross-project-tests/debuginfo-tests/dexter/feature_tests/scripts/rewriting/rewrite_at_frame.cpp
+46-0cross-project-tests/debuginfo-tests/dexter/feature_tests/scripts/evaluation/eval_at_frame.cpp
+26-13cross-project-tests/debuginfo-tests/dexter/dex/dextIR/StepIR.py
+33-0cross-project-tests/debuginfo-tests/dexter/feature_tests/scripts/parser/reject-bad-at_frame_idx.test
+275-1313 files not shown
+364-5319 files

LLVM/project 249e56fcross-project-tests/debuginfo-tests/dexter/dex/evaluation ExpectWriter.py, cross-project-tests/debuginfo-tests/dexter/feature_tests/scripts/rewriting rewrite_scopes_list.cpp rewrite_scopes.cpp

[Dexter] Write expects for variables in Debugger scopes

Following on from the previous patch, this patch adds support for writing
expects from !value/all nodes, generating separate expects for each
variable in the requested debugger scope, for each continuous range of lines
it is live for.
DeltaFile
+185-18cross-project-tests/debuginfo-tests/dexter/dex/evaluation/ExpectWriter.py
+71-0cross-project-tests/debuginfo-tests/dexter/feature_tests/scripts/rewriting/Inputs/rewrite_scopes_list_expected.cpp
+54-0cross-project-tests/debuginfo-tests/dexter/feature_tests/scripts/rewriting/rewrite_scopes_list.cpp
+49-0cross-project-tests/debuginfo-tests/dexter/feature_tests/scripts/rewriting/Inputs/rewrite_scopes_expected.cpp
+40-0cross-project-tests/debuginfo-tests/dexter/feature_tests/scripts/rewriting/rewrite_scopes.cpp
+399-185 files

LLVM/project adb8f65cross-project-tests/debuginfo-tests/dexter/dex/test_script Nodes.py, cross-project-tests/debuginfo-tests/dexter/feature_tests/scripts/debugging watch_scope.cpp

format
DeltaFile
+7-0cross-project-tests/debuginfo-tests/dexter/dex/test_script/Nodes.py
+2-1cross-project-tests/debuginfo-tests/dexter/feature_tests/scripts/debugging/watch_scope.cpp
+9-12 files

LLVM/project 35d1b58cross-project-tests/debuginfo-tests/dexter/dex/evaluation ExpectWriter.py

Remove debug print
DeltaFile
+0-3cross-project-tests/debuginfo-tests/dexter/dex/evaluation/ExpectWriter.py
+0-31 files

LLVM/project 055cd8ecross-project-tests/debuginfo-tests/dexter/dex/debugger/lldb LLDB.py, cross-project-tests/debuginfo-tests/dexter/dex/evaluation ExpectWriter.py

[Dexter] Add rewriting for aggregate variables

Following on from the previous patch, this patch allows Dexter to write
disaggregated expected values for aggregate variables. Dexter eagerly tries
to disaggregate whenever subvalues are available, but will fallback to the
root/parent value if all available subvalues are unavailable.
DeltaFile
+70-0cross-project-tests/debuginfo-tests/dexter/feature_tests/scripts/rewriting/Inputs/rewrite_aggregates_expected.cpp
+58-0cross-project-tests/debuginfo-tests/dexter/feature_tests/scripts/rewriting/Inputs/rewrite_list_aggregates_expected.cpp
+53-0cross-project-tests/debuginfo-tests/dexter/feature_tests/scripts/rewriting/rewrite_aggregates.cpp
+48-0cross-project-tests/debuginfo-tests/dexter/feature_tests/scripts/rewriting/rewrite_list_aggregates.cpp
+26-3cross-project-tests/debuginfo-tests/dexter/dex/evaluation/ExpectWriter.py
+1-0cross-project-tests/debuginfo-tests/dexter/dex/debugger/lldb/LLDB.py
+256-36 files

LLVM/project 7831670cross-project-tests/debuginfo-tests/dexter/feature_tests/scripts/evaluation eval_address.cpp

format
DeltaFile
+5-3cross-project-tests/debuginfo-tests/dexter/feature_tests/scripts/evaluation/eval_address.cpp
+5-31 files

LLVM/project 8baede6cross-project-tests/debuginfo-tests/dexter/dex/evaluation ExpectWriter.py, cross-project-tests/debuginfo-tests/dexter/feature_tests/scripts/rewriting rewrite_expects.cpp rewrite_multiple_scripts.cpp

[Dexter] Add ability to rewrite scripts to fill-in unknown values

This patch adds a feature to Dexter that allows scripts to be passed to
Dexter with missing expected values (`null` values in YAML), which Dexter
will attempt to "fill-in" with expected values that match the debugger's
actual output. The result is written to a file with the same name as the
original test file, in the directory given by --results-directory if one
is present; all content outside of the Dexter script itself is preserved
exactly as-is.
DeltaFile
+201-0cross-project-tests/debuginfo-tests/dexter/dex/evaluation/ExpectWriter.py
+128-0cross-project-tests/debuginfo-tests/dexter/feature_tests/scripts/rewriting/Inputs/rewrite_expect_list_expected.cpp
+52-0cross-project-tests/debuginfo-tests/dexter/feature_tests/scripts/rewriting/rewrite_expects.cpp
+51-0cross-project-tests/debuginfo-tests/dexter/feature_tests/scripts/rewriting/Inputs/rewrite_expects_expected.cpp
+46-0cross-project-tests/debuginfo-tests/dexter/feature_tests/scripts/rewriting/Inputs/rewrite_multiple_scripts_expected.cpp
+46-0cross-project-tests/debuginfo-tests/dexter/feature_tests/scripts/rewriting/rewrite_multiple_scripts.cpp
+524-08 files not shown
+665-714 files

LLVM/project 11694d8cross-project-tests/debuginfo-tests/dexter/feature_tests/scripts/rewriting rewrite_aggregates.cpp rewrite_list_aggregates.cpp, cross-project-tests/debuginfo-tests/dexter/feature_tests/scripts/rewriting/Inputs rewrite_aggregates_expected.cpp rewrite_list_aggregates_expected.cpp

format
DeltaFile
+8-8cross-project-tests/debuginfo-tests/dexter/feature_tests/scripts/rewriting/Inputs/rewrite_aggregates_expected.cpp
+8-8cross-project-tests/debuginfo-tests/dexter/feature_tests/scripts/rewriting/rewrite_aggregates.cpp
+3-3cross-project-tests/debuginfo-tests/dexter/feature_tests/scripts/rewriting/rewrite_list_aggregates.cpp
+3-3cross-project-tests/debuginfo-tests/dexter/feature_tests/scripts/rewriting/Inputs/rewrite_list_aggregates_expected.cpp
+22-224 files

LLVM/project dbe9b68cross-project-tests/debuginfo-tests/dexter/feature_tests/scripts/rewriting rewrite_multiple_scripts.cpp, cross-project-tests/debuginfo-tests/dexter/feature_tests/scripts/rewriting/Inputs simple_prog.cpp rewrite_multiple_scripts_expected.cpp

format
DeltaFile
+4-4cross-project-tests/debuginfo-tests/dexter/feature_tests/scripts/rewriting/Inputs/simple_prog.cpp
+2-2cross-project-tests/debuginfo-tests/dexter/feature_tests/scripts/rewriting/Inputs/rewrite_multiple_scripts_expected.cpp
+2-2cross-project-tests/debuginfo-tests/dexter/feature_tests/scripts/rewriting/rewrite_multiple_scripts.cpp
+8-83 files

LLVM/project 07b6c7fcross-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

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
+100-29cross-project-tests/debuginfo-tests/dexter/dex/evaluation/ExpectMatch.py
+64-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
+266-356 files

LLVM/project a0a284ccross-project-tests/debuginfo-tests/dexter/dex/debugger DAP.py, cross-project-tests/debuginfo-tests/dexter/dex/dextIR StepIR.py

[Dexter] Allow fetching "scopes" from the debugger

To further improve Dexter's script writing ability, this patch starts
implementing the ability for Dexter to fetch all variables with in a given
"scope", as defined by the DAP "scopes" request. This allows the test to
collect all available variables without needing to specify them explicitly
in the script, aiding in fast script generation/re-generation.

This patch does not add any script-writing functionality, but adds the
!value/all Node, which fetches all variable values from the given scope, and
enables fetching these values from DAP-based debuggers.
DeltaFile
+58-8cross-project-tests/debuginfo-tests/dexter/dex/debugger/DAP.py
+47-0cross-project-tests/debuginfo-tests/dexter/feature_tests/scripts/debugging/watch_scope.cpp
+36-11cross-project-tests/debuginfo-tests/dexter/dex/test_script/Nodes.py
+12-0cross-project-tests/debuginfo-tests/dexter/feature_tests/scripts/parser/expect-all-with-value.test
+11-1cross-project-tests/debuginfo-tests/dexter/dex/test_script/Script.py
+10-1cross-project-tests/debuginfo-tests/dexter/dex/dextIR/StepIR.py
+174-216 files not shown
+197-3312 files

LLVM/project 664d91across-project-tests/debuginfo-tests/dexter/dex/evaluation StateMatch.py

Remove debug print
DeltaFile
+0-1cross-project-tests/debuginfo-tests/dexter/dex/evaluation/StateMatch.py
+0-11 files

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

[Dexter] Add !then node

In order to exercise more control over stepping in Dexter tests, this patch
adds the `!then` node which can be used to step out of a function or exit
the current test. Unlike expect nodes, !then nodes appear as direct singular
children of a state node:

!where {lines: 10}: !then finish

The two currently available commands are "step_out" and "finish". step_out
performs a debugger "step out" command, skipping over all !wheres in the
current frame and not stepping into any lower !wheres. The finish command
ends the debugger session immediately after finishing the current step.
DeltaFile
+52-0cross-project-tests/debuginfo-tests/dexter/feature_tests/scripts/debugging/then_finish.cpp
+46-0cross-project-tests/debuginfo-tests/dexter/feature_tests/scripts/debugging/then_step_out.cpp
+40-0cross-project-tests/debuginfo-tests/dexter/dex/test_script/Nodes.py
+20-6cross-project-tests/debuginfo-tests/dexter/dex/debugger/DebuggerControllers/ScriptDebuggerController.py
+15-2cross-project-tests/debuginfo-tests/dexter/dex/evaluation/StateMatch.py
+7-2cross-project-tests/debuginfo-tests/dexter/dex/test_script/Script.py
+180-102 files not shown
+189-108 files

LLVM/project 51a93e6cross-project-tests/debuginfo-tests/dexter/feature_tests/scripts/debugging then_step_out.cpp then_finish.cpp

format
DeltaFile
+15-14cross-project-tests/debuginfo-tests/dexter/feature_tests/scripts/debugging/then_step_out.cpp
+14-13cross-project-tests/debuginfo-tests/dexter/feature_tests/scripts/debugging/then_finish.cpp
+29-272 files

FreeBSD/src 62e7ac8usr.sbin/rpc.tlsservd rpc.tlsservd.c

Revert "rpc.tlsservd.c: Pin max threads at 1 for now"

This reverts commit 7a289fe3cd5c6de7ddbe394b7700b20b0bafdb3e.

Hopefully, commit fc7993cf2d6d has fixed the underlying
problem reported by PR#289734, so I am reverting this
temporary work-around.

I will delay MFC'ng this for a while, to see if the
problem occurs again.

MFC after:      3 months
DeltaFile
+0-7usr.sbin/rpc.tlsservd/rpc.tlsservd.c
+0-71 files