[all-commits] [llvm/llvm-project] e72400: [lldb] Add MockMemory class for dwarf expression t...

Krzysztof Parzyszek via All-commits all-commits at lists.llvm.org
Sat Nov 22 10:31:43 PST 2025


  Branch: refs/heads/users/kparzysz/n03-invalid-directive
  Home:   https://github.com/llvm/llvm-project
  Commit: e724009f2f449dfcfb44c29f39872b56f6a85af1
      https://github.com/llvm/llvm-project/commit/e724009f2f449dfcfb44c29f39872b56f6a85af1
  Author: David Peixotto <peix at meta.com>
  Date:   2025-11-21 (Fri, 21 Nov 2025)

  Changed paths:
    M lldb/unittests/Expression/DWARFExpressionTest.cpp

  Log Message:
  -----------
  [lldb] Add MockMemory class for dwarf expression testing (#168467)

This change unifies the way that we specify mocked memory to make it
easy to control the process and target memory contents for unit tests.
We add a MockMemory class that can be used in dwarf expression testing
to specify the output of the `ReadMemory` function.

The MockMemory class is built on a map that maps a `(address, size)`
pair to a vector of bytes that is `size` bytes long and contains the
memory contents for that `address`.

The MockProcessWithMemRead and MockTarget classes are updated to use the
new MockMemory interface. The MockProcessWithMemRead class was renamed
to MockProcess and the old MockProcess was deleted. The old MockProcess had
and ReadMemory implementation that returned the value `i & 0xff` for reading the
address `i` and was easily be replaced with the MockMemory object.

The CreateTestContext function now takes optional values for process memory and 
target memory and uses those to create the mock objects.


  Commit: 9d2b7ecb46e1c9e0f07679238bc060aebae24072
      https://github.com/llvm/llvm-project/commit/9d2b7ecb46e1c9e0f07679238bc060aebae24072
  Author: Sebastian Pop <spop at nvidia.com>
  Date:   2025-11-21 (Fri, 21 Nov 2025)

  Changed paths:
    M llvm/include/llvm/Analysis/DependenceAnalysis.h
    M llvm/lib/Analysis/DependenceAnalysis.cpp
    M llvm/test/Analysis/DependenceAnalysis/Propagating.ll
    M llvm/test/Analysis/DependenceAnalysis/SymbolicSIV.ll
    M llvm/test/Analysis/DependenceAnalysis/WeakCrossingSIV.ll
    M llvm/test/Analysis/DependenceAnalysis/run-specific-dependence-test.ll

  Log Message:
  -----------
  [DA] remove getSplitIteration (#167698)

Remove getSplitIteration.
A follow-up patch will also remove DVEntry::Splitable and Dependnece::isSplitable.


  Commit: 8be46410248f8298af1f12be1c52e2824ce25951
      https://github.com/llvm/llvm-project/commit/8be46410248f8298af1f12be1c52e2824ce25951
  Author: Eugene Epshteyn <eepshteyn at nvidia.com>
  Date:   2025-11-21 (Fri, 21 Nov 2025)

  Changed paths:
    M flang/lib/Lower/Bridge.cpp
    M flang/test/Lower/select-case-statement.f90

  Log Message:
  -----------
  [flang] Use hlfir.cmpchar for SELECT CASE of charsSelect case hlfir cmpchar (#168476)

For SELECT CASE with character selector, instead of allways calling
runtime comparison function, emit hlfir.cmpchar. This has different
behaviors at different optimization levels: at -O0, it still emits
flang-rt call, but at higher optimization levels it does inline
comparison. Modify test/Lower/select-case-statement.f90 to test both
comparison cases.


  Commit: b27749d8c7191f894e337a402344af7a9de9a5b0
      https://github.com/llvm/llvm-project/commit/b27749d8c7191f894e337a402344af7a9de9a5b0
  Author: Christopher Ferris <cferris1000 at users.noreply.github.com>
  Date:   2025-11-21 (Fri, 21 Nov 2025)

  Changed paths:
    M compiler-rt/lib/scudo/standalone/combined.h
    M compiler-rt/lib/scudo/standalone/memtag.h
    M compiler-rt/lib/scudo/standalone/tests/memtag_test.cpp
    M compiler-rt/lib/scudo/standalone/tests/secondary_test.cpp

  Log Message:
  -----------
  [scudo] Small cleanup of memory tagging code part 2. (#168807)

Make the systemSupportsMemoryTagging() function return even on system
that don't support memory tagging. This avoids the need to always check
if memory tagging is supported before calling the function.

Modify iterateOverChunks() to call useMemoryTagging<>(Options) to
determine if mte is supported. This already uses the cached check of
systemSupportsMemoryTagging() rather than directly calling that
function.

Updated the code that calls systemSupportsMemoryTagging().


  Commit: f7e0432219b2c9de80d0ccd198748f563d2a71ea
      https://github.com/llvm/llvm-project/commit/f7e0432219b2c9de80d0ccd198748f563d2a71ea
  Author: Kazu Hirata <kazu at google.com>
  Date:   2025-11-21 (Fri, 21 Nov 2025)

  Changed paths:
    M llvm/lib/LTO/LTOModule.cpp

  Log Message:
  -----------
  [LTO] Use a range-based for loop (NFC) (#169000)

Identified with modernize-loop-convert.


  Commit: 2185379528cb3d7f29c3eca1501fec2121fd1c02
      https://github.com/llvm/llvm-project/commit/2185379528cb3d7f29c3eca1501fec2121fd1c02
  Author: Kazu Hirata <kazu at google.com>
  Date:   2025-11-21 (Fri, 21 Nov 2025)

  Changed paths:
    M llvm/include/llvm/CAS/OnDiskTrieRawHashMap.h

  Log Message:
  -----------
  [CAS] Remove redundant casts (NFC) (#169002)

FileOffset::get already returns uint64_t.

Identified with readability-redundant-casting.


  Commit: b6c2c100347b11bbf79277e442f505ca2d6bc021
      https://github.com/llvm/llvm-project/commit/b6c2c100347b11bbf79277e442f505ca2d6bc021
  Author: Kazu Hirata <kazu at google.com>
  Date:   2025-11-21 (Fri, 21 Nov 2025)

  Changed paths:
    M clang/include/clang/AST/ExprCXX.h
    M clang/include/clang/AST/ExprObjC.h
    M clang/include/clang/AST/OpenACCClause.h
    M clang/include/clang/AST/OpenMPClause.h
    M clang/include/clang/AST/Stmt.h
    M clang/lib/AST/ExprObjC.cpp

  Log Message:
  -----------
  [AST] Construct iterator_range with the conversion constructor (NFC) (#169004)

This patch simplifies iterator_range construction with the conversion
constructor.


  Commit: 28c048ec0f0a677115a0b00a88a7d013f925f2b8
      https://github.com/llvm/llvm-project/commit/28c048ec0f0a677115a0b00a88a7d013f925f2b8
  Author: Ellis Hoag <ellis.sparky.hoag at gmail.com>
  Date:   2025-11-21 (Fri, 21 Nov 2025)

  Changed paths:
    R compiler-rt/test/profile/Linux/instrprof-debug-info-correlate-warnings.c
    A compiler-rt/test/profile/Linux/instrprof-debug-info-correlate-warnings.ll
    M llvm/lib/ProfileData/InstrProfCorrelator.cpp

  Log Message:
  -----------
  [profdata] Skip probes with missing counter and function pointers (#163254)


  Commit: 55d8b63195882d07ec4dc390d2c558bebc4e295d
      https://github.com/llvm/llvm-project/commit/55d8b63195882d07ec4dc390d2c558bebc4e295d
  Author: Jonas Devlieghere <jonas at devlieghere.com>
  Date:   2025-11-21 (Fri, 21 Nov 2025)

  Changed paths:
    M lldb/cmake/modules/LLDBConfig.cmake

  Log Message:
  -----------
  [lldb] Don't enable the Limited C API with Python 3.13 and SWIG 4.4.0 (#169065)

Don't automatically enable the Limited C API when we're targeting Python
3.13 or later in combination with SWIG 4.4.0 due to a bug in the latter.

SWIG Issue: https://github.com/swig/swig/issues/3283
SWIG PR: https://github.com/swig/swig/pull/3285


  Commit: f8a803952e9e8daa2c2714d8346b696799e9c833
      https://github.com/llvm/llvm-project/commit/f8a803952e9e8daa2c2714d8346b696799e9c833
  Author: Fabrice de Gans <Steelskin at users.noreply.github.com>
  Date:   2025-11-21 (Fri, 21 Nov 2025)

  Changed paths:
    M llvm/include/llvm/Support/ThreadPool.h

  Log Message:
  -----------
  llvm: Disable copy for SingleThreadExecutor (#168782)

This is a workaround for the MSVC compiler, which attempts to generate a
copy assignment operator implementation for classes marked as
`__declspec(dllexport)`. Explicitly marking the copy assignment operator
as deleted works around the problem.

DevCom ticket:
https://developercommunity.microsoft.com/t/Classes-marked-with-__declspecdllexport/11003192


  Commit: 39d4dfbe55cbea6ca7d506b8acd8455ed0443bf9
      https://github.com/llvm/llvm-project/commit/39d4dfbe55cbea6ca7d506b8acd8455ed0443bf9
  Author: Ryan Buchner <buchner.ryan at gmail.com>
  Date:   2025-11-21 (Fri, 21 Nov 2025)

  Changed paths:
    M llvm/lib/Target/RISCV/RISCVISelLowering.cpp
    M llvm/lib/Target/RISCV/RISCVISelLowering.h
    A llvm/test/CodeGen/RISCV/vmadd-reassociate.ll

  Log Message:
  -----------
  [RISCV] Incorporate scalar addends to extend vector multiply accumulate chains (#168660)

Previously, the following:
      %mul0 = mul nsw <8 x i32> %m00, %m01
      %mul1 = mul nsw <8 x i32> %m10, %m11
      %add0 = add <8 x i32> %mul0, splat (i32 32)
      %add1 = add <8 x i32> %add0, %mul1

    lowered to:
      vsetivli zero, 8, e32, m2, ta, ma
      vmul.vv v8, v8, v9
      vmacc.vv v8, v11, v10
      li a0, 32
      vadd.vx v8, v8, a0

    After this patch, now lowers to:
      li a0, 32
      vsetivli zero, 8, e32, m2, ta, ma
      vmv.v.x v12, a0
      vmadd.vv v8, v9, v12
      vmacc.vv v8, v11, v10

Modeled on 0cc981e0 from the AArch64 backend.

C-code for the example case (`clang -O3 -S -mcpu=sifive-x280`):
```
int madd_fail(int a, int b, int * restrict src, int * restrict dst, int loop_bound) {
  for (int i = 0; i < loop_bound; i += 2) {
    dst[i] = src[i] * a + src[i + 1] * b + 32;
  }
}
```


  Commit: 4511c355c35153c6b8f5fd3d0b75f77c126fe8e6
      https://github.com/llvm/llvm-project/commit/4511c355c35153c6b8f5fd3d0b75f77c126fe8e6
  Author: Nathan Corbyn <n_corbyn at apple.com>
  Date:   2025-11-21 (Fri, 21 Nov 2025)

  Changed paths:
    M llvm/lib/Target/AMDGPU/SIInstrInfo.cpp
    M llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.1024bit.ll
    M llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.512bit.ll
    M llvm/test/CodeGen/AMDGPU/flat-scratch-init.ll
    M llvm/test/CodeGen/AMDGPU/fold-reload-into-exec.mir
    M llvm/test/CodeGen/AMDGPU/identical-subrange-spill-infloop.ll
    M llvm/test/CodeGen/AMDGPU/insert_vector_dynelt.ll
    M llvm/test/CodeGen/AMDGPU/load-constant-i1.ll
    M llvm/test/CodeGen/AMDGPU/preserve-wwm-copy-dst-reg.ll
    M llvm/test/CodeGen/AMDGPU/scc-clobbered-sgpr-to-vmem-spill.ll
    M llvm/test/CodeGen/AMDGPU/tuple-allocation-failure.ll
    M llvm/test/CodeGen/AMDGPU/wwm-reserved-spill.ll
    M llvm/test/CodeGen/AMDGPU/wwm-reserved.ll

  Log Message:
  -----------
  Revert "[AMDGPU] Remove leftover implicit operands from SI_SPILL/SI_RESTORE." (#169068)

PR causes build failures with expensive checks enabled

Reverts llvm/llvm-project#168546


  Commit: dbac91743aa0167d783568a593dfe8b675b38b46
      https://github.com/llvm/llvm-project/commit/dbac91743aa0167d783568a593dfe8b675b38b46
  Author: Hendrik Hübner <117831077+HendrikHuebner at users.noreply.github.com>
  Date:   2025-11-21 (Fri, 21 Nov 2025)

  Changed paths:
    M clang/lib/CIR/CodeGen/CIRGenBuiltin.cpp

  Log Message:
  -----------
  [CIR] Add NYI cases to builtin switch statement and move existing cases into functions (#168699)

This PR adds a number of cases to the switch statement in
`CIRGenBUiltin.cpp`. Some existing cases were relocated, so the order
matches the order from the switch statement in clangs codegen.
Additionally, some exisiting cases were moved to functions, to keep the
code a little cleaner. In the future, it will be easier to keep track of
which builtins have not been implemented, since there would always be a
NYI case for unimplemented builtins.


  Commit: 36d7e911dcb5f87145ad079e658bd564933ba19c
      https://github.com/llvm/llvm-project/commit/36d7e911dcb5f87145ad079e658bd564933ba19c
  Author: Aiden Grossman <aidengrossman at google.com>
  Date:   2025-11-21 (Fri, 21 Nov 2025)

  Changed paths:
    M mlir/test/Target/SPIRV/mlir-translate.mlir
    M mlir/test/Target/SPIRV/module.mlir

  Log Message:
  -----------
  [MLIR] Drop use of REQUIRES:shell from tests (#168989)

This patch drops two instances of REQUIRES: shell from MLIR tests. This
feature does not mean much given the internal shell is the default for
MLIR. It does prevent these tests from running on Windows, but it does
not seem like there is anything inherent to these tests preventing them
from running on Windows (minus maybe the lack of spirv-tools, which is
explicitly required anyways.


  Commit: 226c51c58b6a26b78f0884a2a45ecc527afdc4b1
      https://github.com/llvm/llvm-project/commit/226c51c58b6a26b78f0884a2a45ecc527afdc4b1
  Author: Nick Sarnie <nick.sarnie at intel.com>
  Date:   2025-11-21 (Fri, 21 Nov 2025)

  Changed paths:
    M clang/lib/Sema/SemaExprCXX.cpp
    M clang/lib/Sema/SemaStmt.cpp
    R clang/test/OpenMP/nvptx_target_exceptions_messages.cpp
    A clang/test/OpenMP/target_exceptions_messages.cpp

  Log Message:
  -----------
  [clang][Sema][OpenMP] Fix GPU exception target check (#169056)

Looks like I missed this when I added `Triple::isGPU()`.

Signed-off-by: Nick Sarnie <nick.sarnie at intel.com>


  Commit: 00fb67af95635009f1539c88e8706665f4a2d017
      https://github.com/llvm/llvm-project/commit/00fb67af95635009f1539c88e8706665f4a2d017
  Author: Kazu Hirata <kazu at google.com>
  Date:   2025-11-21 (Fri, 21 Nov 2025)

  Changed paths:
    M llvm/lib/Support/CommandLine.cpp

  Log Message:
  -----------
  [Support] Use range-based for loops (NFC) (#169001)

Identified with modernize-loop-convert.


  Commit: fea070b610e0dc08447be60db7f13c150b2892d5
      https://github.com/llvm/llvm-project/commit/fea070b610e0dc08447be60db7f13c150b2892d5
  Author: Joshua Batista <jbatista at microsoft.com>
  Date:   2025-11-21 (Fri, 21 Nov 2025)

  Changed paths:
    M clang/include/clang/Basic/Builtins.td
    M clang/lib/CodeGen/CGHLSLBuiltins.cpp
    M clang/lib/Headers/hlsl/hlsl_intrinsics.h
    M clang/lib/Sema/HLSLBuiltinTypeDeclBuilder.cpp
    M clang/lib/Sema/HLSLBuiltinTypeDeclBuilder.h
    M clang/lib/Sema/SemaHLSL.cpp
    M clang/test/AST/HLSL/StructuredBuffers-AST.hlsl
    M clang/test/AST/HLSL/TypedBuffers-AST.hlsl
    M clang/test/CodeGenHLSL/resources/StructuredBuffers-methods-lib.hlsl
    M clang/test/CodeGenHLSL/resources/StructuredBuffers-methods-ps.hlsl
    M clang/test/CodeGenHLSL/resources/TypedBuffers-methods.hlsl
    M llvm/lib/Target/DirectX/DXILShaderFlags.cpp

  Log Message:
  -----------
  [HLSL] Add Load overload with status (#166449)

This PR adds a Load method for resources, which takes an additional
parameter by reference, status. It fills the status parameter with a 1
or 0, depending on whether or not the resource access was mapped.
CheckAccessFullyMapped is also added as an intrinsic, and called in the
production of this status bit.
Only addresses DXIL for the below issue:
https://github.com/llvm/llvm-project/issues/138910
Also only addresses the DXIL variant for the below issue:
https://github.com/llvm/llvm-project/issues/99204


  Commit: 0182a76970e4e7a9faa3be049ea371128a28ee39
      https://github.com/llvm/llvm-project/commit/0182a76970e4e7a9faa3be049ea371128a28ee39
  Author: Stefan Gränitz <stefan.graenitz at gmail.com>
  Date:   2025-11-21 (Fri, 21 Nov 2025)

  Changed paths:
    M llvm/include/llvm/ExecutionEngine/Orc/Debugging/ELFDebugObjectPlugin.h
    M llvm/lib/ExecutionEngine/Orc/Debugging/ELFDebugObjectPlugin.cpp

  Log Message:
  -----------
  Revert "[ORC] Tailor ELF debugger support plugin to load-address patching only" (#169073)

Reverts llvm/llvm-project#168518


  Commit: 5dbe83c3023a795595b52e75cdfc7835882e5db1
      https://github.com/llvm/llvm-project/commit/5dbe83c3023a795595b52e75cdfc7835882e5db1
  Author: Erich Keane <ekeane at nvidia.com>
  Date:   2025-11-21 (Fri, 21 Nov 2025)

  Changed paths:
    M clang/lib/CIR/CodeGen/CIRGenDeclOpenACC.cpp
    M clang/lib/CIR/CodeGen/CIRGenOpenACCClause.cpp
    A clang/test/CIR/CodeGenOpenACC/declare-link.cpp
    M clang/test/CIR/CodeGenOpenACC/openacc-not-implemented.cpp

  Log Message:
  -----------
  [OpenACC][CIR] Handle 'declare' construct local lowering (&link clause) (#168793)

'declare' is a declaration directive, so it can appear at 3 places:
Global/NS scope, class scope, or local scope. This patch implements ONLY
the 'local' scope lowering for 'declare'.

A 'declare' is lowered as a 'declare_enter' and 'declare_exit'
operation, plus data operands like all others. Sema restricts the form
of some of these, but they are otherwise identical.

'declare' DOES require at least 1 clause for the examples to make sense,
so this ALSO implements 'link', which is the 'simpliest' one. It is ONLY
attached to the 'declare_enter', and doesn't require any additional work
besides a very small addition to how we handle clauses.


  Commit: c6876603e9870fd16252f7796871b1a797a10bf1
      https://github.com/llvm/llvm-project/commit/c6876603e9870fd16252f7796871b1a797a10bf1
  Author: Matt Arsenault <Matthew.Arsenault at amd.com>
  Date:   2025-11-21 (Fri, 21 Nov 2025)

  Changed paths:
    A llvm/test/CodeGen/AMDGPU/load-global-invariant.ll

  Log Message:
  -----------
  AMDGPU: Add baseline test for split/widen invariant loads (#168913)

This works fine on main, but broke after a future patch.


  Commit: f8bbb21fb9d25c18cad6e197eb29378f060975aa
      https://github.com/llvm/llvm-project/commit/f8bbb21fb9d25c18cad6e197eb29378f060975aa
  Author: Matt Arsenault <Matthew.Arsenault at amd.com>
  Date:   2025-11-21 (Fri, 21 Nov 2025)

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

  Log Message:
  -----------
  AMDGPU: Handle invariant when lowering global loads (#168914)

Global with invariant should be treated identically to
constant.


  Commit: 76425fd368f68813ed4b26759d9e91cc40a1c1bd
      https://github.com/llvm/llvm-project/commit/76425fd368f68813ed4b26759d9e91cc40a1c1bd
  Author: Matthew Nagy <matthew.nagy at sony.com>
  Date:   2025-11-21 (Fri, 21 Nov 2025)

  Changed paths:
    M clang/test/CodeGen/sanitize-type-outlined.cpp

  Log Message:
  -----------
  fix tysan test failing on unsupported arches (#169066)


  Commit: 1a29a2359b70f1bb4141324162dcfe4d27a6f026
      https://github.com/llvm/llvm-project/commit/1a29a2359b70f1bb4141324162dcfe4d27a6f026
  Author: venk-ks <156861430+venk-ks at users.noreply.github.com>
  Date:   2025-11-21 (Fri, 21 Nov 2025)

  Changed paths:
    M clang/lib/Sema/SemaChecking.cpp
    M clang/test/Sema/warn-fortify-source.c

  Log Message:
  -----------
  [Clang][Sema] Add fortify warnings for strcat (#168965)

Continue to add fortify warnings that are missing in Clang for string
functions as part of #142230


  Commit: ebb04b2b4c38e6bb7b6068f3474a8e8edf912f4d
      https://github.com/llvm/llvm-project/commit/ebb04b2b4c38e6bb7b6068f3474a8e8edf912f4d
  Author: Jin Huang <jinhuang1102 at gmail.com>
  Date:   2025-11-21 (Fri, 21 Nov 2025)

  Changed paths:
    M llvm/lib/Transforms/IPO/ExpandVariadics.cpp
    M llvm/test/Transforms/ExpandVariadics/expand-va-intrinsic-split-linkage.ll
    M llvm/test/Transforms/ExpandVariadics/expand-va-intrinsic-split-simple.ll
    M llvm/test/Transforms/ExpandVariadics/intrinsics.ll

  Log Message:
  -----------
  [profcheck] Propagate profile metadata to Wrapper function in optimize mode of ExpandVariadic. (#168161)

This PR fixes the issue where profile metadata (`!prof`) is dropped from
the `VariadicWrapper` when `ExpandVariadics` runs in
`--expand-variadics-override=optimize` mode.

In optimize mode, the pass splits the original variadic function into
two parts:

- A **VariadicWrapper** (retaining the original name) that handles the
`va_list` setup.
- A **FixedArityReplacement** (new function) that contains the original
core logic.

During this process, the basic blocks and associated metadata are
spliced into the `FixedArityReplacement`. Consequently, the
`VariadicWrapper`—which serves as the entry point for callers—is left
without function entry count metadata.

This change explicitly copies the `MD_prof` metadata from the
`FixedArityReplacement` back to the `VariadicWrapper` after the split is
defined.

Co-authored-by: Jin Huang <jingold at google.com>


  Commit: 52f9a57b2961da168b2a5ffe9eee687fe9068c2b
      https://github.com/llvm/llvm-project/commit/52f9a57b2961da168b2a5ffe9eee687fe9068c2b
  Author: Erick Velez <erickvelez7 at gmail.com>
  Date:   2025-11-21 (Fri, 21 Nov 2025)

  Changed paths:
    M clang-tools-extra/clang-doc/assets/namespace-template.mustache
    M clang-tools-extra/test/clang-doc/mustache-separate-namespace.cpp

  Log Message:
  -----------
  [clang-doc] Fix `</section>` mismatch in the namespace template (#168966)

A `</section>` tag wasn't inside the `{{#HasRecords}}` Mustache tag, which caused a
mismatch if there weren't any records to render.


  Commit: 69589dd2c0b34a664c24f7ffbb084d2eea848ab6
      https://github.com/llvm/llvm-project/commit/69589dd2c0b34a664c24f7ffbb084d2eea848ab6
  Author: Nicolai Hähnle <nicolai.haehnle at amd.com>
  Date:   2025-11-21 (Fri, 21 Nov 2025)

  Changed paths:
    M llvm/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.cpp
    M llvm/test/Analysis/CostModel/AMDGPU/shufflevector.ll
    M llvm/test/Transforms/SLPVectorizer/AMDGPU/reduction.ll
    M llvm/test/Transforms/SLPVectorizer/AMDGPU/slp-v2f16.ll
    M llvm/test/Transforms/VectorCombine/AMDGPU/extract-insert-chain-to-shuffles.ll
    M llvm/test/Transforms/VectorCombine/AMDGPU/extract-insert-i8.ll

  Log Message:
  -----------
  AMDGPU: Improve getShuffleCost accuracy for 8- and 16-bit shuffles (#168818)

These shuffles can always be implemented using v_perm_b32, and so this
rewrites the analysis from the perspective of "how many v_perm_b32s does
it take to assemble each register of the result?"

The test changes in Transforms/SLPVectorizer/reduction.ll are
reasonable: VI (gfx8) has native f16 math, but not packed math.


  Commit: 3fec26e3294ae0f276ff08fd810850421444588c
      https://github.com/llvm/llvm-project/commit/3fec26e3294ae0f276ff08fd810850421444588c
  Author: Hongyu Chen <xxs_chy at outlook.com>
  Date:   2025-11-22 (Sat, 22 Nov 2025)

  Changed paths:
    M llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-insert.ll

  Log Message:
  -----------
  [DAGCombiner] Don't optimize insert_vector_elt into shuffle if implicit truncation exists (#169022)

Fixes #169017


  Commit: ad9bc6a1b5f5dc51d25fe4c9715318b1023bcc80
      https://github.com/llvm/llvm-project/commit/ad9bc6a1b5f5dc51d25fe4c9715318b1023bcc80
  Author: Sebastian Pop <spop at nvidia.com>
  Date:   2025-11-21 (Fri, 21 Nov 2025)

  Changed paths:
    M llvm/include/llvm/Analysis/DependenceAnalysis.h
    M llvm/lib/Analysis/DependenceAnalysis.cpp

  Log Message:
  -----------
  [DA] remove Constraints class (#168963)

Remove the Constraints class from dependence analysis as it is now unused.


  Commit: 9a56e55ee9b3ee174bef9d74710819c68908615f
      https://github.com/llvm/llvm-project/commit/9a56e55ee9b3ee174bef9d74710819c68908615f
  Author: Erich Keane <ekeane at nvidia.com>
  Date:   2025-11-21 (Fri, 21 Nov 2025)

  Changed paths:
    M clang/lib/CIR/CodeGen/CIRGenOpenACCClause.cpp
    A clang/test/CIR/CodeGenOpenACC/declare-deviceptr.cpp

  Log Message:
  -----------
  [OpenACC][CIR] deviceptr clause lowering for local 'declare' (#169085)

This is very similar to the 'link' that was done in the last patch,
except this works on all storage, but only on pointers. This also shows
a bit more of how the enter/exit pairs work in the test.

Implementation itself is very simple, as it is just properly handling it
in the clause handler.


  Commit: 45081fb706a6c4983d06285e0d0da991964a624a
      https://github.com/llvm/llvm-project/commit/45081fb706a6c4983d06285e0d0da991964a624a
  Author: Erick Velez <erickvelez7 at gmail.com>
  Date:   2025-11-21 (Fri, 21 Nov 2025)

  Changed paths:
    M clang-tools-extra/clang-doc/assets/class-template.mustache
    M clang-tools-extra/clang-doc/assets/namespace-template.mustache
    M clang-tools-extra/test/clang-doc/mustache-index.cpp

  Log Message:
  -----------
  [clang-doc] `<ul>` must be nested in `<li>` (#168972)

The HTML spec states that only `<li>` can be children of `<ul>`. Nested
`<ul>` tags in an unordered list must be children of `<li>`.


  Commit: 6be7cf085ba9e2c02ecb490992f59bbcf111289e
      https://github.com/llvm/llvm-project/commit/6be7cf085ba9e2c02ecb490992f59bbcf111289e
  Author: lonely eagle <2020382038 at qq.com>
  Date:   2025-11-21 (Fri, 21 Nov 2025)

  Changed paths:
    M mlir/include/mlir/Analysis/Presburger/PresburgerSpace.h

  Log Message:
  -----------
  [mlir][presburger] Fix PresburgerSpace comment (#167292)


  Commit: 427c18208f73e8d193c4e8f0e05493cb9d2272eb
      https://github.com/llvm/llvm-project/commit/427c18208f73e8d193c4e8f0e05493cb9d2272eb
  Author: Sebastian Pop <spop at nvidia.com>
  Date:   2025-11-21 (Fri, 21 Nov 2025)

  Changed paths:
    M llvm/test/Transforms/LoopUnrollAndJam/dependencies_multidims.ll

  Log Message:
  -----------
  [unroll-and-jam] Document dependencies_multidims.ll and fix loop bounds (NFC) (#156578)

Add detailed comments explaining why each function should/shouldn't be
unroll-and-jammed based on memory access patterns and dependencies.

Fix loop bounds to ensure array accesses are within array bounds:
  * sub_sub_less: j starts from 1 (not 0) to ensure j-1 >= 0
  * sub_sub_less_3d: k starts from 1 (not 0) to ensure k-1 >= 0
  * sub_sub_outer_scalar: j starts from 1 (not 0) to ensure j-1 >= 0


  Commit: a52e1af7f766e26a78d10d31da98af041dd66410
      https://github.com/llvm/llvm-project/commit/a52e1af7f766e26a78d10d31da98af041dd66410
  Author: Baranov Victor <bar.victor.2002 at gmail.com>
  Date:   2025-11-21 (Fri, 21 Nov 2025)

  Changed paths:
    M clang-tools-extra/clang-tidy/objc/AssertEqualsCheck.cpp
    M clang/docs/LibASTMatchersReference.html
    M clang/include/clang/ASTMatchers/ASTMatchers.h

  Log Message:
  -----------
  [ASTMatchers] Make isExpandedFromMacro accept llvm::StringRef (#167060)

We can use non-owning `StringRef` in `MacroName` parameter to avoid
unnecessary copy because `MacroName` only used as an argument to
`internal::getExpansionLocOfMacro` which already accept `StringRef`.


  Commit: 4d97b78b8fa1f5e1a9ea1d7ab5ac181a239e0813
      https://github.com/llvm/llvm-project/commit/4d97b78b8fa1f5e1a9ea1d7ab5ac181a239e0813
  Author: Baranov Victor <bar.victor.2002 at gmail.com>
  Date:   2025-11-21 (Fri, 21 Nov 2025)

  Changed paths:
    M clang-tools-extra/clang-tidy/.clang-tidy
    M clang-tools-extra/clang-tidy/utils/ExceptionAnalyzer.cpp

  Log Message:
  -----------
  [clang-tidy][NFC] Enable misc-const-correctness rule in clang-tidy codebase (#167172)

After successful `misc-const-correctness` cleanup (last patch
https://github.com/llvm/llvm-project/pull/167131), we can enable
`misc-const-correctness` rule for the whole project.

During cleanup, I didn't encounter any false positives so it's safe to
assume that we will have minimal FP in the future.


  Commit: 778e104dee8186c8a8c8ed781692825fb3a8bec8
      https://github.com/llvm/llvm-project/commit/778e104dee8186c8a8c8ed781692825fb3a8bec8
  Author: Nishant Patel <nishant.b.patel at intel.com>
  Date:   2025-11-21 (Fri, 21 Nov 2025)

  Changed paths:
    M mlir/include/mlir/Dialect/XeGPU/IR/XeGPUAttrs.td
    M mlir/lib/Dialect/XeGPU/Transforms/XeGPUWgToSgDistribute.cpp

  Log Message:
  -----------
  [MLIR] [XeGPU] Fix dropSgLayoutAndData & dropInstData in SliceAttr (#168618)


  Commit: 68ba2864d936a59ac1e382f754a15b975b04900d
      https://github.com/llvm/llvm-project/commit/68ba2864d936a59ac1e382f754a15b975b04900d
  Author: Florian Hahn <flo at fhahn.com>
  Date:   2025-11-21 (Fri, 21 Nov 2025)

  Changed paths:
    M llvm/lib/Transforms/Utils/ScalarEvolutionExpander.cpp

  Log Message:
  -----------
  [SCEVExp] Remove early exit, rely on InstSimplifyFolder (NFCI).

Remove the SCEV-based check refined in
https://github.com/llvm/llvm-project/pull/156910, as InstSimplifyFolder
manages to simplify the generated code to false directly as well.


  Commit: 86cbb36b36c15af82a87e89c08fb84792657583d
      https://github.com/llvm/llvm-project/commit/86cbb36b36c15af82a87e89c08fb84792657583d
  Author: Frankie Robertson <frankier at users.noreply.github.com>
  Date:   2025-11-21 (Fri, 21 Nov 2025)

  Changed paths:
    M lld/COFF/DriverUtils.cpp
    M lld/COFF/Options.td
    M lld/test/COFF/driver.test

  Log Message:
  -----------
  [lld] Add (ignored) /link flag to lld-link for compatibility with MSVC link.exe (#168364)

Various build tools may produce command lines invoking clang-cl and
lld-link which contain /link twice like so: e.g. `clang-cl.exe
sanitycheckcpp.cc /Fesanitycheckcpp.exe .... /link /link ...`

If link.exe is used, it ignores the extra `/link` and just issues a
warning, however lld-link tries to treat `/link` as a file name.

This PR adds a flag which is ignored in order to improve compatibility
with link.exe

There's some extra context including an "in-the-wild" example and
reproducer of the problem here:
https://github.com/frankier/meson_clang_win_activation

Co-authored-by: Frankie Robertson <frankie at robertson.name>


  Commit: 6ed829baa3861adbe053c16878fbae74b9c1e9d6
      https://github.com/llvm/llvm-project/commit/6ed829baa3861adbe053c16878fbae74b9c1e9d6
  Author: Jonas Devlieghere <jonas at devlieghere.com>
  Date:   2025-11-21 (Fri, 21 Nov 2025)

  Changed paths:
    M lldb/bindings/lua/lua-typemaps.swig

  Log Message:
  -----------
  [lldb] Restore the old behavior in lua-typemaps.swig (#169103)

Restore the original behavior (i.e. before #167764), which uses
eOpenOptionWriteOnly, not eOpenOptionReadWrite. Fixes TestLuaAPI.py.


  Commit: 2fcbdc18dfdf13a13d693b3e6523c25d65246d8c
      https://github.com/llvm/llvm-project/commit/2fcbdc18dfdf13a13d693b3e6523c25d65246d8c
  Author: Sergei Barannikov <barannikov88 at gmail.com>
  Date:   2025-11-22 (Sat, 22 Nov 2025)

  Changed paths:
    M clang/test/CodeGen/sanitize-type-outlined.cpp

  Log Message:
  -----------
  Really fix tysan test failing on unsupported arches (#169096)

'target' is not one of the features recognized by clang tests, and the
test doesn't require X86 backend to be built. Specify the target
explicitly instead. Remove duplicate `-fsanitize=type` as well.


  Commit: 3d5191fd7508caaff5435c2ed1d90fe472d3f0c1
      https://github.com/llvm/llvm-project/commit/3d5191fd7508caaff5435c2ed1d90fe472d3f0c1
  Author: Jessica Clarke <jrtc27 at jrtc27.com>
  Date:   2025-11-21 (Fri, 21 Nov 2025)

  Changed paths:
    M llvm/unittests/Support/SignalsTest.cpp

  Log Message:
  -----------
  [test][Support] Disable SignalsTest.PrintsSymbolizerMarkup (#168974)

This test checks that DSOMarkupPrinter::printDSOMarkup prints the module
and segment mappings, but that is only done if we can determine the GNU
build ID for the given object, and in many environments that is not
enabled by default (e.g. the FreeBSD Clang driver never enables it, and
various other Clang drivers only do so when ENABLE_LINKER_BUILD_ID is
opted into at configure time). GCC tends to enable it by default, and
many distributions enable it for Clang, so this has gone unnoticed for a
while, but this test has been failing on FreeBSD since its creation.

Fixes: 22b9404f09dc ("Optionally print symbolizer markup backtraces.")
See: https://github.com/llvm/llvm-project/issues/168891


  Commit: bf6e3f1deed81b8783a6b4ceccbbc3f6a4f65283
      https://github.com/llvm/llvm-project/commit/bf6e3f1deed81b8783a6b4ceccbbc3f6a4f65283
  Author: Aiden Grossman <aidengrossman at google.com>
  Date:   2025-11-21 (Fri, 21 Nov 2025)

  Changed paths:
    M clang-tools-extra/include-cleaner/test/lit.cfg.py

  Log Message:
  -----------
  [include-cleaner] Use lit internal shell by default for tests (#169092)

All of the tests seem to be compatible with the internal shell and the
internal shell is typically faster by 10-15% on top of providing a
better debugging experience.


  Commit: d7307f458cd3522470859ce0cee8d47d37a70670
      https://github.com/llvm/llvm-project/commit/d7307f458cd3522470859ce0cee8d47d37a70670
  Author: Aiden Grossman <aidengrossman at google.com>
  Date:   2025-11-21 (Fri, 21 Nov 2025)

  Changed paths:
    M compiler-rt/test/orc/TestCases/Darwin/x86-64/objc-imageinfo.S

  Log Message:
  -----------
  [ORC] Fix obj-imageinfo.S on X86 Darwin with Internal Shell (#169104)

d464c99f595b69d3a34b361b6a935e803c60d308 fixes this test on AArch64
Darwin, but I did not realize that there was another X86 version of the
test. This patch also updates the X86 version of the test in a similar
manner.


  Commit: 9fa7627d891007e495eb701a30c09761403f8042
      https://github.com/llvm/llvm-project/commit/9fa7627d891007e495eb701a30c09761403f8042
  Author: Matt Arsenault <Matthew.Arsenault at amd.com>
  Date:   2025-11-21 (Fri, 21 Nov 2025)

  Changed paths:
    M llvm/include/llvm/CodeGen/SDPatternMatch.h
    M llvm/unittests/CodeGen/SelectionDAGPatternMatchTest.cpp

  Log Message:
  -----------
  DAG: Handle poison in m_Undef (#168288)


  Commit: 7e6c913f35de79d89eefb35f0ce5086f11a6f454
      https://github.com/llvm/llvm-project/commit/7e6c913f35de79d89eefb35f0ce5086f11a6f454
  Author: John Harrison <harjohn at google.com>
  Date:   2025-11-21 (Fri, 21 Nov 2025)

  Changed paths:
    M lldb/unittests/Editline/EditlineTest.cpp

  Log Message:
  -----------
  [lldb] Fix EditlineTest closing files multiple times. (#169100)

This updates the EditlineTest to use `lldb::FileSP` to ensure the
associated FDs are only closed a single time.

Currently, there is some confusion between the `FilePointer`,
`PseudoTerminal` and `LockableStreamFile` about when the files are
closed resulting in a crash in some due to a `fflush` on a closed file.


  Commit: 677fbf8edbc5057f43e8cc178c4aa50a857aa7c1
      https://github.com/llvm/llvm-project/commit/677fbf8edbc5057f43e8cc178c4aa50a857aa7c1
  Author: Thibault Monnier <97551402+Thibault-Monnier at users.noreply.github.com>
  Date:   2025-11-22 (Sat, 22 Nov 2025)

  Changed paths:
    M clang/lib/CIR/CodeGen/CIRGenBuiltinX86.cpp
    A clang/test/CIR/CodeGen/X86/avx-builtins.c
    A clang/test/CIR/CodeGen/X86/avx10_2_512bf16-builtins.c
    A clang/test/CIR/CodeGen/X86/avx10_2bf16-builtins.c
    A clang/test/CIR/CodeGen/X86/avx512f-builtins.c
    A clang/test/CIR/CodeGen/X86/avx512fp16-builtins.c
    M clang/test/CIR/CodeGen/X86/sse-builtins.c
    M clang/test/CIR/CodeGen/X86/sse2-builtins.c

  Log Message:
  -----------
  [CIR] Upstream CIR codegen for undef x86 builtins (#167945)


  Commit: 136c9da55f72f692b9d2e9f623e09ae619a86e37
      https://github.com/llvm/llvm-project/commit/136c9da55f72f692b9d2e9f623e09ae619a86e37
  Author: Andy Kaylor <akaylor at nvidia.com>
  Date:   2025-11-21 (Fri, 21 Nov 2025)

  Changed paths:
    M clang/lib/CIR/CodeGen/CIRGenCXX.cpp
    M clang/lib/CIR/Dialect/Transforms/LoweringPrepare.cpp
    M clang/test/CIR/CodeGen/global-init.cpp

  Log Message:
  -----------
  [CIR] Implement global array dtor support (#169070)

This implements handling to destroy global arrays that require
destruction. Unlike classic codegen, CIR emits the destructor loop into
a 'dtor' region associated with the global array variable. Later, during
LoweringPrepare, this code is moved into a helper function and a call to
__cxa_atexit arranges for it to be called during the shared object
shutdown.


  Commit: 13011fe5c16be3ac12e9d7f5530d5301ebeb484e
      https://github.com/llvm/llvm-project/commit/13011fe5c16be3ac12e9d7f5530d5301ebeb484e
  Author: Keith Smiley <keithbsmiley at gmail.com>
  Date:   2025-11-21 (Fri, 21 Nov 2025)

  Changed paths:
    M lldb/include/lldb/Utility/NonNullSharedPtr.h

  Log Message:
  -----------
  [lldb] Remove Base::unique from NonNullSharedPtr (#169130)

It seems like this fails on macOS with C++20


  Commit: 5bf7e8a59a281988a0f5d2b659ba9d71b2c389c8
      https://github.com/llvm/llvm-project/commit/5bf7e8a59a281988a0f5d2b659ba9d71b2c389c8
  Author: adams381 <adams at nvidia.com>
  Date:   2025-11-21 (Fri, 21 Nov 2025)

  Changed paths:
    M clang/include/clang/CIR/Dialect/IR/CIROps.td
    M clang/lib/CIR/CodeGen/CIRGenBuiltin.cpp
    M clang/lib/CIR/Lowering/DirectToLLVM/LowerToLLVM.cpp
    A clang/test/CIR/CodeGen/builtins-overflow.cpp

  Log Message:
  -----------
  [CIR] Upstream overflow builtins (#166643)

This implements the builtins that handle overflow.

This fixes issue https://github.com/llvm/llvm-project/issues/163888


  Commit: dc3c5a5ffceb64c5c948e1d22b6d81023bef65b6
      https://github.com/llvm/llvm-project/commit/dc3c5a5ffceb64c5c948e1d22b6d81023bef65b6
  Author: Keith Smiley <keithbsmiley at gmail.com>
  Date:   2025-11-21 (Fri, 21 Nov 2025)

  Changed paths:
    M utils/bazel/.bazelrc

  Log Message:
  -----------
  [bazel] Remove old config option (#169133)

The default of this has been flipped since we're on 8.x


  Commit: 99120bb51bf728d7ba7fad5068227f8c6e707159
      https://github.com/llvm/llvm-project/commit/99120bb51bf728d7ba7fad5068227f8c6e707159
  Author: Aiden Grossman <aidengrossman at google.com>
  Date:   2025-11-21 (Fri, 21 Nov 2025)

  Changed paths:
    M .ci/premerge_advisor_explain.py

  Log Message:
  -----------
  [CI] Make Premerge only Comment if Tests Failed (#169102)

Before, we were unconditionally writing a message. After this patch, we
only write a message when the tests failed, or there is already an
existing comment. This is how this workflow was intended to work
originally, but is not how it ended up working, mostly due to my
misconceptions around how the existing code formatter pass handled this
case (we need to actually not write out any comments, not write out a
specific message).


  Commit: 58e2dde45f775328b71b532e65762a9696ccccbd
      https://github.com/llvm/llvm-project/commit/58e2dde45f775328b71b532e65762a9696ccccbd
  Author: Joshua Haberman <jhaberman at gmail.com>
  Date:   2025-11-21 (Fri, 21 Nov 2025)

  Changed paths:
    M lld/MachO/SymbolTable.cpp
    A lld/test/MachO/weak-alias-override.s

  Log Message:
  -----------
  [lld:MachO] Allow independent override of weak symbols aliased via .set (#167825)

Currently, if multiple external weak symbols are defined at the same
address in an object file (e.g., by using the .set assembler directive
to alias them to a single weak variable), ld64.lld treats them as a
single unit. When any one of these symbols is overridden by a strong
definition, all of the original weak symbols resolve to the strong
definition.

This patch changes the behavior in `transplantSymbolsAtOffset`. When a
weak symbol is being replaced by a strong one, only non-external (local)
symbols at the same offset are moved to the new symbol's section. Other
*external* symbols are no longer transplanted.

This allows each external weak symbol to be overridden independently.
This behavior is consistent with Apple's ld-classic, but diverges from
ld-prime in one case, as noted on
https://github.com/llvm/llvm-project/issues/167262 (this discrepancy has
recently been reported to Apple).

### Backward Compatibility

This change alters linker behavior for a specific scenario. The creation
of multiple external weak symbols aliased to the same address via
assembler directives is primarily an advanced technique. It's unlikely
that existing builds rely on the current behavior of all aliases being
overridden together.

If there are concerns, this could be put behind a linker option, but the
new default seems more correct, less surprising, and is consistent with
ld-classic.

### Testing

The new lit test `test/MachO/weak-alias-override.s` verifies this
behavior using llvm-nm.

Fixes #167262


  Commit: 54a4da9df6906b63878ad6d0ea6da3ed7d2d8432
      https://github.com/llvm/llvm-project/commit/54a4da9df6906b63878ad6d0ea6da3ed7d2d8432
  Author: Zequan Wu <zequanwu at google.com>
  Date:   2025-11-21 (Fri, 21 Nov 2025)

  Changed paths:
    M clang/docs/ReleaseNotes.rst
    M clang/include/clang/AST/ASTContext.h
    M clang/include/clang/AST/ASTMutationListener.h
    M clang/include/clang/AST/DeclCXX.h
    M clang/include/clang/AST/VTableBuilder.h
    M clang/include/clang/Basic/ABI.h
    M clang/include/clang/Basic/TargetInfo.h
    M clang/include/clang/Sema/Sema.h
    M clang/include/clang/Serialization/ASTWriter.h
    M clang/lib/AST/ASTContext.cpp
    M clang/lib/AST/DeclCXX.cpp
    M clang/lib/AST/Expr.cpp
    M clang/lib/AST/ItaniumMangle.cpp
    M clang/lib/AST/MicrosoftMangle.cpp
    M clang/lib/AST/VTableBuilder.cpp
    M clang/lib/Basic/TargetInfo.cpp
    M clang/lib/CIR/CodeGen/CIRGenExprCXX.cpp
    M clang/lib/CIR/CodeGen/CIRGenFunction.cpp
    M clang/lib/CIR/CodeGen/CIRGenVTables.cpp
    M clang/lib/CodeGen/CGCXX.cpp
    M clang/lib/CodeGen/CGCXXABI.cpp
    M clang/lib/CodeGen/CGCXXABI.h
    M clang/lib/CodeGen/CGClass.cpp
    M clang/lib/CodeGen/CGDebugInfo.cpp
    M clang/lib/CodeGen/CGExprCXX.cpp
    M clang/lib/CodeGen/CGVTables.cpp
    M clang/lib/CodeGen/CodeGenModule.cpp
    M clang/lib/CodeGen/CodeGenModule.h
    M clang/lib/CodeGen/ItaniumCXXABI.cpp
    M clang/lib/CodeGen/MicrosoftCXXABI.cpp
    M clang/lib/Sema/SemaDeclCXX.cpp
    M clang/lib/Sema/SemaExprCXX.cpp
    M clang/lib/Serialization/ASTCommon.h
    M clang/lib/Serialization/ASTReaderDecl.cpp
    M clang/lib/Serialization/ASTWriter.cpp
    M clang/lib/Serialization/ASTWriterDecl.cpp
    M clang/test/CodeGenCXX/dllexport.cpp
    M clang/test/CodeGenCXX/microsoft-abi-extern-template.cpp
    M clang/test/CodeGenCXX/microsoft-abi-structors.cpp
    M clang/test/CodeGenCXX/microsoft-abi-thunks.cpp
    M clang/test/CodeGenCXX/microsoft-abi-vftables.cpp
    M clang/test/CodeGenCXX/microsoft-abi-virtual-inheritance.cpp
    M clang/test/CodeGenCXX/microsoft-abi-vtables-multiple-nonvirtual-inheritance-vdtors.cpp
    M clang/test/CodeGenCXX/microsoft-abi-vtables-return-thunks.cpp
    M clang/test/CodeGenCXX/microsoft-abi-vtables-single-inheritance.cpp
    M clang/test/CodeGenCXX/microsoft-abi-vtables-virtual-inheritance-vtordisps.cpp
    M clang/test/CodeGenCXX/microsoft-abi-vtables-virtual-inheritance.cpp
    M clang/test/CodeGenCXX/microsoft-no-rtti-data.cpp
    R clang/test/CodeGenCXX/microsoft-vector-deleting-dtors.cpp
    M clang/test/CodeGenCXX/vtable-consteval.cpp
    M clang/test/DebugInfo/CXX/windows-dtor.cpp
    R clang/test/Modules/Inputs/msvc-vector-deleting-dtors/module.modulemap
    R clang/test/Modules/Inputs/msvc-vector-deleting-dtors/msvc-vector-deleting-dtors.h
    R clang/test/Modules/msvc-vector-deleting-destructors.cpp
    M clang/test/Modules/vtable-windows.cppm
    R clang/test/PCH/Inputs/msvc-vector-deleting-dtors.h
    R clang/test/PCH/msvc-vector-deleting-destructors.cpp
    M clang/test/Profile/cxx-abc-deleting-dtor.cpp
    R clang/test/SemaCXX/gh134265.cpp
    M lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp

  Log Message:
  -----------
  Revert "Reland [MS][clang] Add support for vector deleting destructors" (#169116)

This reverts 4d10c1165442cbbbc0017b48fcdd7dae1ccf3678 and its two
dependent commits: e6b9805b574bb5c90263ec7fbcb94df76d2807a4 and
c243406a695ca056a07ef4064b0f9feee7685320, see discussion in
https://github.com/llvm/llvm-project/pull/165598#issuecomment-3563825509.


  Commit: 8bdbc57b8975d77da88562392299ee5d9c2b6cbb
      https://github.com/llvm/llvm-project/commit/8bdbc57b8975d77da88562392299ee5d9c2b6cbb
  Author: Dan Liew <dan at su-root.co.uk>
  Date:   2025-11-21 (Fri, 21 Nov 2025)

  Changed paths:
    M lldb/packages/Python/lldbsuite/test/decorators.py
    M lldb/test/Shell/helper/toolchain.py
    M llvm/utils/lit/lit/llvm/config.py

  Log Message:
  -----------
  [NFC][LLDB] Make it possible to detect if the compiler used in tests supports -fbounds-safety (#169112)

This patch makes it possible to detect in LLDB shell and API tests if
`-fbounds-safety` is supported by the compiler used for testing. The
motivation behind this is to allow upstreaming
https://github.com/swiftlang/llvm-project/pull/11835 but with the tests
disabled in upstream because the full implementation of -fbounds-safety
isn't available in Clang yet.

For shell tests when -fbounds-safety is available the
`clang-bounds-safety` feature is available which means tests can be
annotated with `# REQUIRES: clang-bounds-safety`.

API tests that need -fbounds-safety support in the compiler can use the
new `@skipUnlessBoundsSafety` decorator.

rdar://165225507


  Commit: b6dadc7e4d263e9983418d5362653edd4575c1b2
      https://github.com/llvm/llvm-project/commit/b6dadc7e4d263e9983418d5362653edd4575c1b2
  Author: dpalermo <dan.palermo at amd.com>
  Date:   2025-11-21 (Fri, 21 Nov 2025)

  Changed paths:
    M clang/lib/CodeGen/CGOpenMPRuntime.cpp
    M clang/test/OpenMP/target_codegen.cpp
    M clang/test/OpenMP/target_defaultmap_codegen_01.cpp
    M clang/test/OpenMP/target_depend_codegen.cpp
    R clang/test/OpenMP/target_firstprivate_pointer_codegen.cpp
    M clang/test/OpenMP/target_map_codegen_01.cpp
    M clang/test/OpenMP/target_map_codegen_09.cpp
    M clang/test/OpenMP/target_map_codegen_10.cpp
    M clang/test/OpenMP/target_map_codegen_26.cpp
    M clang/test/OpenMP/target_parallel_depend_codegen.cpp
    M clang/test/OpenMP/target_parallel_for_depend_codegen.cpp
    M clang/test/OpenMP/target_parallel_for_simd_depend_codegen.cpp
    M clang/test/OpenMP/target_simd_depend_codegen.cpp
    M clang/test/OpenMP/target_teams_depend_codegen.cpp
    M clang/test/OpenMP/target_teams_distribute_depend_codegen.cpp
    M clang/test/OpenMP/target_teams_distribute_parallel_for_depend_codegen.cpp
    M clang/test/OpenMP/target_teams_distribute_parallel_for_simd_depend_codegen.cpp
    M clang/test/OpenMP/target_teams_distribute_simd_depend_codegen.cpp

  Log Message:
  -----------
  Revert "[OpenMP] Fix firstprivate pointer handling in target regions" (#169143)

Reverts llvm/llvm-project#167879

This PR is causing assertions in the check-offload tests:

https://lab.llvm.org/staging/#/builders/105
https://lab.llvm.org/staging/#/builders/105/builds/37057


  Commit: cc7e2067b1a0fd799a5bfeab4b11d399ea7831a2
      https://github.com/llvm/llvm-project/commit/cc7e2067b1a0fd799a5bfeab4b11d399ea7831a2
  Author: Kazu Hirata <kazu at google.com>
  Date:   2025-11-21 (Fri, 21 Nov 2025)

  Changed paths:
    M lldb/source/Target/Target.cpp
    M lldb/source/Utility/StringExtractorGDBRemote.cpp

  Log Message:
  -----------
  [lldb] Remove redundant declarations (NFC) (#169003)

In C++17, static constexpr members are implicitly inline, so they no
longer require an out-of-line definition.

Identified with readability-redundant-declaration.


  Commit: 89189218b8ba0a2a64ae1f0f76f485eaf06ad6c6
      https://github.com/llvm/llvm-project/commit/89189218b8ba0a2a64ae1f0f76f485eaf06ad6c6
  Author: Sergei Druzhkov <serzhdruzhok at gmail.com>
  Date:   2025-11-21 (Fri, 21 Nov 2025)

  Changed paths:
    M lldb/source/Plugins/Language/CPlusPlus/LibStdcpp.cpp
    M lldb/source/Plugins/Language/ObjC/NSSet.cpp

  Log Message:
  -----------
  [NFC][lldb] Remove duplicated checks (#169093)

Removed duplicated checks reported by cppcheck


  Commit: 3841e7d818de2b7581351c6de3bfc9b13bdaeb30
      https://github.com/llvm/llvm-project/commit/3841e7d818de2b7581351c6de3bfc9b13bdaeb30
  Author: Timm Baeder <tbaeder at redhat.com>
  Date:   2025-11-22 (Sat, 22 Nov 2025)

  Changed paths:
    M clang/lib/AST/ByteCode/Interp.cpp
    M clang/lib/AST/ByteCode/InterpFrame.h
    M clang/test/AST/ByteCode/new-delete.cpp

  Log Message:
  -----------
  [clang][bytecode] Don't call getThis() on the bottom function frame (#169044)

We can't access the calling frame in that case.

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


  Commit: 6b75b44ed5ed6e6e72955132a60ce8cca38bcbad
      https://github.com/llvm/llvm-project/commit/6b75b44ed5ed6e6e72955132a60ce8cca38bcbad
  Author: Hristo Hristov <hghristov.rmm at gmail.com>
  Date:   2025-11-22 (Sat, 22 Nov 2025)

  Changed paths:
    M libcxx/test/std/utilities/any/any.nonmembers/any.cast/any_cast_pointer.pass.cpp
    M libcxx/test/std/utilities/any/any.nonmembers/any.cast/any_cast_reference.pass.cpp
    M libcxx/test/std/utilities/any/any.nonmembers/any.cast/any_cast_request_invalid_value_category.verify.cpp
    M libcxx/test/std/utilities/any/any.nonmembers/any.cast/const_correctness.verify.cpp
    M libcxx/test/std/utilities/any/any.nonmembers/any.cast/not_copy_constructible.verify.cpp
    M libcxx/test/std/utilities/any/any.nonmembers/any.cast/reference_types.verify.cpp

  Log Message:
  -----------
  [libc++][any][NFC] Reformat and refactor any_cast tests (#169057)

...in preparation for https://github.com/llvm/llvm-project/pull/168826
as requested in the review.

Co-authored-by: Hristo Hristov <zingam at outlook.com>


  Commit: 226765b60cc54e03386f38874a177c906f5aa6e7
      https://github.com/llvm/llvm-project/commit/226765b60cc54e03386f38874a177c906f5aa6e7
  Author: Florian Mayer <fmayer at google.com>
  Date:   2025-11-21 (Fri, 21 Nov 2025)

  Changed paths:
    M libcxx/utils/libcxx/test/features/availability.py

  Log Message:
  -----------
  [NFC] [test] [libcxx] Fix invalid escape sequences (#168636)

```
>>> "_target-has-llvm-21 || target={{.+}}-apple-macosx{{26.[0-9](.\d+)?}}" == r"_target-has-llvm-21 || target={{.+}}-apple-macosx{{26.[0-9](.\\
d+)?}}"
<python-input-6>:1: SyntaxWarning: invalid escape sequence '\d'
True
>>> "_target-has-llvm-20 || target={{.+}}-apple-macosx{{15.[4-9](.\d+)?}}" == r"_target-has-llvm-20 || target={{.+}}-apple-macosx{{15.[4-9](.\\
d+)?}}"
<python-input-7>:1: SyntaxWarning: invalid escape sequence '\d'
True
>>> "_target-has-llvm-19 || target={{.+}}-apple-macosx{{15.[0-3](.\d+)?}}" == r"_target-has-llvm-19 || target={{.+}}-apple-macosx{{15.[0-3](.\\
d+)?}}"
<python-input-8>:1: SyntaxWarning: invalid escape sequence '\d'
True
>>> "_target-has-llvm-18 || target={{.+}}-apple-macosx{{14.[4-9](.\d+)?}}" == r"_target-has-llvm-18 || target={{.+}}-apple-macosx{{14.[4-9](.\\
d+)?}}"
<python-input-9>:1: SyntaxWarning: invalid escape sequence '\d'
True
```


  Commit: ad7a5d4e059741819baa1561bfd9bc98d29260f3
      https://github.com/llvm/llvm-project/commit/ad7a5d4e059741819baa1561bfd9bc98d29260f3
  Author: Aiden Grossman <aidengrossman at google.com>
  Date:   2025-11-22 (Sat, 22 Nov 2025)

  Changed paths:
    M llvm/include/llvm/CodeGen/CallBrPrepare.h
    M llvm/lib/CodeGen/CallBrPrepare.cpp

  Log Message:
  -----------
  [CallBrPrepare] Prefer Function &F over Function &Fn

Function &F is the more standard abbreviation (~4000 uses in llvm versus
~300 uses).


  Commit: 20ebc7ea8209cb8f1ff3916706b6e7d8232c9f3f
      https://github.com/llvm/llvm-project/commit/20ebc7ea8209cb8f1ff3916706b6e7d8232c9f3f
  Author: Shubham Sandeep Rastogi <Shubham.Rastogi at sony.com>
  Date:   2025-11-22 (Sat, 22 Nov 2025)

  Changed paths:
    M llvm/docs/SourceLevelDebugging.rst
    M llvm/include/llvm/Bitcode/LLVMBitCodes.h
    M llvm/include/llvm/IR/DIBuilder.h
    M llvm/include/llvm/IR/DebugInfo.h
    M llvm/include/llvm/IR/DebugProgramInstruction.h
    M llvm/lib/AsmParser/LLLexer.cpp
    M llvm/lib/AsmParser/LLParser.cpp
    M llvm/lib/Bitcode/Reader/BitcodeAnalyzer.cpp
    M llvm/lib/Bitcode/Reader/BitcodeReader.cpp
    M llvm/lib/Bitcode/Writer/BitcodeWriter.cpp
    M llvm/lib/IR/AsmWriter.cpp
    M llvm/lib/IR/DIBuilder.cpp
    M llvm/lib/IR/DebugInfo.cpp
    M llvm/lib/IR/DebugProgramInstruction.cpp
    M llvm/lib/IR/Verifier.cpp
    A llvm/test/Assembler/dbg_declare_value.ll

  Log Message:
  -----------
  Add new llvm.dbg.declare_value intrinsic. (#168132)

For swift async code, we need to use a debug intrinsic that behaves like
an llvm.dbg.declare but can take any location type rather than just a
pointer or integer.

To solve this, a new debug instrinsic called llvm.dbg.declare_value has
been created, which behaves exactly like an llvm.dbg.declare but can
take non pointer and integer location types.

More information here:
https://discourse.llvm.org/t/rfc-introduce-new-llvm-dbg-coroframe-entry-intrinsic/88269

This is the first patch as part of a stack of patches, with the one
succeeding it being: https://github.com/llvm/llvm-project/pull/168134


  Commit: b8f8ef5109fe117dc53f4f8f6afb1b2d3bd4101d
      https://github.com/llvm/llvm-project/commit/b8f8ef5109fe117dc53f4f8f6afb1b2d3bd4101d
  Author: Marco Elver <elver at google.com>
  Date:   2025-11-22 (Sat, 22 Nov 2025)

  Changed paths:
    M clang/lib/Driver/SanitizerArgs.cpp
    M clang/test/Driver/fsanitize-coverage.c

  Log Message:
  -----------
  [Clang][Driver] Allow -fsanitize-coverage with -fsanitize=alloc-token (#169128)

These are not incompatible; allow them to be combined.


  Commit: 4128b213ee93750766c57b5b37d239be53b80c26
      https://github.com/llvm/llvm-project/commit/4128b213ee93750766c57b5b37d239be53b80c26
  Author: Sirui Mu <msrlancern at gmail.com>
  Date:   2025-11-22 (Sat, 22 Nov 2025)

  Changed paths:
    M clang/lib/CIR/CodeGen/CIRGenAtomic.cpp
    M clang/test/CIR/CodeGen/atomic.c

  Log Message:
  -----------
  [CIR] Add support for non-compile-time memory order (#168892)

This patch upstreams CIR support for atomic operations with memory
orders that are not known at compile time.


  Commit: 7305b6eb5458b5cea62b3ab70da95b790cf988f3
      https://github.com/llvm/llvm-project/commit/7305b6eb5458b5cea62b3ab70da95b790cf988f3
  Author: Muhammad Abdul <alilo.ghazali at gmail.com>
  Date:   2025-11-22 (Sat, 22 Nov 2025)

  Changed paths:
    M clang/include/clang/Basic/BuiltinsX86.td
    M clang/lib/AST/ByteCode/InterpBuiltin.cpp
    M clang/lib/AST/ExprConstant.cpp
    M clang/test/CodeGen/X86/avx512f-builtins.c
    M clang/test/CodeGen/X86/avx512vl-builtins.c

  Log Message:
  -----------
  [clang][X86] Allow VALIGND/Q element-shift intrinsics in constexpr evaluation (#168206)

Fixes #167681


  Commit: 9daf4345ec836d50740805c878bd570dd4093354
      https://github.com/llvm/llvm-project/commit/9daf4345ec836d50740805c878bd570dd4093354
  Author: Michael Klemm <michael.klemm at amd.com>
  Date:   2025-11-22 (Sat, 22 Nov 2025)

  Changed paths:
    M clang/include/clang/Options/Options.td
    M clang/lib/Driver/ToolChains/Flang.cpp
    M flang/include/flang/Support/LangOptions.def
    M flang/lib/Frontend/CompilerInvocation.cpp
    M flang/lib/Frontend/FrontendActions.cpp
    M flang/lib/Optimizer/Builder/IntrinsicCall.cpp
    M flang/test/Driver/fast-real-mod.f90
    M flang/test/Lower/Intrinsics/fast-real-mod.f90

  Log Message:
  -----------
  [Flang] Add -ffast-real-mod back for further control of MOD optimizations (#167118)

It turns out that having `-ffast-math` as the only option to control
optimizations for MOD for REAL kinds (PR #160660) is too coarse-grained
for some applications. Thus, this PR adds back `-ffast-real-mod` to have
more control over the optimization. The `-ffast-math` flag will still
enable the optimization, and `-fno-fast-real-mod` allows one to disable
it.


  Commit: 8ba27138b2f948224fefdd0d2a44862d6100d119
      https://github.com/llvm/llvm-project/commit/8ba27138b2f948224fefdd0d2a44862d6100d119
  Author: Hristo Hristov <hghristov.rmm at gmail.com>
  Date:   2025-11-22 (Sat, 22 Nov 2025)

  Changed paths:
    M libcxx/include/any
    A libcxx/test/libcxx/utilities/any/nodiscard.verify.cpp
    M libcxx/test/std/utilities/any/any.nonmembers/any.cast/any_cast_request_invalid_value_category.verify.cpp
    M libcxx/test/std/utilities/any/any.nonmembers/any.cast/const_correctness.verify.cpp
    M libcxx/test/std/utilities/any/any.nonmembers/any.cast/not_copy_constructible.verify.cpp
    M libcxx/test/std/utilities/any/any.nonmembers/any.cast/reference_types.verify.cpp
    M libcxx/test/std/utilities/any/any.nonmembers/any.cast/void.verify.cpp

  Log Message:
  -----------
  [libc++][any] Applied `[[nodiscard]]` (#168826)

`[[nodiscard]]` should be applied to functions where discarding the
return value is most likely a correctness issue.
-
https://libcxx.llvm.org/CodingGuidelines.html#apply-nodiscard-where-relevant


  Commit: 2e424deeb6180d112323f4df955c8034eb56780c
      https://github.com/llvm/llvm-project/commit/2e424deeb6180d112323f4df955c8034eb56780c
  Author: stomfaig <55883018+stomfaig at users.noreply.github.com>
  Date:   2025-11-22 (Sat, 22 Nov 2025)

  Changed paths:
    M clang/include/clang/Basic/BuiltinsX86.td
    M clang/lib/AST/ByteCode/InterpBuiltin.cpp
    M clang/lib/AST/ExprConstant.cpp
    M clang/lib/Headers/avx512fintrin.h
    M clang/lib/Headers/avx512vlintrin.h
    M clang/lib/Headers/avxintrin.h
    M clang/test/CodeGen/X86/avx-builtins.c
    M clang/test/CodeGen/X86/avx512f-builtins.c
    M clang/test/CodeGen/X86/avx512vl-builtins.c

  Log Message:
  -----------
   [Clang][X86] VectorExprEvaluator::VisitCallExpr / InterpretBuiltin - allow VPERMILPD/S variable mask intrinsics to be used in constexpr (#168861)

Allowing VPERMILPD/S intrinsics to be used in constexpr

Closes #167878


  Commit: cc4dd015ad4a1b33d43fbac00d62f6b309a96ff4
      https://github.com/llvm/llvm-project/commit/cc4dd015ad4a1b33d43fbac00d62f6b309a96ff4
  Author: Timm Baeder <tbaeder at redhat.com>
  Date:   2025-11-22 (Sat, 22 Nov 2025)

  Changed paths:
    M clang/lib/AST/ByteCode/Compiler.cpp
    M clang/lib/AST/ByteCode/Compiler.h

  Log Message:
  -----------
  [clang][bytecode][NFC] Remove VariableScope::emitDestruction (#169148)

destroyLocals() does the same thing.


  Commit: e8af134bb7f891caa49178c8a04a8ca944c611df
      https://github.com/llvm/llvm-project/commit/e8af134bb7f891caa49178c8a04a8ca944c611df
  Author: Pedro Lobo <pedro.lobo at tecnico.ulisboa.pt>
  Date:   2025-11-22 (Sat, 22 Nov 2025)

  Changed paths:
    M llvm/lib/Transforms/InstCombine/InstCombineCompares.cpp
    M llvm/test/Transforms/InstCombine/icmp-trunc.ll

  Log Message:
  -----------
  [InstCombine] Generalize trunc-shift-icmp fold from (1 << Y) to (Pow2 << Y) (#169163)

Extends the `icmp(trunc(shl))` fold to handle any power of 2 constant as
the shift base, not just 1. This generalizes the following patterns by
adjusting the comparison offsets by `log2(Pow2)`.

```llvm
(trunc (1 << Y) to iN) == 0    --> Y u>= N
(trunc (1 << Y) to iN) != 0    --> Y u<  N
(trunc (1 << Y) to iN) == 2**C --> Y ==  C
(trunc (1 << Y) to iN) != 2**C --> Y !=  C

; to

(trunc (Pow2 << Y) to iN) == 0    --> Y u>= N - log2(Pow2)
(trunc (Pow2 << Y) to iN) != 0    --> Y u<  N - log2(Pow2)
(trunc (Pow2 << Y) to iN) == 2**C --> Y ==  C - log2(Pow2)
(trunc (Pow2 << Y) to iN) != 2**C --> Y !=  C - log2(Pow2)
```

Proof: https://alive2.llvm.org/ce/z/2zwTkp


  Commit: c4921b75a96ccebbad57a9938ec34ca7d0c89c42
      https://github.com/llvm/llvm-project/commit/c4921b75a96ccebbad57a9938ec34ca7d0c89c42
  Author: n2h9 <13541181+n2h9 at users.noreply.github.com>
  Date:   2025-11-22 (Sat, 22 Nov 2025)

  Changed paths:
    M lldb/include/lldb/Core/Disassembler.h
    M lldb/source/Core/Disassembler.cpp

  Log Message:
  -----------
  [lldb] [disassembler] chore: update VariableAnnotator::Annotate to except only Instruction as param and drop module and target (#168276)


  Commit: 126462035a1eb7adeb97f6beac48b6bddac65d09
      https://github.com/llvm/llvm-project/commit/126462035a1eb7adeb97f6beac48b6bddac65d09
  Author: Aiden Grossman <aidengrossman at google.com>
  Date:   2025-11-22 (Sat, 22 Nov 2025)

  Changed paths:
    M compiler-rt/test/ubsan_minimal/TestCases/test-darwin-interface.c

  Log Message:
  -----------
  [UBSan] Fix test-darwin-interface.c on X86 Darwin with Internal Shell (#169105)

This test was failing with the internal shell due to the use of
subshells. This was not caught in my initial round of testing due to me
only using a M4 Mac for running my tests.


  Commit: 456ca91815c3fdb60b5ca695c8bb05b75016a343
      https://github.com/llvm/llvm-project/commit/456ca91815c3fdb60b5ca695c8bb05b75016a343
  Author: NagaChaitanya Vellanki <pnagato at protonmail.com>
  Date:   2025-11-22 (Sat, 22 Nov 2025)

  Changed paths:
    M clang/include/clang/Basic/BuiltinsX86.td
    M clang/lib/AST/ByteCode/InterpBuiltin.cpp
    M clang/lib/AST/ExprConstant.cpp
    M clang/lib/Headers/avx512bitalgintrin.h
    M clang/lib/Headers/avx512vlbitalgintrin.h
    M clang/test/CodeGen/X86/avx512bitalg-builtins.c
    M clang/test/CodeGen/X86/avx512vlbitalg-builtins.c

  Log Message:
  -----------
  [Clang] VectorExprEvaluator::VisitCallExpr / InterpretBuiltin - Allow AVX512 VPSHUFBITQMB intrinsics to be used in constexpr (#168100)

Resolves #161337


  Commit: b00c620b3504565d9769a434bc7d4e97854cd788
      https://github.com/llvm/llvm-project/commit/b00c620b3504565d9769a434bc7d4e97854cd788
  Author: Simon Pilgrim <llvm-dev at redking.me.uk>
  Date:   2025-11-22 (Sat, 22 Nov 2025)

  Changed paths:
    M clang/test/CodeGen/X86/avx512f-builtins.c
    M clang/test/CodeGen/X86/avx512vl-builtins.c

  Log Message:
  -----------
  [X86] Move _mm512_mask_blend_pd/ps tests to avx512f-builtins.c (#169170)

These aren't AVX512VL tests


  Commit: 216e85bdda22ae7eda3f3e04c51d9d6d82e2b617
      https://github.com/llvm/llvm-project/commit/216e85bdda22ae7eda3f3e04c51d9d6d82e2b617
  Author: Maksim Levental <maksim.levental at gmail.com>
  Date:   2025-11-22 (Sat, 22 Nov 2025)

  Changed paths:
    M mlir/python/mlir/dialects/linalg/opdsl/lang/yaml_helper.py
    M mlir/python/requirements.txt

  Log Message:
  -----------
  [MLIR][Python] remove PyYAML as a dep (#169145)

PyYAML is not an actual use-time/runtime dependency of our bindings. It
is necessary only if someone wants to regenerate
`LinalgNamedStructuredOps.yaml`:
https://github.com/llvm/llvm-project/blob/93097b2d47c87bf5eee0a2612d961c7a01831eab/mlir/tools/mlir-linalg-ods-gen/update_core_linalg_named_ops.sh.in#L29

This PR does the minimal refactor to remove the need during actual run/use time.


  Commit: c2d659b9b8efac9f80b8ebcb2b38b61295d82bdc
      https://github.com/llvm/llvm-project/commit/c2d659b9b8efac9f80b8ebcb2b38b61295d82bdc
  Author: Krzysztof Parzyszek <Krzysztof.Parzyszek at amd.com>
  Date:   2025-11-22 (Sat, 22 Nov 2025)

  Changed paths:
    M flang/include/flang/Parser/parse-tree.h
    M flang/lib/Parser/executable-parsers.cpp
    M flang/lib/Parser/openmp-parsers.cpp
    M flang/lib/Parser/parse-tree.cpp
    M flang/lib/Semantics/canonicalize-omp.cpp
    M flang/lib/Semantics/check-omp-loop.cpp
    M flang/lib/Semantics/check-omp-structure.h
    M flang/lib/Semantics/resolve-directives.cpp
    M flang/test/Lower/OpenMP/nested-loop-transformation-construct02.f90
    M flang/test/Parser/OpenMP/fail-looprange.f90
    M flang/test/Parser/OpenMP/loop-transformation-construct01.f90
    M flang/test/Parser/OpenMP/loop-transformation-construct02.f90
    M flang/test/Parser/OpenMP/tile-fail.f90
    M flang/test/Semantics/OpenMP/clause-validity01.f90
    M flang/test/Semantics/OpenMP/do21.f90
    M flang/test/Semantics/OpenMP/loop-association.f90
    M flang/test/Semantics/OpenMP/loop-transformation-construct01.f90
    M flang/test/Semantics/OpenMP/loop-transformation-construct02.f90
    M flang/test/Semantics/OpenMP/loop-transformation-construct03.f90
    M flang/test/Semantics/OpenMP/tile02.f90

  Log Message:
  -----------
  [flang][OpenMP] Implement loop nest parser (#168884)

Previously, loop constructs were parsed in a piece-wise manner: the
begin directive, the body, and the end directive were parsed separately.
Later on in canonicalization they were all coalesced into a loop
construct. To facilitate that end-loop directives were given a special
treatment, namely they were parsed as OpenMP constructs. As a result
syntax errors caused by misplaced end-loop directives were handled
differently from those cause by misplaced non-loop end directives.

The new loop nest parser constructs the complete loop construct,
removing the need for the canonicalization step. Additionally, it is the
basis for parsing loop-sequence-associated constructs in the future.

It also removes the need for the special treatment of end-loop
directives. While this patch temporarily degrades the error messaging
for misplaced end-loop directives, it enables uniform handling of any
misplaced end-directives in the future.


  Commit: 1dd9d2b1f0cc92d362daf5249d73ba1bcdb811a6
      https://github.com/llvm/llvm-project/commit/1dd9d2b1f0cc92d362daf5249d73ba1bcdb811a6
  Author: Krzysztof Parzyszek <Krzysztof.Parzyszek at amd.com>
  Date:   2025-11-22 (Sat, 22 Nov 2025)

  Changed paths:
    M .ci/premerge_advisor_explain.py
    M clang-tools-extra/clang-doc/assets/class-template.mustache
    M clang-tools-extra/clang-doc/assets/namespace-template.mustache
    M clang-tools-extra/clang-tidy/.clang-tidy
    M clang-tools-extra/clang-tidy/objc/AssertEqualsCheck.cpp
    M clang-tools-extra/clang-tidy/utils/ExceptionAnalyzer.cpp
    M clang-tools-extra/include-cleaner/test/lit.cfg.py
    M clang-tools-extra/test/clang-doc/mustache-index.cpp
    M clang-tools-extra/test/clang-doc/mustache-separate-namespace.cpp
    M clang/docs/LibASTMatchersReference.html
    M clang/docs/ReleaseNotes.rst
    M clang/include/clang/AST/ASTContext.h
    M clang/include/clang/AST/ASTMutationListener.h
    M clang/include/clang/AST/DeclCXX.h
    M clang/include/clang/AST/ExprCXX.h
    M clang/include/clang/AST/ExprObjC.h
    M clang/include/clang/AST/OpenACCClause.h
    M clang/include/clang/AST/OpenMPClause.h
    M clang/include/clang/AST/Stmt.h
    M clang/include/clang/AST/VTableBuilder.h
    M clang/include/clang/ASTMatchers/ASTMatchers.h
    M clang/include/clang/Basic/ABI.h
    M clang/include/clang/Basic/Builtins.td
    M clang/include/clang/Basic/BuiltinsX86.td
    M clang/include/clang/Basic/TargetInfo.h
    M clang/include/clang/CIR/Dialect/IR/CIROps.td
    M clang/include/clang/Options/Options.td
    M clang/include/clang/Sema/Sema.h
    M clang/include/clang/Serialization/ASTWriter.h
    M clang/lib/AST/ASTContext.cpp
    M clang/lib/AST/ByteCode/Compiler.cpp
    M clang/lib/AST/ByteCode/Compiler.h
    M clang/lib/AST/ByteCode/Interp.cpp
    M clang/lib/AST/ByteCode/InterpBuiltin.cpp
    M clang/lib/AST/ByteCode/InterpFrame.h
    M clang/lib/AST/DeclCXX.cpp
    M clang/lib/AST/Expr.cpp
    M clang/lib/AST/ExprConstant.cpp
    M clang/lib/AST/ExprObjC.cpp
    M clang/lib/AST/ItaniumMangle.cpp
    M clang/lib/AST/MicrosoftMangle.cpp
    M clang/lib/AST/VTableBuilder.cpp
    M clang/lib/Basic/TargetInfo.cpp
    M clang/lib/CIR/CodeGen/CIRGenAtomic.cpp
    M clang/lib/CIR/CodeGen/CIRGenBuiltin.cpp
    M clang/lib/CIR/CodeGen/CIRGenBuiltinX86.cpp
    M clang/lib/CIR/CodeGen/CIRGenCXX.cpp
    M clang/lib/CIR/CodeGen/CIRGenDeclOpenACC.cpp
    M clang/lib/CIR/CodeGen/CIRGenExprCXX.cpp
    M clang/lib/CIR/CodeGen/CIRGenFunction.cpp
    M clang/lib/CIR/CodeGen/CIRGenOpenACCClause.cpp
    M clang/lib/CIR/CodeGen/CIRGenVTables.cpp
    M clang/lib/CIR/Dialect/Transforms/LoweringPrepare.cpp
    M clang/lib/CIR/Lowering/DirectToLLVM/LowerToLLVM.cpp
    M clang/lib/CodeGen/CGCXX.cpp
    M clang/lib/CodeGen/CGCXXABI.cpp
    M clang/lib/CodeGen/CGCXXABI.h
    M clang/lib/CodeGen/CGClass.cpp
    M clang/lib/CodeGen/CGDebugInfo.cpp
    M clang/lib/CodeGen/CGExprCXX.cpp
    M clang/lib/CodeGen/CGHLSLBuiltins.cpp
    M clang/lib/CodeGen/CGOpenMPRuntime.cpp
    M clang/lib/CodeGen/CGVTables.cpp
    M clang/lib/CodeGen/CodeGenModule.cpp
    M clang/lib/CodeGen/CodeGenModule.h
    M clang/lib/CodeGen/ItaniumCXXABI.cpp
    M clang/lib/CodeGen/MicrosoftCXXABI.cpp
    M clang/lib/Driver/SanitizerArgs.cpp
    M clang/lib/Driver/ToolChains/Flang.cpp
    M clang/lib/Headers/avx512bitalgintrin.h
    M clang/lib/Headers/avx512fintrin.h
    M clang/lib/Headers/avx512vlbitalgintrin.h
    M clang/lib/Headers/avx512vlintrin.h
    M clang/lib/Headers/avxintrin.h
    M clang/lib/Headers/hlsl/hlsl_intrinsics.h
    M clang/lib/Sema/HLSLBuiltinTypeDeclBuilder.cpp
    M clang/lib/Sema/HLSLBuiltinTypeDeclBuilder.h
    M clang/lib/Sema/SemaChecking.cpp
    M clang/lib/Sema/SemaDeclCXX.cpp
    M clang/lib/Sema/SemaExprCXX.cpp
    M clang/lib/Sema/SemaHLSL.cpp
    M clang/lib/Sema/SemaStmt.cpp
    M clang/lib/Serialization/ASTCommon.h
    M clang/lib/Serialization/ASTReaderDecl.cpp
    M clang/lib/Serialization/ASTWriter.cpp
    M clang/lib/Serialization/ASTWriterDecl.cpp
    M clang/test/AST/ByteCode/new-delete.cpp
    M clang/test/AST/HLSL/StructuredBuffers-AST.hlsl
    M clang/test/AST/HLSL/TypedBuffers-AST.hlsl
    A clang/test/CIR/CodeGen/X86/avx-builtins.c
    A clang/test/CIR/CodeGen/X86/avx10_2_512bf16-builtins.c
    A clang/test/CIR/CodeGen/X86/avx10_2bf16-builtins.c
    A clang/test/CIR/CodeGen/X86/avx512f-builtins.c
    A clang/test/CIR/CodeGen/X86/avx512fp16-builtins.c
    M clang/test/CIR/CodeGen/X86/sse-builtins.c
    M clang/test/CIR/CodeGen/X86/sse2-builtins.c
    M clang/test/CIR/CodeGen/atomic.c
    A clang/test/CIR/CodeGen/builtins-overflow.cpp
    M clang/test/CIR/CodeGen/global-init.cpp
    A clang/test/CIR/CodeGenOpenACC/declare-deviceptr.cpp
    A clang/test/CIR/CodeGenOpenACC/declare-link.cpp
    M clang/test/CIR/CodeGenOpenACC/openacc-not-implemented.cpp
    M clang/test/CodeGen/X86/avx-builtins.c
    M clang/test/CodeGen/X86/avx512bitalg-builtins.c
    M clang/test/CodeGen/X86/avx512f-builtins.c
    M clang/test/CodeGen/X86/avx512vl-builtins.c
    M clang/test/CodeGen/X86/avx512vlbitalg-builtins.c
    M clang/test/CodeGen/sanitize-type-outlined.cpp
    M clang/test/CodeGenCXX/dllexport.cpp
    M clang/test/CodeGenCXX/microsoft-abi-extern-template.cpp
    M clang/test/CodeGenCXX/microsoft-abi-structors.cpp
    M clang/test/CodeGenCXX/microsoft-abi-thunks.cpp
    M clang/test/CodeGenCXX/microsoft-abi-vftables.cpp
    M clang/test/CodeGenCXX/microsoft-abi-virtual-inheritance.cpp
    M clang/test/CodeGenCXX/microsoft-abi-vtables-multiple-nonvirtual-inheritance-vdtors.cpp
    M clang/test/CodeGenCXX/microsoft-abi-vtables-return-thunks.cpp
    M clang/test/CodeGenCXX/microsoft-abi-vtables-single-inheritance.cpp
    M clang/test/CodeGenCXX/microsoft-abi-vtables-virtual-inheritance-vtordisps.cpp
    M clang/test/CodeGenCXX/microsoft-abi-vtables-virtual-inheritance.cpp
    M clang/test/CodeGenCXX/microsoft-no-rtti-data.cpp
    R clang/test/CodeGenCXX/microsoft-vector-deleting-dtors.cpp
    M clang/test/CodeGenCXX/vtable-consteval.cpp
    M clang/test/CodeGenHLSL/resources/StructuredBuffers-methods-lib.hlsl
    M clang/test/CodeGenHLSL/resources/StructuredBuffers-methods-ps.hlsl
    M clang/test/CodeGenHLSL/resources/TypedBuffers-methods.hlsl
    M clang/test/DebugInfo/CXX/windows-dtor.cpp
    M clang/test/Driver/fsanitize-coverage.c
    R clang/test/Modules/Inputs/msvc-vector-deleting-dtors/module.modulemap
    R clang/test/Modules/Inputs/msvc-vector-deleting-dtors/msvc-vector-deleting-dtors.h
    R clang/test/Modules/msvc-vector-deleting-destructors.cpp
    M clang/test/Modules/vtable-windows.cppm
    R clang/test/OpenMP/nvptx_target_exceptions_messages.cpp
    M clang/test/OpenMP/target_codegen.cpp
    M clang/test/OpenMP/target_defaultmap_codegen_01.cpp
    M clang/test/OpenMP/target_depend_codegen.cpp
    A clang/test/OpenMP/target_exceptions_messages.cpp
    R clang/test/OpenMP/target_firstprivate_pointer_codegen.cpp
    M clang/test/OpenMP/target_map_codegen_01.cpp
    M clang/test/OpenMP/target_map_codegen_09.cpp
    M clang/test/OpenMP/target_map_codegen_10.cpp
    M clang/test/OpenMP/target_map_codegen_26.cpp
    M clang/test/OpenMP/target_parallel_depend_codegen.cpp
    M clang/test/OpenMP/target_parallel_for_depend_codegen.cpp
    M clang/test/OpenMP/target_parallel_for_simd_depend_codegen.cpp
    M clang/test/OpenMP/target_simd_depend_codegen.cpp
    M clang/test/OpenMP/target_teams_depend_codegen.cpp
    M clang/test/OpenMP/target_teams_distribute_depend_codegen.cpp
    M clang/test/OpenMP/target_teams_distribute_parallel_for_depend_codegen.cpp
    M clang/test/OpenMP/target_teams_distribute_parallel_for_simd_depend_codegen.cpp
    M clang/test/OpenMP/target_teams_distribute_simd_depend_codegen.cpp
    R clang/test/PCH/Inputs/msvc-vector-deleting-dtors.h
    R clang/test/PCH/msvc-vector-deleting-destructors.cpp
    M clang/test/Profile/cxx-abc-deleting-dtor.cpp
    M clang/test/Sema/warn-fortify-source.c
    R clang/test/SemaCXX/gh134265.cpp
    M compiler-rt/lib/scudo/standalone/combined.h
    M compiler-rt/lib/scudo/standalone/memtag.h
    M compiler-rt/lib/scudo/standalone/tests/memtag_test.cpp
    M compiler-rt/lib/scudo/standalone/tests/secondary_test.cpp
    M compiler-rt/test/orc/TestCases/Darwin/x86-64/objc-imageinfo.S
    R compiler-rt/test/profile/Linux/instrprof-debug-info-correlate-warnings.c
    A compiler-rt/test/profile/Linux/instrprof-debug-info-correlate-warnings.ll
    M compiler-rt/test/ubsan_minimal/TestCases/test-darwin-interface.c
    M flang/include/flang/Support/LangOptions.def
    M flang/lib/Frontend/CompilerInvocation.cpp
    M flang/lib/Frontend/FrontendActions.cpp
    M flang/lib/Lower/Bridge.cpp
    M flang/lib/Optimizer/Builder/IntrinsicCall.cpp
    M flang/test/Driver/fast-real-mod.f90
    M flang/test/Lower/Intrinsics/fast-real-mod.f90
    M flang/test/Lower/select-case-statement.f90
    M flang/test/Semantics/OpenMP/loop-association.f90
    M flang/test/Semantics/OpenMP/loop-transformation-construct02.f90
    M flang/test/Semantics/OpenMP/loop-transformation-construct03.f90
    M libcxx/include/any
    A libcxx/test/libcxx/utilities/any/nodiscard.verify.cpp
    M libcxx/test/std/utilities/any/any.nonmembers/any.cast/any_cast_pointer.pass.cpp
    M libcxx/test/std/utilities/any/any.nonmembers/any.cast/any_cast_reference.pass.cpp
    M libcxx/test/std/utilities/any/any.nonmembers/any.cast/any_cast_request_invalid_value_category.verify.cpp
    M libcxx/test/std/utilities/any/any.nonmembers/any.cast/const_correctness.verify.cpp
    M libcxx/test/std/utilities/any/any.nonmembers/any.cast/not_copy_constructible.verify.cpp
    M libcxx/test/std/utilities/any/any.nonmembers/any.cast/reference_types.verify.cpp
    M libcxx/test/std/utilities/any/any.nonmembers/any.cast/void.verify.cpp
    M libcxx/utils/libcxx/test/features/availability.py
    M lld/COFF/DriverUtils.cpp
    M lld/COFF/Options.td
    M lld/MachO/SymbolTable.cpp
    M lld/test/COFF/driver.test
    A lld/test/MachO/weak-alias-override.s
    M lldb/bindings/lua/lua-typemaps.swig
    M lldb/cmake/modules/LLDBConfig.cmake
    M lldb/include/lldb/Core/Disassembler.h
    M lldb/include/lldb/Utility/NonNullSharedPtr.h
    M lldb/packages/Python/lldbsuite/test/decorators.py
    M lldb/source/Core/Disassembler.cpp
    M lldb/source/Plugins/Language/CPlusPlus/LibStdcpp.cpp
    M lldb/source/Plugins/Language/ObjC/NSSet.cpp
    M lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp
    M lldb/source/Target/Target.cpp
    M lldb/source/Utility/StringExtractorGDBRemote.cpp
    M lldb/test/Shell/helper/toolchain.py
    M lldb/unittests/Editline/EditlineTest.cpp
    M lldb/unittests/Expression/DWARFExpressionTest.cpp
    M llvm/docs/SourceLevelDebugging.rst
    M llvm/include/llvm/Analysis/DependenceAnalysis.h
    M llvm/include/llvm/Bitcode/LLVMBitCodes.h
    M llvm/include/llvm/CAS/OnDiskTrieRawHashMap.h
    M llvm/include/llvm/CodeGen/CallBrPrepare.h
    M llvm/include/llvm/CodeGen/SDPatternMatch.h
    M llvm/include/llvm/ExecutionEngine/Orc/Debugging/ELFDebugObjectPlugin.h
    M llvm/include/llvm/IR/DIBuilder.h
    M llvm/include/llvm/IR/DebugInfo.h
    M llvm/include/llvm/IR/DebugProgramInstruction.h
    M llvm/include/llvm/Support/ThreadPool.h
    M llvm/lib/Analysis/DependenceAnalysis.cpp
    M llvm/lib/AsmParser/LLLexer.cpp
    M llvm/lib/AsmParser/LLParser.cpp
    M llvm/lib/Bitcode/Reader/BitcodeAnalyzer.cpp
    M llvm/lib/Bitcode/Reader/BitcodeReader.cpp
    M llvm/lib/Bitcode/Writer/BitcodeWriter.cpp
    M llvm/lib/CodeGen/CallBrPrepare.cpp
    M llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
    M llvm/lib/ExecutionEngine/Orc/Debugging/ELFDebugObjectPlugin.cpp
    M llvm/lib/IR/AsmWriter.cpp
    M llvm/lib/IR/DIBuilder.cpp
    M llvm/lib/IR/DebugInfo.cpp
    M llvm/lib/IR/DebugProgramInstruction.cpp
    M llvm/lib/IR/Verifier.cpp
    M llvm/lib/LTO/LTOModule.cpp
    M llvm/lib/ProfileData/InstrProfCorrelator.cpp
    M llvm/lib/Support/CommandLine.cpp
    M llvm/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.cpp
    M llvm/lib/Target/AMDGPU/SIISelLowering.cpp
    M llvm/lib/Target/AMDGPU/SIInstrInfo.cpp
    M llvm/lib/Target/DirectX/DXILShaderFlags.cpp
    M llvm/lib/Target/RISCV/RISCVISelLowering.cpp
    M llvm/lib/Target/RISCV/RISCVISelLowering.h
    M llvm/lib/Transforms/IPO/ExpandVariadics.cpp
    M llvm/lib/Transforms/InstCombine/InstCombineCompares.cpp
    M llvm/lib/Transforms/Utils/ScalarEvolutionExpander.cpp
    M llvm/test/Analysis/CostModel/AMDGPU/shufflevector.ll
    M llvm/test/Analysis/DependenceAnalysis/Propagating.ll
    M llvm/test/Analysis/DependenceAnalysis/SymbolicSIV.ll
    M llvm/test/Analysis/DependenceAnalysis/WeakCrossingSIV.ll
    M llvm/test/Analysis/DependenceAnalysis/run-specific-dependence-test.ll
    A llvm/test/Assembler/dbg_declare_value.ll
    M llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.1024bit.ll
    M llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.512bit.ll
    M llvm/test/CodeGen/AMDGPU/flat-scratch-init.ll
    M llvm/test/CodeGen/AMDGPU/fold-reload-into-exec.mir
    M llvm/test/CodeGen/AMDGPU/identical-subrange-spill-infloop.ll
    M llvm/test/CodeGen/AMDGPU/insert_vector_dynelt.ll
    M llvm/test/CodeGen/AMDGPU/load-constant-i1.ll
    A llvm/test/CodeGen/AMDGPU/load-global-invariant.ll
    M llvm/test/CodeGen/AMDGPU/preserve-wwm-copy-dst-reg.ll
    M llvm/test/CodeGen/AMDGPU/scc-clobbered-sgpr-to-vmem-spill.ll
    M llvm/test/CodeGen/AMDGPU/tuple-allocation-failure.ll
    M llvm/test/CodeGen/AMDGPU/wwm-reserved-spill.ll
    M llvm/test/CodeGen/AMDGPU/wwm-reserved.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-insert.ll
    A llvm/test/CodeGen/RISCV/vmadd-reassociate.ll
    M llvm/test/Transforms/ExpandVariadics/expand-va-intrinsic-split-linkage.ll
    M llvm/test/Transforms/ExpandVariadics/expand-va-intrinsic-split-simple.ll
    M llvm/test/Transforms/ExpandVariadics/intrinsics.ll
    M llvm/test/Transforms/InstCombine/icmp-trunc.ll
    M llvm/test/Transforms/LoopUnrollAndJam/dependencies_multidims.ll
    M llvm/test/Transforms/SLPVectorizer/AMDGPU/reduction.ll
    M llvm/test/Transforms/SLPVectorizer/AMDGPU/slp-v2f16.ll
    M llvm/test/Transforms/VectorCombine/AMDGPU/extract-insert-chain-to-shuffles.ll
    M llvm/test/Transforms/VectorCombine/AMDGPU/extract-insert-i8.ll
    M llvm/unittests/CodeGen/SelectionDAGPatternMatchTest.cpp
    M llvm/unittests/Support/SignalsTest.cpp
    M llvm/utils/lit/lit/llvm/config.py
    M mlir/include/mlir/Analysis/Presburger/PresburgerSpace.h
    M mlir/include/mlir/Dialect/XeGPU/IR/XeGPUAttrs.td
    M mlir/lib/Dialect/XeGPU/Transforms/XeGPUWgToSgDistribute.cpp
    M mlir/python/mlir/dialects/linalg/opdsl/lang/yaml_helper.py
    M mlir/python/requirements.txt
    M mlir/test/Target/SPIRV/mlir-translate.mlir
    M mlir/test/Target/SPIRV/module.mlir
    M utils/bazel/.bazelrc

  Log Message:
  -----------
  Merge branch 'main' into users/kparzysz/n03-invalid-directive


Compare: https://github.com/llvm/llvm-project/compare/31578653d009...1dd9d2b1f0cc

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