LLVM/project c643d31llvm/lib/Target/M68k/AsmParser M68kAsmParser.cpp

[M68k] Use getM68kMCRegisterClass accessor after MCRegisterClasses became relocation-free (#206945)

Regressed by 0b413b7d0f5a, #206753


Issue:

```
  /build/source/llvm/lib/Target/M68k/AsmParser/M68kAsmParser.cpp: In member function 'bool
  {anonymous}::M68kOperand::isPCIBD32() const':
  /build/source/llvm/lib/Target/M68k/AsmParser/M68kAsmParser.cpp:516:11: error:
  'M68kMCRegisterClasses' was not declared in this scope
    516 |           M68kMCRegisterClasses[M68k::XR32RegClassID].contains(MemOp.InnerReg));
        |           ^~~~~~~~~~~~~~~~~~~~~
```
DeltaFile
+3-2llvm/lib/Target/M68k/AsmParser/M68kAsmParser.cpp
+3-21 files

LLVM/project ddf06beclang/lib/Analysis/LifetimeSafety FactsGenerator.cpp, clang/lib/ScalableStaticAnalysis/Analyses/PointerFlow PointerFlowAnalysis.cpp

[Clang] Fix clang build with GCC 7.5 (#206768)

GCC 7.5 rejects two newer C++ idioms:

- LifetimeSafety/FactsGenerator: replace ArrayRef CTAD with an explicit
ArrayRef<const Expr *> to avoid GCC 7's broken brace-init deduction.
- ScalableStaticAnalysisFramework: add explicit std::move() on
unique_ptr<Derived> returns (pre-P1825, GCC 7 won't implicitly move).

No behavior change; restores compatibility with GCC 7.5.

Co-authored-by: Garbowski, Mateusz <mateusz.garbowski at intel.com>
DeltaFile
+2-2clang/lib/ScalableStaticAnalysis/Analyses/UnsafeBufferUsage/UnsafeBufferUsageAnalysis.cpp
+1-1clang/lib/Analysis/LifetimeSafety/FactsGenerator.cpp
+1-1clang/lib/ScalableStaticAnalysis/Analyses/PointerFlow/PointerFlowAnalysis.cpp
+4-43 files

LLVM/project a5c06c0libcxx/docs/Status Cxx26Issues.csv, libcxx/include string

[libc++] Implement LWG3662 basic_string::append/assign(NTBS, pos, n) suboptimal (#206320)

Closes https://github.com/llvm/llvm-project/issues/189809

This patch implements LWG 3662 and adds the related functional and
nonnull tests.

---------

Co-authored-by: A. Jiang <de34 at live.cn>
DeltaFile
+95-0libcxx/test/std/strings/basic.string/string.modifiers/string_append/pointer_size_size.pass.cpp
+90-0libcxx/test/std/strings/basic.string/string.modifiers/string_assign/pointer_size_size.pass.cpp
+20-0libcxx/include/string
+4-0libcxx/test/libcxx/strings/basic.string/nonnull.verify.cpp
+1-1libcxx/docs/Status/Cxx26Issues.csv
+210-15 files

LLVM/project a94b91bllvm/test/Analysis/DependenceAnalysis weak-crossing-siv-overflow.ll weak-crossing-siv-large-btc.ll

[DA] Update stale weak-crossing SIV FIXMEs (NFC) (#206941)

Remove outdated FIXME comments from weak-crossing SIV tests where the
expected dependence results are now documented by the CHECK lines.

Also clarify the overflow test comment and fix the described second
access from A[3*i - 2] to A[3*i + 1].

Signed-off-by: Ruoyu Qiu <cabbaken at outlook.com>
DeltaFile
+2-5llvm/test/Analysis/DependenceAnalysis/weak-crossing-siv-overflow.ll
+0-3llvm/test/Analysis/DependenceAnalysis/weak-crossing-siv-large-btc.ll
+0-2llvm/test/Analysis/DependenceAnalysis/weak-crossing-siv-delta-signed-min.ll
+2-103 files

LLVM/project 55adc0aflang/docs OpenACC-extensions.md, flang/include/flang/Parser parse-tree.h

[flang][OpenACC] Accept ROUTINE directive within an interface block (#206863)

An `!$acc routine` directive placed directly within an interface block (as an
interface-specification, e.g. preceding the interface body it names) failed to
parse and produced a misleading cascade of errors.

Accept the OpenACC ROUTINE directive as an additional interface-specification
alternative, mirroring the existing extension that allows a ROUTINE directive in
a module subprogram part / at the top level. The grammar is widened narrowly to
the ROUTINE construct only (not the whole OpenACC declarative construct). A named
directive applies to the interface body it names; name resolution already runs in
a separate pass after the interface-body symbols are created, so the 
directive-before-body ordering resolves correctly and the ROUTINE information is
attached to the named procedure's symbol.

This is documented as a Flang extension in OpenACC-extensions.md.

Assisted-by: AI
DeltaFile
+35-0flang/test/Semantics/OpenACC/acc-routine-in-interface-name-mismatch.f90
+26-0flang/test/Parser/acc-routine-in-interface.f90
+17-0flang/test/Semantics/OpenACC/acc-routine-in-interface.f90
+7-0flang/docs/OpenACC-extensions.md
+5-1flang/include/flang/Parser/parse-tree.h
+4-0flang/lib/Parser/program-parsers.cpp
+94-16 files

LLVM/project b8e5ea1clang/include/clang/Basic DiagnosticLexKinds.td, clang/lib/Basic Diagnostic.cpp

[clang] Improve diagnostics for invalid named-universal-characters (#206326)

1. Fix typo in `note_invalid_ucn_name_loose_matching` message.
2. Fix unprintable characters appearing in diagnostic messages.
3. Stop offering low-value fix suggestions when illegal characters
appear in the name.
DeltaFile
+33-9clang/lib/Lex/LiteralSupport.cpp
+20-0clang/unittests/Basic/DiagnosticTest.cpp
+20-0clang/lib/Basic/Diagnostic.cpp
+7-3clang/test/Lexer/char-escapes-delimited.c
+4-2clang/include/clang/Basic/DiagnosticLexKinds.td
+1-5clang/test/CXX/drs/cwg26xx.cpp
+85-193 files not shown
+89-219 files

LLVM/project b74bbcfllvm/include/llvm/TargetParser ARMTargetParser.h, llvm/lib/TargetParser ARMTargetParser.cpp

use enum type for enum

Created using spr 1.3.8-wip
DeltaFile
+3-3llvm/lib/TargetParser/ARMTargetParser.cpp
+1-1llvm/include/llvm/TargetParser/ARMTargetParser.h
+4-42 files

LLVM/project aec3c5ecross-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 b5e62bacross-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 3cbfcf9cross-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 b4d5c1across-project-tests/debuginfo-tests/dexter-tests nrvo-string.cpp optnone-fastmath.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/dex/debugger/dbgeng/dbgeng.py
+2-2cross-project-tests/debuginfo-tests/dexter-tests/nrvo-string.cpp
+2-2cross-project-tests/debuginfo-tests/dexter-tests/optnone-fastmath.cpp
+14-19168 files not shown
+188-208174 files

LLVM/project 8f587efcross-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 839ad10cross-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 0f0f70fcross-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 76e7e8bcross-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

LLVM/project 59645e8cross-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 18854a7cross-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 96dd43ecross-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 d4ca6c1cross-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 8e9d3dfcross-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/struct-dse.c
+68-6512 files not shown
+90-7718 files

LLVM/project 709d8f0cross-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 6124c42cross-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 4860beccross-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 d9c3214cross-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 d707e7ecross-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 9a4fe50cross-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 3bd6d79cross-project-tests/debuginfo-tests/dexter/dex/evaluation ExpectRewriter.py RunMatch.py

Change checks to use isinstance
DeltaFile
+1-1cross-project-tests/debuginfo-tests/dexter/dex/evaluation/ExpectRewriter.py
+1-1cross-project-tests/debuginfo-tests/dexter/dex/evaluation/RunMatch.py
+2-22 files

LLVM/project 7b45ad4cross-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 006e89ecross-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 c6d2cdccross-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