[all-commits] [llvm/llvm-project] 095fae: [SLP] Fix assertion "Deleting out-of-tree value" f...
aokblast via All-commits
all-commits at lists.llvm.org
Wed Jun 3 09:09:07 PDT 2026
Branch: refs/heads/users/aokblast/moneypunct_fbsd_test
Home: https://github.com/llvm/llvm-project
Commit: 095faea999a2adaff9c54a5d7b7b1ef431db92ff
https://github.com/llvm/llvm-project/commit/095faea999a2adaff9c54a5d7b7b1ef431db92ff
Author: Alexey Bataev <a.bataev at outlook.com>
Date: 2026-05-26 (Tue, 26 May 2026)
Changed paths:
M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
A llvm/test/Transforms/SLPVectorizer/AArch64/slp-extval-struct-operand-no-scalar-reuse.ll
Log Message:
-----------
[SLP] Fix assertion "Deleting out-of-tree value" for struct-typed vectorized operands
When an external-use scalar had a struct-typed vectorized operand, OperandIsScalar
incorrectly returned true (because the struct scalar was in ValueToExtUses), causing
the scalar to be cloned into ExternalUsesAsOriginalScalar. The clone used the struct
scalar directly, but struct-typed vectorized scalars are deleted after vectorization
- their external-use handling erases the extractvalue user rather than replacing the
struct value via replaceAllUsesWith.
Reviewers:
Pull Request: https://github.com/llvm/llvm-project/pull/199679
Commit: e5f4f31b3508dd06598051039268c27498472218
https://github.com/llvm/llvm-project/commit/e5f4f31b3508dd06598051039268c27498472218
Author: Justin Lebar <justin.lebar at gmail.com>
Date: 2026-05-26 (Tue, 26 May 2026)
Changed paths:
M llvm/lib/Transforms/Scalar/JumpThreading.cpp
M llvm/test/Transforms/JumpThreading/branch-debug-info2.ll
M llvm/test/Transforms/JumpThreading/select.ll
M llvm/test/Transforms/JumpThreading/stale-loop-info-after-unfold-select.ll
Log Message:
-----------
[JumpThreading] Freeze undef/poison select condition in unfoldSelectInstr (#199408)
When unfoldSelectInstr rewrites a select as a conditional branch, it
used SI->getCondition() directly, without freezing it first. A select
with an undef or poison condition does not immediately cause UB,
but branching on undef or poison does, so we need to freeze it.
This bug was found by a large run of Opus 4.7 looking for bugs in LLVM.
Commit: 471244d790755842e1262b9c6a889186e0a6e078
https://github.com/llvm/llvm-project/commit/471244d790755842e1262b9c6a889186e0a6e078
Author: Yingwei Zheng <dtcxzyw2333 at gmail.com>
Date: 2026-05-26 (Tue, 26 May 2026)
Changed paths:
M llvm/lib/Transforms/Scalar/InferAlignment.cpp
A llvm/test/Transforms/InferAlignment/propagate-across-blocks.ll
Log Message:
-----------
[InferAlignment] Propagate alignment information across blocks (#198114)
This patch implements DT-based cross-block alignment propagation. The
algorithm processes the basic blocks in a depth-first traversal of DT.
The stack is emulated to avoid recursive visiting.
IR diff: https://github.com/dtcxzyw/llvm-opt-benchmark-nightly/pull/321.
Most of the improvement is useless, as it makes load/store instructions
overaligned. But several alignment checks are eliminated:
https://github.com/dtcxzyw/llvm-opt-benchmark-nightly/pull/321/commits/2ac31cb4f44261fa256d23061346af3aac73a41d.
Compile-time impact: +0.03%
https://llvm-compile-time-tracker.com/compare.php?from=f45f3ce5da9e35f819db9b8ed2775dac8c2b1171&to=93d511bc2a64792fcdb8d84b0b696a7c8d61ef40&stat=instructions%3Au
Commit: 8b2751198db37809936c4675bc45a96b4c6d41cb
https://github.com/llvm/llvm-project/commit/8b2751198db37809936c4675bc45a96b4c6d41cb
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2026-05-26 (Tue, 26 May 2026)
Changed paths:
A llvm/test/CodeGen/X86/vector-shuffle-combining-avx512vbmi2.ll
Log Message:
-----------
[X86] Add test coverage showing failure to recognise VPSHLD/VPSHRD nodes as potential faux shuffles (#199673)
Commit: cb96a3edf7a81e75169fdcc057f3e19a1d09f73b
https://github.com/llvm/llvm-project/commit/cb96a3edf7a81e75169fdcc057f3e19a1d09f73b
Author: Yury Plyakhin <yury.plyakhin at intel.com>
Date: 2026-05-26 (Tue, 26 May 2026)
Changed paths:
R clang/test/Driver/clang-offload-bundler-asserts-on.c
R clang/test/Driver/clang-offload-bundler-standardize.c
R clang/test/Driver/clang-offload-bundler-zlib.c
R clang/test/Driver/clang-offload-bundler-zstd.c
R clang/test/Driver/clang-offload-bundler.c
R clang/test/Driver/fat-archive-unbundle-ext.c
R clang/test/Driver/linker-wrapper-canonical-prefixes.c
R clang/test/Driver/linker-wrapper-hip-amdgcnspirv.c
R clang/test/Driver/linker-wrapper-hip-no-rdc.c
R clang/test/Driver/linker-wrapper-image.c
R clang/test/Driver/linker-wrapper-llvm-help.c
R clang/test/Driver/linker-wrapper.c
R clang/test/Driver/nvlink-wrapper.c
A clang/test/OffloadTools/clang-linker-wrapper/linker-wrapper-canonical-prefixes.c
A clang/test/OffloadTools/clang-linker-wrapper/linker-wrapper-hip-amdgcnspirv.c
A clang/test/OffloadTools/clang-linker-wrapper/linker-wrapper-hip-no-rdc.c
A clang/test/OffloadTools/clang-linker-wrapper/linker-wrapper-image.c
A clang/test/OffloadTools/clang-linker-wrapper/linker-wrapper-llvm-help.c
A clang/test/OffloadTools/clang-linker-wrapper/linker-wrapper.c
A clang/test/OffloadTools/clang-linker-wrapper/lit.local.cfg
A clang/test/OffloadTools/clang-linker-wrapper/openmp-spirv.cpp
A clang/test/OffloadTools/clang-nvlink-wrapper/nvlink-wrapper.c
A clang/test/OffloadTools/clang-offload-bundler/asserts-on.c
A clang/test/OffloadTools/clang-offload-bundler/basic.c
A clang/test/OffloadTools/clang-offload-bundler/fat-archive-unbundle-ext.c
A clang/test/OffloadTools/clang-offload-bundler/standardize.c
A clang/test/OffloadTools/clang-offload-bundler/zlib.c
A clang/test/OffloadTools/clang-offload-bundler/zstd.c
A clang/test/OffloadTools/clang-sycl-linker/basic.ll
A clang/test/OffloadTools/clang-sycl-linker/split-mode.ll
A clang/test/OffloadTools/clang-sycl-linker/triple.ll
R clang/test/Tooling/clang-linker-wrapper-spirv.cpp
R clang/test/Tooling/clang-sycl-linker-split-mode.ll
R clang/test/Tooling/clang-sycl-linker-triple.ll
R clang/test/Tooling/clang-sycl-linker.ll
M clang/test/Tooling/lit.local.cfg
Log Message:
-----------
[clang][test] Move offload tools tests to clang/test/OffloadTools (#198434)
Tests for clang-offload-bundler, clang-linker-wrapper,
clang-nvlink-wrapper, and clang-sycl-linker were scattered across
clang/test/Driver/ and clang/test/Tooling/. Neither location was
appropriate: Driver/ is for testing the compiler driver, and Tooling/ is
for testing the LibTooling infrastructure.
Move them to clang/test/OffloadTools/ with one subdirectory per tool,
following the convention used by llvm/test/tools/. The tool-name prefix
is dropped from filenames since the containing directory already
identifies the tool.
The spirv-tools feature/substitution setup is carried over from
Tooling's lit.local.cfg into a new lit.local.cfg in
clang-linker-wrapper/, since the parent clang/test/lit.cfg.py does not
set up that feature. The dead spirv-tools block is removed from
Tooling/lit.local.cfg now that no tests there depend on it.
`clang-linker-wrapper-spirv.cpp` was relying on libomp in the
environment. It is now rewritten to run the `clang-linker-wrapper`
directly rather than going through the driver and added stub symbols
allow avoiding linking against OpenMP runtime libraries.
Commit: ca9884dd065961cb112f4940b3f80339765a0104
https://github.com/llvm/llvm-project/commit/ca9884dd065961cb112f4940b3f80339765a0104
Author: Yanzuo Liu <zwuis at outlook.com>
Date: 2026-05-26 (Tue, 26 May 2026)
Changed paths:
M clang-tools-extra/clangd/Selection.cpp
M clang-tools-extra/clangd/SemanticHighlighting.cpp
M clang/docs/ReleaseNotes.rst
M clang/include/clang/AST/DeclarationName.h
M clang/lib/Sema/SemaExprCXX.cpp
M clang/test/AST/ast-dump-expr-json.cpp
M clang/test/AST/ast-dump-expr.cpp
M clang/unittests/Tooling/Syntax/BuildTreeTest.cpp
Log Message:
-----------
[clang] Add missing type source info of `decltype` specifier in destructor call to AST (#197680)
The type source info will be stored in `MemberExpr::MemberDNLoc`.
This patch fixes the underlying issue of #195788.
Commit: fbbaa545ce1a8faebd453f9918513b7ec804671d
https://github.com/llvm/llvm-project/commit/fbbaa545ce1a8faebd453f9918513b7ec804671d
Author: Matthias Springer <me at m-sp.org>
Date: 2026-05-26 (Tue, 26 May 2026)
Changed paths:
M mlir/lib/Dialect/Async/Transforms/AsyncToAsyncRuntime.cpp
M mlir/test/Dialect/Async/async-to-async-runtime.mlir
Log Message:
-----------
[mlir][async] Lazily create the coroutine destroy-cleanup block (#199583)
`setupCoroMachinery` previously emitted a `cleanupForDestroy` block
unconditionally, alongside the normal `cleanup` block. That block is
only ever used as the "destroy" successor of an `async.coro.suspend`, so
for coroutines that never suspend (e.g. an `async.func` whose body
contains no `async.await`) it ended up unreachable in the lowered CFG.
Make `cleanupForDestroy` mirror the existing `setError` (and
`setupSetErrorBlock`) pattern and materialize it lazily via a new
`setupCleanupForDestroyBlock` helper, called only from the two places
(`outlineExecuteOp` and the `async.await` lowering) that actually wire
it up. Store the coroutine id on `CoroMachinery` so the helper can
rebuild the block contents without keeping the original `async.coro.id`
op around.
This change is in preparation of adding a new builtin token type. Dead
`async.coro.free` ops are inefficient and cause problems in the lowering
to LLVM.
Assisted-by: Opus 4.7
Commit: 3a25f7b645fa68343d548eb116d884fd1ebb3edb
https://github.com/llvm/llvm-project/commit/3a25f7b645fa68343d548eb116d884fd1ebb3edb
Author: Matheus Izvekov <mizvekov at gmail.com>
Date: 2026-05-26 (Tue, 26 May 2026)
Changed paths:
M clang/lib/AST/Decl.cpp
M clang/lib/AST/DeclCXX.cpp
M clang/lib/Sema/SemaLookup.cpp
M clang/lib/StaticAnalyzer/Core/BugSuppression.cpp
M clang/test/AST/ast-dump-decl.cpp
M clang/test/AST/ast-dump-linkage-internal.cpp
M clang/test/AST/ast-dump-linkage.cpp
M clang/test/AST/ast-dump-templates-pattern.cpp
Log Message:
-----------
[clang] preserve exact redeclaration for getTemplateInstantiationPattern (#199473)
This makes these functions not always return the definition if any. The
few users which depend on this are updated to fetch the definition
themselves.
Also fixes the VarDecl variant returning the queried declaration itself.
Commit: e8d5037b400dbe2afd4554ed1e1f38a697c62c36
https://github.com/llvm/llvm-project/commit/e8d5037b400dbe2afd4554ed1e1f38a697c62c36
Author: Matheus Izvekov <mizvekov at gmail.com>
Date: 2026-05-26 (Tue, 26 May 2026)
Changed paths:
A clang/test/ASTMerge/class-template-spec/Inputs/class-template-spec.cpp
A clang/test/ASTMerge/class-template-spec/test.cpp
M clang/test/CXX/temp/temp.spec/temp.expl.spec/p7.cpp
Log Message:
-----------
[clang] NFC: readd test cases reverted in 79f4d8f014 (#199676)
This adds back the test cases reverted in 79f4d8f014
We need some sort of process to stop losing regression tests due to
reverts...
Commit: 721cddfd8f06dccae71196de7f0ae49ff54fe254
https://github.com/llvm/llvm-project/commit/721cddfd8f06dccae71196de7f0ae49ff54fe254
Author: Alexey Bataev <a.bataev at outlook.com>
Date: 2026-05-26 (Tue, 26 May 2026)
Changed paths:
A llvm/test/Transforms/SLPVectorizer/AMDGPU/inst-count-heuristic.ll
Log Message:
-----------
[SLP][NFC]Add a test with inst count heuristic for AMDHSA, NFC
Reviewers:
Pull Request: https://github.com/llvm/llvm-project/pull/199693
Commit: bd9ce0ab1edd3c1e5557af8df883bac9b4c99150
https://github.com/llvm/llvm-project/commit/bd9ce0ab1edd3c1e5557af8df883bac9b4c99150
Author: Balázs Kéri <balazs.keri at ericsson.com>
Date: 2026-05-26 (Tue, 26 May 2026)
Changed paths:
M clang/include/clang/StaticAnalyzer/Checkers/Checkers.td
Log Message:
-----------
[clang][analyzer] Make CallAndMessage:ArgPointeeInitializedness released (NFC) (#199184)
The option was in `InAlpha` state but should be `Released` instead. It
was improved in changes #164600 and #173854.
Commit: 52aac75c005446e988f8dfe27edd41bd70e3ce68
https://github.com/llvm/llvm-project/commit/52aac75c005446e988f8dfe27edd41bd70e3ce68
Author: Craig Topper <craig.topper at sifive.com>
Date: 2026-05-26 (Tue, 26 May 2026)
Changed paths:
M llvm/lib/Target/RISCV/GISel/RISCVLegalizerInfo.cpp
Log Message:
-----------
[RISCV][GISel] Use sXLen member variable instead of creating it locally. NFC (#199594)
Commit: 6b17cf8d11ce2d8b37b5770a0b9f6082a3fc63e2
https://github.com/llvm/llvm-project/commit/6b17cf8d11ce2d8b37b5770a0b9f6082a3fc63e2
Author: Craig Topper <craig.topper at sifive.com>
Date: 2026-05-26 (Tue, 26 May 2026)
Changed paths:
M llvm/lib/Target/RISCV/RISCVISelLowering.cpp
M llvm/lib/Target/RISCV/RISCVInstrInfoP.td
M llvm/test/CodeGen/RISCV/rvp-simd-32.ll
M llvm/test/CodeGen/RISCV/rvp-simd-64.ll
Log Message:
-----------
[RISCV][P-ext] Support packed SSHLSAT with non-constant splat shift amount. (#198937)
We can use the pssha instructions. These instructions look at the lower
8-bits of the shift amount and treat positive values as a left shift and
a negative value as a right shift.
Since out of bound shift amounts for SSHLSAT are poison, we can directly
pass the shift amount to the instruction.
Commit: fe4c2bb1b3d5626d7de8112e815b8548b20a81fe
https://github.com/llvm/llvm-project/commit/fe4c2bb1b3d5626d7de8112e815b8548b20a81fe
Author: Nishant Patel <nishant.b.patel at intel.com>
Date: 2026-05-26 (Tue, 26 May 2026)
Changed paths:
M mlir/include/mlir/Dialect/XeGPU/Transforms/Passes.td
M mlir/include/mlir/Dialect/XeGPU/Transforms/Transforms.h
M mlir/lib/Dialect/GPU/Pipelines/GPUToXeVMPipeline.cpp
M mlir/lib/Dialect/XeGPU/Transforms/CMakeLists.txt
A mlir/lib/Dialect/XeGPU/Transforms/XeGPUSgToLaneDistribute.cpp
R mlir/lib/Dialect/XeGPU/Transforms/XeGPUSgToWiDistributeExperimental.cpp
R mlir/lib/Dialect/XeGPU/Transforms/XeGPUSubgroupDistribute.cpp
M mlir/lib/Dialect/XeGPU/Utils/XeGPUUtils.cpp
R mlir/test/Dialect/XeGPU/move-gpu-func-to-warp-op.mlir
A mlir/test/Dialect/XeGPU/sg-to-lane-distribute-unit.mlir
A mlir/test/Dialect/XeGPU/sg-to-lane-distribute.mlir
R mlir/test/Dialect/XeGPU/sg-to-wi-experimental-unit.mlir
R mlir/test/Dialect/XeGPU/sg-to-wi-experimental.mlir
R mlir/test/Dialect/XeGPU/subgroup-distribute-unit.mlir
R mlir/test/Dialect/XeGPU/subgroup-distribute.mlir
R mlir/test/Dialect/XeGPU/xegpu-subgroup-distribute-no-arch.mlir
M mlir/test/lib/Dialect/XeGPU/TestXeGPUTransforms.cpp
Log Message:
-----------
[mlir][xegpu] Deprecate XeGPUSubgroupDistribute and rename XeGPUSgToWiDistributeExperimental to XeGPUSgToLaneDistribute (#198027)
The XeGPUSubgroupDistribute pass is now fully superseded by the newer
subgroup-to-lane distribution flow, so this PR removes its
implementation & all associated tests.
The replacement pass XeGPUSgToWiDistributeExperimental is renamed to
XeGPUSgToLaneDistribute.
Commit: c927d44cb119a290b4946ebbd5547ca4f3f872a7
https://github.com/llvm/llvm-project/commit/c927d44cb119a290b4946ebbd5547ca4f3f872a7
Author: DeanSturtevant1 <dsturtevant at google.com>
Date: 2026-05-26 (Tue, 26 May 2026)
Changed paths:
M utils/bazel/llvm-project-overlay/libc/BUILD.bazel
M utils/bazel/llvm-project-overlay/llvm/BUILD.bazel
Log Message:
-----------
Revert "Revert "[libc] Port 2b2a63819f9f26d661bad5c269a03077d22ff6b4"" (#199681)
Reverts llvm/llvm-project#197857.
Original change relanded as #199570
Commit: 3718ab29aa885036143a630ecd53dea52c41b57c
https://github.com/llvm/llvm-project/commit/3718ab29aa885036143a630ecd53dea52c41b57c
Author: Arthur Eubanks <aeubanks at google.com>
Date: 2026-05-26 (Tue, 26 May 2026)
Changed paths:
M llvm/utils/gn/secondary/llvm/lib/Support/BUILD.gn
Log Message:
-----------
[gn build] Port c437052c (#199709)
Commit: d1b31664ea1c8caeefc24c289bcc2617ae81a40b
https://github.com/llvm/llvm-project/commit/d1b31664ea1c8caeefc24c289bcc2617ae81a40b
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2026-05-26 (Tue, 26 May 2026)
Changed paths:
M llvm/lib/Target/X86/X86ISelLowering.cpp
M llvm/test/CodeGen/X86/vector-shuffle-combining-avx512vbmi2.ll
Log Message:
-----------
[X86] getFauxShuffleMask - add handling for X86ISD::VSHLD/VSHRD funnel shifts (#199707)
Another step towards #145276
Commit: 4acfc32f007528dbe5de20a163ccadfd4668a849
https://github.com/llvm/llvm-project/commit/4acfc32f007528dbe5de20a163ccadfd4668a849
Author: Arthur Eubanks <aeubanks at google.com>
Date: 2026-05-26 (Tue, 26 May 2026)
Changed paths:
M llvm/lib/Transforms/Scalar/JumpThreading.cpp
M llvm/test/Transforms/JumpThreading/branch-debug-info2.ll
M llvm/test/Transforms/JumpThreading/select.ll
M llvm/test/Transforms/JumpThreading/stale-loop-info-after-unfold-select.ll
Log Message:
-----------
Revert "[JumpThreading] Freeze undef/poison select condition in unfoldSelectInstr" (#199713)
Reverts llvm/llvm-project#199408
Causes many crashes, e.g.
https://github.com/llvm/llvm-project/pull/199408#issuecomment-4545738591
Fixes https://github.com/llvm/llvm-project/issues/199702
Commit: 6fdfe1ead81f20ad5365de3f9313b9d658e40153
https://github.com/llvm/llvm-project/commit/6fdfe1ead81f20ad5365de3f9313b9d658e40153
Author: Fabrice de Gans <Steelskin at users.noreply.github.com>
Date: 2026-05-26 (Tue, 26 May 2026)
Changed paths:
M llvm/include/llvm/Transforms/AggressiveInstCombine/AggressiveInstCombine.h
M llvm/include/llvm/Transforms/Coroutines/CoroAnnotationElide.h
M llvm/include/llvm/Transforms/Coroutines/CoroCleanup.h
M llvm/include/llvm/Transforms/Coroutines/CoroConditionalWrapper.h
M llvm/include/llvm/Transforms/Coroutines/CoroEarly.h
M llvm/include/llvm/Transforms/Coroutines/CoroElide.h
M llvm/include/llvm/Transforms/Coroutines/SpillUtils.h
M llvm/include/llvm/Transforms/IPO/Annotation2Metadata.h
M llvm/include/llvm/Transforms/IPO/ArgumentPromotion.h
M llvm/include/llvm/Transforms/IPO/CalledValuePropagation.h
M llvm/include/llvm/Transforms/IPO/ConstantMerge.h
M llvm/include/llvm/Transforms/IPO/CrossDSOCFI.h
M llvm/include/llvm/Transforms/IPO/DeadArgumentElimination.h
M llvm/include/llvm/Transforms/IPO/ElimAvailExtern.h
M llvm/include/llvm/Transforms/IPO/ExpandVariadics.h
M llvm/include/llvm/Transforms/IPO/FatLTOCleanup.h
M llvm/include/llvm/Transforms/IPO/ForceFunctionAttrs.h
M llvm/include/llvm/Transforms/IPO/GlobalOpt.h
M llvm/include/llvm/Transforms/IPO/GlobalSplit.h
M llvm/include/llvm/Transforms/IPO/HotColdSplitting.h
M llvm/include/llvm/Transforms/IPO/IROutliner.h
M llvm/include/llvm/Transforms/IPO/LoopExtractor.h
M llvm/include/llvm/Transforms/IPO/MemProfContextDisambiguation.h
M llvm/include/llvm/Transforms/IPO/OpenMPOpt.h
M llvm/include/llvm/Transforms/IPO/PartialInlining.h
M llvm/include/llvm/Transforms/IPO/SCCP.h
M llvm/include/llvm/Transforms/IPO/SampleProfileMatcher.h
M llvm/include/llvm/Transforms/InstCombine/InstCombiner.h
M llvm/include/llvm/Transforms/Instrumentation/AddressSanitizerCommon.h
M llvm/include/llvm/Transforms/Instrumentation/BlockCoverageInference.h
M llvm/include/llvm/Transforms/Instrumentation/CGProfile.h
M llvm/include/llvm/Transforms/Instrumentation/ControlHeightReduction.h
M llvm/include/llvm/Transforms/Instrumentation/PGOCtxProfFlattening.h
M llvm/include/llvm/Transforms/Instrumentation/PGOCtxProfLowering.h
M llvm/include/llvm/Transforms/Instrumentation/PGOForceFunctionAttrs.h
M llvm/include/llvm/Transforms/Scalar/ADCE.h
M llvm/include/llvm/Transforms/Scalar/AlignmentFromAssumptions.h
M llvm/include/llvm/Transforms/Scalar/AnnotationRemarks.h
M llvm/include/llvm/Transforms/Scalar/BDCE.h
M llvm/include/llvm/Transforms/Scalar/CallSiteSplitting.h
M llvm/include/llvm/Transforms/Scalar/ConstantHoisting.h
M llvm/include/llvm/Transforms/Scalar/ConstraintElimination.h
M llvm/include/llvm/Transforms/Scalar/CorrelatedValuePropagation.h
M llvm/include/llvm/Transforms/Scalar/DCE.h
M llvm/include/llvm/Transforms/Scalar/DFAJumpThreading.h
M llvm/include/llvm/Transforms/Scalar/DeadStoreElimination.h
M llvm/include/llvm/Transforms/Scalar/DivRemPairs.h
M llvm/include/llvm/Transforms/Scalar/DropUnnecessaryAssumes.h
M llvm/include/llvm/Transforms/Scalar/ExpandMemCmp.h
M llvm/include/llvm/Transforms/Scalar/FlattenCFG.h
M llvm/include/llvm/Transforms/Scalar/Float2Int.h
M llvm/include/llvm/Transforms/Scalar/GVNExpression.h
M llvm/include/llvm/Transforms/Scalar/GuardWidening.h
M llvm/include/llvm/Transforms/Scalar/IVUsersPrinter.h
M llvm/include/llvm/Transforms/Scalar/IndVarSimplify.h
M llvm/include/llvm/Transforms/Scalar/InductiveRangeCheckElimination.h
M llvm/include/llvm/Transforms/Scalar/InferAddressSpaces.h
M llvm/include/llvm/Transforms/Scalar/InferAlignment.h
M llvm/include/llvm/Transforms/Scalar/InstSimplifyPass.h
M llvm/include/llvm/Transforms/Scalar/JumpTableToSwitch.h
M llvm/include/llvm/Transforms/Scalar/LICM.h
M llvm/include/llvm/Transforms/Scalar/LoopAccessAnalysisPrinter.h
M llvm/include/llvm/Transforms/Scalar/LoopBoundSplit.h
M llvm/include/llvm/Transforms/Scalar/LoopDataPrefetch.h
M llvm/include/llvm/Transforms/Scalar/LoopDeletion.h
M llvm/include/llvm/Transforms/Scalar/LoopDistribute.h
M llvm/include/llvm/Transforms/Scalar/LoopFlatten.h
M llvm/include/llvm/Transforms/Scalar/LoopFuse.h
M llvm/include/llvm/Transforms/Scalar/LoopIdiomRecognize.h
M llvm/include/llvm/Transforms/Scalar/LoopInstSimplify.h
M llvm/include/llvm/Transforms/Scalar/LoopInterchange.h
M llvm/include/llvm/Transforms/Scalar/LoopLoadElimination.h
M llvm/include/llvm/Transforms/Scalar/LoopPredication.h
M llvm/include/llvm/Transforms/Scalar/LoopRotation.h
M llvm/include/llvm/Transforms/Scalar/LoopSimplifyCFG.h
M llvm/include/llvm/Transforms/Scalar/LoopSink.h
M llvm/include/llvm/Transforms/Scalar/LoopStrengthReduce.h
M llvm/include/llvm/Transforms/Scalar/LoopTermFold.h
M llvm/include/llvm/Transforms/Scalar/LoopUnrollAndJamPass.h
M llvm/include/llvm/Transforms/Scalar/LoopUnrollPass.h
M llvm/include/llvm/Transforms/Scalar/LoopVersioningLICM.h
M llvm/include/llvm/Transforms/Scalar/LowerAtomicPass.h
M llvm/include/llvm/Transforms/Scalar/LowerConstantIntrinsics.h
M llvm/include/llvm/Transforms/Scalar/LowerGuardIntrinsic.h
M llvm/include/llvm/Transforms/Scalar/LowerMatrixIntrinsics.h
M llvm/include/llvm/Transforms/Scalar/LowerWidenableCondition.h
M llvm/include/llvm/Transforms/Scalar/MakeGuardsExplicit.h
M llvm/include/llvm/Transforms/Scalar/MergeICmps.h
M llvm/include/llvm/Transforms/Scalar/MergedLoadStoreMotion.h
M llvm/include/llvm/Transforms/Scalar/NaryReassociate.h
M llvm/include/llvm/Transforms/Scalar/NewGVN.h
M llvm/include/llvm/Transforms/Scalar/PartiallyInlineLibCalls.h
M llvm/include/llvm/Transforms/Scalar/PlaceSafepoints.h
M llvm/include/llvm/Transforms/Scalar/Reg2Mem.h
M llvm/include/llvm/Transforms/Scalar/RewriteStatepointsForGC.h
M llvm/include/llvm/Transforms/Scalar/SROA.h
M llvm/include/llvm/Transforms/Scalar/ScalarizeMaskedMemIntrin.h
M llvm/include/llvm/Transforms/Scalar/SeparateConstOffsetFromGEP.h
M llvm/include/llvm/Transforms/Scalar/SimpleLoopUnswitch.h
M llvm/include/llvm/Transforms/Scalar/Sink.h
M llvm/include/llvm/Transforms/Scalar/SpeculativeExecution.h
M llvm/include/llvm/Transforms/Scalar/StraightLineStrengthReduce.h
M llvm/include/llvm/Transforms/Scalar/StructurizeCFG.h
M llvm/include/llvm/Transforms/Scalar/TailRecursionElimination.h
M llvm/include/llvm/Transforms/Scalar/WarnMissedTransforms.h
M llvm/include/llvm/Transforms/Utils/AddDiscriminators.h
M llvm/include/llvm/Transforms/Utils/BreakCriticalEdges.h
M llvm/include/llvm/Transforms/Utils/BypassSlowDivision.h
M llvm/include/llvm/Transforms/Utils/CanonicalizeAliases.h
M llvm/include/llvm/Transforms/Utils/CanonicalizeFreezeInLoops.h
M llvm/include/llvm/Transforms/Utils/ControlFlowUtils.h
M llvm/include/llvm/Transforms/Utils/CountVisits.h
M llvm/include/llvm/Transforms/Utils/CtorUtils.h
M llvm/include/llvm/Transforms/Utils/DXILUpgrade.h
M llvm/include/llvm/Transforms/Utils/DebugSSAUpdater.h
M llvm/include/llvm/Transforms/Utils/DeclareRuntimeLibcalls.h
M llvm/include/llvm/Transforms/Utils/EntryExitInstrumenter.h
M llvm/include/llvm/Transforms/Utils/EscapeEnumerator.h
M llvm/include/llvm/Transforms/Utils/Evaluator.h
M llvm/include/llvm/Transforms/Utils/FixIrreducible.h
M llvm/include/llvm/Transforms/Utils/GlobalStatus.h
M llvm/include/llvm/Transforms/Utils/GuardUtils.h
M llvm/include/llvm/Transforms/Utils/HelloWorld.h
M llvm/include/llvm/Transforms/Utils/IRNormalizer.h
M llvm/include/llvm/Transforms/Utils/InjectTLIMappings.h
M llvm/include/llvm/Transforms/Utils/InstructionNamer.h
M llvm/include/llvm/Transforms/Utils/LibCallsShrinkWrap.h
M llvm/include/llvm/Transforms/Utils/LoopConstrainer.h
M llvm/include/llvm/Transforms/Utils/LoopPeel.h
M llvm/include/llvm/Transforms/Utils/LoopUtils.h
M llvm/include/llvm/Transforms/Utils/LoopVersioning.h
M llvm/include/llvm/Transforms/Utils/LowerAtomic.h
M llvm/include/llvm/Transforms/Utils/LowerGlobalDtors.h
M llvm/include/llvm/Transforms/Utils/LowerIFunc.h
M llvm/include/llvm/Transforms/Utils/LowerInvoke.h
M llvm/include/llvm/Transforms/Utils/LowerSwitch.h
M llvm/include/llvm/Transforms/Utils/LowerVectorIntrinsics.h
M llvm/include/llvm/Transforms/Utils/MatrixUtils.h
M llvm/include/llvm/Transforms/Utils/MemoryOpRemark.h
M llvm/include/llvm/Transforms/Utils/MemoryTaggingSupport.h
M llvm/include/llvm/Transforms/Utils/MetaRenamer.h
M llvm/include/llvm/Transforms/Utils/MisExpect.h
M llvm/include/llvm/Transforms/Utils/MoveAutoInit.h
M llvm/include/llvm/Transforms/Utils/NameAnonGlobals.h
M llvm/include/llvm/Transforms/Utils/RelLookupTableConverter.h
M llvm/include/llvm/Transforms/Utils/SSAUpdater.h
M llvm/include/llvm/Transforms/Utils/SampleProfileInference.h
M llvm/include/llvm/Transforms/Utils/SampleProfileLoaderBaseImpl.h
M llvm/include/llvm/Transforms/Utils/SampleProfileLoaderBaseUtil.h
M llvm/include/llvm/Transforms/Utils/ScalarEvolutionExpander.h
M llvm/include/llvm/Transforms/Utils/SimplifyIndVar.h
M llvm/include/llvm/Transforms/Utils/SimplifyLibCalls.h
M llvm/include/llvm/Transforms/Utils/StripConvergenceIntrinsics.h
M llvm/include/llvm/Transforms/Utils/StripGCRelocates.h
M llvm/include/llvm/Transforms/Utils/StripNonLineTableDebugInfo.h
M llvm/include/llvm/Transforms/Utils/UnifyFunctionExitNodes.h
M llvm/include/llvm/Transforms/Utils/UnifyLoopExits.h
M llvm/include/llvm/Transforms/Utils/UnrollLoop.h
M llvm/include/llvm/Transforms/Utils/VNCoercion.h
M llvm/include/llvm/Transforms/Vectorize/LoopIdiomVectorize.h
M llvm/include/llvm/Transforms/Vectorize/LoopVectorizationLegality.h
M llvm/include/llvm/Transforms/Vectorize/SLPVectorizer.h
M llvm/include/llvm/Transforms/Vectorize/SandboxVectorizer/Passes/BottomUpVec.h
M llvm/include/llvm/Transforms/Vectorize/SandboxVectorizer/Passes/LoadStoreVec.h
M llvm/include/llvm/Transforms/Vectorize/SandboxVectorizer/Passes/PackReuse.h
M llvm/include/llvm/Transforms/Vectorize/SandboxVectorizer/Passes/RegionsFromBBs.h
M llvm/include/llvm/Transforms/Vectorize/SandboxVectorizer/Passes/RegionsFromMetadata.h
M llvm/include/llvm/Transforms/Vectorize/SandboxVectorizer/Passes/SeedCollection.h
M llvm/include/llvm/Transforms/Vectorize/SandboxVectorizer/Passes/TransactionAcceptOrRevert.h
M llvm/include/llvm/Transforms/Vectorize/SandboxVectorizer/Passes/TransactionSave.h
M llvm/include/llvm/Transforms/Vectorize/SandboxVectorizer/RegionWithScore.h
M llvm/include/llvm/Transforms/Vectorize/SandboxVectorizer/SandboxVectorizerPassBuilder.h
M llvm/include/llvm/Transforms/Vectorize/VectorCombine.h
Log Message:
-----------
llvm: Fix most LLVM_ABI annotations in Transforms (#199042)
This updates most LLVM_ABI annotations in the Transforms headers to
match expected usage:
* All public APIs should be properly annotated.
* Inlined functions should not be annotated.
These changes were done by a script fixing annotations on LLVM public
headers and manually checked.
This effort is tracked in #109483.
Commit: 26f19eed998d513c1200f46733db14d73e2b3a71
https://github.com/llvm/llvm-project/commit/26f19eed998d513c1200f46733db14d73e2b3a71
Author: Matthias Wippich <mfwippich at gmail.com>
Date: 2026-05-26 (Tue, 26 May 2026)
Changed paths:
M clang/docs/ReleaseNotes.rst
M clang/lib/Sema/SemaDeclCXX.cpp
M clang/test/SemaCXX/cxx2c-decomposition.cpp
Log Message:
-----------
[clang] propagate constexpr/constinit to binding VarDecl (#195860)
This patch implements one of the missing parts of P2686. This is
required to make the test case from
[cwg3135](https://cplusplus.github.io/CWG/issues/3135.html) (and
likewise the examples of [P1789](https://wg21.link/p1789) work).
Commit: 551ff98cc3e6c9d6791c8606f7b3e2ad6d7a438c
https://github.com/llvm/llvm-project/commit/551ff98cc3e6c9d6791c8606f7b3e2ad6d7a438c
Author: Alexey Bataev <a.bataev at outlook.com>
Date: 2026-05-26 (Tue, 26 May 2026)
Changed paths:
M llvm/include/llvm/Analysis/TargetTransformInfo.h
M llvm/include/llvm/Analysis/TargetTransformInfoImpl.h
M llvm/lib/Analysis/TargetTransformInfo.cpp
M llvm/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.cpp
M llvm/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.h
M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
M llvm/test/Transforms/SLPVectorizer/AMDGPU/inst-count-heuristic.ll
Log Message:
-----------
[SLP][TTI][AMDGPU] Add TTI hook preferSLPInstCountCheck for per-target opt-out (#199696)
Add `preferSLPInstCountCheck()` to TTI so targets can opt out of the
2-element inst-count heuristic in `getTreeCost()`. Default returns
`true`
(existing behavior unchanged). `getTreeCost()` ANDs the existing
`SLPInstCountCheck` flag with the hook result. `GCNTTIImpl` returns
`false` for gfx940/gfx941/gfx942 and gfx950.
Fixes #199662.
Commit: d685a3b0e30f1375acc2796f9ce9f090cec85332
https://github.com/llvm/llvm-project/commit/d685a3b0e30f1375acc2796f9ce9f090cec85332
Author: Tom Tromey <tromey at adacore.com>
Date: 2026-05-26 (Tue, 26 May 2026)
Changed paths:
M llvm/utils/emacs/llvm-mode.el
Log Message:
-----------
Use symbol matching for types in llvm-mode.el (#199250)
llvm-mode.el does this:
(defconst llvm-mode-primitive-type-regexp
(concat
"\\(i[0-9]+\\|"
(regexp-opt '(...strings...) t)
Here the "t" means to wrap the regexp in "\(..\)". However, this means
that in assembly like:
!10 = distinct !DICompositeType(tag: DW_TAG_structure_type, ...
.. the "type" in "DW_TAG_structure_type" will be highlighted
differently.
The fix is to tell regexp-opt to only match complete symbols.
Commit: 44da8601d71ea712b92589bc83f498d6e952c4f9
https://github.com/llvm/llvm-project/commit/44da8601d71ea712b92589bc83f498d6e952c4f9
Author: Nishant Patel <nishant.b.patel at intel.com>
Date: 2026-05-26 (Tue, 26 May 2026)
Changed paths:
M mlir/include/mlir/Dialect/XeGPU/Transforms/XeGPULayoutImpl.h
M mlir/lib/Dialect/XeGPU/Transforms/XeGPULayoutImpl.cpp
M mlir/lib/Dialect/XeGPU/Transforms/XeGPUPropagateLayout.cpp
M mlir/test/Dialect/XeGPU/resolve-layout-conflicts.mlir
Log Message:
-----------
[MLIR][XeGPU] Clone trivial operations with multiple consumers in layout propagation to avoid layout conflict (#197514)
In XeGPU layout propagation, when a trivially rematerializable producer
(e.g. a CSE-merged vector.step) has multiple uses demanding distinct
layouts, clone the producer once per required layout so each def retains
a single well-defined layout. This avoids inserting a bridging
xegpu.convert_layout whose WG-to-SG lowering would otherwise force a
costly SLM round-trip to redistribute data across subgroups.
Commit: eca8638e130325d108e39aab5654bae8f0a06209
https://github.com/llvm/llvm-project/commit/eca8638e130325d108e39aab5654bae8f0a06209
Author: Guy David <guyda96 at gmail.com>
Date: 2026-05-26 (Tue, 26 May 2026)
Changed paths:
M llvm/lib/ExecutionEngine/Orc/MachOPlatform.cpp
Log Message:
-----------
[ORC] Avoid iterator invalidation when erasing image info symbols (#199655)
processObjCImageInfo iterated the section's DenseSet of symbols while
calling removeDefinedSymbol, which erases from that same set. Re-fetch
begin() each iteration so the iterator is always fresh.
Started with https://github.com/llvm/llvm-project/pull/199369.
Commit: 4b7ec0c715398d970a2669573f931e167b532e75
https://github.com/llvm/llvm-project/commit/4b7ec0c715398d970a2669573f931e167b532e75
Author: Guy David <guyda96 at gmail.com>
Date: 2026-05-26 (Tue, 26 May 2026)
Changed paths:
M llvm/lib/Analysis/GlobalsModRef.cpp
Log Message:
-----------
[GlobalsModRef] Don't erase while iterating (#199656)
The loop erases from AllocsForIndirectGlobals while walking it, which
now hits the iterator invalidation assert in DenseMap::erase. Use
remove_if instead.
Started with https://github.com/llvm/llvm-project/pull/199369.
Commit: 68ebd09d5e19c30a79d416940d3400b5637b0f69
https://github.com/llvm/llvm-project/commit/68ebd09d5e19c30a79d416940d3400b5637b0f69
Author: Ellis Hoag <ellis.sparky.hoag at gmail.com>
Date: 2026-05-26 (Tue, 26 May 2026)
Changed paths:
M lld/MachO/ConcatOutputSection.cpp
M lld/MachO/ConcatOutputSection.h
M lld/MachO/InputSection.h
M lld/docs/ReleaseNotes.rst
M lld/test/MachO/arm64-thunks.s
Log Message:
-----------
[lld][macho] Restructure thunk generation algorithm (#193367)
Refactor the algorithm that generates thunks for Mach-O. Prior to this
PR, sections were finalized as early as possible while still leaving
enough room (`slopScale * thunkSize`) for new thunks to be created.
There was also additional bookkeeping
(`estimateBranchTargetThresholdVA()`) so that once all sections were
finalized, we could estimate the end of the stubs sections. This avoided
new thunks to stubs sections in some cases.
In this PR, I've restructured the algorithm to avoid eagerly finalizing
sections. Instead, I maintain a `branchesToProcess` queue to hold
branches that could need to use a thunk. I avoid processing this branch
until its target has been finalized, or if finalizing another section
not leave enough room for new thunks (computed using `slopScale`). This
increases the likelihood that a branch will be direct, rather than use a
thunk, as reflected in the test change. Once all sections are finalized,
we can compute an upper bound on the number of thunks that need to be
created. We use this to estimate the end of the stubs section, allowing
us to keep some direct branches.
For testing, I linked a large binary before and after this PR. Results
show a 0.80% reduction in the number of thunks and 6.6% reduction in
number of thunk calls. The change in the duration of the link was
negligible.
| | Thunk Count | Thunk Calls |
|-| - | - |
| Base | 138499 | 1707623 |
| New | 137395 | 1595313 |
Commit: 6e94fa069fa912cbfa6ec7f7d1fbafe6bed72f47
https://github.com/llvm/llvm-project/commit/6e94fa069fa912cbfa6ec7f7d1fbafe6bed72f47
Author: David Rivera <davidriverg at gmail.com>
Date: 2026-05-26 (Tue, 26 May 2026)
Changed paths:
M clang/include/clang/CIR/MissingFeatures.h
M clang/lib/CIR/Dialect/Transforms/LoweringPrepare.cpp
M clang/test/CIR/CodeGenCUDA/device-stub.cu
Log Message:
-----------
[CIR][CUDA] Emit global var registration (#199270)
Commit: 7146087fb49476055704f92e24295c549c89fa21
https://github.com/llvm/llvm-project/commit/7146087fb49476055704f92e24295c549c89fa21
Author: David Green <david.green at arm.com>
Date: 2026-05-26 (Tue, 26 May 2026)
Changed paths:
M llvm/lib/CodeGen/SelectionDAG/LegalizeVectorOps.cpp
M llvm/test/CodeGen/AArch64/bf16-v4-instructions.ll
M llvm/test/CodeGen/AArch64/fp16-v4-instructions.ll
M llvm/test/CodeGen/AArch64/sve-fixed-length-fp-compares.ll
Log Message:
-----------
[AArch64][DAG] Use getSetCCResultType in PromoteSETCC (#198320)
During the promotion of a v16bf16 vector setcc with 256 bit sve, a
v16i16 setcc(v16f32) is created, that gets legalized to a v8i16
setcc(v8f32), which trips up an assert in the aarch64 custom lowering to
vector registers. It could be solved elsewhere but this addresses it by
making sure that when the f32 setcc is created, the result type matches
getSetCCResultType.
The mvn+xtn vs xtn+mvn is mostly benign, and should both probably be a
subhn if it can be done without causing regressions.
Commit: e526b2003977f45bb8809480320e74d3f8e19c69
https://github.com/llvm/llvm-project/commit/e526b2003977f45bb8809480320e74d3f8e19c69
Author: Ryan Buchner <rbuchner at qti.qualcomm.com>
Date: 2026-05-26 (Tue, 26 May 2026)
Changed paths:
A llvm/test/Transforms/SLPVectorizer/RISCV/get-vec-element-size.ll
Log Message:
-----------
[SLP] Add new tests for instrinsics in getVectorElementSize() (#199612)
More tests for additions to #199129.
Commit: a917c00ab13fb7d374428563a1b8fa0eef1e35b1
https://github.com/llvm/llvm-project/commit/a917c00ab13fb7d374428563a1b8fa0eef1e35b1
Author: Nikolas Klauser <nikolasklauser at berlin.de>
Date: 2026-05-26 (Tue, 26 May 2026)
Changed paths:
M libcxx/include/__algorithm/copy_if.h
M libcxx/include/__algorithm/partial_sort_copy.h
M libcxx/include/__algorithm/ranges_copy_if.h
M libcxx/include/__algorithm/ranges_partial_sort_copy.h
M libcxx/include/__algorithm/ranges_unique_copy.h
M libcxx/include/__algorithm/unique_copy.h
M libcxx/include/__memory/ranges_uninitialized_algorithms.h
M libcxx/include/__memory/uninitialized_algorithms.h
Log Message:
-----------
[libc++] Use __in_out_result in the remaining appropriate algorithms (#198156)
We've already switched some algorithms to use `__in_out_result` instead
of `pair` as the return type. This updates the remaining appropriate
algorithms.
Commit: 990e35ea9d80e9ef2dc9a4fc1cc2a386d538b576
https://github.com/llvm/llvm-project/commit/990e35ea9d80e9ef2dc9a4fc1cc2a386d538b576
Author: forking-google-bazel-bot[bot] <265904573+forking-google-bazel-bot[bot]@users.noreply.github.com>
Date: 2026-05-26 (Tue, 26 May 2026)
Changed paths:
M utils/bazel/llvm-project-overlay/mlir/BUILD.bazel
Log Message:
-----------
[Bazel] Fixes 44da860 (#199723)
This fixes 44da8601d71ea712b92589bc83f498d6e952c4f9.
Co-authored-by: Google Bazel Bot <google-bazel-bot at google.com>
Commit: 80a5207d940bcffa4f4339111dca65a4fcca8926
https://github.com/llvm/llvm-project/commit/80a5207d940bcffa4f4339111dca65a4fcca8926
Author: Florian Hahn <flo at fhahn.com>
Date: 2026-05-26 (Tue, 26 May 2026)
Changed paths:
M llvm/lib/Transforms/Vectorize/LoopVectorizationPlanner.h
M llvm/lib/Transforms/Vectorize/VPlan.h
M llvm/lib/Transforms/Vectorize/VPlanAnalysis.cpp
M llvm/lib/Transforms/Vectorize/VPlanAnalysis.h
M llvm/lib/Transforms/Vectorize/VPlanConstruction.cpp
M llvm/lib/Transforms/Vectorize/VPlanRecipes.cpp
M llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
M llvm/lib/Transforms/Vectorize/VPlanVerifier.cpp
M llvm/unittests/Transforms/Vectorize/VPDomTreeTest.cpp
M llvm/unittests/Transforms/Vectorize/VPlanTest.cpp
Log Message:
-----------
[VPlan] Thread scalar types through VPInstruction and VPPhi. (NFC) (#199378)
Update VPInstruction and VPPhi to populate VPSingleDefValue's scalar
type. For most opcodes, the scalar type is determine from the operands,
via computeScalarTypeForInstruction, which roughly matches to removed
inference code. For some opcodes, like FirstActiveLane, the type must be
provided explicitly.
PR: https://github.com/llvm/llvm-project/pull/199378
Commit: b395ca789219aedfe856fc89329840cbee9fae8d
https://github.com/llvm/llvm-project/commit/b395ca789219aedfe856fc89329840cbee9fae8d
Author: Arseniy Obolenskiy <arseniy.obolenskiy at amd.com>
Date: 2026-05-26 (Tue, 26 May 2026)
Changed paths:
M llvm/lib/Target/SPIRV/SPIRVLegalizePointerCast.cpp
M llvm/test/CodeGen/SPIRV/llvm-intrinsics/matrix-transpose.ll
Log Message:
-----------
[SPIR-V] Fix legalized load of single-element vector from array (#198330)
Commit: bacd876134494c69d02b4509e125c47b5e86d3d2
https://github.com/llvm/llvm-project/commit/bacd876134494c69d02b4509e125c47b5e86d3d2
Author: Karim Alweheshy <9082720+karim-alweheshy at users.noreply.github.com>
Date: 2026-05-26 (Tue, 26 May 2026)
Changed paths:
M lld/MachO/BPSectionOrderer.cpp
A lld/test/MachO/eh-frame-ordering.s
Log Message:
-----------
[lld][MachO] Preserve __eh_frame ordering during BP section sorting (#191412)
The Balanced Partitioning section orderer collects all live
`ConcatInputSection`s as candidates for content-similarity reordering.
This includes `__eh_frame` CIE and FDE records, which have internal
ordering constraints: each FDE contains a backward-relative 32-bit
offset to its parent CIE, requiring CIEs to precede their FDEs.
When the BP orderer assigns priorities to `__eh_frame` subsections and
`Writer.cpp` sorts by those priorities, FDEs can end up before their
parent CIEs. The resulting CIE-pointer offsets resolve correctly with
32-bit wrapping arithmetic but underflow with 64-bit pointer arithmetic,
causing DWARF consumers (crash reporters, debuggers) to silently lose
unwind data.
## Fix
Have the BP orderer skip the Mach-O `__TEXT,__eh_frame` section
explicitly before collecting candidate subsections, preserving the
existing CIE/FDE order without adding state to `Section`.
This is the only MachO section with this constraint:
- `__unwind_info` is a `SyntheticSection` (not a `ConcatOutputSection`),
so it never enters the BP pipeline
- `__gcc_except_tab` LSDA entries are referenced by absolute offset, so
reordering is safe
- `-order_file` is unaffected because it assigns priorities through
symbol definitions (which live in `__text`, not `__eh_frame`). Only the
BP orderer enumerates sections directly.
## Production impact
Verified on a large iOS application (~218 MB binary, ~34,000 FDEs)
linked with `lld` + `--bp-compression-sort=both`.
### Static analysis of `__eh_frame`
Simulating 64-bit CIE pointer resolution on the output binary across
multiple builds:
| Build | `__eh_frame` layout | FDEs resolved (64-bit) | FDEs failed |
|---|---|---|---|
| lld + BP sort | FDEs first | 15 / 34,257 | **34,242 (99.96%)** |
| lld + fix | CIEs first | 30,558 / 30,558 | **0** |
### Runtime verification
Proxied crash report uploads from a device running both the affected and
fixed binaries:
| | Affected build | Fixed build |
|---|---|---|
| Threads captured | 3 | 24 |
| Total frames | 28 | 135 |
| Background threads | 0-2 | 23 |
The affected build lost ~85% of thread data. The crash reporter could
only unwind the crashed thread (via compact unwind). All background
thread unwind data was silently dropped.
## Reproducer
Minimal test case (ARM64). Requires `--bp-compression-sort=both` to
trigger:
```bash
llvm-mc -filetype=obj -emit-compact-unwind-non-canonical=true \
-triple=arm64-apple-macos11.0 test.s -o test.o
ld64.lld -arch arm64 -platform_version macos 11.0 11.0 \
-syslibroot $(xcrun --show-sdk-path) -lSystem -lc++ \
test.o -o test --bp-compression-sort=both
llvm-objdump --dwarf=frames test
# Without fix: "error: parsing FDE data at 0x0 failed due to missing CIE"
# With fix: CIE records correctly precede their FDEs
```
Standalone reproducer with 64-bit CIE simulation script:
https://gist.github.com/karim-alweheshy/ae28196c4fbb295f81cc793cfbe0c1b7
## Test
The lit test creates multiple functions with `cfi_escape` (forcing DWARF
unwind mode) and different personality functions (producing separate
CIEs), then links with `--bp-compression-sort=both`. Verified on both
x86_64 and arm64.
Made with [Cursor](https://cursor.com)
---------
Co-authored-by: Karim Alweheshy <karim.alweheshy at reddit.com>
Co-authored-by: Ellis Hoag <ellis.sparky.hoag at gmail.com>
Commit: 1869d9925f5d278c607eb2859ab413ba15438c50
https://github.com/llvm/llvm-project/commit/1869d9925f5d278c607eb2859ab413ba15438c50
Author: Ömer Sinan Ağacan <omeragacan at gmail.com>
Date: 2026-05-26 (Tue, 26 May 2026)
Changed paths:
M llvm/docs/LangRef.rst
M llvm/include/llvm/IR/Intrinsics.td
Log Message:
-----------
Update `memset.inline` third argument documentation (#199725)
Similar to `memcpy.inline`, `memset.inline`'s size argument doesn't need
to be a constant. Checked by the test
Transforms/PreISelIntrinsicLowering/X86/memset-inline-non-constant-len.ll.
Commit: 460556ae66e45b203f49c1c43878b4e0ef6d0f49
https://github.com/llvm/llvm-project/commit/460556ae66e45b203f49c1c43878b4e0ef6d0f49
Author: Min-Yih Hsu <min.hsu at sifive.com>
Date: 2026-05-26 (Tue, 26 May 2026)
Changed paths:
M llvm/lib/ExecutionEngine/Orc/Shared/SimpleRemoteEPCUtils.cpp
Log Message:
-----------
[ORC] Shutdown the socket FD before closing it in FDSimpleRemoteEPCTransport (#196835)
It is totally possible that when
`FDSimpleRemoteEPCTransport::disconnect` is called,
`FDSimpleRemoteEPCTransport::listenLoop` is still reading on the socket
FD the former is closing. On Linux, closing a socket FD when it is being
read by another thread is an undefined behavior I believe. And on modern
kernels, the reading thread will not be waken up, so `listenLoop` will
be blocked forever and preventing the process from exiting.
This patch fixes this issue by calling `shutdown(2)` on the socket FDs
before closing them.
Commit: 4bc1cd92e41f682a5aa49fd5ca10a2002d8470ba
https://github.com/llvm/llvm-project/commit/4bc1cd92e41f682a5aa49fd5ca10a2002d8470ba
Author: Tom Stellard <tstellar at redhat.com>
Date: 2026-05-26 (Tue, 26 May 2026)
Changed paths:
M .github/workflows/release-binaries.yml
Log Message:
-----------
workflows/release-binaries: Fix yaml error (#199735)
This was introduced by: 25294a2fffcf40cbd8b6743d78524badeded7446
Commit: e925643b1e7fc936955c0cc01c2c3ce1abd2f4ce
https://github.com/llvm/llvm-project/commit/e925643b1e7fc936955c0cc01c2c3ce1abd2f4ce
Author: Carlos Seo <carlos.seo at linaro.org>
Date: 2026-05-26 (Tue, 26 May 2026)
Changed paths:
M flang/lib/Semantics/check-omp-structure.cpp
A flang/test/Semantics/OpenMP/declare-simd-interface-body.f90
M flang/test/Semantics/OpenMP/linear-clause03.f90
Log Message:
-----------
[flang][OpenMP] Warn that declare simd in an interface body has no effect (#199248)
Follow-up to the crash fix for #192581. A DECLARE SIMD directive may
legally appear in the specification part of an interface body, but it
applies to the external procedure being declared rather than to any
definition in this compilation. Flang does not propagate the directive
to callers, so it has no effect and is silently dropped during lowering.
Detect this in semantics by checking whether the program unit containing
the directive is an interface body (SubprogramDetails::isInterface())
and emit an -Wopenmp-usage warning so the user knows the directive is
ignored.
Updates #192581
Commit: ae0dc3104bf5a53a69c4ab5bce6e3a5365fa7740
https://github.com/llvm/llvm-project/commit/ae0dc3104bf5a53a69c4ab5bce6e3a5365fa7740
Author: Krzysztof Parzyszek <Krzysztof.Parzyszek at amd.com>
Date: 2026-05-26 (Tue, 26 May 2026)
Changed paths:
M flang/include/flang/Semantics/openmp-utils.h
M flang/lib/Semantics/openmp-utils.cpp
Log Message:
-----------
[flang][OpenMP] Make `iv` const-reference to original parser::Name (#199727)
Merging since this is a trivial change.
Commit: 041c5e0e06c9aa9581cd4714b93d89422741bab8
https://github.com/llvm/llvm-project/commit/041c5e0e06c9aa9581cd4714b93d89422741bab8
Author: Florian Hahn <flo at fhahn.com>
Date: 2026-05-26 (Tue, 26 May 2026)
Changed paths:
M llvm/lib/Transforms/Vectorize/VPlanRecipes.cpp
Log Message:
-----------
[VPlan] Add missing maybe_unsused to OpTy (NFC). (#199734)
This fixes a warning when building w/o assertions.
https://lab.llvm.org/buildbot/#/builders/228/builds/76
Commit: 196c7018fc11e40d69b476562a105023e56e72a5
https://github.com/llvm/llvm-project/commit/196c7018fc11e40d69b476562a105023e56e72a5
Author: Krzysztof Drewniak <Krzysztof.Drewniak at amd.com>
Date: 2026-05-26 (Tue, 26 May 2026)
Changed paths:
M mlir/include/mlir/Dialect/MemRef/Transforms/Passes.td
M mlir/include/mlir/Dialect/MemRef/Transforms/Transforms.h
M mlir/include/mlir/Dialect/Utils/StaticValueUtils.h
M mlir/lib/Dialect/MemRef/Transforms/FlattenMemRefs.cpp
M mlir/lib/Dialect/Vector/Transforms/VectorEmulateNarrowType.cpp
M mlir/test/Dialect/MemRef/flatten_memref.mlir
M mlir/test/Dialect/Vector/flatten-memref-and-emulate-narrow-types.mlir
Log Message:
-----------
[mlir][MemRef] Move FlattenMemRefs to interfaces (#198625)
Use IndexedAccessOpInterface for indexed memory operations and
VectorTransferOpInterface update methods for vector transfers ops. Add
an IndexedMemCopyOpInterface-based flattening pattern for DMA-like
operations.
This gets rid of the hardcoded operation list in the patterns, allowing
dialects like AMDGPU to transparently work with memref flattening.
As a consequence, the specialized vector- and memref-dialect only
constructors that only load a subset of the flattening patterns are
removed.
Also adds a max() method to SaturatedInteger because it was useful for
computing the size of a flat memref.
---------
Co-authored-by: Codex <codex at openai.com>
Commit: da57dc996221b505a16d9827474b086347eb25e4
https://github.com/llvm/llvm-project/commit/da57dc996221b505a16d9827474b086347eb25e4
Author: Domenic Nutile <domenic.nutile at gmail.com>
Date: 2026-05-26 (Tue, 26 May 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp
M llvm/lib/Target/AMDGPU/AMDGPURegBankLegalizeRules.cpp
M llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-sextload-s16-true16.mir
M llvm/test/CodeGen/AMDGPU/GlobalISel/load-d16.ll
M llvm/test/CodeGen/AMDGPU/flat-saddr-load.ll
M llvm/test/CodeGen/AMDGPU/global-saddr-load.ll
Log Message:
-----------
[AMDGPU][True16] Legalize extloads into 16-bit registers (#198670)
<sub>Stack created with <a
href="https://github.com/github/gh-stack">GitHub Stacks CLI</a> • <a
href="https://gh.io/stacks-feedback">Give Feedback 💬</a></sub>
Stack PRs:
https://github.com/llvm/llvm-project/pull/198669
https://github.com/llvm/llvm-project/pull/198671
See https://github.com/llvm/llvm-project/pull/195289 for previous
discussion
---------
Signed-off-by: Domenic Nutile <domenic.nutile at gmail.com>
Co-authored-by: Domenic Nutile <domenic.nutile at amd.com>
Commit: 9ec4c66daffdf2fc740c2429a4d1ec3ff4d997b0
https://github.com/llvm/llvm-project/commit/9ec4c66daffdf2fc740c2429a4d1ec3ff4d997b0
Author: Krzysztof Drewniak <Krzysztof.Drewniak at amd.com>
Date: 2026-05-26 (Tue, 26 May 2026)
Changed paths:
M llvm/docs/AMDGPUUsage.rst
M llvm/lib/IR/Type.cpp
M llvm/test/Assembler/target-type-param-errors.ll
A llvm/test/Verifier/amdgpu-stridemark-structured-gep.ll
A llvm/test/Verifier/amdgpu-stridemark-tokenlike.ll
M llvm/test/Verifier/structured-gep-indices-bad.ll
Log Message:
-----------
[AMDGPU] Lay groundwork for stridemark type / addrspace(9) via sgep (#198930)
This commit introduces and documents the `amdgpu.stridemark` target
type, which is used to express when a structured.gep intrinsic is being
used to increment/decrement the index part of a `ptr addrspace(9)` (as
opposed to GEP, which manipulates the offset part)
Future PRs will add inbounds/nusw/nuw support to structured GEP to
enable more efficient code generation and then will implement a lowering
of these structured GEPs to struct.buffer intrinsics.
Commit: 31111955fc5c182f40080d3a9a0dc2ab4e175cf1
https://github.com/llvm/llvm-project/commit/31111955fc5c182f40080d3a9a0dc2ab4e175cf1
Author: Alex Langford <alangford at apple.com>
Date: 2026-05-26 (Tue, 26 May 2026)
Changed paths:
M lldb/source/Host/common/Socket.cpp
M lldb/source/Host/posix/DomainSocket.cpp
M lldb/unittests/Host/SocketTest.cpp
Log Message:
-----------
[lldb] Set SO_NOSIGPIPE on platforms that support it (#198044)
On macOS, I've seen instances where debugserver goes down very quickly
after it starts up (less than 100ms). Normally, LLDB is able to detect
when debugserver goes down and report it without bringing down the
entire debug session. However that's not happening here. My best guess
is that debugserver is going down before LLDB is ready to react to it.
To mitigate this scenario, adopt SO_NOSIGPIPE. Note that this mostly
matters for tools that embed liblldb. The LLDB driver ignores all
SIGPIPEs.
rdar://173516461
Commit: 09709d7f5357c843c596db34721aa5d85e06323c
https://github.com/llvm/llvm-project/commit/09709d7f5357c843c596db34721aa5d85e06323c
Author: Aiden Grossman <aidengrossman at google.com>
Date: 2026-05-26 (Tue, 26 May 2026)
Changed paths:
M .github/workflows/libc-shared-tests.yml
Log Message:
-----------
[Github] Pin container image reference in libc-shared-tests (#199737)
Pinned to the image used in the last successful workflow run.
Introduced in c32de3e3759c3368978535e4ff4fb83323219fb0.
Commit: 2a80a9d52ee17a2a3188f52a3befcb2e8ed57ae6
https://github.com/llvm/llvm-project/commit/2a80a9d52ee17a2a3188f52a3befcb2e8ed57ae6
Author: Ziqing Luo <ziqing_luo at apple.com>
Date: 2026-05-26 (Tue, 26 May 2026)
Changed paths:
M clang/docs/ReleaseNotes.rst
M clang/lib/Sema/AnalysisBasedWarnings.cpp
M clang/test/Modules/safe_buffers_optout.cpp
M clang/test/PCH/unsafe-buffer-usage-pragma-pch-complex.cpp
M clang/test/PCH/unsafe-buffer-usage-pragma-pch-cross-files-2.cpp
M clang/test/PCH/unsafe-buffer-usage-pragma-pch-cross-files.cpp
A clang/test/SemaCXX/warn-unsafe-buffer-usage-pragma-issue-79379.cpp
M clang/test/SemaCXX/warn-unsafe-buffer-usage-pragma-pch.cpp
A clang/test/SemaCXX/warn-unsafe-buffer-usage-template-instantiation-notes.cpp
Log Message:
-----------
[-Wunsafe-buffer-usage] Move warning-only analysis back to function-based (#198006)
Move the warning-only analysis back to the end of parsing each Decl.
The warning-only analysis no longer does any extra AST deserialization.
Pre-compiled code will only be analyzed once during its own compilation.
When `-fsafe-buffer-usage-suggestions` is used, the behavior is the
same as before, because it requires visibility of the whole
translation unit.
rdar://177185295
Also fix rdar://107480207 & rdar://176992568 for the warning-only case.
Commit: 85717da6350cfc3de1d166fcef661abadb377fcf
https://github.com/llvm/llvm-project/commit/85717da6350cfc3de1d166fcef661abadb377fcf
Author: Keith Smiley <keithbsmiley at gmail.com>
Date: 2026-05-26 (Tue, 26 May 2026)
Changed paths:
M clang/include/clang/Basic/DebugOptions.def
M clang/include/clang/Options/Options.td
M clang/lib/CodeGen/CGDebugInfo.cpp
M clang/lib/Driver/ToolChains/Clang.cpp
M clang/test/DebugInfo/Generic/sysroot-sdk.c
M clang/test/Modules/debug-info-moduleimport.m
M lldb/test/API/lang/objc/modules-auto-import/Makefile
M lldb/test/API/lang/objc/modules-auto-import/TestModulesAutoImport.py
Log Message:
-----------
[clang] Add -fno-debug-record-sysroot (#192541)
This enables excluding the absolute path to the sysroot from debug info
for reproducible builds. These fields are used by lldb, which also has
fallbacks since it's possible these paths don't exist on the machine
doing the debugging when built remotely anyways.
This was also possible using
`-fdebug-prefix-map=/path/to/Xcode.app=/some/path`
but depending on the environment you might not be able to easily pass
that with the user specific developer directory path.
Assisted by: claude
Commit: 769ffe95aac091593563cb2a8cc282b0b6dd2099
https://github.com/llvm/llvm-project/commit/769ffe95aac091593563cb2a8cc282b0b6dd2099
Author: Sergei Druzhkov <serzhdruzhok at gmail.com>
Date: 2026-05-26 (Tue, 26 May 2026)
Changed paths:
M lldb/tools/lldb-dap/DAP.cpp
M lldb/tools/lldb-dap/JSONUtils.cpp
M lldb/tools/lldb-dap/LLDBUtils.cpp
Log Message:
-----------
[lldb-dap][NFC] Use GetStringValue helper (#199672)
I noticed some inconsistency in working with
`SBStructuredData.GetStringValue` (e.g. use `length + 1` or `length`),
so it would be better to remove that code duplication and use common
helper (`GetStringValue`) to do this routine.
Commit: 461f816d44203c3644b30bd3e42eb7c86c23a0f2
https://github.com/llvm/llvm-project/commit/461f816d44203c3644b30bd3e42eb7c86c23a0f2
Author: Finn Plummer <mail at inbelic.dev>
Date: 2026-05-26 (Tue, 26 May 2026)
Changed paths:
M clang/lib/CodeGen/CGExprAgg.cpp
M clang/lib/CodeGen/CGHLSLBuiltins.cpp
M clang/lib/CodeGen/CGHLSLRuntime.cpp
M clang/lib/CodeGen/CodeGenFunction.h
M clang/lib/CodeGen/CodeGenModule.h
M clang/test/CodeGenDirectX/Builtins/dot2add.c
M clang/test/CodeGenHLSL/ArrayAssignable.logicalptr.hlsl
M clang/test/CodeGenHLSL/BasicFeatures/ArrayReturn.hlsl
M clang/test/CodeGenHLSL/BasicFeatures/InitLists.hlsl
M clang/test/CodeGenHLSL/BasicFeatures/MatrixConstructor.hlsl
M clang/test/CodeGenHLSL/BasicFeatures/MatrixElementTypeCast.hlsl
M clang/test/CodeGenHLSL/BasicFeatures/MatrixExplicitTruncation.hlsl
M clang/test/CodeGenHLSL/BasicFeatures/MatrixImplicitTruncation.hlsl
M clang/test/CodeGenHLSL/BasicFeatures/MatrixSingleSubscriptConstSwizzle.hlsl
M clang/test/CodeGenHLSL/BasicFeatures/MatrixSingleSubscriptDynamicSwizzle.hlsl
M clang/test/CodeGenHLSL/BasicFeatures/MatrixSingleSubscriptGetter.hlsl
M clang/test/CodeGenHLSL/BasicFeatures/MatrixSingleSubscriptSetter.hlsl
M clang/test/CodeGenHLSL/BasicFeatures/MatrixSplat.hlsl
M clang/test/CodeGenHLSL/BasicFeatures/MatrixToAndFromVectorConstructors.hlsl
M clang/test/CodeGenHLSL/BoolMatrix.hlsl
M clang/test/CodeGenHLSL/GlobalConstructorFunction.hlsl
M clang/test/CodeGenHLSL/GlobalConstructorLib.hlsl
M clang/test/CodeGenHLSL/GlobalConstructors.hlsl
M clang/test/CodeGenHLSL/builtins/AddUint64.hlsl
M clang/test/CodeGenHLSL/builtins/BoolSwizzles.hlsl
M clang/test/CodeGenHLSL/builtins/ScalarSwizzles.hlsl
M clang/test/CodeGenHLSL/builtins/abs.hlsl
M clang/test/CodeGenHLSL/builtins/ceil.hlsl
M clang/test/CodeGenHLSL/builtins/f16tof32-builtin.hlsl
M clang/test/CodeGenHLSL/builtins/f16tof32.hlsl
M clang/test/CodeGenHLSL/builtins/f32tof16-builtin.hlsl
M clang/test/CodeGenHLSL/builtins/f32tof16.hlsl
M clang/test/CodeGenHLSL/builtins/floor.hlsl
M clang/test/CodeGenHLSL/builtins/mad.hlsl
M clang/test/CodeGenHLSL/convergence/cf.for.plain.hlsl
M clang/test/CodeGenHLSL/convergence/do.while.hlsl
M clang/test/CodeGenHLSL/convergence/entry.point.hlsl
M clang/test/CodeGenHLSL/convergence/for.hlsl
M clang/test/CodeGenHLSL/convergence/global_array.hlsl
M clang/test/CodeGenHLSL/convergence/while.hlsl
M clang/test/CodeGenHLSL/matrix-member-one-based-accessor-scalar-load.hlsl
M clang/test/CodeGenHLSL/matrix-member-one-based-accessor-scalar-store.hlsl
M clang/test/CodeGenHLSL/matrix-member-one-based-swizzle-load.hlsl
M clang/test/CodeGenHLSL/matrix-member-one-based-swizzle-store.hlsl
M clang/test/CodeGenHLSL/matrix-member-zero-based-accessor-scalar-load.hlsl
M clang/test/CodeGenHLSL/matrix-member-zero-based-accessor-scalar-store.hlsl
M clang/test/CodeGenHLSL/matrix-member-zero-based-swizzle-load.hlsl
M clang/test/CodeGenHLSL/matrix-member-zero-based-swizzle-store.hlsl
M clang/test/CodeGenHLSL/resources/ByteAddressBuffers-constructors.hlsl
M clang/test/CodeGenHLSL/resources/ByteAddressBuffers-methods.hlsl
M clang/test/CodeGenHLSL/resources/CBufferMatrixSingleSubscriptSwizzle.hlsl
M clang/test/CodeGenHLSL/resources/MatrixElement_cbuffer.hlsl
M clang/test/CodeGenHLSL/resources/StructuredBuffers-methods-lib.hlsl
M clang/test/CodeGenHLSL/resources/StructuredBuffers-methods-ps.hlsl
M clang/test/CodeGenHLSL/resources/Texture2D-Mips.hlsl
M clang/test/CodeGenHLSL/resources/TypedBuffers-constructor.hlsl
M clang/test/CodeGenHLSL/resources/TypedBuffers-methods.hlsl
M clang/test/CodeGenHLSL/resources/cbuffer.hlsl
M clang/test/CodeGenHLSL/resources/cbuffer_with_packoffset.hlsl
M clang/test/CodeGenHLSL/resources/res-array-global-subarray-many.hlsl
M clang/test/CodeGenHLSL/resources/res-array-global-subarray-one.hlsl
M clang/test/CodeGenHLSL/resources/res-array-local-multi-dim.hlsl
M clang/test/CodeGenHLSL/resources/res-array-local1.hlsl
M clang/test/CodeGenHLSL/resources/res-array-local2.hlsl
M clang/test/CodeGenHLSL/resources/res-array-local3.hlsl
M clang/test/CodeGenHLSL/resources/resources-in-structs-array.hlsl
M clang/test/CodeGenHLSL/resources/resources-in-structs-inheritance.hlsl
M clang/test/CodeGenHLSL/resources/resources-in-structs.hlsl
M clang/test/CodeGenHLSL/static-local-ctor.hlsl
M clang/test/CodeGenHLSL/this-assignment-overload.hlsl
M clang/test/CodeGenHLSL/this-assignment.hlsl
M clang/test/CodeGenHLSL/this-reference.hlsl
M clang/test/SemaHLSL/Resources/static_resources.hlsl
A llvm/test/Transforms/IndVarSimplify/convergent-controlled-loop.ll
A llvm/test/Transforms/LoopRotate/convergent-controlled.ll
A llvm/test/Transforms/SimpleLoopUnswitch/convergent-controlled.ll
Log Message:
-----------
Reland "[HLSL][DirectX] Emit convergence control tokens when targeting DirectX" (#194452)
The initial landing surfaced 3 somewhat orthogonal issues related to
loop unrolling. These are addressed:
[here](https://github.com/llvm/llvm-project/pull/193592),
[here](https://github.com/llvm/llvm-project/pull/193593) and
[here](https://github.com/llvm/llvm-project/pull/193590).
These caused these
[tests](https://github.com/llvm/llvm-project/actions/runs/24577221310/job/71865579618#step:8:87913)
to fail in the offload test suite.
We can verify that these are now passing as expected (fixing any of the
3 issues would resolve this and allow us to reland)
Some additional tests were added since the revert that are now accounted
for and updated in the reland fixes commit.
This relands https://github.com/llvm/llvm-project/pull/188792
Commit: 631d16eaaa88ab76feaa6c672ce4a4ca4bfcf14b
https://github.com/llvm/llvm-project/commit/631d16eaaa88ab76feaa6c672ce4a4ca4bfcf14b
Author: Ziqing Luo <ziqing_luo at apple.com>
Date: 2026-05-26 (Tue, 26 May 2026)
Changed paths:
M clang/include/clang/ScalableStaticAnalysisFramework/Analyses/PointerFlow/PointerFlow.h
M clang/include/clang/ScalableStaticAnalysisFramework/Analyses/PointerFlow/PointerFlowAnalysis.h
M clang/lib/ScalableStaticAnalysisFramework/Analyses/UnsafeBufferUsage/UnsafeBufferUsageAnalysis.cpp
M clang/unittests/ScalableStaticAnalysisFramework/WholeProgramAnalysis/UnsafeBufferReachableAnalysisTest.cpp
Log Message:
-----------
[SSAF][WPA] Bounds propagation graph is a supergraph of the pointer-flow graph (#198889)
Background: The whole-program UnsafeBufferReachableAnalysis propagates
bounds between pointers. It uses the pointer-flow graph extracted and
linked from translation units.
This commit patches the gap between the semantics of bounds propagation
and pointer-flow: the bounds propagation graph is a super graph of the
pointer-flow graph in that a pointer-flow graph edge `(src, i) -> (dst,
j)` is the projection of a finite set of bounds propagation graph edges
`{(src, i+d) -> (dst, j+d) | 0 <= d < UB}` for a small constant upper
bound UB. See the following example for the idea:
```
void f(int ***p, int **q) {
*p = q;
(**p)[5] = 0;
}
```
There is one edge for the static pointer assignment: '(p, 2) -> (q, 1)'.
In terms of bounds propagation, this assignment implies that if 'p' at
pointer level 2 requires bounds, 'q' at pointer level 1 must also have
them. Furthermore, this relationship propagates to deeper indirection
levels: if 'p' at level 3 requires bounds (due to '(**p)[5]'), so does
'q' at level 2.
Commit: 6d99fcb5c8a2a4a71a4c77a7074776f535ed6a82
https://github.com/llvm/llvm-project/commit/6d99fcb5c8a2a4a71a4c77a7074776f535ed6a82
Author: Nikolas Klauser <nikolasklauser at berlin.de>
Date: 2026-05-26 (Tue, 26 May 2026)
Changed paths:
M libcxx/test/std/strings/basic.string/string.capacity/over_max_size.pass.cpp
Log Message:
-----------
[libc++] Mark string.capacity/over_max_size.pass.cpp as UNSUPPORTED on old dylibs (#199682)
This test is currently failing in the CI for unknown reasons, likely
related to the setup and not a recent patch. Disable it for now to get
the CI green again.
Commit: 95cb4d4b536af5c6f462e7a2c6ad2dd14c2701b7
https://github.com/llvm/llvm-project/commit/95cb4d4b536af5c6f462e7a2c6ad2dd14c2701b7
Author: vangthao95 <vang.thao at amd.com>
Date: 2026-05-26 (Tue, 26 May 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPURegBankLegalizeRules.cpp
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.wave.shuffle.ll
Log Message:
-----------
AMDGPU/GlobalISel: RegBankLegalize rules for wave_shuffle (#196412)
Add uniform and divergent RegBankLegalize rules for wave shuffle. When
wave_shuffle is uniform, it is folded by AMDGPUUniformIntrinsicCombine
before reaching RegBankLegalize, to its value operand when value is
uniform, or to amdgcn_readlane when only idx is uniform. Add a test to
disable UniformIntrinsicCombine so we can verify and test for uniform
rule.
Commit: ff243860d7934d763dea4f3fa345b4bfef6d393c
https://github.com/llvm/llvm-project/commit/ff243860d7934d763dea4f3fa345b4bfef6d393c
Author: Liza Burakova <liza at chromium.org>
Date: 2026-05-26 (Tue, 26 May 2026)
Changed paths:
M lld/MachO/LTO.cpp
A lld/test/MachO/Inputs/large-lto-object.ll
M lld/test/MachO/lto-object-path.ll
Log Message:
-----------
[lld][MachO] Fix SIGBUS crash in saveOrHardlinkBuffer (#198381)
This change removes a hardlink in saveOrHardlinkBuffer if the
hardlink already exists.
On Mac, -object_path_lto files are hardlinked to the cache when
possible. If the hardlink fails, the saveOrHardlinkBuffer method
falls back to saveBuffer instead.
saveBuffer() opens the file that is being written to as a
raw_fd_ostream object, which truncates a file when opening if the
file already exists.
Most of the time this is not an issue, however, if the hardlink
fails because it actually already exists, AND the hardlink exists
specifically between the -object_path_lto file and the cache file,
then when the file is opened and truncated, we also accidentally
truncate the file we are trying to read from.
This fixes a recurring issue Chromium saw in buildbots that
occassionally hit the above circumstances to cause the crash.
Chromium bug for reference is crbug.com/40060675.
This test adds a new file with a large-ish array (32KB) to ensure
the file is large enough to be mmap'd during the linking process.
This was necessary to reproduce the crash, as smaller files were
not mmap'd. The SIGBUS crash only occurs when the file is mmap'd
then truncated.
Commit: 8d2f190609b680cca5829e77f68b45798cd79444
https://github.com/llvm/llvm-project/commit/8d2f190609b680cca5829e77f68b45798cd79444
Author: Fan Mo <w007878 at hotmail.com>
Date: 2026-05-26 (Tue, 26 May 2026)
Changed paths:
M clang/include/clang/Basic/DiagnosticSemaKinds.td
M clang/lib/Sema/SemaOpenACCClause.cpp
A clang/test/SemaOpenACC/compute-construct-reduction-vla.c
A clang/test/SemaOpenACC/compute-construct-reduction-vla.cpp
Log Message:
-----------
[clang][SemaOpenACC] Reject VLA reduction (#199178)
`GenerateReductionInitRecipeExpr` only handled `ConstantArrayType` when
walking the operand type to build an InitListExpr. A VariableArrayType
`(int arr[i+1])` fell through to the final else branch and tripped
`assert(Ty->isScalarType())`.
Rather than silently accepting VLAs (which have no reasonable lowering.
unlike pointers, there is an expectation of initialized values,but we
cannot statically enumerate elements), reject them outright in
`CheckVarType` with a new diagnostic err_acc_reduction_vla. This is
consistent with the fact that neither codegen nor lowering currently
supports VLA reductions, and other compilers (GCC crashes, NVC++
silently ignores) do not meaningfully handle them either. The fix
upgrades the existing warning path for non-constant arrays in
`CheckVarType` to an error when the clause kind is Reduction, so VLAs
never reach `GenerateReductionInitRecipeExpr`.
Reproducer:
```c
void foo(void) {
int i;
int arr[i + 1];
#pragma acc parallel reduction(& : arr)
while (1) ;
}
```
Fixes #199162
cc @erichkeane
---
note: calude code was used for generating the regression test case
---------
Co-authored-by: Lemmon <yuzutech.llc at gmail.com>
Commit: 92cfd0a3f0ac20fbba4fc74a4bdae409fceebd49
https://github.com/llvm/llvm-project/commit/92cfd0a3f0ac20fbba4fc74a4bdae409fceebd49
Author: Erick Velez <erickvelez7 at gmail.com>
Date: 2026-05-26 (Tue, 26 May 2026)
Changed paths:
M clang-tools-extra/clang-doc/JSONGenerator.cpp
M clang-tools-extra/clang-doc/Representation.cpp
M clang-tools-extra/clang-doc/Representation.h
M clang-tools-extra/clang-doc/tool/ClangDocMain.cpp
A clang-tools-extra/test/clang-doc/compact.cpp
M clang-tools-extra/test/clang-doc/enum.cpp
M clang-tools-extra/test/clang-doc/index.cpp
M clang-tools-extra/test/clang-doc/json/class-requires.cpp
M clang-tools-extra/test/clang-doc/json/class-specialization.cpp
M clang-tools-extra/test/clang-doc/json/class-template.cpp
M clang-tools-extra/test/clang-doc/json/class.cpp
M clang-tools-extra/test/clang-doc/json/compound-constraints.cpp
M clang-tools-extra/test/clang-doc/json/concept.cpp
M clang-tools-extra/test/clang-doc/json/function-requires.cpp
M clang-tools-extra/test/clang-doc/json/function-specifiers.cpp
M clang-tools-extra/test/clang-doc/json/inheritance.cpp
M clang-tools-extra/test/clang-doc/json/method-template.cpp
M clang-tools-extra/test/clang-doc/json/multiple-namespaces.cpp
M clang-tools-extra/test/clang-doc/json/namespace.cpp
M clang-tools-extra/test/clang-doc/json/nested-namespace.cpp
M clang-tools-extra/test/clang-doc/templates.cpp
M clang-tools-extra/unittests/clang-doc/ClangDocTest.cpp
Log Message:
-----------
[clang-doc] Add option for compact JSON (#190822)
By default all JSON is serialized "pretty" with whitespace. This patch
adds an option to serialize JSON without whitespace. This trims the size
of the JSON folder for clang from around 1.3 GB to 785 MB, which is a
39.6% decrease.
Commit: 282e90796bb9c7962520002806290279a41f6db6
https://github.com/llvm/llvm-project/commit/282e90796bb9c7962520002806290279a41f6db6
Author: lntue <lntue at google.com>
Date: 2026-05-26 (Tue, 26 May 2026)
Changed paths:
M .github/workflows/libc-fullbuild-tests.yml
Log Message:
-----------
[libc][ci] Improve full build precommit CIs caching keys. (#199742)
Currently full build precommit CIs only uses c_compiler as the cache's
key which will be the same for many of them listed in the matrix list.
We change to use the combination of (target + build_type + c_compiler)
as keys to uniquely distinguish them and the future gcc builds.
Commit: 3aa913fe647480791432d99bbdc016688d1ae841
https://github.com/llvm/llvm-project/commit/3aa913fe647480791432d99bbdc016688d1ae841
Author: lntue <lntue at google.com>
Date: 2026-05-26 (Tue, 26 May 2026)
Changed paths:
M libc/test/src/math/smoke/NextAfterTest.h
M libc/test/src/math/smoke/NextTowardTest.h
Log Message:
-----------
[libc][math] Temporarily disable exception tests for NextAfter and NextToward tests on Windows. (#199740)
They are a bit flaky on Windows.
See https://github.com/llvm/llvm-project/issues/199738
Commit: fafc2b32ffffdcf12717a8d3d166f91b34ae6362
https://github.com/llvm/llvm-project/commit/fafc2b32ffffdcf12717a8d3d166f91b34ae6362
Author: Tomer Shafir <tomer.shafir8 at gmail.com>
Date: 2026-05-26 (Tue, 26 May 2026)
Changed paths:
M llvm/lib/TableGen/TGParser.cpp
Log Message:
-----------
[TableGen] Fix wrong op name in a grammar comment(NFC) (#199661)
Commit: 010faf1e36c75a0f96dd45e6dd0a1ed30736b159
https://github.com/llvm/llvm-project/commit/010faf1e36c75a0f96dd45e6dd0a1ed30736b159
Author: Tomer Shafir <tomer.shafir8 at gmail.com>
Date: 2026-05-26 (Tue, 26 May 2026)
Changed paths:
M llvm/lib/TableGen/TGParser.cpp
Log Message:
-----------
[TableGen] Add missing grammar comment for !cond(NFC) (#199663)
Commit: 9d751a2985c1f2ef061f7f9f53d44676d1287883
https://github.com/llvm/llvm-project/commit/9d751a2985c1f2ef061f7f9f53d44676d1287883
Author: David Salinas <dsalinas at amd.com>
Date: 2026-05-26 (Tue, 26 May 2026)
Changed paths:
M llvm/lib/Object/OffloadBundle.cpp
A llvm/test/tools/llvm-objdump/Offloading/fatbin-coff-compress.test
A llvm/test/tools/llvm-objdump/Offloading/fatbin-coff.test
A llvm/test/tools/llvm-readobj/COFF/AMDGPU/offloading.test
Log Message:
-----------
[llvm][Object] Add COFF support to extractOffloadBundleFatBinary (#199574)
Use PointerToRawData from the COFF section header to compute the section
offset, replacing the previous stub that returned an error for all COFF
object files.
This enables llvm-objdump --offloading and llvm-readobj --offloading to
work on COFF fatbins produced by HIP on Windows.
---------
Co-authored-by: James Henderson <James.Henderson at sony.com>
Co-authored-by: Matt Arsenault <arsenm2 at gmail.com>
Commit: 5df91f6c83ca8035a67c79b224ca949e34966d82
https://github.com/llvm/llvm-project/commit/5df91f6c83ca8035a67c79b224ca949e34966d82
Author: Tom Stellard <tstellar at redhat.com>
Date: 2026-05-26 (Tue, 26 May 2026)
Changed paths:
M .github/workflows/sycl-tests.yml
Log Message:
-----------
workflows/sycl-tests: Pin container image reference (#199466)
I pinned the image to the version that was used in the last successful
workflow run.
https://github.com/llvm/llvm-project/security/code-scanning/1808
https://docs.zizmor.sh/audits/#unpinned-images
Commit: 88fbc0614e826d09c986fd1b6e80eb2435e97d6c
https://github.com/llvm/llvm-project/commit/88fbc0614e826d09c986fd1b6e80eb2435e97d6c
Author: Justin Lebar <justin.lebar at gmail.com>
Date: 2026-05-26 (Tue, 26 May 2026)
Changed paths:
M llvm/lib/Transforms/Scalar/DeadStoreElimination.cpp
M llvm/test/Transforms/DeadStoreElimination/merge-stores.ll
Log Message:
-----------
[DSE] Restrict partial-overlap store merging to matching orderings. (#199728)
Partial-overlap store merging folds the later killing store into the
earlier dead store and erases the killing store. That is invalid if the
killing store is volatile or has stronger-than-unordered atomic
ordering, because erasing it drops an observable write. It is also invalid
if the killing and dead stores have different atomic orderings, because
the bytes originally written by the killing store would inherit the dead
store's atomicity after the merge -- silently dropping (or adding)
atomicity for those bytes.
Require both stores to be unordered (i.e. non-volatile with ordering at
most unordered) and to share the same ordering. This preserves the
existing fold for two simple stores or two unordered-atomic stores
(e.g. simple.ll's test43a) while leaving volatile, ordered-atomic, and
atomicity-mismatched cases in place.
This bug was found by a large run of Opus 4.7 looking for bugs in LLVM.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply at anthropic.com>
Commit: 584b596d812044070193e7be9c1d3f39c7e147df
https://github.com/llvm/llvm-project/commit/584b596d812044070193e7be9c1d3f39c7e147df
Author: Tom Stellard <tstellar at redhat.com>
Date: 2026-05-26 (Tue, 26 May 2026)
Changed paths:
M .github/workflows/release-doxygen.yml
Log Message:
-----------
workflows/release-doxygen: Remove template expansions (#199456)
https://github.com/llvm/llvm-project/security/code-scanning/1725
https://github.com/llvm/llvm-project/security/code-scanning/1726
https://github.com/llvm/llvm-project/security/code-scanning/1838
Commit: ef59dbea76d82f008e5314c47e574193dbc4d403
https://github.com/llvm/llvm-project/commit/ef59dbea76d82f008e5314c47e574193dbc4d403
Author: Valentin Clement (バレンタイン クレメン) <clementval at gmail.com>
Date: 2026-05-26 (Tue, 26 May 2026)
Changed paths:
M flang/include/flang/Lower/CallInterface.h
M flang/include/flang/Optimizer/Builder/FIRBuilder.h
M flang/include/flang/Optimizer/Dialect/FIRType.h
M flang/lib/Evaluate/tools.cpp
M flang/lib/Lower/CallInterface.cpp
M flang/lib/Lower/ConvertCall.cpp
M flang/lib/Lower/ConvertConstant.cpp
M flang/lib/Lower/ConvertVariable.cpp
M flang/lib/Optimizer/Builder/FIRBuilder.cpp
M flang/lib/Optimizer/Builder/IntrinsicCall.cpp
A flang/test/HLFIR/c_devptr_byvalue.cuf
Log Message:
-----------
[flang][cuda] Lower c_devptr value arguments in bind(c) like c_ptr (#199316)
Treat `type(c_devptr), value` arguments in BIND(C) interfaces like
`type(c_ptr), value` by passing the nested raw address value instead of
the outer derived type ABI. This keeps call signatures consistent for
CUDA Fortran generic specifics that share a C binding label and avoids
argument misclassification at the x86_64 register/stack boundary.
Commit: 08e83a533e47607ce3229b32548f24e08d466fe6
https://github.com/llvm/llvm-project/commit/08e83a533e47607ce3229b32548f24e08d466fe6
Author: Tom Stellard <tstellar at redhat.com>
Date: 2026-05-26 (Tue, 26 May 2026)
Changed paths:
M .github/workflows/release-tasks.yml
Log Message:
-----------
workflows/release-tasks: Remove template expansion (#199444)
https://github.com/llvm/llvm-project/security/code-scanning/1737
https://github.com/llvm/llvm-project/security/code-scanning/1738
https://github.com/llvm/llvm-project/security/code-scanning/1739
https://github.com/llvm/llvm-project/security/code-scanning/1740
https://github.com/llvm/llvm-project/security/code-scanning/1741
https://github.com/llvm/llvm-project/security/code-scanning/1742
Commit: 6519c04eb459deab1c71756ddfc04fd7ee852904
https://github.com/llvm/llvm-project/commit/6519c04eb459deab1c71756ddfc04fd7ee852904
Author: Dhruva Chakrabarti <Dhruva.Chakrabarti at amd.com>
Date: 2026-05-26 (Tue, 26 May 2026)
Changed paths:
M llvm/lib/CodeGen/InlineSpiller.cpp
Log Message:
-----------
[1/3][RegAlloc][LiveRegMatrix] Fix inconsistency in HoistSpillHelper delegates (#197773)
HoistSpillHelper's LiveRangeEdit delegate callbacks did not keep the
LiveRegMatrix consistent when eliminateDeadDefs triggered interval
shrinking and splitting during spill hoisting.
Three issues:
1. No LRE_WillShrinkVirtReg override: when eliminateDeadDefs shrinks a
vreg's interval via shrinkToUses, the matrix was not updated. Add an
override that unassigns the vreg from the matrix and records it in
PendingReassignments for later re-assignment.
2. LRE_DidCloneVirtReg called VRM.assignVirt2Phys without
Matrix->assign: when splitSeparateComponents creates new vregs, the
clones got VRM entries but were never inserted into the matrix. Fix by
consuming PendingReassignments and properly assigning both Old (shrunk)
and New (split) intervals to the matrix.
3. No flush for shrink-without-split: if a vreg was shrunk but not
split, LRE_DidCloneVirtReg was never called to re-assign it. Add a flush
loop at the end of hoistAllSpills to re-assign any remaining pending
vregs.
Also update LRE_CanEraseVirtReg to clear pending entries for erased
vregs.
LIT tests exercised by this patch (i.e. if I introduce consistency
verification as in https://github.com/llvm/llvm-project/pull/197778 but
not this patch, the following tests fail):
CodeGen/X86/AMX/amx-gemm.ll
CodeGen/X86/apx/push2-pop2.ll
CodeGen/X86/udivmodei5.ll
Assisted-by: Cursor/Claude Opus
Commit: 7a66e99b12eed64c5509280c800b0ce21dcd0bff
https://github.com/llvm/llvm-project/commit/7a66e99b12eed64c5509280c800b0ce21dcd0bff
Author: Domenic Nutile <domenic.nutile at gmail.com>
Date: 2026-05-26 (Tue, 26 May 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPURegBankCombiner.cpp
M llvm/test/CodeGen/AMDGPU/GlobalISel/load-d16.ll
M llvm/test/CodeGen/AMDGPU/global-saddr-load.ll
Log Message:
-----------
[AMDGPU][True16] Add regbank combiner cases to fix regression around G_SEXTLOAD (#198671)
<sub>Stack created with <a
href="https://github.com/github/gh-stack">GitHub Stacks CLI</a> • <a
href="https://gh.io/stacks-feedback">Give Feedback 💬</a></sub>
Stack PRs:
https://github.com/llvm/llvm-project/pull/198669
https://github.com/llvm/llvm-project/pull/198670
See https://github.com/llvm/llvm-project/pull/195289 for previous
discussion
Commit: 13f9f468dcf8e89d232f28304fa595bf0efbf84b
https://github.com/llvm/llvm-project/commit/13f9f468dcf8e89d232f28304fa595bf0efbf84b
Author: Scott Linder <scott.linder at amd.com>
Date: 2026-05-26 (Tue, 26 May 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/SIFrameLowering.cpp
M llvm/lib/Target/AMDGPU/SIFrameLowering.h
M llvm/test/CodeGen/AMDGPU/GlobalISel/memory-legalizer-atomic-fence.ll
M llvm/test/CodeGen/AMDGPU/av-spill-expansion-with-machine-cp.mir
M llvm/test/CodeGen/AMDGPU/branch-folding-implicit-def-subreg.ll
M llvm/test/CodeGen/AMDGPU/dbg-info-inline-at.ll
A llvm/test/CodeGen/AMDGPU/debug-frame.ll
M llvm/test/CodeGen/AMDGPU/ds-read2-write2-debug-info.ll
M llvm/test/CodeGen/AMDGPU/eliminate-frame-index-s-add-i32.mir
M llvm/test/CodeGen/AMDGPU/eliminate-frame-index-s-add-u32.mir
M llvm/test/CodeGen/AMDGPU/eliminate-frame-index-v-add-co-u32-wave32.mir
M llvm/test/CodeGen/AMDGPU/eliminate-frame-index-v-add-co-u32.mir
M llvm/test/CodeGen/AMDGPU/eliminate-frame-index-v-add-u32.mir
A llvm/test/CodeGen/AMDGPU/entry-function-cfi.mir
M llvm/test/CodeGen/AMDGPU/frame-index-elimination-tied-operand.mir
M llvm/test/CodeGen/AMDGPU/gfx11-sgpr-hazard-latency.mir
M llvm/test/CodeGen/AMDGPU/inflate-av-remat-imm.mir
M llvm/test/CodeGen/AMDGPU/insert-waitcnts-merge.ll
M llvm/test/CodeGen/AMDGPU/issue98474-assigned-physreg-interference.mir
M llvm/test/CodeGen/AMDGPU/issue98474-virtregrewriter-live-out-undef-subregisters.mir
M llvm/test/CodeGen/AMDGPU/kernel-mubuf-with-voffset.mir
M llvm/test/CodeGen/AMDGPU/llvm.dbg.value.ll
M llvm/test/CodeGen/AMDGPU/memory-legalizer-single-wave-workgroup-memops.ll
M llvm/test/CodeGen/AMDGPU/pei-reg-scavenger-position.mir
M llvm/test/CodeGen/AMDGPU/regalloc-introduces-copy-sgpr-to-agpr.mir
M llvm/test/CodeGen/AMDGPU/sgpr-spill-dead-frame-in-dbg-value.mir
M llvm/test/CodeGen/AMDGPU/sgpr-spill.mir
M llvm/test/CodeGen/AMDGPU/spill-special-sgpr.mir
Log Message:
-----------
[AMDGPU] Emit entry function Dwarf CFI (#183152)
Entry functions represent the end of unwinding, as they are the
outer-most frame. This implies they can only have a meaningful
definition for the CFA, which AMDGPU defines using a memory location
description with a literal private address space address. The return
address is set to undefined as a sentinel value to signal the end of
unwinding.
Change-Id: I21580f6a24f4869ba32939c9c6332506032cc654
Co-authored-by: Scott Linder <scott.linder at amd.com>
Co-authored-by: Venkata Ramanaiah Nalamothu <VenkataRamanaiah.Nalamothu at amd.com>
Commit: 593a23887939b55219acae47fcb1cda48ff37319
https://github.com/llvm/llvm-project/commit/593a23887939b55219acae47fcb1cda48ff37319
Author: Arseniy Obolenskiy <arseniy.obolenskiy at amd.com>
Date: 2026-05-26 (Tue, 26 May 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPUInstructionSelector.cpp
M llvm/lib/Target/AMDGPU/GCNSubtarget.h
M llvm/lib/Target/AMDGPU/SIISelLowering.cpp
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.fma.legacy.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.sudot4.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.sudot8.ll
Log Message:
-----------
[AMDGPU] Diagnose unsupported fma_legacy/sudot4/sudot8 intrinsics on some subtargets (#198464)
Add proper diagnostics for `llvm.amdgcn.fma.legacy`,
`llvm.amdgcn.sudot4` and `llvm.amdgcn.sudot8` on subtargets where they
are unsupported
Commit: 3ce7b405579d64f8e26e14c6cc02df92117af330
https://github.com/llvm/llvm-project/commit/3ce7b405579d64f8e26e14c6cc02df92117af330
Author: Ben Langmuir <blangmuir at apple.com>
Date: 2026-05-26 (Tue, 26 May 2026)
Changed paths:
M clang/lib/Basic/FileManager.cpp
M clang/lib/Lex/HeaderSearch.cpp
M clang/unittests/Basic/FileManagerTest.cpp
Log Message:
-----------
Revert "[clang] Use FileError in FileManager::getFileRef, getDirectoryRef" (#199721)
Reverts llvm/llvm-project#199126
This caused a small compile time regression.
Commit: 3212caa942dea9247fffcd96ec2949f0f960731d
https://github.com/llvm/llvm-project/commit/3212caa942dea9247fffcd96ec2949f0f960731d
Author: Jordan Rupprecht <rupprecht at google.com>
Date: 2026-05-26 (Tue, 26 May 2026)
Changed paths:
M utils/bazel/llvm-project-overlay/llvm/BUILD.bazel
Log Message:
-----------
[bazel] Use `additional_compiler_inputs` to handle include scanning for TargetPassRegistry.inc (#199201)
This use of using `#include` with a macro breaks include scanning, for
example:
* `GET_PASS_REGISTRY` defined here:
https://github.com/llvm/llvm-project/blob/5c853423f4f9e7296b7596b7f3ccade481686bfd/llvm/lib/Target/AArch64/AArch64TargetMachine.cpp#L603
* `GET_PASS_REGISTRY` included here:
https://github.com/llvm/llvm-project/blob/5c853423f4f9e7296b7596b7f3ccade481686bfd/llvm/include/llvm/Passes/TargetPassRegistry.inc#L60
When include scanning is enabled, the `PassRegistry.def` gets omitted
because it the include scanner does not handle this case. Providing it
via `additional_compiler_inputs` ensures it is included even in that
case.
Commit: 3dd3b6fe758c4ca230e9de624b2586990bd07d74
https://github.com/llvm/llvm-project/commit/3dd3b6fe758c4ca230e9de624b2586990bd07d74
Author: Jun Wang <jwang_2024 at outlook.com>
Date: 2026-05-26 (Tue, 26 May 2026)
Changed paths:
M llvm/docs/AMDGPU/AMDGPUAsmGFX950.rst
Log Message:
-----------
[AMDGPU][docs][NFC] Fix some instruction names in gfx950 doc (#199094)
In the GFX950 documentation, some instructions that should have the
_sdwa suffix were incorrectly given the _dpp suffix.
Commit: 5157be7bd5c12ac2836bdefb4e9cded6871b065c
https://github.com/llvm/llvm-project/commit/5157be7bd5c12ac2836bdefb4e9cded6871b065c
Author: vporpo <vasileios.porpodas at amd.com>
Date: 2026-05-26 (Tue, 26 May 2026)
Changed paths:
M llvm/docs/SandboxIR.md
M llvm/include/llvm/SandboxIR/Context.h
M llvm/include/llvm/SandboxIR/Tracker.h
M llvm/lib/SandboxIR/Tracker.cpp
M llvm/unittests/SandboxIR/TrackerTest.cpp
Log Message:
-----------
[SandboxIR][Tracker] Implement accept(/*AcceptAll*/) and revert(/*RevertAll*/) (#197289)
In the context of nested checkpoints the tracker's API was somewhat
inconsistent. Tracker::revert() would revert to the last checkpoint but
accept() would accept all changes.
This patch fixes this, and introduces `accept(bool AcceptAll)` and
`revert(bool RevertAll)`.
Commit: fdd3b84773f107f51b25b5591278f2724c911283
https://github.com/llvm/llvm-project/commit/fdd3b84773f107f51b25b5591278f2724c911283
Author: Alexey Bataev <a.bataev at outlook.com>
Date: 2026-05-26 (Tue, 26 May 2026)
Changed paths:
M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
M llvm/test/Transforms/SLPVectorizer/RISCV/vec3-base.ll
M llvm/test/Transforms/SLPVectorizer/X86/dot-product.ll
M llvm/test/Transforms/SLPVectorizer/X86/slp-fma-loss.ll
Log Message:
-----------
[SLP] Fix FMA regression in FMA-candidate retry
When tryToVectorize is called with AllowFMACandidates=true, falling
through to tryToVectorizeList vectorizes the fmul operands of an
FMA-candidate fadd without accounting for the lost FMA opportunity.
canConvertToFMA requires those fmuls to have one use, so vectorizing
them always breaks FMA formation. The cost model for tryToVectorizeList
omits the fadd from the tree and compares "2 fmuls vs 1 vfmul", missing
the scalar FMA savings entirely.
Block tryToVectorizeList when AllowFMACandidates=true. TryToReduce is
safe because computeReductionCost accounts for FMA in the scalar
baseline via canConvertToFMA on the fadd user.
Fixes a 4.5% regression in SPEC17 imagemagick on AArch64 introduced by
Reviewers: sushgokh, bababuck
Pull Request: https://github.com/llvm/llvm-project/pull/199706
Commit: 4ef6ca40f53fe5ef09b940a3d7d9a92a091dd878
https://github.com/llvm/llvm-project/commit/4ef6ca40f53fe5ef09b940a3d7d9a92a091dd878
Author: Igor Kudrin <ikudrin at accesssoftek.com>
Date: 2026-05-26 (Tue, 26 May 2026)
Changed paths:
M clang/include/clang/Basic/DiagnosticSemaKinds.td
M clang/lib/CodeGen/TargetBuiltins/ARM.cpp
M clang/lib/Sema/SemaARM.cpp
M clang/test/AST/ast-dump-aarch64-mte.c
M clang/test/CodeGen/arm64-mte.c
M clang/test/Sema/builtins-arm64-mte.c
Log Message:
-----------
[Clang][AArch64] Fix crash with large arguments to MTE built-ins (#197620)
The second argument to `__builtin_arm_irg()` and `__builtin_arm_gmi()`
is expected to be 64-bit. When a wider type is passed, the compiler
still generates a `zext` instruction, leading to a backend error:
```
> cat test.c
unsigned test(void* a, unsigned __int128 m) {
return __builtin_arm_gmi(a, m);
}
> clang -target aarch64 -march=armv9+memtag -S test.c
fatal error: error in backend: Cannot select: ... i64,ch = load<... zext from i128>
```
This is fixed by applying the required implicit conversions to the
argument in Sema.
Commit: f78a233ac89dc0f9f0f26dfe051874013ae6e242
https://github.com/llvm/llvm-project/commit/f78a233ac89dc0f9f0f26dfe051874013ae6e242
Author: Scott Linder <scott.linder at amd.com>
Date: 2026-05-26 (Tue, 26 May 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/SIFrameLowering.cpp
M llvm/lib/Target/AMDGPU/SIFrameLowering.h
M llvm/test/CodeGen/AMDGPU/GlobalISel/call-outgoing-stack-args.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/dynamic-alloca-uniform.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/localizer.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/non-entry-alloca.ll
M llvm/test/CodeGen/AMDGPU/accvgpr-spill-scc-clobber.mir
M llvm/test/CodeGen/AMDGPU/agpr-copy-reuse-writes.mir
M llvm/test/CodeGen/AMDGPU/agpr-spill-copy.mir
M llvm/test/CodeGen/AMDGPU/amdgcn-call-whole-wave.ll
M llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.1024bit.ll
M llvm/test/CodeGen/AMDGPU/amdgpu-cs-chain-cc.ll
M llvm/test/CodeGen/AMDGPU/amdgpu-cs-chain-fp-nosave.ll
M llvm/test/CodeGen/AMDGPU/amdgpu-cs-chain-preserve-cc.ll
M llvm/test/CodeGen/AMDGPU/av_spill_cross_bb_usage.mir
M llvm/test/CodeGen/AMDGPU/bug-undef-spilled-agpr.mir
M llvm/test/CodeGen/AMDGPU/call-args-inreg-bfloat.ll
M llvm/test/CodeGen/AMDGPU/cc-entry.ll
M llvm/test/CodeGen/AMDGPU/csr-sgpr-spill-live-ins.mir
M llvm/test/CodeGen/AMDGPU/debug-frame.ll
M llvm/test/CodeGen/AMDGPU/dwarf-multi-register-use-crash.ll
M llvm/test/CodeGen/AMDGPU/dynamic_stackalloc.ll
M llvm/test/CodeGen/AMDGPU/eliminate-frame-index-s-add-i32.mir
M llvm/test/CodeGen/AMDGPU/eliminate-frame-index-s-mov-b32.mir
M llvm/test/CodeGen/AMDGPU/eliminate-frame-index-scalar-bit-ops.mir
M llvm/test/CodeGen/AMDGPU/eliminate-frame-index-scalar-scc-clobber.mir
M llvm/test/CodeGen/AMDGPU/eliminate-frame-index-select.mir
M llvm/test/CodeGen/AMDGPU/eliminate-frame-index-v-add-co-u32-wave32.mir
M llvm/test/CodeGen/AMDGPU/eliminate-frame-index-v-add-co-u32.mir
M llvm/test/CodeGen/AMDGPU/eliminate-frame-index-v-add-u32.mir
M llvm/test/CodeGen/AMDGPU/frame-index.mir
M llvm/test/CodeGen/AMDGPU/function-args-inreg.ll
M llvm/test/CodeGen/AMDGPU/insert-waitcnts-crash.ll
M llvm/test/CodeGen/AMDGPU/issue98474-virtregrewriter-live-out-undef-subregisters.mir
M llvm/test/CodeGen/AMDGPU/lds-barrier-memoperand.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.reduce.add.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.reduce.and.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.reduce.fadd.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.reduce.fmax.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.reduce.fmin.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.reduce.fsub.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.reduce.max.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.reduce.min.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.reduce.or.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.reduce.sub.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.reduce.umax.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.reduce.umin.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.reduce.xor.ll
M llvm/test/CodeGen/AMDGPU/local-stack-alloc-block-sp-reference.ll
M llvm/test/CodeGen/AMDGPU/no-source-locations-in-prologue.ll
M llvm/test/CodeGen/AMDGPU/nofpclass-call.ll
M llvm/test/CodeGen/AMDGPU/non-entry-alloca.ll
M llvm/test/CodeGen/AMDGPU/pei-amdgpu-cs-chain-preserve.mir
M llvm/test/CodeGen/AMDGPU/pei-amdgpu-cs-chain.mir
M llvm/test/CodeGen/AMDGPU/pei-build-av-spill.mir
M llvm/test/CodeGen/AMDGPU/pei-build-spill-offset-overflow-gfx950.mir
M llvm/test/CodeGen/AMDGPU/pei-build-spill.mir
M llvm/test/CodeGen/AMDGPU/pei-scavenge-sgpr-carry-out.mir
M llvm/test/CodeGen/AMDGPU/pei-scavenge-sgpr-gfx9.mir
M llvm/test/CodeGen/AMDGPU/pei-scavenge-sgpr.mir
M llvm/test/CodeGen/AMDGPU/pei-scavenge-vgpr-spill.mir
M llvm/test/CodeGen/AMDGPU/pei-vgpr-block-spill-csr.mir
M llvm/test/CodeGen/AMDGPU/preserve-only-inactive-lane.mir
M llvm/test/CodeGen/AMDGPU/preserve-wwm-copy-dst-reg.ll
M llvm/test/CodeGen/AMDGPU/prologue-epilogue-markers.ll
M llvm/test/CodeGen/AMDGPU/promote-constOffset-to-imm-gfx12.mir
M llvm/test/CodeGen/AMDGPU/ptr-arg-dbg-value.ll
M llvm/test/CodeGen/AMDGPU/same-slot-agpr-sgpr.mir
M llvm/test/CodeGen/AMDGPU/sgpr-spill-to-vmem-scc-clobber.mir
M llvm/test/CodeGen/AMDGPU/sgpr-spill-vmem-large-frame.mir
M llvm/test/CodeGen/AMDGPU/si-optimize-vgpr-live-range-dbg-instr.ll
M llvm/test/CodeGen/AMDGPU/spill-agpr-partially-undef.mir
M llvm/test/CodeGen/AMDGPU/spill-agpr.mir
M llvm/test/CodeGen/AMDGPU/spill-reg-tuple-super-reg-use.mir
M llvm/test/CodeGen/AMDGPU/spill-restore-partial-copy.mir
M llvm/test/CodeGen/AMDGPU/spill-sgpr-used-for-exec-copy.mir
M llvm/test/CodeGen/AMDGPU/spill-to-agpr-partial.mir
M llvm/test/CodeGen/AMDGPU/spill_kill_v16.mir
M llvm/test/CodeGen/AMDGPU/spillv16.mir
M llvm/test/CodeGen/AMDGPU/split-arg-dbg-value.ll
M llvm/test/CodeGen/AMDGPU/stack-realign.ll
M llvm/test/CodeGen/AMDGPU/strictfp_f16_abi_promote.ll
M llvm/test/CodeGen/AMDGPU/swdev504645-global-fold.ll
M llvm/test/CodeGen/AMDGPU/tied-op-for-wwm-scratch-reg-spill-restore.mir
M llvm/test/CodeGen/AMDGPU/track-spilled-vgpr-liveness.mir
M llvm/test/CodeGen/AMDGPU/tuple-allocation-failure.ll
M llvm/test/CodeGen/AMDGPU/unfold-masked-merge-scalar-variablemask.ll
M llvm/test/CodeGen/AMDGPU/use_restore_frame_reg.mir
M llvm/test/CodeGen/AMDGPU/vector-spill-restore-to-other-vector-type.mir
M llvm/test/CodeGen/AMDGPU/vgpr-spill-scc-clobber.mir
M llvm/test/CodeGen/AMDGPU/vgpr-spill.mir
M llvm/test/CodeGen/AMDGPU/vgpr-tuple-allocation.ll
M llvm/test/CodeGen/AMDGPU/wave32.ll
M llvm/test/CodeGen/AMDGPU/whole-wave-functions-pei.mir
M llvm/test/CodeGen/AMDGPU/whole-wave-functions.ll
M llvm/test/DebugInfo/AMDGPU/cfi.ll
M llvm/test/DebugInfo/AMDGPU/debug-loc-copy.ll
M llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/amdgpu_generated_funcs.ll.generated.expected
M llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/amdgpu_generated_funcs.ll.nogenerated.expected
Log Message:
-----------
[AMDGPU] Implement CFI for non-kernel functions (#183153)
This does not implement CSR spills other than those AMDGPU handles
during PEI. The remaining spills are handled in a subsequent patch.
Change-Id: I5e3a9a62cf9189245011a82a129790d813d49373
Co-authored-by: Scott Linder <scott.linder at amd.com>
Co-authored-by: Venkata Ramanaiah Nalamothu <VenkataRamanaiah.Nalamothu at amd.com>
Commit: c052a26f2d8cedf921226f088fca8525cb8c7e5b
https://github.com/llvm/llvm-project/commit/c052a26f2d8cedf921226f088fca8525cb8c7e5b
Author: Cyndy Ishida <cyndy_ishida at apple.com>
Date: 2026-05-26 (Tue, 26 May 2026)
Changed paths:
M clang/include/clang/Basic/DarwinSDKInfo.h
M clang/lib/Basic/DarwinSDKInfo.cpp
M clang/lib/Driver/ToolChains/Darwin.cpp
M clang/lib/Driver/ToolChains/Darwin.h
M clang/unittests/Basic/DarwinSDKInfoTest.cpp
Log Message:
-----------
Revert "[clang][driver][darwin] Hold onto full triples in Darwin SDKP… (#199756)
…latformInfo (#197791)"
This reverts commit 9c06c5de6a20df13cfe6d9a7022308e96f378955. It broke
downstream builds for compiler-rt builtins.
Resolves: rdar://177813095
Commit: a4c8cfdac226b89f82963bb65d64c246723e1ea9
https://github.com/llvm/llvm-project/commit/a4c8cfdac226b89f82963bb65d64c246723e1ea9
Author: Jonathan L'Work <113400649+Jonathan03ant at users.noreply.github.com>
Date: 2026-05-26 (Tue, 26 May 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUTargetStreamer.cpp
A llvm/test/CodeGen/AMDGPU/elf-note-null-terminator.ll
Log Message:
-----------
[AMDGPU] Fix ELF note emission to include null terminator (#199720)
The `AMDGPUTargetELFStreamer::EmitNote()` function claims the note name
includes a null terminator (NameSZ = Name.size() + 1) but only emits the
string bytes via `emitBytes(Name)`, relying on alignment padding to
provide the null byte. Works for most situations but breaks with 8-byte
names where padding lands exactly at the boundary.
Explicitly emit null terminator with `S.emitInt8(0)` after
`emitBytes(Name)`.
Commit: 2c336879888a59e3438529712320ad7ab1d47210
https://github.com/llvm/llvm-project/commit/2c336879888a59e3438529712320ad7ab1d47210
Author: carlobertolli <carlo.bertolli at amd.com>
Date: 2026-05-26 (Tue, 26 May 2026)
Changed paths:
A llvm/test/CodeGen/AMDGPU/extract-vector-elt-binop-build-vector.ll
Log Message:
-----------
[AMDGPU] Add regression test for extract of vector binop scalarization (#198825)
Test that extracting both lanes from a binop of two build_vectors
sharing a variable operand at different lane positions correctly folds
per-lane constants.
Assisted-by: Cursor (Claude)
Commit: 0eb28e6de2654073efb4920e21b535fe181de041
https://github.com/llvm/llvm-project/commit/0eb28e6de2654073efb4920e21b535fe181de041
Author: Ryan Buchner <rbuchner at qti.qualcomm.com>
Date: 2026-05-26 (Tue, 26 May 2026)
Changed paths:
M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
M llvm/test/Transforms/SLPVectorizer/RISCV/fmuladd_width_prop.ll
M llvm/test/Transforms/SLPVectorizer/RISCV/get-vec-element-size.ll
Log Message:
-----------
[SLP] Propagate through instrinsics in BoUpSLP::getVectorElementSize() (#199129)
We propagate through simple binary operations already, some operations
are excluded since it happens to be an intrinsic.
Motivated by case exposed when removing vectorization from pre-LTO, see
https://github.com/llvm/llvm-project/pull/195886#issuecomment-4486422243.
Commit: 8a64511b59a293e213ebedcf9ea1b1c34373e551
https://github.com/llvm/llvm-project/commit/8a64511b59a293e213ebedcf9ea1b1c34373e551
Author: Florian Hahn <flo at fhahn.com>
Date: 2026-05-26 (Tue, 26 May 2026)
Changed paths:
A llvm/test/Analysis/LoopAccessAnalysis/clamped-access-pattern.ll
A llvm/test/Transforms/LoopVectorize/AArch64/clamped-load.ll
A llvm/test/Transforms/LoopVectorize/AArch64/discarded-interleave-group.ll
A llvm/test/Transforms/LoopVectorize/RISCV/clamped-load.ll
A llvm/test/Transforms/LoopVectorize/clamped-load-vf-ranges.ll
M llvm/test/Transforms/LoopVectorize/hoist-predicated-loads-with-predicated-stores.ll
M llvm/test/Transforms/LoopVectorize/runtime-check-small-clamped-bounds.ll
M llvm/test/Transforms/LoopVectorize/single-early-exit-deref-assumptions.ll
Log Message:
-----------
[LV] Add tests with pointers based on URem expressions (NFC). (#199763)
Add tests with loads and stores with pointers based on URem expressions.
Commit: 0e0127e5b21dce0cf500e24467f1471d479876be
https://github.com/llvm/llvm-project/commit/0e0127e5b21dce0cf500e24467f1471d479876be
Author: Alex Langford <alangford at apple.com>
Date: 2026-05-26 (Tue, 26 May 2026)
Changed paths:
M lldb/source/ValueObject/ValueObjectVTable.cpp
M lldb/test/API/functionalities/vtable/TestVTableValue.py
Log Message:
-----------
[lldb] Fix vtable support on arm64e (#199116)
There were 2 small issues.
1. ValueObjectVTableChild was not fixing the addresses it was pulling
from signed pointers. This broke things like `SBValue::GetLoadAddress`
and identifying the function pointer type from debug info.
2. TestVTableValue.py made a lot of assumptions that did not hold on
arm64e. a. GetValueAsUnsigned will return a raw pointer value. Most of
the time, we needed GetValueAsAddress. b. The test was reading pointers
out of memory without fixing them up. c. The summary for a function
pointer on arm64e includes the load address. This isn't true on other
platforms.
Commit: f5a3f1d4bf101c0c5dc00c08b52f13fd00e891f9
https://github.com/llvm/llvm-project/commit/f5a3f1d4bf101c0c5dc00c08b52f13fd00e891f9
Author: Alexey Bataev <a.bataev at outlook.com>
Date: 2026-05-26 (Tue, 26 May 2026)
Changed paths:
A llvm/test/Transforms/SLPVectorizer/AArch64/lcssa-phi-extract-scale.ll
Log Message:
-----------
[SLP][NFC]Add a test iwhtthre vectorization regression, NFC
Reviewers:
Pull Request: https://github.com/llvm/llvm-project/pull/199774
Commit: a14d084bbb1a7261d8a71c56120159abb6af330b
https://github.com/llvm/llvm-project/commit/a14d084bbb1a7261d8a71c56120159abb6af330b
Author: Daniel Thornburgh <dthorn at google.com>
Date: 2026-05-26 (Tue, 26 May 2026)
Changed paths:
M libc/config/baremetal/config.json
Log Message:
-----------
Reland "[libc] Enable baremetal float printf using modular format" (#199758)
Reverts llvm/llvm-project#199114
#199118 fixed the issue uncovered in the Fuchsia CI build.
Commit: a7aceff0b1e552cbc2306e575e9ac649853fda8e
https://github.com/llvm/llvm-project/commit/a7aceff0b1e552cbc2306e575e9ac649853fda8e
Author: vporpo <vasileios.porpodas at amd.com>
Date: 2026-05-26 (Tue, 26 May 2026)
Changed paths:
M llvm/docs/SandboxIR.md
M llvm/include/llvm/SandboxIR/Context.h
M llvm/include/llvm/SandboxIR/Tracker.h
M llvm/lib/SandboxIR/Tracker.cpp
M llvm/unittests/SandboxIR/TrackerTest.cpp
Log Message:
-----------
Revert "[SandboxIR][Tracker] Implement accept(/*AcceptAll*/) and revert(/*RevertAll*/)" (#199776)
Reverts llvm/llvm-project#197289
Commit: 27abffa3efe272d725a6c4eceeebfe8c17e0f8e8
https://github.com/llvm/llvm-project/commit/27abffa3efe272d725a6c4eceeebfe8c17e0f8e8
Author: Jason Molenda <jmolenda at apple.com>
Date: 2026-05-26 (Tue, 26 May 2026)
Changed paths:
M lldb/docs/resources/lldbgdbremote.md
M lldb/source/Plugins/Process/gdb-remote/GDBRemoteRegisterContext.cpp
M lldb/source/Plugins/Process/gdb-remote/GDBRemoteRegisterContext.h
M lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp
M lldb/source/Plugins/Process/gdb-remote/ThreadGDBRemote.cpp
M lldb/source/Plugins/Process/gdb-remote/ThreadGDBRemote.h
A lldb/test/API/functionalities/gdb_remote_client/TestUnavailableRegisters.py
M lldb/tools/debugserver/source/RNBRemote.cpp
Log Message:
-----------
[lldb] New expedited register specfication for unavailable regs (#193894)
When lldb-server/debugserver send a stop packet, they expedite the
vaLues of many of the general purpose registers in the stop packet, so
lldb doesn't need to fetch them separately.
On Darwin systems using an AArch64 M4 or newer SOC with SME, we need to
fetch the streaming vector length (svl) register when in Streaming SVE
Mode to correctly size the registers in lldb. On Darwin systems, when we
are not in SSVE mode, svl is undefined -- it is not included in the
expedited registers. However, lldb will still try to fetch the value, so
we get a register-read packet at every stop on M4 and newer systems,
trying to fetch the value.
This patch adds a new format for the expedited registers. They are
normally a `;` separated series of `{regnum}:{native endian bytes}`.
This allows for `{regnum}:` alone, indicating that the register value
for regnum cannot be fetched at this stop.
It updates debugserver to always add svcr, tpidr2, and svl to the
expedited registers, whether we can fetch them or not.
Most of the changes happen in GDBRemoteRegisterContext. This class
maintains a buffer sized for the register context bytes, and an array of
bool to indicate whether we have fetched the value for a given register
yet or not. If we have fetched the value, we can supply the bytes from
the register context byte array. If it is not yet fetched, we read it.
This PR changes this fetched-or-not bool array to a LazyBool with
eLazyBoolYes meaning we have the bytes for the register value in the
lldb buffer.
eLazyBoolCalculate means we have not yet tried to read the register
value.
eLazyBoolNo means that the register is currently readable.
The meaning of these 3 LazyBool states could be a little confusing as
you read GDBRemoteRegisterContext, so all getting/setting of these is
done through the methods
SetAllRegistersValid()
SetAllRegistersUnfetched()
{Set,Get}RegisterIsValid()
{Set,Get}RegisterIsUnavailable()
{Set,Get}RegisterIsUnfetched()
Whcih I think makes it a little easer to understand. The changes to
GDBRemoteRegisterContext were the trickiest part of this PR, all the
other changes are simple.
Linux et al mostly work on AArch64 systems with SVE + SME, in which case
we have either a vector length or a streaming vector length, at all
times. But the M4 & newer SOCs from Apple don't have any SVE registers
when not in streaming SVE mode, so we have this issue of an extra
register read at all stops, unless in SSVE mode.
rdar://161581129
---------
Co-authored-by: Jonas Devlieghere <jonas at devlieghere.com>
Commit: e42046a747f597da40f76e1656be919dea946f15
https://github.com/llvm/llvm-project/commit/e42046a747f597da40f76e1656be919dea946f15
Author: Nishant Patel <nishant.b.patel at intel.com>
Date: 2026-05-26 (Tue, 26 May 2026)
Changed paths:
M mlir/test/Integration/Dialect/XeGPU/WG/load_store_matrix.mlir
Log Message:
-----------
[MLIR][XeGPU] Fix pass name in RUN command (#199766)
Commit: 7e98d1960e989945cfb2ec016b950fbd2bb5d937
https://github.com/llvm/llvm-project/commit/7e98d1960e989945cfb2ec016b950fbd2bb5d937
Author: Ehsan Amiri <ehsan.amiri at huawei.com>
Date: 2026-05-26 (Tue, 26 May 2026)
Changed paths:
M llvm/lib/Transforms/Scalar/LoopFuse.cpp
A llvm/test/Transforms/LoopFusion/different_guards.ll
Log Message:
-----------
[LoopFusion] Do not fuse loops with different guards (#199724)
The testcase that was originally contributed to #193641 exposed a
functional issue in which loop fusion can fuse functions with different
loop guards. There seem to two distinct bugs and each of them alone is
enough to let this happen.
- The condition that checks loop guards are identical, intends to
exclude loops that require peeling. But the condition is not correct and
it allows some loops that do not require peeling to pass.
- The condition that checks two guards are identical implicitly assume
conditions of guard branches are instructions, but this is not
necessarily always correct.
This patch fixes the problem for the loops that do not require peeling.
The issue still exists for loops that require peeling and will be fixed
separately.
Commit: e9e5d4ee914ac98ecb6fafa9e1f8f4231a9282d3
https://github.com/llvm/llvm-project/commit/e9e5d4ee914ac98ecb6fafa9e1f8f4231a9282d3
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2026-05-26 (Tue, 26 May 2026)
Changed paths:
M clang/lib/Driver/ToolChains/AMDGPU.cpp
Log Message:
-----------
clang/AMDGPU: Remove unnecessary fallback to check -march (#199780)
-march is now rewritten to -mcpu.
Commit: f263446abbdd9f1ef12d60107329ea976e94247e
https://github.com/llvm/llvm-project/commit/f263446abbdd9f1ef12d60107329ea976e94247e
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2026-05-26 (Tue, 26 May 2026)
Changed paths:
M clang/lib/Driver/ToolChains/AMDGPU.cpp
M clang/test/Driver/amdgpu-validate-sanitize.cl
Log Message:
-----------
clang/AMDGPU: Report all runtimeless sanitizers as available (#199642)
Commit: f3c0f26a3961b20b6e698fe3579499528d006b48
https://github.com/llvm/llvm-project/commit/f3c0f26a3961b20b6e698fe3579499528d006b48
Author: Slava Zakharin <szakharin at nvidia.com>
Date: 2026-05-26 (Tue, 26 May 2026)
Changed paths:
M flang/lib/Optimizer/Transforms/FIRToMemRef.cpp
M flang/test/Transforms/FIRToMemRef/array-coor-rebox-slice-shape.mlir
M flang/test/Transforms/FIRToMemRef/array-coor-slice-shift.mlir
Log Message:
-----------
[flang][FIRToMemRef] Get strides from descriptor for some array_coor cases. (#199158)
This is a follow-up on Jean's comment
https://github.com/llvm/llvm-project/pull/198933#discussion_r3279535746
This patch makes use of the descriptor strides when `fir.array_coor`'s
memref is a `fir.box` that is not a fir.embox result.
Commit: 187dfef80ee9d5cb89efc918a2af407389553779
https://github.com/llvm/llvm-project/commit/187dfef80ee9d5cb89efc918a2af407389553779
Author: Slava Zakharin <szakharin at nvidia.com>
Date: 2026-05-26 (Tue, 26 May 2026)
Changed paths:
M flang/include/flang/Optimizer/Builder/FIRBuilder.h
A flang/include/flang/Optimizer/Dialect/FIRBoxUtils.h
M flang/lib/Optimizer/Builder/FIRBuilder.cpp
M flang/lib/Optimizer/Dialect/CMakeLists.txt
A flang/lib/Optimizer/Dialect/FIRBoxUtils.cpp
M flang/lib/Optimizer/Dialect/FIROps.cpp
M flang/test/Fir/array-coor-canonicalization.fir
Log Message:
-----------
[flang] Enabled pulling of rebox into array_coor. (#199161)
This patch enables pulling slicing `fir.rebox` operations
into `fir.array_coor`. This helps preserve information about
the original rank of the array being accessed.
`FIRToMemRef` and later passes may benefit from this.
Assisted by: Claude
Commit: bf420f0d18562cd4a3ec7ae65354c62970adb262
https://github.com/llvm/llvm-project/commit/bf420f0d18562cd4a3ec7ae65354c62970adb262
Author: Kunal Pathak <kunalspathak.github at gmail.com>
Date: 2026-05-26 (Tue, 26 May 2026)
Changed paths:
M llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
A llvm/test/CodeGen/AArch64/interleaved-store-noninbounds-gep.ll
Log Message:
-----------
[AArch64] Fix hasNearbyPairedStore to handle non-inbounds GEPs (#199137)
Problem: `hasNearbyPairedStore` uses
`stripAndAccumulateInBoundsConstantOffsets` to decompose store pointers
into (base, offset) pairs and check whether two stores are 16 bytes
apart. This fails when LSR has rewritten pointer arithmetic into
non-inbounds GEPs because the function refuses to look through them. The
two stores then appear to have different base pointers and the check
returns false. When this happens, `lowerInterleavedStore` proceeds to
emit `ST2` for a pattern that would be more profitable as `zip+stp`,
since the load-store optimizer can pair adjacent stores into `STP` but
cannot merge `ST2` with anything. On a bf16-to-fp32 NEON conversion loop
this causes a regression from 11 to 17 instructions per iteration.
Note: Interleaved stores support was added for RISCV in
https://github.com/llvm/llvm-project/pull/115354. Turning this off
produces the desired STP instructions.
https://godbolt.org/z/1afsjPd3e
Fix: Switch to `stripAndAccumulateConstantOffsets` with
`AllowNonInbounds=true`. The function is a bail-out heuristic doing pure
address arithmetic, so the inbounds semantic guarantee is not needed for
correctness.
---------
Co-authored-by: Kunal Pathak <kupathak at fb.com>
Commit: fc60e08b4574a85f6966a751f32290f5732d1329
https://github.com/llvm/llvm-project/commit/fc60e08b4574a85f6966a751f32290f5732d1329
Author: lntue <lntue at google.com>
Date: 2026-05-26 (Tue, 26 May 2026)
Changed paths:
M .github/workflows/libc-overlay-tests.yml
Log Message:
-----------
[libc] Use containers for overlay precommit CIs. (#199294)
Commit: 577e9a7cc82faf3dae98dba4aea917a6ffaab293
https://github.com/llvm/llvm-project/commit/577e9a7cc82faf3dae98dba4aea917a6ffaab293
Author: Sy Brand <sy.brand at fastly.com>
Date: 2026-05-26 (Tue, 26 May 2026)
Changed paths:
M clang/lib/Basic/Targets/WebAssembly.cpp
M clang/lib/Basic/Targets/WebAssembly.h
M clang/lib/Driver/ToolChains/WebAssembly.cpp
M clang/test/Preprocessor/wasm-target-features.c
A lld/test/wasm/stack-pointer-abi.s
A lld/test/wasm/thread-context-abi-mismatch.s
A lld/test/wasm/tls-libcall.s
M lld/wasm/Config.h
M lld/wasm/Driver.cpp
M lld/wasm/Options.td
M lld/wasm/SyntheticSections.cpp
M lld/wasm/Writer.cpp
M llvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyMCTargetDesc.h
M llvm/lib/Target/WebAssembly/WebAssemblyAsmPrinter.cpp
M llvm/lib/Target/WebAssembly/WebAssemblyExplicitLocals.cpp
M llvm/lib/Target/WebAssembly/WebAssemblyFrameLowering.cpp
M llvm/lib/Target/WebAssembly/WebAssemblyFrameLowering.h
M llvm/lib/Target/WebAssembly/WebAssemblyISelDAGToDAG.cpp
M llvm/lib/Target/WebAssembly/WebAssemblyISelLowering.cpp
M llvm/lib/Target/WebAssembly/WebAssemblyLateEHPrepare.cpp
M llvm/lib/Target/WebAssembly/WebAssemblyRegStackify.cpp
M llvm/lib/Target/WebAssembly/WebAssemblySubtarget.cpp
M llvm/lib/Target/WebAssembly/WebAssemblySubtarget.h
M llvm/lib/Target/WebAssembly/WebAssemblyTargetMachine.cpp
M llvm/lib/Target/WebAssembly/WebAssemblyUtilities.cpp
M llvm/lib/Target/WebAssembly/WebAssemblyUtilities.h
A llvm/test/CodeGen/WebAssembly/stack-abi.ll
M llvm/test/CodeGen/WebAssembly/thread_pointer.ll
M llvm/test/CodeGen/WebAssembly/tls-local-exec.ll
A llvm/test/DebugInfo/WebAssembly/thread-context-abi.ll
Log Message:
-----------
[WebAssembly] WASIP3 Library Call Thread Context Support (#175800)
The [WebAssembly Component
Model](https://component-model.bytecodealliance.org/) has added support
for [cooperative
multithreading](https://github.com/WebAssembly/component-model/pull/557).
This has been implemented in the [Wasmtime
engine](https://github.com/bytecodealliance/wasmtime/pull/11751) and is
part of the wider project of [WASI preview
3](https://wasi.dev/roadmap#upcoming-wasi-03-releases), which is
currently tracked
[here](https://github.com/orgs/bytecodealliance/projects/16).
These changes require updating the way that `__stack_pointer` and
`__tls_base` work purely for a new `wasm32-wasip3` target; other targets
will not be touched. Specifically, rather than using a Wasm global for
tracking the stack pointer and TLS base, the new
[`context.get/set`](https://github.com/WebAssembly/component-model/blob/main/design/mvp/CanonicalABI.md#-canon-contextget)
component model builtin functions will be used (the intention being that
runtimes will need to aggressively optimize these calls into single
load/stores). For justification on this choice rather than switching out
the global at context-switch boundaries, see [this
comment](https://github.com/WebAssembly/wasi-libc/issues/691#issuecomment-3716405618)
and [this
comment](https://github.com/WebAssembly/wasi-libc/issues/691#issuecomment-3716916730).
This PR adds support for using library calls instead of globals for
holding the stack pointer and TLS base. When used, this thread context
ABI emits calls to `__wasm_{get,set}_{stack_pointer,tls_base}` when
needed. These functions can then be implemented in `libc`. This is
enabled only for the WASIp3 target.
There is a temporary macro define for `__wasm_libcall_thread_context__`
which can be removed once `wasi-libc` has fully migrated to the new ABI
for the WASIp3 target.
Commit: e918a5ada8a9e693a7f68614bfce698d38f903d3
https://github.com/llvm/llvm-project/commit/e918a5ada8a9e693a7f68614bfce698d38f903d3
Author: Matthias Wippich <mfwippich at gmail.com>
Date: 2026-05-26 (Tue, 26 May 2026)
Changed paths:
M llvm/utils/lit/lit/LitConfig.py
M llvm/utils/lit/lit/ShellEnvironment.py
M llvm/utils/lit/lit/Test.py
M llvm/utils/lit/lit/TestRunner.py
M llvm/utils/lit/lit/TestingConfig.py
M llvm/utils/lit/lit/display.py
M llvm/utils/lit/lit/formats/base.py
M llvm/utils/lit/lit/llvm/config.py
M llvm/utils/lit/lit/llvm/subst.py
M llvm/utils/lit/lit/reports.py
M llvm/utils/lit/lit/run.py
Log Message:
-----------
[lit][NFC] remove new-style class opt-ins (#199784)
In Python 3.0 and later it is no longer necessary to explicitly derive
from `object` to opt into "new-style" classes, they are the default.
Since the current minimum Python version is 3.8, this is no longer
required. This patch removes `object` from the base class lists of all
affected classes in lit.
Commit: 9eb0d424db2df869428c800e5a5535342d70de31
https://github.com/llvm/llvm-project/commit/9eb0d424db2df869428c800e5a5535342d70de31
Author: Matthias Wippich <mfwippich at gmail.com>
Date: 2026-05-26 (Tue, 26 May 2026)
Changed paths:
M llvm/utils/lit/lit/LitConfig.py
M llvm/utils/lit/lit/ShUtil.py
M llvm/utils/lit/lit/TestRunner.py
M llvm/utils/lit/lit/formats/base.py
M llvm/utils/lit/lit/formats/googletest.py
M llvm/utils/lit/lit/formats/shtest.py
M llvm/utils/lit/lit/util.py
M llvm/utils/lit/tests/Inputs/check_path.py
M llvm/utils/lit/tests/Inputs/shtest-format/external_shell/write-control-chars.py
M llvm/utils/lit/tests/Inputs/shtest-not/print_environment.py
M llvm/utils/lit/tests/Inputs/shtest-timeout/short.py
Log Message:
-----------
[lit][NFC] remove future statements for mandatory features in Python 3 (#199786)
This patch removes future statements from lit for features that are
mandatory in Python 3.0 and later.
Specifically, it removes future statements for
[`absolute_import`](https://docs.python.org/3/library/__future__.html#future__.absolute_import)
and
[`print_function`](https://docs.python.org/3/library/__future__.html#future__.print_function),
since both became mandatory in Python 3.0.
Commit: 2bd872b03fe16726870a34ee6cb50e9d81947e68
https://github.com/llvm/llvm-project/commit/2bd872b03fe16726870a34ee6cb50e9d81947e68
Author: Benjamin Maxwell <benjamin.maxwell at arm.com>
Date: 2026-05-26 (Tue, 26 May 2026)
Changed paths:
M llvm/include/llvm/Transforms/Vectorize/LoopVectorizationLegality.h
M llvm/lib/Analysis/VectorUtils.cpp
M llvm/lib/Transforms/Vectorize/LoopVectorizationLegality.cpp
M llvm/lib/Transforms/Vectorize/LoopVectorizationPlanner.h
M llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
M llvm/lib/Transforms/Vectorize/VPlan.h
M llvm/lib/Transforms/Vectorize/VPlanConstruction.cpp
M llvm/lib/Transforms/Vectorize/VPlanRecipes.cpp
M llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
M llvm/lib/Transforms/Vectorize/VPlanTransforms.h
M llvm/lib/Transforms/Vectorize/VPlanUtils.cpp
M llvm/lib/Transforms/Vectorize/VPlanUtils.h
M llvm/lib/Transforms/Vectorize/VPlanVerifier.cpp
A llvm/test/Transforms/LoopVectorize/AArch64/alias-mask-uniforms.ll
A llvm/test/Transforms/LoopVectorize/AArch64/alias-mask.ll
A llvm/test/Transforms/LoopVectorize/AArch64/expensive-alias-masking.ll
A llvm/test/Transforms/LoopVectorize/RISCV/alias-mask-force-evl.ll
M llvm/test/Transforms/LoopVectorize/RISCV/pointer-induction.ll
M llvm/test/Transforms/LoopVectorize/RISCV/tail-folding-interleave.ll
A llvm/test/Transforms/LoopVectorize/VPlan/AArch64/vplan-printing-alias-mask.ll
A llvm/test/Transforms/LoopVectorize/VPlan/vplan-printing-alias-mask.ll
M llvm/test/Transforms/LoopVectorize/VPlan/vplan-printing.ll
A llvm/test/Transforms/LoopVectorize/alias-mask-data-tail-folding-style.ll
A llvm/test/Transforms/LoopVectorize/alias-mask-needs-freeze.ll
A llvm/test/Transforms/LoopVectorize/alias-mask-negative-tests.ll
A llvm/test/Transforms/LoopVectorize/alias-mask-small-index.ll
A llvm/test/Transforms/LoopVectorize/alias-mask.ll
M llvm/test/Transforms/LoopVectorize/cast-induction.ll
M llvm/test/Transforms/LoopVectorize/pointer-induction.ll
A llvm/test/Transforms/LoopVectorize/remove-redundant-trip-count-scev.ll
M llvm/test/Transforms/LoopVectorize/reuse-lcssa-phi-scev-expansion.ll
Log Message:
-----------
[LV] Add support for partial alias masking with tail folding (#182457)
This patch adds basic support for partial alias masking, which allows
entering the vector loop even when there is aliasing within a single
vector iteration. It does this by clamping the VF to the safe distance
between pointers. This allows the runtime VF to be anywhere from 2 to
the "static" VF.
Conceptually, this transform looks like:
```
// `c` and `b` may alias.
for (int i = 0; i < n; i++) {
c[i] = a[i] + b[i];
}
```
->
```
svbool_t alias_mask = loop.dependence.war.mask(b, c);
int num_active = num_active_lanes(mask);
if (num_active >= 2) {
for (int i = 0; i < n; i += num_active) {
// ... vector loop masked with `alias_mask`
}
}
// ... scalar tail
```
This initial patch has a number of limitations:
- The loop must be tail-folded
* We intend to follow-up with full alias-masking support for loops
without tail-folding
- The mask and transform is only valid for IC = 1
* Some recipes may not handle the "ClampedVF" correctly at IC > 1
* Note: On AArch64, we also only have native alias mask instructions
for IC = 1
- Reverse iteration is not supported
* The mask reversal logic is not correct for the alias mask (or
clamped ALM)
- First order recurrences are not supported
* The `splice.right` is not lowered correctly for clamped VFs
- Reductions are not supported
* The final horizontal reduction needs to set lanes past the
"ClampedVF" to the identity value
- This style of vectorization is not enabled by default/costed
* It can be enabled with `-force-partial-aliasing-vectorization`
* When enabled, alias masking is used instead of the standard diff
checks (when legal to do so)
This PR supersedes #100579 (closes #100579).
Commit: e6d8a8f9384b353cc95baccac8c233309e1c3568
https://github.com/llvm/llvm-project/commit/e6d8a8f9384b353cc95baccac8c233309e1c3568
Author: Vladimir Vereschaka <vvereschaka at accesssoftek.com>
Date: 2026-05-26 (Tue, 26 May 2026)
Changed paths:
M clang/docs/ReleaseNotes.rst
M clang/lib/CodeGen/CodeGenModule.cpp
M clang/test/CodeGen/unique-internal-linkage-names.cpp
Log Message:
-----------
[Clang] Emit prefix map normalization before generating hashes for the unique linkage names. (#198667)
Use normalized path from the macro prefix map to generate the unique ids
for the internal linkage names. That allows a reproducible hash on any
build system. Regularly the macro prefix map gets normalized in favor of
the target system before the path substitution.
Commit: e0ef143823ce8f733c50fae675f05d0df0f702e5
https://github.com/llvm/llvm-project/commit/e0ef143823ce8f733c50fae675f05d0df0f702e5
Author: Sam Clegg <sbc at chromium.org>
Date: 2026-05-26 (Tue, 26 May 2026)
Changed paths:
M lld/test/wasm/alias.s
M lld/test/wasm/build-id.test
M lld/test/wasm/ctor-return-value.s
M lld/test/wasm/duplicate-global-imports.s
M lld/test/wasm/export-optional.s
M lld/test/wasm/externref.s
M lld/test/wasm/function-imports-first.ll
M lld/test/wasm/function-imports.s
M lld/test/wasm/gc-imports.s
M lld/test/wasm/gc-sections.ll
M lld/test/wasm/global-base.test
M lld/test/wasm/globals.s
M lld/test/wasm/lto/tls.ll
M lld/test/wasm/map-file.s
M lld/test/wasm/merge-string-debug.s
M lld/test/wasm/mutable-global-exports.s
M lld/test/wasm/name-section-mangling.s
M lld/test/wasm/signature-mismatch-export.ll
M lld/test/wasm/signature-mismatch.s
M lld/test/wasm/stack-first.test
M lld/test/wasm/stack-pointer-abi.s
M lld/test/wasm/startstop.ll
M lld/test/wasm/table-base.s
M lld/test/wasm/tag-section.ll
M lld/test/wasm/tls-base-non-shared-memory.s
M lld/test/wasm/undefined-weak-call.s
M lld/test/wasm/unresolved-symbols-dynamic.s
M lld/test/wasm/weak-undefined-pic.s
M lld/test/wasm/weak-undefined.s
M lld/wasm/Driver.cpp
Log Message:
-----------
[lld][WebAssembly] Only include __stack_pointer when needed (#199739)
Commit: 7938535a54b51a4ca84821b7766d68049c9aa895
https://github.com/llvm/llvm-project/commit/7938535a54b51a4ca84821b7766d68049c9aa895
Author: Owen Rodley <orodley at google.com>
Date: 2026-05-27 (Wed, 27 May 2026)
Changed paths:
M clang/lib/CodeGen/CGCUDANV.cpp
M clang/test/CodeGen/cfi-icall-trap-recover-runtime.c
M clang/test/CodeGen/lto-newpm-pipeline.c
M clang/test/CodeGenCXX/cfi-vcall-trap-recover-runtime.cpp
M lld/test/ELF/lto/devirt_vcall_vis_export_dynamic.ll
M lld/test/ELF/lto/devirt_vcall_vis_public.ll
M lld/test/ELF/lto/devirt_vcall_vis_shared_def.ll
M llvm/include/llvm/Analysis/CtxProfAnalysis.h
M llvm/include/llvm/Bitcode/BitcodeReader.h
M llvm/include/llvm/Bitcode/LLVMBitCodes.h
M llvm/include/llvm/IR/FixedMetadataKinds.def
M llvm/include/llvm/IR/GlobalValue.h
M llvm/include/llvm/IR/Module.h
M llvm/include/llvm/IR/ModuleSummaryIndex.h
M llvm/include/llvm/LTO/LTO.h
A llvm/include/llvm/Transforms/Utils/AssignGUID.h
M llvm/lib/Analysis/CtxProfAnalysis.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/Globals.cpp
M llvm/lib/LTO/LTO.cpp
M llvm/lib/LTO/LTOBackend.cpp
M llvm/lib/Passes/PassBuilder.cpp
M llvm/lib/Passes/PassBuilderPipelines.cpp
M llvm/lib/Transforms/IPO/FunctionImport.cpp
M llvm/lib/Transforms/IPO/ThinLTOBitcodeWriter.cpp
M llvm/lib/Transforms/IPO/WholeProgramDevirt.cpp
M llvm/lib/Transforms/Instrumentation/PGOCtxProfFlattening.cpp
M llvm/lib/Transforms/Instrumentation/PGOCtxProfLowering.cpp
M llvm/lib/Transforms/Scalar/JumpTableToSwitch.cpp
A llvm/lib/Transforms/Utils/AssignGUID.cpp
M llvm/lib/Transforms/Utils/CMakeLists.txt
M llvm/lib/Transforms/Utils/CallPromotionUtils.cpp
M llvm/lib/Transforms/Utils/CloneModule.cpp
M llvm/lib/Transforms/Utils/FunctionImportUtils.cpp
M llvm/lib/Transforms/Utils/InlineFunction.cpp
M llvm/test/Assembler/index-value-order.ll
M llvm/test/Bitcode/thinlto-alias.ll
M llvm/test/Bitcode/thinlto-function-summary-callgraph-partial-sample-profile-summary.ll
M llvm/test/Bitcode/thinlto-function-summary-callgraph-pgo.ll
M llvm/test/Bitcode/thinlto-function-summary-callgraph-profile-summary.ll
M llvm/test/Bitcode/thinlto-function-summary-callgraph-sample-profile-summary.ll
M llvm/test/Bitcode/thinlto-function-summary-callgraph.ll
M llvm/test/Bitcode/thinlto-function-summary-refgraph.ll
M llvm/test/Bitcode/thinlto-function-summary.ll
M llvm/test/CodeGen/X86/fat-lto-section.ll
M llvm/test/LTO/Resolution/X86/not-prevailing-alias.ll
M llvm/test/LTO/Resolution/X86/not-prevailing-weak-aliasee.ll
M llvm/test/Linker/funcimport2.ll
M llvm/test/Other/new-pm-O0-defaults.ll
M llvm/test/Other/new-pm-defaults.ll
M llvm/test/Other/new-pm-thinlto-prelink-defaults.ll
M llvm/test/Other/new-pm-thinlto-prelink-pgo-defaults.ll
M llvm/test/Other/new-pm-thinlto-prelink-samplepgo-defaults.ll
M llvm/test/ThinLTO/AArch64/aarch64_inline.ll
M llvm/test/ThinLTO/X86/Inputs/cache-typeid-resolutions1.ll
M llvm/test/ThinLTO/X86/Inputs/cache-typeid-resolutions2.ll
M llvm/test/ThinLTO/X86/Inputs/cache-typeid-resolutions3.ll
M llvm/test/ThinLTO/X86/ctor-dtor-alias.ll
M llvm/test/ThinLTO/X86/ctor-dtor-alias2.ll
M llvm/test/ThinLTO/X86/deadstrip.ll
M llvm/test/ThinLTO/X86/devirt_function_alias.ll
M llvm/test/ThinLTO/X86/devirt_function_alias2.ll
M llvm/test/ThinLTO/X86/devirt_pure_virtual_base.ll
M llvm/test/ThinLTO/X86/devirt_vcall_vis_public.ll
M llvm/test/ThinLTO/X86/distributed_import.ll
M llvm/test/ThinLTO/X86/funcattrs-prop-exported-internal.ll
M llvm/test/ThinLTO/X86/funcattrs-prop-unknown.ll
M llvm/test/ThinLTO/X86/funcattrs-prop-weak.ll
M llvm/test/ThinLTO/X86/globals-import.ll
M llvm/test/ThinLTO/X86/hidden-escaped-symbols-alt.ll
M llvm/test/ThinLTO/X86/hidden-escaped-symbols.ll
M llvm/test/ThinLTO/X86/import-ro-constant.ll
M llvm/test/ThinLTO/X86/index-const-prop-alias.ll
M llvm/test/ThinLTO/X86/index-const-prop.ll
M llvm/test/ThinLTO/X86/linkonce_resolution_comdat.ll
M llvm/test/ThinLTO/X86/memprof-dups.ll
M llvm/test/ThinLTO/X86/memprof_callee_type_mismatch.ll
M llvm/test/ThinLTO/X86/memprof_imported_internal.ll
M llvm/test/ThinLTO/X86/memprof_imported_internal2.ll
M llvm/test/ThinLTO/X86/prevailing_weak_globals_import.ll
M llvm/test/ThinLTO/X86/visibility-elf.ll
M llvm/test/ThinLTO/X86/visibility-macho.ll
M llvm/test/ThinLTO/X86/weak_resolution.ll
M llvm/test/ThinLTO/X86/windows-vftable.ll
M llvm/test/ThinLTO/X86/writeonly.ll
A llvm/test/Transforms/AssignGUID/assign_guid.ll
M llvm/test/Transforms/EmbedBitcode/embed-wpd.ll
M llvm/test/Transforms/EmbedBitcode/embed.ll
M llvm/test/Transforms/FunctionImport/funcimport-debug-retained-nodes.ll
M llvm/test/Transforms/FunctionImport/funcimport.ll
M llvm/test/Transforms/LowerTypeTests/cfi-icall-alias.ll
M llvm/test/Transforms/PGOProfile/thinlto_indirect_call_promotion.ll
M llvm/test/Transforms/PhaseOrdering/speculative-devirt-then-inliner.ll
M llvm/test/Transforms/SampleProfile/ctxsplit.ll
M llvm/test/Transforms/ThinLTOBitcodeWriter/split-internal-typeid.ll
M llvm/test/Transforms/ThinLTOBitcodeWriter/split-internal1.ll
M llvm/test/Transforms/ThinLTOBitcodeWriter/split-internal2.ll
M llvm/test/Transforms/ThinLTOBitcodeWriter/split-vfunc-internal.ll
M llvm/test/Transforms/ThinLTOBitcodeWriter/split-vfunc.ll
M llvm/test/Transforms/ThinLTOBitcodeWriter/split.ll
M llvm/test/Transforms/ThinLTOBitcodeWriter/unsplittable.ll
M llvm/test/Transforms/WholeProgramDevirt/branch-funnel-profile.ll
M llvm/test/Transforms/WholeProgramDevirt/export-single-impl.ll
M llvm/test/Transforms/WholeProgramDevirt/export-vcp.ll
M llvm/test/tools/gold/X86/devirt_vcall_vis_export_dynamic.ll
M llvm/test/tools/gold/X86/devirt_vcall_vis_public.ll
M llvm/test/tools/gold/X86/devirt_vcall_vis_shared_def.ll
M llvm/test/tools/gold/X86/thinlto_weak_library.ll
M llvm/test/tools/gold/X86/thinlto_weak_resolution.ll
M llvm/test/tools/gold/X86/v1.16/devirt_vcall_vis_export_dynamic.ll
M llvm/tools/llvm-link/llvm-link.cpp
M llvm/tools/opt/NewPMDriver.cpp
M llvm/tools/opt/optdriver.cpp
Log Message:
-----------
Compute GUIDs once and store in metadata (#184065)
This allows us to keep GUIDs consistent across compilation phases which
may change the name or linkage type.
See https://discourse.llvm.org/t/rfc-keep-globalvalue-guids-stable/84801
This is a large change since the addition of metadata breaks many tests.
The test changes are mostly just trivial changes to checks to get them
passing.
Commit: d139f653019ee8058eaadf5e5deda79ee8faf093
https://github.com/llvm/llvm-project/commit/d139f653019ee8058eaadf5e5deda79ee8faf093
Author: Alexey Bataev <a.bataev at outlook.com>
Date: 2026-05-26 (Tue, 26 May 2026)
Changed paths:
M llvm/test/Transforms/SLPVectorizer/AArch64/lcssa-phi-extract-scale.ll
Log Message:
-----------
[SLP][NFC]Add another test for external phi user, NFC
Reviewers:
Pull Request: https://github.com/llvm/llvm-project/pull/199804
Commit: 7e6f337e1dcf0bfb93e8d084ee3bd57a1cf9ff2d
https://github.com/llvm/llvm-project/commit/7e6f337e1dcf0bfb93e8d084ee3bd57a1cf9ff2d
Author: Xiaodong Liu <57342990+XiaodongLoong at users.noreply.github.com>
Date: 2026-05-27 (Wed, 27 May 2026)
Changed paths:
M llvm/docs/CommandGuide/llvm-mca.rst
M llvm/test/tools/llvm-mca/AArch64/Cortex/A510-writeback.s
M llvm/test/tools/llvm-mca/AArch64/Cortex/A53-carry-over.s
M llvm/test/tools/llvm-mca/AArch64/Cortex/A53-writeback.s
M llvm/test/tools/llvm-mca/AArch64/Cortex/A55-add-sequence.s
M llvm/test/tools/llvm-mca/AArch64/Cortex/A55-all-views.s
M llvm/test/tools/llvm-mca/AArch64/Cortex/A55-in-order-retire.s
M llvm/test/tools/llvm-mca/AArch64/Cortex/A55-load-readadv.s
M llvm/test/tools/llvm-mca/AArch64/Cortex/A55-load-store-alias.s
M llvm/test/tools/llvm-mca/AArch64/Cortex/A55-load-store-noalias.s
M llvm/test/tools/llvm-mca/AArch64/Cortex/A55-out-of-order-retire.s
M llvm/test/tools/llvm-mca/AArch64/Cortex/A55-store-readadv.s
M llvm/test/tools/llvm-mca/AArch64/Cortex/A55-writeback.s
M llvm/test/tools/llvm-mca/AArch64/Cortex/A57-writeback.s
M llvm/test/tools/llvm-mca/AArch64/Cortex/C1Nano-forwarding.s
M llvm/test/tools/llvm-mca/AArch64/Cortex/C1Premium-forwarding.s
M llvm/test/tools/llvm-mca/AArch64/Cortex/C1Premium-writeback.s
M llvm/test/tools/llvm-mca/AArch64/Cortex/C1Ultra-forwarding.s
M llvm/test/tools/llvm-mca/AArch64/Cortex/C1Ultra-writeback.s
M llvm/test/tools/llvm-mca/AArch64/HiSilicon/tsv110-forwarding.s
M llvm/test/tools/llvm-mca/AArch64/HiSilicon/tsv110-writeback.s
M llvm/test/tools/llvm-mca/AArch64/Neoverse/N1-forwarding.s
M llvm/test/tools/llvm-mca/AArch64/Neoverse/N1-writeback.s
M llvm/test/tools/llvm-mca/AArch64/Neoverse/N2-forwarding.s
M llvm/test/tools/llvm-mca/AArch64/Neoverse/N2-writeback.s
M llvm/test/tools/llvm-mca/AArch64/Neoverse/N3-forwarding.s
M llvm/test/tools/llvm-mca/AArch64/Neoverse/N3-writeback.s
M llvm/test/tools/llvm-mca/AArch64/Neoverse/V1-clear-upper-regs.s
M llvm/test/tools/llvm-mca/AArch64/Neoverse/V1-forwarding.s
M llvm/test/tools/llvm-mca/AArch64/Neoverse/V1-writeback.s
M llvm/test/tools/llvm-mca/AArch64/Neoverse/V1-zero-dependency.s
M llvm/test/tools/llvm-mca/AArch64/Neoverse/V2-clear-upper-regs.s
M llvm/test/tools/llvm-mca/AArch64/Neoverse/V2-forwarding.s
M llvm/test/tools/llvm-mca/AArch64/Neoverse/V2-writeback.s
M llvm/test/tools/llvm-mca/AArch64/Neoverse/V3-clear-upper-regs.s
M llvm/test/tools/llvm-mca/AArch64/Neoverse/V3-forwarding.s
M llvm/test/tools/llvm-mca/AArch64/Neoverse/V3-writeback.s
M llvm/test/tools/llvm-mca/AArch64/Neoverse/V3AE-clear-upper-regs.s
M llvm/test/tools/llvm-mca/AArch64/Neoverse/V3AE-forwarding.s
M llvm/test/tools/llvm-mca/AArch64/Neoverse/V3AE-writeback.s
M llvm/test/tools/llvm-mca/AArch64/Olympus/clear-upper-regs.s
M llvm/test/tools/llvm-mca/AArch64/Olympus/forwarding-idioms.s
M llvm/test/tools/llvm-mca/AArch64/Olympus/writeback-loads-stores.s
M llvm/test/tools/llvm-mca/AArch64/cortex-a55-carry-over.s
M llvm/test/tools/llvm-mca/AMDGPU/carried-over.s
M llvm/test/tools/llvm-mca/AMDGPU/gfx10-add-sequence.s
M llvm/test/tools/llvm-mca/AMDGPU/gfx10-double.s
M llvm/test/tools/llvm-mca/AMDGPU/gfx10-trans.s
M llvm/test/tools/llvm-mca/AMDGPU/gfx11-double.s
M llvm/test/tools/llvm-mca/AMDGPU/gfx12-permlane16-cycles.s
M llvm/test/tools/llvm-mca/AMDGPU/gfx12-pseudo-scalar-trans.s
M llvm/test/tools/llvm-mca/AMDGPU/gfx9-retireooo.s
M llvm/test/tools/llvm-mca/ARM/cortex-a57-carryover.s
M llvm/test/tools/llvm-mca/ARM/m55-storefwd.s
M llvm/test/tools/llvm-mca/ARM/m7-negative-readadvance.s
M llvm/test/tools/llvm-mca/ARM/memcpy-ldm-stm.s
M llvm/test/tools/llvm-mca/ARM/vld1-index-update.s
M llvm/test/tools/llvm-mca/RISCV/Andes45/fpr.s
M llvm/test/tools/llvm-mca/RISCV/Andes45/gpr.s
M llvm/test/tools/llvm-mca/RISCV/Andes45/zero-reg.s
M llvm/test/tools/llvm-mca/RISCV/MIPS/p8700.s
M llvm/test/tools/llvm-mca/RISCV/SiFive7/div-fdiv.s
M llvm/test/tools/llvm-mca/RISCV/SiFive7/gpr-bypass-c.s
M llvm/test/tools/llvm-mca/RISCV/SiFive7/gpr-bypass.s
M llvm/test/tools/llvm-mca/RISCV/SiFive7/jump.s
M llvm/test/tools/llvm-mca/RISCV/SiFive7/sp-bypass.s
M llvm/test/tools/llvm-mca/RISCV/SiFiveX280/different-lmul-instruments.s
M llvm/test/tools/llvm-mca/RISCV/SiFiveX280/different-sew-instruments.s
M llvm/test/tools/llvm-mca/RISCV/SiFiveX280/disable-im.s
M llvm/test/tools/llvm-mca/RISCV/SiFiveX280/lmul-instrument-at-start.s
M llvm/test/tools/llvm-mca/RISCV/SiFiveX280/lmul-instrument-in-middle.s
M llvm/test/tools/llvm-mca/RISCV/SiFiveX280/lmul-instrument-in-region.s
M llvm/test/tools/llvm-mca/RISCV/SiFiveX280/lmul-instrument-straddles-region.s
M llvm/test/tools/llvm-mca/RISCV/SiFiveX280/multiple-same-lmul-instruments.s
M llvm/test/tools/llvm-mca/RISCV/SiFiveX280/multiple-same-sew-instruments.s
M llvm/test/tools/llvm-mca/RISCV/SiFiveX280/needs-sew-but-only-lmul.s
M llvm/test/tools/llvm-mca/RISCV/SiFiveX280/no-vsetvli-to-start.s
M llvm/test/tools/llvm-mca/RISCV/SiFiveX280/sew-instrument-at-start.s
M llvm/test/tools/llvm-mca/RISCV/SiFiveX280/sew-instrument-in-middle.s
M llvm/test/tools/llvm-mca/RISCV/SiFiveX280/sew-instrument-in-region.s
M llvm/test/tools/llvm-mca/RISCV/SiFiveX280/sew-instrument-straddles-region.s
M llvm/test/tools/llvm-mca/RISCV/SiFiveX280/vsetivli-lmul-instrument.s
M llvm/test/tools/llvm-mca/RISCV/SiFiveX280/vsetivli-lmul-sew-instrument.s
M llvm/test/tools/llvm-mca/RISCV/SiFiveX280/vsetvli-lmul-instrument.s
M llvm/test/tools/llvm-mca/RISCV/SiFiveX280/vsetvli-lmul-sew-instrument.s
M llvm/test/tools/llvm-mca/RISCV/SyntacoreSCR/SCR4_5-FPU.s
M llvm/test/tools/llvm-mca/RISCV/XiangShan/gpr-bypass.s
M llvm/test/tools/llvm-mca/RISCV/XiangShan/load-to-alu.s
M llvm/test/tools/llvm-mca/SystemZ/stm-lm.s
M llvm/test/tools/llvm-mca/X86/AlderlakeP/independent-load-stores.s
M llvm/test/tools/llvm-mca/X86/AlderlakeP/zero-idioms.s
M llvm/test/tools/llvm-mca/X86/Atom/zero-idioms.s
M llvm/test/tools/llvm-mca/X86/Barcelona/clear-super-register-1.s
M llvm/test/tools/llvm-mca/X86/Barcelona/clear-super-register-2.s
M llvm/test/tools/llvm-mca/X86/Barcelona/dependency-breaking-cmp.s
M llvm/test/tools/llvm-mca/X86/Barcelona/dependency-breaking-pcmpeq.s
M llvm/test/tools/llvm-mca/X86/Barcelona/dependency-breaking-pcmpgt.s
M llvm/test/tools/llvm-mca/X86/Barcelona/dependency-breaking-sbb-1.s
M llvm/test/tools/llvm-mca/X86/Barcelona/dependency-breaking-sbb-2.s
M llvm/test/tools/llvm-mca/X86/Barcelona/int-to-fpu-forwarding-3.s
M llvm/test/tools/llvm-mca/X86/Barcelona/load-store-throughput.s
M llvm/test/tools/llvm-mca/X86/Barcelona/load-throughput.s
M llvm/test/tools/llvm-mca/X86/Barcelona/one-idioms.s
M llvm/test/tools/llvm-mca/X86/Barcelona/partial-reg-update-2.s
M llvm/test/tools/llvm-mca/X86/Barcelona/partial-reg-update-3.s
M llvm/test/tools/llvm-mca/X86/Barcelona/partial-reg-update-4.s
M llvm/test/tools/llvm-mca/X86/Barcelona/partial-reg-update-6.s
M llvm/test/tools/llvm-mca/X86/Barcelona/partial-reg-update-7.s
M llvm/test/tools/llvm-mca/X86/Barcelona/partial-reg-update.s
M llvm/test/tools/llvm-mca/X86/Barcelona/read-advance-1.s
M llvm/test/tools/llvm-mca/X86/Barcelona/read-advance-2.s
M llvm/test/tools/llvm-mca/X86/Barcelona/read-advance-3.s
M llvm/test/tools/llvm-mca/X86/Barcelona/reg-move-elimination-1.s
M llvm/test/tools/llvm-mca/X86/Barcelona/reg-move-elimination-2.s
M llvm/test/tools/llvm-mca/X86/Barcelona/reg-move-elimination-3.s
M llvm/test/tools/llvm-mca/X86/Barcelona/reg-move-elimination-4.s
M llvm/test/tools/llvm-mca/X86/Barcelona/reg-move-elimination-5.s
M llvm/test/tools/llvm-mca/X86/Barcelona/reg-move-elimination-6.s
M llvm/test/tools/llvm-mca/X86/Barcelona/store-throughput.s
M llvm/test/tools/llvm-mca/X86/Barcelona/zero-idioms.s
M llvm/test/tools/llvm-mca/X86/BdVer2/add-sequence.s
M llvm/test/tools/llvm-mca/X86/BdVer2/clear-super-register-1.s
M llvm/test/tools/llvm-mca/X86/BdVer2/clear-super-register-2.s
M llvm/test/tools/llvm-mca/X86/BdVer2/clear-super-register-3.s
M llvm/test/tools/llvm-mca/X86/BdVer2/dependency-breaking-cmp.s
M llvm/test/tools/llvm-mca/X86/BdVer2/dependency-breaking-pcmpeq.s
M llvm/test/tools/llvm-mca/X86/BdVer2/dependency-breaking-pcmpgt.s
M llvm/test/tools/llvm-mca/X86/BdVer2/dependency-breaking-sbb-1.s
M llvm/test/tools/llvm-mca/X86/BdVer2/dependency-breaking-sbb-2.s
M llvm/test/tools/llvm-mca/X86/BdVer2/dependent-pmuld-paddd.s
M llvm/test/tools/llvm-mca/X86/BdVer2/dot-product.s
M llvm/test/tools/llvm-mca/X86/BdVer2/hadd-read-after-ld-1.s
M llvm/test/tools/llvm-mca/X86/BdVer2/hadd-read-after-ld-2.s
M llvm/test/tools/llvm-mca/X86/BdVer2/int-to-fpu-forwarding-3.s
M llvm/test/tools/llvm-mca/X86/BdVer2/load-store-alias.s
M llvm/test/tools/llvm-mca/X86/BdVer2/load-store-throughput.s
M llvm/test/tools/llvm-mca/X86/BdVer2/load-throughput.s
M llvm/test/tools/llvm-mca/X86/BdVer2/memcpy-like-test.s
M llvm/test/tools/llvm-mca/X86/BdVer2/one-idioms.s
M llvm/test/tools/llvm-mca/X86/BdVer2/partial-reg-update-2.s
M llvm/test/tools/llvm-mca/X86/BdVer2/partial-reg-update-3.s
M llvm/test/tools/llvm-mca/X86/BdVer2/partial-reg-update-4.s
M llvm/test/tools/llvm-mca/X86/BdVer2/partial-reg-update-6.s
M llvm/test/tools/llvm-mca/X86/BdVer2/partial-reg-update.s
M llvm/test/tools/llvm-mca/X86/BdVer2/pipes-fpu.s
M llvm/test/tools/llvm-mca/X86/BdVer2/pr37790.s
M llvm/test/tools/llvm-mca/X86/BdVer2/rank.s
M llvm/test/tools/llvm-mca/X86/BdVer2/read-advance-1.s
M llvm/test/tools/llvm-mca/X86/BdVer2/read-advance-2.s
M llvm/test/tools/llvm-mca/X86/BdVer2/read-advance-3.s
M llvm/test/tools/llvm-mca/X86/BdVer2/reg-move-elimination-1.s
M llvm/test/tools/llvm-mca/X86/BdVer2/reg-move-elimination-2.s
M llvm/test/tools/llvm-mca/X86/BdVer2/reg-move-elimination-3.s
M llvm/test/tools/llvm-mca/X86/BdVer2/reg-move-elimination-4.s
M llvm/test/tools/llvm-mca/X86/BdVer2/reg-move-elimination-5.s
M llvm/test/tools/llvm-mca/X86/BdVer2/register-files-1.s
M llvm/test/tools/llvm-mca/X86/BdVer2/register-files-2.s
M llvm/test/tools/llvm-mca/X86/BdVer2/register-files-5.s
M llvm/test/tools/llvm-mca/X86/BdVer2/store-throughput.s
M llvm/test/tools/llvm-mca/X86/BdVer2/vbroadcast-operand-latency.s
M llvm/test/tools/llvm-mca/X86/BdVer2/vec-logic-read-after-ld-1.s
M llvm/test/tools/llvm-mca/X86/BdVer2/vec-logic-read-after-ld-2.s
M llvm/test/tools/llvm-mca/X86/BdVer2/xop-super-registers-1.s
M llvm/test/tools/llvm-mca/X86/BdVer2/xop-super-registers-2.s
M llvm/test/tools/llvm-mca/X86/BdVer2/zero-idioms-avx-256.s
M llvm/test/tools/llvm-mca/X86/BdVer2/zero-idioms.s
M llvm/test/tools/llvm-mca/X86/Broadwell/zero-idioms.s
M llvm/test/tools/llvm-mca/X86/BtVer2/add-sequence.s
M llvm/test/tools/llvm-mca/X86/BtVer2/bottleneck-hints-1.s
M llvm/test/tools/llvm-mca/X86/BtVer2/bottleneck-hints-3.s
M llvm/test/tools/llvm-mca/X86/BtVer2/clear-super-register-1.s
M llvm/test/tools/llvm-mca/X86/BtVer2/clear-super-register-2.s
M llvm/test/tools/llvm-mca/X86/BtVer2/cmpxchg-read-advance.s
M llvm/test/tools/llvm-mca/X86/BtVer2/dependency-breaking-cmp.s
M llvm/test/tools/llvm-mca/X86/BtVer2/dependency-breaking-pcmpeq.s
M llvm/test/tools/llvm-mca/X86/BtVer2/dependency-breaking-pcmpgt.s
M llvm/test/tools/llvm-mca/X86/BtVer2/dependency-breaking-sbb-1.s
M llvm/test/tools/llvm-mca/X86/BtVer2/dependency-breaking-sbb-2.s
M llvm/test/tools/llvm-mca/X86/BtVer2/dependent-pmuld-paddd.s
M llvm/test/tools/llvm-mca/X86/BtVer2/dot-product.s
M llvm/test/tools/llvm-mca/X86/BtVer2/hadd-read-after-ld-1.s
M llvm/test/tools/llvm-mca/X86/BtVer2/hadd-read-after-ld-2.s
M llvm/test/tools/llvm-mca/X86/BtVer2/independent-load-stores.s
M llvm/test/tools/llvm-mca/X86/BtVer2/int-to-fpu-forwarding-3.s
M llvm/test/tools/llvm-mca/X86/BtVer2/load-store-alias.s
M llvm/test/tools/llvm-mca/X86/BtVer2/memcpy-like-test.s
M llvm/test/tools/llvm-mca/X86/BtVer2/negative-read-advance.s
M llvm/test/tools/llvm-mca/X86/BtVer2/one-idioms.s
M llvm/test/tools/llvm-mca/X86/BtVer2/partial-reg-update-2.s
M llvm/test/tools/llvm-mca/X86/BtVer2/partial-reg-update-3.s
M llvm/test/tools/llvm-mca/X86/BtVer2/partial-reg-update-4.s
M llvm/test/tools/llvm-mca/X86/BtVer2/partial-reg-update-6.s
M llvm/test/tools/llvm-mca/X86/BtVer2/partial-reg-update-7.s
M llvm/test/tools/llvm-mca/X86/BtVer2/partial-reg-update.s
M llvm/test/tools/llvm-mca/X86/BtVer2/pipes-fpu.s
M llvm/test/tools/llvm-mca/X86/BtVer2/pr37790.s
M llvm/test/tools/llvm-mca/X86/BtVer2/rank.s
M llvm/test/tools/llvm-mca/X86/BtVer2/read-advance-1.s
M llvm/test/tools/llvm-mca/X86/BtVer2/read-advance-2.s
M llvm/test/tools/llvm-mca/X86/BtVer2/read-advance-3.s
M llvm/test/tools/llvm-mca/X86/BtVer2/reg-move-elimination-1.s
M llvm/test/tools/llvm-mca/X86/BtVer2/reg-move-elimination-2.s
M llvm/test/tools/llvm-mca/X86/BtVer2/reg-move-elimination-3.s
M llvm/test/tools/llvm-mca/X86/BtVer2/reg-move-elimination-4.s
M llvm/test/tools/llvm-mca/X86/BtVer2/reg-move-elimination-5.s
M llvm/test/tools/llvm-mca/X86/BtVer2/reg-move-elimination-6.s
M llvm/test/tools/llvm-mca/X86/BtVer2/register-files-1.s
M llvm/test/tools/llvm-mca/X86/BtVer2/register-files-2.s
M llvm/test/tools/llvm-mca/X86/BtVer2/register-files-5.s
M llvm/test/tools/llvm-mca/X86/BtVer2/rmw-adc-sequence-readadvance.s
M llvm/test/tools/llvm-mca/X86/BtVer2/rmw-add-sequence-readadvance.s
M llvm/test/tools/llvm-mca/X86/BtVer2/stmxcsr-ldmxcsr.s
M llvm/test/tools/llvm-mca/X86/BtVer2/vbroadcast-operand-latency.s
M llvm/test/tools/llvm-mca/X86/BtVer2/vec-logic-read-after-ld-1.s
M llvm/test/tools/llvm-mca/X86/BtVer2/vec-logic-read-after-ld-2.s
M llvm/test/tools/llvm-mca/X86/BtVer2/xadd.s
M llvm/test/tools/llvm-mca/X86/BtVer2/xchg.s
M llvm/test/tools/llvm-mca/X86/BtVer2/zero-idioms-avx-256.s
M llvm/test/tools/llvm-mca/X86/BtVer2/zero-idioms.s
M llvm/test/tools/llvm-mca/X86/Generic/avx512-super-registers-1.s
M llvm/test/tools/llvm-mca/X86/Generic/avx512-super-registers-2.s
M llvm/test/tools/llvm-mca/X86/Generic/avx512-super-registers-3.s
M llvm/test/tools/llvm-mca/X86/Generic/xop-super-registers-1.s
M llvm/test/tools/llvm-mca/X86/Generic/xop-super-registers-2.s
M llvm/test/tools/llvm-mca/X86/Haswell/independent-load-stores.s
M llvm/test/tools/llvm-mca/X86/Haswell/mulx-hi-read-advance.s
M llvm/test/tools/llvm-mca/X86/Haswell/stmxcsr-ldmxcsr.s
M llvm/test/tools/llvm-mca/X86/Haswell/zero-idioms.s
M llvm/test/tools/llvm-mca/X86/IceLakeServer/independent-load-stores.s
M llvm/test/tools/llvm-mca/X86/IceLakeServer/zero-idioms.s
M llvm/test/tools/llvm-mca/X86/LunarlakeP/independent-load-stores.s
M llvm/test/tools/llvm-mca/X86/LunarlakeP/zero-idioms.s
M llvm/test/tools/llvm-mca/X86/SLM/zero-idioms.s
M llvm/test/tools/llvm-mca/X86/SandyBridge/zero-idioms.s
M llvm/test/tools/llvm-mca/X86/SapphireRapids/independent-load-stores.s
M llvm/test/tools/llvm-mca/X86/SapphireRapids/zero-idioms.s
M llvm/test/tools/llvm-mca/X86/SkylakeClient/independent-load-stores.s
M llvm/test/tools/llvm-mca/X86/SkylakeClient/mulx-hi-read-advance.s
M llvm/test/tools/llvm-mca/X86/SkylakeClient/zero-idioms.s
M llvm/test/tools/llvm-mca/X86/SkylakeServer/independent-load-stores.s
M llvm/test/tools/llvm-mca/X86/SkylakeServer/zero-idioms.s
M llvm/test/tools/llvm-mca/X86/Znver1/partial-reg-update-2.s
M llvm/test/tools/llvm-mca/X86/Znver1/partial-reg-update-3.s
M llvm/test/tools/llvm-mca/X86/Znver1/partial-reg-update-4.s
M llvm/test/tools/llvm-mca/X86/Znver1/partial-reg-update-6.s
M llvm/test/tools/llvm-mca/X86/Znver1/partial-reg-update-7.s
M llvm/test/tools/llvm-mca/X86/Znver1/partial-reg-update.s
M llvm/test/tools/llvm-mca/X86/Znver1/zero-idioms.s
M llvm/test/tools/llvm-mca/X86/Znver2/mulx-hi-read-advance.s
M llvm/test/tools/llvm-mca/X86/Znver2/partial-reg-update-2.s
M llvm/test/tools/llvm-mca/X86/Znver2/partial-reg-update-3.s
M llvm/test/tools/llvm-mca/X86/Znver2/partial-reg-update-4.s
M llvm/test/tools/llvm-mca/X86/Znver2/partial-reg-update-6.s
M llvm/test/tools/llvm-mca/X86/Znver2/partial-reg-update-7.s
M llvm/test/tools/llvm-mca/X86/Znver2/partial-reg-update.s
M llvm/test/tools/llvm-mca/X86/Znver2/zero-idioms.s
M llvm/test/tools/llvm-mca/X86/Znver3/dependency-breaking-gpr.s
M llvm/test/tools/llvm-mca/X86/Znver3/mulx-hi-read-advance.s
M llvm/test/tools/llvm-mca/X86/Znver3/one-idioms-avx-xmm.s
M llvm/test/tools/llvm-mca/X86/Znver3/one-idioms-avx-ymm.s
M llvm/test/tools/llvm-mca/X86/Znver3/one-idioms-mmx.s
M llvm/test/tools/llvm-mca/X86/Znver3/one-idioms-sse-xmm.s
M llvm/test/tools/llvm-mca/X86/Znver3/partial-reg-update-2.s
M llvm/test/tools/llvm-mca/X86/Znver3/partial-reg-update-3.s
M llvm/test/tools/llvm-mca/X86/Znver3/partial-reg-update-4.s
M llvm/test/tools/llvm-mca/X86/Znver3/partial-reg-update-6.s
M llvm/test/tools/llvm-mca/X86/Znver3/partial-reg-update-7.s
M llvm/test/tools/llvm-mca/X86/Znver3/partial-reg-update.s
M llvm/test/tools/llvm-mca/X86/Znver3/reg-move-elimination-avx-xmm.s
M llvm/test/tools/llvm-mca/X86/Znver3/reg-move-elimination-avx-ymm.s
M llvm/test/tools/llvm-mca/X86/Znver3/reg-move-elimination-gpr.s
M llvm/test/tools/llvm-mca/X86/Znver3/reg-move-elimination-mmx.s
M llvm/test/tools/llvm-mca/X86/Znver3/reg-move-elimination-sse-xmm.s
M llvm/test/tools/llvm-mca/X86/Znver3/reg-move-elimination-x87.s
M llvm/test/tools/llvm-mca/X86/Znver3/zero-idioms-avx-xmm.s
M llvm/test/tools/llvm-mca/X86/Znver3/zero-idioms-avx-ymm.s
M llvm/test/tools/llvm-mca/X86/Znver3/zero-idioms-gpr.s
M llvm/test/tools/llvm-mca/X86/Znver3/zero-idioms-sse-xmm.s
M llvm/test/tools/llvm-mca/X86/Znver4/independent-load-stores.s
M llvm/test/tools/llvm-mca/X86/Znver4/partially-overlapping-group-resources.s
M llvm/test/tools/llvm-mca/X86/Znver4/zero-idioms.s
M llvm/test/tools/llvm-mca/X86/bextr-read-after-ld.s
M llvm/test/tools/llvm-mca/X86/bzhi-read-after-ld.s
M llvm/test/tools/llvm-mca/X86/fma3-read-after-ld-1.s
M llvm/test/tools/llvm-mca/X86/fma3-read-after-ld-2.s
M llvm/test/tools/llvm-mca/X86/read-after-ld-1.s
M llvm/test/tools/llvm-mca/X86/read-after-ld-2.s
M llvm/test/tools/llvm-mca/X86/read-after-ld-3.s
M llvm/test/tools/llvm-mca/X86/sqrt-rsqrt-rcp-memop.s
M llvm/test/tools/llvm-mca/X86/stack-engine-pop.s
M llvm/test/tools/llvm-mca/X86/stack-engine-push.s
M llvm/test/tools/llvm-mca/X86/variable-blend-read-after-ld-1.s
M llvm/test/tools/llvm-mca/X86/variable-blend-read-after-ld-2.s
M llvm/tools/llvm-mca/Views/TimelineView.cpp
M llvm/tools/llvm-mca/Views/TimelineView.h
Log Message:
-----------
[llvm-mca] Fix total execution count in Average Wait times (#199500)
Fix the column `0` for the `<total>` row in llvm-mca's `Average Wait times` report. The `total`
row now represents the total dynamic execution count used to normalize the averages,
instead of the per-instruction iteration count. Update the timeline view docs and autogenerated
test expectations accordingly.
Co-authored-by: liuxiaodong <liuxiaodong at sunmmio.com>
Commit: 40602b6346cc3e2fda464f31d9e9473c55be94b3
https://github.com/llvm/llvm-project/commit/40602b6346cc3e2fda464f31d9e9473c55be94b3
Author: Haohai Wen <haohai.wen at intel.com>
Date: 2026-05-27 (Wed, 27 May 2026)
Changed paths:
M lld/COFF/Writer.cpp
M lld/test/COFF/ctors_dtors_priority.s
Log Message:
-----------
[LLD][COFF] Gate second-dot section-name stripping on MinGW (#199625)
The comment in getOutputSectionName has always called the second-dot
stripping "for MinGW" (e.g. .ctors.NNNN), but the code applied it on
every target. This hiddes a split-dwarf bug #199616.
Take an isMinGW gate and skip the stripping when it is false.
Commit: 1b19eccf1751f99a8a77371428bc2708169c516e
https://github.com/llvm/llvm-project/commit/1b19eccf1751f99a8a77371428bc2708169c516e
Author: Amir Ayupov <aaupov at fb.com>
Date: 2026-05-26 (Tue, 26 May 2026)
Changed paths:
M bolt/include/bolt/Profile/DataAggregator.h
M bolt/lib/Profile/DataAggregator.cpp
Log Message:
-----------
[BOLT][NFC] Split out function marking from profile parsing
Move out `setHasProfileAvailable` into `markFunctionsWithProfile`.
This also allows extracting per-pre-aggregated type handling in
`parseAggregatedLBREntry` into a switch statement.
Test Plan:
NFC
Processing time change (wall time):
* 10MB pre-aggregated profile:
- Parsing aggregated branch events: 0.16s -> 0.05s
- Pre-process profile data (parsing+marking): 0.18s -> 0.16s
* 6GB perf.data file:
- Parsing branch events: 29.06s -> 28.55s
- Pre-process profile data (excluding perf script): 29.47s -> 29.13s
Reviewers:
rafaelauler, yota9, maksfb, ayermolo, yozhu, yavtuk, paschalis-mpeis
Pull Request: https://github.com/llvm/llvm-project/pull/199320
Commit: 73de4c73dc9b143212848cc0f97abc123cc7893c
https://github.com/llvm/llvm-project/commit/73de4c73dc9b143212848cc0f97abc123cc7893c
Author: Shilei Tian <i at tianshilei.me>
Date: 2026-05-26 (Tue, 26 May 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/VOP3PInstructions.td
Log Message:
-----------
[NFC][AMDGPU] Improve the predicate uses for WMMAs (#199807)
Commit: 7259dd668674a2eb26be6cd21452292fe39fcc09
https://github.com/llvm/llvm-project/commit/7259dd668674a2eb26be6cd21452292fe39fcc09
Author: Craig Topper <craig.topper at sifive.com>
Date: 2026-05-26 (Tue, 26 May 2026)
Changed paths:
M llvm/lib/Target/RISCV/RISCVInstrInfoP.td
Log Message:
-----------
[RISCV][P-ext] Add DefVXSAT argument to tablegen classes. NFC (#199797)
Sink the lets Defs = [VXSAT] into the classs.
This makes the encoding based structure of this file more consistent.
Commit: 05e1af73ba2d3f8fcf8fca2eca7aaf62d44eb3b6
https://github.com/llvm/llvm-project/commit/05e1af73ba2d3f8fcf8fca2eca7aaf62d44eb3b6
Author: Craig Topper <craig.topper at sifive.com>
Date: 2026-05-26 (Tue, 26 May 2026)
Changed paths:
M llvm/lib/Target/RISCV/RISCVInstrInfoP.td
Log Message:
-----------
[RISCV][P-ext] Remove duplicate hasSideEffects=0, mayLoad=0, mayStore=0. NFC (#199798)
We had a let outside the class and inside.
Commit: 0d5b7522dc729f04c27d8c9d536321d57b3b3196
https://github.com/llvm/llvm-project/commit/0d5b7522dc729f04c27d8c9d536321d57b3b3196
Author: Jianjian Guan <jacquesguan at me.com>
Date: 2026-05-27 (Wed, 27 May 2026)
Changed paths:
M clang/include/clang/Basic/riscv_vector.td
M clang/include/clang/Basic/riscv_vector_common.td
M clang/include/clang/Support/RISCVVIntrinsicUtils.h
M clang/lib/CodeGen/TargetBuiltins/RISCV.cpp
M clang/lib/Support/RISCVVIntrinsicUtils.cpp
M clang/utils/TableGen/RISCVVEmitter.cpp
Log Message:
-----------
[RISCV][NFC] Remove SegInstSEW for unused function (#199598)
Since SegInstSEW is only used by segment load/store, no need to keep it
for other builtins.
Commit: 853d532794be83adc97d51c9ff8c9095ce32631b
https://github.com/llvm/llvm-project/commit/853d532794be83adc97d51c9ff8c9095ce32631b
Author: Sam Clegg <sbc at chromium.org>
Date: 2026-05-26 (Tue, 26 May 2026)
Changed paths:
M llvm/test/tools/llvm-symbolizer/wasm-basic.s
Log Message:
-----------
Fix llvm-symbolizer test broken by #199739 (#199801)
I broke this test in #199739. As a result to that change, the start of
the CODE section in the linked WASM file shifted from 0x41 to 0x37 (a
shift of -10 bytes).
I was not aware that `wasm-ld` had testing outside of `lld/test/wasm`.
Commit: 5a616ce490abe551ffc7a7714c28e90c483f5b39
https://github.com/llvm/llvm-project/commit/5a616ce490abe551ffc7a7714c28e90c483f5b39
Author: Nikolas Klauser <nikolasklauser at berlin.de>
Date: 2026-05-27 (Wed, 27 May 2026)
Changed paths:
M libcxx/utils/ci/docker/docker-compose.yml
Log Message:
-----------
[libc++] Update the GCC head version to 17 (#199823)
GCC released a new version, so we should bump the versions installed in
the CI so we can upgrade.
Commit: 22ba468002d561185371c06f899c8c753edc6750
https://github.com/llvm/llvm-project/commit/22ba468002d561185371c06f899c8c753edc6750
Author: Timm Baeder <tbaeder at redhat.com>
Date: 2026-05-27 (Wed, 27 May 2026)
Changed paths:
M clang/lib/AST/ByteCode/Compiler.cpp
M clang/test/AST/ByteCode/unions.cpp
Log Message:
-----------
[clang][bytecode] Fix non-defaulted union copy/move ctors (#199394)
They are like regular record ctors.
Commit: 80490b8cfa343692500706f31893ba429fec96b7
https://github.com/llvm/llvm-project/commit/80490b8cfa343692500706f31893ba429fec96b7
Author: Iris Shi <0.0 at owo.li>
Date: 2026-05-27 (Wed, 27 May 2026)
Changed paths:
M clang/docs/ReleaseNotes.rst
M clang/include/clang/Basic/DiagnosticSemaKinds.td
M clang/lib/Basic/TargetInfo.cpp
M clang/lib/Sema/SemaStmtAsm.cpp
A clang/test/Sema/inline-asm-constraint-embedded-null.c
Log Message:
-----------
[clang][diagnostics] Reject embedded NUL characters in inline asm (#196462)
As suggested by @jmorse and @efriedma-quic in #196223.
---------
Co-authored-by: Corentin Jabot <corentinjabot at gmail.com>
Commit: 3913c828ab911757e8c971817757c2ab51452e45
https://github.com/llvm/llvm-project/commit/3913c828ab911757e8c971817757c2ab51452e45
Author: somi <1wosomm1 at gmail.com>
Date: 2026-05-27 (Wed, 27 May 2026)
Changed paths:
M llvm/lib/MC/MCStreamer.cpp
R llvm/test/MC/AsmParser/cfi-unfinished-frame.s
M llvm/test/MC/ELF/cfi-scope-errors.s
Log Message:
-----------
[MC] Diagnose unfinished CFI frame from an earlier section (#196775)
Fixes #177852.
The reproducer has two `.cfi_startproc` directives separated by a
`.popsection`. The first is never closed; the second is properly paired
with `.cfi_endproc`. `MCStreamer::finish()` only inspects the last entry
of `DwarfFrameInfos`, so the unfinished earlier frame slips through and
crashes `finishImpl()` when it emits frame data with a null End label.
Use `hasUnfinishedDwarfFrameInfo()` instead, which walks the full
`FrameInfoStack` and catches every unfinished frame.
---------
Co-authored-by: Fangrui Song <i at maskray.me>
Commit: c85c8af5426eb1affa14388deb78a4731737bf04
https://github.com/llvm/llvm-project/commit/c85c8af5426eb1affa14388deb78a4731737bf04
Author: Garvit Gupta <garvgupt at qti.qualcomm.com>
Date: 2026-05-27 (Wed, 27 May 2026)
Changed paths:
M compiler-rt/lib/builtins/CMakeLists.txt
Log Message:
-----------
[compiler-rt][ARM] Add missing SUPERSEDES for optimized FP comparison sources (#199604)
PR #179924 and #179925 added optimized assembly implementations for ARM
double-precision and single-precision FP comparisons (arm/cmpdf2.S,
arm/gedf2.S, arm/unorddf2.S, arm/cmpsf2.S, arm/gesf2.S, arm/unordsf2.S)
but only added SUPERSEDES annotations for the thumb1 variants. The arm
variants were missing these annotations, causing both the generic and
optimized implementations to be included in libclang_rt.builtins.a.
For double-precision, the archive contains:
- comparedf2.c.obj (pos 28): defines __unorddf2, __aeabi_dcmpun, ...
- divdc3.c.obj (pos 32): defines __divdc3; refs __aeabi_dcmpun
- unorddf2.S.obj (pos 126): defines __unorddf2, __aeabi_dcmpun
- aeabi_dcmp.S.obj (pos 158): defines __aeabi_dcmpeq; refs __eqdf2
When linking divdc3_test.c, the linker loads divdc3.c.obj which
introduces __aeabi_dcmpun as undefined. BFD-like linkers (GNU ld, ELD)
continue scanning forward and resolve __aeabi_dcmpun from unorddf2.S.obj
(pos 126). Later, aeabi_dcmp.S.obj introduces __eqdf2 as undefined,
which is resolved by comparedf2.c.obj (pos 28) on the next pass. Since
both comparedf2.c.obj and unorddf2.S.obj define __unorddf2, the linker
reports a duplicate symbol error.
lld does not encounter this because of the difference in the way it
resolves symbol references. This causes comparedf2.c.obj (pos 28) to be
selected first for __aeabi_dcmpun, making unorddf2.S.obj unnecessary.
The same pattern exists for single-precision where arm/comparesf2.S and
arm/unordsf2.S both define __unordsf2 and __aeabi_fcmpun.
The fix adds SUPERSEDES annotations so that the generic implementations
(comparedf2.c for double-precision and arm/comparesf2.S for single-
precision) are removed from the source list when the optimized assembly
replacements are present. The assembly files together provide all
symbols that the generic implementations define.
The surrounding code was reviewed, and this PR was developed with the
assistance of AI.
Commit: 18ddec75ba8241bb49e290cbc60c05dca7ab6250
https://github.com/llvm/llvm-project/commit/18ddec75ba8241bb49e290cbc60c05dca7ab6250
Author: Felipe de Azevedo Piovezan <fpiovezan at apple.com>
Date: 2026-05-27 (Wed, 27 May 2026)
Changed paths:
M lldb/source/Target/Process.cpp
Log Message:
-----------
[lldb] Use private stop for breakpoint-delaying decision (#199639)
Commit: 532940bdee66bf5f36a70578698aab66f16919af
https://github.com/llvm/llvm-project/commit/532940bdee66bf5f36a70578698aab66f16919af
Author: Haohai Wen <haohai.wen at intel.com>
Date: 2026-05-27 (Wed, 27 May 2026)
Changed paths:
A llvm/include/llvm/Object/BBAddrMap.def
M llvm/include/llvm/Object/BBAddrMap.h
Log Message:
-----------
[BBAddrMap] Drive Features and Metadata bits from BBAddrMap.def (#196906)
Move the bit name list of BBAddrMap::Features and BBAddrMap::BBEntry::Metadata
into a new BBAddrMap.def and derive the enum, bitfield, encode(), decode(),
and operator== from it. Adding a new bit now only requires one line in the
.def file.
Also expose BBAddrMap::Features::KnownMask for future use.
Commit: 4ee7e900f321c78271c87da47f1d7bd4263f3e7c
https://github.com/llvm/llvm-project/commit/4ee7e900f321c78271c87da47f1d7bd4263f3e7c
Author: Vitaly Buka <vitalybuka at google.com>
Date: 2026-05-26 (Tue, 26 May 2026)
Changed paths:
M bolt/test/lit.cfg.py
M libsycl/test/lit.cfg.py
M lldb/test/API/lit.cfg.py
M lldb/test/Shell/lit.cfg.py
M llvm/utils/lit/lit/LitConfig.py
M llvm/utils/lit/lit/TestRunner.py
M llvm/utils/lit/lit/TestingConfig.py
M llvm/utils/lit/lit/formats/googletest.py
M llvm/utils/lit/lit/main.py
M llvm/utils/lit/tests/Inputs/googletest-timeout/lit.cfg
M llvm/utils/lit/tests/Inputs/shtest-timeout/lit.cfg
Log Message:
-----------
[lit] Move maxIndividualTestTime from global to test suite config (#198192)
Simplify LitConfig initialization and setter to allow None values.
TestingConfig.maxIndividualTestTime is initialized to 0 (or resolved to
0 if None) strictly during initialization.
This fixes an issue where the aggressive BOLT timeout of 60s (previously
set globally on lit_config) was leaking and affecting libc++ tests. By
moving the timeout configuration from the global lit_config to the
individual test suite config, we ensure that timeouts are isolated and
respect suite-local settings without leaking.
PR Stack:
* ➤ https://github.com/llvm/llvm-project/pull/198192
* https://github.com/llvm/llvm-project/pull/198193
Assisted-by: Gemini
Commit: 4f54064a6e192eb182ba5e718f1b6d70065a6609
https://github.com/llvm/llvm-project/commit/4f54064a6e192eb182ba5e718f1b6d70065a6609
Author: Sameer Sahasrabuddhe <sameer.sahasrabuddhe at amd.com>
Date: 2026-05-27 (Wed, 27 May 2026)
Changed paths:
M clang/lib/CodeGen/TargetBuiltins/AMDGPU.cpp
M llvm/include/llvm/IR/MemoryModelRelaxationAnnotations.h
M llvm/lib/IR/MemoryModelRelaxationAnnotations.cpp
Log Message:
-----------
[IR] Introduce an appendTags() idiom to set MMRA metadata [NFC] (#199621)
This is a simple set-union of new tags and existing tags. This is safer
than directly setting metadata, which can over-write existing MMRAs.
Assisted-By: Claude Opus 4.6
---------
Co-authored-by: Pierre van Houtryve <pierre.vanhoutryve at amd.com>
Commit: 505a611530cc4508ad815f142f7b727a278f3590
https://github.com/llvm/llvm-project/commit/505a611530cc4508ad815f142f7b727a278f3590
Author: NeKon69 <nobodqwe at gmail.com>
Date: 2026-05-27 (Wed, 27 May 2026)
Changed paths:
M .github/new-issues-labeler.yml
Log Message:
-----------
Auto-label LifetimeSafety issues with `clang:temporal-safety` (#199522)
cc: @usx95
Commit: a3adb545b6a33044ab634b7a330bab5d4ee76d24
https://github.com/llvm/llvm-project/commit/a3adb545b6a33044ab634b7a330bab5d4ee76d24
Author: NeKon69 <nobodqwe at gmail.com>
Date: 2026-05-27 (Wed, 27 May 2026)
Changed paths:
M clang/include/clang/Analysis/Analyses/LifetimeSafety/LifetimeSafety.h
M clang/include/clang/Basic/DiagnosticSemaKinds.td
M clang/lib/Analysis/LifetimeSafety/Checker.cpp
M clang/lib/Sema/SemaLifetimeSafety.h
M clang/test/Sema/warn-lifetime-analysis-nocfg.cpp
M clang/test/Sema/warn-lifetime-safety-suggestions.cpp
M clang/test/Sema/warn-lifetime-safety.cpp
Log Message:
-----------
[LifetimeSafety] Add details for `-Wlifetime-safety-return-stack-addr` diagnostic (#199432)
Most of the diagnostic's wording was taken from `-Wreturn-stack-address`
with exceptions such as:
- We do not special-case `[[clang::musttail]]`
- We do not special-case `CompoundLiteralExpr` as it is mostly a C
thing.
This patch does not add any new tests, it only updates already existing
test warnings to follow the new wording.
Comes as part of completing #186002
Commit: 6bbbf743ae49736ba438e9dbd14a5bd0f4166382
https://github.com/llvm/llvm-project/commit/6bbbf743ae49736ba438e9dbd14a5bd0f4166382
Author: Carlos Alberto Enciso <Carlos.Enciso at sony.com>
Date: 2026-05-27 (Wed, 27 May 2026)
Changed paths:
M llvm/docs/CommandGuide/llvm-debuginfo-analyzer.rst
M llvm/include/llvm/DebugInfo/LogicalView/Core/LVElement.h
M llvm/include/llvm/DebugInfo/LogicalView/Core/LVLocation.h
M llvm/include/llvm/DebugInfo/LogicalView/Core/LVReader.h
M llvm/include/llvm/DebugInfo/LogicalView/Core/LVSupport.h
M llvm/include/llvm/DebugInfo/LogicalView/LVReaderHandler.h
M llvm/include/llvm/DebugInfo/LogicalView/Readers/LVBinaryReader.h
A llvm/include/llvm/DebugInfo/LogicalView/Readers/LVIRReader.h
M llvm/lib/DebugInfo/LogicalView/CMakeLists.txt
M llvm/lib/DebugInfo/LogicalView/Core/LVElement.cpp
M llvm/lib/DebugInfo/LogicalView/Core/LVLocation.cpp
M llvm/lib/DebugInfo/LogicalView/Core/LVReader.cpp
M llvm/lib/DebugInfo/LogicalView/LVReaderHandler.cpp
A llvm/lib/DebugInfo/LogicalView/Readers/LVIRReader.cpp
M llvm/lib/Transforms/Utils/DebugSSAUpdater.cpp
A llvm/test/tools/llvm-debuginfo-analyzer/IR/01-ir-compare-logical-elements.test
A llvm/test/tools/llvm-debuginfo-analyzer/IR/01-ir-print-basic-details.test
A llvm/test/tools/llvm-debuginfo-analyzer/IR/01-ir-select-logical-elements.test
A llvm/test/tools/llvm-debuginfo-analyzer/IR/02-ir-logical-lines.test
A llvm/test/tools/llvm-debuginfo-analyzer/IR/03-ir-incorrect-lexical-scope-typedef.test
A llvm/test/tools/llvm-debuginfo-analyzer/IR/04-ir-missing-nested-enumerators.test
A llvm/test/tools/llvm-debuginfo-analyzer/IR/05-ir-incorrect-lexical-scope-variable.test
A llvm/test/tools/llvm-debuginfo-analyzer/IR/06-ir-full-logical-view.test
A llvm/test/tools/llvm-debuginfo-analyzer/IR/07-ir-debug-formats.test
A llvm/test/tools/llvm-debuginfo-analyzer/IR/08-ir-multiple-compile-units.test
A llvm/test/tools/llvm-debuginfo-analyzer/IR/Inputs/compile-unit-1.ll
A llvm/test/tools/llvm-debuginfo-analyzer/IR/Inputs/compile-unit-2.ll
A llvm/test/tools/llvm-debuginfo-analyzer/IR/Inputs/compile-unit-3.ll
A llvm/test/tools/llvm-debuginfo-analyzer/IR/Inputs/compile-unit.ll
A llvm/test/tools/llvm-debuginfo-analyzer/IR/Inputs/hello-world-clang.ll
A llvm/test/tools/llvm-debuginfo-analyzer/IR/Inputs/pr-43860-clang.ll
A llvm/test/tools/llvm-debuginfo-analyzer/IR/Inputs/pr-44884-clang.ll
A llvm/test/tools/llvm-debuginfo-analyzer/IR/Inputs/pr-46466-clang.ll
A llvm/test/tools/llvm-debuginfo-analyzer/IR/Inputs/test-clang-intrinsics.ll
A llvm/test/tools/llvm-debuginfo-analyzer/IR/Inputs/test-clang.ll
M llvm/tools/llvm-debuginfo-analyzer/CMakeLists.txt
M llvm/unittests/DebugInfo/LogicalView/CMakeLists.txt
A llvm/unittests/DebugInfo/LogicalView/IRReaderTest.cpp
M llvm/unittests/DebugInfo/LogicalView/Inputs/README.md
A llvm/unittests/DebugInfo/LogicalView/Inputs/test-clang.bc
A llvm/unittests/DebugInfo/LogicalView/Inputs/test-clang.ll
Log Message:
-----------
[llvm-debuginfo-analyzer] Add support for LLVM IR format. (#135440)
llvm-debuginfo-analyzer is a command line tool that processes debug
info contained in a binary file and produces a debug information
format agnostic “Logical View”, which is a high-level semantic
representation of the debug info, independent of the low-level format.
Add support for the LLVM IR format and be able to generate logical
views. Both textual representation (.ll) and bitcode (.bc) formats
are supported.
Commit: 2b286794010f5549d109b37941a4c3171489c5d8
https://github.com/llvm/llvm-project/commit/2b286794010f5549d109b37941a4c3171489c5d8
Author: Kigyosi Alexandru <alexandru.kigyosi at intel.com>
Date: 2026-05-27 (Wed, 27 May 2026)
Changed paths:
M mlir/include/mlir/IR/MLIRContext.h
M mlir/lib/IR/MLIRContext.cpp
Log Message:
-----------
[MLIR] Add a non-const ActionHandler getter to MLIRContext (#199652)
#197230 added a getter for the ActionHandler, but only returns a const
ref with a non-const accessor.
Instead provide both variants: a const accessor returning a const ref
and non-const one returning a mutable ref.
Commit: 77d3da64d2bbbcd520aede072225d4790e95a84e
https://github.com/llvm/llvm-project/commit/77d3da64d2bbbcd520aede072225d4790e95a84e
Author: Nikolas Klauser <nikolasklauser at berlin.de>
Date: 2026-05-27 (Wed, 27 May 2026)
Changed paths:
M clang/lib/Sema/SemaChecking.cpp
M clang/test/CodeGen/builtin-masked.c
Log Message:
-----------
[Clang] Accept gnu vectors in __builtin_masked* (#198248)
There doesn't seem to be a good reason to reject gnu vectors in these
builtins. The error messages for that case are also rather bizzare,
which doesn't help with figuring out what's going wrong.
Commit: 263494977277ad6514e353021c31e3096c6cb3aa
https://github.com/llvm/llvm-project/commit/263494977277ad6514e353021c31e3096c6cb3aa
Author: forking-google-bazel-bot[bot] <265904573+forking-google-bazel-bot[bot]@users.noreply.github.com>
Date: 2026-05-27 (Wed, 27 May 2026)
Changed paths:
M utils/bazel/llvm-project-overlay/llvm/BUILD.bazel
Log Message:
-----------
[Bazel] Fixes 532940b (#199874)
This fixes 532940bdee66bf5f36a70578698aab66f16919af.
Co-authored-by: Google Bazel Bot <google-bazel-bot at google.com>
Commit: 6de9a33debfdcd4dc77f826d515b744d382a8598
https://github.com/llvm/llvm-project/commit/6de9a33debfdcd4dc77f826d515b744d382a8598
Author: Carlos Alberto Enciso <Carlos.Enciso at sony.com>
Date: 2026-05-27 (Wed, 27 May 2026)
Changed paths:
M llvm/docs/CommandGuide/llvm-debuginfo-analyzer.rst
M llvm/include/llvm/DebugInfo/LogicalView/Core/LVElement.h
M llvm/include/llvm/DebugInfo/LogicalView/Core/LVLocation.h
M llvm/include/llvm/DebugInfo/LogicalView/Core/LVReader.h
M llvm/include/llvm/DebugInfo/LogicalView/Core/LVSupport.h
M llvm/include/llvm/DebugInfo/LogicalView/LVReaderHandler.h
M llvm/include/llvm/DebugInfo/LogicalView/Readers/LVBinaryReader.h
R llvm/include/llvm/DebugInfo/LogicalView/Readers/LVIRReader.h
M llvm/lib/DebugInfo/LogicalView/CMakeLists.txt
M llvm/lib/DebugInfo/LogicalView/Core/LVElement.cpp
M llvm/lib/DebugInfo/LogicalView/Core/LVLocation.cpp
M llvm/lib/DebugInfo/LogicalView/Core/LVReader.cpp
M llvm/lib/DebugInfo/LogicalView/LVReaderHandler.cpp
R llvm/lib/DebugInfo/LogicalView/Readers/LVIRReader.cpp
M llvm/lib/Transforms/Utils/DebugSSAUpdater.cpp
R llvm/test/tools/llvm-debuginfo-analyzer/IR/01-ir-compare-logical-elements.test
R llvm/test/tools/llvm-debuginfo-analyzer/IR/01-ir-print-basic-details.test
R llvm/test/tools/llvm-debuginfo-analyzer/IR/01-ir-select-logical-elements.test
R llvm/test/tools/llvm-debuginfo-analyzer/IR/02-ir-logical-lines.test
R llvm/test/tools/llvm-debuginfo-analyzer/IR/03-ir-incorrect-lexical-scope-typedef.test
R llvm/test/tools/llvm-debuginfo-analyzer/IR/04-ir-missing-nested-enumerators.test
R llvm/test/tools/llvm-debuginfo-analyzer/IR/05-ir-incorrect-lexical-scope-variable.test
R llvm/test/tools/llvm-debuginfo-analyzer/IR/06-ir-full-logical-view.test
R llvm/test/tools/llvm-debuginfo-analyzer/IR/07-ir-debug-formats.test
R llvm/test/tools/llvm-debuginfo-analyzer/IR/08-ir-multiple-compile-units.test
R llvm/test/tools/llvm-debuginfo-analyzer/IR/Inputs/compile-unit-1.ll
R llvm/test/tools/llvm-debuginfo-analyzer/IR/Inputs/compile-unit-2.ll
R llvm/test/tools/llvm-debuginfo-analyzer/IR/Inputs/compile-unit-3.ll
R llvm/test/tools/llvm-debuginfo-analyzer/IR/Inputs/compile-unit.ll
R llvm/test/tools/llvm-debuginfo-analyzer/IR/Inputs/hello-world-clang.ll
R llvm/test/tools/llvm-debuginfo-analyzer/IR/Inputs/pr-43860-clang.ll
R llvm/test/tools/llvm-debuginfo-analyzer/IR/Inputs/pr-44884-clang.ll
R llvm/test/tools/llvm-debuginfo-analyzer/IR/Inputs/pr-46466-clang.ll
R llvm/test/tools/llvm-debuginfo-analyzer/IR/Inputs/test-clang-intrinsics.ll
R llvm/test/tools/llvm-debuginfo-analyzer/IR/Inputs/test-clang.ll
M llvm/tools/llvm-debuginfo-analyzer/CMakeLists.txt
M llvm/unittests/DebugInfo/LogicalView/CMakeLists.txt
R llvm/unittests/DebugInfo/LogicalView/IRReaderTest.cpp
M llvm/unittests/DebugInfo/LogicalView/Inputs/README.md
R llvm/unittests/DebugInfo/LogicalView/Inputs/test-clang.bc
R llvm/unittests/DebugInfo/LogicalView/Inputs/test-clang.ll
Log Message:
-----------
Revert "[llvm-debuginfo-analyzer] Add support for LLVM IR format. (#135440)" (#199890)
This reverts commit 6bbbf743ae49736ba438e9dbd14a5bd0f4166382.
There are link issues with some buildbots.
Commit: a4b1361f33139e7a0a02edee1a1b012740951e01
https://github.com/llvm/llvm-project/commit/a4b1361f33139e7a0a02edee1a1b012740951e01
Author: Boyao Wang <wangboyao at bytedance.com>
Date: 2026-05-27 (Wed, 27 May 2026)
Changed paths:
M llvm/lib/Target/RISCV/RISCVISelLowering.cpp
M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-shuffle-int-interleave.ll
M llvm/test/CodeGen/RISCV/rvv/vector-interleave-fixed.ll
Log Message:
-----------
[RISCV][CodeGen] Use vzip.vv for e64 interleave shuffles with Zvzip (#199512)
Allow e64 interleave shuffles to use the standard Zvzip `vzip.vv`
lowering when the operand type is legal for Zvzip, just the same as what
XrivosVizip already does.
Commit: f5bda2b94460d8439ed876d6486774d863ae989a
https://github.com/llvm/llvm-project/commit/f5bda2b94460d8439ed876d6486774d863ae989a
Author: NeKon69 <nobodqwe at gmail.com>
Date: 2026-05-27 (Wed, 27 May 2026)
Changed paths:
M clang/test/Sema/warn-lifetime-safety.cpp
Log Message:
-----------
[LifetimeSafety] Change new tests' warnings to new ones (#199887)
cc: @usx95
Commit: 66bafd43ff2beb1d727339361df7ad34ea30e97a
https://github.com/llvm/llvm-project/commit/66bafd43ff2beb1d727339361df7ad34ea30e97a
Author: Mieszko Dziadowiec <mieszko.dziadowiec at intel.com>
Date: 2026-05-27 (Wed, 27 May 2026)
Changed paths:
M mlir/lib/Support/TypeID.cpp
Log Message:
-----------
[MLIR] Improve TypeID anonymous namespace check to handle GCC's __PRETTY_FUNCTION__ format (#199634)
The anonymous namespace detection in
`FallbackTypeIDResolver::registerImplicitTypeID` only checked for
Clang's `(anonymous namespace)` and MSVC's `anonymous-namespace`
formats. GCC produces `{anonymous}` in `__PRETTY_FUNCTION__`, silently
bypassing the check.
Commit: 99238714741163c9187ca8db6ebe73c4cb3a4400
https://github.com/llvm/llvm-project/commit/99238714741163c9187ca8db6ebe73c4cb3a4400
Author: Amir Ayupov <aaupov at fb.com>
Date: 2026-05-27 (Wed, 27 May 2026)
Changed paths:
M bolt/include/bolt/Profile/DataAggregator.h
M bolt/lib/Profile/DataAggregator.cpp
Log Message:
-----------
[BOLT][NFC] Split out DataAggregator::parseInput
Test Plan: NFC
Reviewers:
paschalis-mpeis, maksfb, ayermolo, yavtuk, yozhu, rafaelauler, yota9
Reviewed By: yozhu, rafaelauler
Pull Request: https://github.com/llvm/llvm-project/pull/199321
Commit: b926cf7da0918686f4bcb4e16f3066aca22ae1e6
https://github.com/llvm/llvm-project/commit/b926cf7da0918686f4bcb4e16f3066aca22ae1e6
Author: Davide Grohmann <davide.grohmann at arm.com>
Date: 2026-05-27 (Wed, 27 May 2026)
Changed paths:
M mlir/include/mlir/Conversion/TosaToSPIRVTosa/TosaToSPIRVTosa.h
M mlir/lib/Conversion/TosaToSPIRVTosa/CMakeLists.txt
A mlir/lib/Conversion/TosaToSPIRVTosa/TosaToSPIRVTosaOps.cpp
M mlir/lib/Conversion/TosaToSPIRVTosa/TosaToSPIRVTosaPass.cpp
A mlir/test/Conversion/TosaToSPIRVTosa/tosa-to-spirv.mlir
Log Message:
-----------
[mlir][tosa][spirv] Lower TOSA elementwise ops to SPIR-V TOSA (#199505)
Add conversion patterns for simple TOSA elementwise operations to the
SPIR-V TOSA dialect.
The lowering covers unary and binary elementwise ops with shared pattern
templates, plus min/max handling for NaN propagation mode.
Add focused conversion tests that check the generated SPIR-V TOSA ops.
Signed-off-by: Davide Grohmann <davide.grohmann at arm.com>
Commit: 4c9296d94c95c4b4064a77cd7a61352bfb5130fd
https://github.com/llvm/llvm-project/commit/4c9296d94c95c4b4064a77cd7a61352bfb5130fd
Author: Amir Ayupov <aaupov at fb.com>
Date: 2026-05-27 (Wed, 27 May 2026)
Changed paths:
M bolt/tools/driver/llvm-bolt.cpp
Log Message:
-----------
[BOLT][NFC] Unify perf data setting
Combine opts::PerfData handling into one place per driver (llvm-bolt and
heatmap).
* Allow using perf data directly after DataAggregator/DataReader
unification in #195986.
* Drop redundant perf data checks in perf2boltMode done by setProfile.
Test Plan: NFC
Reviewers:
ritter-x2a, david-salinas, grypp, Pierre-vh, dcaballe, aartbik, adam-smnk, fabianmcg, yota9, JDevlieghere, banach-space, xlauko, nikic, #reviewers-libcxx, rafaelauler, Moxinilian, nicolasvasilache, yozhu, ayermolo, paschalis-mpeis, lamb-j, andykaylor, #reviewers-libc, vangthao95, bcardosolopes, yavtuk, aaronmondal, rupprecht, matthias-springer, keith, maksfb, lanza, Jianhui-Li, charithaintc
Reviewed By: yozhu, rafaelauler
Pull Request: https://github.com/llvm/llvm-project/pull/199322
Commit: 3e0c818e6f80213b737a5e18318de794a3914f71
https://github.com/llvm/llvm-project/commit/3e0c818e6f80213b737a5e18318de794a3914f71
Author: Rana Pratap Reddy <109514914+ranapratap55 at users.noreply.github.com>
Date: 2026-05-27 (Wed, 27 May 2026)
Changed paths:
M clang/lib/CIR/CodeGen/CIRGenBuiltinAMDGPU.cpp
M clang/lib/CIR/CodeGen/CIRGenTypes.cpp
A clang/test/CIR/CodeGenHIP/builtins-amdgcn-image.hip
Log Message:
-----------
[CIR][AMDGPU] Adds lowering for amdgcn image load/store builtins (#198184)
Support for lowering of amdgcn_image_load/store for AMDGPU builtins to
clangIR.
Followed similar lowering from clang->llvmir:
`clang/lib/CodeGen/TargetBuiltins/AMDGPU.cpp`.
Upstreaming clangIR PR: https://github.com/llvm/clangir/pull/2058
Commit: d63f99627b9b08d71595b1879be74a8225873e34
https://github.com/llvm/llvm-project/commit/d63f99627b9b08d71595b1879be74a8225873e34
Author: Amir Ayupov <aaupov at fb.com>
Date: 2026-05-27 (Wed, 27 May 2026)
Changed paths:
A bolt/test/merge-fdata-no-lbr-event-multi.test
A bolt/test/merge-fdata-no-lbr-event.test
M bolt/tools/merge-fdata/merge-fdata.cpp
Log Message:
-----------
[BOLT][merge-fdata] Preserve event names
Test Plan: added merge-fdata-no-lbr-event*.test
Reviewers:
maksfb, paschalis-mpeis, yozhu, yota9, yavtuk, rafaelauler, ayermolo
Reviewed By: rafaelauler
Pull Request: https://github.com/llvm/llvm-project/pull/199323
Commit: 698d44bf9ff61cd8c924bcf406c29c9988d5ea5e
https://github.com/llvm/llvm-project/commit/698d44bf9ff61cd8c924bcf406c29c9988d5ea5e
Author: Hui <hui.xie1990 at gmail.com>
Date: 2026-05-27 (Wed, 27 May 2026)
Changed paths:
M clang/include/clang/Basic/Builtins.td
M clang/include/clang/Basic/DiagnosticSemaKinds.td
M clang/lib/CodeGen/CGBuiltin.cpp
M clang/lib/Sema/SemaChecking.cpp
A clang/test/CodeGen/builtin-clear-padding-codegen.c
A clang/test/CodeGenCXX/builtin-clear-padding-codegen.cpp
A clang/test/Sema/builtin-clear-padding.c
A clang/test/SemaCXX/builtin-clear-padding.cpp
A libcxx/test/libcxx/atomics/builtin_clear_padding.pass.cpp
Log Message:
-----------
[clang] Add builtin to clear padding bytes (prework for P0528R3) (#75371)
Add builtin to clear padding bytes. This is the pre-work to implement
`std::atomic::compare_exchange_[weak/strong]` that ignores padding bits.
PR draft here: https://github.com/llvm/llvm-project/pull/76180
This PR picked up this patch from 3 years ago
https://reviews.llvm.org/D87974
The above patch no longer works as things changed quite a lot. I've made
some changes on top of the above patch:
it handles:
- struct
- builtin types with paddings (like `long double` and types with
`__attribute__((ext_vector_type(N)))`
- _Complex long double
- constant array
- union
- bit field
- types with virtual functions
- types with virtual bases
---------
Co-authored-by: zoecarver <z.zoelec2 at gmail.com>
Commit: c94e5f327f47821e29f21b39ef1dc511c91341d9
https://github.com/llvm/llvm-project/commit/c94e5f327f47821e29f21b39ef1dc511c91341d9
Author: Petar Avramovic <Petar.Avramovic at amd.com>
Date: 2026-05-27 (Wed, 27 May 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPURegBankLegalizeHelper.cpp
Log Message:
-----------
AMDGPU/GlobalISel: Move executeInWaterfallLoop call from lower (#199701)
WFI is an argument to applyMappingSrc and lower,
move executeInWaterfallLoop after these two return.
Also set insert point in executeInWaterfallLoop to
avoid need to set insert point before calling it.
Commit: 99e6632cf619e4654443d2f58e9ffe6015a34314
https://github.com/llvm/llvm-project/commit/99e6632cf619e4654443d2f58e9ffe6015a34314
Author: Vicky Nguyen <vicky.trucviennguyen at gmail.com>
Date: 2026-05-27 (Wed, 27 May 2026)
Changed paths:
M clang/lib/CIR/CodeGen/CIRGenBuiltinAArch64.cpp
M clang/test/CodeGen/AArch64/neon-intrinsics.c
M clang/test/CodeGen/AArch64/neon/intrinsics.c
M clang/test/CodeGen/AArch64/poly64.c
Log Message:
-----------
[CIR][AArch64] Upstream vector-shift-right-and-insert NEON builtins (#196776)
Related to https://github.com/llvm/llvm-project/issues/185382
CIR lowering for vector-shift-right-and-insert intrinsics
(https://arm-software.github.io/acle/neon_intrinsics/advsimd.html#vector-shift-right-and-insert)
Port tests from clang/test/CodeGen/AArch64/neon_intrinsics.c and
clang/test/CodeGen/AArch64/poly64.c to
clang/test/CodeGen/AArch64/neon/intrinsics.c
Commit: 4def779282d9c2a179fcfeb0079928f1bb2ce409
https://github.com/llvm/llvm-project/commit/4def779282d9c2a179fcfeb0079928f1bb2ce409
Author: Nikolas Klauser <nikolasklauser at berlin.de>
Date: 2026-05-27 (Wed, 27 May 2026)
Changed paths:
M libcxx/test/libcxx-03/vendor/apple/disable-availability.sh.cpp
M libcxx/test/libcxx/utilities/meta/is_within_lifetime.verify.cpp
M libcxx/test/selftest/modules/std-and-std.compat-module.sh.cpp
M libcxx/test/selftest/modules/std-module.sh.cpp
M libcxx/test/selftest/modules/std.compat-module.sh.cpp
M libcxx/test/std/modules/std.compat.pass.cpp
M libcxx/test/std/modules/std.pass.cpp
M libcxx/test/std/numerics/c.math/signbit.pass.cpp
M libcxx/test/std/utilities/meta/meta.const.eval/is_within_lifetime.compile.pass.cpp
M libcxx/test/std/utilities/meta/meta.rel/is_virtual_base_of.pass.cpp
M libcxx/test/std/utilities/meta/meta.unary/meta.unary.prop/is_implicit_lifetime.pass.cpp
M libcxx/test/std/utilities/meta/meta.unary/meta.unary.prop/is_implicit_lifetime.verify.cpp
Log Message:
-----------
[libc++][NFC] Remove lit annotations for older AppleClang versions (#199817)
We don't support anything older than apple-clang-21, so we can remove
those annotations.
Commit: 3060f65b84f2b16f2f53367a03d2542a30827ac0
https://github.com/llvm/llvm-project/commit/3060f65b84f2b16f2f53367a03d2542a30827ac0
Author: Shanzhi Chen <chenshanzhi at huawei.com>
Date: 2026-05-27 (Wed, 27 May 2026)
Changed paths:
M llvm/lib/Target/RISCV/RISCVISelLowering.cpp
M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-shuffle-int-interleave.ll
M llvm/test/CodeGen/RISCV/rvv/vector-interleave-fixed.ll
Log Message:
-----------
Revert "[RISCV][CodeGen] Use vzip.vv for e64 interleave shuffles with Zvzip" (#199899)
Reverts llvm/llvm-project#199512
LLVM Buildbot has detected a build error for this PR.
Commit: 0d6aac78ad967cfb0dc69de26cd7e159605fe0de
https://github.com/llvm/llvm-project/commit/0d6aac78ad967cfb0dc69de26cd7e159605fe0de
Author: Nikolas Klauser <nikolasklauser at berlin.de>
Date: 2026-05-27 (Wed, 27 May 2026)
Changed paths:
M libcxx/include/CMakeLists.txt
A libcxx/include/__concepts/referenceable.h
M libcxx/include/__config
M libcxx/include/__iterator/common_iterator.h
M libcxx/include/__iterator/concepts.h
M libcxx/include/__iterator/iter_move.h
M libcxx/include/__iterator/iterator_traits.h
M libcxx/include/__ranges/adjacent_transform_view.h
M libcxx/include/__ranges/transform_view.h
M libcxx/include/__ranges/zip_transform_view.h
M libcxx/include/__type_traits/add_pointer.h
R libcxx/include/__type_traits/is_referenceable.h
M libcxx/include/__type_traits/remove_pointer.h
M libcxx/include/module.modulemap.in
R libcxx/test/libcxx/utilities/meta/is_referenceable.compile.pass.cpp
M libcxx/test/std/utilities/meta/meta.trans/objc_support.compile.pass.mm
Log Message:
-----------
[libc++] Remove workarounds for __{add,remove}_pointer on AppleClang (#199821)
We've updated the supported AppleClang version, so we can drop those
workarounds now.
This also removes `__is_referenceable_v`, since it's no longer used.
Commit: 090df8f0c30699e65ebd29e347b5fbb26559e2f5
https://github.com/llvm/llvm-project/commit/090df8f0c30699e65ebd29e347b5fbb26559e2f5
Author: Vitaly Buka <vitalybuka at google.com>
Date: 2026-05-27 (Wed, 27 May 2026)
Changed paths:
M bolt/test/lit.cfg.py
M libsycl/test/lit.cfg.py
M lldb/test/API/lit.cfg.py
M lldb/test/Shell/lit.cfg.py
M llvm/utils/lit/lit/LitConfig.py
M llvm/utils/lit/lit/TestRunner.py
M llvm/utils/lit/lit/TestingConfig.py
M llvm/utils/lit/lit/formats/googletest.py
M llvm/utils/lit/lit/main.py
M llvm/utils/lit/tests/Inputs/googletest-timeout/lit.cfg
M llvm/utils/lit/tests/Inputs/shtest-timeout/lit.cfg
Log Message:
-----------
Revert "[lit] Move maxIndividualTestTime from global to test suite config" (#199886)
Reverts llvm/llvm-project#198192
To fix https://lab.llvm.org/buildbot/#/builders/195/builds/25357
Commit: 3c16e92da529447a07625cfd0a702172dabed32c
https://github.com/llvm/llvm-project/commit/3c16e92da529447a07625cfd0a702172dabed32c
Author: Shanzhi Chen <chenshanzhi at huawei.com>
Date: 2026-05-27 (Wed, 27 May 2026)
Changed paths:
M llvm/lib/Target/AArch64/AArch64TargetTransformInfo.cpp
M llvm/lib/Target/AArch64/AArch64TargetTransformInfo.h
A llvm/test/Transforms/EarlyCSE/AArch64/intrinsics-1xN.ll
Log Message:
-----------
[AArch64][TTI][EarlyCSE] Add support for ld1xN and st1xN intrinsics (#198765)
Handle ld1x2, ld1x3, ld1x4, st1x2, st1x3, st1x4 in:
- AArch64TTIImpl::getTgtMemIntrinsic
- AArch64TTIImpl::getOrCreateResultFromMemIntrinsic
This enables EarlyCSE to optimize these NEON load/store intrinsics.
To test the changes, a new testcase (intrinsics-1xN.ll) derived from
llvm/test/Transforms/EarlyCSE/AArch64/intrinsics.ll is added.
Commit: 2a574828c62f344859188796fc615ef44dd16327
https://github.com/llvm/llvm-project/commit/2a574828c62f344859188796fc615ef44dd16327
Author: David Green <david.green at arm.com>
Date: 2026-05-27 (Wed, 27 May 2026)
Changed paths:
M llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
Log Message:
-----------
[SelectionDAGBuilder] Replace asserts inside LLVM_DEBUG (#199748)
These assert were inside an LLVM_DEBUG macro, meaning they were very
rarely if ever tested. The second "LowerFormalArguments emitted a value
with the wrong type!" assert would fire in a number of tests so has been
removed. The other was replaced with an all_of assert.
Noticed when looking at #198107 / #199412.
Commit: b63787a1c5d74b437e5cbc6dfc75d6b0cd9998cc
https://github.com/llvm/llvm-project/commit/b63787a1c5d74b437e5cbc6dfc75d6b0cd9998cc
Author: stefankoncarevic <skoncare at amd.com>
Date: 2026-05-27 (Wed, 27 May 2026)
Changed paths:
M mlir/include/mlir/Dialect/AMDGPU/IR/AMDGPUOps.td
M mlir/include/mlir/Dialect/LLVMIR/ROCDLOps.td
M mlir/lib/Conversion/AMDGPUToROCDL/AMDGPUToROCDL.cpp
A mlir/test/Conversion/AMDGPUToROCDL/permlane-var.mlir
M mlir/test/Dialect/LLVMIR/rocdl.mlir
M mlir/test/Target/LLVMIR/rocdl.mlir
Log Message:
-----------
[MLIR][AMDGPU] Add permlane16.var and permlanex16.var intrinsic ops (#199501)
## Summary
Add ROCDL and AMDGPU dialect support for the GFX12+ variable-selector
permlane intrinsics (`v_permlane16_var_b32` / `v_permlanex16_var_b32`).
Unlike the existing fixed-selector `permlane16`/`permlanex16` ops where
source-lane indices come from SGPR immediates, the "var" variants take
per-lane source-lane indices from a VGPR, enabling arbitrary per-lane
intra-row and cross-row permutations within a wave32 subgroup.
### ROCDL dialect
- `ROCDL_Permlane16VarOp` → `llvm.amdgcn.permlane16.var`
- `ROCDL_PermlaneX16VarOp` → `llvm.amdgcn.permlanex16.var`
- Both take `(old, src0, src1, fi, boundControl)` with `fi` and
`boundControl` as immediate i1 attrs
### AMDGPU dialect
- `AMDGPU_PermlaneVarOp` — high-level wrapper supporting arbitrary
int/float/vector types
- `cross` attribute selects between intra-row (`permlane16.var`) and
cross-row (`permlanex16.var`)
- Lowering uses `LLVM::decomposeValue`/`composeValue` to automatically
repack types (f16, i8, vectors, etc.) into i32 register slots
### Tests
- ROCDL roundtrip (parser/printer) tests
- ROCDL → LLVM IR translation tests
- AMDGPU → ROCDL lowering tests covering i32, f32, f16, vector<4xf16>,
cross variants, and fi/bound_ctrl attributes
Commit: c71f9f0aec3ad789b8a6510a98d3882b3e776a40
https://github.com/llvm/llvm-project/commit/c71f9f0aec3ad789b8a6510a98d3882b3e776a40
Author: Benjamin Maxwell <benjamin.maxwell at arm.com>
Date: 2026-05-27 (Wed, 27 May 2026)
Changed paths:
M llvm/lib/Transforms/Vectorize/VPlanVerifier.cpp
M llvm/test/Transforms/LoopVectorize/AArch64/alias-mask.ll
Log Message:
-----------
[LV] Handle loop.dependence.mask in verifyLastActiveLaneRecipe() (#199897)
This verification can be called after the alias-mask has been expanded
so needs to recognize loop.dependence.mask intrinsics.
Commit: e6fe3f4f55ef7219eac36464724f8ff5c0bc4159
https://github.com/llvm/llvm-project/commit/e6fe3f4f55ef7219eac36464724f8ff5c0bc4159
Author: David Spickett <david.spickett at arm.com>
Date: 2026-05-27 (Wed, 27 May 2026)
Changed paths:
M lldb/test/Shell/Commands/command-dil-diagnostics.test
M lldb/test/Shell/Commands/command-module-hook-fire.test
M lldb/test/Shell/Commands/process-attach-dummy.test
M lldb/test/Shell/ObjectFile/MachO/section-overflow-binary.test
M lldb/unittests/DAP/Handler/DisconnectTest.cpp
Log Message:
-----------
[lldb][test] Require Python for a few more tests (#199913)
Commit: 2245dd779f8c9815113ae038df61441466b9774e
https://github.com/llvm/llvm-project/commit/2245dd779f8c9815113ae038df61441466b9774e
Author: Baranov Victor <bar.victor.2002 at gmail.com>
Date: 2026-05-27 (Wed, 27 May 2026)
Changed paths:
M clang-tools-extra/clangd/HeaderSourceSwitch.cpp
M clang-tools-extra/clangd/unittests/HeaderSourceSwitchTests.cpp
Log Message:
-----------
[clangd] Prefer .hpp files over .h with header source switch (#198152)
Previously, The "Switch Between Source/Header" action picked `.h` over
`.hpp` when both files existed next to a `.cpp` file, because `.h` is
listed first in the header-extension list.
This patch reorders `HeaderExtensions` and `SourceExtensions` so the
`C++`-flavored extensions come before `.h` and `.c`. `C++`-flavor of
file is preffered since (at least in my opinion) more people using
`clangd` for `C++` than `C` with `.hpp` ext so switching from `.cpp`
should go into `.hpp`, not `.h`.
This brings an edje case that when swithing from `.c` it will go into
`.hpp` instead of `.h`, but I think this situation is more rare than
having `.cpp` with `.hpp` and `.h` combination since `.h` headers can be
used as `extern "C"` wrapper of cpp library.
Commit: 61341994bb456eaf286154f8f241d0d6723df8ea
https://github.com/llvm/llvm-project/commit/61341994bb456eaf286154f8f241d0d6723df8ea
Author: Alexey Bataev <a.bataev at outlook.com>
Date: 2026-05-27 (Wed, 27 May 2026)
Changed paths:
A llvm/test/Transforms/SLPVectorizer/AArch64/lcssa-phi-inner-loop-scale.ll
Log Message:
-----------
[SLP][NFC]Add some more tests with phi external uses, NFC
Reviewers:
Pull Request: https://github.com/llvm/llvm-project/pull/199919
Commit: 5bfcf13e48c9a168ff431fa655a41d88c725ca85
https://github.com/llvm/llvm-project/commit/5bfcf13e48c9a168ff431fa655a41d88c725ca85
Author: Florian Hahn <flo at fhahn.com>
Date: 2026-05-27 (Wed, 27 May 2026)
Changed paths:
M llvm/lib/Transforms/Vectorize/LoopVectorizationPlanner.h
M llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
M llvm/test/Transforms/LoopVectorize/AArch64/store-costs-sve.ll
Log Message:
-----------
[VPlan] Construct VPlan1 once, share across buildVPlans calls. (#197276)
Extract the VF-independent VPlan1 setup pipeline (header phis,
simplification, early-exit handling, middle check, loop regions, tail
folding, mask introduction) into a new helper tryToBuildVPlan1().
Construct the initial Vlan1 once, and pass to repeated buildVPlans
calls.
Note that this means we need to move collectInLoopReductions up. We not
may construct VPlan1 on code paths where we did not before, because we
failed UserVF validation/selection, but I think that should be fine as
this makes the overall code simpler and the UserVF code paths are for
testing.
PR: https://github.com/llvm/llvm-project/pull/197276
Commit: bdaf3cfda6d670109058d75aa1de82beffb4c954
https://github.com/llvm/llvm-project/commit/bdaf3cfda6d670109058d75aa1de82beffb4c954
Author: Alexey Bataev <a.bataev at outlook.com>
Date: 2026-05-27 (Wed, 27 May 2026)
Changed paths:
M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
M llvm/test/Transforms/SLPVectorizer/X86/alternate-calls-inseltpoison.ll
M llvm/test/Transforms/SLPVectorizer/X86/alternate-calls.ll
M llvm/test/Transforms/SLPVectorizer/X86/arith-fp-inseltpoison.ll
M llvm/test/Transforms/SLPVectorizer/X86/arith-fp.ll
M llvm/test/Transforms/SLPVectorizer/X86/deleted-instructions-clear.ll
M llvm/test/Transforms/SLPVectorizer/X86/revec-non-power-2-to-power-2-large-vect.ll
M llvm/test/Transforms/SLPVectorizer/X86/scalarize-ctlz.ll
M llvm/test/Transforms/SLPVectorizer/X86/select-copyable-cmp-poison.ll
M llvm/test/Transforms/SLPVectorizer/X86/sitofp.ll
M llvm/test/Transforms/SLPVectorizer/X86/vec_list_bias-inseltpoison.ll
M llvm/test/Transforms/SLPVectorizer/X86/vec_list_bias.ll
M llvm/test/Transforms/SLPVectorizer/X86/vec_list_bias_external_insert_shuffled.ll
M llvm/test/Transforms/SLPVectorizer/X86/vectorize-widest-phis.ll
M llvm/test/Transforms/SLPVectorizer/extract-many-users-buildvector.ll
Log Message:
-----------
[SLP] Improve InsertElement scalarization cost modeling
When costing InsertElement tree entries, pass getScalarizationOverhead the
per-lane insert operands via AdjustedVL, set ForPoisonSrc from whether the
base vector is entirely undef, and supply a VectorInstrContext hint derived
from the demanded insert instructions. Move the scalarization cost adjustment
to after InMask is computed so ForPoisonSrc reflects the actual base vector
state.
Reviewers: bababuck, RKSimon, hiraditya
Pull Request: https://github.com/llvm/llvm-project/pull/199514
Commit: ed11d7a52a505ff53523c2c635f114d865273f24
https://github.com/llvm/llvm-project/commit/ed11d7a52a505ff53523c2c635f114d865273f24
Author: Simon Tatham <simon.tatham at arm.com>
Date: 2026-05-27 (Wed, 27 May 2026)
Changed paths:
M compiler-rt/lib/builtins/CMakeLists.txt
A compiler-rt/lib/builtins/arm/extendsfdf2.S
A compiler-rt/lib/builtins/arm/truncdfsf2.S
A compiler-rt/test/builtins/Unit/extendsfdf2new_test.c
A compiler-rt/test/builtins/Unit/truncdfsf2new_test.c
Log Message:
-----------
[compiler-rt][ARM] Optimized FP double <-> single conversion (#179926)
This commit provides assembly versions of the conversions both ways
between double and float.
Commit: 89f024609b13bcbda6ce7b58966fc4fbbca3da70
https://github.com/llvm/llvm-project/commit/89f024609b13bcbda6ce7b58966fc4fbbca3da70
Author: Boyao Wang <wangboyao at bytedance.com>
Date: 2026-05-27 (Wed, 27 May 2026)
Changed paths:
M llvm/lib/Target/RISCV/RISCVISelLowering.cpp
M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-shuffle-int-interleave.ll
M llvm/test/CodeGen/RISCV/rvv/vector-interleave-fixed.ll
Log Message:
-----------
[RISCV][CodeGen] Use vzip.vv for e64 interleave shuffles with Zvzip (#199923)
Allow e64 interleave shuffles to use the standard Zvzip `vzip.vv`
lowering when the operand type is legal for Zvzip, just the same as what
XrivosVizip already does.
Commit: cef3e0f1280d9cf368caa94b895b61d73c588619
https://github.com/llvm/llvm-project/commit/cef3e0f1280d9cf368caa94b895b61d73c588619
Author: Nikolas Klauser <nikolasklauser at berlin.de>
Date: 2026-05-27 (Wed, 27 May 2026)
Changed paths:
M libcxx/test/std/containers/sequences/array/size_and_alignment.compile.pass.cpp
Log Message:
-----------
[libc++][C++03] Fix array/size_and_alignment.compile.pass.cpp (#198822)
Commit: c09041a33a8ac60025538e7ca36b055cadb0d6e1
https://github.com/llvm/llvm-project/commit/c09041a33a8ac60025538e7ca36b055cadb0d6e1
Author: Matt Davis <mattd at nvidia.com>
Date: 2026-05-27 (Wed, 27 May 2026)
Changed paths:
M llvm/docs/LangRef.rst
M llvm/docs/SourceLevelDebugging.rst
M llvm/include/llvm/AsmParser/LLToken.h
M llvm/include/llvm/BinaryFormat/Dwarf.def
M llvm/include/llvm/BinaryFormat/Dwarf.h
M llvm/include/llvm/IR/DebugInfoMetadata.h
M llvm/lib/AsmParser/LLLexer.cpp
M llvm/lib/AsmParser/LLParser.cpp
M llvm/lib/BinaryFormat/Dwarf.cpp
M llvm/lib/Bitcode/Reader/MetadataLoader.cpp
M llvm/lib/Bitcode/Writer/BitcodeWriter.cpp
M llvm/lib/IR/AsmWriter.cpp
M llvm/lib/IR/Verifier.cpp
M llvm/test/Assembler/dicompileunit.ll
A llvm/test/Assembler/invalid-dicompileunit-dialect.ll
A llvm/test/Bitcode/dicompileunit-dialect.ll
M llvm/test/Bitcode/upgrade-DICompileUnit-no-versioned-language.test
M llvm/unittests/IR/MetadataTest.cpp
M llvm/unittests/IR/VerifierTest.cpp
Log Message:
-----------
[DebugInfo] Introduce DW_AT_LLVM_language_dialect (#194898)
This PR introduces an LLVM vendor DWARF attribute on compile units that
carries an optional target-specific language dialect enumerator,
distinct from DW_LANG_*. The intent of this addition is to allow a DWARF
consumer to differentiate the source programming language from the
programming model (e.g., CUDA/SIMT, Tile, etc.). This concept could also
be used to differentiate OpenMP, or other parallel models, from host
language.
As older languages adopt newer programming models, there's no need to
introduce a new language enumerator to encode that representation;
rather, the model can be encoded as a dialect and treated as a
refinement to the source language being compiled. For ease of
extensibility, we've decided to represent the value of this new dialect
attribute as a string.
Code/comments/description were developed with LLM assistance.
---------
Co-authored-by: Cursor <cursoragent at cursor.com>
Commit: ef1b6d232216d3c1c8a5742ed1ef926cdd22be39
https://github.com/llvm/llvm-project/commit/ef1b6d232216d3c1c8a5742ed1ef926cdd22be39
Author: Iñaki V Arrechea <inakiarrechea at google.com>
Date: 2026-05-27 (Wed, 27 May 2026)
Changed paths:
M llvm/include/llvm/Analysis/FunctionPropertiesAnalysis.h
M llvm/include/llvm/IR/FunctionProperties.def
M llvm/lib/Analysis/FunctionPropertiesAnalysis.cpp
M llvm/lib/Passes/PassBuilder.cpp
M llvm/lib/Passes/PassBuilderPipelines.cpp
M llvm/lib/Passes/PassRegistry.def
A llvm/test/Analysis/FunctionPropertiesAnalysis/func-properties-analysis.ll
A llvm/test/Analysis/FunctionPropertiesAnalysis/pipeline.ll
R llvm/test/Analysis/FunctionPropertiesAnalysis/properties-stats.ll
Log Message:
-----------
Add Pre-Optimization FunctionPropertiesStatistics Pass - All Properties (#199293)
Adding a PreOptimization pass for function properties that provides the
statistics preoptimization without leading to timeouts (also thanks to
https://github.com/llvm/llvm-project/pull/198940 and internal changes on the faulty target)
First iteration led to timeouts so it got reverted
https://github.com/llvm/llvm-project/pull/188837
(UPDATE) Through a flame graph proved that changes in
https://github.com/llvm/llvm-project/pull/198940 , mainly the change
inside the loop, was the one responsible for the timeout. Flame graph spent a majority of the time on updateForBB, and it's the only part there could be a blocker. Furthermore, target was fixed internally.
Previous iteration tried to get only some of the statistics, but managed
to prove locally that it's not necessary to distinguish between them
https://github.com/llvm/llvm-project/pull/199073 since the changes mentioned previously were good enough
Commit: 7de3f46cf771180a4b83eacf3d2218f175f23166
https://github.com/llvm/llvm-project/commit/7de3f46cf771180a4b83eacf3d2218f175f23166
Author: Iris Shi <0.0 at owo.li>
Date: 2026-05-27 (Wed, 27 May 2026)
Changed paths:
M llvm/lib/Analysis/InstructionSimplify.cpp
M llvm/test/Transforms/InstSimplify/call.ll
Log Message:
-----------
[InstSimplify] Fold fshl/fshr of complementary shifts to identity (#196887)
Commit: f0ae26c925ef85dd1e6f5217afcdb620641e8db5
https://github.com/llvm/llvm-project/commit/f0ae26c925ef85dd1e6f5217afcdb620641e8db5
Author: Tom Stellard <tstellar at redhat.com>
Date: 2026-05-27 (Wed, 27 May 2026)
Changed paths:
M .github/workflows/issue-release-workflow.yml
Log Message:
-----------
workflows/issue-release-workflow: Fix bug when specifying multiple commits (#199973)
All commits after the first one were being dropped in comments like
/cherry-pick <commit> <commit> ...
This was introduced by: 21df17aaaec2dd9dafd641c5dbfd96446c27921b
Commit: 78f5f7717a2e058c4d685feb3edb7d991efacbc2
https://github.com/llvm/llvm-project/commit/78f5f7717a2e058c4d685feb3edb7d991efacbc2
Author: Amy Kwan <amy.kwan1 at ibm.com>
Date: 2026-05-27 (Wed, 27 May 2026)
Changed paths:
M llvm/lib/Target/PowerPC/PPCISelLowering.cpp
A llvm/test/CodeGen/PowerPC/ppc-i64-to-fp.ll
Log Message:
-----------
[PowerPC] Drop invalid range metadata when lowering i64 load to fp in INT_TO_FP (#198705)
When lowering an i64 load in LowerINT_TO_FP, we were forwarding the
original !range metadata to a new f64 load. This is invalid because the
metadata no longer matches the value type/semantics, and can trigger
assertions when lowering i64 to fp (double or float) conversions.
This patch fixes this by passing a nullptr for the Ranges operand when
calling getLoad() and adds extra test cases to cover signed/unsigned i64
to f32/f64 conversions and to ensure they do not assert when the !range
metadata is present.
The assertion this patch attempts to fix is:
```
Assertion failed: (!MMO->getRanges() || (mdconst::extract<ConstantInt>(MMO->getRanges()->getOperand(0)) ->getBitWidth() == MemVT.getScalarSizeInBits() && MemVT.isInteger())) && "Range metadata and load type must match!"
```
This assert was originally seen when building Rust on AIX.
Commit: 1e1a1ff8a6c6d9bc7f0044c79c6cfe0819246e00
https://github.com/llvm/llvm-project/commit/1e1a1ff8a6c6d9bc7f0044c79c6cfe0819246e00
Author: Tom Stellard <tstellar at redhat.com>
Date: 2026-05-27 (Wed, 27 May 2026)
Changed paths:
M .github/workflows/release-binaries-all.yml
Log Message:
-----------
workflows/release-binaries-all: Validate input and remove template expansion (#199427)
https://github.com/llvm/llvm-project/security/code-scanning/1695
Commit: 81c523c71c92bea4c5548b5f84288acd0f05db42
https://github.com/llvm/llvm-project/commit/81c523c71c92bea4c5548b5f84288acd0f05db42
Author: Balázs Benics <benicsbalazs at gmail.com>
Date: 2026-05-27 (Wed, 27 May 2026)
Changed paths:
M clang/docs/ScalableStaticAnalysisFramework/developer-docs/ForceLinkerHeaders.rst
M clang/docs/ScalableStaticAnalysisFramework/developer-docs/HowToExtend.rst
A clang/include/clang/ScalableStaticAnalysisFramework/BuiltinAnchorSources.def
M clang/include/clang/ScalableStaticAnalysisFramework/Core/Serialization/SerializationFormatRegistry.h
M clang/include/clang/ScalableStaticAnalysisFramework/Core/TUSummary/ExtractorRegistry.h
M clang/include/clang/ScalableStaticAnalysisFramework/Core/WholeProgramAnalysis/AnalysisRegistry.h
M clang/include/clang/ScalableStaticAnalysisFramework/SSAFBuiltinForceLinker.h
M clang/lib/ScalableStaticAnalysisFramework/Analyses/CallGraph/CallGraphExtractor.cpp
M clang/lib/ScalableStaticAnalysisFramework/Analyses/CallGraph/CallGraphJSONFormat.cpp
M clang/lib/ScalableStaticAnalysisFramework/Analyses/PointerFlow/PointerFlowAnalysis.cpp
M clang/lib/ScalableStaticAnalysisFramework/Analyses/PointerFlow/PointerFlowExtractor.cpp
M clang/lib/ScalableStaticAnalysisFramework/Analyses/PointerFlow/PointerFlowFormat.cpp
M clang/lib/ScalableStaticAnalysisFramework/Analyses/UnsafeBufferUsage/UnsafeBufferUsageAnalysis.cpp
M clang/lib/ScalableStaticAnalysisFramework/Analyses/UnsafeBufferUsage/UnsafeBufferUsageExtractor.cpp
M clang/lib/ScalableStaticAnalysisFramework/Analyses/UnsafeBufferUsage/UnsafeBufferUsageFormat.cpp
M clang/lib/ScalableStaticAnalysisFramework/Core/Serialization/JSONFormat/JSONFormatImpl.cpp
M clang/lib/ScalableStaticAnalysisFramework/Core/WholeProgramAnalysis/AnalysisRegistry.cpp
M clang/unittests/ScalableStaticAnalysisFramework/Frontend/TUSummaryExtractorFrontendActionTest.cpp
M clang/unittests/ScalableStaticAnalysisFramework/Registries/FancyAnalysisData.cpp
M clang/unittests/ScalableStaticAnalysisFramework/Registries/MockSerializationFormat.cpp
M clang/unittests/ScalableStaticAnalysisFramework/Registries/MockSummaryExtractor1.cpp
M clang/unittests/ScalableStaticAnalysisFramework/Registries/MockSummaryExtractor2.cpp
R clang/unittests/ScalableStaticAnalysisFramework/SSAFBuiltinTestForceLinker.h
R clang/unittests/ScalableStaticAnalysisFramework/SSAFTestForceLinker.h
M clang/unittests/ScalableStaticAnalysisFramework/TestFixture.cpp
M clang/unittests/ScalableStaticAnalysisFramework/WholeProgramAnalysis/AnalysisDriverTest.cpp
Log Message:
-----------
Reapply "[clang][ssaf][NFC] Rework how the Force linker anchors are defined and used" (#194693)
This reverts commit 582958c4337f539e650096c0257a322315298e1a.
Drop "const" from these anchor variables - like they are in clang-tidy
Turns out, MSVC likely doesn't conform with the C++ standard and makes
`const volatile` global variables have *internal* linkage - while they
should have *external* linkage.
https://eel.is/c++draft/basic.link#3.2
```
(3) The name of an entity that belongs to a namespace scope has internal linkage if it is the name of
(3.1) a variable, variable template, function, or function template that is explicitly declared static; or
(3.2) a non-template variable of non-volatile const-qualified type, unless
(3.2.1) it is declared in the purview of a module interface unit (outside the private-module-fragment, if any) or module partition, or
(3.2.2) it is explicitly declared extern, or
(3.2.3) it is inline, or
(3.2.4) it was previously declared and the prior declaration did not have internal linkage; or
```
Consequently, `const volatile` globals should NOT have *internal*
linkage, because `volatile` variables are exempt by (3.2).
Commit: 58156c21585ab05d7810666070020919342757bf
https://github.com/llvm/llvm-project/commit/58156c21585ab05d7810666070020919342757bf
Author: Sergei Druzhkov <serzhdruzhok at gmail.com>
Date: 2026-05-27 (Wed, 27 May 2026)
Changed paths:
M lldb/tools/lldb-dap/Protocol/ProtocolTypes.cpp
M lldb/unittests/DAP/ProtocolTypesTest.cpp
Log Message:
-----------
[lldb-dap] Fix typo in StepInTarget serialization (#199907)
I fixed small typo and added test for that.
Commit: f56774213bf4da41882a468ef8b9f4b44a52ec1d
https://github.com/llvm/llvm-project/commit/f56774213bf4da41882a468ef8b9f4b44a52ec1d
Author: Matheus Izvekov <mizvekov at gmail.com>
Date: 2026-05-27 (Wed, 27 May 2026)
Changed paths:
M clang/docs/ReleaseNotes.rst
M clang/lib/AST/DeclCXX.cpp
M clang/test/CXX/temp/temp.spec/temp.expl.spec/p7.cpp
M clang/test/Modules/cxx-templates.cpp
Log Message:
-----------
[clang] fix finding class template instantiation pattern for member specializations (#199979)
Stop treating the member which a member specialization specializes as
the pattern of the former.
Split off from https://github.com/llvm/llvm-project/pull/199528
Commit: 7664fc742fa6402e7b79645e87c83c6681ab0ac9
https://github.com/llvm/llvm-project/commit/7664fc742fa6402e7b79645e87c83c6681ab0ac9
Author: Joseph Huber <huberjn at outlook.com>
Date: 2026-05-27 (Wed, 27 May 2026)
Changed paths:
M offload/liboffload/CMakeLists.txt
M offload/libomptarget/CMakeLists.txt
Log Message:
-----------
[Offload] Fix missing SONAME version on offload libraries (#199975)
Commit: f55acff22c4185418e2057a90c22826d3e947f73
https://github.com/llvm/llvm-project/commit/f55acff22c4185418e2057a90c22826d3e947f73
Author: amachronic <amachronic at protonmail.com>
Date: 2026-05-27 (Wed, 27 May 2026)
Changed paths:
M lld/ELF/Writer.cpp
A lld/test/ELF/linkerscript/overlap-nobits.s
Log Message:
-----------
[lld][ELF] Exclude SHT_NOBITS sections from LMA overlap checks (#196423)
In embedded applications it's sometimes useful to load a section at the
same virtual address as the .bss section. For example, one possible use
case is for temporary code/data that is only needed for a short time
when the program is starting up:
REGIONS {
RAM : ORIGIN = 0x100000, LENGTH = 1M
INIT : ORIGIN = 0x200000, LENGTH = 1M
}
.text { *(.text); } > RAM
.bss (NOLOAD) : { *(.bss); } > RAM
.init : AT(LOADADDR(.bss)) { *(.init); } > INIT
The .init section gets placed in the file immediately after the .text
section. At startup the .init section contents are copied to the INIT
region before zeroing .bss. Once the .init section is no longer needed
its memory can be reused, eg. as heap memory.
Currently, lld does not support this and prints an error because the
LMAs of .bss and .init overlap. There are two workarounds:
1. Use --no-check-sections to disable all overlap checks, but this also
disables VMA and file offset checks, which might not be desired.
2. Assign a fake LMA to the .bss section, which doesn't overlap with the
LMA of any other section. However, this is not very intuitive and
affects the generated program headers (because a second Phdr is needed
now that .bss has a unique p_paddr), which might not be acceptable.
These ugly workarounds can be avoided by ignoring LMA overlaps involving
SHT_NOBITS sections. This is also what binutils does, which is why the
example above works under GNU ld.
Commit: 9e279e4757b5dd190b708bfffff2fe16553cc837
https://github.com/llvm/llvm-project/commit/9e279e4757b5dd190b708bfffff2fe16553cc837
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2026-05-27 (Wed, 27 May 2026)
Changed paths:
M llvm/test/CodeGen/X86/vector-shuffle-combining-avx512vbmi2.ll
Log Message:
-----------
[X86] vector-shuffle-combining-avx512vbmi2.ll - add VLX/NOVLX test coverage (#199984)
Commit: d25ec4b8448767d33330b66805f876355b948efe
https://github.com/llvm/llvm-project/commit/d25ec4b8448767d33330b66805f876355b948efe
Author: Brandon Wu <brandon.wu at sifive.com>
Date: 2026-05-27 (Wed, 27 May 2026)
Changed paths:
M clang/test/Driver/print-supported-extensions-riscv.c
M clang/test/Preprocessor/riscv-target-features.c
M llvm/docs/RISCVUsage.rst
M llvm/docs/ReleaseNotes.md
M llvm/lib/Target/RISCV/AsmParser/RISCVAsmParser.cpp
M llvm/lib/Target/RISCV/MCTargetDesc/RISCVInstPrinter.cpp
M llvm/lib/Target/RISCV/RISCVFeatures.td
M llvm/lib/Target/RISCV/RISCVInstrInfo.td
A llvm/lib/Target/RISCV/RISCVInstrInfoZvbdota.td
M llvm/test/CodeGen/RISCV/attributes.ll
M llvm/test/CodeGen/RISCV/features-info.ll
M llvm/test/MC/RISCV/attribute-arch.s
A llvm/test/MC/RISCV/rvv/zvfbdota32f-invalid.s
A llvm/test/MC/RISCV/rvv/zvfbdota32f.s
A llvm/test/MC/RISCV/rvv/zvfqwbdota8f-invalid.s
A llvm/test/MC/RISCV/rvv/zvfqwbdota8f.s
A llvm/test/MC/RISCV/rvv/zvfwbdota16bf-invalid.s
A llvm/test/MC/RISCV/rvv/zvfwbdota16bf.s
A llvm/test/MC/RISCV/rvv/zvqwbdota-invalid.s
A llvm/test/MC/RISCV/rvv/zvqwbdota.s
M llvm/unittests/TargetParser/RISCVISAInfoTest.cpp
Log Message:
-----------
[llvm][RISCV] Support batched dot product extensions MC layer (#196467)
spec:
https://github.com/aswaterman/riscv-misc/blob/main/isa/ldot-bdot/ldot-bdot.adoc#zvdota-and-zvbdota-families-of-dot-product-extensions-version-02
Commit: 9757718b591fed23f5b38afeb5d2849199d1e241
https://github.com/llvm/llvm-project/commit/9757718b591fed23f5b38afeb5d2849199d1e241
Author: forking-google-bazel-bot[bot] <265904573+forking-google-bazel-bot[bot]@users.noreply.github.com>
Date: 2026-05-27 (Wed, 27 May 2026)
Changed paths:
M utils/bazel/llvm-project-overlay/clang/BUILD.bazel
Log Message:
-----------
[Bazel] Fixes 81c523c (#199988)
This fixes 81c523c71c92bea4c5548b5f84288acd0f05db42.
Co-authored-by: Google Bazel Bot <google-bazel-bot at google.com>
Commit: 6170eeb1fa8198f00ec6517f031f1e12b5752b8d
https://github.com/llvm/llvm-project/commit/6170eeb1fa8198f00ec6517f031f1e12b5752b8d
Author: Carlos Seo <carlos.seo at linaro.org>
Date: 2026-05-27 (Wed, 27 May 2026)
Changed paths:
M flang/lib/Lower/OpenMP/ClauseProcessor.cpp
A flang/test/Lower/OpenMP/copyprivate6.f90
Log Message:
-----------
[flang][OpenMP] Fix copyprivate crash with unlimited polymorphic pointer (#199768)
Lowering a copyprivate clause whose list item is an unlimited
polymorphic pointer (class(*), pointer) crashed in TypeInfo::typeScan.
The scan descends through the fir.class box and the fir.ptr, reaching a
`none` element type, which the terminal assertion did not allow.
Fixes #198770
Commit: c0a302d416aaa94b560793477ebecc8e273c8a76
https://github.com/llvm/llvm-project/commit/c0a302d416aaa94b560793477ebecc8e273c8a76
Author: Sameer Sahasrabuddhe <sameer.sahasrabuddhe at amd.com>
Date: 2026-05-27 (Wed, 27 May 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/SIMemoryLegalizer.cpp
Log Message:
-----------
[AMDGPU] Refactor insertRelease into insertWriteback + insertWait (NFC) (#199486)
A release consists of two actions: write-back the current cache, and
wait for "relevant" outstanding operations to complete. With the new
memory model, it is possible to disable the cache write-back using
"non-av". This patch cleanly separates the existing implementation so
that the write-backs can be selectively applied after checking for
non-av semantics.
Part of a stack:
- #199486
- #199621
- #199489
- #199622
Assisted-By: Claude Opus 4.6
---------
Co-authored-by: Pierre van Houtryve <pierre.vanhoutryve at amd.com>
Commit: 6cb00b6c344cb6d61688cc993b15ee531dbfd0e4
https://github.com/llvm/llvm-project/commit/6cb00b6c344cb6d61688cc993b15ee531dbfd0e4
Author: Alexey Karyakin <akaryaki at qti.qualcomm.com>
Date: 2026-05-27 (Wed, 27 May 2026)
Changed paths:
M llvm/lib/Target/Hexagon/HexagonISelLoweringHVX.cpp
M llvm/test/CodeGen/Hexagon/inst_masked_store_bug1.ll
M llvm/test/CodeGen/Hexagon/isel-hvx-pred-bitcast-order.ll
Log Message:
-----------
[Hexagon] Fix up vector predicate before compressing it for bitcast (#199283)
In v64i1 vector Predicate, each i1 is represented by 2 bits of predicate
register. A predicate register needs to be fixed before we compress it.
Signed-off-by: Alexey Karyakin <akaryaki at qti.qualcomm.com>
Co-authored-by: Ikhlas Ajbar <iajbar at quicinc.com>
Commit: dcf50fe35fd0760325c24ac78e43a90e61a95337
https://github.com/llvm/llvm-project/commit/dcf50fe35fd0760325c24ac78e43a90e61a95337
Author: Jonas Paulsson <paulson1 at linux.ibm.com>
Date: 2026-05-27 (Wed, 27 May 2026)
Changed paths:
M llvm/lib/Target/SystemZ/SystemZInstrInfo.cpp
A llvm/test/CodeGen/SystemZ/foldmem-regalloc.mir
M llvm/test/CodeGen/SystemZ/foldmemop-global.mir
Log Message:
-----------
[SystemZ] Don't fold memops after SSA if tied regs don't match. (#197475)
When foldMemoryOperandImpl() is called during register allocation,
folding into a reg/mem opcode mustn't be done if the tied def and use
operands do not end up referencing the same register.
Fixes #197414
Commit: 3e8c217c6829b7acebb0f80bfcd2f807d370000e
https://github.com/llvm/llvm-project/commit/3e8c217c6829b7acebb0f80bfcd2f807d370000e
Author: Wooseok Lee <wolee at amd.com>
Date: 2026-05-27 (Wed, 27 May 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/SIInstrInfo.td
A llvm/test/CodeGen/AMDGPU/fshl-scalar-shift-zero.ll
Log Message:
-----------
[AMDGPU] Fix ShiftAmt32Imm to use unsigned comparison (#199052)
ShiftAmt32Imm used a signed 'Imm < 32' predicate, which incorrectly
matched negative immediates such as -1. The scalar fshr fast path:
def : GCNPat<(UniformTernaryFrag<fshr> i32:$src0, i32:$src1,
(i32 ShiftAmt32Imm:$src2)),
(i32 (EXTRACT_SUBREG (S_LSHR_B64 ..., $src2), sub0))>;
When fshl(scalar, X, Z) is lowered via expandFunnelShift for any
constant Z in [0, 31], the generic code converts it to fshr(..., ~Z) or
fshr(..., -Z), producing a negative shift amount. Because all such
values satisfy Imm < 32 in a signed comparison, ShiftAmt32Imm matched
and the pattern passed the negative immediate directly to S_LSHR_B64
without the S_AND_B32 masking. S_LSHR_B64 then shifted by the wrong
amount, producing an incorrect result.
Fix by changing the predicate to an unsigned comparison so that only
values in [0, 31] match, and negative values fall through to the general
pattern which correctly applies S_AND_B32 before S_LSHR_B64.
Fixes miscompilations of scalar fshl with any constant shift amount at
-O0 on AMDGPU targets, covering both fshl(scalar, const, Z) and
fshl(scalar, scalar, Z) for all Z in [0, 31].
---------
Co-authored-by: Claude Sonnet 4 <noreply at anthropic.com>
Commit: bf8dae18aa318aac5558a38ce34c696c569feacf
https://github.com/llvm/llvm-project/commit/bf8dae18aa318aac5558a38ce34c696c569feacf
Author: Florian Hahn <flo at fhahn.com>
Date: 2026-05-27 (Wed, 27 May 2026)
Changed paths:
M llvm/lib/Transforms/InstCombine/InstCombineCasts.cpp
A llvm/test/Transforms/InstCombine/trunc-abs-intrinsics.ll
Log Message:
-----------
[InstCombine] Narrow llvm.abs through trunc. (#199643)
Update EvaluateInDifferentType / canEvaluateTruncated to narrow abs
intrinsics when the operand has at least OrigBitWidth - BitWidth + 1
sign bits. The transform always emits the narrow abs with
IsIntMinPoison=false, as the narrowed value may be INT_MIN in the narrow
type, while not in the original width.
Alive2 Proof with weaker precondition (top and truncated sign bits must
match): https://alive2.llvm.org/ce/z/AMQRmi
End-to-end C pixel math example: https://clang.godbolt.org/z/Ma8bsTGTY
PR: https://github.com/llvm/llvm-project/pull/199643
Commit: e5ad7f7e700ea839896b5ece924ef13acf573833
https://github.com/llvm/llvm-project/commit/e5ad7f7e700ea839896b5ece924ef13acf573833
Author: Krzysztof Parzyszek <Krzysztof.Parzyszek at amd.com>
Date: 2026-05-27 (Wed, 27 May 2026)
Changed paths:
M flang/lib/Semantics/resolve-directives.cpp
M flang/test/Semantics/OpenMP/declare-simd-uniform.f90
Log Message:
-----------
[flang][OpenMP] Remove ompFlagsRequireMark from symbol resolution (#198591)
The `ompFlagsRequireMark` set was there to make sure that we put the
flags from it on symbols even when no new symbols needed to be created.
Instead of doing that, we can just put the flag on the symbol every
time. There is no harm in having these flags, it's just extra
information.
Commit: 06a6cbb188468563f5e89932a4ec8386bb977bd9
https://github.com/llvm/llvm-project/commit/06a6cbb188468563f5e89932a4ec8386bb977bd9
Author: Stefan Schuermans <schuermans at roofline.ai>
Date: 2026-05-27 (Wed, 27 May 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/SIFrameLowering.cpp
Log Message:
-----------
[AMDGPU] Fix SuperReg to MCRegister conversion (#199993)
This is a fix for "[AMDGPU] Implement CFI for non-kernel functions
(#183153)" f78a233ac89dc0f9f0f26dfe051874013ae6e242 to use
"SuperReg.asMCReg()" instead of "MCRegister(SuperReg)", which leads to
"ambiguous call" when using the MSVC compiler.
Commit: b65a71d4942abcdf17510e1cf5c4e9273d60aa72
https://github.com/llvm/llvm-project/commit/b65a71d4942abcdf17510e1cf5c4e9273d60aa72
Author: Alexey Samsonov <vonosmas at gmail.com>
Date: 2026-05-27 (Wed, 27 May 2026)
Changed paths:
M libc/test/src/__support/threads/linux/raw_mutex_test.cpp
M utils/bazel/llvm-project-overlay/libc/BUILD.bazel
A utils/bazel/llvm-project-overlay/libc/test/src/__support/threads/BUILD.bazel
Log Message:
-----------
[libc][bazel] Add rules for __support/threads tests. (#199871)
* Add Bazel BUILD rules for three `__support/threads` unit tests.
* Fix/expand BUILD rules for the support libraries they depend on
(clock_gettime and vdso) that were previously incorrectly missing `.cpp`
files with implementations.
* Minor fix to use `internal::exit` in `raw_mutex_test` to avoid adding
a dependency on `exit` entrypoint, which doesn't yet exist in Bazel.
Assisted by: Gemini
Commit: dd2ce3d8b558daefbbc6eb2f2026e6055a291f06
https://github.com/llvm/llvm-project/commit/dd2ce3d8b558daefbbc6eb2f2026e6055a291f06
Author: Joseph Huber <huberjn at outlook.com>
Date: 2026-05-27 (Wed, 27 May 2026)
Changed paths:
M llvm/cmake/modules/AddLLVM.cmake
Log Message:
-----------
[LLVM] Add per-target runtime directory to rpath (#199755)
Summary:
This simply adds the LLVM_DEFAULT_TARGET_TRIPLE to the LLVM build's
rpath if present. This keeps things hermetic for the library (offload)
that depends on it.
The reason this is required is because `llvm-gpu-loader` calls
`DynamicLibrary` on the Offload runtime. However, in a shared library
build the actual call is in libLLVMSupport.so, which does not have this
RPath, so `dlopen` delegates to that which does not know how to find it.
The only options to fix this are to use `dlopen` directly in the loader,
or add the rpath to the LLVM binaries.
I think this makes sense for LLVM, because the target-specific directory
can contain LLVM related libraries.
Commit: 97b9c24cb9f2e46ce917bf2e5aea5d4511ae8298
https://github.com/llvm/llvm-project/commit/97b9c24cb9f2e46ce917bf2e5aea5d4511ae8298
Author: Paul Kirth <paulkirth at google.com>
Date: 2026-05-27 (Wed, 27 May 2026)
Changed paths:
M libcxx/include/__functional/function.h
A libcxx/test/libcxx/utilities/function.objects/block.func.compile.pass.cpp
Log Message:
-----------
Add missing annotations for Apple platforms (#198864)
These seemed to be missed in #193045.
Commit: c3fc506e29badb9ed4729432b25c62eb04ced1ca
https://github.com/llvm/llvm-project/commit/c3fc506e29badb9ed4729432b25c62eb04ced1ca
Author: Adel Ejjeh <adel.ejjeh at amd.com>
Date: 2026-05-27 (Wed, 27 May 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.cpp
Log Message:
-----------
[AMDGPU] Remove explicit PartialThreshold setting in loop unrolling (#198901)
Remove UP.PartialThreshold = UP.Threshold / 4 from AMDGPU TTI, restoring
the default PartialThreshold of 150.
This was introduced in #194924 to limit code-size growth from runtime
unrolling, but PartialThreshold also gates compile-time partial
unrolling of constant-trip-count loops. This change will make the
PartialThreshold back to the default value for both compile-time partial
unrolling and runtime partial unrolling.
Benchmarked across CK, llama.cpp, and xpu-perf — no performance impact
from restoring the default.
Fixes #196372, replaces #196818.
Assisted-by: Claude Code
Commit: a3acd8083c3b5a98e8c5bb0d7f7ac4a959c58307
https://github.com/llvm/llvm-project/commit/a3acd8083c3b5a98e8c5bb0d7f7ac4a959c58307
Author: Nishant Patel <nishant.b.patel at intel.com>
Date: 2026-05-27 (Wed, 27 May 2026)
Changed paths:
M mlir/include/mlir/Dialect/XeGPU/Transforms/XeGPULayoutImpl.h
M mlir/lib/Dialect/XeGPU/Transforms/XeGPULayoutImpl.cpp
M mlir/lib/Dialect/XeGPU/Transforms/XeGPUPropagateLayout.cpp
M mlir/test/Dialect/XeGPU/propagate-layout-subgroup.mlir
M mlir/test/Dialect/XeGPU/propagate-layout.mlir
Log Message:
-----------
[MLIR][XeGPU] Propagate layout onto loop-carried iter_arg entry edges (#198862)
as per title
Commit: 358f5e770361c0512b7f6e4027a3a674bb1fa654
https://github.com/llvm/llvm-project/commit/358f5e770361c0512b7f6e4027a3a674bb1fa654
Author: Craig Topper <craig.topper at sifive.com>
Date: 2026-05-27 (Wed, 27 May 2026)
Changed paths:
M llvm/lib/Target/RISCV/RISCVInstrInfoP.td
Log Message:
-----------
[RISCV][P-ext] Add missing let Inst{31} = 0b0 to RVPPairShift_rr. (#199885)
This bit was accidentally left unset. I think this means we might have
treated this bit as a don't care for the disassembler could disassemble
some invalid encodings to these instructions. I didn't check the opcode
map closely enough to confirm this.
Commit: 38555dbd81ad2dcfc452d29151299d829095258b
https://github.com/llvm/llvm-project/commit/38555dbd81ad2dcfc452d29151299d829095258b
Author: Craig Topper <craig.topper at sifive.com>
Date: 2026-05-27 (Wed, 27 May 2026)
Changed paths:
M llvm/lib/Target/RISCV/RISCVISelDAGToDAG.cpp
M llvm/lib/Target/RISCV/RISCVInstrInfoP.td
Log Message:
-----------
[RISCV][P-ext] Replace some custom isel code with tablegen patterns. NFC (#199881)
Commit: 95f08b1b743d2d5b694c71b00becd3acd0c7926a
https://github.com/llvm/llvm-project/commit/95f08b1b743d2d5b694c71b00becd3acd0c7926a
Author: Craig Topper <craig.topper at sifive.com>
Date: 2026-05-27 (Wed, 27 May 2026)
Changed paths:
M llvm/lib/Target/RISCV/RISCVInstrInfoP.td
Log Message:
-----------
[RISCV][P-ext] Make the direction argument for RVPPairShift* classes required. NFC (#199799)
It's part of the encoding. I don't think we should have a preference for
one of the bit values being the default.
Commit: 3768e13298071781807b5d1371ebd8052d948b89
https://github.com/llvm/llvm-project/commit/3768e13298071781807b5d1371ebd8052d948b89
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2026-05-27 (Wed, 27 May 2026)
Changed paths:
M llvm/test/CodeGen/X86/vector-shuffle-combining-avx512vbmi2.ll
Log Message:
-----------
[X86] Add test coverage for #145276 (#200004)
Commit: ea3cb0fef9703c41a321a06a666636d871a670f6
https://github.com/llvm/llvm-project/commit/ea3cb0fef9703c41a321a06a666636d871a670f6
Author: Scott Linder <scott.linder at amd.com>
Date: 2026-05-27 (Wed, 27 May 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/SIFrameLowering.cpp
Log Message:
-----------
Fix for noassert buildbot break in #183153 (#199781)
Change-Id: I285adf09ac2df239d0ab05459f7388b6970247ad
Commit: db9b595ae3b30d67bd4068f80c651f97eb4dea2d
https://github.com/llvm/llvm-project/commit/db9b595ae3b30d67bd4068f80c651f97eb4dea2d
Author: Feng Zou <feng.zou at intel.com>
Date: 2026-05-27 (Wed, 27 May 2026)
Changed paths:
M llvm/include/llvm/DebugInfo/CodeView/CodeViewRegisters.def
M llvm/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.cpp
A llvm/test/DebugInfo/COFF/apx-egpr.ll
Log Message:
-----------
[X86][APX] Add CodeView register IDs and mapping for APX EGPR (#199586)
Resolves #187924
Refer to
https://devblogs.microsoft.com/cppblog/msvc-version-1451-available/
Commit: 2713d9441cfd5fc9e4ad9cf5520add6ae6cce6c4
https://github.com/llvm/llvm-project/commit/2713d9441cfd5fc9e4ad9cf5520add6ae6cce6c4
Author: vporpo <vasileios.porpodas at amd.com>
Date: 2026-05-27 (Wed, 27 May 2026)
Changed paths:
M llvm/docs/SandboxIR.md
M llvm/include/llvm/SandboxIR/Context.h
M llvm/include/llvm/SandboxIR/Tracker.h
M llvm/lib/SandboxIR/Tracker.cpp
M llvm/unittests/SandboxIR/TrackerTest.cpp
Log Message:
-----------
Reapply "[SandboxIR][Tracker] Implement accept(/*AcceptAll*/) and revert(/*RevertAll*/)" (#199776) (#199805)
This reverts commit a7aceff0b1e552cbc2306e575e9ac649853fda8e.
Commit: e1e52c9ccef39f4ccc55e1e89c5d2957ec186a47
https://github.com/llvm/llvm-project/commit/e1e52c9ccef39f4ccc55e1e89c5d2957ec186a47
Author: Daniel Paoliello <danpao at microsoft.com>
Date: 2026-05-27 (Wed, 27 May 2026)
Changed paths:
M llvm/include/llvm/Support/Win64EH.h
M llvm/lib/Support/CMakeLists.txt
A llvm/lib/Support/Win64EH.cpp
A llvm/test/tools/llvm-objdump/COFF/win64-unwindv3-all-wods.yaml
A llvm/test/tools/llvm-objdump/COFF/win64-unwindv3-apx.yaml
A llvm/test/tools/llvm-objdump/COFF/win64-unwindv3-bad-inherit.yaml
A llvm/test/tools/llvm-objdump/COFF/win64-unwindv3-bad-opcode.yaml
A llvm/test/tools/llvm-objdump/COFF/win64-unwindv3-bad-push-consecutive-2.yaml
A llvm/test/tools/llvm-objdump/COFF/win64-unwindv3-basic.yaml
A llvm/test/tools/llvm-objdump/COFF/win64-unwindv3-chain.yaml
A llvm/test/tools/llvm-objdump/COFF/win64-unwindv3-distinct-epilog.yaml
A llvm/test/tools/llvm-objdump/COFF/win64-unwindv3-epilog-flags.yaml
A llvm/test/tools/llvm-objdump/COFF/win64-unwindv3-epilog-large.yaml
A llvm/test/tools/llvm-objdump/COFF/win64-unwindv3-epilog.yaml
A llvm/test/tools/llvm-objdump/COFF/win64-unwindv3-handler-odd-payload.yaml
A llvm/test/tools/llvm-objdump/COFF/win64-unwindv3-handler.yaml
A llvm/test/tools/llvm-objdump/COFF/win64-unwindv3-large.yaml
A llvm/test/tools/llvm-objdump/COFF/win64-unwindv3-multi-epilog.yaml
A llvm/test/tools/llvm-objdump/COFF/win64-unwindv3-neg-offset.yaml
A llvm/test/tools/llvm-objdump/COFF/win64-unwindv3-pool-overflow.yaml
A llvm/test/tools/llvm-objdump/COFF/win64-unwindv3-reloc.yaml
A llvm/test/tools/llvm-readobj/COFF/unwind-x86_64-v3-all-wods.yaml
A llvm/test/tools/llvm-readobj/COFF/unwind-x86_64-v3-apx.yaml
A llvm/test/tools/llvm-readobj/COFF/unwind-x86_64-v3-bad-inherit.yaml
A llvm/test/tools/llvm-readobj/COFF/unwind-x86_64-v3-bad-opcode.yaml
A llvm/test/tools/llvm-readobj/COFF/unwind-x86_64-v3-basic.yaml
A llvm/test/tools/llvm-readobj/COFF/unwind-x86_64-v3-chain.yaml
A llvm/test/tools/llvm-readobj/COFF/unwind-x86_64-v3-distinct-epilog.yaml
A llvm/test/tools/llvm-readobj/COFF/unwind-x86_64-v3-epilog-flags.yaml
A llvm/test/tools/llvm-readobj/COFF/unwind-x86_64-v3-epilog.yaml
A llvm/test/tools/llvm-readobj/COFF/unwind-x86_64-v3-handler.yaml
A llvm/test/tools/llvm-readobj/COFF/unwind-x86_64-v3-multi-epilog.yaml
A llvm/test/tools/llvm-readobj/COFF/unwind-x86_64-v3-neg-offset.yaml
A llvm/test/tools/llvm-readobj/COFF/unwind-x86_64-v3-pool-overflow.yaml
A llvm/test/tools/llvm-readobj/COFF/unwind-x86_64-v3-reloc.yaml
M llvm/tools/llvm-objdump/COFFDump.cpp
M llvm/tools/llvm-objdump/ObjdumpOpts.td
M llvm/tools/llvm-objdump/llvm-objdump.cpp
M llvm/tools/llvm-objdump/llvm-objdump.h
M llvm/tools/llvm-readobj/Opts.td
M llvm/tools/llvm-readobj/Win64EHDumper.cpp
M llvm/tools/llvm-readobj/Win64EHDumper.h
M llvm/tools/llvm-readobj/llvm-readobj.cpp
M llvm/tools/llvm-readobj/llvm-readobj.h
Log Message:
-----------
[win][x64] Updated `llvm-objdump` and `llvm-readobj` to be able to dump Windows x64 Unwind v3 information. (#199120)
Public docs:
<https://learn.microsoft.com/en-us/cpp/build/x64-unwind-information-v3?view=msvc-170>
The change adds Windows x64 unwind v3 info decoding and printing support
in LLVM, including new data structures, enums, and decoding functions to
handle the different WOD opcodes and epilog descriptors. It also updates
the dumping utilities (llvm-readobj and llvm-objdump) to correctly
interpret v3 unwind info.
Commit: 860e4b803e91595063a7b438f91e45792cf010cf
https://github.com/llvm/llvm-project/commit/860e4b803e91595063a7b438f91e45792cf010cf
Author: Justin Lebar <justin.lebar at gmail.com>
Date: 2026-05-27 (Wed, 27 May 2026)
Changed paths:
M llvm/lib/Target/X86/X86AvoidStoreForwardingBlocks.cpp
M llvm/test/CodeGen/X86/avoid-sfb.ll
Log Message:
-----------
[X86][AvoidStoreForwardingBlocks] Skip volatile/atomic accesses. (#199698)
The pass splits an XMM/YMM load+store pair into smaller copies when a
preceding narrower store would block store-to-load forwarding into the
load, but it didn't check the MachineMemOperand's isVolatile/isAtomic
bits.
This bug was found by a large run of Opus 4.7 looking for bugs in LLVM.
Commit: 7b993d207fee1e2160cbd20469f3cce73f27fce9
https://github.com/llvm/llvm-project/commit/7b993d207fee1e2160cbd20469f3cce73f27fce9
Author: Justin Lebar <justin.lebar at gmail.com>
Date: 2026-05-27 (Wed, 27 May 2026)
Changed paths:
M llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp
M llvm/test/Transforms/InstCombine/ldexp.ll
Log Message:
-----------
[InstCombine] Use sadd.sat for chained ldexp fold (#199274)
ldexp(ldexp(x, a), b) -> ldexp(x, a + b) didn't consider the fact that
`a + b` may overflow! Use a saturating add instead.
This bug was found by a large run of Opus 4.7 looking for bugs in LLVM.
Commit: d98fd416e0ee358d0748b743f29d68f114dcfebc
https://github.com/llvm/llvm-project/commit/d98fd416e0ee358d0748b743f29d68f114dcfebc
Author: Justin Lebar <justin.lebar at gmail.com>
Date: 2026-05-27 (Wed, 27 May 2026)
Changed paths:
M llvm/lib/CodeGen/ExpandIRInsts.cpp
A llvm/test/Transforms/ExpandIRInsts/X86/expand-large-fp-convert-fpto-sat-vector.ll
Log Message:
-----------
[ExpandIRInsts] Support llvm.fpto{u,s}i.sat (#199174)
Previously, running ExpandIRInsts on a program which needs to expand a
vector fptoui.sat would hit llvm_unreachable, because the `scalarize`
function didn't handle this intrinsic.
This bug was found by a large run of Opus 4.7 looking for bugs in LLVM.
Commit: 00b13536e3dad6c0d5e3bd54f49791c2a06707cc
https://github.com/llvm/llvm-project/commit/00b13536e3dad6c0d5e3bd54f49791c2a06707cc
Author: Sunil Shrestha <sunil.shrestha at hpe.com>
Date: 2026-05-27 (Wed, 27 May 2026)
Changed paths:
M flang/include/flang/Lower/ConvertVariable.h
M flang/include/flang/Lower/Support/PrivateReductionUtils.h
M flang/lib/Lower/ConvertVariable.cpp
M flang/lib/Lower/OpenMP/ClauseProcessor.cpp
M flang/lib/Lower/OpenMP/OpenMP.cpp
M flang/lib/Lower/Support/PrivateReductionUtils.cpp
M flang/test/Lower/OpenMP/Todo/omp-declare-reduction-advanced-types.f90
M flang/test/Lower/OpenMP/Todo/reduction-character-dynamic-length.f90
A flang/test/Lower/OpenMP/declare-reduction-no-initializer-derived.f90
A flang/test/Lower/OpenMP/declare-reduction-no-initializer-intrinsic.f90
A flang/test/Lower/OpenMP/declare-reduction-no-initializer-target-derived.f90
A flang/test/Lower/OpenMP/declare-reduction-no-initializer-unsupported.f90
A flang/test/Lower/OpenMP/declare-reduction-target-intrinsic.f90
Log Message:
-----------
[Flang][OpenMP] Support declare reduction without initializer (#196211)
For declare reduction without an explicit initializer clause, the init
callback now handles initialization inline rather than relying on the
_FortranAInitialize runtime call, which is available on the device
runtime but has known issues on GPU targets.
The initialization logic first checks whether an initializer clause is
present. If one is provided, it is used directly. Otherwise, for derived
types, the code checks whether the type has default component
initialization. If it does, each component is initialized inline:
components with explicit default values use those values, components
that are themselves derived types with defaults are recursively
initialized, and components without any default are zero-initialized.
Derived types with allocatable components that require runtime
initialization are guarded by a TODO.
Assisted by: Claude Opus 4.6
Commit: a1cba5a2f8e973fbdf20e20079fab0ce924b7ece
https://github.com/llvm/llvm-project/commit/a1cba5a2f8e973fbdf20e20079fab0ce924b7ece
Author: Krzysztof Parzyszek <Krzysztof.Parzyszek at amd.com>
Date: 2026-05-27 (Wed, 27 May 2026)
Changed paths:
M flang/include/flang/Semantics/openmp-utils.h
M flang/lib/Semantics/check-omp-loop.cpp
M flang/lib/Semantics/check-omp-structure.cpp
M flang/lib/Semantics/openmp-utils.cpp
Log Message:
-----------
[flang][OpenMP] Optionally get final symbol in Get(Argument|Object)Sy… (#196816)
…mbol
Originally these functions returned the ultimate symbol for the one
obtained from the argument or object. However, this may be somewhat
unintuitive/unexpected, so instead return the original symbol, and add a
flag to optionally return the ultimate one.
Commit: 077210a3b1a50ef7145d405b08d676e8879d0d51
https://github.com/llvm/llvm-project/commit/077210a3b1a50ef7145d405b08d676e8879d0d51
Author: Arthur Eubanks <aeubanks at google.com>
Date: 2026-05-27 (Wed, 27 May 2026)
Changed paths:
M llvm/utils/gn/secondary/compiler-rt/lib/builtins/BUILD.gn
M llvm/utils/gn/secondary/libcxx/include/BUILD.gn
M llvm/utils/gn/secondary/llvm/lib/Transforms/Utils/BUILD.gn
Log Message:
-----------
[gn build] Port commits (#200011)
0d6aac78ad96
7938535a54b5
ed11d7a52a50
Commit: 7a1a5421b1a1c32944906c3e7157b809528859e3
https://github.com/llvm/llvm-project/commit/7a1a5421b1a1c32944906c3e7157b809528859e3
Author: Tom Stellard <tstellar at redhat.com>
Date: 2026-05-27 (Wed, 27 May 2026)
Changed paths:
M .github/workflows/release-documentation.yml
Log Message:
-----------
workflows/release-documentation: Validate input and remove template expansion (#199760)
https://github.com/llvm/llvm-project/security/code-scanning/1715
https://github.com/llvm/llvm-project/security/code-scanning/1716
https://github.com/llvm/llvm-project/security/code-scanning/1717
https://github.com/llvm/llvm-project/security/code-scanning/1718
https://github.com/llvm/llvm-project/security/code-scanning/1719
https://github.com/llvm/llvm-project/security/code-scanning/1720
https://github.com/llvm/llvm-project/security/code-scanning/1721
https://github.com/llvm/llvm-project/security/code-scanning/1722
Commit: f6af6cedfd2fa731bf323608116d373379838b9a
https://github.com/llvm/llvm-project/commit/f6af6cedfd2fa731bf323608116d373379838b9a
Author: Tom Stellard <tstellar at redhat.com>
Date: 2026-05-27 (Wed, 27 May 2026)
Changed paths:
M .github/workflows/libclang-abi-tests.yml
Log Message:
-----------
workflows/libclang-abi-tests: Remove template expansion (#199792)
https://github.com/llvm/llvm-project/security/code-scanning/1627
https://github.com/llvm/llvm-project/security/code-scanning/1628
https://github.com/llvm/llvm-project/security/code-scanning/1629
https://github.com/llvm/llvm-project/security/code-scanning/1630
https://github.com/llvm/llvm-project/security/code-scanning/1631
https://github.com/llvm/llvm-project/security/code-scanning/1632
https://github.com/llvm/llvm-project/security/code-scanning/1633
https://github.com/llvm/llvm-project/security/code-scanning/1634
https://github.com/llvm/llvm-project/security/code-scanning/1635
https://github.com/llvm/llvm-project/security/code-scanning/1636
https://github.com/llvm/llvm-project/security/code-scanning/1637
https://github.com/llvm/llvm-project/security/code-scanning/1638
Commit: 82755077b73980eb56efb44246190135d2feb935
https://github.com/llvm/llvm-project/commit/82755077b73980eb56efb44246190135d2feb935
Author: Aiden Grossman <aidengrossman at google.com>
Date: 2026-05-27 (Wed, 27 May 2026)
Changed paths:
M llvm/utils/profcheck-xfail.txt
Log Message:
-----------
[ProfCheck] Fix #199174 (#200013)
The patch added another large fp conversion test, which we currently are
missing some profile annotations for, so add it to the xfail list for
now.
Commit: ed918c1496d56f5124c20a2f4f450ba439aeb68e
https://github.com/llvm/llvm-project/commit/ed918c1496d56f5124c20a2f4f450ba439aeb68e
Author: Justin Lebar <justin.lebar at gmail.com>
Date: 2026-05-27 (Wed, 27 May 2026)
Changed paths:
M llvm/lib/CodeGen/AtomicExpandPass.cpp
A llvm/test/Transforms/AtomicExpand/RISCV/atomicrmw-widen-volatile.ll
Log Message:
-----------
[AtomicExpand] Preserve volatile in widenPartwordAtomicRMW. (#199722)
widenPartwordAtomicRMW widens a sub-word atomicrmw to the target's
minimum cmpxchg size by calling CreateAtomicRMW, which has no
IsVolatile parameter, and didn't copy isVolatile() from the original.
Every other expansion path in this file already does. Affects targets
whose MinCmpXchgSizeInBits exceeds the value width (RISC-V without
Zabha, LoongArch base, SPARC, AMDGPU, etc.).
This bug was found by a large run of Opus 4.7 looking for bugs in LLVM.
Commit: 5b38edd3723a790b02d0d43b6f499c99b313a946
https://github.com/llvm/llvm-project/commit/5b38edd3723a790b02d0d43b6f499c99b313a946
Author: Tom Stellard <tstellar at redhat.com>
Date: 2026-05-27 (Wed, 27 May 2026)
Changed paths:
M .github/workflows/pr-code-lint.yml
Log Message:
-----------
workflows/pr-code-lint: Pin container image (#199767)
https://github.com/llvm/llvm-project/security/code-scanning/1678
Commit: a8e1f5c475abb48ade1059bc42591a84da56d25b
https://github.com/llvm/llvm-project/commit/a8e1f5c475abb48ade1059bc42591a84da56d25b
Author: Valentin Clement (バレンタイン クレメン) <clementval at gmail.com>
Date: 2026-05-27 (Wed, 27 May 2026)
Changed paths:
M flang-rt/cmake/modules/AddFlangRTOffload.cmake
M flang-rt/include/flang-rt/runtime/io-stmt.h
M flang-rt/lib/runtime/CMakeLists.txt
M flang-rt/lib/runtime/io-api-common.h
A flang-rt/lib/runtime/io-stmt-minimal.cpp
Log Message:
-----------
[flang-rt][cuda] Use a thinner I/O in CUDA build (#199769)
Reduce the footprint of IO in the CUDA build. This helps including IO
when using non relocatable device code mode.
Commit: f16c0ecf2a0bc2fa9253bb73d54a8d791037d741
https://github.com/llvm/llvm-project/commit/f16c0ecf2a0bc2fa9253bb73d54a8d791037d741
Author: Tom Stellard <tstellar at redhat.com>
Date: 2026-05-27 (Wed, 27 May 2026)
Changed paths:
M .github/workflows/issue-release-workflow.yml
Log Message:
-----------
workflows/issue-release-workflow: Remove template expansion of login names (#199772)
https://github.com/llvm/llvm-project/security/code-scanning/1609
https://github.com/llvm/llvm-project/security/code-scanning/1610
Commit: 5dc633bc765a6c5a4049b827f8fc0d43d1eff51a
https://github.com/llvm/llvm-project/commit/5dc633bc765a6c5a4049b827f8fc0d43d1eff51a
Author: David Green <david.green at arm.com>
Date: 2026-05-27 (Wed, 27 May 2026)
Changed paths:
M llvm/lib/Target/AArch64/GISel/AArch64LegalizerInfo.cpp
M llvm/test/CodeGen/AArch64/bf16-instructions.ll
M llvm/test/CodeGen/AArch64/bf16-v4-instructions.ll
M llvm/test/CodeGen/AArch64/bf16-v8-instructions.ll
M llvm/test/CodeGen/AArch64/fabs.ll
M llvm/test/CodeGen/AArch64/fneg.ll
Log Message:
-----------
[AArch64][GlobalISel] Add BF16 fabs and fneg (#198655)
These should be very simple as they are just legal or expanded based on
whether fullfp16 is available, as the FP16 FNEG and FABS instructions can
be used equally for BF16.
Commit: f8bf8af12c810434ca1d947aeb9bcae99bbbf135
https://github.com/llvm/llvm-project/commit/f8bf8af12c810434ca1d947aeb9bcae99bbbf135
Author: Brendan Dahl <brendan.dahl at gmail.com>
Date: 2026-05-27 (Wed, 27 May 2026)
Changed paths:
M clang/lib/Headers/wasm_simd128.h
M cross-project-tests/intrinsic-header-tests/wasm_simd128.c
Log Message:
-----------
[WebAssembly] Add f16x8.demote_f32x4_zero to wasm_simd128.h. (#199795)
Missing header intrinsic.
Commit: d6279249920562e28cdd1fe4058451fb1d909241
https://github.com/llvm/llvm-project/commit/d6279249920562e28cdd1fe4058451fb1d909241
Author: fzi-haxel <61409998+fzi-haxel at users.noreply.github.com>
Date: 2026-05-27 (Wed, 27 May 2026)
Changed paths:
M mlir/lib/Analysis/SliceAnalysis.cpp
M mlir/test/Dialect/Affine/slicing-utils.mlir
Log Message:
-----------
[mlir][SliceAnalysis] Fix visited set to avoid infinite recursion (#200008)
Fixes #139694, which introduced use-def cycle detection during slice
analysis, but some cycles were still not detected, potentially leading
to infinite recursion.
This PR fixes the handling of the visited set, which tracks the current
DFS path during recursion. Previously, the set could fail to detect
double cycles because entries were erased even when no recursive call
was made. The insert/erase operations are now only performed when
recursion actually occurs, ensuring that cycle detection correctly
reflects the active DFS path.
Commit: 3a8b5e3bb1ae8f1d7f579b6ace900f1af596d48f
https://github.com/llvm/llvm-project/commit/3a8b5e3bb1ae8f1d7f579b6ace900f1af596d48f
Author: Ebuka Ezike <e_ezike at apple.com>
Date: 2026-05-27 (Wed, 27 May 2026)
Changed paths:
M lldb/tools/lldb-dap/DAP.cpp
M lldb/tools/lldb-dap/OutputRedirector.cpp
M lldb/tools/lldb-dap/OutputRedirector.h
Log Message:
-----------
[lldb-dap] Use MainLoop instead of a background thread in OutputRedirector. (#199970)
Replace the background thread in OutputRedirector with LLDB's MainLoop
event loop. This reduces the number of threads created and ensures file
descriptors are properly closed when no longer needed.
Since debugger's output is not I/O intensive, there is no risk of
hitting the pipe buffer limit with this approach.
Commit: 0d8ba697df747b2aa0df3abbf11ec54e6c61e1b5
https://github.com/llvm/llvm-project/commit/0d8ba697df747b2aa0df3abbf11ec54e6c61e1b5
Author: Keith Smiley <keithbsmiley at gmail.com>
Date: 2026-05-27 (Wed, 27 May 2026)
Changed paths:
M utils/bazel/.bazelrc
M utils/bazel/MODULE.bazel
M utils/bazel/MODULE.bazel.lock
Log Message:
-----------
[bazel] Add config for hermetic clang toolchain (#192528)
This config uses the https://github.com/hermeticbuild/hermetic-llvm
toolchain to avoid any dependency on the host compiler. This makes it
trivial to test with remote execution and also supports cross
compilation.
Commit: a3d935402420d0ec1f91a37a8fc85bf4ea166f74
https://github.com/llvm/llvm-project/commit/a3d935402420d0ec1f91a37a8fc85bf4ea166f74
Author: Justin Lebar <justin.lebar at gmail.com>
Date: 2026-05-27 (Wed, 27 May 2026)
Changed paths:
M llvm/include/llvm/CodeGen/MachineMemOperand.h
A llvm/test/CodeGen/X86/branchfolding-atomic-mmo.ll
Log Message:
-----------
[CodeGen] Compare MMO atomic ordering and syncscope. (#199892)
MachineMemOperand::operator== compared the address, flags, AA metadata,
range, alignment, and address space, but not atomic success ordering,
failure ordering, or syncscope. Users such as
MachineInstr::cloneMergedMemRefs could therefore treat atomic and
non-atomic MMOs, or atomics with different syncscopes, as identical.
This bug was found by a large run of Opus 4.7 looking for bugs in LLVM.
Commit: f828c0e39fca240c3599089afdafa1cab47eadbb
https://github.com/llvm/llvm-project/commit/f828c0e39fca240c3599089afdafa1cab47eadbb
Author: adams381 <adams at nvidia.com>
Date: 2026-05-27 (Wed, 27 May 2026)
Changed paths:
M clang/lib/CIR/CodeGen/CIRGenFunction.cpp
Log Message:
-----------
[CIR] Report NYI for STDC FENV_ACCESS under -fclangir
Functions that enable IEEE floating-point intrinsics via `#pragma STDC
FENV_ACCESS ON` or `__attribute__((strict_fp))` set `UsesFPIntrin()` /
`StrictFPAttr` on the `FunctionDecl`. CIR doesn't support the
FP-constrained dialect ops needed to lower such functions correctly, so
`generateCode` now reports `errorNYI` and returns early when either flag
is set, preventing silent miscompilation.
---------
Co-authored-by: Claude Sonnet 4.6 <noreply at anthropic.com>
Commit: c8efcf55ee47bb04e4539a802e656be89f08099f
https://github.com/llvm/llvm-project/commit/c8efcf55ee47bb04e4539a802e656be89f08099f
Author: Vir Patel <142122453+virsworld at users.noreply.github.com>
Date: 2026-05-27 (Wed, 27 May 2026)
Changed paths:
M flang/include/flang/Common/Fortran-consts.h
M flang/include/flang/Support/Fortran.h
M flang/lib/Evaluate/formatting.cpp
M flang/lib/Semantics/expression.cpp
M flang/lib/Semantics/type.cpp
M flang/lib/Support/Fortran.cpp
A flang/test/Semantics/PowerPC/ppc-vector-diagnostics.f90
Log Message:
-----------
[flang][PPC] Improve vector type names in expression diagnostics (NFC) (#199383)
Continuation of #197821
The change only affects vector types; all other types preserve their
existing formatting behavior.
Co-authored-by: virsworld <virpatel at mac.home>
Commit: 8f03570e7d047bb83c77421360b831f366e7dcea
https://github.com/llvm/llvm-project/commit/8f03570e7d047bb83c77421360b831f366e7dcea
Author: carlobertolli <carlo.bertolli at amd.com>
Date: 2026-05-27 (Wed, 27 May 2026)
Changed paths:
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.reduce.add.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.reduce.xor.ll
Log Message:
-----------
[AMDGPU] Add regression test for wave.reduce constant folding. (#198673)
Ensure wave.reduce.xor, wave.reduce.add, and wave.reduce.sub with
constant operands are not folded to the input value, since their results
depend on the number of active lanes at runtime.
Assisted-by: Cursor (Claude)
Commit: 34d5523eaa8f72c3eb56137ac13789d70640a49c
https://github.com/llvm/llvm-project/commit/34d5523eaa8f72c3eb56137ac13789d70640a49c
Author: Justin Bogner <mail at justinbogner.com>
Date: 2026-05-27 (Wed, 27 May 2026)
Changed paths:
M clang/test/Driver/msvc-link.c
Log Message:
-----------
[Driver][MSVC] Loosen regex for binary name in test (#200015)
`lld-link` will often be installed as `lld-link.exe` on windows. We need
to make sure this test passes either way.
Commit: 6c9225f1d1e2b0b49ac3a53913be7ccda9c6243b
https://github.com/llvm/llvm-project/commit/6c9225f1d1e2b0b49ac3a53913be7ccda9c6243b
Author: Ben Langmuir <blangmuir at apple.com>
Date: 2026-05-27 (Wed, 27 May 2026)
Changed paths:
M clang/include/clang/Basic/FileManager.h
M clang/lib/Basic/FileManager.cpp
M clang/lib/Lex/HeaderSearch.cpp
M clang/lib/Lex/ModuleMap.cpp
M clang/lib/Lex/PPDirectives.cpp
M clang/unittests/Basic/FileManagerTest.cpp
Log Message:
-----------
Reapply "[clang] Use FileError in FileManager::getFileRef, getDirectoryRef" (#199759)
Most callers are unchanged, since they either ignore the specific error
or have their own formatting of the error that includes both the path
and the errorToErrorCode-unwrapped value. However, for clients that just
forward the error it's helpful to ensure we do not lose track of the
filename that the error is associated with, so use FileError.
To reduce the overhead of using FileError, keep it only in the public
getFileRef and getDirectoryRef themselves, and use ErrorOr in the
implementation. For callers of getOptional* this should avoid
allocations for errors entirely, and for callers of getFileRef and
getDirectoryRef it makes the error allocation inlinable, which may (in
theory, not tested) let us optimize it away if the Error is immediately
unwrapped back to an error code, for example.
Incidentally clean up some callers to use getOptionalFileRef where they
throw away the error immediately.
Commit: 2b3bc03b5ef00e7eaa245420ca981c700e1c05c4
https://github.com/llvm/llvm-project/commit/2b3bc03b5ef00e7eaa245420ca981c700e1c05c4
Author: Stanislav Mekhanoshin <Stanislav.Mekhanoshin at amd.com>
Date: 2026-05-27 (Wed, 27 May 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp
M llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUInstPrinter.cpp
M llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUMCCodeEmitter.cpp
M llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.cpp
M llvm/test/CodeGen/AMDGPU/arbitrary-fp-to-float.ll
M llvm/test/CodeGen/AMDGPU/br_cc.f16.ll
M llvm/test/CodeGen/AMDGPU/call-argument-types.ll
M llvm/test/CodeGen/AMDGPU/commute-compares-scalar-float.ll
M llvm/test/CodeGen/AMDGPU/dagcombine-fmul-sel.ll
M llvm/test/CodeGen/AMDGPU/extract-subvector-16bit.ll
M llvm/test/CodeGen/AMDGPU/fcanonicalize.bf16.ll
M llvm/test/CodeGen/AMDGPU/fcanonicalize.f16.ll
M llvm/test/CodeGen/AMDGPU/fmed3.bf16.ll
M llvm/test/CodeGen/AMDGPU/fmul-to-ldexp.ll
M llvm/test/CodeGen/AMDGPU/gfx-callable-argument-types.ll
M llvm/test/CodeGen/AMDGPU/imm16.ll
M llvm/test/CodeGen/AMDGPU/immv216.ll
M llvm/test/CodeGen/AMDGPU/llvm.fptrunc.round.ll
M llvm/test/CodeGen/AMDGPU/llvm.round.ll
M llvm/test/CodeGen/AMDGPU/lround.ll
M llvm/test/CodeGen/AMDGPU/mad-mix-hi.ll
M llvm/test/CodeGen/AMDGPU/select-fabs-fneg-extract.f16.ll
M llvm/test/CodeGen/AMDGPU/select-fabs-fneg-extract.v2f16.ll
M llvm/test/CodeGen/AMDGPU/select.f16.ll
M llvm/test/CodeGen/AMDGPU/shrink-add-sub-constant.ll
M llvm/test/CodeGen/AMDGPU/true16-imm-folded-to-0-regression.ll
M llvm/test/MC/AMDGPU/gfx1150_asm_salu_float.s
M llvm/test/MC/AMDGPU/gfx11_asm_vop3.s
M llvm/test/MC/AMDGPU/gfx11_asm_vop3_dpp8.s
M llvm/test/MC/AMDGPU/gfx11_asm_vop3_from_vopc.s
M llvm/test/MC/AMDGPU/gfx11_asm_vopc.s
M llvm/test/MC/AMDGPU/gfx12_asm_sopc.s
M llvm/test/MC/AMDGPU/gfx12_asm_vop1-fake16.s
M llvm/test/MC/AMDGPU/gfx12_asm_vop1.s
M llvm/test/MC/AMDGPU/gfx12_asm_vop3.s
M llvm/test/MC/AMDGPU/gfx12_asm_vop3c.s
M llvm/test/MC/AMDGPU/gfx12_asm_vopc.s
M llvm/test/MC/AMDGPU/gfx13_asm_sopc.s
M llvm/test/MC/AMDGPU/gfx13_asm_vop1.s
M llvm/test/MC/AMDGPU/gfx13_asm_vop1_t16_promote.s
M llvm/test/MC/AMDGPU/gfx13_asm_vop3-fake16.s
M llvm/test/MC/AMDGPU/gfx13_asm_vop3.s
M llvm/test/MC/AMDGPU/gfx13_asm_vop3_from_vop1-fake16.s
M llvm/test/MC/AMDGPU/gfx13_asm_vop3_from_vop1.s
M llvm/test/MC/AMDGPU/literals.s
M llvm/test/MC/AMDGPU/vop3-gfx10.s
M llvm/test/MC/Disassembler/AMDGPU/gfx10_vop1.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx10_vop3.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx10_vop3c.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx10_vop3cx.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx10_vopc.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx10_vopcx.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx1150_dasm_salu_float.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx11_dasm_vop1.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx11_dasm_vop3.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx11_dasm_vop3_from_vop1.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx11_dasm_vop3_from_vopc.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx11_dasm_vop3_from_vopcx.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx11_dasm_vopc.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx11_dasm_vopcx.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx1250_dasm_vop3.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx1250_dasm_vop3_from_vop1.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx1250_dasm_vop3cx.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx12_dasm_sopc.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx12_dasm_vop3.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx12_dasm_vop3_from_vop1.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx12_dasm_vop3c.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx12_dasm_vop3cx.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx12_dasm_vop3cx_dpp16.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx12_dasm_vopc.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx12_dasm_vopcx.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx8_vop1.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx8_vop2.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx8_vop3.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx8_vop3c.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx8_vop3cx.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx8_vopc.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx8_vopcx.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx9_vop1.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx9_vop2.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx9_vop3.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx9_vop3c.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx9_vop3cx.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx9_vopc.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx9_vopcx.txt
Log Message:
-----------
[AMDGPU] Use shorter form for i16 operands (#198005)
For 16-bit operands an inline constant is zero extended
which in particular allows to use FP constants. These
will have 16 bits of zeroes in the high half and FP16
value in the low 16 bits.
The patch changes semantics of the FP literal argument
used in i16 context in the asm parser to fp16.
Commit: 0e84bfa79f1121b65609013175c6515159e3cdec
https://github.com/llvm/llvm-project/commit/0e84bfa79f1121b65609013175c6515159e3cdec
Author: Erich Keane <ekeane at nvidia.com>
Date: 2026-05-27 (Wed, 27 May 2026)
Changed paths:
M clang/lib/CIR/CodeGen/CIRGenStmt.cpp
M clang/lib/CIR/Dialect/Transforms/FlattenCFG.cpp
A clang/test/CIR/CodeGen/switch-pre-case-stmts.cpp
Log Message:
-----------
[CIR] Handle the 'before case' block of a switch statement. (#199752)
Before this patch, we would fail any time there was a block with
entry/exit (in this case, one with successors thanks to a label) with a
verification error. This patch adds special handling for that first
block.
This patch DOES choose to not trim them however. Unless there is a label
inside of the block, there isn't any way to get there, and it is dead
code. I've opted to NOT do that optimization, as I suspect that might be
valuable to future passes/something we may wish to warn about in some
sort of CFG analysis.
Additionally, there is some minor changes to FlattenCFG, first to make
sure we skip the switch ONLY if it is truly empty, and second to make
sure we transform any 'break' in the pre-case region.
Commit: 3d9d776b29c9d1b44ee4f87dd1311bbf85af1ca3
https://github.com/llvm/llvm-project/commit/3d9d776b29c9d1b44ee4f87dd1311bbf85af1ca3
Author: DeanSturtevant1 <dsturtevant at google.com>
Date: 2026-05-27 (Wed, 27 May 2026)
Changed paths:
M utils/bazel/llvm-project-overlay/libc/BUILD.bazel
M utils/bazel/llvm-project-overlay/llvm/BUILD.bazel
Log Message:
-----------
[bzl] Reduce the `deps` size of libc's shared_math_header library. (#200006)
There were ~500 of them, which can cause build analysis/metric issues.
Glob the private headers in use, retaining only the support libraries
that have source code.
Make it a cc_library instead of a libc_header_library. Rename it
"apfloat_shared_math_headers" to clarify its limited use case.
Commit: 8a55aca421d64db9f82bda2ae3330bdf2dc12cf0
https://github.com/llvm/llvm-project/commit/8a55aca421d64db9f82bda2ae3330bdf2dc12cf0
Author: vporpo <vasileios.porpodas at amd.com>
Date: 2026-05-27 (Wed, 27 May 2026)
Changed paths:
M llvm/lib/Transforms/Vectorize/SandboxVectorizer/Passes/SeedCollection.cpp
A llvm/test/Transforms/SandboxVectorizer/seed_collection_loads.ll
Log Message:
-----------
[SandboxVec][SeedCollection] Iterate over all seeds (#195964)
Even though load seeds can already be collected by the seed collector,
the seed collection pass was not iterating over them. This patch fixes
this, we are now iterating over both store and load seeds.
Commit: aa1f119c6dcbf0b4404a88fcaeb34d9c5ca48fb5
https://github.com/llvm/llvm-project/commit/aa1f119c6dcbf0b4404a88fcaeb34d9c5ca48fb5
Author: Andy Kaylor <akaylor at nvidia.com>
Date: 2026-05-27 (Wed, 27 May 2026)
Changed paths:
M clang/test/lit.cfg.py
Log Message:
-----------
[clang][lit] Add option to skip clang-repl checks (#199255)
Whenever lit or llvm-lit is invoked to run clang tests, clang-repl is
run at least once to check for host jit capabilities, and possibly
several more times to probe related capabilities. This adds a noticeable
delay before testing starts, especially for debug builds.
This change adds a lit parameter (clang_skip_clang_repl_checks) and an
environment variable check (CLANG_LIT_SKIP_CLANG_REPL_CHECKS) to allow
the clang-repl probes to be skipped. When this option is used, any tests
that rely on jit execution will be reported as unsupported.
This option is intended only to allow quicker targeted testing during
development. It should not be used for comprehensive verification before
submitting a patch.
On my local test system, executing `ninja check-clang-cir-codegen` with
a previously completed debug build took 18 seconds to run 354 tests with
this option and 53 seconds without it. This is the sort of use case I am
targeting -- lit test runs when the clang-repl overhead will constitute
a significant portion of the total time to execute the tests.
Commit: d0676f53ed5b56a1f077fe8a4587ecb10e5400ee
https://github.com/llvm/llvm-project/commit/d0676f53ed5b56a1f077fe8a4587ecb10e5400ee
Author: Andy Kaylor <akaylor at nvidia.com>
Date: 2026-05-27 (Wed, 27 May 2026)
Changed paths:
M clang/include/clang/CIR/Dialect/IR/CIROps.td
M clang/include/clang/CIR/Dialect/Transforms/CIRTransformUtils.h
M clang/lib/CIR/Dialect/IR/CIRDialect.cpp
M clang/lib/CIR/Dialect/Transforms/CIRTransformUtils.cpp
M clang/lib/CIR/Dialect/Transforms/EHABILowering.cpp
M clang/lib/CIR/Dialect/Transforms/FlattenCFG.cpp
A clang/test/CIR/CodeGen/cleanup-throw-from-cleanup.cpp
M clang/test/CIR/CodeGen/try-catch.cpp
Log Message:
-----------
[CIR] Handle throwing an exception from a cleanup scope (#199121)
The CIR FlattenCFG pass had been ignoring any ThrowOp that occurred
inside a cleanup scope or try operation, which led to the thrown
exception not triggering local cleanups and bypassing local catch
handlers.
This change introduces a new CIR operation, TryThrowOp, which is
analagous to the existing TryCallOp. The TryThrowOp (as well as the
ThrowOp) will eventually be lowered to a function call, but which
function gets called is a target-dependent detail, so we need an
abstract operation before EHABI lowering.
The Flatten CFG pass replaces any ThrowOp inside a cleanup scope or try
operation with a TryThrowOp that has an unreachable normal destination
and unwinds to the appropriate cleanup or catch dispatch block.
Assisted-by: Cursor / claude-opus-4.7-thinking-xhigh
Commit: eeeb26f64efdbccd27a2a0fd094be8d98dc6c231
https://github.com/llvm/llvm-project/commit/eeeb26f64efdbccd27a2a0fd094be8d98dc6c231
Author: adams381 <adams at nvidia.com>
Date: 2026-05-27 (Wed, 27 May 2026)
Changed paths:
M clang/lib/CIR/CodeGen/CIRGenModule.cpp
A clang/test/CIR/CodeGen/inline-extern-force-codegen.c
Log Message:
-----------
[CIR] Emit globals for declarations that force externally visible defs
CIRGenModule::emitGlobal reported NYI for forward declarations that
force an externally visible definition under C99 inline rules (inline
definition in the TU, then a later extern declaration). Classic
CodeGenModule already materializes these with GetOrCreateLLVMFunction;
wire the same path through getAddrOfFunction, including the AArch64
multiversion guard from OGCG.
This pattern shows up in SPEC CPU 2026 berkeley-abc `if.h` when
compiling `abcIf.c` for 729.abc_r / 829.abc_s (`If_CutCopy` at line
527).
Test: `inline-extern-force-codegen.c` with CIR, LLVM, and OGCG checks.
---------
Co-authored-by: Claude Sonnet 4.6 <noreply at anthropic.com>
Commit: 3a203a506691df098ae1020dfb14e411d25bec35
https://github.com/llvm/llvm-project/commit/3a203a506691df098ae1020dfb14e411d25bec35
Author: Yaxun (Sam) Liu <yaxun.liu at amd.com>
Date: 2026-05-27 (Wed, 27 May 2026)
Changed paths:
M clang/include/clang/AST/ASTContext.h
M clang/include/clang/AST/Decl.h
M clang/include/clang/Sema/SemaCUDA.h
M clang/lib/AST/Decl.cpp
M clang/lib/CodeGen/CGCXX.cpp
M clang/lib/CodeGen/CGVTables.cpp
M clang/lib/CodeGen/CodeGenModule.cpp
M clang/lib/CodeGen/CodeGenModule.h
M clang/lib/Sema/Sema.cpp
M clang/lib/Sema/SemaBase.cpp
M clang/lib/Sema/SemaCUDA.cpp
M clang/lib/Sema/SemaDecl.cpp
M clang/test/CodeGenCUDA/device-vtable.cu
A clang/test/CodeGenCUDA/implicit-hd-dtor-trap-stub-hip.hip
A clang/test/CodeGenCUDA/implicit-hd-explicit-inst-hip.hip
A clang/test/CodeGenCUDA/implicit-hd-overload-ambig-hip.hip
M clang/test/SemaCUDA/dtor.cu
A clang/test/SemaCUDA/implicit-hd-dtor-explicit-instantiation.cu
A clang/test/SemaCUDA/implicit-hd-explicit-inst-organic-caller.cu
A clang/test/SemaCUDA/implicit-hd-overload-ambig-organic-caller.cu
Log Message:
-----------
[CUDA][HIP] Defer device diagnostics in implicit H+D explicit instantiations (#197214)
When clang explicitly instantiates a class template, it must emit
device-side
bodies for the implicit `__host__ __device__` members so the vtable and
instantiation symbols resolve. Some of those members chain into
host-only
calls (for example libstdc++ destructors that eventually call ::operator
delete). If no device code actually uses the class, the user still sees
errors about calling a `__host__` function from device code, even though
they
wrote no device code that touches it. Overload ambiguity in the same
context
behaves the same way.
This patch defers device-side errors in implicit `__host__ __device__`
functions reached only via an explicit template instantiation. At the
end of
the translation unit, clang checks whether a real device caller exists.
If
one does, the deferred errors are surfaced with the usual call-stack
notes.
If not, the diagnostics are dropped and the function gets a trap body,
so the
vtable and instantiation symbols stay well-formed and the failure only
fires
if device code ever calls the function. This works without
-fgpu-defer-diag.
Commit: 57b485f07d94e1780ed83275a01ef1c450dcdbd1
https://github.com/llvm/llvm-project/commit/57b485f07d94e1780ed83275a01ef1c450dcdbd1
Author: Scott Linder <scott.linder at amd.com>
Date: 2026-05-27 (Wed, 27 May 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/SILowerSGPRSpills.cpp
M llvm/test/CodeGen/AMDGPU/GlobalISel/assert-align.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/call-outgoing-stack-args.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/localizer.ll
M llvm/test/CodeGen/AMDGPU/abi-attribute-hints-undefined-behavior.ll
M llvm/test/CodeGen/AMDGPU/amdgcn-call-whole-wave.ll
M llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.1024bit.ll
M llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.128bit.ll
M llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.160bit.ll
M llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.16bit.ll
M llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.192bit.ll
M llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.224bit.ll
M llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.256bit.ll
M llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.288bit.ll
M llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.320bit.ll
M llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.32bit.ll
M llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.352bit.ll
M llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.384bit.ll
M llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.448bit.ll
M llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.48bit.ll
M llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.512bit.ll
M llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.576bit.ll
M llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.640bit.ll
M llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.64bit.ll
M llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.704bit.ll
M llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.768bit.ll
M llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.832bit.ll
M llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.896bit.ll
M llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.960bit.ll
M llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.96bit.ll
M llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.ptr.ll
M llvm/test/CodeGen/AMDGPU/amdgpu-simplify-libcall-pow-codegen.ll
M llvm/test/CodeGen/AMDGPU/attributor-flatscratchinit-undefined-behavior2.ll
M llvm/test/CodeGen/AMDGPU/bf16.ll
M llvm/test/CodeGen/AMDGPU/branch-relax-spill.ll
M llvm/test/CodeGen/AMDGPU/call-args-inreg-bfloat.ll
M llvm/test/CodeGen/AMDGPU/call-args-inreg-no-sgpr-for-csrspill.ll
M llvm/test/CodeGen/AMDGPU/call-args-inreg.ll
M llvm/test/CodeGen/AMDGPU/call-argument-types.ll
M llvm/test/CodeGen/AMDGPU/call-graph-register-usage.ll
M llvm/test/CodeGen/AMDGPU/call-preserved-registers.ll
M llvm/test/CodeGen/AMDGPU/call-skip.ll
M llvm/test/CodeGen/AMDGPU/callee-frame-setup.ll
M llvm/test/CodeGen/AMDGPU/callee-special-input-vgprs-packed.ll
M llvm/test/CodeGen/AMDGPU/callee-special-input-vgprs.ll
M llvm/test/CodeGen/AMDGPU/cc-entry.ll
M llvm/test/CodeGen/AMDGPU/cc-inreg-sgpr0-3-mismatch.ll
M llvm/test/CodeGen/AMDGPU/copysign-simplify-demanded-bits.ll
M llvm/test/CodeGen/AMDGPU/cross-block-use-is-not-abi-copy.ll
M llvm/test/CodeGen/AMDGPU/debug-frame.ll
M llvm/test/CodeGen/AMDGPU/dwarf-multi-register-use-crash.ll
M llvm/test/CodeGen/AMDGPU/dynamic-vgpr-reserve-stack-for-cwsr.ll
M llvm/test/CodeGen/AMDGPU/eliminate-frame-index-select.ll
M llvm/test/CodeGen/AMDGPU/fix-frame-reg-in-custom-csr-spills.ll
M llvm/test/CodeGen/AMDGPU/frame-setup-without-sgpr-to-vgpr-spills.ll
M llvm/test/CodeGen/AMDGPU/function-args-inreg.ll
M llvm/test/CodeGen/AMDGPU/gfx-call-non-gfx-func.ll
M llvm/test/CodeGen/AMDGPU/gfx-callable-argument-types.ll
M llvm/test/CodeGen/AMDGPU/gfx-callable-preserved-registers.ll
M llvm/test/CodeGen/AMDGPU/gfx-callable-return-types.ll
M llvm/test/CodeGen/AMDGPU/global-alias.ll
M llvm/test/CodeGen/AMDGPU/identical-subrange-spill-infloop.ll
M llvm/test/CodeGen/AMDGPU/indirect-call.ll
M llvm/test/CodeGen/AMDGPU/insert-delay-alu-bug.ll
M llvm/test/CodeGen/AMDGPU/insert-waitcnts-crash.ll
M llvm/test/CodeGen/AMDGPU/issue176578.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.mfma.scale.f32.16x16x128.f8f6f4.ll
M llvm/test/CodeGen/AMDGPU/materialize-frame-index-sgpr.ll
M llvm/test/CodeGen/AMDGPU/mul24-pass-ordering.ll
M llvm/test/CodeGen/AMDGPU/need-fp-from-vgpr-spills.ll
M llvm/test/CodeGen/AMDGPU/nested-calls.ll
M llvm/test/CodeGen/AMDGPU/no-source-locations-in-prologue.ll
M llvm/test/CodeGen/AMDGPU/nofpclass-call.ll
M llvm/test/CodeGen/AMDGPU/preserve-wwm-copy-dst-reg.ll
M llvm/test/CodeGen/AMDGPU/s-getpc-b64-remat.ll
M llvm/test/CodeGen/AMDGPU/sgpr-spill-overlap-wwm-reserve.mir
M llvm/test/CodeGen/AMDGPU/sgpr-spills-split-regalloc.ll
M llvm/test/CodeGen/AMDGPU/shufflevector.v2i64.v8i64.ll
M llvm/test/CodeGen/AMDGPU/si-lower-sgpr-spills-vgpr-lanes-usage.mir
M llvm/test/CodeGen/AMDGPU/sibling-call.ll
M llvm/test/CodeGen/AMDGPU/stack-realign.ll
M llvm/test/CodeGen/AMDGPU/stacksave_stackrestore.ll
M llvm/test/CodeGen/AMDGPU/strictfp_f16_abi_promote.ll
M llvm/test/CodeGen/AMDGPU/swdev504645-global-fold.ll
M llvm/test/CodeGen/AMDGPU/tail-call-inreg-arguments.waterfall.ll
M llvm/test/CodeGen/AMDGPU/unfold-masked-merge-scalar-variablemask.ll
M llvm/test/CodeGen/AMDGPU/unstructured-cfg-def-use-issue.ll
M llvm/test/CodeGen/AMDGPU/vgpr-mark-last-scratch-load.ll
M llvm/test/CodeGen/AMDGPU/vgpr-tuple-allocation.ll
M llvm/test/CodeGen/AMDGPU/waterfall-call-target-av-register-failure.ll
M llvm/test/CodeGen/AMDGPU/wave32.ll
M llvm/test/CodeGen/AMDGPU/whole-wave-functions.ll
M llvm/test/CodeGen/AMDGPU/whole-wave-register-copy.ll
M llvm/test/CodeGen/AMDGPU/whole-wave-register-spill.ll
M llvm/test/CodeGen/AMDGPU/wwm-reserved-spill.ll
Log Message:
-----------
[AMDGPU] Use register pair for PC spill (#183146)
Change-Id: Ibedeef926f7ff235a06de65a83087c151f66a416
Commit: 80393ba1bdbe6155a91c7a54c0430b68f9c4b556
https://github.com/llvm/llvm-project/commit/80393ba1bdbe6155a91c7a54c0430b68f9c4b556
Author: HighW4y2H3ll <zhenghaohuu at gmail.com>
Date: 2026-05-27 (Wed, 27 May 2026)
Changed paths:
M llvm/tools/llvm-profgen/ProfiledBinary.cpp
Log Message:
-----------
[llvm-profgen] Fix assertion condition for the top-level probes address range checks (#198674)
Top-level functions may contains multiple disjoint address ranges, and
the pseudo probes may not be stored as sorted. The original assertion
check is problematic because the first pseudo probe may not necessarily
falls into the current function range even though they are both part of
the same function.
Update the assertion condition so that we won't hit the assertion
failure as long as there one pseudo probe falls in the checked function
range.
Commit: 59389b0ba9dec92702de7465b13bbedb9c523951
https://github.com/llvm/llvm-project/commit/59389b0ba9dec92702de7465b13bbedb9c523951
Author: Michael Levine <mlevine55 at bloomberg.net>
Date: 2026-05-27 (Wed, 27 May 2026)
Changed paths:
M libcxx/include/map
M libcxx/include/set
Log Message:
-----------
[libc++] Add __is_transparently_comparable_v optimizations for set, multiset, and multimap functions [Issue 187105] (#189735)
This PR closes https://github.com/llvm/llvm-project/issues/187105
It adds `__is_transparently_comparable_v` checks to `std::set`,
`std::multiset`, and `std::multimap`'s `find`, `contains`,
`lower_bound`, and `upper_bound` functions.
Assisted by: Claude Code
---------
Signed-off-by: mlevine55 <mlevine55 at bloomberg.net>
Commit: 15113c3eedb1e5badc411602fb8daa57bb5f677e
https://github.com/llvm/llvm-project/commit/15113c3eedb1e5badc411602fb8daa57bb5f677e
Author: Nikolas Klauser <nikolasklauser at berlin.de>
Date: 2026-05-27 (Wed, 27 May 2026)
Changed paths:
M libcxx/utils/ci/docker/docker-compose.yml
Log Message:
-----------
[libc++] Update the base image hash to get GCC 16 (#199882)
Commit: 8dc8411a75707fb7c914a851fce6aa3915e8a3bc
https://github.com/llvm/llvm-project/commit/8dc8411a75707fb7c914a851fce6aa3915e8a3bc
Author: forking-google-bazel-bot[bot] <265904573+forking-google-bazel-bot[bot]@users.noreply.github.com>
Date: 2026-05-27 (Wed, 27 May 2026)
Changed paths:
M utils/bazel/llvm-project-overlay/libc/BUILD.bazel
Log Message:
-----------
[Bazel] Fixes 3d9d776 (#200029)
This fixes 3d9d776b29c9d1b44ee4f87dd1311bbf85af1ca3.
Co-authored-by: Google Bazel Bot <google-bazel-bot at google.com>
Commit: bdb3232dfacba6a61a0ac45bec3fb18c7c1c24bd
https://github.com/llvm/llvm-project/commit/bdb3232dfacba6a61a0ac45bec3fb18c7c1c24bd
Author: Scott Linder <scott.linder at amd.com>
Date: 2026-05-27 (Wed, 27 May 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/SIFrameLowering.cpp
M llvm/lib/Target/AMDGPU/SIFrameLowering.h
M llvm/lib/Target/AMDGPU/SIInstrInfo.cpp
M llvm/lib/Target/AMDGPU/SIInstrInfo.h
M llvm/lib/Target/AMDGPU/SIInstructions.td
M llvm/lib/Target/AMDGPU/SILowerSGPRSpills.cpp
M llvm/lib/Target/AMDGPU/SIRegisterInfo.cpp
M llvm/lib/Target/AMDGPU/SIRegisterInfo.h
M llvm/test/CodeGen/AMDGPU/GlobalISel/assert-align.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/call-outgoing-stack-args.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/localizer.ll
M llvm/test/CodeGen/AMDGPU/a-v-flat-atomicrmw.ll
M llvm/test/CodeGen/AMDGPU/a-v-global-atomicrmw.ll
M llvm/test/CodeGen/AMDGPU/abi-attribute-hints-undefined-behavior.ll
M llvm/test/CodeGen/AMDGPU/accvgpr-spill-scc-clobber.mir
M llvm/test/CodeGen/AMDGPU/agpr-copy-no-free-registers.ll
M llvm/test/CodeGen/AMDGPU/amdgcn-call-whole-wave.ll
M llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.1024bit.ll
M llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.256bit.ll
M llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.320bit.ll
M llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.384bit.ll
M llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.448bit.ll
M llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.512bit.ll
M llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.576bit.ll
M llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.640bit.ll
M llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.704bit.ll
M llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.768bit.ll
M llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.832bit.ll
M llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.896bit.ll
M llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.960bit.ll
M llvm/test/CodeGen/AMDGPU/amdgpu-cs-chain-preserve-cc.ll
M llvm/test/CodeGen/AMDGPU/amdgpu-simplify-libcall-pow-codegen.ll
M llvm/test/CodeGen/AMDGPU/attributor-flatscratchinit-undefined-behavior2.ll
M llvm/test/CodeGen/AMDGPU/av_spill_cross_bb_usage.mir
M llvm/test/CodeGen/AMDGPU/bf16.ll
M llvm/test/CodeGen/AMDGPU/branch-relax-spill.ll
M llvm/test/CodeGen/AMDGPU/call-args-inreg-bfloat.ll
M llvm/test/CodeGen/AMDGPU/call-args-inreg-no-sgpr-for-csrspill.ll
M llvm/test/CodeGen/AMDGPU/call-args-inreg.ll
M llvm/test/CodeGen/AMDGPU/call-argument-types.ll
M llvm/test/CodeGen/AMDGPU/call-preserved-registers.ll
M llvm/test/CodeGen/AMDGPU/call-skip.ll
M llvm/test/CodeGen/AMDGPU/callee-frame-setup.ll
M llvm/test/CodeGen/AMDGPU/callee-special-input-vgprs-packed.ll
M llvm/test/CodeGen/AMDGPU/callee-special-input-vgprs.ll
M llvm/test/CodeGen/AMDGPU/cc-entry.ll
M llvm/test/CodeGen/AMDGPU/cc-inreg-sgpr0-3-mismatch.ll
M llvm/test/CodeGen/AMDGPU/copysign-simplify-demanded-bits.ll
M llvm/test/CodeGen/AMDGPU/cross-block-use-is-not-abi-copy.ll
M llvm/test/CodeGen/AMDGPU/debug-frame.ll
M llvm/test/CodeGen/AMDGPU/dwarf-multi-register-use-crash.ll
M llvm/test/CodeGen/AMDGPU/dynamic-vgpr-reserve-stack-for-cwsr.ll
M llvm/test/CodeGen/AMDGPU/eliminate-frame-index-s-mov-b32.mir
M llvm/test/CodeGen/AMDGPU/eliminate-frame-index-select.ll
M llvm/test/CodeGen/AMDGPU/eliminate-frame-index-select.mir
M llvm/test/CodeGen/AMDGPU/fix-frame-reg-in-custom-csr-spills.ll
M llvm/test/CodeGen/AMDGPU/frame-index.mir
M llvm/test/CodeGen/AMDGPU/frame-setup-without-sgpr-to-vgpr-spills.ll
M llvm/test/CodeGen/AMDGPU/function-args-inreg.ll
M llvm/test/CodeGen/AMDGPU/gfx-call-non-gfx-func.ll
M llvm/test/CodeGen/AMDGPU/gfx-callable-argument-types.ll
M llvm/test/CodeGen/AMDGPU/gfx-callable-preserved-registers.ll
M llvm/test/CodeGen/AMDGPU/gfx-callable-return-types.ll
M llvm/test/CodeGen/AMDGPU/identical-subrange-spill-infloop.ll
M llvm/test/CodeGen/AMDGPU/insert-delay-alu-bug.ll
M llvm/test/CodeGen/AMDGPU/insert-waitcnts-crash.ll
M llvm/test/CodeGen/AMDGPU/issue176578.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.mfma.scale.f32.16x16x128.f8f6f4.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.readfirstlane.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.smfmac.gfx950.ll
M llvm/test/CodeGen/AMDGPU/llvm.maximum.f64.ll
M llvm/test/CodeGen/AMDGPU/llvm.minimum.f64.ll
M llvm/test/CodeGen/AMDGPU/materialize-frame-index-sgpr.gfx10.ll
M llvm/test/CodeGen/AMDGPU/materialize-frame-index-sgpr.ll
M llvm/test/CodeGen/AMDGPU/maximumnum.bf16.ll
M llvm/test/CodeGen/AMDGPU/maximumnum.ll
M llvm/test/CodeGen/AMDGPU/memintrinsic-unroll.ll
M llvm/test/CodeGen/AMDGPU/memset-param-combinations.ll
M llvm/test/CodeGen/AMDGPU/minimumnum.bf16.ll
M llvm/test/CodeGen/AMDGPU/minimumnum.ll
M llvm/test/CodeGen/AMDGPU/mul24-pass-ordering.ll
M llvm/test/CodeGen/AMDGPU/nested-calls.ll
M llvm/test/CodeGen/AMDGPU/no-source-locations-in-prologue.ll
M llvm/test/CodeGen/AMDGPU/nofpclass-call.ll
M llvm/test/CodeGen/AMDGPU/pei-amdgpu-cs-chain-preserve.mir
M llvm/test/CodeGen/AMDGPU/pei-vgpr-block-spill-csr.mir
M llvm/test/CodeGen/AMDGPU/preserve-wwm-copy-dst-reg.ll
M llvm/test/CodeGen/AMDGPU/s-getpc-b64-remat.ll
M llvm/test/CodeGen/AMDGPU/sgpr-spill-overlap-wwm-reserve.mir
M llvm/test/CodeGen/AMDGPU/shufflevector.v2i64.v8i64.ll
M llvm/test/CodeGen/AMDGPU/si-lower-sgpr-spills-vgpr-lanes-usage.mir
M llvm/test/CodeGen/AMDGPU/si-lower-sgpr-spills.mir
M llvm/test/CodeGen/AMDGPU/sibling-call.ll
M llvm/test/CodeGen/AMDGPU/spill-partial-csr-sgpr-live-ins.mir
M llvm/test/CodeGen/AMDGPU/spill-sgpr-csr-live-ins.mir
M llvm/test/CodeGen/AMDGPU/spill-sgpr-to-virtual-vgpr.mir
M llvm/test/CodeGen/AMDGPU/spill-vgpr-block.ll
M llvm/test/CodeGen/AMDGPU/spill_more_than_wavesize_csr_sgprs.ll
M llvm/test/CodeGen/AMDGPU/stack-realign.ll
M llvm/test/CodeGen/AMDGPU/stacksave_stackrestore.ll
M llvm/test/CodeGen/AMDGPU/strictfp_f16_abi_promote.ll
M llvm/test/CodeGen/AMDGPU/swdev504645-global-fold.ll
M llvm/test/CodeGen/AMDGPU/tail-call-inreg-arguments.waterfall.ll
M llvm/test/CodeGen/AMDGPU/tuple-allocation-failure.ll
M llvm/test/CodeGen/AMDGPU/unfold-masked-merge-scalar-variablemask.ll
M llvm/test/CodeGen/AMDGPU/unspill-vgpr-after-rewrite-vgpr-mfma.ll
M llvm/test/CodeGen/AMDGPU/vector-reduce-mul.ll
M llvm/test/CodeGen/AMDGPU/vgpr-mark-last-scratch-load.ll
M llvm/test/CodeGen/AMDGPU/vgpr-tuple-allocation.ll
M llvm/test/CodeGen/AMDGPU/wave32.ll
M llvm/test/CodeGen/AMDGPU/whole-wave-functions.ll
M llvm/test/CodeGen/AMDGPU/whole-wave-register-copy.ll
M llvm/test/CodeGen/AMDGPU/whole-wave-register-spill.ll
Log Message:
-----------
[AMDGPU] Implement CFI for CSR spills (#183150)
Introduce new SPILL pseudos to allow CFI to be generated for only CSR
spills, and to make ISA-instruction-level accurate information.
Other targets either generate slightly incorrect information or rely on
conventions for how spills are placed within the entry block. The
approach in this change produces larger unwind tables, with the
increased size being spent on additional DW_CFA_advance_location
instructions needed to describe the unwinding accurately.
Change-Id: I9b09646abd2ac4e56eddf5e9aeca1a5bebbd43dd
Co-authored-by: Scott Linder <scott.linder at amd.com>
Co-authored-by: Venkata Ramanaiah Nalamothu <VenkataRamanaiah.Nalamothu at amd.com>
Commit: 99bc986c527a9a98c85d792cfd99e0518cc1615d
https://github.com/llvm/llvm-project/commit/99bc986c527a9a98c85d792cfd99e0518cc1615d
Author: Roy Shi <royitaqi at users.noreply.github.com>
Date: 2026-05-27 (Wed, 27 May 2026)
Changed paths:
M llvm/include/llvm/Support/FileSystem.h
M llvm/include/llvm/Support/MemoryBuffer.h
M llvm/lib/Support/MemoryBuffer.cpp
M llvm/lib/Support/Unix/Path.inc
M llvm/lib/Support/Windows/Path.inc
Log Message:
-----------
[Support] Add MemoryBuffer::randomAccessIfMmap() (#199265)
For read-only MemoryBuffer_MMap, advise the kernel that access pattern
will be random, disabling readahead. This calls `madvise(MADV_RANDOM)`
on *NIX. This function should not be called on a writable buffer.
The implementation follows existing pattern in
`mapped_file_region::dontNeedImpl()` and
`mapped_file_region::willNeedImpl()`.
See intended usage: https://github.com/llvm/llvm-project/pull/199230
Commit: b76503229dc39d32505504fee48d0d40c4adc069
https://github.com/llvm/llvm-project/commit/b76503229dc39d32505504fee48d0d40c4adc069
Author: Ryosuke Niwa <rniwa at webkit.org>
Date: 2026-05-27 (Wed, 27 May 2026)
Changed paths:
M clang/lib/StaticAnalyzer/Checkers/WebKit/RawPtrRefLocalVarsChecker.cpp
M clang/test/Analysis/Checkers/WebKit/uncounted-local-vars.cpp
Log Message:
-----------
[alpha.webkit.UncountedLocalVarsChecker] Detect a raw pointer/reference in a decomposition declaration. (#198582)
Commit: c00484d99f36f90aa5cb79226a0c444d3fc41bd9
https://github.com/llvm/llvm-project/commit/c00484d99f36f90aa5cb79226a0c444d3fc41bd9
Author: Aiden Grossman <aidengrossman at google.com>
Date: 2026-05-27 (Wed, 27 May 2026)
Changed paths:
M llvm/tools/llvm-profgen/ProfiledBinary.cpp
Log Message:
-----------
[llvm-profgen] Fix -Wunused-variable (#200038)
Inline the variable definition into the assertion given the variable
name does not add much and release builds will end up with an unused
variable otherwise.
Commit: c315c662cd2d33e0c7f962fed742ee53626d8005
https://github.com/llvm/llvm-project/commit/c315c662cd2d33e0c7f962fed742ee53626d8005
Author: Stanislav Mekhanoshin <Stanislav.Mekhanoshin at amd.com>
Date: 2026-05-27 (Wed, 27 May 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/SIInstrInfo.cpp
M llvm/test/CodeGen/AMDGPU/code-size-estimate.ll
M llvm/test/CodeGen/AMDGPU/dagcombine-fmul-sel.ll
M llvm/test/CodeGen/AMDGPU/extract-subvector-16bit.ll
M llvm/test/CodeGen/AMDGPU/fmul-to-ldexp.ll
M llvm/test/CodeGen/AMDGPU/imm16.ll
M llvm/test/CodeGen/AMDGPU/select-fabs-fneg-extract.f16.ll
M llvm/test/CodeGen/AMDGPU/select-fabs-fneg-extract.v2f16.ll
Log Message:
-----------
[AMDGPU] Fix codesize estimate after #198005 (#200033)
This fixes failure in libc tests which checks the exact encoding
size. Encoding is now shorter, but it did not recognize fp16
immediates as an inlinable constant and assumes literal encoding.
Shorter encodings were created here:
https://github.com/llvm/llvm-project/pull/198005
Commit: f95f02c4b1ac931f8b6dcac55a0ad4ee59997883
https://github.com/llvm/llvm-project/commit/f95f02c4b1ac931f8b6dcac55a0ad4ee59997883
Author: Florian Hahn <flo at fhahn.com>
Date: 2026-05-27 (Wed, 27 May 2026)
Changed paths:
M llvm/lib/Transforms/Vectorize/VPlan.h
M llvm/lib/Transforms/Vectorize/VPlanAnalysis.cpp
M llvm/lib/Transforms/Vectorize/VPlanAnalysis.h
M llvm/lib/Transforms/Vectorize/VPlanRecipes.cpp
M llvm/lib/Transforms/Vectorize/VPlanVerifier.cpp
M llvm/unittests/Transforms/Vectorize/VPlanTest.cpp
Log Message:
-----------
[VPlan] Thread scalar types through VPReplicateRecipe. (NFC) (#199379)
Update VPReplicateRecipe to populate VPSingleDefValue's scalar
type. For most opcodes, the scalar type is determine from the operands,
via computeScalarTypeForInstruction (from
https://github.com/llvm/llvm-project/pull/199378).
For some opcodes, like Loads and casts, the type must be
provided explicitly.
Depends on https://github.com/llvm/llvm-project/pull/199378.
PR: https://github.com/llvm/llvm-project/pull/199379
Commit: 2f0815059c7b033acf935d49380d8b0166460bb3
https://github.com/llvm/llvm-project/commit/2f0815059c7b033acf935d49380d8b0166460bb3
Author: Vitaly Buka <vitalybuka at google.com>
Date: 2026-05-27 (Wed, 27 May 2026)
Changed paths:
M bolt/test/lit.cfg.py
M libc/utils/libctest/format.py
M libsycl/test/lit.cfg.py
M lldb/test/API/lit.cfg.py
M lldb/test/API/lldbtest.py
M lldb/test/Shell/lit.cfg.py
M llvm/utils/lit/lit/LitConfig.py
M llvm/utils/lit/lit/TestRunner.py
M llvm/utils/lit/lit/TestingConfig.py
M llvm/utils/lit/lit/formats/googletest.py
M llvm/utils/lit/lit/main.py
M llvm/utils/lit/tests/Inputs/googletest-timeout/lit.cfg
M llvm/utils/lit/tests/Inputs/shtest-timeout/lit.cfg
Log Message:
-----------
Reland: [lit] Move maxIndividualTestTime from global to test suite config (#199996)
Simplify LitConfig initialization and setter to allow None values.
TestingConfig.maxIndividualTestTime is initialized to 0 (or resolved to
0 if None) strictly during initialization.
This fixes an issue where the aggressive BOLT timeout of 60s (previously
set globally on lit_config) was leaking and affecting libc++ tests. By
moving the timeout configuration from the global lit_config to the
individual test suite config, we ensure that timeouts are isolated and
respect suite-local settings without leaking.
PR Stack:
* https://github.com/llvm/llvm-project/pull/198192
* https://github.com/llvm/llvm-project/pull/199886
* ➤ https://github.com/llvm/llvm-project/pull/199996
* https://github.com/llvm/llvm-project/pull/198193
The diff from #198192 is 39b632f741012bfbff9858407765e45435ad95ff
Assisted-by: Gemini
Commit: bf005a1227a4822c7c2535dd5f5f3626fbe441b2
https://github.com/llvm/llvm-project/commit/bf005a1227a4822c7c2535dd5f5f3626fbe441b2
Author: Ryosuke Niwa <rniwa at webkit.org>
Date: 2026-05-27 (Wed, 27 May 2026)
Changed paths:
M clang/lib/StaticAnalyzer/Checkers/WebKit/ASTUtils.cpp
M clang/lib/StaticAnalyzer/Checkers/WebKit/PtrTypesSemantics.cpp
M clang/test/Analysis/Checkers/WebKit/call-args.cpp
M clang/test/Analysis/Checkers/WebKit/objc-mock-types.h
A clang/test/Analysis/Checkers/WebKit/unretained-call-args-member.mm
Log Message:
-----------
[alpha.webkit.UnretainedCallArgsChecker] Emit a warning for a non-const RetainPtr member (#184243)
This PR fixes a bug in UnretainedCallArgsChecker that it wouldn't emit a
warning when calling a function with the return value of a getter of a
RetainPtr non-const member variable even if such a member variable could
be mutated during such a function call.
The bug caused by tryToFindPtrOrigin treating any call of a getter on a
smart pointer member variable as safe. Fixed the bug by limiting this to
only when the variable is a local variable or a function parameter.
In addition, this PR fixes a bug in WebKit checkers that it would
erroneously emit a warning when calling a getter on a const RetainPtr
member variable beacuse isOwnerPtr was returning false for RetainPtr.
This false negative was previously masked / hidden by the false positive
fixed in this PR.
---------
Co-authored-by: Balázs Benics <benicsbalazs at gmail.com>
Commit: 9ca1941d8ea2cc9f95def825d2c77cc91e2d2fd5
https://github.com/llvm/llvm-project/commit/9ca1941d8ea2cc9f95def825d2c77cc91e2d2fd5
Author: Valentin Clement (バレンタイン クレメン) <clementval at gmail.com>
Date: 2026-05-27 (Wed, 27 May 2026)
Changed paths:
M flang-rt/cmake/modules/AddFlangRTOffload.cmake
M flang-rt/lib/runtime/CMakeLists.txt
Log Message:
-----------
[flang-rt][cuda] Move thin I/O to ptx only (#200054)
Commit: b0516c58736cf1d83188e0b04cf5acb123e382e4
https://github.com/llvm/llvm-project/commit/b0516c58736cf1d83188e0b04cf5acb123e382e4
Author: Justin Lebar <justin.lebar at gmail.com>
Date: 2026-05-27 (Wed, 27 May 2026)
Changed paths:
M llvm/lib/Transforms/Scalar/SeparateConstOffsetFromGEP.cpp
M llvm/test/Transforms/SeparateConstOffsetFromGEP/AMDGPU/lower-gep.ll
M llvm/test/Transforms/SeparateConstOffsetFromGEP/split-gep-sub.ll
Log Message:
-----------
[SeparateConstOffsetFromGEP] Set `inbounds` correctly. (#199304)
swapGEPOperand reorders the GEPs (ptr+off)+const into (ptr+const)+off.
When it does so, it needs to determine if the inner GEP is inbounds.
Previously the way it did this was to call
stripAndAccumulateInBoundsConstantOffsets on (ptr+const), and then check
if this offset was indeed in-bounds.
However, this GEP was not necessarily marked as `inbounds` itself. If it
was not, stripAndAccumulateInBoundsConstantOffsets would return 0 for
the offset (instead of `const`), in which case we'd check if
`0 < [obj width]`, which is trivially true, and then incorrectly mark
the GEP as inbounds.
This bug was found by a large run of Opus 4.7 looking for bugs in LLVM.
Commit: 4fe4d9844862451b38bb3bd7329ab1b29916e3be
https://github.com/llvm/llvm-project/commit/4fe4d9844862451b38bb3bd7329ab1b29916e3be
Author: Justin Lebar <justin.lebar at gmail.com>
Date: 2026-05-27 (Wed, 27 May 2026)
Changed paths:
M llvm/lib/IR/Instructions.cpp
M llvm/test/Transforms/SimpleLoopUnswitch/trivial-unswitch-profmd.ll
Log Message:
-----------
[IR] Handle `expected` tag in switch branch weights. (#200025)
Switch branch weight metadata has an optional `expected` tag.
SwitchInstProfUpdateWrapper::getSuccessorWeight() did not handle this
tag; if it was present, it would return nullopt, effectively ignoring
the metadata.
This bug was found by a large run of Opus 4.7 looking for bugs in LLVM.
Commit: 4e39ea3d5e7320035384072021582af74d91b1a9
https://github.com/llvm/llvm-project/commit/4e39ea3d5e7320035384072021582af74d91b1a9
Author: Scott Linder <scott.linder at amd.com>
Date: 2026-05-27 (Wed, 27 May 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/SIFrameLowering.cpp
M llvm/lib/Target/AMDGPU/SIMachineFunctionInfo.h
M llvm/lib/Target/AMDGPU/SIRegisterInfo.cpp
M llvm/lib/Target/AMDGPU/SIRegisterInfo.h
A llvm/test/CodeGen/AMDGPU/amdgpu-spill-cfi-saved-regs.ll
Log Message:
-----------
[AMDGPU] Implement -amdgpu-spill-cfi-saved-regs (#183149)
These spills need special CFI anyway, so implementing them directly
where CFI is emitted avoids the need to invent a mechanism to track them
from ISel.
Change-Id: If4f34abb3a8e0e46b859a7c74ade21eff58c4047
Co-authored-by: Scott Linder <scott.linder at amd.com>
Co-authored-by: Venkata Ramanaiah Nalamothu <VenkataRamanaiah.Nalamothu at amd.com>
Commit: 5a7e4a0cf7f53a74b87c53b792b6a1d3ece3df28
https://github.com/llvm/llvm-project/commit/5a7e4a0cf7f53a74b87c53b792b6a1d3ece3df28
Author: Scott Linder <scott.linder at amd.com>
Date: 2026-05-27 (Wed, 27 May 2026)
Changed paths:
M llvm/include/llvm/CodeGen/MachineFunction.h
M llvm/include/llvm/MC/MCDwarf.h
M llvm/lib/CodeGen/MachineFunction.cpp
M llvm/lib/MC/MCDwarf.cpp
M llvm/lib/Target/AMDGPU/SIMachineFunctionInfo.cpp
M llvm/test/CodeGen/AMDGPU/debug-frame.ll
M llvm/test/CodeGen/AMDGPU/dwarf-multi-register-use-crash.ll
M llvm/test/CodeGen/AMDGPU/insert-waitcnts-crash.ll
M llvm/test/CodeGen/AMDGPU/no-source-locations-in-prologue.ll
M llvm/test/CodeGen/AMDGPU/pei-vgpr-block-spill-csr.mir
M llvm/test/CodeGen/AMDGPU/sgpr-spill-overlap-wwm-reserve.mir
Log Message:
-----------
[AMDGPU][MC] Replace shifted registers in CFI instructions (#183147)
Change-Id: I0d99e9fe43ec3b6fecac20531119956dca2e4e5c
Commit: b6161b9f4c9e306fa07295db67a7ecc8cfadcffb
https://github.com/llvm/llvm-project/commit/b6161b9f4c9e306fa07295db67a7ecc8cfadcffb
Author: Jeff Bailey <jbailey at raspberryginger.com>
Date: 2026-05-27 (Wed, 27 May 2026)
Changed paths:
M libc/include/CMakeLists.txt
Log Message:
-----------
[libc] Add missing struct_mmsghdr dependency to sys_socket (#200051)
Updated libc/include/CMakeLists.txt to add
.llvm-libc-types.struct_mmsghdr to the sys_socket dependency list. This
ensures that the generated sys/socket.h correctly includes the
struct_mmsghdr.h type header.
Assisted-by: Automated tooling, human reviewed.
Commit: 5ae73b942f44295c0baff138effe7272a94c7a1b
https://github.com/llvm/llvm-project/commit/5ae73b942f44295c0baff138effe7272a94c7a1b
Author: Jason Molenda <jmolenda at apple.com>
Date: 2026-05-27 (Wed, 27 May 2026)
Changed paths:
M lldb/include/lldb/Core/Module.h
M lldb/source/Commands/CommandObjectTarget.cpp
M lldb/source/Core/Module.cpp
Log Message:
-----------
[lldb] Keep addr for Memory Modules separate (#199810)
This change is to make DataFileCache symbol table caching work with
memory-read binary modules.
When we read a Module out of memory, we keep the address of the module
in Module's m_object_name field as a string. This is normally the name
of a file in a ranlib/static library/.a archive like the "main.o" in
"foo.a(main.o)". The address is most often seen in the "image list"
output, and is the only easy way to distinguish in that output which
binaries were read out of memory, versus found on local disk. The "name"
of the Module ends up being the combination of the FileSpec plus this
m_object_name.
Reading a binary out of memory is expensive, primarily because of
reading the symbol table. The DataFileCache feature that Greg introduced
five years ago can cache the Symbol Table for a binary locally, and when
we see the same binary loaded again in a future debug session/lldb
session, we can skip parsing the symbol table (or in the case of Memory
Module, reading it from memory).
Unfortunately because the "name" of the Module is the combination of the
FileSpec PLUS the address, if this is a system where binaries can load
at different addresses, we may not be able to use the DataFileCache for
a memory module. The address should not be part of the name for this.
In Module, I created a new optional ivar to track the memory module
address, if this is one, instead of putting the string representation in
m_object_name. In all places (except the DataFileCache name
construction), I append the address to the name just like we do with
m_object_name.
There were a few logging points that were manually constructing the name
when a method would do it for them already; I changed them to call the
method instead.
Probably the least clean part is in CommandObjectTarget (the image list
output), we add the ObjectName to the FileSpec here as well. For now,
instead of trying to leverage one of the methods in Module that combine
them already, I changed it to use the same change.
I used a std::optional for this address instead of the
LLDB_INVALID_ADDRESS convention because it was a lot cleaner to read, I
thought, even if it is different than most often used in the codebase.
Open to using the older coding style if other people think consistency
is more important.
Commit: 78987e85ae0930b10d2588a9f8333a2fa8c3014d
https://github.com/llvm/llvm-project/commit/78987e85ae0930b10d2588a9f8333a2fa8c3014d
Author: Jason Molenda <jmolenda at apple.com>
Date: 2026-05-27 (Wed, 27 May 2026)
Changed paths:
M lldb/include/lldb/Core/DataFileCache.h
M lldb/include/lldb/Core/Module.h
M lldb/include/lldb/Symbol/ObjectFile.h
M lldb/include/lldb/Symbol/Symbol.h
M lldb/include/lldb/Symbol/Symtab.h
M lldb/include/lldb/Utility/DataEncoder.h
M lldb/source/Core/DataFileCache.cpp
M lldb/source/Core/Mangled.cpp
M lldb/source/Symbol/Symtab.cpp
Log Message:
-----------
[lldb] Edits and clarifications to DataFileCache comments, NFC (#199787)
I was reading through Greg Clayton's DataFileCache PR and fixed a few
small typeos as I went along.
I also had a little trouble understanding the two types of hashes that
are calculated for a file, at first, and I tried to write comments for
the relevant methods (in Module, ObjectFile, and DataFileCache) to be
more explicit about their role and the role of the other hashes that are
calculated. It may be more detail than necessary, but it would have been
helpful for me while reading this through.
Commit: 055a4ba0b27794d1dd04149f87ebc3cc47bc2bd9
https://github.com/llvm/llvm-project/commit/055a4ba0b27794d1dd04149f87ebc3cc47bc2bd9
Author: Vlad Serebrennikov <serebrennikov.vladislav at gmail.com>
Date: 2026-05-27 (Wed, 27 May 2026)
Changed paths:
M clang/www/cxx_dr_status.html
Log Message:
-----------
[clang] Update C++ DR status page (#200053)
Updates from 2026-05-19 CWG telecon.
Commit: 9fa9ab338f753cf4fd7c6f7c3c8424da7d15c588
https://github.com/llvm/llvm-project/commit/9fa9ab338f753cf4fd7c6f7c3c8424da7d15c588
Author: Craig Topper <craig.topper at sifive.com>
Date: 2026-05-27 (Wed, 27 May 2026)
Changed paths:
M llvm/lib/Target/RISCV/RISCVFeatures.td
Log Message:
-----------
[RISCV] Remove unused Predicates for Zicfilp. NFC (#200028)
Commit: 8fc12f1e3f6aab79aefd70cf68f9c92439e2fc32
https://github.com/llvm/llvm-project/commit/8fc12f1e3f6aab79aefd70cf68f9c92439e2fc32
Author: Valentin Clement (バレンタイン クレメン) <clementval at gmail.com>
Date: 2026-05-27 (Wed, 27 May 2026)
Changed paths:
M flang-rt/cmake/modules/AddFlangRTOffload.cmake
Log Message:
-----------
[flang-rt][cuda] Set RT_CUDA_THIN_IO=1 only for PTX object (#200063)
Commit: e1dd984a809c9c7b8cc3731e3b8eeb8d01fbc8c1
https://github.com/llvm/llvm-project/commit/e1dd984a809c9c7b8cc3731e3b8eeb8d01fbc8c1
Author: Susan Tan (ス-ザン タン) <zujunt at nvidia.com>
Date: 2026-05-27 (Wed, 27 May 2026)
Changed paths:
M flang/lib/Optimizer/Transforms/FIRToMemRef.cpp
M flang/test/Transforms/FIRToMemRef/slice-projected.mlir
Log Message:
-----------
[flang][FIRToMemRef] fix stride calculation for complex lowering (#200035)
**Summary**
When `fir.array_coor` targets a projected slice of a complex array (path
0 = real, 1 = imag), FIRToMemRef must not treat the result as a dense
memref.
**Bug:** The pass stopped after fir.convert to `memref<…×complex>` (or
static-shape fast path) and used default/dense strides. Loads/stores
then stepped by sizeof(complex) instead of sizeof(re)/sizeof(im).
**Fix:** For constant `%re/%im` on `complex<T>` storage:
`fir.convert` storage to `memref<…×2×T>` and index the component (0 or
1).
Read layout from `fir.box_dims` on the box (even if the memref shape is
static).
Set each memref stride to `box_dims_byte_stride / sizeof(T)`.
Advised by Cursor
Commit: e8cc37e60d04ea2e25f03fbeeb8de59f4e640448
https://github.com/llvm/llvm-project/commit/e8cc37e60d04ea2e25f03fbeeb8de59f4e640448
Author: Jan Svoboda <jan_svoboda at apple.com>
Date: 2026-05-27 (Wed, 27 May 2026)
Changed paths:
M clang/lib/DependencyScanning/DependencyScannerImpl.cpp
Log Message:
-----------
[clang][deps] Disable app extensions during scanning (#200041)
Application extension contributes to the context hash, but only affects
the availability attribute on declarations. Since it cannot affect
dependencies, disable it for the scan to reduce the number of scanning
PCM variants.
Commit: 00b4695f1dc6b04168be2e1ed8368624d768314f
https://github.com/llvm/llvm-project/commit/00b4695f1dc6b04168be2e1ed8368624d768314f
Author: Justin Lebar <justin.lebar at gmail.com>
Date: 2026-05-27 (Wed, 27 May 2026)
Changed paths:
M llvm/lib/CodeGen/CodeGenPrepare.cpp
M llvm/test/CodeGen/AArch64/fast-isel-branch-cond-split.ll
A llvm/test/Transforms/CodeGenPrepare/X86/split-branch-cond-weights.ll
Log Message:
-----------
[CodeGenPrepare] Use recomputed split-branch weights. (#199822)
splitBranchCondition computes new branch weights after splitting an
and/or condition into two branches, but then passed the original weights
to createBranchWeights at each metadata update. The recomputed values
were discarded.
Pass the scaled NewTrueWeight/NewFalseWeight values when installing
metadata on both generated branches.
This bug was found by a large run of Opus 4.7 looking for bugs in LLVM.
Commit: 7f82efb3966868dfe7d0b37dd6aa104007d264ff
https://github.com/llvm/llvm-project/commit/7f82efb3966868dfe7d0b37dd6aa104007d264ff
Author: Guy David <guyda96 at gmail.com>
Date: 2026-05-28 (Thu, 28 May 2026)
Changed paths:
M llvm/include/module.modulemap
Log Message:
-----------
[Object] Add missing BBAddrMap.def to module map (#199961)
Added in 532940bdee66bf5f36a70578698aab66f16919af.
Commit: f13305bac8ea2237e6fbab29f172e6a5a5058a1c
https://github.com/llvm/llvm-project/commit/f13305bac8ea2237e6fbab29f172e6a5a5058a1c
Author: Min-Yih Hsu <min.hsu at sifive.com>
Date: 2026-05-27 (Wed, 27 May 2026)
Changed paths:
M llvm/lib/Transforms/Vectorize/VectorCombine.cpp
A llvm/test/Transforms/VectorCombine/RISCV/vector-deinterleave2.ll
Log Message:
-----------
[VectorCombine] Fold deinterleave2 with smaller effective element size (#192121)
Found in real-world code where this sequence:
```
%d = llvm.vector.deinterleave2 <vscale x 16 x i32> %v
%f0 = extractvalue { <vscale x 8 x i32>, <vscale x 8 x i32> } %d, 0
%f1 = extractvalue { <vscale x 8 x i32>, <vscale x 8 x i32> } %d, 1
%low0 = and <vscale x 8 x i32> %f0, splat (i32 65535)
%low1 = shl <vscale x 8 x i32> %f1, splat (i32 16)
%merge0 = or disjoint <vscale x 8 x i32> %low0, %low1
%high0 = and <vscale x 8 x i32> %f1, splat (i32 -65536)
%high1 = lshr <vscale x 8 x i32> %f0, splat (i32 16)
%merge1 = or disjoint <vscale x 8 x i32> %high0, %high1
```
is really just doing `deinterleave2` but on `<vscale x 32 x i16>`. That
is, the same total vector size but with half the element width. So we
can turn it into:
```
%narrow.v = bitcast <vscale x 16 x i32> %v to <vscale x 32 x i16>
%d = llvm.vector.deinterleave2 <vscale x 32 x i16> %narrow.v
%f0 = extractvalue { <vscale x 16 x i16>, <vscale x 16 x i16> } %d, 0
%f1 = extractvalue { <vscale x 16 x i16>, <vscale x 16 x i16> } %d, 1
%merge0 = bitcast <vscale x 16 x i16> %f0 to <vscale x 8 x i32>
%merge1 = bitcast <vscale x 16 x i16> %f1 to <vscale x 8 x i32>
```
I put this in VectorCombine because I'm worried that the newly created
bitcast might be expensive for some targets, hence a profitability check
before committing the transformation.
Commit: eb0cb0c69526a8bff5b3b1399a2bd7da4cd3a148
https://github.com/llvm/llvm-project/commit/eb0cb0c69526a8bff5b3b1399a2bd7da4cd3a148
Author: Zhijie Wang <yesterda9 at gmail.com>
Date: 2026-05-27 (Wed, 27 May 2026)
Changed paths:
M clang/include/clang/Analysis/Analyses/LifetimeSafety/LifetimeAnnotations.h
M clang/lib/Analysis/LifetimeSafety/FactsGenerator.cpp
M clang/lib/Analysis/LifetimeSafety/LifetimeAnnotations.cpp
M clang/test/Sema/Inputs/lifetime-analysis.h
M clang/test/Sema/warn-lifetime-safety.cpp
Log Message:
-----------
[LifetimeSafety] Propagate inner origins through std::move and related casts (#199600)
std::move and related casts (std::forward, std::forward_like,
std::move_if_noexcept, std::as_const) are reference casts: the result
refers to the same object as the argument. Flow all origin levels for
this family.
Fixes #191954
Commit: 9409c07de6378507397ecdb6f05f628f58110112
https://github.com/llvm/llvm-project/commit/9409c07de6378507397ecdb6f05f628f58110112
Author: Jason Molenda <jmolenda at apple.com>
Date: 2026-05-27 (Wed, 27 May 2026)
Changed paths:
M lldb/source/Plugins/DynamicLoader/MacOSX-DYLD/DynamicLoaderDarwin.cpp
M lldb/source/Plugins/DynamicLoader/MacOSX-DYLD/DynamicLoaderDarwin.h
Log Message:
-----------
[lldb][Darwin] Read Mach-O binaries out of memory more efficiently (#200072)
When lldb needs to read a Mach-O binary out of memory, it first reads
512 bytes to get the mach header, which includes the size of the load
commands, and then does a second read to get the mach header and load
commands.
I am changing the initial read to get 3192 bytes, which will include the
full load commands for most binaries.
In April I changed debugserver to return the correct size of the mach
header and load commands in a `sizeof_mh_and_loadcmds` key. If this
number is provided, refine the amount we read to this size.
This reduces the number of memory read packets we issue from 2 to 1 for
a memory module, outside of packets that may be needed to get the symbol
table.
Commit: 9d1644738134c7132058dddf4b97f2a782429862
https://github.com/llvm/llvm-project/commit/9d1644738134c7132058dddf4b97f2a782429862
Author: Harald van Dijk <hdijk at accesssoftek.com>
Date: 2026-05-28 (Thu, 28 May 2026)
Changed paths:
M llvm/lib/Target/DirectX/DXILWriter/DXILBitcodeWriter.cpp
M llvm/lib/Target/DirectX/DXILWriter/DXILValueEnumerator.cpp
M llvm/lib/Target/DirectX/DXILWriter/DXILValueEnumerator.h
M llvm/lib/Target/DirectX/DirectXIRPasses/CMakeLists.txt
M llvm/lib/Target/DirectX/DirectXIRPasses/DXILDebugInfo.cpp
M llvm/lib/Target/DirectX/DirectXIRPasses/DXILDebugInfo.h
A llvm/test/tools/dxil-dis/dbg-value.ll
M llvm/test/tools/dxil-dis/debug-info.ll
Log Message:
-----------
[DirectX] Add an "offset" operand to llvm.dbg.value (#197478)
Offset operand was removed in abe04759a6, so we need to bring it back
for DXIL. If offset is not specified, it should be zero.
---------
Co-authored-by: Andrew Savonichev <andrew.savonichev at gmail.com>
Commit: e69fb46030a03bcd9556d60844defd2bb9627587
https://github.com/llvm/llvm-project/commit/e69fb46030a03bcd9556d60844defd2bb9627587
Author: Roy Shi <royitaqi at users.noreply.github.com>
Date: 2026-05-27 (Wed, 27 May 2026)
Changed paths:
M llvm/lib/DebugInfo/GSYM/GsymReader.cpp
M llvm/tools/llvm-gsymutil/Opts.td
M llvm/tools/llvm-gsymutil/llvm-gsymutil.cpp
Log Message:
-----------
[gsymutil] Disable readahead in `GsymReader::openFile()` (#199230)
`GsymReader::lookup()` has random access pattern (i.e. binary search an
address, then spot-load/parse info from rest of the GSYM data).
Readahead strategies in kernels (which was enabled by default) don't
necessarily improve (and may degrade) performance. This patch disables
readahead.
In a production system, similar change has seen 5% improvement on IOPS
and data reads. An offline performance test on a Linux machine shows
similar results - it reduces 14.3% total data read, 3.5% CPU%, and 2.9%
wall time (while adding 9.4% page faults). The reduction of total data
read and CPU % may help the performance of a heavily-loaded production
system.
```
┌────────────────┬─────────────┬─────────┬────────┐
│ Metric │ MADV_RANDOM │ Default │ Diff │
├────────────────┼─────────────┼─────────┼────────┤
│ Wall (s) │ 0.286 │ 0.294 │ -2.9% │
├────────────────┼─────────────┼─────────┼────────┤
│ Major PF │ 203.6 │ 186.0 │ +9.4% │
├────────────────┼─────────────┼─────────┼────────┤
│ Minor PF │ 4433.1 │ 4450.3 │ -0.4% │
├────────────────┼─────────────┼─────────┼────────┤
│ FS inputs (MB) │ 118.8 │ 138.7 │ -14.3% │
├────────────────┼─────────────┼─────────┼────────┤
│ CPU % │ 48.8 │ 50.6 │ -3.5% │
└────────────────┴─────────────┴─────────┴────────┘
```
The test is performed by doing 100 cold runs, where each run first
purges kernel page cache, then opens/mmaps a 3.8 GB GSYM file, and then
looks up 3 addresses at the beginning/middle/end of the address list.
See [test
script](https://gist.github.com/royitaqi/c06c733cccfbf747d63750b06db77b4a).
The pre-existing hidden option `llvm-gsymutil --benchmark-reader` is
extended to take optional `=<start>,<stride>` to make performance
testing easier.
Commit: 5db13643f4b7038db0ca304d9f8900122502935c
https://github.com/llvm/llvm-project/commit/5db13643f4b7038db0ca304d9f8900122502935c
Author: Yaxun (Sam) Liu <yaxun.liu at amd.com>
Date: 2026-05-27 (Wed, 27 May 2026)
Changed paths:
M clang/lib/CodeGen/CGCUDANV.cpp
A clang/test/CodeGenHIP/offload-pgo-sections.hip
M compiler-rt/lib/profile/CMakeLists.txt
M compiler-rt/lib/profile/InstrProfilingFile.c
A compiler-rt/lib/profile/InstrProfilingPlatformROCm.cpp
M llvm/include/llvm/IR/RuntimeLibcalls.td
M llvm/include/llvm/ProfileData/InstrProf.h
M llvm/lib/Transforms/Instrumentation/InstrProfiling.cpp
M llvm/lib/Transforms/Instrumentation/PGOInstrumentation.cpp
A llvm/test/Instrumentation/InstrProfiling/amdgpu-instrumentation.ll
A llvm/test/Instrumentation/InstrProfiling/amdgpu-profc-arrays.ll
A llvm/test/Instrumentation/InstrProfiling/gpu-weak.ll
A llvm/test/Transforms/PGOProfile/amdgpu-disable-value-profiling.ll
Log Message:
-----------
[PGO][AMDGPU] Add basic HIP offload PGO support (#177665)
Provide the minimum HIP/offload path for device profile collection and
merge on HIP before layering profile-format and uniformity-specific
changes separately.
This adds the ROCm collection runtime, hooks device collection into the
host write-file path, lowers AMDGPU instrumentation to
__llvm_profile_instrument_gpu with regular counters, and disables GPU
indirect-call value profiling.
Commit: 1670d39972a1c6dd4a9e6f54d509a86a72dae1da
https://github.com/llvm/llvm-project/commit/1670d39972a1c6dd4a9e6f54d509a86a72dae1da
Author: Harald van Dijk <hdijk at accesssoftek.com>
Date: 2026-05-28 (Thu, 28 May 2026)
Changed paths:
M llvm/lib/Target/DirectX/DXILWriter/DXILBitcodeWriter.cpp
M llvm/lib/Target/DirectX/DirectXIRPasses/PointerTypeAnalysis.cpp
A llvm/test/tools/dxil-dis/dbg-declare-undef.ll
Log Message:
-----------
[DirectX] Handle undef the same way as null (#197507)
Commit: 9cc6c9375faa11722435a150c9829df2452b48ca
https://github.com/llvm/llvm-project/commit/9cc6c9375faa11722435a150c9829df2452b48ca
Author: Wenju He <wenju.he at intel.com>
Date: 2026-05-28 (Thu, 28 May 2026)
Changed paths:
M libclc/clc/include/clc/relational/clc_signbit.h
M libclc/clc/lib/generic/relational/clc_signbit.cl
A libclc/clc/lib/generic/relational/clc_signbit.inc
Log Message:
-----------
[libclc] Optimize and vectorize signbit (#199497)
Replace element-wise scalarizing implementation with bitcast and shift.
For example,
define hidden range(i32 -1, 1) <2 x i32> @_Z7signbitDv2_f(<2 x float>
noundef %0) #0 {
%2 = bitcast <2 x float> %0 to <2 x i32>
%3 = extractelement <2 x i32> %2, i64 0
%4 = lshr i32 %3, 31
%5 = insertelement <2 x i32> poison, i32 %4, i64 0
%6 = extractelement <2 x i32> %2, i64 1
%7 = lshr i32 %6, 31
%8 = insertelement <2 x i32> %5, i32 %7, i64 1
%9 = icmp ne <2 x i32> %8, zeroinitializer
%10 = sext <2 x i1> %9 to <2 x i32>
ret <2 x i32> %10
}
is changed to:
define hidden noundef range(i32 -1, 1) <2 x i32> @_Z7signbitDv2_f(<2 x
float> noundef %0) #0 {
%2 = bitcast <2 x float> %0 to <2 x i32>
%3 = ashr <2 x i32> %2, splat (i32 31)
ret <2 x i32> %3
}
Commit: 1a5822e3c9421fd0a270e7bad3dff92219dd9da3
https://github.com/llvm/llvm-project/commit/1a5822e3c9421fd0a270e7bad3dff92219dd9da3
Author: Adrian Vogelsgesang <avogelsgesang at salesforce.com>
Date: 2026-05-28 (Thu, 28 May 2026)
Changed paths:
M clang/docs/ReleaseNotes.rst
M clang/test/CodeGenCoroutines/coro-gro4.cpp
M clang/test/CodeGenCoroutines/coro-symmetric-transfer-03.cpp
M clang/test/CodeGenCoroutines/coro-symmetric-transfer-04.cpp
M clang/test/CodeGenCoroutines/pr65018.cpp
M llvm/docs/Coroutines.rst
M llvm/docs/ReleaseNotes.md
M llvm/include/llvm/Transforms/Coroutines/CoroShape.h
M llvm/lib/Transforms/Coroutines/CoroCleanup.cpp
M llvm/lib/Transforms/Coroutines/CoroEarly.cpp
M llvm/lib/Transforms/Coroutines/CoroSplit.cpp
M llvm/test/Transforms/Coroutines/coro-alloc-with-param-O0.ll
M llvm/test/Transforms/Coroutines/coro-alloc-with-param-O2.ll
M llvm/test/Transforms/Coroutines/coro-alloca-07.ll
M llvm/test/Transforms/Coroutines/coro-await-suspend-handle-in-ramp.ll
M llvm/test/Transforms/Coroutines/coro-await-suspend-lower-invoke.ll
M llvm/test/Transforms/Coroutines/coro-await-suspend-lower.ll
M llvm/test/Transforms/Coroutines/coro-debug-O2.ll
M llvm/test/Transforms/Coroutines/coro-debug-coro-frame.ll
M llvm/test/Transforms/Coroutines/coro-debug-dbg.values-not_used_in_frame.ll
M llvm/test/Transforms/Coroutines/coro-debug-frame-variable.ll
M llvm/test/Transforms/Coroutines/coro-debug-spill-dbg.declare.ll
M llvm/test/Transforms/Coroutines/coro-debug.ll
M llvm/test/Transforms/Coroutines/coro-eh-aware-edge-split-00.ll
M llvm/test/Transforms/Coroutines/coro-eh-aware-edge-split-01.ll
M llvm/test/Transforms/Coroutines/coro-eh-aware-edge-split-02.ll
M llvm/test/Transforms/Coroutines/coro-frame-arrayalloca.ll
M llvm/test/Transforms/Coroutines/coro-frame.ll
M llvm/test/Transforms/Coroutines/coro-noop-pacbti.ll
M llvm/test/Transforms/Coroutines/coro-noop.ll
M llvm/test/Transforms/Coroutines/coro-padding.ll
M llvm/test/Transforms/Coroutines/coro-resume-destroy.ll
M llvm/test/Transforms/Coroutines/coro-spill-corobegin.ll
M llvm/test/Transforms/Coroutines/coro-spill-promise-02.ll
M llvm/test/Transforms/Coroutines/coro-spill-promise.ll
M llvm/test/Transforms/Coroutines/coro-spill-suspend.ll
M llvm/test/Transforms/Coroutines/coro-split-dbg-labels-inlined.ll
M llvm/test/Transforms/Coroutines/coro-split-dbg-labels.ll
M llvm/test/Transforms/Coroutines/coro-split-eh-00.ll
M llvm/test/Transforms/Coroutines/coro-split-eh-01.ll
M llvm/test/Transforms/Coroutines/coro-split-musttail-chain-pgo-counter-promo.ll
M llvm/test/Transforms/Coroutines/coro-split-musttail.ll
M llvm/test/Transforms/Coroutines/coro-split-musttail1.ll
M llvm/test/Transforms/Coroutines/coro-split-musttail2.ll
M llvm/test/Transforms/Coroutines/coro-split-musttail3.ll
M llvm/test/Transforms/Coroutines/coro-split-musttail4.ll
M llvm/test/Transforms/Coroutines/coro-split-musttail5.ll
M llvm/test/Transforms/Coroutines/coro-split-musttail6.ll
M llvm/test/Transforms/Coroutines/coro-split-musttail7.ll
M llvm/test/Transforms/Coroutines/coro-split-sink-lifetime-01.ll
M llvm/test/Transforms/Coroutines/coro-split-sink-lifetime-02.ll
M llvm/test/Transforms/Coroutines/coro-split-sink-lifetime-03.ll
M llvm/test/Transforms/Coroutines/coro-split-sink-lifetime-04.ll
M llvm/test/Transforms/Coroutines/coro-split-tbaa-md.ll
M llvm/test/Transforms/Coroutines/coro-zero-alloca.ll
Log Message:
-----------
[coro] Use C calling convention for C++20 coroutines (#198943)
Change the calling convention for resume / destroy functions of C++
coroutines from `fastcc` to the C calling convention.
The resume / destroy functions are exposed as part of the coroutine ABI
and must be compatible with other compilers and other versions of LLVM.
fastcc is an LLVM-internal, unstable calling convention, though.
In practice, fastcc and the C calling convention are in sync for `void
func(void*)` function signatures on almost all platforms. Therefore, I
think we can still do this change without widespread ABI breakage.
`fastcc` and `ccc` do differ for i686 (x86-32), MIPS O32, PowerPC64
ELFv1 and Lanai. Afaik, those are all legacy ABIs and a recent feature
like C++20 coroutines is unlikely to be used by projects still targeting
legacy ABIs.
Historical context: I tried to figure out why `fastcc` was used. It is
around since the original commit f93082e71a94 from 2016, predating the
cross-vendor coroutine ABI work. I could not find any discussion of
whether this should use `fastcc` on the review or on the mailing list.
As a side-effect, this also fixes #91123.
Co-authored-by: Cursor <cursoragent at cursor.com>
Commit: 830c8d625421ed5e86c73acb523f92ee4e39ee84
https://github.com/llvm/llvm-project/commit/830c8d625421ed5e86c73acb523f92ee4e39ee84
Author: Derek Schuff <dschuff at chromium.org>
Date: 2026-05-28 (Thu, 28 May 2026)
Changed paths:
A llvm/test/tools/llvm-symbolizer/Inputs/wasm-basic.yaml
R llvm/test/tools/llvm-symbolizer/lit.local.cfg
M llvm/test/tools/llvm-symbolizer/wasm-basic.s
Log Message:
-----------
test(llvm-symbolizer): fix Wasm layering violation by using YAML (#200080)
Avoid using wasm-ld in LLVM tests by prebuilding the test binary
as a YAML file and using yaml2obj at test time.
This matches the approach taken in
4bce216e6b550c770f2e536422c3d95333f65ba3.
Because yaml2obj always uses 5-byte LEBs, the CODE section offset
shifted from 0x37 to 0x4b, so the file offsets passed to llvm-symbolizer
were updated accordingly.
Replaces #200046
Assisted-by: Gemini
Commit: 740e52bc99696661f357d4feb975f0209082cea9
https://github.com/llvm/llvm-project/commit/740e52bc99696661f357d4feb975f0209082cea9
Author: Harald van Dijk <hdijk at accesssoftek.com>
Date: 2026-05-28 (Thu, 28 May 2026)
Changed paths:
M llvm/lib/Target/DirectX/DirectXIRPasses/DXILDebugInfo.cpp
A llvm/test/tools/dxil-dis/di-label.ll
Log Message:
-----------
[DirectX] Drop debug labels (#197490)
Debug labels did not exist in LLVM 3.7 and have no equivalent.
Commit: d65897289e68696fa5f5b2d2f449f7633fff13ab
https://github.com/llvm/llvm-project/commit/d65897289e68696fa5f5b2d2f449f7633fff13ab
Author: Ryosuke Niwa <rniwa at webkit.org>
Date: 2026-05-27 (Wed, 27 May 2026)
Changed paths:
M clang/lib/StaticAnalyzer/Checkers/WebKit/RawPtrRefLocalVarsChecker.cpp
M clang/test/Analysis/Checkers/WebKit/uncounted-local-vars.cpp
M clang/test/Analysis/Checkers/WebKit/unretained-local-vars.mm
Log Message:
-----------
[alpha.webkit.UncountedLocalVarsChecker] Detect an assignment to a guardian argument (#198695)
A function parameter of type RefPtr<T>& should not be used as a guardian
variable of a raw pointer/reference variable if the function body
contains an assignment to it since such an assignment can shorten the
lifetime of the guarded object.
Commit: dbe6800baeec47c538f95421348c6c62a38f061c
https://github.com/llvm/llvm-project/commit/dbe6800baeec47c538f95421348c6c62a38f061c
Author: Stanislav Mekhanoshin <Stanislav.Mekhanoshin at amd.com>
Date: 2026-05-27 (Wed, 27 May 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp
M llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUInstPrinter.cpp
M llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUMCCodeEmitter.cpp
M llvm/lib/Target/AMDGPU/SIInstrInfo.cpp
M llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.cpp
M llvm/test/CodeGen/AMDGPU/arbitrary-fp-to-float.ll
M llvm/test/CodeGen/AMDGPU/br_cc.f16.ll
M llvm/test/CodeGen/AMDGPU/call-argument-types.ll
M llvm/test/CodeGen/AMDGPU/code-size-estimate.ll
M llvm/test/CodeGen/AMDGPU/commute-compares-scalar-float.ll
M llvm/test/CodeGen/AMDGPU/dagcombine-fmul-sel.ll
M llvm/test/CodeGen/AMDGPU/extract-subvector-16bit.ll
M llvm/test/CodeGen/AMDGPU/fcanonicalize.bf16.ll
M llvm/test/CodeGen/AMDGPU/fcanonicalize.f16.ll
M llvm/test/CodeGen/AMDGPU/fmed3.bf16.ll
M llvm/test/CodeGen/AMDGPU/fmul-to-ldexp.ll
M llvm/test/CodeGen/AMDGPU/gfx-callable-argument-types.ll
M llvm/test/CodeGen/AMDGPU/imm16.ll
M llvm/test/CodeGen/AMDGPU/immv216.ll
M llvm/test/CodeGen/AMDGPU/llvm.fptrunc.round.ll
M llvm/test/CodeGen/AMDGPU/llvm.round.ll
M llvm/test/CodeGen/AMDGPU/lround.ll
M llvm/test/CodeGen/AMDGPU/mad-mix-hi.ll
M llvm/test/CodeGen/AMDGPU/select-fabs-fneg-extract.f16.ll
M llvm/test/CodeGen/AMDGPU/select-fabs-fneg-extract.v2f16.ll
M llvm/test/CodeGen/AMDGPU/select.f16.ll
M llvm/test/CodeGen/AMDGPU/shrink-add-sub-constant.ll
M llvm/test/CodeGen/AMDGPU/true16-imm-folded-to-0-regression.ll
M llvm/test/MC/AMDGPU/gfx1150_asm_salu_float.s
M llvm/test/MC/AMDGPU/gfx11_asm_vop3.s
M llvm/test/MC/AMDGPU/gfx11_asm_vop3_dpp8.s
M llvm/test/MC/AMDGPU/gfx11_asm_vop3_from_vopc.s
M llvm/test/MC/AMDGPU/gfx11_asm_vopc.s
M llvm/test/MC/AMDGPU/gfx12_asm_sopc.s
M llvm/test/MC/AMDGPU/gfx12_asm_vop1-fake16.s
M llvm/test/MC/AMDGPU/gfx12_asm_vop1.s
M llvm/test/MC/AMDGPU/gfx12_asm_vop3.s
M llvm/test/MC/AMDGPU/gfx12_asm_vop3c.s
M llvm/test/MC/AMDGPU/gfx12_asm_vopc.s
M llvm/test/MC/AMDGPU/gfx13_asm_sopc.s
M llvm/test/MC/AMDGPU/gfx13_asm_vop1.s
M llvm/test/MC/AMDGPU/gfx13_asm_vop1_t16_promote.s
M llvm/test/MC/AMDGPU/gfx13_asm_vop3-fake16.s
M llvm/test/MC/AMDGPU/gfx13_asm_vop3.s
M llvm/test/MC/AMDGPU/gfx13_asm_vop3_from_vop1-fake16.s
M llvm/test/MC/AMDGPU/gfx13_asm_vop3_from_vop1.s
M llvm/test/MC/AMDGPU/literals.s
M llvm/test/MC/AMDGPU/vop3-gfx10.s
M llvm/test/MC/Disassembler/AMDGPU/gfx10_vop1.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx10_vop3.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx10_vop3c.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx10_vop3cx.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx10_vopc.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx10_vopcx.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx1150_dasm_salu_float.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx11_dasm_vop1.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx11_dasm_vop3.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx11_dasm_vop3_from_vop1.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx11_dasm_vop3_from_vopc.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx11_dasm_vop3_from_vopcx.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx11_dasm_vopc.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx11_dasm_vopcx.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx1250_dasm_vop3.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx1250_dasm_vop3_from_vop1.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx1250_dasm_vop3cx.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx12_dasm_sopc.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx12_dasm_vop3.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx12_dasm_vop3_from_vop1.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx12_dasm_vop3c.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx12_dasm_vop3cx.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx12_dasm_vop3cx_dpp16.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx12_dasm_vopc.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx12_dasm_vopcx.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx8_vop1.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx8_vop2.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx8_vop3.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx8_vop3c.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx8_vop3cx.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx8_vopc.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx8_vopcx.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx9_vop1.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx9_vop2.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx9_vop3.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx9_vop3c.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx9_vop3cx.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx9_vopc.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx9_vopcx.txt
Log Message:
-----------
[AMDGPU] This reverts patches to use fp16 inline constants for i16 (#200091)
Patches reverted:
commit c315c662cd2d33e0c7f962fed742ee53626d8005
Author: Stanislav Mekhanoshin <Stanislav.Mekhanoshin at amd.com>
Date: Wed May 27 12:51:13 2026
[AMDGPU] Fix codesize estimate after #198005 (#200033)
This fixes failure in libc tests which checks the exact encoding
size. Encoding is now shorter, but it did not recognize fp16
immediates as an inlinable constant and assumes literal encoding.
Shorter encodings were created here:
https://github.com/llvm/llvm-project/pull/198005
commit 2b3bc03b5ef00e7eaa245420ca981c700e1c05c4
Author: Stanislav Mekhanoshin <Stanislav.Mekhanoshin at amd.com>
Date: Wed May 27 10:55:36 2026
[AMDGPU] Use shorter form for i16 operands (#198005)
For 16-bit operands an inline constant is zero extended
which in particular allows to use FP constants. These
will have 16 bits of zeroes in the high half and FP16
value in the low 16 bits.
The patch changes semantics of the FP literal argument
used in i16 context in the asm parser to fp16.
Apparently this breaks some libc tests with bf16. I do not know
why, these were not supposed to be affected. Reverting for now.
Failed tests: https://lab.llvm.org/buildbot/#/builders/10/builds/29005
Commit: 0381a09309c6fc1e8aec031580ef5d2396143c79
https://github.com/llvm/llvm-project/commit/0381a09309c6fc1e8aec031580ef5d2396143c79
Author: Ryan Buchner <rbuchner at qti.qualcomm.com>
Date: 2026-05-27 (Wed, 27 May 2026)
Changed paths:
A llvm/test/Transforms/SLPVectorizer/RISCV/runtime-strided-stores.ll
Log Message:
-----------
[SLP] Precommit tests for runtime strided stores (#200019)
Accompanies #200018
Commit: 5b17cdb0b5827d8423470084e6004c5686d9cb2a
https://github.com/llvm/llvm-project/commit/5b17cdb0b5827d8423470084e6004c5686d9cb2a
Author: SiHuaN <liyongtai at iscas.ac.cn>
Date: 2026-05-28 (Thu, 28 May 2026)
Changed paths:
M llvm/lib/Target/RISCV/RISCVISelLowering.cpp
M llvm/test/CodeGen/RISCV/rvp-narrowing-shift-trunc.ll
M llvm/test/CodeGen/RISCV/rvp-simd-64.ll
Log Message:
-----------
[RISCV][P-ext] Split v4i16/v8i8 INSERT/EXTRACT_VECTOR_ELT on RV32. (#199917)
With a constant lane index, split the vector and recurse on the
single-GPR half containing Idx (already Custom-lowered).
Commit: 6619c82f729487ada200a074c72f7260511bb23e
https://github.com/llvm/llvm-project/commit/6619c82f729487ada200a074c72f7260511bb23e
Author: Sudharsan Veeravalli <svs at qti.qualcomm.com>
Date: 2026-05-28 (Thu, 28 May 2026)
Changed paths:
M llvm/lib/Target/RISCV/RISCVMoveMerger.cpp
A llvm/test/CodeGen/RISCV/move-merge-zdinx-mvsa-regression.mir
Log Message:
-----------
[RISCV] Fix incorrect CM.MVSA01/QC_CM_MVSA01 generation with Zdinx (#200000)
The `RISCVMoveMerger` pass was incorrectly forming
`CM_MVSA01/QC_CM_MVSA01` when `Zdinx` was enabled. The pass attempted CM
merge for copy pairs even when the first copy was not an `a0/a1-based`
CM candidate.
Fix by only running `findMatchingInst` when the current copy is a valid
CM candidate.
Commit: f9185454a9a70fd351cb8a1ba3b2b3e33e064c06
https://github.com/llvm/llvm-project/commit/f9185454a9a70fd351cb8a1ba3b2b3e33e064c06
Author: lijinpei-amd <jinpli at amd.com>
Date: 2026-05-27 (Wed, 27 May 2026)
Changed paths:
M clang/include/clang/Sema/Sema.h
M clang/include/clang/Sema/SemaObjC.h
M clang/lib/Sema/SemaAMDGPU.cpp
M clang/lib/Sema/SemaExpr.cpp
M clang/lib/Sema/SemaExprObjC.cpp
A clang/test/AST/ast-print-amdgcn-predicate.c
Log Message:
-----------
[clang][AMDGPU] Fix -ast-print crash on expanded predicate builtins (#199963)
ExpandAMDGPUPredicateBuiltIn synthesized an IntegerLiteral typed
_Bool/bool — a shape no other producer creates, and one that
StmtPrinter::VisitIntegerLiteral has no case for. -ast-print on the
resulting if-condition hit llvm_unreachable.
Emit the canonical boolean literal instead:
- C++, C23, OpenCL, HIP: CXXBoolLiteralExpr 'bool'
- pre-C23 C: IntegerLiteral 'int'
In the C case this matches what <stdbool.h>'s true/false macros expand
to.
Fixes #199563
Commit: 2d5dac5b816726621d08ac695ed0b9799dfb7209
https://github.com/llvm/llvm-project/commit/2d5dac5b816726621d08ac695ed0b9799dfb7209
Author: Jordan Rupprecht <rupprecht at google.com>
Date: 2026-05-28 (Thu, 28 May 2026)
Changed paths:
M utils/bazel/llvm-project-overlay/compiler-rt/BUILD.bazel
M utils/bazel/llvm-project-overlay/llvm/BUILD.bazel
Log Message:
-----------
[Bazel] Fixes 5db1364 (#200104)
The commit added a dep from profile -> interception, so define that
target too
Fixes 5db13643f4b7038db0ca304d9f8900122502935c
Commit: 635e120fb87304924508a7a204574727e3c37363
https://github.com/llvm/llvm-project/commit/635e120fb87304924508a7a204574727e3c37363
Author: Yaxun (Sam) Liu <yaxun.liu at amd.com>
Date: 2026-05-27 (Wed, 27 May 2026)
Changed paths:
M compiler-rt/lib/profile/InstrProfilingFile.c
M compiler-rt/lib/profile/InstrProfilingPlatformROCm.cpp
Log Message:
-----------
[PGO][HIP] Stop pulling ROCm.o into every PGO host link (#200101)
PR #177665 added an unconditional `extern` reference to
`__llvm_profile_hip_collect_device_data` from `InstrProfilingFile.c`,
which forces `InstrProfilingPlatformROCm.o` (and its sanitizer_common /
interception dependencies) out of `libclang_rt.profile.a` in every PGO
binary. That breaks bots without `-lpthread` and races dlsym/PLT state
in non-HIP programs via the interceptor constructor.
Fix:
- Declare the hook `COMPILER_RT_WEAK` and gate the call on its address.
No `COMPILER_RT_VISIBILITY`: a hidden weak-undef function would be
non-preemptible and the address test would fold to true.
- Gate `installHipModuleInterceptors` on `dlsym(hipModuleLoad)` so the
constructor is a no-op if `ROCm.o` is still pulled in.
Fixes:
- https://lab.llvm.org/buildbot/#/builders/66/builds/31311
- https://lab.llvm.org/buildbot/#/builders/174/builds/36180
Verified:
- `check-profile` 134/134 pass.
- `nm` on a non-HIP `clang -fprofile-generate` binary: zero
`installHip`/`ROCm`/`sanitizer`/`hip_collect` symbols.
- HIP offload PGO end-to-end on gfx1101 (compile → run → `llvm-profdata
merge` → `llvm-cov`) still works; interceptor installs, device profile
collected via shared API.
Commit: d5e97d77289c59d785284e6a0361570a1651acd6
https://github.com/llvm/llvm-project/commit/d5e97d77289c59d785284e6a0361570a1651acd6
Author: Haohai Wen <haohai.wen at intel.com>
Date: 2026-05-28 (Thu, 28 May 2026)
Changed paths:
M clang/lib/Driver/ToolChains/CommonArgs.cpp
M clang/test/Driver/split-debug.c
Log Message:
-----------
[Driver] Honor /Fo when deriving the split-dwarf .dwo path (#199613)
SplitDebugName checked -o and /o but not /Fo, so clang-cl /Fo<path> /c
fell through to the cwd-relative fallback and every .dwo landed in cwd
under <source-stem>.dwo regardless of the .obj location.
Commit: a20e85f74d7a3f1bc29cb80fa6d47cf74e9f2aa0
https://github.com/llvm/llvm-project/commit/a20e85f74d7a3f1bc29cb80fa6d47cf74e9f2aa0
Author: Matheus Izvekov <mizvekov at gmail.com>
Date: 2026-05-28 (Thu, 28 May 2026)
Changed paths:
A clang/test/CXX/basic/basic.link/p11.cpp
Log Message:
-----------
[clang] NFC: add test cases from #111561 (#200105)
This adds those test cases while #111561 gathers dust.
Commit: da4894c874edb5fc9b9b82a8a99ed471a49153bf
https://github.com/llvm/llvm-project/commit/da4894c874edb5fc9b9b82a8a99ed471a49153bf
Author: Arda Serdar Pektezol <arda at pektezol.dev>
Date: 2026-05-28 (Thu, 28 May 2026)
Changed paths:
M llvm/lib/Transforms/Scalar/LoopFuse.cpp
M llvm/test/Transforms/LoopFusion/loop_invariant.ll
A llvm/test/Transforms/LoopFusion/pr191238.ll
Log Message:
-----------
[LoopFusion] reject unsafe scalar flow dependences (#195895)
`loop-fusion` treats any loop-invariant scalar non-anti dependence as
safe to fuse. In the linked issue, it incorrectly allows scalar flow
dependences where the first loop writes a loop-invariant location and
the second loop later reads that same location. Fusion interleaves the
producer and consumer and this changes the value observed by the second
loop.
Example C source would look like:
```C
for (int i = 0; i < N; i++) {
ptr[0] = i;
}
for (int j = 0; j < N; j++) {
out[j] = ptr[0];
}
=>
for (int i = 0; i < N; i++) {
ptr[0] = i;
out[i] = ptr[0];
}
```
This patch makes the DA scalar-dependence shortcut **_more
conservative_** by rejecting scalar non-anti and allowing input/output
dependences. This preserves the existing safe read and write cases while
preventing the miscompile above.
The patch also updates the `loop-fusion` debug message to reflect the
narrower accepted case, updates the existing regression to check the new
debug message, and adds a new regression from the linked issue.
Fixes #191238
Commit: 5acb952cb5d9c899692f44f4280af75a780a599c
https://github.com/llvm/llvm-project/commit/5acb952cb5d9c899692f44f4280af75a780a599c
Author: Yaxun (Sam) Liu <yaxun.liu at amd.com>
Date: 2026-05-27 (Wed, 27 May 2026)
Changed paths:
M clang/lib/Driver/ToolChains/Clang.cpp
A clang/test/CodeGenHIP/profile-coverage-mapping.hip
M clang/test/Driver/hip-options.hip
Log Message:
-----------
[HIP][Driver] Forward -fcoverage-mapping flags to device compiler (#198872)
Add `-fcoverage-mapping`, `-fno-coverage-mapping`,
`-fcoverage-compilation-dir=`, `-ffile-compilation-dir=`, and
`-fcoverage-prefix-map=` to the LinkerWrapper `CompilerOptions`
forwarding list. Without this, passing `-fprofile-instr-generate
-fcoverage-mapping` to clang for a HIP program silently omits the
coverage mapping flags from the embedded device recompilation, so
`__llvm_covmap`/`__llvm_covfun` sections are never emitted for device
code.
Commit: 846bfd77ddc44ef76882fd165fa4d5b68b760456
https://github.com/llvm/llvm-project/commit/846bfd77ddc44ef76882fd165fa4d5b68b760456
Author: Zeyi Xu <mitchell.xu2 at gmail.com>
Date: 2026-05-28 (Thu, 28 May 2026)
Changed paths:
M clang/include/clang/Analysis/Analyses/LifetimeSafety/FactsGenerator.h
M clang/lib/Analysis/LifetimeSafety/FactsGenerator.cpp
M clang/test/Sema/warn-lifetime-safety.cpp
Log Message:
-----------
[LifetimeSafety] Avoid assert on variadic placement new (#199588)
Avoid assuming that a placement allocation function has a second
`ParmVarDecl` before checking whether that parameter is `void*`.
Variadic `operator new(size_t, ...)` can have a placement argument
matched by the ellipsis instead.
As of AI Usage: Codex is used to help rephrase part of the new comments.
Closes https://github.com/llvm/llvm-project/issues/199584
Commit: 1da70ad6da64e5737aae1b8aad1bc97a36bbe1cf
https://github.com/llvm/llvm-project/commit/1da70ad6da64e5737aae1b8aad1bc97a36bbe1cf
Author: Gaurav Dhingra <gauravdhingra.gxyd at gmail.com>
Date: 2026-05-28 (Thu, 28 May 2026)
Changed paths:
M clang-tools-extra/clang-tidy/readability/RedundantParenthesesCheck.cpp
M clang-tools-extra/docs/ReleaseNotes.rst
M clang-tools-extra/test/clang-tidy/checkers/readability/redundant-parentheses.cpp
Log Message:
-----------
[clang-tidy] Fix false positive of parentheses removal for overloaded operator (#192254)
Fixes #189217
don't remove necessary parentheses for an overloaded operator, when
the parenthese occurs in the context of a binary operation
E.g. (E1 & E2) != E3 // the brackets aren't redundant here
E.g. (E1 & E2) // brackets are redundant here
Commit: 48a1ee7bc8e1d740edf635c39e0223b9b02a6ae1
https://github.com/llvm/llvm-project/commit/48a1ee7bc8e1d740edf635c39e0223b9b02a6ae1
Author: Dark Steve <Prasoon.Mishra at amd.com>
Date: 2026-05-28 (Thu, 28 May 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/SIInsertWaitcnts.cpp
M llvm/lib/Target/AMDGPU/SIInstrInfo.cpp
M llvm/lib/Target/AMDGPU/SIInstrInfo.h
M llvm/test/CodeGen/AMDGPU/flat-saddr-atomics.ll
M llvm/test/CodeGen/AMDGPU/wait-xcnt-drain.mir
M llvm/test/CodeGen/AMDGPU/wait-xcnt.mir
Log Message:
-----------
[AMDGPU] Remove redundant s_wait_xcnt after implicit XCNT drains (#198823)
On gfx1250 several instructions implicitly drain XCNT in hardware:
`s_barrier_wait`/`signal`/`signal_isfirst`, `s_sendmsg`, PC-changes etc.
This patch will remove redundant `s_wait_xcnt` after implicit XCNT
drains.
Pre-commit tests on #198772
Fix: LCOMPILER-1665
Commit: 9cd3c0b99e5df66adcc96a2fc03b9b177d6ca487
https://github.com/llvm/llvm-project/commit/9cd3c0b99e5df66adcc96a2fc03b9b177d6ca487
Author: Helena Kotas <hekotas at microsoft.com>
Date: 2026-05-27 (Wed, 27 May 2026)
Changed paths:
M clang/lib/CodeGen/CGExpr.cpp
M clang/lib/CodeGen/CGExprAgg.cpp
M clang/lib/CodeGen/CGHLSLRuntime.cpp
M clang/lib/CodeGen/CGHLSLRuntime.h
A clang/test/CodeGenHLSL/resources/res-array-global-to-local.hlsl
M clang/test/CodeGenHLSL/resources/res-array-local2.hlsl
M clang/test/CodeGenHLSL/resources/resource-bindings.hlsl
A clang/test/CodeGenHLSL/resources/resources-in-structs-array-to-local.hlsl
Log Message:
-----------
[HLSL] Codegen for handling global resource array initialization (#198891)
When a global resource array is accessed - whether it is declared at a
global scope or as part of a global struct instance - all of its
resource elements should be initialized from binding into a temporary
local resource array. This change intercepts the Clang codegen at the
relevant places to allow `CGHLSLRuntime` handle this special global
resource array initialization.
Fixes #187087
Fixes #198888
Commit: 690a25fd5b0bf7118370efbc681661a24a40b83a
https://github.com/llvm/llvm-project/commit/690a25fd5b0bf7118370efbc681661a24a40b83a
Author: eleviant <eleviant at accesssoftek.com>
Date: 2026-05-28 (Thu, 28 May 2026)
Changed paths:
M clang/lib/CodeGen/CGBuiltin.cpp
A clang/test/CodeGen/AArch64/mskernel-interlocked.c
A clang/test/CodeGen/X86/mskernel-interlocked.c
M llvm/lib/CodeGen/AtomicExpandPass.cpp
A llvm/test/CodeGen/X86/volatile-atomicrmw.ll
Log Message:
-----------
[clang] Don't optimize out no-op atomics in kernel mode (#193562)
The no-op atomics like InterlockedAnd(addr, (UINT32)-1) don't modify
the underlying value, however kernel code depends on these accesses
to touch the pool page virtual address and intentionally trigger a page
fault during page migration. This patch also fixes an LLVM issue where
idempotent volatile atomics were incorrectly lowered into memory fences.
Commit: 8059bc5944b72f3f6f3734ef61bf9eb89ca850a4
https://github.com/llvm/llvm-project/commit/8059bc5944b72f3f6f3734ef61bf9eb89ca850a4
Author: Timm Baeder <tbaeder at redhat.com>
Date: 2026-05-28 (Thu, 28 May 2026)
Changed paths:
M clang/lib/AST/ByteCode/Compiler.cpp
M clang/lib/AST/ByteCode/Interp.cpp
M clang/lib/AST/ByteCode/InterpBuiltin.cpp
M clang/test/AST/ByteCode/cxx11.cpp
Log Message:
-----------
[clang][bytecode] Fix a diagnostic difference in bitcasts (#197174)
Don't immediately return failure and let it be handled by later checks.
Commit: 191aa295d9c9fe83411ae5cdfeb8a6bb8decb3d2
https://github.com/llvm/llvm-project/commit/191aa295d9c9fe83411ae5cdfeb8a6bb8decb3d2
Author: Nikita Popov <npopov at redhat.com>
Date: 2026-05-28 (Thu, 28 May 2026)
Changed paths:
M llvm/docs/LangRef.rst
Log Message:
-----------
[LangRef] Do not allow free via synchronization in nofree (#195658)
The nofree attribute is currently specified to only forbid direct free
calls inside the function. A nofree function is still allowed to compel
a pointer to be freed by a different thread through synchronization.
This is currently only spelled out for the function-level nofree
attribute, but I assume the same semantics also hold for argument nofree
(and this matches how the Attributor implementation infers it).
The original motivation for this definition was to keep the attributes
orthogonal and independently inferable. However, the problem is that
nosync is a too strong condition: It excludes *any* synchronization, not
just synchronization that results in the free of a pointer.
Some frontends like Rust can guarantee that most pointer arguments
cannot be freed for the duration of a function call, including via
synchronization. However, they cannot guarantee that no synchronization
takes place at all. The current definition of nofree makes this
inexpressible in LLVM IR, which blocks further progress on
dereferenceable-at-point semantics.
This PR makes two changes to the nofree spec:
* Function-level nofree now disallows free via synchronization,
specified in terms of happens-before.
* Argument-level nofree is now specified in terms of provenance: The
argument has derived provenance that makes it UB to free during the
execution of the function (which includes freeing on another thread with
appropriate synchronization). This also clarified that argument-level
nofree only applies to the particular pointer (similar to `captures`
etc). The underlying object may still be freed via a different argument
to which the same pointer is passed.
Note: The necessary inference changes for the new semantics will
be implemented in a separate PR.
Commit: 486370c33fbd75247ef608a2ebc04ddaefd2ab46
https://github.com/llvm/llvm-project/commit/486370c33fbd75247ef608a2ebc04ddaefd2ab46
Author: Sameer Sahasrabuddhe <sameer.sahasrabuddhe at amd.com>
Date: 2026-05-28 (Thu, 28 May 2026)
Changed paths:
M clang/include/clang/Basic/DiagnosticSemaKinds.td
M clang/lib/Sema/SemaAMDGPU.cpp
M clang/test/SemaOpenCL/builtins-amdgcn-error-gfx1250-cooperative-atomics.cl
Log Message:
-----------
[AMDGPU][Clang] refactor addrspace and scope checks [NFC] (#199175)
Assisted-By: Claude Opus 4.6
Commit: 942292bf75168377cc06dfa2ba90a552d6d24a69
https://github.com/llvm/llvm-project/commit/942292bf75168377cc06dfa2ba90a552d6d24a69
Author: Lang Hames <lhames at gmail.com>
Date: 2026-05-28 (Thu, 28 May 2026)
Changed paths:
M orc-rt/include/orc-rt/NativeDylibManager.h
M orc-rt/lib/executor/NativeDylibManager.cpp
M orc-rt/lib/executor/sps-ci/NativeDylibManagerSPSCI.cpp
M orc-rt/unittests/NativeDylibManagerSPSCITest.cpp
M orc-rt/unittests/NativeDylibManagerTest.cpp
Log Message:
-----------
[orc-rt] Remove NativeDylibManager unload operation. (#200119)
NativeDylibManager is intended to act as a backend for
llvm::orc::DylibManager, which does not expose an unload operation. This
commit removes the explicit unload from both the C++ and SPS interfaces,
and unloads dylibs via an on-shutdown callback instead.
Commit: 6ed05a0b53dc777408305333dcbeec9dac4ea687
https://github.com/llvm/llvm-project/commit/6ed05a0b53dc777408305333dcbeec9dac4ea687
Author: Oleksandr Tarasiuk <oleksandr.tarasiuk at outlook.com>
Date: 2026-05-28 (Thu, 28 May 2026)
Changed paths:
M clang/docs/ReleaseNotes.rst
M clang/lib/Sema/SemaDecl.cpp
M clang/test/SemaCXX/constant-expression-cxx14.cpp
Log Message:
-----------
Revert "[Clang] prevent constexpr crash on invalid overrides" (#199895)
Reverts #184048
---
The original change marks invalid overrides too early, causing follow-up
Sema regressions in special-member handling and MS-compatible override
diagnostics.
Commit: 91d765f6ab10974f2c7080c90fe26b21bd7d7cb1
https://github.com/llvm/llvm-project/commit/91d765f6ab10974f2c7080c90fe26b21bd7d7cb1
Author: Nikita Popov <npopov at redhat.com>
Date: 2026-05-28 (Thu, 28 May 2026)
Changed paths:
M clang/test/CodeGen/sanitize-metadata-nosanitize.c
M llvm/lib/Transforms/IPO/AttributorAttributes.cpp
M llvm/lib/Transforms/IPO/FunctionAttrs.cpp
M llvm/test/Transforms/Attributor/align-atomic.ll
M llvm/test/Transforms/Attributor/align.ll
M llvm/test/Transforms/Attributor/liveness.ll
M llvm/test/Transforms/Attributor/noalias.ll
M llvm/test/Transforms/Attributor/nocapture-1.ll
M llvm/test/Transforms/Attributor/nocapture-2.ll
M llvm/test/Transforms/Attributor/nofpclass.ll
M llvm/test/Transforms/Attributor/nonnull.ll
M llvm/test/Transforms/Attributor/nosync.ll
M llvm/test/Transforms/Attributor/range.ll
M llvm/test/Transforms/Attributor/readattrs.ll
M llvm/test/Transforms/Attributor/undefined_behavior.ll
M llvm/test/Transforms/Attributor/value-simplify-instances.ll
M llvm/test/Transforms/Attributor/value-simplify-pointer-info-struct.ll
M llvm/test/Transforms/Attributor/value-simplify-pointer-info.ll
M llvm/test/Transforms/Attributor/value-simplify.ll
M llvm/test/Transforms/FunctionAttrs/atomic.ll
M llvm/test/Transforms/FunctionAttrs/nocapture.ll
M llvm/test/Transforms/FunctionAttrs/nonnull.ll
M llvm/test/Transforms/FunctionAttrs/nosync.ll
M llvm/test/Transforms/FunctionAttrs/readattrs.ll
M llvm/test/Transforms/FunctionAttrs/writeonly.ll
M llvm/test/Transforms/OpenMP/parallel_deletion.ll
Log Message:
-----------
[FunctionAttrs][Attributor] Update nofree inference (#196266)
This updates nofree inference after the semantics changes in
https://github.com/llvm/llvm-project/pull/195658.
FunctionAttrs currently only supports function-level nofree inference,
so we just need to check for potentially synchronizing instructions.
Attributor also supports argument nofree, in which case we make
additional changes:
* For callsite arguments, in addition to checking nofree, we also need
to check nocapture. If the call itself doesn't free the arg, it may
still capture it and then we may free it via the captured pointer later.
The way this was handled was already incorrect prior to the semantics
changes.
* Reformulate the handling for other instructions in terms of looking
for provenance captures, as that's what the code was essentially doing,
in a crude way. I'm including this to avoid some regressions for cases
where we can no longer infer function nofree, but can still infer
argument nofree.
Commit: 35bfc00c5c8db8b5895b83045bbd9562691c0af1
https://github.com/llvm/llvm-project/commit/35bfc00c5c8db8b5895b83045bbd9562691c0af1
Author: Iris Shi <0.0 at owo.li>
Date: 2026-05-28 (Thu, 28 May 2026)
Changed paths:
M llvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp
M llvm/test/Transforms/InstCombine/or-bitmask.ll
Log Message:
-----------
[InstCombine] Fix type mismatch in `foldBitmaskMul` (#199920)
Resolves #199506.
`matchBitmaskMul` matches the form `!(A & N) ? 0 : N * C`.
When the select arms are splat vectors but A is a scalar, this produces
malformed ir like `%57 = and i64 %49, <4 x i64> splat (i64
3689348814741910323)`.
Reproducer: https://godbolt.org/z/EYzKTxcKn
Commit: 4306b4ab9c12a8b9bf4314cbaa7400eeaa1e7ddc
https://github.com/llvm/llvm-project/commit/4306b4ab9c12a8b9bf4314cbaa7400eeaa1e7ddc
Author: William Tran-Viet <wtranviet at proton.me>
Date: 2026-05-28 (Thu, 28 May 2026)
Changed paths:
M libcxx/docs/ReleaseNotes/23.rst
M libcxx/docs/Status/Cxx2cPapers.csv
M libcxx/include/__memory/ranges_uninitialized_algorithms.h
M libcxx/include/__memory/uninitialized_algorithms.h
M libcxx/test/std/utilities/memory/specialized.algorithms/uninitialized.construct.value/ranges_uninitialized_value_construct.pass.cpp
M libcxx/test/std/utilities/memory/specialized.algorithms/uninitialized.construct.value/ranges_uninitialized_value_construct_n.pass.cpp
M libcxx/test/std/utilities/memory/specialized.algorithms/uninitialized.construct.value/uninitialized_value_construct.pass.cpp
M libcxx/test/std/utilities/memory/specialized.algorithms/uninitialized.construct.value/uninitialized_value_construct_n.pass.cpp
M libcxx/test/std/utilities/memory/specialized.algorithms/uninitialized.copy/ranges_uninitialized_copy.pass.cpp
M libcxx/test/std/utilities/memory/specialized.algorithms/uninitialized.copy/ranges_uninitialized_copy_n.pass.cpp
M libcxx/test/std/utilities/memory/specialized.algorithms/uninitialized.copy/uninitialized_copy.pass.cpp
M libcxx/test/std/utilities/memory/specialized.algorithms/uninitialized.copy/uninitialized_copy_n.pass.cpp
M libcxx/test/std/utilities/memory/specialized.algorithms/uninitialized.fill.n/ranges_uninitialized_fill_n.pass.cpp
M libcxx/test/std/utilities/memory/specialized.algorithms/uninitialized.fill.n/uninitialized_fill_n.pass.cpp
M libcxx/test/std/utilities/memory/specialized.algorithms/uninitialized.fill/ranges_uninitialized_fill.pass.cpp
M libcxx/test/std/utilities/memory/specialized.algorithms/uninitialized.fill/uninitialized_fill.pass.cpp
M libcxx/test/std/utilities/memory/specialized.algorithms/uninitialized.move/ranges_uninitialized_move.pass.cpp
M libcxx/test/std/utilities/memory/specialized.algorithms/uninitialized.move/ranges_uninitialized_move_n.pass.cpp
M libcxx/test/std/utilities/memory/specialized.algorithms/uninitialized.move/uninitialized_move.pass.cpp
M libcxx/test/std/utilities/memory/specialized.algorithms/uninitialized.move/uninitialized_move_n.pass.cpp
Log Message:
-----------
[libc++] Implement P3508R0: Wording for "constexpr for specialized memory algorithms" (#197313)
Resolves #118379
- Add `constexpr` to affected areas
- Add `constexpr` tests
- Update documentation
Tests were created with AI assistance.
Commit: 5c95f6a859394757b92b0d63ff90b9175056deb6
https://github.com/llvm/llvm-project/commit/5c95f6a859394757b92b0d63ff90b9175056deb6
Author: Martin Storsjö <martin at martin.st>
Date: 2026-05-28 (Thu, 28 May 2026)
Changed paths:
M lld/COFF/Chunks.cpp
M lld/test/COFF/arm64-relocs-imports.test
Log Message:
-----------
[LLD] [COFF] Fix handling of immediates in ARM64_SECREL_HIGH12A (#200060)
Just like for PAGEBASE_REL21, the immediate in SECREL_HIGH12A is the
byte offset, not a page offset. The byte level offset is added to the
symbol offset, which only then after that gets shifted right by 12. This
makes the handling of this immediate consistent with what MS link.exe
does.
The existing testcase had a zero immediate in the instruction for this
relocation.
This makes it clear that immediate offsets with SECREL_HIGH12A do work
fine, where the byte level offsets end up carrying over to the upper
bits.
Commit: 5dc8711b4e553ba0ddab673564ac9b6309862e81
https://github.com/llvm/llvm-project/commit/5dc8711b4e553ba0ddab673564ac9b6309862e81
Author: jeanPerier <jperier at nvidia.com>
Date: 2026-05-28 (Thu, 28 May 2026)
Changed paths:
M mlir/include/mlir/Interfaces/MemorySlotInterfaces.h
M mlir/include/mlir/Interfaces/MemorySlotInterfaces.td
M mlir/lib/Interfaces/MemorySlotInterfaces.cpp
M mlir/lib/Transforms/Mem2Reg.cpp
M mlir/test/Transforms/mem2reg.mlir
M mlir/test/lib/Dialect/Test/TestOpDefs.cpp
M mlir/test/lib/Dialect/Test/TestOps.td
Log Message:
-----------
[mlir][mem2reg] Promote memory slots through transparent view operations (#196924)
This patch enables mem2reg to operate on load/store that are made
through cast/views of the memory slot (not directly using the SSA value
produced by the allocation op).
This is done by adding a new `PromotableAliaserInterface` interface that must
be implemented by operations that define view of the slot and through which
mem2reg should still happen.
This interface comes with three APIs. The first one allows the operation to
provide new MemorySlots that are aliasing an input MemorySlot. The slot pointers
of these new MemorySlot are results of the operation.
The other two APIs allows projecting the reaching values between the input and output
MemorySlot (one API for each direction).
Assisted by: Claude
RFC:
https://discourse.llvm.org/t/mlir-mem2reg-rfc-promote-memory-slots-through-transparent-view-operations/90761
Commit: b51a8025bed107c5f9a8113a6ecf446f86eeb9b6
https://github.com/llvm/llvm-project/commit/b51a8025bed107c5f9a8113a6ecf446f86eeb9b6
Author: Jan Patrick Lehr <JanPatrick.Lehr at amd.com>
Date: 2026-05-28 (Thu, 28 May 2026)
Changed paths:
M clang/lib/CodeGen/ABIInfoImpl.cpp
M clang/lib/CodeGen/CGAtomic.cpp
M clang/lib/CodeGen/CGBlocks.cpp
M clang/lib/CodeGen/CGBuiltin.cpp
M clang/lib/CodeGen/CGCUDANV.cpp
M clang/lib/CodeGen/CGCall.cpp
M clang/lib/CodeGen/CGClass.cpp
M clang/lib/CodeGen/CGDecl.cpp
M clang/lib/CodeGen/CGException.cpp
M clang/lib/CodeGen/CGExpr.cpp
M clang/lib/CodeGen/CGExprAgg.cpp
M clang/lib/CodeGen/CGHLSLRuntime.cpp
M clang/lib/CodeGen/CGOpenMPRuntime.cpp
M clang/lib/CodeGen/CGOpenMPRuntimeGPU.cpp
M clang/lib/CodeGen/CGStmt.cpp
M clang/lib/CodeGen/CGStmtOpenMP.cpp
M clang/lib/CodeGen/CodeGenFunction.h
M clang/lib/CodeGen/MicrosoftCXXABI.cpp
M clang/lib/CodeGen/TargetBuiltins/ARM.cpp
M clang/lib/CodeGen/TargetBuiltins/X86.cpp
M clang/lib/CodeGen/Targets/X86.cpp
M clang/test/CodeGen/scoped-atomic-ops.c
M clang/test/CodeGenCUDA/amdgpu-kernel-arg-pointer-type.cu
M clang/test/CodeGenCUDA/atomic-options.hip
M clang/test/CodeGenCUDA/builtins-amdgcn.cu
M clang/test/CodeGenCUDA/builtins-spirv-amdgcn.cu
M clang/test/CodeGenCUDA/record-layout.cu
M clang/test/CodeGenCXX/amdgcn-func-arg.cpp
M clang/test/CodeGenCXX/cxx0x-initializer-stdinitializerlist.cpp
M clang/test/CodeGenHIP/placement-new-addrspace.hip
M clang/test/CodeGenOpenCL/addr-space-struct-arg.cl
M clang/test/CodeGenOpenCL/amdgpu-abi-struct-arg-byref.cl
M clang/test/CodeGenOpenCL/amdgpu-enqueue-kernel.cl
M clang/test/CodeGenOpenCL/atomic-ops.cl
M clang/test/CodeGenSYCL/kernel-caller-entry-point.cpp
M clang/test/OpenMP/amdgcn_target_device_vla.cpp
M clang/test/OpenMP/amdgpu_target_with_aligned_attribute.c
M clang/test/OpenMP/target_teams_generic_loop_codegen.cpp
M clang/test/OpenMP/target_teams_generic_loop_codegen_as_distribute.cpp
M clang/test/OpenMP/target_teams_generic_loop_codegen_as_parallel_for.cpp
Log Message:
-----------
Revert "[clang] remove lots of "innocuous" addrspacecasts" (#199685)
Reverts llvm/llvm-project#197745
Broke AMDGPU HIP Kokkos bot:
https://lab.llvm.org/buildbot/#/builders/230/builds/958
Late reply as the breakage got lost in some trouble with the buildbot
fleet.
Co-authored-by: Kewen Meng <Kewen.Meng at amd.com>
Commit: af772866888eb2e2053b5f4d784510006d760e62
https://github.com/llvm/llvm-project/commit/af772866888eb2e2053b5f4d784510006d760e62
Author: Davide Grohmann <davide.grohmann at arm.com>
Date: 2026-05-28 (Thu, 28 May 2026)
Changed paths:
A mlir/include/mlir/Target/SPIRV/SPIRVExtInstSets.h
M mlir/lib/Conversion/TosaToSPIRVTosa/TosaToSPIRVTosaPass.cpp
M mlir/lib/Target/SPIRV/Deserialization/DeserializeOps.cpp
M mlir/lib/Target/SPIRV/Deserialization/Deserializer.h
M mlir/lib/Target/SPIRV/Serialization/SerializeOps.cpp
M mlir/lib/Target/SPIRV/Serialization/Serializer.cpp
M mlir/lib/Target/SPIRV/Serialization/Serializer.h
M mlir/lib/Target/SPIRV/TranslateRegistration.cpp
R mlir/test/Target/SPIRV/debug-negative.mlir
A mlir/test/Target/SPIRV/graph-debug-info-negative.mlir
A mlir/test/Target/SPIRV/graph-debug-info.mlir
M mlir/unittests/Dialect/SPIRV/DeserializationTest.cpp
Log Message:
-----------
[mlir][spirv] Add SPIR-V NonSemantic.Graph.DebugInfo (#199519)
Add serialization and deserialization support for the SPIR-V
NonSemantic.Graph.DebugInfo.1 extended instruction set used by ARM graph
modules.
When debug info emission is enabled, serialize DebugGraph,
DebugOperation,
and DebugTensor records for graph objects, TOSA operations, graph
tensors,
and tensor constants. Emit the records after the SPIR-V objects they
reference, and make DebugOperation point at the DebugGraph result id.
Deserialize these records back into MLIR locations and diagnose
malformed
or undefined debug-info references.
Enable SPV_KHR_non_semantic_info in the default TOSA-to-SPIR-V target
environment so debug info can be emitted by default.
Specification:
https://github.com/KhronosGroup/SPIRV-Registry/blob/main/nonsemantic/NonSemantic.Graph.DebugInfo.asciidoc
Signed-off-by: Mohammadreza Ameri Mahabadian <mohammadreza.amerimahabadian at arm.com>
Signed-off-by: Davide Grohmann <davide.grohmann at arm.com>
Co-authored-by: Mohammadreza Ameri Mahabadian <mohammadreza.amerimahabadian at arm.com>
Commit: 538140ff2cb74ab2a9496119686041ea509daa08
https://github.com/llvm/llvm-project/commit/538140ff2cb74ab2a9496119686041ea509daa08
Author: Guy David <guyda96 at gmail.com>
Date: 2026-05-28 (Thu, 28 May 2026)
Changed paths:
M clang/include/module.modulemap
Log Message:
-----------
[clang] Add missing BuiltinAnchorSources.def to module map (#200125)
Started with 5db13643f4b7038db0ca304d9f8900122502935c.
Commit: 626f4061e7f2d84813f5307bd03f35592e4b70c1
https://github.com/llvm/llvm-project/commit/626f4061e7f2d84813f5307bd03f35592e4b70c1
Author: Arseniy Obolenskiy <arseniy.obolenskiy at amd.com>
Date: 2026-05-28 (Thu, 28 May 2026)
Changed paths:
M mlir/lib/Conversion/SPIRVToLLVM/SPIRVToLLVM.cpp
M mlir/test/Conversion/SPIRVToLLVM/gl-ops-to-llvm.mlir
Log Message:
-----------
[mlir][SPIRVToLLVM] Add conversions for more GL ops (#200115)
Commit: 597b1376bab39259fb3a03fb320dcd15a8b8f2f2
https://github.com/llvm/llvm-project/commit/597b1376bab39259fb3a03fb320dcd15a8b8f2f2
Author: Arseniy Obolenskiy <arseniy.obolenskiy at amd.com>
Date: 2026-05-28 (Thu, 28 May 2026)
Changed paths:
M mlir/lib/Conversion/ComplexToSPIRV/ComplexToSPIRV.cpp
M mlir/test/Conversion/ComplexToSPIRV/complex-to-spirv.mlir
Log Message:
-----------
[mlir][SPIR-V][complex] Convert complex.add/sub/mul/div to SPIR-V ops (#200123)
Commit: 3a50239454f81b6f6647021737bbf7797a06e00c
https://github.com/llvm/llvm-project/commit/3a50239454f81b6f6647021737bbf7797a06e00c
Author: Pierre van Houtryve <pierre.vanhoutryve at amd.com>
Date: 2026-05-28 (Thu, 28 May 2026)
Changed paths:
M llvm/include/llvm/CodeGen/GlobalISel/GIMatchTableExecutor.h
M llvm/include/llvm/CodeGen/GlobalISel/GIMatchTableExecutorImpl.h
M llvm/test/TableGen/GlobalISelCombinerEmitter/match-table.td
M llvm/test/TableGen/GlobalISelEmitter/GlobalISelEmitter.td
M llvm/test/TableGen/GlobalISelEmitter/HwModes.td
M llvm/test/TableGen/RegClassByHwMode.td
M llvm/utils/TableGen/Common/GlobalISel/GlobalISelMatchTable.cpp
Log Message:
-----------
[GlobalISel] Replace `GIM_CheckFeatures` with `GIM_Try_CheckFeatures` (#198461)
This has two benefits. First, it slightly reduces the size of the match
table.
Secondly, if the target feature is not present, we can directly go to
the fail
case, instead of having to do another loop of the interpreter, speeding
up
rejection of rules that do not have the required target feature.
We could do the same with CheckSimplePredicate but it's less used (only
in the combiners I think)
so it is less of a priority.
```
FILE OLD NEW DIFF% SAME?
---- ------- ------- ----- -----
AArch64GenGlobalISel.inc 192681 185938 -3,5% no
AArch64GenPostLegalizeGICombiner.inc 4457 4457 0,0% yes
AArch64GenPreLegalizeGICombiner.inc 9010 9009 -0,0% no
AMDGPUGenGlobalISel.inc 596402 568486 -4,7% no
AMDGPUGenPostLegalizeGICombiner.inc 9240 9238 -0,0% no
AMDGPUGenPreLegalizeGICombiner.inc 8987 8987 0,0% yes
AMDGPUGenRegBankGICombiner.inc 1981 1980 -0,1% no
```
Commit: a63eacee2db2c6ea75c67aca729cc3d32426200b
https://github.com/llvm/llvm-project/commit/a63eacee2db2c6ea75c67aca729cc3d32426200b
Author: Florian Hahn <flo at fhahn.com>
Date: 2026-05-28 (Thu, 28 May 2026)
Changed paths:
M llvm/lib/Transforms/Vectorize/VPlanRecipes.cpp
Log Message:
-----------
[VPlan] Don't use Ingredient to get type in VPWidenMemoryRecipe (NFC) (#200049)
The scalar load/store type is already available on the recipe: load
recipes inherit from VPSingleDefRecipe and expose it via
getScalarType(); store recipes can derive it from the stored value's
type via VPTypeAnalysis.
This migrates a number of lookups to be based on information already
available in VPlan directly.
Commit: 0513c9cba2a02fb853b0af385c0b47503e6678ff
https://github.com/llvm/llvm-project/commit/0513c9cba2a02fb853b0af385c0b47503e6678ff
Author: forking-google-bazel-bot[bot] <265904573+forking-google-bazel-bot[bot]@users.noreply.github.com>
Date: 2026-05-28 (Thu, 28 May 2026)
Changed paths:
M utils/bazel/llvm-project-overlay/mlir/BUILD.bazel
Log Message:
-----------
[Bazel] Fixes 5dc8711 (#200129)
This fixes 5dc8711b4e553ba0ddab673564ac9b6309862e81.
Co-authored-by: Google Bazel Bot <google-bazel-bot at google.com>
Commit: 8a9a82c53e82c8bcbde3f01cf674b8afc5fed753
https://github.com/llvm/llvm-project/commit/8a9a82c53e82c8bcbde3f01cf674b8afc5fed753
Author: Luke Lau <luke at igalia.com>
Date: 2026-05-28 (Thu, 28 May 2026)
Changed paths:
M llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
Log Message:
-----------
[VPlan] Remove redundant vp_merge pattern. NFC (#200116)
m_RemoveMask still matches even if there's no other mask combined, we
just need to check if Mask is null.
Commit: 4503872fe57315e6df7dbc93128dbe6a02011872
https://github.com/llvm/llvm-project/commit/4503872fe57315e6df7dbc93128dbe6a02011872
Author: Nikita Popov <npopov at redhat.com>
Date: 2026-05-28 (Thu, 28 May 2026)
Changed paths:
M clang/test/CodeGenOpenCL/atomic-builtins-default-to-device-scope.cl
M llvm/include/llvm/IR/Instruction.h
M llvm/lib/IR/Instruction.cpp
M llvm/lib/Transforms/IPO/FunctionAttrs.cpp
M llvm/test/Transforms/FunctionAttrs/atomic.ll
M llvm/test/Transforms/FunctionAttrs/nocapture.ll
M llvm/test/Transforms/FunctionAttrs/nosync.ll
M llvm/test/Transforms/FunctionAttrs/writeonly.ll
Log Message:
-----------
[IR][FunctionAttrs] Clarify memory effects of atomics (#193768)
FunctionAttrs was treating atomic instructions, including with ordering
stronger than monotonic, as only reading/writing their operand.
I don't think doing this is correct, because we model the ordering
constraints of synchronizing atomics via reading/writing "all" memory.
So e.g. if you have a function with a release store on an argument,
marking it as argmem-only is wrong, because that would permit reordering
accesses to other locations around it. (What this PR is doing is not
*sufficient* to model this correctly due to the fence-like effects on
not-yet-escaped memory, but it brings us closer to correctness.)
I initially tried to implement mayReadFromMemory() and
mayWriteToMemory() on top of getMemoryEffects(), but this caused
significant compile-time regressions, so I've kept the logic duplicated.
Commit: 0e02ccdaf01081dbd947e192fb4769da7bf74d54
https://github.com/llvm/llvm-project/commit/0e02ccdaf01081dbd947e192fb4769da7bf74d54
Author: Fabrice de Gans <Steelskin at users.noreply.github.com>
Date: 2026-05-28 (Thu, 28 May 2026)
Changed paths:
M llvm/include/llvm-c/Remarks.h
M llvm/include/llvm-c/lto.h
Log Message:
-----------
llvm: Fix most LLVM_C_ABI annotations (#199914)
This updates most LLVM_C_ABI annotations in the llvm-c headers to match
expected usage:
* All public APIs should be properly annotated.
* Inlined functions should not be annotated.
These changes were done by a script fixing annotations on LLVM public
headers and manually checked.
This effort is tracked in #109483.
Commit: 1235c442a3c08e9cb4a9d2a6c082f392ec0885f1
https://github.com/llvm/llvm-project/commit/1235c442a3c08e9cb4a9d2a6c082f392ec0885f1
Author: Sohaib Iftikhar <sohaibiftikhar at google.com>
Date: 2026-05-28 (Thu, 28 May 2026)
Changed paths:
Log Message:
-----------
Fix Bazel build for 5dc8711 (#200142)
Co-authored-by: Google Bazel Bot <google-bazel-bot at google.com>
Commit: 86a74788dcc851d501e33c70a88f14dc47293b9f
https://github.com/llvm/llvm-project/commit/86a74788dcc851d501e33c70a88f14dc47293b9f
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2026-05-28 (Thu, 28 May 2026)
Changed paths:
M llvm/lib/Target/X86/X86ISelLowering.cpp
M llvm/test/CodeGen/X86/vector-shuffle-combining-avx512vbmi2.ll
Log Message:
-----------
[X86] matchBinaryPermuteShuffle - match to X86ISD::SHLD funnel shift patterns (#200136)
Add matchShuffleAsVSHLD helper to recognise shuffle masks that can fold to funnel shifts
Fixes #145276
Commit: 174eb79572b3433aa338ede31815fa8fa6a13b29
https://github.com/llvm/llvm-project/commit/174eb79572b3433aa338ede31815fa8fa6a13b29
Author: Simon Tatham <simon.tatham at arm.com>
Date: 2026-05-28 (Thu, 28 May 2026)
Changed paths:
M compiler-rt/lib/builtins/CMakeLists.txt
A compiler-rt/lib/builtins/arm/fixdfdi.S
A compiler-rt/lib/builtins/arm/fixdfsi.S
A compiler-rt/lib/builtins/arm/fixsfdi.S
A compiler-rt/lib/builtins/arm/fixsfsi.S
A compiler-rt/lib/builtins/arm/fixunsdfdi.S
A compiler-rt/lib/builtins/arm/fixunsdfsi.S
A compiler-rt/lib/builtins/arm/fixunssfdi.S
A compiler-rt/lib/builtins/arm/fixunssfsi.S
A compiler-rt/test/builtins/Unit/fixdfdinew_test.c
A compiler-rt/test/builtins/Unit/fixdfsinew_test.c
A compiler-rt/test/builtins/Unit/fixsfdinew_test.c
A compiler-rt/test/builtins/Unit/fixsfsinew_test.c
A compiler-rt/test/builtins/Unit/fixunsdfdinew_test.c
A compiler-rt/test/builtins/Unit/fixunsdfsinew_test.c
A compiler-rt/test/builtins/Unit/fixunssfdinew_test.c
A compiler-rt/test/builtins/Unit/fixunssfsinew_test.c
Log Message:
-----------
[compiler-rt][ARM] Optimized FP -> integer conversions (#179927)
This commit adds a total of 8 new functions, all converting a
floating-point number to an integer, varying in 3 independent choices:
* input float format (32-bit or 64-bit)
* output integer size (32-bit or 64-bit)
* output integer type (signed or unsigned)
Commit: cee1c3ba576fc6259510313b73fde56150268c52
https://github.com/llvm/llvm-project/commit/cee1c3ba576fc6259510313b73fde56150268c52
Author: Luke Hutton <luke.hutton at arm.com>
Date: 2026-05-28 (Thu, 28 May 2026)
Changed paths:
M mlir/include/mlir/Dialect/Tosa/IR/TargetEnv.h
M mlir/include/mlir/Dialect/Tosa/IR/TosaOps.td
M mlir/lib/Dialect/Tosa/IR/TargetEnv.cpp
M mlir/lib/Dialect/Tosa/IR/TosaCanonicalizations.cpp
M mlir/test/Dialect/Tosa/canonicalize.mlir
R mlir/test/Dialect/Tosa/fold_concats.mlir
Log Message:
-----------
[mlir][tosa] Limit consecutive concat rewrite to MAX_TENSOR_LIST_SIZE (#199051)
Previously folding could produce an operation that would later be
considered invalid in validation due to the number of operands it has.
This change adds a check to prevent rewriting consecutive concat
operations if the resulting operation has more than MAX_TENSOR_LIST_SIZE
operands, based on the selected target environment level. If no level is
specified, folding will proceed as before.
In addition, this change rewrites the concat folder as a
canonicalization pattern, since it is not a fold of constant operands.
The change also consolidates testing in
canonicalize.mlir.
Commit: 172ea47e6d5b04c4849991ffd5ab0f87d444ab86
https://github.com/llvm/llvm-project/commit/172ea47e6d5b04c4849991ffd5ab0f87d444ab86
Author: Igor Wodiany <igor.wodiany at amd.com>
Date: 2026-05-28 (Thu, 28 May 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/SIInstrInfo.td
M llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.cpp
M llvm/lib/Target/AMDGPU/VOPDInstructions.td
Log Message:
-----------
[AMDGPU] Use separate tables for VOPD3X and VOPDY in `getCanBeVOPD` (NFC) (#199072)
With this change tables for valid VOPD3X (VOPDX still uses
`getVOPDComponentHelper`) and VOPDY operations are
generated through TableGen. This simplifies the look-up
leading to a 2-3% compile-time speed-up for tested shaders
where `getCanBeVOPD` is on a hot path.
Assisted-by: Claude Code
Commit: 66ee43ce9d66f80cc311e5653478ae83372afb89
https://github.com/llvm/llvm-project/commit/66ee43ce9d66f80cc311e5653478ae83372afb89
Author: NeKon69 <nobodqwe at gmail.com>
Date: 2026-05-28 (Thu, 28 May 2026)
Changed paths:
M clang/include/clang/Basic/DiagnosticSemaKinds.td
M clang/lib/Sema/SemaLifetimeSafety.h
M clang/test/Sema/warn-lifetime-analysis-nocfg.cpp
M clang/test/Sema/warn-lifetime-safety-cfg-bailout.cpp
M clang/test/Sema/warn-lifetime-safety-suggestions.cpp
M clang/test/Sema/warn-lifetime-safety.cpp
Log Message:
-----------
[LifetimeSafety] Improve diagnostics for use-after-scope (#200031)
Reuses the function for getting object information that was added in
#199432
Comes as part of completing #186002
Co-authored-by: Utkarsh Saxena <usx at google.com>
Commit: 51d823197cb40a57f25d00882546374d460c649e
https://github.com/llvm/llvm-project/commit/51d823197cb40a57f25d00882546374d460c649e
Author: Matthew Nagy <matthew.nagy at sony.com>
Date: 2026-05-28 (Thu, 28 May 2026)
Changed paths:
M compiler-rt/include/sanitizer/tysan_interface.h
M compiler-rt/lib/tysan/tysan.cpp
M compiler-rt/lib/tysan/tysan.h
M compiler-rt/lib/tysan/tysan_interceptors.cpp
A compiler-rt/test/tysan/set_type_unknown-interface.c
Log Message:
-----------
[TySan] Expose __tysan_set_type_unknown interface (#198800)
This can help work around issues like
[#143587](https://github.com/llvm/llvm-project/issues/143587)
The function is renamed with two trailing underscores to match the
naming scheme of the other sanitizers.
Commit: b115dd117ac109ac501b8bc044dbdefd6f5f2471
https://github.com/llvm/llvm-project/commit/b115dd117ac109ac501b8bc044dbdefd6f5f2471
Author: Lukacma <Marian.Lukac at arm.com>
Date: 2026-05-28 (Thu, 28 May 2026)
Changed paths:
M lldb/test/API/commands/register/aarch64_dynamic_regset/main.c
M lldb/test/API/commands/register/aarch64_sve_registers/rw_access_static_config/main.c
M llvm/lib/Target/AArch64/AArch64ISelDAGToDAG.cpp
M llvm/lib/Target/AArch64/AArch64InstrFormats.td
M llvm/lib/Target/AArch64/AArch64InstrInfo.td
M llvm/lib/Target/AArch64/AArch64SMEInstrInfo.td
M llvm/lib/Target/AArch64/AArch64SystemOperands.td
M llvm/lib/Target/AArch64/Utils/AArch64BaseInfo.cpp
M llvm/test/CodeGen/AArch64/aarch64-sme-za-call-lowering.ll
M llvm/test/CodeGen/AArch64/aarch64-sysreg128.ll
A llvm/test/CodeGen/AArch64/arm64-invalid-sys-reg.ll
R llvm/test/CodeGen/AArch64/arm64-named-reg-notareg.ll
M llvm/test/CodeGen/AArch64/expand-sme-pseudos.mir
M llvm/test/CodeGen/AArch64/machine-sme-abi-find-insert-pt.mir
M llvm/test/CodeGen/AArch64/machine-sme-abi-skip-debug-inst.mir
M llvm/test/CodeGen/AArch64/sme-abi-eh-liveins.mir
M llvm/test/CodeGen/AArch64/sme-lazy-sve-nzcv-live.mir
M llvm/test/CodeGen/AArch64/special-reg.ll
M llvm/test/MC/AArch64/arm64-system-encoding.s
M llvm/test/MC/AArch64/armv9-mrrs-diagnostics.s
M llvm/test/MC/AArch64/armv9-mrrs.s
M llvm/test/MC/AArch64/armv9-msrr-diagnostics.s
M llvm/test/MC/AArch64/armv9-msrr.s
M llvm/test/MC/AArch64/basic-a64-instructions.s
M llvm/test/MC/Disassembler/AArch64/armv8.2a-uao.txt
M llvm/test/MC/Disassembler/AArch64/armv8.4a-dit.txt
M llvm/test/MC/Disassembler/AArch64/armv8.5a-dataproc.txt
M llvm/test/MC/Disassembler/AArch64/armv8.5a-mte.txt
M llvm/test/MC/Disassembler/AArch64/armv8.5a-sb.txt
M llvm/test/MC/Disassembler/AArch64/armv8.5a-ssbs.txt
M llvm/test/MC/Disassembler/AArch64/armv8.7a-wfxt.txt
M llvm/test/MC/Disassembler/AArch64/armv8.7a-xs.txt
M llvm/test/MC/Disassembler/AArch64/armv8.8a-nmi.txt
M llvm/test/MC/Disassembler/AArch64/basic-a64-instructions.txt
Log Message:
-----------
[AArch64] Fix definition of system register move instructions (#185709)
Current implementation of these instructions makes bit20 in the encoding
part of the system register operand, which is incorrect since
[specification](https://developer.arm.com/documentation/ddi0602/latest)
specifies that bit must be set to 1. This patch changes that and removes
the bit 20 from the encoding of the operand and makes it fixed field for
these instructions. It also fixes the parser and codegen by checking
that Op0 in system register name/encoding is correctly constrained to 2
or 3.
Depends on #185970
Commit: a554a1989f60ebb292b198bbbe084b5a34f880c5
https://github.com/llvm/llvm-project/commit/a554a1989f60ebb292b198bbbe084b5a34f880c5
Author: Vladislav Dzhidzhoev <vdzhidzhoev at accesssoftek.com>
Date: 2026-05-28 (Thu, 28 May 2026)
Changed paths:
A clang/test/Driver/dxc_section_emission.hlsl
M llvm/lib/Target/DirectX/DXContainerGlobals.cpp
A llvm/test/CodeGen/DirectX/ContainerData/DebugName-DXIL.ll
M llvm/test/CodeGen/DirectX/lit.local.cfg
Log Message:
-----------
[DirectX] Generate shader debug file name part in llc (#199555)
This change modifies DXContainerGlobals pass to generate debug name
(ILDN) part in DXContainer. ILDN part allows consumers to find PDB file
containing shader debug info.
As ILDB emission PR is not merged yet, and PDB file creation is not
upstreamed yet, debug name is generated based on MD5-hash of bitcode
module in DXIL part.
This corresponds to DXC behavior when a shader is compiled with `/Zi
/Qembed_debug /Zsb` flags (with `/Qembed_debug`, DXC does not produce an
actual PDB file, but still emits ILDN, `/Zsb` tells DXC to use bitcode
from DXIL to compute hash).
However, here ILDN is emitted for any debug info flag configuration.
assuming that it won't break debug info consumers, and that PDB creation
will be added later.
Commit: eb1b57c639947ad381d9dff6093c2b8085b99d0f
https://github.com/llvm/llvm-project/commit/eb1b57c639947ad381d9dff6093c2b8085b99d0f
Author: ritter-x2a <9519134+ritter-x2a at users.noreply.github.com>
Date: 2026-05-28 (Thu, 28 May 2026)
Changed paths:
M llvm/docs/LangRef.rst
Log Message:
-----------
[LangRef] Specify that syncscopes can affect the monotonic modification order (#189017)
If a target specifies that atomics with mismatching syncscopes appear
non-atomic to each other, there is no point in requiring them to be ordered in
the monotonic modification order. Notably, the [AMDGPU target user
guide](https://llvm.org/docs/AMDGPUUsage.html#memory-scopes) has specified
syncscopes to relax the modification order for years.
So far, I haven't found an example where this less constrained ordering would
be observable (at least with the AMDGPU inclusive scope rules). Whenever a load
would be able to see two monotonic stores with non-inclusive scope, that's
considered a data race (i.e., the load would return `undef`), so it cannot be
used to observe the order of the stores.
Related RFC: https://discourse.llvm.org/t/rfc-clarifying-llvm-irs-concurrent-memory-model/90480
Commit: dbebcb02d3d8f2e92e1ba235992fb43b5fad50a3
https://github.com/llvm/llvm-project/commit/dbebcb02d3d8f2e92e1ba235992fb43b5fad50a3
Author: Davide Grohmann <davide.grohmann at arm.com>
Date: 2026-05-28 (Thu, 28 May 2026)
Changed paths:
M mlir/lib/Target/SPIRV/Deserialization/DeserializeOps.cpp
Log Message:
-----------
[mlir][spirv] Remove unnecessary assertion (#200137)
The use of the variable in the assertion was causing a build failure
when compiling with assertion off and hence the variable becomes unused.
Signed-off-by: Davide Grohmann <davide.grohmann at arm.com>
Commit: 326a1320dc98be6ce17270a2138b76f2036aaa5e
https://github.com/llvm/llvm-project/commit/326a1320dc98be6ce17270a2138b76f2036aaa5e
Author: Benjamin Maxwell <benjamin.maxwell at arm.com>
Date: 2026-05-28 (Thu, 28 May 2026)
Changed paths:
M llvm/test/Transforms/LoopStrengthReduce/AArch64/vscale-fixups.ll
Log Message:
-----------
[LSR][AArch64] Precommit tests showing lack of `mul vl` addressing (NFC) (#200149)
These loops could be using `mul vl` addressing in the loop and use fewer
base registers and have a smaller loop setup.
Commit: dbdbb8d6afd8d30a0074ee0aadc2dbf81c0e8d02
https://github.com/llvm/llvm-project/commit/dbdbb8d6afd8d30a0074ee0aadc2dbf81c0e8d02
Author: Nikolas Klauser <nikolasklauser at berlin.de>
Date: 2026-05-28 (Thu, 28 May 2026)
Changed paths:
M libcxx/include/__type_traits/conditional.h
Log Message:
-----------
[libc++] Simplify the implementation of conditional a bit (#199916)
We can use our internal `_If` instead of specializing `conditional` for
selecting the appropriate type.
Commit: ff7e6bbb7f1187a839690b2832507038b5ea2fc3
https://github.com/llvm/llvm-project/commit/ff7e6bbb7f1187a839690b2832507038b5ea2fc3
Author: Fabrice de Gans <Steelskin at users.noreply.github.com>
Date: 2026-05-28 (Thu, 28 May 2026)
Changed paths:
M llvm/include/llvm/CodeGen/Analysis.h
M llvm/include/llvm/CodeGen/AntiDepBreaker.h
M llvm/include/llvm/CodeGen/AsmPrinter.h
M llvm/include/llvm/CodeGen/AsmPrinterAnalysis.h
M llvm/include/llvm/CodeGen/AssignmentTrackingAnalysis.h
M llvm/include/llvm/CodeGen/AtomicExpand.h
M llvm/include/llvm/CodeGen/BasicBlockMatchingAndInference.h
M llvm/include/llvm/CodeGen/BasicBlockSectionUtils.h
M llvm/include/llvm/CodeGen/BasicBlockSectionsProfileReader.h
M llvm/include/llvm/CodeGen/BasicTTIImpl.h
M llvm/include/llvm/CodeGen/BranchFoldingPass.h
M llvm/include/llvm/CodeGen/BranchRelaxation.h
M llvm/include/llvm/CodeGen/CFIFixup.h
M llvm/include/llvm/CodeGen/CalcSpillWeights.h
M llvm/include/llvm/CodeGen/CodeGenCommonISel.h
M llvm/include/llvm/CodeGen/CodeGenPrepare.h
M llvm/include/llvm/CodeGen/ComplexDeinterleavingPass.h
M llvm/include/llvm/CodeGen/DFAPacketizer.h
M llvm/include/llvm/CodeGen/DbgEntityHistoryCalculator.h
M llvm/include/llvm/CodeGen/DeadMachineInstructionElim.h
M llvm/include/llvm/CodeGen/DebugHandlerBase.h
M llvm/include/llvm/CodeGen/DetectDeadLanes.h
M llvm/include/llvm/CodeGen/DwarfEHPrepare.h
M llvm/include/llvm/CodeGen/EarlyIfConversion.h
M llvm/include/llvm/CodeGen/EdgeBundles.h
M llvm/include/llvm/CodeGen/ExecutionDomainFix.h
M llvm/include/llvm/CodeGen/ExpandIRInsts.h
M llvm/include/llvm/CodeGen/ExpandPostRAPseudos.h
M llvm/include/llvm/CodeGen/ExpandReductions.h
M llvm/include/llvm/CodeGen/ExpandVectorPredication.h
M llvm/include/llvm/CodeGen/FEntryInserter.h
M llvm/include/llvm/CodeGen/FastISel.h
M llvm/include/llvm/CodeGen/FaultMaps.h
M llvm/include/llvm/CodeGen/FinalizeISel.h
M llvm/include/llvm/CodeGen/FixupStatepointCallerSaved.h
M llvm/include/llvm/CodeGen/FunctionLoweringInfo.h
M llvm/include/llvm/CodeGen/GCEmptyBasicBlocks.h
M llvm/include/llvm/CodeGen/GCMetadataPrinter.h
M llvm/include/llvm/CodeGen/GlobalISel/CSEInfo.h
M llvm/include/llvm/CodeGen/GlobalISel/Combiner.h
M llvm/include/llvm/CodeGen/GlobalISel/CombinerHelper.h
M llvm/include/llvm/CodeGen/GlobalISel/IRTranslator.h
M llvm/include/llvm/CodeGen/GlobalISel/InlineAsmLowering.h
M llvm/include/llvm/CodeGen/GlobalISel/LegalizerHelper.h
M llvm/include/llvm/CodeGen/GlobalISel/Localizer.h
M llvm/include/llvm/CodeGen/GlobalISel/RegBankSelect.h
M llvm/include/llvm/CodeGen/GlobalMerge.h
M llvm/include/llvm/CodeGen/GlobalMergeFunctions.h
M llvm/include/llvm/CodeGen/HardwareLoops.h
M llvm/include/llvm/CodeGen/IndirectBrExpand.h
M llvm/include/llvm/CodeGen/InitUndef.h
M llvm/include/llvm/CodeGen/InlineAsmPrepare.h
M llvm/include/llvm/CodeGen/InsertCodePrefetch.h
M llvm/include/llvm/CodeGen/InterleavedAccess.h
M llvm/include/llvm/CodeGen/InterleavedLoadCombine.h
M llvm/include/llvm/CodeGen/IntrinsicLowering.h
M llvm/include/llvm/CodeGen/JMCInstrumenter.h
M llvm/include/llvm/CodeGen/KCFI.h
M llvm/include/llvm/CodeGen/LatencyPriorityQueue.h
M llvm/include/llvm/CodeGen/LazyMachineBlockFrequencyInfo.h
M llvm/include/llvm/CodeGen/LexicalScopes.h
M llvm/include/llvm/CodeGen/LibcallLoweringInfo.h
M llvm/include/llvm/CodeGen/LiveDebugValuesPass.h
M llvm/include/llvm/CodeGen/LiveDebugVariables.h
M llvm/include/llvm/CodeGen/LiveIntervalUnion.h
M llvm/include/llvm/CodeGen/LivePhysRegs.h
M llvm/include/llvm/CodeGen/LiveRangeEdit.h
M llvm/include/llvm/CodeGen/LiveRegMatrix.h
M llvm/include/llvm/CodeGen/LiveStacks.h
M llvm/include/llvm/CodeGen/LocalStackSlotAllocation.h
M llvm/include/llvm/CodeGen/LoopTraversal.h
M llvm/include/llvm/CodeGen/LowerEmuTLS.h
M llvm/include/llvm/CodeGen/MBFIWrapper.h
M llvm/include/llvm/CodeGen/MIR2Vec.h
M llvm/include/llvm/CodeGen/MIRFSDiscriminator.h
M llvm/include/llvm/CodeGen/MIRFSDiscriminatorOptions.h
M llvm/include/llvm/CodeGen/MIRParser/MIParser.h
M llvm/include/llvm/CodeGen/MIRSampleProfile.h
M llvm/include/llvm/CodeGen/MIRYamlMapping.h
M llvm/include/llvm/CodeGen/MachineBlockHashInfo.h
M llvm/include/llvm/CodeGen/MachineBlockPlacement.h
M llvm/include/llvm/CodeGen/MachineBranchProbabilityInfo.h
M llvm/include/llvm/CodeGen/MachineCSE.h
M llvm/include/llvm/CodeGen/MachineConstantPool.h
M llvm/include/llvm/CodeGen/MachineCopyPropagation.h
M llvm/include/llvm/CodeGen/MachineDominanceFrontier.h
M llvm/include/llvm/CodeGen/MachineFunctionAnalysis.h
M llvm/include/llvm/CodeGen/MachineIDFSSAUpdater.h
M llvm/include/llvm/CodeGen/MachineLateInstrsCleanup.h
M llvm/include/llvm/CodeGen/MachineLoopUtils.h
M llvm/include/llvm/CodeGen/MachineModuleInfoImpls.h
M llvm/include/llvm/CodeGen/MachinePipeliner.h
M llvm/include/llvm/CodeGen/MachineRegionInfo.h
M llvm/include/llvm/CodeGen/MachineSSAUpdater.h
M llvm/include/llvm/CodeGen/MachineSink.h
M llvm/include/llvm/CodeGen/MachineTraceMetrics.h
M llvm/include/llvm/CodeGen/MachineUniformityAnalysis.h
M llvm/include/llvm/CodeGen/ModuloSchedule.h
M llvm/include/llvm/CodeGen/MultiHazardRecognizer.h
M llvm/include/llvm/CodeGen/OptimizePHIs.h
M llvm/include/llvm/CodeGen/PEI.h
M llvm/include/llvm/CodeGen/PHIElimination.h
M llvm/include/llvm/CodeGen/PatchableFunction.h
M llvm/include/llvm/CodeGen/PeepholeOptimizer.h
M llvm/include/llvm/CodeGen/PostRAHazardRecognizer.h
M llvm/include/llvm/CodeGen/PostRAMachineSink.h
M llvm/include/llvm/CodeGen/PostRASchedulerList.h
M llvm/include/llvm/CodeGen/PreISelIntrinsicLowering.h
M llvm/include/llvm/CodeGen/ProcessImplicitDefs.h
M llvm/include/llvm/CodeGen/RDFGraph.h
M llvm/include/llvm/CodeGen/RDFLiveness.h
M llvm/include/llvm/CodeGen/RDFRegisters.h
M llvm/include/llvm/CodeGen/ReachingDefAnalysis.h
M llvm/include/llvm/CodeGen/RegAllocEvictionAdvisor.h
M llvm/include/llvm/CodeGen/RegAllocFast.h
M llvm/include/llvm/CodeGen/RegAllocGreedyPass.h
M llvm/include/llvm/CodeGen/RegAllocPBQP.h
M llvm/include/llvm/CodeGen/RegAllocPriorityAdvisor.h
M llvm/include/llvm/CodeGen/RegUsageInfoCollector.h
M llvm/include/llvm/CodeGen/RegUsageInfoPropagate.h
M llvm/include/llvm/CodeGen/RegisterBankInfo.h
M llvm/include/llvm/CodeGen/RegisterCoalescerPass.h
M llvm/include/llvm/CodeGen/RegisterScavenging.h
M llvm/include/llvm/CodeGen/RegisterUsageInfo.h
M llvm/include/llvm/CodeGen/Rematerializer.h
M llvm/include/llvm/CodeGen/RemoveLoadsIntoFakeUses.h
M llvm/include/llvm/CodeGen/RemoveRedundantDebugValues.h
M llvm/include/llvm/CodeGen/RenameIndependentSubregs.h
M llvm/include/llvm/CodeGen/ResourcePriorityQueue.h
M llvm/include/llvm/CodeGen/SDNodeInfo.h
M llvm/include/llvm/CodeGen/SafeStack.h
M llvm/include/llvm/CodeGen/SanitizerBinaryMetadata.h
M llvm/include/llvm/CodeGen/ScheduleDAG.h
M llvm/include/llvm/CodeGen/ScheduleDFS.h
M llvm/include/llvm/CodeGen/ScheduleHazardRecognizer.h
M llvm/include/llvm/CodeGen/ScoreboardHazardRecognizer.h
M llvm/include/llvm/CodeGen/SelectOptimize.h
M llvm/include/llvm/CodeGen/SelectionDAG.h
M llvm/include/llvm/CodeGen/SelectionDAGISel.h
M llvm/include/llvm/CodeGen/SelectionDAGTargetInfo.h
M llvm/include/llvm/CodeGen/ShadowStackGCLowering.h
M llvm/include/llvm/CodeGen/ShrinkWrap.h
M llvm/include/llvm/CodeGen/SjLjEHPrepare.h
M llvm/include/llvm/CodeGen/SpillPlacement.h
M llvm/include/llvm/CodeGen/Spiller.h
M llvm/include/llvm/CodeGen/StackColoring.h
M llvm/include/llvm/CodeGen/StackFrameLayoutAnalysisPass.h
M llvm/include/llvm/CodeGen/StackProtector.h
M llvm/include/llvm/CodeGen/StackSlotColoring.h
M llvm/include/llvm/CodeGen/SwiftErrorValueTracking.h
M llvm/include/llvm/CodeGen/SwitchLoweringUtils.h
M llvm/include/llvm/CodeGen/TailDuplicator.h
M llvm/include/llvm/CodeGen/TargetLoweringObjectFileImpl.h
M llvm/include/llvm/CodeGen/TwoAddressInstructionPass.h
M llvm/include/llvm/CodeGen/TypePromotion.h
M llvm/include/llvm/CodeGen/UnreachableBlockElim.h
M llvm/include/llvm/CodeGen/VLIWMachineScheduler.h
M llvm/include/llvm/CodeGen/WasmEHPrepare.h
M llvm/include/llvm/CodeGen/WinEHFuncInfo.h
M llvm/include/llvm/CodeGen/WinEHPrepare.h
M llvm/include/llvm/CodeGen/WindowScheduler.h
M llvm/include/llvm/CodeGen/XRayInstrumentation.h
Log Message:
-----------
llvm: Fix most LLVM_ABI annotations in CodeGen (#199921)
This updates most LLVM_ABI annotations in the CodeGen headers to match
expected usage:
* All public APIs should be properly annotated.
* Inlined functions should not be annotated.
These changes were done by a script fixing annotations on LLVM public
headers and manually checked.
This effort is tracked in #109483.
Commit: 4683f6ba6152e26c22adeaa4daf46732492228e5
https://github.com/llvm/llvm-project/commit/4683f6ba6152e26c22adeaa4daf46732492228e5
Author: Ebuka Ezike <e_ezike at apple.com>
Date: 2026-05-28 (Thu, 28 May 2026)
Changed paths:
M lldb/tools/lldb-dap/DAP.cpp
Log Message:
-----------
[lldb-dap] Fix data race on disconnecting (#200017)
Guard m_disconnecting with the m_queue_mutex because the value can be
changed in multiple threads
Commit: f6758a5664a61596ea601ea44304aab798c33962
https://github.com/llvm/llvm-project/commit/f6758a5664a61596ea601ea44304aab798c33962
Author: ejose02 <ejose at amd.com>
Date: 2026-05-28 (Thu, 28 May 2026)
Changed paths:
M flang/lib/Frontend/FrontendAction.cpp
A flang/test/Preprocessing/show-macros-stdin.f90
Log Message:
-----------
[flang] Fix -E -dM macro dumping for stdin and .f90 inputs (#200144)
Issue:
flang -E -dM does not consistently print predefined macros for stdin and
.f90 inputs, unlike expected behavior.
Root cause:
Flang only initialized predefined macros when preprocessing was implied
by -cpp or suffix-based inference (mustBePreprocessed), but not when -dM
alone requested macro dumping.
Fix:
Treat -dM as an explicit trigger to initialize macro predefinitions in,
and add a stdin regression test for flang -E -dM - < /dev/null.
Fixes #198234
Commit: 5cac2751fb9cf3112d16717b278e40d07dd6cfdc
https://github.com/llvm/llvm-project/commit/5cac2751fb9cf3112d16717b278e40d07dd6cfdc
Author: Rong "Mantle" Bao <rong.bao at csmantle.top>
Date: 2026-05-28 (Thu, 28 May 2026)
Changed paths:
M clang/lib/Driver/ToolChains/Clang.cpp
M clang/test/CodeGen/stack-clash-protection.c
M llvm/lib/Target/LoongArch/LoongArchFrameLowering.cpp
M llvm/lib/Target/LoongArch/LoongArchFrameLowering.h
M llvm/lib/Target/LoongArch/LoongArchISelLowering.cpp
M llvm/lib/Target/LoongArch/LoongArchISelLowering.h
M llvm/lib/Target/LoongArch/LoongArchInstrInfo.td
M llvm/lib/Target/LoongArch/LoongArchMachineFunctionInfo.h
M llvm/test/CodeGen/LoongArch/inline-asm-constraint-f.ll
A llvm/test/CodeGen/LoongArch/stack-clash-prologue-nounwind.ll
A llvm/test/CodeGen/LoongArch/stack-clash-prologue.ll
A llvm/test/CodeGen/LoongArch/stack-probing-dynamic-nonentry.ll
A llvm/test/CodeGen/LoongArch/stack-probing-dynamic.ll
A llvm/test/CodeGen/LoongArch/stack-probing-frame-setup.mir
Log Message:
-----------
[LoongArch] Add `-fstack-clash-protection` support (#195595)
This PR adds stack probing and `-fstack-clash-protection` support to the
LoongArch backend and Clang driver.
The implementation is largely borrowed from the RISCV backend (cf.
#117612, #139731), with the same allocation-unrolling strategy for
const-sized allocations.
Commit: 8ecfd9b96df46fc394173e4e6fecdac6381f37b6
https://github.com/llvm/llvm-project/commit/8ecfd9b96df46fc394173e4e6fecdac6381f37b6
Author: Sohaib Iftikhar <sohaibiftikhar at google.com>
Date: 2026-05-28 (Thu, 28 May 2026)
Changed paths:
M mlir/include/mlir/Target/SPIRV/SPIRVExtInstSets.h
M utils/bazel/llvm-project-overlay/mlir/BUILD.bazel
Log Message:
-----------
[BUILD]: Fix for af772866 (#200158)
Commit: 5b32c6e99e8dba8d1415b2d65f38650e3cff9951
https://github.com/llvm/llvm-project/commit/5b32c6e99e8dba8d1415b2d65f38650e3cff9951
Author: Nikolas Klauser <nikolasklauser at berlin.de>
Date: 2026-05-28 (Thu, 28 May 2026)
Changed paths:
M llvm/include/llvm/IR/InstrTypes.h
M llvm/lib/IR/Instructions.cpp
M llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp
M llvm/test/Transforms/InstCombine/assume.ll
Log Message:
-----------
[InstCombine] Drop the correct assume when working on assume bundles (#198404)
Currently, all assumes of the same kind in an assume bundle are dropped,
even though only a single one is actually checked to be redundant and
should be dropped. This introduces a new `removeOperandFromBundleAt`,
which instead drops a bundle at a specific position. This should also be
faster, since copying the bundles can now be done into an already
correctly allocated vector.
Commit: 9107dacd6e41c4b65c503c1fa199a1e30a8356a5
https://github.com/llvm/llvm-project/commit/9107dacd6e41c4b65c503c1fa199a1e30a8356a5
Author: Fabrice de Gans <Steelskin at users.noreply.github.com>
Date: 2026-05-28 (Thu, 28 May 2026)
Changed paths:
M llvm/include/llvm/Analysis/AssumptionCache.h
M llvm/include/llvm/Analysis/BlockFrequencyInfoImpl.h
M llvm/include/llvm/Analysis/CFGSCCPrinter.h
M llvm/include/llvm/Analysis/CmpInstAnalysis.h
M llvm/include/llvm/Analysis/CostModel.h
M llvm/include/llvm/Analysis/CycleAnalysis.h
M llvm/include/llvm/Analysis/DDGPrinter.h
M llvm/include/llvm/Analysis/DXILMetadataAnalysis.h
M llvm/include/llvm/Analysis/Delinearization.h
M llvm/include/llvm/Analysis/DomConditionCache.h
M llvm/include/llvm/Analysis/DominanceFrontier.h
M llvm/include/llvm/Analysis/FunctionPropertiesAnalysis.h
M llvm/include/llvm/Analysis/GuardUtils.h
M llvm/include/llvm/Analysis/HashRecognize.h
M llvm/include/llvm/Analysis/IR2Vec.h
M llvm/include/llvm/Analysis/IVUsers.h
M llvm/include/llvm/Analysis/IndirectCallPromotionAnalysis.h
M llvm/include/llvm/Analysis/InstCount.h
M llvm/include/llvm/Analysis/KernelInfo.h
M llvm/include/llvm/Analysis/LazyBlockFrequencyInfo.h
M llvm/include/llvm/Analysis/LazyBranchProbabilityInfo.h
M llvm/include/llvm/Analysis/LazyValueInfo.h
M llvm/include/llvm/Analysis/Lint.h
M llvm/include/llvm/Analysis/LoopCacheAnalysis.h
M llvm/include/llvm/Analysis/LoopIterator.h
M llvm/include/llvm/Analysis/MLInlineAdvisor.h
M llvm/include/llvm/Analysis/MemDerefPrinter.h
M llvm/include/llvm/Analysis/MemoryDependenceAnalysis.h
M llvm/include/llvm/Analysis/ModuleDebugInfoPrinter.h
M llvm/include/llvm/Analysis/ObjCARCAliasAnalysis.h
M llvm/include/llvm/Analysis/ObjCARCAnalysisUtils.h
M llvm/include/llvm/Analysis/ObjCARCInstKind.h
M llvm/include/llvm/Analysis/OverflowInstAnalysis.h
M llvm/include/llvm/Analysis/PtrUseVisitor.h
M llvm/include/llvm/Analysis/RegionInfo.h
M llvm/include/llvm/Analysis/ReplayInlineAdvisor.h
M llvm/include/llvm/Analysis/ScalarEvolution.h
M llvm/include/llvm/Analysis/ScalarEvolutionDivision.h
M llvm/include/llvm/Analysis/StackLifetime.h
M llvm/include/llvm/Analysis/StackSafetyAnalysis.h
M llvm/include/llvm/Analysis/StaticDataProfileInfo.h
M llvm/include/llvm/Analysis/StructuralHash.h
M llvm/include/llvm/Analysis/TargetTransformInfo.h
M llvm/include/llvm/Analysis/TargetTransformInfoImpl.h
M llvm/include/llvm/Analysis/Trace.h
M llvm/include/llvm/Analysis/TypeMetadataUtils.h
M llvm/include/llvm/Analysis/UniformityAnalysis.h
M llvm/include/llvm/Analysis/ValueLatticeUtils.h
M llvm/lib/Analysis/DominanceFrontier.cpp
M llvm/lib/Analysis/RegionInfo.cpp
Log Message:
-----------
llvm: Fix most LLVM_ABI annotations in Analysis (#199019)
This updates most LLVM_ABI annotations in the Analysis headers to match
expected usage:
* All public APIs should be properly annotated.
* Inlined functions should not be annotated.
These changes were done by a script fixing annotations on LLVM public
headers and manually checked.
This effort is tracked in #109483.
Commit: 61b5b08623e8457e28bce2984593632a9774be96
https://github.com/llvm/llvm-project/commit/61b5b08623e8457e28bce2984593632a9774be96
Author: Nick Sarnie <nick.sarnie at intel.com>
Date: 2026-05-28 (Thu, 28 May 2026)
Changed paths:
M libc/test/integration/src/__support/GPU/CMakeLists.txt
Log Message:
-----------
[libc] Move fixed buffer GPU test to an integration test (#200042)
Move the `fixedbuffer` GPU test to an integration test.
libc tests are intended to be GTest style tests written with the normal
`TEST(Suite, Test)` GTest macros. Example
[here](https://github.com/llvm/llvm-project/blob/main/libc/test/include/SignbitTest.h#L32).
This test has its own `main` which ends up causing a `main multiple
definitions` linker error when compiling for SPIR-V (work in progress).
I'm not sure why this error doesn't occur for AMDGPU, probably the fact
we have to compile with a ton less compile/linker flags for SPIR-V and
one of them hides the issue.
Specifically the fix is that we don't link against
`libc/test/UnitTest/CMakeFiles/LibcTest.hermetic.dir/LibcTestMain.cpp.o`
which has its own main which conflicts with the one defined in the test.
All other tests in this directory are integration tests too.
A quick check of other uses of the `TEST_MAIN` macro also showed them
using `add_integration_test` and not `add_libc_test`.
Signed-off-by: Nick Sarnie <nick.sarnie at intel.com>
Commit: 3e8fc3561fb5ccd50441804a56244fac6142e7b4
https://github.com/llvm/llvm-project/commit/3e8fc3561fb5ccd50441804a56244fac6142e7b4
Author: Erich Keane <ekeane at nvidia.com>
Date: 2026-05-28 (Thu, 28 May 2026)
Changed paths:
M clang/include/clang/CIR/MissingFeatures.h
M clang/lib/CIR/CodeGen/CIRGenCoroutine.cpp
M clang/lib/CIR/CodeGen/CIRGenException.cpp
A clang/test/CIR/CodeGen/coro-exceptions.cpp
Log Message:
-----------
[CIR] Implement 'coroutine' exception handling lowering (#200045)
This patch implements the lowering to CIR for exception handling.
Unfortunately the missing components of Flatten-CFG don't work here, so
we only test that we get successfully to CIR, not to LLVM-IR.
This patch runs the 'await-resume' in a try/catch, and only if that
succeeds, does it run the coroutine body (also in a try/catch if there
is an exception handler).
This is nearly identical to the implementation in classic-codegen,
except we invert the resume-eh variable's value, so we can just use a
simple `if` op for the branch.
Commit: 4471b623631534fb9bf50f55150594be69a305e8
https://github.com/llvm/llvm-project/commit/4471b623631534fb9bf50f55150594be69a305e8
Author: Yingwei Zheng <dtcxzyw2333 at gmail.com>
Date: 2026-05-28 (Thu, 28 May 2026)
Changed paths:
M llvm/utils/git/github-automation.py
Log Message:
-----------
[GitHub] Add InstCombine Contributor Guide to new contributor greeting comment (#199730)
I have always manually replied to new contributors, reminding them to
follow the InstCombine contributor guide. Let’s automate this process.
Now it will append the link to the guide when the PR changes the
InstCombine (and highly related components) files.
Commit: 98c7814ca93baa6976b92a753d8a6364915266f0
https://github.com/llvm/llvm-project/commit/98c7814ca93baa6976b92a753d8a6364915266f0
Author: Yingwei Zheng <dtcxzyw2333 at gmail.com>
Date: 2026-05-28 (Thu, 28 May 2026)
Changed paths:
M llvm/test/tools/llubi/alloca.ll
M llvm/test/tools/llubi/assume_misalign_all_ones.ll
M llvm/test/tools/llubi/assume_null.ll
M llvm/test/tools/llubi/assume_null_all_ones.ll
M llvm/test/tools/llubi/attribute_dereferenceable_ub_nullary_provenance.ll
M llvm/test/tools/llubi/attributes.ll
M llvm/test/tools/llubi/bitcast_be.ll
M llvm/test/tools/llubi/bitcast_le.ll
M llvm/test/tools/llubi/freeze.ll
M llvm/test/tools/llubi/gep.ll
M llvm/test/tools/llubi/inttoptr.ll
M llvm/test/tools/llubi/lib_calloc_large_size.ll
M llvm/test/tools/llubi/lib_calloc_size_overflow.ll
M llvm/test/tools/llubi/lib_free_nullary_pointer.ll
M llvm/test/tools/llubi/lib_malloc_large_size.ll
M llvm/test/tools/llubi/loadstore_be.ll
M llvm/test/tools/llubi/loadstore_le.ll
M llvm/test/tools/llubi/loadstore_uaf.ll
M llvm/test/tools/llubi/metadata.ll
M llvm/test/tools/llubi/store_dead.ll
M llvm/tools/llubi/lib/Context.cpp
M llvm/tools/llubi/lib/Context.h
M llvm/tools/llubi/lib/Value.cpp
M llvm/tools/llubi/lib/Value.h
Log Message:
-----------
[llubi] Add basic support for provenance modeling (#185977)
There are four solutions to model the provenance in the memory:
1. `(allocid, bitindex)` for each bit: It follows the definition of byte
type.
2. `(allocid, bitindex)` for each byte: This assumes the pointer/byte
types are always byte-sized, and requires bitextract/bitinsert to shift
by multiples of 8, as posted in
https://discourse.llvm.org/t/rfc-add-a-new-byte-type-to-llvm-ir/89522/53.
I believe this is true in most real-world cases.
3. Assign a random tag for each memory object: The tag has the same
width as the address. It is stored in the memory like addresses. Thus,
each logical byte only occupies 4 bytes. When loading a pointer, the tag
is loaded and used to recover the provenance. Incorrect bit ordering
will result in nullary provenance (with a negligible rate of false
negatives). I think it is feasible because we can always turn a false
negative into a positive with a different seed. It is also compatible
with captured components
(https://github.com/dtcxzyw/llvm-ub-aware-interpreter/blob/d15dfef5bc0c1b30b05512bbc28fddb2b50cc0b1/ubi.h#L187)
and noalias (https://jhostert.de/blog/2025/noalias/) if we maintain the
tree structure in a hashmap.
4. Maintains a `addr -> provenance` map like
[miri](https://github.com/rust-lang/rust/blob/main/compiler/rustc_middle/src/mir/interpret/allocation/provenance_map.rs).
It also looks expensive to maintain the provenance at the bit level.
This patch implements the third approach. After
https://github.com/llvm/llvm-project/pull/178666 lands, I can add more
tests to play with byte types.
Commit: 9f82a4e41f9a0101488cd81444adfa646063dbc5
https://github.com/llvm/llvm-project/commit/9f82a4e41f9a0101488cd81444adfa646063dbc5
Author: Nikita Popov <npopov at redhat.com>
Date: 2026-05-28 (Thu, 28 May 2026)
Changed paths:
M llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
M llvm/lib/Target/AArch64/AArch64LoadStoreOptimizer.cpp
M llvm/test/CodeGen/AArch64/arm64-ldst-unscaled-pre-post.mir
M llvm/test/CodeGen/AArch64/ldst-miflags.mir
M llvm/test/CodeGen/AArch64/ldst-opt.mir
M llvm/test/CodeGen/AArch64/ldst_update_cfpath.mir
M llvm/test/CodeGen/AArch64/memtag-merge-writeback.mir
M llvm/test/CodeGen/AArch64/no-reorder-cfi-merge-back-load.mir
M llvm/test/CodeGen/AArch64/no-reorder-cfi-merge-fwd-load.mir
M llvm/test/CodeGen/AArch64/stack-probing-dynamic.ll
A llvm/test/CodeGen/AArch64/volatile-reg-writeback.ll
M llvm/test/Transforms/LoopStrengthReduce/AArch64/lsr-memcpy.ll
Log Message:
-----------
[AArch64] Do not generate indexed addressing mode for volatile accesses (#196305)
Instructions performing register writeback do not set a valid
instruction syndrome, making it impossible to handle MMIO in protected
hypervisors. Suppress the use of postinc/preinc addressing modes for
volatile accesses, which may be used to interact with MMIO.
There are three different places that can form indexed addressing modes:
* GISel via isIndexingLegal()
* SDAG via getPreIndexedAddressParts() and getPostIndexedAddressParts()
* AArch64LoadStoreOptimizer
The the latter case, exclude volatile accesses on SP (which are relevant
for stack probing) and MTE tag stores, as both cannot be MMIO.
Fixes https://github.com/llvm/llvm-project/issues/173014.
Commit: 34f294ccbca8c820fffd0538015499108f6600aa
https://github.com/llvm/llvm-project/commit/34f294ccbca8c820fffd0538015499108f6600aa
Author: Krzysztof Parzyszek <Krzysztof.Parzyszek at amd.com>
Date: 2026-05-28 (Thu, 28 May 2026)
Changed paths:
M flang/lib/Semantics/resolve-directives.cpp
R flang/test/Semantics/OpenMP/detach-symbols.f90
Log Message:
-----------
[flang][OpenMP] Event handles are not predetermined shared (#200055)
An event-handle variable that appears in a DETACH has its data-sharing
attributes determined according to the usual rules in the constructs
enclosing the clause.
Commit: 7fb99eefbc6eb6850cb392165388fd87b61b526b
https://github.com/llvm/llvm-project/commit/7fb99eefbc6eb6850cb392165388fd87b61b526b
Author: Prerona Chaudhuri <pchaudhuri at nvidia.com>
Date: 2026-05-28 (Thu, 28 May 2026)
Changed paths:
M llvm/lib/Analysis/CallGraphSCCPass.cpp
A llvm/test/Other/legacy-callgraph-scc-pass-printer.ll
Log Message:
-----------
Emit newline after IR-dump banner in PrintCallGraphPass (#199410)
Required for Compiler Explorer's opt-pipeline viewer: the tool parses
pass output by splitting on the IR-dump banner line, so the banner must
end with a newline. Without it, targets that exercise this pass cannot
be inspected through the opt-pipeline feature.
Assisted by Claude.
Commit: ee3709b5db6fa563674c7f7dcaf72a85d19a1656
https://github.com/llvm/llvm-project/commit/ee3709b5db6fa563674c7f7dcaf72a85d19a1656
Author: Florian Hahn <flo at fhahn.com>
Date: 2026-05-28 (Thu, 28 May 2026)
Changed paths:
M llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
M llvm/test/CodeGen/AArch64/neon-partial-reduce-dot-product.ll
Log Message:
-----------
[AArch64] Lower SUMLA via two udot products on plain dotprod targets. (#199761)
Lower PARTIAL_REDUCE_SUMLA on targets without i8mm using udot via
sum(mul (zext %a, sext %b)) =
sum(mul zext %a, zext (xor %b, 0x80)) -
sum(mul 128, zext %a)
using sext(s) = zext(xor(s, 0x80)) - 128
(https://alive2.llvm.org/ce/z/8G8rer)
Alive2 proofs:
* mul (zext, sext) https://alive2.llvm.org/ce/z/8Av7rG
* mul (sext, zext) https://alive2.llvm.org/ce/z/g-gJGq
PR: https://github.com/llvm/llvm-project/pull/199761
Commit: da4e5cc928c8f8000643e48bc2790b51927eeac6
https://github.com/llvm/llvm-project/commit/da4e5cc928c8f8000643e48bc2790b51927eeac6
Author: Oliver Stannard <oliver.stannard at arm.com>
Date: 2026-05-28 (Thu, 28 May 2026)
Changed paths:
M llvm/lib/Analysis/ScalarEvolution.cpp
A llvm/test/Analysis/ScalarEvolution/rounding-demanded-bits.ll
A llvm/test/CodeGen/Thumb2/LowOverheadLoops/tail-pred-known-bits.ll
Log Message:
-----------
[SCEV] Canonicalise round-up idiom when some bits known (#197126)
Since #174380, instcombine can clear some set bits in the added constant
in expressions like this, when A has some known-clear low order bits.
(A + 15) & ~15
This transformation is valid, but can make it harder for later passes to
recognise this idiom for rounding up to a power of 2. This is causing
the ARM MVE tail predication pass to fail on loops with a trip count
which is a multiple of a small power of 2.
The fix is to reverse the transformation when building SCEV expressions,
canonicalising to always use the largest valid value for the added
constant.
Alive proofs:
https://alive2.llvm.org/ce/z/hhndoW
https://alive2.llvm.org/ce/z/_JYVat
Commit: ebe8595c0012674eb5ce7427ee938214f711ca66
https://github.com/llvm/llvm-project/commit/ebe8595c0012674eb5ce7427ee938214f711ca66
Author: Felipe de Azevedo Piovezan <fpiovezan at apple.com>
Date: 2026-05-28 (Thu, 28 May 2026)
Changed paths:
M lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCClassDescriptorV2.cpp
M lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCClassDescriptorV2.h
Log Message:
-----------
[lldb][NFCI] Cleanup APIs in AppleObjCClassDescriptorV2 (#200122)
This removes unnecessary unique_ptrs and uses better error handling
(expected instead of bools).
Commit: c8ef5dcfae341d176cd84a182c320d61afc441cf
https://github.com/llvm/llvm-project/commit/c8ef5dcfae341d176cd84a182c320d61afc441cf
Author: Ramkumar Ramachandra <artagnon at tenstorrent.com>
Date: 2026-05-28 (Thu, 28 May 2026)
Changed paths:
M llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
M llvm/lib/Transforms/Vectorize/VPlan.h
M llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
M llvm/unittests/Transforms/Vectorize/VPlanTest.cpp
Log Message:
-----------
[VPlan] Directly pass SrcEltTy when constructing WideGEP (NFC) (#200043)
Avoid getting the source element type from the underlying instruction,
and make the underlying instruction optional.
Commit: 5d29057a58760454c96411d27a92b8d80e40b048
https://github.com/llvm/llvm-project/commit/5d29057a58760454c96411d27a92b8d80e40b048
Author: Tom Stellard <tstellar at redhat.com>
Date: 2026-05-28 (Thu, 28 May 2026)
Changed paths:
M .github/actions/push-container/action.yml
Log Message:
-----------
actions/push-container: Remove template expansion (#200062)
https://github.com/llvm/llvm-project/security/code-scanning/1757
Commit: d5edbe411d8f60d13a5aeb2a4b0764dbb83a6155
https://github.com/llvm/llvm-project/commit/d5edbe411d8f60d13a5aeb2a4b0764dbb83a6155
Author: Tom Stellard <tstellar at redhat.com>
Date: 2026-05-28 (Thu, 28 May 2026)
Changed paths:
M .github/workflows/upload-release-artifact/action.yml
Log Message:
-----------
workflows/upload-release-artifact: Validate input and remove template expansion (#199972)
https://github.com/llvm/llvm-project/security/code-scanning/1757
https://github.com/llvm/llvm-project/security/code-scanning/1758
https://github.com/llvm/llvm-project/security/code-scanning/1759
https://github.com/llvm/llvm-project/security/code-scanning/1760
https://github.com/llvm/llvm-project/security/code-scanning/1761
Commit: 992ee5934c1142c00dc09589380b8277cc43ef09
https://github.com/llvm/llvm-project/commit/992ee5934c1142c00dc09589380b8277cc43ef09
Author: Matt Turner <mattst88 at gmail.com>
Date: 2026-05-28 (Thu, 28 May 2026)
Changed paths:
M compiler-rt/cmake/Modules/AllSupportedArchDefs.cmake
M compiler-rt/cmake/base-config-ix.cmake
M compiler-rt/lib/asan/asan_allocator.h
M compiler-rt/lib/asan/asan_mapping.h
M compiler-rt/lib/sanitizer_common/sanitizer_asm.h
M compiler-rt/lib/sanitizer_common/sanitizer_linux.cpp
M compiler-rt/lib/sanitizer_common/sanitizer_linux_libcdep.cpp
M compiler-rt/lib/sanitizer_common/sanitizer_platform.h
M compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_linux.cpp
M compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.cpp
M compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.h
A compiler-rt/lib/sanitizer_common/sanitizer_syscall_linux_alpha.inc
Log Message:
-----------
Add support for Alpha to libsanitizer (#194161)
Add support for [Alpha](https://en.wikipedia.org/wiki/DEC_Alpha) to
libsanitizer.
- [sanitizer] Add SANITIZER_ALPHA platform macro
- [sanitizer] Add Linux/Alpha syscall implementation
- [sanitizer] Skip __old_kernel_stat check on Alpha
- [sanitizer] Use statx for stat syscalls on Linux/Alpha
- [sanitizer] Add GetPcSpBp signal context support for Alpha
- [sanitizer] Add Alpha struct size constants
- [sanitizer] Add Alpha ioctl encoding constants
- [compiler-rt] sanitizer: Alpha struct sigaction has no sa_restorer
- [compiler-rt] sanitizer: Disable interceptor trampoline on Alpha
- [compiler-rt] sanitizer: Add Alpha __sanitizer_dirent layout
- [compiler-rt] sanitizer: Add Alpha ThreadDescriptorSizeFallback()
- [compiler-rt] Enable Alpha Linux target
- [compiler-rt] Use fixed shadow offset 0x10000000000 (1T) for Alpha
- [compiler-rt][ASan] Limit allocator to 512G on Alpha
Tested by porting the changes to gcc's downstream libsanitizer and
building and running the libunwind test suite with UBSan / ASan enabled.
Commit: 2766733764f4bdf8399d48c0225e9c64bdfa95f7
https://github.com/llvm/llvm-project/commit/2766733764f4bdf8399d48c0225e9c64bdfa95f7
Author: Guy David <guyda96 at gmail.com>
Date: 2026-05-28 (Thu, 28 May 2026)
Changed paths:
M compiler-rt/CMakeLists.txt
M compiler-rt/lib/profile/CMakeLists.txt
M compiler-rt/lib/profile/InstrProfilingFile.c
Log Message:
-----------
[compiler-rt][profile] Add COMPILER_RT_BUILD_PROFILE_ROCM option (#200127)
Commit: 34e7ecaf872f324c11d1e7e631831f2876cd8bd0
https://github.com/llvm/llvm-project/commit/34e7ecaf872f324c11d1e7e631831f2876cd8bd0
Author: Fangrui Song <i at maskray.me>
Date: 2026-05-28 (Thu, 28 May 2026)
Changed paths:
M llvm/lib/IR/Constants.cpp
Log Message:
-----------
[IR] Avoid caching a DenseMap reference across erase in handleOperandChangeImpl. NFC (#200179)
They bind a reference into the map and write through it after erasing
the old entry. This will not hold for backward-shift deletion. Extracted
from #199615
Commit: b43dcbeffe022d5e03d60c4091c92f651c4f20a4
https://github.com/llvm/llvm-project/commit/b43dcbeffe022d5e03d60c4091c92f651c4f20a4
Author: Dmitry Sidorov <Dmitry.Sidorov at amd.com>
Date: 2026-05-28 (Thu, 28 May 2026)
Changed paths:
M llvm/docs/SPIRVUsage.rst
M llvm/include/llvm/IR/IntrinsicsSPIRV.td
M llvm/lib/Target/SPIRV/SPIRVAsmPrinter.cpp
M llvm/lib/Target/SPIRV/SPIRVCommandLine.cpp
M llvm/lib/Target/SPIRV/SPIRVEmitIntrinsics.cpp
M llvm/lib/Target/SPIRV/SPIRVInstrInfo.cpp
M llvm/lib/Target/SPIRV/SPIRVInstrInfo.td
M llvm/lib/Target/SPIRV/SPIRVInstructionSelector.cpp
M llvm/lib/Target/SPIRV/SPIRVModuleAnalysis.cpp
M llvm/lib/Target/SPIRV/SPIRVSymbolicOperands.td
A llvm/test/CodeGen/SPIRV/extensions/SPV_KHR_poison_freeze/arithmetic-poison-execmode-metadata.ll
A llvm/test/CodeGen/SPIRV/extensions/SPV_KHR_poison_freeze/arithmetic-poison-execmode-negative.ll
A llvm/test/CodeGen/SPIRV/extensions/SPV_KHR_poison_freeze/arithmetic-poison-execmode.ll
A llvm/test/CodeGen/SPIRV/extensions/SPV_KHR_poison_freeze/freeze.ll
A llvm/test/CodeGen/SPIRV/extensions/SPV_KHR_poison_freeze/poison-composite.ll
A llvm/test/CodeGen/SPIRV/extensions/SPV_KHR_poison_freeze/poison.ll
Log Message:
-----------
Implement SPV_KHR_poison_freeze extension (#198037)
Specification can be found here:
https://github.com/KhronosGroup/SPIRV-Registry/blob/main/extensions/KHR/SPV_KHR_poison_freeze.asciidoc
Commit: 3c21a0cbad43398d47fb2a95b242a02f084dd767
https://github.com/llvm/llvm-project/commit/3c21a0cbad43398d47fb2a95b242a02f084dd767
Author: Arseniy Obolenskiy <arseniy.obolenskiy at amd.com>
Date: 2026-05-28 (Thu, 28 May 2026)
Changed paths:
M llvm/lib/Target/SPIRV/SPIRVLegalizerInfo.cpp
A llvm/test/CodeGen/SPIRV/extensions/SPV_ALTERA_arbitrary_precision_integers/i128-icmp.ll
Log Message:
-----------
[SPIR-V] Add s128 to allPtrsScalarsAndVectors in legalizer (#199998)
Without this, i128 G_ICMP fails legalization before OpTypeInt emits the
diagnostic
---------
Co-authored-by: Dmitry Sidorov <dsidorov at amd.com>
Commit: 5536348d060066e875c9bf9e056447ece59c783d
https://github.com/llvm/llvm-project/commit/5536348d060066e875c9bf9e056447ece59c783d
Author: Prasoon <prasoonkumar054 at gmail.com>
Date: 2026-05-28 (Thu, 28 May 2026)
Changed paths:
M llvm/utils/lit/lit/TestingConfig.py
Log Message:
-----------
[lit] Handle config loading safely (#200168)
Currently, the config file is opened outside the `try` block without
explicit encoding and handled with a bare `except`.
We can move to putting a `with open()` context manager inside the `try`
block and catching OSError.
Signed-off-by: Prasoon Kumar <prasoonkumar054 at gmail.com>
Commit: a16511c2d9697e7c5a9a9bc10948762666573c3c
https://github.com/llvm/llvm-project/commit/a16511c2d9697e7c5a9a9bc10948762666573c3c
Author: Naveen Seth Hanig <naveen.hanig at outlook.com>
Date: 2026-05-28 (Thu, 28 May 2026)
Changed paths:
M clang/include/clang/Driver/Types.def
M clang/lib/Driver/Driver.cpp
M clang/lib/Driver/ModulesDriver.cpp
M clang/lib/Driver/ToolChains/Clang.cpp
M clang/lib/Driver/Types.cpp
M clang/lib/Tooling/InterpolatingCompilationDatabase.cpp
M clang/test/Driver/modules-driver-dep-graph-stdlib-modules.cpp
M clang/test/Driver/modules-driver-import-std.cpp
Log Message:
-----------
[clang][modules-driver] Precompile std modules independently of -o and final phase (#199289)
With this, Standard library modules are always precompiled as the
primary output of their `-cc1` invocation, instead of being produced as
a byproduct of compiling the Standard library modules to object files.
This also keeps Standard library module precompilation independent of
the final phase specified on the command line, so importing them keep
working under `-fsyntax-only` (and other command-line options that
specify the final phase).
This also makes the Standard library module precompilation independent
of the `-o` flag, so that a command like `clang -std=c++23
-fmodules-driver main.cpp -o main` no longer redirects the Standard
library module outputs to 'main', breaking the compilation.
Commit: 8ab00f2c21e5975f5de977ca68607b4acc23c856
https://github.com/llvm/llvm-project/commit/8ab00f2c21e5975f5de977ca68607b4acc23c856
Author: Zibi Sarbinowski <zibi at ca.ibm.com>
Date: 2026-05-28 (Thu, 28 May 2026)
Changed paths:
M llvm/test/CodeGen/Generic/2009-03-17-LSR-APInt.ll
M llvm/test/CodeGen/Generic/available_externally_alias.ll
Log Message:
-----------
[z/OS][tests] XFAIL using aliases on z/OS (#200176)
This PR XFAIL 2 lit test cases as the following errors are expected:
```
FAIL: LLVM :: CodeGen/Generic/available_externally_alias.ll
# | <unknown>:0: error: Only aliases to functions is supported in GOFF.
FAIL: LLVM :: CodeGen/Generic/2009-03-17-LSR-APInt.ll
# | <unknown>:0: error: Weak alias/reference not supported on z/OS
```
Commit: f24ee22550de8bfe926df7a6358f307023b8f24b
https://github.com/llvm/llvm-project/commit/f24ee22550de8bfe926df7a6358f307023b8f24b
Author: ioana ghiban <ioana.ghiban at arm.com>
Date: 2026-05-28 (Thu, 28 May 2026)
Changed paths:
A mlir/test/Conversion/MemRefToEmitC/memref-to-emitc-alloc-dealloc.mlir
R mlir/test/Conversion/MemRefToEmitC/memref-to-emitc-alloc.mlir
Log Message:
-----------
[mlir][EmitC] Include DeallocOp in AllocOp memref conversion tests (#198275)
This PR helps keep changes introduced in
https://github.com/llvm/llvm-project/pull/194591 visible, by renaming
files in a separate commit.
Commit: 3e92883e83f76926467adaee8d81902c407823a9
https://github.com/llvm/llvm-project/commit/3e92883e83f76926467adaee8d81902c407823a9
Author: Christian Kandeler <christian.kandeler at qt.io>
Date: 2026-05-28 (Thu, 28 May 2026)
Changed paths:
M clang-tools-extra/clangd/XRefs.cpp
M clang-tools-extra/clangd/test/type-hierarchy-ext.test
M clang-tools-extra/clangd/test/type-hierarchy.test
M clang-tools-extra/clangd/unittests/CallHierarchyTests.cpp
Log Message:
-----------
[clangd] Remove redundant symbol name from hierarchy item details (#170112)
Closes clangd/clangd#2346.
Commit: c20c666e7df2b09fb51704d5e44dce94503baa76
https://github.com/llvm/llvm-project/commit/c20c666e7df2b09fb51704d5e44dce94503baa76
Author: Felipe de Azevedo Piovezan <fpiovezan at apple.com>
Date: 2026-05-28 (Thu, 28 May 2026)
Changed paths:
M lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCClassDescriptorV2.cpp
M lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCClassDescriptorV2.h
Log Message:
-----------
[lldb][NFCI] Cleanup AppleObjCClassDescriptorV2::objc_class_t API (#200180)
Commit: 082ac6e3eaaa33b579f9e4c67a84599e9d49e9d4
https://github.com/llvm/llvm-project/commit/082ac6e3eaaa33b579f9e4c67a84599e9d49e9d4
Author: Prasoon <prasoonkumar054 at gmail.com>
Date: 2026-05-28 (Thu, 28 May 2026)
Changed paths:
M llvm/utils/lit/lit/ShUtil.py
Log Message:
-----------
[lit] Optimize ShLexer string construction (#199641)
`lex_arg_quoted` and `lex_arg_slow` methods in the `lit`'s `ShLexer`
class used `+=` for string concatenation, which was inefficient. This change
replaces that pattern by collecting string fragments in a list and using
`"".join()` at the end.
**Baseline:**
| Stage | Metric (Runtime / Peak RSS) |
| :--- | :--- |
| **CodeGen-X86** | 99.310s / 51872 kB |
| **llvm-transforms** | 51.457s / 66928 kB |
**Changes made here:**
| Stage | Metric (Runtime / Peak RSS) |
| :--- | :--- |
| **CodeGen-X86** | 94.964s / 51868 kB |
| **llvm-transforms** | 50.890s / 66328 kB |
This PR is part of the "GSoC 2026: Improving lit" project.
Signed-off-by: Prasoon Kumar <prasoonkumar054 at gmail.com>
Commit: 7ac0a3cec9bf6c6199f62be26d1cdb754c97383d
https://github.com/llvm/llvm-project/commit/7ac0a3cec9bf6c6199f62be26d1cdb754c97383d
Author: Prasoon <prasoonkumar054 at gmail.com>
Date: 2026-05-28 (Thu, 28 May 2026)
Changed paths:
M llvm/utils/lit/lit/ProgressBar.py
Log Message:
-----------
[lit] Replace zip(range(len(x)), x) with enumerate(x) in ProgressBar (#199884)
Updated `ProgressBar.py` to replace four instances of
`zip(range(len(x)), x)` with `enumerate(x)`. The former is a legacy
Python 2 pattern, while `enumerate()` is the modern and efficient Python
3 idiom. This is a clean-up refactor that results in no behavioral
changes to the code.
This PR is part of the "GSoC 2026: Improving lit" project.
Signed-off-by: Prasoon Kumar <prasoonkumar054 at gmail.com>
Commit: 3beee85e5244bc70fa32210d89634c0e53d2606d
https://github.com/llvm/llvm-project/commit/3beee85e5244bc70fa32210d89634c0e53d2606d
Author: Matt <MattPD at users.noreply.github.com>
Date: 2026-05-28 (Thu, 28 May 2026)
Changed paths:
M flang/lib/Semantics/check-omp-structure.cpp
M flang/lib/Semantics/mod-file.cpp
M flang/lib/Semantics/resolve-names.cpp
A flang/test/Semantics/OpenMP/declare-reduction-accessibility.f90
A flang/test/Semantics/OpenMP/declare-reduction-default-private.f90
A flang/test/Semantics/OpenMP/declare-reduction-modfile-private.f90
A flang/test/Semantics/OpenMP/declare-reduction-public-regression.f90
A flang/test/Semantics/OpenMP/declare-reduction-use-assoc.f90
Log Message:
-----------
[flang][OpenMP] Fix declare reduction accessibility in module scope (#197078)
Fix four interacting issues with OpenMP declare reduction accessibility
when reductions are declared in Fortran modules:
1. Accessibility propagation (resolve-names.cpp): Reduction symbols like
`op.+` had no linkage to the corresponding `operator(+)` accessibility.
`ApplyDefaultAccess()` now reverse-maps mangled names to their Fortran
identifiers and inherits operator/procedure accessibility.
2. USE-associated duplicate detection (resolve-names.cpp):
`FindSymbol()`
searched parent scopes and found USE-associated symbols, causing false
"Duplicate definition" errors. Changed to scope-local `FindInScope()`
with proper `UseDetails` handling that shadows USE symbols.
3. Module file serialization (mod-file.cpp): `PutUserReduction()` never
emitted accessibility, so PRIVATE was lost on module file round-trips.
Now emits `private::<identifier>` when no GenericDetails symbol already
carries PRIVATE (avoiding duplicates with PutGeneric output).
4. Reduction clause checking (check-omp-structure.cpp):
`CheckSymbolSupportsType()` scanned all module scopes ignoring
accessibility. Now skips PRIVATE reductions in the module scope scan.
Also fixes a pre-existing bug in `MakeNameFromOperator()` where the
CharBlock lengths for OR, EQV, and NEQV included the null terminator
(6/7/8 instead of 5/6/7), causing silent mismatches in StringSwitch
comparisons.
Note: `CheckSymbolSupportsType` still scans all global module scopes
rather than only USE-reachable ones. This pre-existing over-broad lookup
is improved by the PRIVATE filter added here but a proper
scope-restricted resolution is left as future work.
Fixes #187415
Related: #192580
Assisted-by: Claude Opus 4.6.
Co-authored-by: Matt P. Dziubinski <matt-p.dziubinski at hpe.com>
Commit: 96b6bb78aa04c489fcd95e844a74bbcc64f8a2ef
https://github.com/llvm/llvm-project/commit/96b6bb78aa04c489fcd95e844a74bbcc64f8a2ef
Author: lijinpei-amd <jinpli at amd.com>
Date: 2026-05-28 (Thu, 28 May 2026)
Changed paths:
M llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
A llvm/test/CodeGen/AMDGPU/freeze-other-uses-issue-198094.ll
Log Message:
-----------
[DAGCombiner] Loop unfreeze step in visitFREEZE freezeOtherUses (#200120)
The first ReplaceAllUsesOfValueWith in visitFREEZE's freezeOtherUses
block can leave users of N behind: when the inner RAUW cascade
encounters a freeze user whose hash collides post-mutation, the
recursive merge prepends new freeze users to N's use-list that the outer
iterator deliberately skips (PR3018 invariant). Those leftover users
then collide with the self-cycle the next RAUW step creates, firing
"Node is not in map!" in RemoveNodeFromCSEMaps.
Wrap the unfreeze in a convergence loop so all such prepended users are
drained before the second RAUW. Each iteration strictly shrinks N's
use-set, bounded by the depth of the freeze chain.
Fixes #198094
Commit: 7948d336a9eb457321dce284bdd1dfbffa33ef33
https://github.com/llvm/llvm-project/commit/7948d336a9eb457321dce284bdd1dfbffa33ef33
Author: Prasoon <prasoonkumar054 at gmail.com>
Date: 2026-05-28 (Thu, 28 May 2026)
Changed paths:
M llvm/utils/lit/lit/Test.py
Log Message:
-----------
[lit] Refactor super() calls in ResultCode (#199891)
This PR simplifies the `super()` call in `ResultCode.__new__`
by migrating from the Python 2 style explicit arguments to the
standard Python 3 zero-argument syntax.
This PR is part of the "GSoC 2026: Improving lit" project.
Signed-off-by: Prasoon Kumar <prasoonkumar054 at gmail.com>
Commit: ba7d42b096cbef00320abe2b2e12a0125a6dc2f3
https://github.com/llvm/llvm-project/commit/ba7d42b096cbef00320abe2b2e12a0125a6dc2f3
Author: Maryam Moghadas <maryammo at ca.ibm.com>
Date: 2026-05-28 (Thu, 28 May 2026)
Changed paths:
M llvm/lib/Target/PowerPC/PPCISelLowering.cpp
M llvm/lib/Target/PowerPC/PPCISelLowering.h
M llvm/lib/Target/PowerPC/PPCInstrVSX.td
M llvm/test/CodeGen/PowerPC/combine-fneg.ll
M llvm/test/CodeGen/PowerPC/fma-combine.ll
M llvm/test/CodeGen/PowerPC/recipest.ll
M llvm/test/CodeGen/PowerPC/repeated-fp-divisors.ll
A llvm/test/CodeGen/PowerPC/vec-splats-opt.ll
Log Message:
-----------
[PowerPC] Optimize vec_splats of small FP values on Power8/9 (#199538)
Recognize small constant FP splats representable as integers and lower
them to vspltisw + xvcvsxwdp/xvcvsxwsp on Power8/9, avoiding constant
pool loads.
Commit: 90aece05fdd4be2f6ccac93508d7ee7852d336b5
https://github.com/llvm/llvm-project/commit/90aece05fdd4be2f6ccac93508d7ee7852d336b5
Author: LU-JOHN <John.Lu at amd.com>
Date: 2026-05-28 (Thu, 28 May 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/SIPeepholeSDWA.cpp
M llvm/test/CodeGen/AMDGPU/GlobalISel/saddsat.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/ssubsat.ll
M llvm/test/CodeGen/AMDGPU/ashr.v2i16.ll
M llvm/test/CodeGen/AMDGPU/sdwa-peephole-instr.mir
Log Message:
-----------
[AMDGPU] Do not combine V_ASHRREV_I16* to make sdwa (#198491)
Do not combine V_ASHRREV_I16* instructions to form sdwa instructions.
These instructions zero-fill the high 16-bits.
---------
Signed-off-by: John Lu <John.Lu at amd.com>
Commit: 8fea28089a91bbcee1ffb21d034548019329d775
https://github.com/llvm/llvm-project/commit/8fea28089a91bbcee1ffb21d034548019329d775
Author: Ilia Kuklin <ikuklin at accesssoftek.com>
Date: 2026-05-28 (Thu, 28 May 2026)
Changed paths:
M llvm/lib/Object/DXContainer.cpp
M llvm/unittests/Object/DXContainerTest.cpp
Log Message:
-----------
[DirectX] Check DXContainer's header magic during parsing (#198586)
Check that header magic is 'DXBC' during parsing to avoid random data
being treated like a correct header.
Commit: c34220a5709dabcd22d07929a82b5e563e955562
https://github.com/llvm/llvm-project/commit/c34220a5709dabcd22d07929a82b5e563e955562
Author: Craig Topper <craig.topper at sifive.com>
Date: 2026-05-28 (Thu, 28 May 2026)
Changed paths:
M llvm/lib/Target/RISCV/RISCVInstrInfoP.td
Log Message:
-----------
[RISCV] Use append TableGen feature in RISCVInstrInfoP.td. NFC (#200110)
I may go back and adjust some formatting in a follow up. I wanted to
keep the diff here focused on the Predicates changes.
Commit: 67ac1b07a38f44ff9f05b8d7b1e3fe2b3698782c
https://github.com/llvm/llvm-project/commit/67ac1b07a38f44ff9f05b8d7b1e3fe2b3698782c
Author: Craig Topper <craig.topper at sifive.com>
Date: 2026-05-28 (Thu, 28 May 2026)
Changed paths:
M llvm/lib/Target/RISCV/RISCVISelLowering.cpp
M llvm/lib/Target/RISCV/RISCVInstrInfoP.td
M llvm/test/CodeGen/RISCV/rvp-simd-64.ll
Log Message:
-----------
[RISCV][P-ext] Support v4i16/v8i8 build_vector on RV32. (#199883)
Commit: c4d820ce311b74acf70e52ec04856fc89b503ab9
https://github.com/llvm/llvm-project/commit/c4d820ce311b74acf70e52ec04856fc89b503ab9
Author: Fangrui Song <i at maskray.me>
Date: 2026-05-28 (Thu, 28 May 2026)
Changed paths:
M llvm/include/llvm/ADT/DenseMap.h
M llvm/lib/IR/Value.cpp
M llvm/unittests/ADT/BitVectorTest.cpp
Log Message:
-----------
[DenseMap] Replace tombstone deletion with TAOCP 6.4 Algorithm R (#199615)
DenseMap uses quadratic probing with lazy deletion: an erased entry
becomes a tombstone, a third bucket state alongside empty and live that
every find/insert must inspect.
Switch to linear probing with backward-shift deletion (Knuth TAOCP 6.4
Algorithm R), similar to the SmallPtrSet change #197637. This removes
the tombstone state entirely.
In exchange, erase now relocates the following live entries to close the
hole, so it invalidates iterators and references other than the erased
one. For callers that cache pointers into the bucket array,
erase(Key, OnMoved) and erase(iterator, OnMoved) fire a callback once
per
shifted bucket, so fix-ups cost O(cluster) rather than O(NumEntries).
ValueHandleBase::RemoveFromUseList uses this to refresh each moved
handle's PrevPtr.
Linear probing is more vulnerable to primary clustering than quadratic
probing, so this relies on the stronger DenseMapInfo<T*>::getHashValue
mixer from #197390.
Operation distribution when compiling CGExpr.cpp/ScalarEvolution.cpp:
62.8% lookups, 34.3% inserts, 2.9% erases. The heaviest DenseMap
specializations have pointer keys and 16-byte key/value pairs.
Alternatives such as Robin Hood hashing, Verstable, and Boost's
unordered_flat_map were evaluated; they are slower and have a larger
code footprint. I believe the current in-band sentinel value approach,
despite the pain (#146595), is the best, or at least very difficult to
beat.
Non-core cleanups aided by Claude Opus 4.7.
Commit: ea4cd9228f872677395d1ded19f67f20f016c78a
https://github.com/llvm/llvm-project/commit/ea4cd9228f872677395d1ded19f67f20f016c78a
Author: michaelselehov <michael.selehov at amd.com>
Date: 2026-05-28 (Thu, 28 May 2026)
Changed paths:
M clang/lib/CodeGen/Targets/AMDGPU.cpp
R clang/test/CodeGen/amdgpu-abi-struct-coerce.c
M clang/test/CodeGen/amdgpu-variadic-call.c
M clang/test/CodeGenOpenCL/amdgpu-abi-struct-coerce.cl
M clang/test/Headers/amdgcn-openmp-device-math-complex.c
Log Message:
-----------
Revert "[AMDGPU] Stop coercing structs with FP and int fields to inte… (#199981)
…ger arrays (#185083)"
This reverts commit 50b859cca1ccf7d174ee61a8a130ae14220209e4.
Co-authored-by: mselehov <mselehov at amd.com>
Commit: 2c8ca9679e85e466e8d7105027df322d03c45e3d
https://github.com/llvm/llvm-project/commit/2c8ca9679e85e466e8d7105027df322d03c45e3d
Author: Jan André Reuter <j.reuter at fz-juelich.de>
Date: 2026-05-28 (Thu, 28 May 2026)
Changed paths:
M clang/docs/OpenMPSupport.rst
M offload/include/OpenMP/OMPT/Interface.h
M offload/libomptarget/OpenMP/API.cpp
M offload/libomptarget/OpenMP/OMPT/Callback.cpp
A offload/test/ompt/target_memset.c
A offload/test/ompt/target_memset_async.c
A offload/test/ompt/target_memset_emi.c
Log Message:
-----------
[OMPT] Add callback for `omp_target_memset` calls (#194168)
OpenMP v6.0 added new enum values to `ompt_callback_target_data_op_t`
for communicating `memset` events. Add a corresponding callback
invokation to `omp_target_memset` calls.
Expand the tests to ensure correct behavior.
Signed-off-by: Jan André Reuter <j.reuter at fz-juelich.de>
Commit: 10f84995b430a7964d0873488100756a52652fa0
https://github.com/llvm/llvm-project/commit/10f84995b430a7964d0873488100756a52652fa0
Author: Prasoon <prasoonkumar054 at gmail.com>
Date: 2026-05-28 (Thu, 28 May 2026)
Changed paths:
M llvm/utils/lit/lit/TestRunner.py
Log Message:
-----------
[lit] Modernize ParserKind implementation using Python3 IntEnum (#199965)
`ParserKind` in `TestRunner.py` uses a detached dictionary
for suffix mapping, which is a Python 2 idiom. We can convert
the class to a Python 3 `IntEnum`. No change in behavior.
This PR is part of the "GSoC 2026: Improving lit" project.
Signed-off-by: Prasoon Kumar <prasoonkumar054 at gmail.com>
Commit: 10497d20fc2f5312df03dc7c48f4f050f92ad6d5
https://github.com/llvm/llvm-project/commit/10497d20fc2f5312df03dc7c48f4f050f92ad6d5
Author: Nikita Popov <npopov at redhat.com>
Date: 2026-05-28 (Thu, 28 May 2026)
Changed paths:
M llvm/lib/IR/Constants.cpp
M llvm/test/Assembler/aggregate-constant-values.ll
Log Message:
-----------
[IR] Remove options for vector of null representation (#200172)
This had a bit time to bake in tree, I don't think we need these options
anymore.
Commit: aff129e825b5e21943f89a3994d6e26a14600367
https://github.com/llvm/llvm-project/commit/aff129e825b5e21943f89a3994d6e26a14600367
Author: Joshua Rodriguez <josh.rodriguez at arm.com>
Date: 2026-05-28 (Thu, 28 May 2026)
Changed paths:
M llvm/docs/GlobalISel/GenericOpcode.rst
M llvm/include/llvm/Support/TargetOpcodes.def
M llvm/include/llvm/Target/GenericOpcodes.td
M llvm/include/llvm/Target/GlobalISel/SelectionDAGCompat.td
M llvm/lib/Target/AArch64/GISel/AArch64LegalizerInfo.cpp
M llvm/lib/Target/AArch64/GISel/AArch64RegisterBankInfo.cpp
M llvm/test/CodeGen/AArch64/GlobalISel/legalizer-info-validation.mir
M llvm/test/CodeGen/AArch64/arm64-neon-mul-div.ll
M llvm/test/CodeGen/RISCV/GlobalISel/legalizer-info-validation.mir
M llvm/test/CodeGen/X86/machine-block-hash.mir
Log Message:
-----------
[AArch64][GlobalISel] Add support for pmul intrinsic (#198809)
Previously, pmul couldn't lower as there were neither any GlobalISel
patterns for the intrinsic, nor a GlobalISel node to allow use of the
SelectionDAG patterns.
Create a G_PMUL node linked to the SelectionDAG node 'clmul' (CarryLess
MULtiplication). Now the ISel stage of GlobalISel has suitable patterns
to lower the intrinsic.
Commit: ac2c011dd3b15e97b6dd6fbd11ca57b6411cab09
https://github.com/llvm/llvm-project/commit/ac2c011dd3b15e97b6dd6fbd11ca57b6411cab09
Author: Piotr Balcer <piotr.balcer at intel.com>
Date: 2026-05-28 (Thu, 28 May 2026)
Changed paths:
M offload/unittests/OffloadAPI/common/Fixtures.hpp
M offload/unittests/OffloadAPI/event/olGetEventElapsedTime.cpp
M offload/unittests/OffloadAPI/kernel/olCalculateOptimalOccupancy.cpp
M offload/unittests/OffloadAPI/kernel/olLaunchKernel.cpp
M offload/unittests/OffloadAPI/memory/olMemFill.cpp
M offload/unittests/OffloadAPI/queue/olDestroyQueue.cpp
M offload/unittests/OffloadAPI/queue/olLaunchHostFunction.cpp
M offload/unittests/OffloadAPI/symbol/olGetSymbolInfo.cpp
Log Message:
-----------
[offload] add SKIP_KNOWN_FAILURE unittest macro (#196275)
... and disable failing level-zero tests, to be reenabled once the
plugin is fully functional.
Here is the passrate for the level-zero plugin unit tests:
```
Total Discovered Tests: 645
Skipped: 74 (11.47%)
Passed : 571 (88.53%)
```
We are actively working on fixing the issues marked as known failures
here.
Commit: 35a10827d093d5890948c9ac362ac546464a67bc
https://github.com/llvm/llvm-project/commit/35a10827d093d5890948c9ac362ac546464a67bc
Author: Gábor Tóthvári <gabor.tothvari at ericsson.com>
Date: 2026-05-28 (Thu, 28 May 2026)
Changed paths:
M clang/docs/analyzer/developer-docs/IPA.rst
M clang/include/clang/Analysis/AnalysisDeclContext.h
M clang/include/clang/Analysis/PathDiagnostic.h
M clang/include/clang/Analysis/ProgramPoint.h
M clang/include/clang/StaticAnalyzer/Checkers/Taint.h
M clang/include/clang/StaticAnalyzer/Core/BugReporter/BugReporter.h
M clang/include/clang/StaticAnalyzer/Core/Checker.h
M clang/include/clang/StaticAnalyzer/Core/CheckerManager.h
M clang/include/clang/StaticAnalyzer/Core/PathSensitive/CallEvent.h
M clang/include/clang/StaticAnalyzer/Core/PathSensitive/CheckerContext.h
M clang/include/clang/StaticAnalyzer/Core/PathSensitive/CoreEngine.h
M clang/include/clang/StaticAnalyzer/Core/PathSensitive/Environment.h
M clang/include/clang/StaticAnalyzer/Core/PathSensitive/ExplodedGraph.h
M clang/include/clang/StaticAnalyzer/Core/PathSensitive/ExprEngine.h
M clang/include/clang/StaticAnalyzer/Core/PathSensitive/LoopWidening.h
M clang/include/clang/StaticAnalyzer/Core/PathSensitive/MemRegion.h
M clang/include/clang/StaticAnalyzer/Core/PathSensitive/ProgramState.h
M clang/include/clang/StaticAnalyzer/Core/PathSensitive/SValBuilder.h
M clang/include/clang/StaticAnalyzer/Core/PathSensitive/Store.h
M clang/include/clang/StaticAnalyzer/Core/PathSensitive/SymbolManager.h
M clang/lib/Analysis/AnalysisDeclContext.cpp
M clang/lib/Analysis/PathDiagnostic.cpp
M clang/lib/Analysis/ProgramPoint.cpp
M clang/lib/StaticAnalyzer/Checkers/AnalysisOrderChecker.cpp
M clang/lib/StaticAnalyzer/Checkers/AnalyzerStatsChecker.cpp
M clang/lib/StaticAnalyzer/Checkers/ArrayBoundChecker.cpp
M clang/lib/StaticAnalyzer/Checkers/BasicObjCFoundationChecks.cpp
M clang/lib/StaticAnalyzer/Checkers/BuiltinFunctionChecker.cpp
M clang/lib/StaticAnalyzer/Checkers/CStringChecker.cpp
M clang/lib/StaticAnalyzer/Checkers/CXXDeleteChecker.cpp
M clang/lib/StaticAnalyzer/Checkers/CXXSelfAssignmentChecker.cpp
M clang/lib/StaticAnalyzer/Checkers/CallAndMessageChecker.cpp
M clang/lib/StaticAnalyzer/Checkers/CastValueChecker.cpp
M clang/lib/StaticAnalyzer/Checkers/CheckObjCDealloc.cpp
M clang/lib/StaticAnalyzer/Checkers/CheckerDocumentation.cpp
M clang/lib/StaticAnalyzer/Checkers/ChrootChecker.cpp
M clang/lib/StaticAnalyzer/Checkers/ContainerModeling.cpp
M clang/lib/StaticAnalyzer/Checkers/ConversionChecker.cpp
M clang/lib/StaticAnalyzer/Checkers/DebugContainerModeling.cpp
M clang/lib/StaticAnalyzer/Checkers/DebugIteratorModeling.cpp
M clang/lib/StaticAnalyzer/Checkers/DereferenceChecker.cpp
M clang/lib/StaticAnalyzer/Checkers/DirectIvarAssignment.cpp
M clang/lib/StaticAnalyzer/Checkers/DynamicTypeChecker.cpp
M clang/lib/StaticAnalyzer/Checkers/DynamicTypePropagation.cpp
M clang/lib/StaticAnalyzer/Checkers/ErrnoChecker.cpp
M clang/lib/StaticAnalyzer/Checkers/ErrnoModeling.cpp
M clang/lib/StaticAnalyzer/Checkers/ErrnoModeling.h
M clang/lib/StaticAnalyzer/Checkers/ErrnoTesterChecker.cpp
M clang/lib/StaticAnalyzer/Checkers/ExprInspectionChecker.cpp
M clang/lib/StaticAnalyzer/Checkers/FuchsiaHandleChecker.cpp
M clang/lib/StaticAnalyzer/Checkers/GenericTaintChecker.cpp
M clang/lib/StaticAnalyzer/Checkers/InnerPointerChecker.cpp
M clang/lib/StaticAnalyzer/Checkers/InvalidatedIteratorChecker.cpp
M clang/lib/StaticAnalyzer/Checkers/Iterator.cpp
M clang/lib/StaticAnalyzer/Checkers/Iterator.h
M clang/lib/StaticAnalyzer/Checkers/IteratorModeling.cpp
M clang/lib/StaticAnalyzer/Checkers/IteratorRangeChecker.cpp
M clang/lib/StaticAnalyzer/Checkers/LocalizationChecker.cpp
M clang/lib/StaticAnalyzer/Checkers/MIGChecker.cpp
M clang/lib/StaticAnalyzer/Checkers/MacOSKeychainAPIChecker.cpp
M clang/lib/StaticAnalyzer/Checkers/MallocChecker.cpp
M clang/lib/StaticAnalyzer/Checkers/MismatchedIteratorChecker.cpp
M clang/lib/StaticAnalyzer/Checkers/MoveChecker.cpp
M clang/lib/StaticAnalyzer/Checkers/NoOwnershipChangeVisitor.cpp
M clang/lib/StaticAnalyzer/Checkers/NonNullParamChecker.cpp
M clang/lib/StaticAnalyzer/Checkers/NullabilityChecker.cpp
M clang/lib/StaticAnalyzer/Checkers/ObjCSuperDeallocChecker.cpp
M clang/lib/StaticAnalyzer/Checkers/PthreadLockChecker.cpp
M clang/lib/StaticAnalyzer/Checkers/RetainCountChecker/RetainCountChecker.cpp
M clang/lib/StaticAnalyzer/Checkers/RetainCountChecker/RetainCountChecker.h
M clang/lib/StaticAnalyzer/Checkers/RetainCountChecker/RetainCountDiagnostics.cpp
M clang/lib/StaticAnalyzer/Checkers/ReturnPointerRangeChecker.cpp
M clang/lib/StaticAnalyzer/Checkers/STLAlgorithmModeling.cpp
M clang/lib/StaticAnalyzer/Checkers/SmartPtrModeling.cpp
M clang/lib/StaticAnalyzer/Checkers/StackAddrEscapeChecker.cpp
M clang/lib/StaticAnalyzer/Checkers/StdLibraryFunctionsChecker.cpp
M clang/lib/StaticAnalyzer/Checkers/StdVariantChecker.cpp
M clang/lib/StaticAnalyzer/Checkers/StreamChecker.cpp
M clang/lib/StaticAnalyzer/Checkers/Taint.cpp
M clang/lib/StaticAnalyzer/Checkers/TaintTesterChecker.cpp
M clang/lib/StaticAnalyzer/Checkers/TraversalChecker.cpp
M clang/lib/StaticAnalyzer/Checkers/UnconditionalVAArgChecker.cpp
M clang/lib/StaticAnalyzer/Checkers/UndefBranchChecker.cpp
M clang/lib/StaticAnalyzer/Checkers/UndefinedArraySubscriptChecker.cpp
M clang/lib/StaticAnalyzer/Checkers/UninitializedObject/UninitializedObjectChecker.cpp
M clang/lib/StaticAnalyzer/Checkers/UnreachableCodeChecker.cpp
M clang/lib/StaticAnalyzer/Checkers/VAListChecker.cpp
M clang/lib/StaticAnalyzer/Checkers/VLASizeChecker.cpp
M clang/lib/StaticAnalyzer/Checkers/VforkChecker.cpp
M clang/lib/StaticAnalyzer/Checkers/VirtualCallChecker.cpp
M clang/lib/StaticAnalyzer/Checkers/cert/InvalidPtrChecker.cpp
M clang/lib/StaticAnalyzer/Core/BugReporter.cpp
M clang/lib/StaticAnalyzer/Core/BugReporterVisitors.cpp
M clang/lib/StaticAnalyzer/Core/CallEvent.cpp
M clang/lib/StaticAnalyzer/Core/CheckerManager.cpp
M clang/lib/StaticAnalyzer/Core/CoreEngine.cpp
M clang/lib/StaticAnalyzer/Core/Environment.cpp
M clang/lib/StaticAnalyzer/Core/ExplodedGraph.cpp
M clang/lib/StaticAnalyzer/Core/ExprEngine.cpp
M clang/lib/StaticAnalyzer/Core/ExprEngineC.cpp
M clang/lib/StaticAnalyzer/Core/ExprEngineCXX.cpp
M clang/lib/StaticAnalyzer/Core/ExprEngineCallAndReturn.cpp
M clang/lib/StaticAnalyzer/Core/ExprEngineObjC.cpp
M clang/lib/StaticAnalyzer/Core/LoopUnrolling.cpp
M clang/lib/StaticAnalyzer/Core/LoopWidening.cpp
M clang/lib/StaticAnalyzer/Core/MemRegion.cpp
R clang/lib/StaticAnalyzer/Core/PrettyStackTraceLocationContext.h
A clang/lib/StaticAnalyzer/Core/PrettyStackTraceStackFrame.h
M clang/lib/StaticAnalyzer/Core/ProgramState.cpp
M clang/lib/StaticAnalyzer/Core/RegionStore.cpp
M clang/lib/StaticAnalyzer/Core/SValBuilder.cpp
M clang/lib/StaticAnalyzer/Core/SymbolManager.cpp
M clang/lib/StaticAnalyzer/Core/WorkList.cpp
M clang/lib/StaticAnalyzer/Frontend/AnalysisConsumer.cpp
M clang/unittests/StaticAnalyzer/BlockEntranceCallbackTest.cpp
M clang/unittests/StaticAnalyzer/CallDescriptionTest.cpp
M clang/unittests/StaticAnalyzer/CallEventTest.cpp
M clang/unittests/StaticAnalyzer/FalsePositiveRefutationBRVisitorTest.cpp
M clang/unittests/StaticAnalyzer/ParamRegionTest.cpp
M clang/unittests/StaticAnalyzer/StoreTest.cpp
M clang/unittests/StaticAnalyzer/SymbolReaperTest.cpp
M clang/unittests/StaticAnalyzer/UnsignedStatDemo.cpp
M clang/www/analyzer/checker_dev_manual.html
Log Message:
-----------
[analyzer][NFC] Merge the class `LocationContext` into `StackFrame` (#198211)
This commit implements the final parts of the roadmap described in issue
#190973 by merging the class `LocationContext` into the class
`StackFrame` and replacing `LocationContext` with `StackFrame`
throughout the analyzer.
Commit: 020b4dde0f8c26fc880f4410e7a682fff9db5311
https://github.com/llvm/llvm-project/commit/020b4dde0f8c26fc880f4410e7a682fff9db5311
Author: Mishal Shah <mishal_shah at apple.com>
Date: 2026-05-28 (Thu, 28 May 2026)
Changed paths:
M .ci/green-dragon/lldb-windows.groovy
Log Message:
-----------
[CI] Add 'lld' to LLVM projects in build script for lldb windows bot (#200207)
Commit: 839091f0f298294459495a562ae29e75c389df95
https://github.com/llvm/llvm-project/commit/839091f0f298294459495a562ae29e75c389df95
Author: Charles Zablit <c_zablit at apple.com>
Date: 2026-05-28 (Thu, 28 May 2026)
Changed paths:
A lldb/include/lldb/Host/windows/LazyImport.h
M lldb/source/Plugins/Process/Windows/Common/NativeThreadWindows.cpp
M lldb/source/Plugins/Process/Windows/Common/TargetThreadWindows.cpp
A lldb/test/API/windows/thread/Makefile
A lldb/test/API/windows/thread/TestThreadName.py
A lldb/test/API/windows/thread/main.c
Log Message:
-----------
[lldb-server][Windows] add support for thread name (#199983)
Commit: f505ceabdd2339f078cd6886d3f52cc622abd5c9
https://github.com/llvm/llvm-project/commit/f505ceabdd2339f078cd6886d3f52cc622abd5c9
Author: Matheus Izvekov <mizvekov at gmail.com>
Date: 2026-05-28 (Thu, 28 May 2026)
Changed paths:
M clang/include/clang/AST/DeclTemplate.h
M clang/include/clang/Sema/Sema.h
M clang/lib/Sema/SemaDecl.cpp
M clang/lib/Sema/SemaDeclCXX.cpp
M clang/lib/Sema/SemaTemplate.cpp
M clang/lib/Sema/SemaTemplateInstantiate.cpp
M clang/test/CXX/temp/temp.decls/temp.spec.partial/temp.spec.partial.member/p2.cpp
M clang/test/SemaTemplate/class-template-spec.cpp
Log Message:
-----------
[clang] fix member specializations of class and variable partial specializations (#200092)
A partial specialization may be a member specialization even if there is
no corresponding primary member partial specialization.
For example:
```C++
template<class> struct X {
template<class> struct Inner;
};
template<> template<class T>
struct X<int>::Inner<T*> {};
```
Make sure this state is represented, so that
[temp.spec.partial.member]p2 can be applied.
Split off from #199528
Commit: b76d08a8fc46684c43728eb3c097718d0b6c00b7
https://github.com/llvm/llvm-project/commit/b76d08a8fc46684c43728eb3c097718d0b6c00b7
Author: Min-Yih Hsu <min.hsu at sifive.com>
Date: 2026-05-28 (Thu, 28 May 2026)
Changed paths:
A llvm/lib/Target/RISCV/RISCVSchedSiFive8.td
M llvm/lib/Target/RISCV/RISCVSchedSiFiveP400.td
M llvm/lib/Target/RISCV/RISCVSchedSiFiveP500.td
Log Message:
-----------
[RISCV] Factor out common scheduling model part between SiFive P400 and P500. NFCI (#199796)
This is the first part a patch series that tries to factor out common
bits from the SiFiveP400, SiFiveP500, and the SiFiveP600 scheduling
models.
This PR contains the related changes on the SiFiveP400 and SiFiveP500
models
NFCI.
---------
Co-authored-by: Craig Topper <craig.topper at sifive.com>
Commit: 7e539a4497fb6f4c7a8c112514bb1b1ec54fe94f
https://github.com/llvm/llvm-project/commit/7e539a4497fb6f4c7a8c112514bb1b1ec54fe94f
Author: Florian Hahn <flo at fhahn.com>
Date: 2026-05-28 (Thu, 28 May 2026)
Changed paths:
M llvm/lib/Transforms/Vectorize/VPlan.h
M llvm/lib/Transforms/Vectorize/VPlanAnalysis.cpp
M llvm/lib/Transforms/Vectorize/VPlanAnalysis.h
M llvm/lib/Transforms/Vectorize/VPlanRecipes.cpp
M llvm/lib/Transforms/Vectorize/VPlanVerifier.cpp
Log Message:
-----------
[VPlan] Thread scalar types through VPWiden(Cast)Recipe. (NFC) (#199572)
Update VPWidenRecipe and VPWidenCastRecipe to populate
VPSingleDefValue's
scalar type. For all VPWidenRecipe opcodes, the scalar type is determine
from the operands, via computeScalarTypeForInstruction (from
https://github.com/llvm/llvm-project/pull/199378).
For cast, the type must be provided explicitly.
Depends on https://github.com/llvm/llvm-project/pull/199378
PR: https://github.com/llvm/llvm-project/pull/199572
Commit: 934e5610ebfae936598896dc188cad331992d1af
https://github.com/llvm/llvm-project/commit/934e5610ebfae936598896dc188cad331992d1af
Author: Alexey Samsonov <vonosmas at gmail.com>
Date: 2026-05-28 (Thu, 28 May 2026)
Changed paths:
M libc/src/inttypes/strtoimax.cpp
M libc/src/inttypes/strtoumax.cpp
M libc/src/stdlib/strtol.cpp
M libc/src/stdlib/strtol_l.cpp
M libc/src/stdlib/strtoll.cpp
M libc/src/stdlib/strtoll_l.cpp
M libc/src/stdlib/strtoul.cpp
M libc/src/stdlib/strtoul_l.cpp
M libc/src/stdlib/strtoull.cpp
M libc/src/stdlib/strtoull_l.cpp
M libc/src/wchar/wcstol.cpp
M libc/src/wchar/wcstoll.cpp
M libc/src/wchar/wcstoul.cpp
M libc/src/wchar/wcstoull.cpp
M libc/test/src/stdlib/StrtolTest.h
M libc/test/src/stdlib/strtoint32_test.cpp
M libc/test/src/stdlib/strtoint64_test.cpp
M libc/test/src/wchar/WcstolTest.h
Log Message:
-----------
[libc] Don't touch str_end in strto* and wcsto* functions when base is incorrect (#200073)
Updates the behavior of `stro*` and `wcsto*` endpoints to not touch
`str_end` pointer when the provided value of `base` is incorrect and
errno is set to `EINVAL`.
`strto*` and `wcsto*` functions accept `base` as an input argument,
which can only be 0 or lie in [2,36] range. In case of invalid argument,
the functions should return 0 and set errno accordingly. Should the
"output argument" of `str_end` be updated in this case to point to the
beginning of the input string?
* C standard is unclear about it -
is says that `str` should be stored in `str_end` **if `str` is empty or
does not have the expected form** -- but there is no "expected form" for
invalid base values.
* POSIX standard explicitly mentions that for incorrect base value errno
should be set to `EINVAL` and points out that the value of `str_end`
is **unspecified** in this case.
Known implementations don't have a universal agreement about it:
* musl sets `str_end` unconditionally
* glibc doesn't do that in `EINVAL` case
* newlib doesn't do that either.
LLVM-libc used to unconditionally set `str_end` even in `EINVAL` case,
which is changed in this PR. This would not only help with portability,
but makes sense by itself - if input arguments are clearly invalid,
let's not touch output arguments either.
Assisted by: Gemini, human-reviewed
Commit: 58e35f93069976d71ee4b1ce6215217890da781c
https://github.com/llvm/llvm-project/commit/58e35f93069976d71ee4b1ce6215217890da781c
Author: Arthur Eubanks <aeubanks at google.com>
Date: 2026-05-28 (Thu, 28 May 2026)
Changed paths:
M llvm/utils/gn/secondary/compiler-rt/lib/builtins/BUILD.gn
M llvm/utils/gn/secondary/llvm/lib/Support/BUILD.gn
Log Message:
-----------
[gn build] Port commits (#200224)
Ported commits:
- 174eb79572b3
- e1e52c9ccef3
Commit: 218a21cee57f5eabcecdcb6d739fa8863c3ae9b9
https://github.com/llvm/llvm-project/commit/218a21cee57f5eabcecdcb6d739fa8863c3ae9b9
Author: Arthur Eubanks <aeubanks at google.com>
Date: 2026-05-28 (Thu, 28 May 2026)
Changed paths:
M llvm/utils/gn/build/BUILD.gn
M llvm/utils/gn/build/toolchain/compiler.gni
M llvm/utils/gn/secondary/clang/lib/ScalableStaticAnalysisFramework/Frontend/BUILD.gn
M llvm/utils/gn/secondary/compiler-rt/lib/builtins/BUILD.gn
M llvm/utils/gn/secondary/libcxx/include/BUILD.gn
M llvm/utils/gn/secondary/lldb/source/API/BUILD.gn
M llvm/utils/gn/secondary/lldb/source/DataFormatters/BUILD.gn
M llvm/utils/gn/secondary/lldb/source/Host/BUILD.gn
M llvm/utils/gn/secondary/lldb/source/Interpreter/BUILD.gn
M llvm/utils/gn/secondary/llvm/include/llvm/Config/BUILD.gn
M llvm/utils/gn/secondary/llvm/lib/ABI/BUILD.gn
M llvm/utils/gn/secondary/llvm/tools/llvm-objcopy/BUILD.gn
Log Message:
-----------
[gn build] Format all files (#200226)
$ git ls-files '*.gn' '*.gni' | xargs llvm/utils/gn/gn.py format
Commit: f1c26bce3f30f29e9130d55a7ffb0a2a171a5652
https://github.com/llvm/llvm-project/commit/f1c26bce3f30f29e9130d55a7ffb0a2a171a5652
Author: Michael Jones <michaelrj at google.com>
Date: 2026-05-28 (Thu, 28 May 2026)
Changed paths:
M libc/config/linux/aarch64/entrypoints.txt
M libc/config/linux/riscv/entrypoints.txt
M libc/config/linux/x86_64/entrypoints.txt
M libc/include/wctype.yaml
M libc/src/__support/CMakeLists.txt
M libc/src/__support/wctype/CMakeLists.txt
M libc/src/__support/wctype/perfect_hash_map.h
A libc/src/__support/wctype/wctype_conversion_utils.cpp
A libc/src/__support/wctype/wctype_conversion_utils.h
M libc/src/__support/wctype_utils.h
M libc/src/wctype/CMakeLists.txt
A libc/src/wctype/towlower.cpp
A libc/src/wctype/towlower.h
A libc/src/wctype/towupper.cpp
A libc/src/wctype/towupper.h
M libc/test/src/__support/wctype/CMakeLists.txt
M libc/test/src/__support/wctype_utils_test.cpp
M libc/test/src/wctype/CMakeLists.txt
M libc/test/src/wctype/iswprint_test.cpp
A libc/test/src/wctype/towlower_test.cpp
A libc/test/src/wctype/towupper_test.cpp
Log Message:
-----------
[libc] Implement towupper and towlower entrypoints (#198659)
Following up on #187670 to add public entrypoints for the wctype
conversion functions.
Assisted-by: Automated tooling, human reviewed.
---------
Co-authored-by: Muhammad Bassiouni <60100307+bassiounix at users.noreply.github.com>
Commit: 3613e27b4c6f5bd79ed0bf982efd76495bdf3dd7
https://github.com/llvm/llvm-project/commit/3613e27b4c6f5bd79ed0bf982efd76495bdf3dd7
Author: David Meng <davidmenggx at gmail.com>
Date: 2026-05-28 (Thu, 28 May 2026)
Changed paths:
M clang/lib/Sema/SemaLifetimeSafety.h
M clang/test/Sema/warn-lifetime-safety-misplaced-lifetimebound-cross-tu.cpp
M clang/test/Sema/warn-lifetime-safety-misplaced-lifetimebound-intra-tu.cpp
A clang/test/Sema/warn-lifetime-safety-misplaced-lifetimebound-macro.cpp
Log Message:
-----------
[LifetimeSafety] Add fix-it for misplaced lifetimebound attributes (#199149)
This patch adds a fix-it hint for
`warn_lifetime_safety_intra_tu_misplaced_lifetimebound` and
`warn_lifetime_safety_cross_tu_misplaced_lifetimebound` to the
appropriate declaration.
The fix-it attribute is emitted in the correct location, accounting for
pure virtual functions, overrides, trailing return types, and default
arguments. The message is suppressed for macros.
Resolves #198634
Commit: 0aa9ec6a361002f54deb2a8036410455ee527950
https://github.com/llvm/llvm-project/commit/0aa9ec6a361002f54deb2a8036410455ee527950
Author: Min-Yih Hsu <min.hsu at sifive.com>
Date: 2026-05-28 (Thu, 28 May 2026)
Changed paths:
M llvm/lib/Transforms/InstCombine/InstCombineCasts.cpp
M llvm/lib/Transforms/InstCombine/InstCombineInternal.h
M llvm/lib/Transforms/InstCombine/InstCombineVectorOps.cpp
M llvm/test/Transforms/InstCombine/ARM/mve-narrow.ll
A llvm/test/Transforms/InstCombine/fold-zext-of-deinterleave.ll
Log Message:
-----------
[InstCombine] Fold zext into de-interleaving (factor=2) instructions (#195330)
Given the following de-interleaving shufflevectors and the consuming
zexts:
```
%f0 = shufflevector <8 x i32> %v, <4 x i32> <i32 0, i32 2, i32 4, i32 6>
%f1 = shufflevector <8 x i32> %v, <4 x i32> <i32 1, i32 3, i32 5, i32 7>
%z0 = zext <4 x i32> %f0 to <4 x i64>
%z1 = zext <4 x i32> %f1 to <4 x i64>
```
We can actually bitcast the input value, `%v`, first into a vector type
with double the element size but half the vector length, before
replacing zexts with simple arithmetics on this new bitcast:
```
%bc = bitcast <8 x i32> %v to <4 x i64>
%z0 = and <4 x i64> %bc, splat (i64 4294967295)
%z1 = lshr <4 x i64> %bc, splat (i64 32)
```
This transformation is almost always benefitial as shufflevector is
generally more expensive than normal arithmetics.
Commit: 9092493752a25c94c7e001695e37ab0073c50f5e
https://github.com/llvm/llvm-project/commit/9092493752a25c94c7e001695e37ab0073c50f5e
Author: Krystian Stasiowski <sdkrystian at gmail.com>
Date: 2026-05-28 (Thu, 28 May 2026)
Changed paths:
M clang/lib/Sema/SemaExprCXX.cpp
A clang/test/CXX/expr/expr.prim/expr.prim.this/p4.cpp
Log Message:
-----------
[Clang][Sema] Use correct DeclContext when checking 'this' (#163243)
As mentioned in #163089, clang crashes for the following inputs:
```cpp
struct S {
static void f() {
auto x = []() -> decltype(this) {};
}
};
```
```cpp
struct S {
static void f() {
auto x = []() noexcept(decltype(this)()) {};
}
};
```
The crash happens because we currently pass `CurContext` to
`isLambdaCallWithExplicitObjectParameter` in `Sema::CheckCXXThisType`
when we should be passing `DC` (returned from
`getFunctionLevelDeclContext`).
Fixes #163089.
Commit: 72871f6fa1f1edc3df45d01b67f5093ff9d8e8b5
https://github.com/llvm/llvm-project/commit/72871f6fa1f1edc3df45d01b67f5093ff9d8e8b5
Author: Nikolas Klauser <nikolasklauser at berlin.de>
Date: 2026-05-28 (Thu, 28 May 2026)
Changed paths:
M libcxx/include/__tree
M libcxx/test/std/containers/associative/multimap/multimap.modifiers/extract_key.pass.cpp
M libcxx/test/std/containers/associative/multiset/extract_key.pass.cpp
Log Message:
-----------
[libc++] Fix multi{map,set}::extract not returning the first matching element (#199703)
According to [associative.reqmts] `extract(k)` returns the _first_
element in the container with key equivalent to k.
Commit: ab0178ce058b660d51ab44c38087c9408125f244
https://github.com/llvm/llvm-project/commit/ab0178ce058b660d51ab44c38087c9408125f244
Author: Alex MacLean <amaclean at nvidia.com>
Date: 2026-05-28 (Thu, 28 May 2026)
Changed paths:
M llvm/lib/Transforms/IPO/ExpandVariadics.cpp
M llvm/test/CodeGen/NVPTX/convert-call-to-indirect.ll
Log Message:
-----------
[ExpandVariadics] Fixup handeling of mismatched return types (#198843)
Fix an assert when RAUW tries to replace all uses with a different type.
Commit: 743cd53e67d267daf9a1d748bfc551f69980fceb
https://github.com/llvm/llvm-project/commit/743cd53e67d267daf9a1d748bfc551f69980fceb
Author: Syadus Sefat <42645939+mssefat at users.noreply.github.com>
Date: 2026-05-28 (Thu, 28 May 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPURegBankLegalizeRules.cpp
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.cvt.scalef32.sr.ll
Log Message:
-----------
[AMDGPU][GlobalIsel] Add regbank support for amdgcn_cvt_scalef32_sr_f8_f16/32 (#197031)
This patch adds register bank legalization rules for amdgcn_cvt_scalef32_sr_f8_f16/32 intrinsics in the AMDGPU GlobalISel
pipeline.
Commit: f30438b2ab6ca099584c0921f369f46693f83fbb
https://github.com/llvm/llvm-project/commit/f30438b2ab6ca099584c0921f369f46693f83fbb
Author: Igor Wodiany <igor.wodiany at amd.com>
Date: 2026-05-28 (Thu, 28 May 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/GCNVOPDUtils.cpp
Log Message:
-----------
[AMDGPU] Add an early exit in `tryMatchVOPDPairVariant` (#200148)
This allows to skip calls to `hasRAWDependency` when we know that no
VOPD pair can be encoded.
Commit: a0150ce371d1d808e0753c954618388fbe7ef7b7
https://github.com/llvm/llvm-project/commit/a0150ce371d1d808e0753c954618388fbe7ef7b7
Author: Slava Zakharin <szakharin at nvidia.com>
Date: 2026-05-28 (Thu, 28 May 2026)
Changed paths:
M flang/lib/Optimizer/Dialect/FIROps.cpp
M flang/test/Fir/array-coor-canonicalization.fir
Log Message:
-----------
[flang] Canonicalize fir.array_coor for contiguous arrays. (#200106)
This patch adds new canonicalization pattern for `fir.array_coor`
sequences appearing for contiguous array slices like `dx(1:3)`,
`dx(1:3, 2)`, etc. This canonicalization helps exposing the original
rank of the array, which makes MLIR after FIRToMemRef better
optimizable.
Assisted by Cursor
Commit: 45304733791f94bff5c9141c4c793dba3a03360f
https://github.com/llvm/llvm-project/commit/45304733791f94bff5c9141c4c793dba3a03360f
Author: NeKon69 <nobodqwe at gmail.com>
Date: 2026-05-28 (Thu, 28 May 2026)
Changed paths:
M clang/include/clang/Basic/DiagnosticSemaKinds.td
M clang/lib/Sema/SemaLifetimeSafety.h
M clang/test/Sema/warn-lifetime-analysis-nocfg.cpp
M clang/test/Sema/warn-lifetime-safety-dangling-field.cpp
M clang/test/Sema/warn-lifetime-safety-dangling-global.cpp
M clang/test/Sema/warn-lifetime-safety-suggestions.cpp
M clang/test/Sema/warn-lifetime-safety.cpp
Log Message:
-----------
[LifetimeSafety] Improve dangling field/global diagnostics (#200147)
Reuses the function for getting object information that was added in
#199432
Comes as part of completing #186002
---------
Co-authored-by: Utkarsh Saxena <usx at google.com>
Commit: 192601e8b3ad8b5f73cf27f2093fef5a8c9f4cb6
https://github.com/llvm/llvm-project/commit/192601e8b3ad8b5f73cf27f2093fef5a8c9f4cb6
Author: Min-Yih Hsu <min.hsu at sifive.com>
Date: 2026-05-28 (Thu, 28 May 2026)
Changed paths:
M llvm/lib/Target/RISCV/RISCVSchedSiFiveP400.td
M llvm/test/tools/llvm-mca/RISCV/SiFiveP400/rvv/arithmetic.test
M llvm/test/tools/llvm-mca/RISCV/SiFiveP400/rvv/bitwise.test
M llvm/test/tools/llvm-mca/RISCV/SiFiveP400/rvv/comparison.test
M llvm/test/tools/llvm-mca/RISCV/SiFiveP400/rvv/conversion.test
M llvm/test/tools/llvm-mca/RISCV/SiFiveP400/rvv/fma.test
M llvm/test/tools/llvm-mca/RISCV/SiFiveP400/rvv/fp.test
M llvm/test/tools/llvm-mca/RISCV/SiFiveP400/rvv/mask.test
M llvm/test/tools/llvm-mca/RISCV/SiFiveP400/rvv/minmax.test
M llvm/test/tools/llvm-mca/RISCV/SiFiveP400/rvv/mul-div.test
M llvm/test/tools/llvm-mca/RISCV/SiFiveP400/rvv/permutation.test
M llvm/test/tools/llvm-mca/RISCV/SiFiveP400/rvv/reduction.test
M llvm/test/tools/llvm-mca/RISCV/SiFiveP400/rvv/vle-vse-vlm.test
M llvm/test/tools/llvm-mca/RISCV/SiFiveP400/rvv/vlse-vsse.test
M llvm/test/tools/llvm-mca/RISCV/SiFiveP400/rvv/vlseg-vsseg.test
M llvm/test/tools/llvm-mca/RISCV/SiFiveP400/rvv/vlxe-vsxe.test
M llvm/test/tools/llvm-mca/RISCV/SiFiveP400/rvv/zvbb.s
M llvm/test/tools/llvm-mca/RISCV/SiFiveP400/rvv/zvbc.test
M llvm/test/tools/llvm-mca/RISCV/SiFiveP400/rvv/zvkg.s
M llvm/test/tools/llvm-mca/RISCV/SiFiveP400/rvv/zvkned.s
M llvm/test/tools/llvm-mca/RISCV/SiFiveP400/rvv/zvknhb.s
M llvm/test/tools/llvm-mca/RISCV/SiFiveP400/rvv/zvksed.s
M llvm/test/tools/llvm-mca/RISCV/SiFiveP400/rvv/zvksh.s
Log Message:
-----------
[RISCV] Update the ProcResource used by vsetvli in SiFiveP400 model (#199802)
The vsetvli instruction (and friends) should use the first integer pipe
(i.e. SiFiveP400IEXQ0)
Co-authored-by: Craig Topper <craig.topper at sifive.com>
Commit: 6dec1e526f0300094dad64bcf16123d353117617
https://github.com/llvm/llvm-project/commit/6dec1e526f0300094dad64bcf16123d353117617
Author: David Green <david.green at arm.com>
Date: 2026-05-28 (Thu, 28 May 2026)
Changed paths:
M llvm/test/CodeGen/AArch64/aarch64-mull-masks.ll
Log Message:
-----------
[AArch64] Add more tests for generating mull from disjoint or. NFC (#200237)
Commit: e1d2b5b52d80440048789527e22345fef154056e
https://github.com/llvm/llvm-project/commit/e1d2b5b52d80440048789527e22345fef154056e
Author: Zibi Sarbinowski <zibi at ca.ibm.com>
Date: 2026-05-28 (Thu, 28 May 2026)
Changed paths:
M llvm/test/CodeGen/Generic/2009-03-17-LSR-APInt.ll
M llvm/test/CodeGen/Generic/available_externally_alias.ll
Log Message:
-----------
[z/OS][tests] using aliases on z/OS are not supported (#200233)
This PR follows up on #200176 by replacing XFAIL with UNSUPPORTED for
test cases that are not planned for support in the near future.
Commit: 742b750f5e2b90c79401fa000f91248db6f80b8f
https://github.com/llvm/llvm-project/commit/742b750f5e2b90c79401fa000f91248db6f80b8f
Author: Jason Molenda <jmolenda at apple.com>
Date: 2026-05-28 (Thu, 28 May 2026)
Changed paths:
M lldb/source/Plugins/Platform/MacOSX/PlatformRemoteDarwinDevice.cpp
Log Message:
-----------
[lldb][Darwin] Save "most recent SDK root" in local var (#200095)
In PlatformRemoteDarwinDevice::GetSharedModule we have an array of "sdk
root" directories (aka DeviceSupport directories) for a remote device,
which contain all of the system shared libraries on the local mac. We
may have 6 SDK Root directories for different OS builds. We try to
identify the correct one for the target based on version number, but
when we find a file with a matching UUID in one directory we set that as
the "most recently successful" directory, and start our searches with
that one. Then we fall back to searching all the other directories.
Since adding parallel module loading, because this method doesn't lock
access to the "most recently successful directory"
(m_last_module_sdk_idx), we could check the m_last_module_sdk_idx
directory, and then if that was unsuccessful, check all other entries !=
m_last_module_sdk_idx. But m_last_module_sdk_idx could mutate via
another thread, and we skip one of our SDK Root directories. Resulting
in reading a binary out of memory, when we had a local copy of it.
This PR reads the value of m_last_module_sdk_idx into a local const, and
uses the same local index to check for it -- and if not found, to skip
that directory when iterating over all directories again, instead of
adding locking around access to this.
The array itself is created when the Platform is initialized and not
mutated when parallel-binary-loading, so there are no concerns with
that.
rdar://178096480
Commit: a0ac7521342567573da5b1e47c94f6199faada39
https://github.com/llvm/llvm-project/commit/a0ac7521342567573da5b1e47c94f6199faada39
Author: Christopher Ferris <cferris1000 at users.noreply.github.com>
Date: 2026-05-28 (Thu, 28 May 2026)
Changed paths:
M compiler-rt/lib/scudo/standalone/combined.h
M compiler-rt/lib/scudo/standalone/include/scudo/interface.h
M compiler-rt/lib/scudo/standalone/memtag.h
M compiler-rt/lib/scudo/standalone/primary32.h
M compiler-rt/lib/scudo/standalone/primary64.h
M compiler-rt/lib/scudo/standalone/tests/CMakeLists.txt
A compiler-rt/lib/scudo/standalone/tests/error_info_test.cpp
M compiler-rt/lib/scudo/standalone/tests/primary_test.cpp
M compiler-rt/lib/scudo/standalone/wrappers_c.cpp
Log Message:
-----------
[scudo] Create a non-static getErrorInfo function. (#199770)
Create a getErrorInfo function that operates on the Allocator and
doesn't require passing in all of the extra information.
Add interface function __scudo_get_fault_error_info that calls this new
function.
Add all needed functions to support the new getErrorInfo.
This is being added to replace the static version from Android that
required linking in a copy of libscudo to use. This new version will be
used directly from libc.
Commit: 9c640504466ab0c7cd2850fd482092b72a01bc9e
https://github.com/llvm/llvm-project/commit/9c640504466ab0c7cd2850fd482092b72a01bc9e
Author: David Green <david.green at arm.com>
Date: 2026-05-28 (Thu, 28 May 2026)
Changed paths:
M llvm/test/Analysis/CostModel/AArch64/arith-bf16.ll
M llvm/test/CodeGen/AArch64/fabs.ll
M llvm/test/CodeGen/AArch64/fixed-length-bf16-arith.ll
M llvm/test/CodeGen/AArch64/sve2p1-intrinsics-bfclamp.ll
Log Message:
-----------
[AArch64] Fixup f16->bf16 in intrinsic defs. NFC (#200244)
Commit: 09ad10052903ad38aa770642ae5c6a7115c92e5e
https://github.com/llvm/llvm-project/commit/09ad10052903ad38aa770642ae5c6a7115c92e5e
Author: Nerixyz <nerixdev at outlook.de>
Date: 2026-05-28 (Thu, 28 May 2026)
Changed paths:
M lldb/source/Plugins/SymbolFile/NativePDB/PdbAstBuilderClang.cpp
M lldb/source/Plugins/SymbolFile/NativePDB/PdbAstBuilderClang.h
M lldb/source/Plugins/SymbolFile/NativePDB/PdbUtil.cpp
M lldb/source/Plugins/SymbolFile/NativePDB/PdbUtil.h
A lldb/test/Shell/SymbolFile/NativePDB/ast-lambdas-msvc.cpp
A lldb/test/Shell/SymbolFile/NativePDB/ast-lambdas.cpp
Log Message:
-----------
[lldb][NativePDB] Use decl context from a method's class (#199221)
When we look up the parent decl context for a method, we used to look
for that by name. For "regular" types that works well.
Say, we have a `struct ns::Foo` and `ns::Foo::bar`. We'd search for
`ns::Foo` and use its context.
For special types - mainly lambdas - this doesn't work. They can't be
found by looking for the name we get from the function symbol. That name
won't be in the TPI hash table we use.
I'm not fully sure under which name they're in that table. For example,
if we get the name `Foo::fun::<lambda_1>::operator()` from the function
symbol, we'd look for `Foo::fun::<lambda_1>`. This fails. A class with
this name is actually present, but it has a different unique name. Its
unique name demangles to `` `public: void __cdecl
Foo::fun(void)'::`1'::<lambda_1> `` which doesn't match what we searched
for. That might be the issue.
If we can't find a class/struct, we create namespaces. So before, we
created namespaces for each segment and added a regular function inside.
This was wrong for methods.
However, we can tell that a function is a method by looking at its
function type. And we know the parent class from this type. With this PR
that parent class is used if it's available.
Commit: 184a8f94757c35deecf7a7323ca3ce73c9f228b7
https://github.com/llvm/llvm-project/commit/184a8f94757c35deecf7a7323ca3ce73c9f228b7
Author: Hristo Hristov <hghristov.rmm at gmail.com>
Date: 2026-05-28 (Thu, 28 May 2026)
Changed paths:
M libcxx/include/__iterator/static_bounded_iter.h
M libcxx/include/__iterator/wrap_iter.h
A libcxx/test/libcxx/containers/sequences/array/nodiscard.iterator.verify.cpp
Log Message:
-----------
[libc++] Applied `[[nodiscard]]` to `array::iterator` (#198492)
Towards #172124
Commit: 5f49cff125e2adb255f2d61e8589ae761d5b4826
https://github.com/llvm/llvm-project/commit/5f49cff125e2adb255f2d61e8589ae761d5b4826
Author: David Green <david.green at arm.com>
Date: 2026-05-28 (Thu, 28 May 2026)
Changed paths:
A llvm/test/CodeGen/AArch64/and_xor_shift.ll
Log Message:
-----------
[AArch64] Add tests for and+xor+shift. NFC (#200250)
This adds test coverage for #199813. Hopefully this will prevent gisel
from
getting worse.
Commit: d69c732e6e71bf80ad7336ae2a5834ee74593c28
https://github.com/llvm/llvm-project/commit/d69c732e6e71bf80ad7336ae2a5834ee74593c28
Author: Matheus Izvekov <mizvekov at gmail.com>
Date: 2026-05-28 (Thu, 28 May 2026)
Changed paths:
M .github/workflows/hlsl-test-all.yaml
Log Message:
-----------
CI: ignore errors on HLSL Publish step (#200240)
This step seems to fail consistently on the remote endpoint for large
PRs.
Example:
https://github.com/llvm/llvm-project/actions/runs/26589632748/job/78344693871?pr=199528
Commit: 060ef6a90c39b4573c9eba2757be2cbf6ec22796
https://github.com/llvm/llvm-project/commit/060ef6a90c39b4573c9eba2757be2cbf6ec22796
Author: Vitaly Buka <vitalybuka at google.com>
Date: 2026-05-28 (Thu, 28 May 2026)
Changed paths:
M llvm/utils/lit/lit/LitConfig.py
A llvm/utils/lit/tests/Inputs/lit-config-readonly/lit.cfg
A llvm/utils/lit/tests/lit-config-readonly.py
Log Message:
-----------
[lit] Enforce read-only behavior on lit_config.maxIndividualTestTime (#198193)
Enforce read-only behavior on lit_config.maxIndividualTestTime after
initialization to prevent test suites from modifying it globally, and
add a core lit test to verify this behavior.
PR Stack:
* https://github.com/llvm/llvm-project/pull/198192
* https://github.com/llvm/llvm-project/pull/199886
* https://github.com/llvm/llvm-project/pull/199996
* ➤ https://github.com/llvm/llvm-project/pull/198193
Assisted-by: Gemini
Commit: 4df74706ab477798263cade8b742bba48d0b172f
https://github.com/llvm/llvm-project/commit/4df74706ab477798263cade8b742bba48d0b172f
Author: xys-syx <xuyuansui at outlook.com>
Date: 2026-05-28 (Thu, 28 May 2026)
Changed paths:
M flang/lib/Optimizer/Builder/CUDAIntrinsicCall.cpp
M flang/test/Lower/CUDA/cuda-device-proc.cuf
M mlir/include/mlir/Dialect/LLVMIR/NVVMOps.td
M mlir/lib/Conversion/GPUToNVVM/LowerGpuOpsToNVVMOps.cpp
M mlir/lib/Dialect/LLVMIR/IR/NVVMDialect.cpp
M mlir/test/Dialect/LLVMIR/nvvm.mlir
M mlir/test/Target/LLVMIR/nvvm/barrier.mlir
M mlir/test/Target/LLVMIR/nvvmir-invalid.mlir
M mlir/test/python/dialects/nvvm.py
Log Message:
-----------
[MLIR][NVVM] Split nvvm.barrier into nvvm.barrier and nvvm.barrier.reduction (#199404)
Commit: f089890d5e200a1811d69842aa71fa39e7c33482
https://github.com/llvm/llvm-project/commit/f089890d5e200a1811d69842aa71fa39e7c33482
Author: Berkay Sahin <berkaysahindev at gmail.com>
Date: 2026-05-28 (Thu, 28 May 2026)
Changed paths:
M clang-tools-extra/docs/ReleaseNotes.rst
M clang-tools-extra/test/clang-tidy/checkers/misc/const-correctness-parameters.cpp
M clang-tools-extra/test/clang-tidy/checkers/misc/const-correctness-pointer-as-values.cpp
M clang/lib/Analysis/ExprMutationAnalyzer.cpp
M clang/unittests/Analysis/ExprMutationAnalyzerTest.cpp
Log Message:
-----------
[clang-tidy] Fixes false positive with a non-const method on a pointer (#188844)
Fixes
#56777
#58098
#64955
Non-const member functions don't mutate the pointer but the pointee.
Pointee mutations follow different path within the analyzer, so should
not be effected.
Edit to old tests were needed. Adds a dedicated tests besides those.
Commit: 3769bd61d0b3e555c45a9b5de919f0f166355fe8
https://github.com/llvm/llvm-project/commit/3769bd61d0b3e555c45a9b5de919f0f166355fe8
Author: Craig Topper <craig.topper at sifive.com>
Date: 2026-05-28 (Thu, 28 May 2026)
Changed paths:
M llvm/lib/Target/RISCV/RISCVMoveMerger.cpp
Log Message:
-----------
[RISCV] Use std::optional::operator* instead of value(). NFC (#200235)
Commit: 3df7e3707c2a3673a25e2fa8147d3cb9ba0aad0e
https://github.com/llvm/llvm-project/commit/3df7e3707c2a3673a25e2fa8147d3cb9ba0aad0e
Author: vporpo <vasileios.porpodas at amd.com>
Date: 2026-05-28 (Thu, 28 May 2026)
Changed paths:
M llvm/include/llvm/Transforms/Vectorize/SandboxVectorizer/DependencyGraph.h
M llvm/lib/Transforms/Vectorize/SandboxVectorizer/DependencyGraph.cpp
M llvm/unittests/Transforms/Vectorize/SandboxVectorizer/DependencyGraphTest.cpp
Log Message:
-----------
[SandboxVec][DAG] Implement missing API for successors (#195301)
This patch implements the missing API for accessing the DAG successors.
This includes the successor iterators and DAG Node member functions like
succs(). These are mirroring the existing predecessor API.
Commit: e7ea47d98e7e1b38496846d37ca06d1f1562f54b
https://github.com/llvm/llvm-project/commit/e7ea47d98e7e1b38496846d37ca06d1f1562f54b
Author: Tom Stellard <tstellar at redhat.com>
Date: 2026-05-28 (Thu, 28 May 2026)
Changed paths:
M .github/workflows/premerge.yaml
Log Message:
-----------
worflows/premerge: Remove template expansion (#200068)
https://github.com/llvm/llvm-project/security/code-scanning/1686
https://github.com/llvm/llvm-project/security/code-scanning/1687
https://github.com/llvm/llvm-project/security/code-scanning/1688
https://github.com/llvm/llvm-project/security/code-scanning/1689
Commit: 46c8c1e1320e5524700f09998490a5fd7216917b
https://github.com/llvm/llvm-project/commit/46c8c1e1320e5524700f09998490a5fd7216917b
Author: Craig Topper <craig.topper at sifive.com>
Date: 2026-05-28 (Thu, 28 May 2026)
Changed paths:
M llvm/lib/Transforms/AggressiveInstCombine/AggressiveInstCombine.cpp
M llvm/test/Transforms/AggressiveInstCombine/popcount.ll
Log Message:
-----------
[AggressiveInstCombine] Factor common code out of tryToRecognizePopCount and tryToRecognizePopCount2n3. (#199440)
Both of these patterns end with code to compute the popcount of each
byte.
This isn't NFC because tryToRecognizePopCount2n3 handled an alternate
pattern for one of the steps and tryToRecognizePopCount used
MaskedValueIsZero. The shared code applies these differences to both
cases. New tests have been added.
Assisted-by: Claude Sonnet 4.6
---------
Co-authored-by: Min-Yih Hsu <min at myhsu.dev>
Commit: 63da2695b1a3c8e4f42d2e1d63faa1eb412886ec
https://github.com/llvm/llvm-project/commit/63da2695b1a3c8e4f42d2e1d63faa1eb412886ec
Author: Ramkumar Ramachandra <artagnon at tenstorrent.com>
Date: 2026-05-28 (Thu, 28 May 2026)
Changed paths:
M llvm/lib/Transforms/Vectorize/VPlanAnalysis.cpp
Log Message:
-----------
[VPlan] Strip IR-PatternMatch include in VPlanAnalysis (NFC) (#200186)
To reduce confusion.
Commit: 42010078e75053f09e46a8d58033fa768c57961f
https://github.com/llvm/llvm-project/commit/42010078e75053f09e46a8d58033fa768c57961f
Author: Justin Lebar <justin.lebar at gmail.com>
Date: 2026-05-28 (Thu, 28 May 2026)
Changed paths:
M llvm/lib/Transforms/Scalar/MemCpyOptimizer.cpp
M llvm/test/Transforms/MemCpyOpt/memset-memcpy-redundant-memset.ll
Log Message:
-----------
[MemCpyOpt] Keep volatile memset before memcpy (#200100)
Commit: 810e67f50d8f149c0c88cbda1707b52b7ae9936f
https://github.com/llvm/llvm-project/commit/810e67f50d8f149c0c88cbda1707b52b7ae9936f
Author: Carlos Seo <carlos.seo at linaro.org>
Date: 2026-05-28 (Thu, 28 May 2026)
Changed paths:
M flang/lib/Lower/OpenMP/Clauses.cpp
A flang/test/Lower/OpenMP/Todo/ordered-depend.f90
M llvm/include/llvm/Frontend/OpenMP/ClauseT.h
Log Message:
-----------
[flang][OpenMP] Fix crash on standalone ordered with depend(source|sink:) (#200193)
A standalone ordered construct using the pre-OpenMP 5.2 depend(source) /
depend(sink:) spelling crashed flang with an assertion failure in
buildConstructQueue ("Construct decomposition failed"), or emitted a
TODO when assertions were disabled.
These dependence types are valid on ordered since OpenMP 4.5, but flang
represents them internally as a doacross clause, which construct
decomposition only accepts from OpenMP 5.2. As a result, decomposition
produced an empty output and tripped the assertion at every OpenMP
version below 5.2 (including the default 3.1).
Lowering of the standalone ordered directive is not implemented yet
(genOrderedOp only emits a "not yet implemented" message and ignores the
construct queue). Build the construct queue only for the
block-associated variant and emit the TODO directly for the standalone
directive, so the decomposition that would otherwise assert is no longer
reached.
Note: at versions below 4.5 the construct is technically invalid, but
flang's semantics accepts it silently. Making semantics emit a "requires
OpenMP 4.5" error/warning is probably a good idea.
Fixes #198972
Commit: b2edcf9fb336b06f624d7c58a04c6dcf3cf74a54
https://github.com/llvm/llvm-project/commit/b2edcf9fb336b06f624d7c58a04c6dcf3cf74a54
Author: Johannes Doerfert <jdoerfert.llvm at gmail.com>
Date: 2026-05-28 (Thu, 28 May 2026)
Changed paths:
M llvm/include/llvm/Transforms/IPO/Instrumentor.h
M llvm/lib/Transforms/IPO/Instrumentor.cpp
M llvm/test/Instrumentation/Instrumentor/alloca_and_function.ll
M llvm/test/Instrumentation/Instrumentor/default_config.json
M llvm/test/Instrumentation/Instrumentor/module_and_globals.ll
Log Message:
-----------
[Instrumentor] Introduce BasePointerIO to communicate base pointer information (#197607)
Loads, stores, and later probably calls, can request a base pointer info
object from the user runtime. This object is queried right after the
base pointer of the operation is defined, and then passed to the
pre/post runtime calls of the loads and stores. This allows users to
inspect pointers early and once, but provide the analysis results to all
operations that might be executed in loops. A potential use case is to
lookup the size and start of the underlying object and then provide
those to the access runtime calls for in-bounds checking.
Commit: cdb606c37c8f08783aad6d4cc73adbc7d199b1e2
https://github.com/llvm/llvm-project/commit/cdb606c37c8f08783aad6d4cc73adbc7d199b1e2
Author: Ramkumar Ramachandra <artagnon at tenstorrent.com>
Date: 2026-05-28 (Thu, 28 May 2026)
Changed paths:
M llvm/lib/Transforms/Vectorize/VPlanUtils.cpp
Log Message:
-----------
[VPlan] Predicate SCEVs in getSCEVExprForVPValue (NFC) (#199994)
Although the change could be functional in theory, it is very difficult
to find a test case.
Commit: b41aef8b809c255814801d658138b98e828012b1
https://github.com/llvm/llvm-project/commit/b41aef8b809c255814801d658138b98e828012b1
Author: adams381 <adams at nvidia.com>
Date: 2026-05-28 (Thu, 28 May 2026)
Changed paths:
M clang/lib/CIR/CodeGen/CIRGenExprScalar.cpp
A clang/test/CIR/CodeGen/vector-binop-overflow.cpp
Log Message:
-----------
[CIR] Omit nsw/nuw on integer vector binops (#199123)
CIRGen was attaching `nsw` to `cir.add` on `!cir.vector` integer types
because the signed-overflow path keys off `compType` (the element type,
still `!s32i`), while the verifier only allows `nsw`/`nuw` on scalar
`!cir.int` results. That mismatch showed up 144 times in the libcxx
CIR sweep on `std::experimental::simd` — `experimental/__simd/vec_ext.h`
increment/decrement (`__data + 1` / `__data - 1`).
Classic CodeGen never enters the signed-overflow block for vector
computation types; CIR now skips the scalar `nsw`/`nuw` path when the
MLIR operand is an integer vector, and uses `getAs<VectorType>()` for
`compType` so typedef-wrapped GCC vectors resolve the element type
correctly.
Regression test `vector-binop-overflow.cpp` checks scalar add still gets
`nsw` and vector add/sub/mul do not (CIR + LLVM + OGCG).
Commit: 5c219c86b6ffb8adb284e6c439ad1f78f5c10803
https://github.com/llvm/llvm-project/commit/5c219c86b6ffb8adb284e6c439ad1f78f5c10803
Author: Johannes Doerfert <jdoerfert.llvm at gmail.com>
Date: 2026-05-28 (Thu, 28 May 2026)
Changed paths:
M llvm/include/llvm/Transforms/IPO/Instrumentor.h
M llvm/lib/Transforms/IPO/Instrumentor.cpp
A llvm/test/Instrumentation/Instrumentor/cast.ll
A llvm/test/Instrumentation/Instrumentor/cast_config.json
A llvm/test/Instrumentation/Instrumentor/cast_crash.ll
A llvm/test/Instrumentation/Instrumentor/cast_filter.ll
A llvm/test/Instrumentation/Instrumentor/cast_filter_config.json
M llvm/test/Instrumentation/Instrumentor/default_config.json
Log Message:
-----------
[Instrumentor] Add cast instruction instrumentation support (#198224)
We now allow to have instrumentation opportunities for many instructions
(=opcodes) to bundle common classes together. Users can use filters on
the opcode, type-id, and size to statically select what they are
interested in.
Coded with Claude.
Commit: 23776bd325ec951781923a638ad632e4126b30ea
https://github.com/llvm/llvm-project/commit/23776bd325ec951781923a638ad632e4126b30ea
Author: Vedran Miletić <vedran at miletic.net>
Date: 2026-05-28 (Thu, 28 May 2026)
Changed paths:
M llvm/lib/ExecutionEngine/Orc/TargetProcess/CMakeLists.txt
Log Message:
-----------
[llvm] Fix LLVMOrcTargetProcess symbol export with MinGW/Cygwin shared libs (#174266)
When any symbol in a DLL carries dllexport, the MinGW/Cygwin linker
switches to exclusive-export mode and omits all other symbols from the
export table. LLVMOrcTargetProcess uses LLVM_ALWAYS_EXPORT (__declspec(
dllexport)) so its symbols can be found via GetProcAddress from a
statically linked executable, which triggers this behaviour.
Add --export-all-symbols to LLVMOrcTargetProcess for MinGW/Cygwin
BUILD_SHARED_LIBS builds to restore full symbol export.
Commit: 2f98f171c2983c2fe875e0f597128a5c1de2165f
https://github.com/llvm/llvm-project/commit/2f98f171c2983c2fe875e0f597128a5c1de2165f
Author: Maryam Moghadas <maryammo at ca.ibm.com>
Date: 2026-05-28 (Thu, 28 May 2026)
Changed paths:
M llvm/lib/Target/PowerPC/PPCISelLowering.cpp
Log Message:
-----------
[PowerPC] Fix MSan failure in LowerBUILD_VECTOR (#200260)
Initialize SplatBitSize to fix use-of-uninitialized-value error detected
by MemorySanitizer in ba7d42b.
Commit: 0d1e9a6177d9ae85d2822fd98bffe55f86e38875
https://github.com/llvm/llvm-project/commit/0d1e9a6177d9ae85d2822fd98bffe55f86e38875
Author: Florian Hahn <flo at fhahn.com>
Date: 2026-05-28 (Thu, 28 May 2026)
Changed paths:
M llvm/lib/Target/X86/X86TargetTransformInfo.cpp
M llvm/test/Transforms/LoopVectorize/X86/masked_load_store.ll
Log Message:
-----------
[X86][TTI] Retrieve address space from intrinsic info. (#200265)
Instead of using the passed Ptr argument to get the type, to retrieve
the address space, directly retrieve it from MICA.
This fixes a crash when Ptr is nullptr, as after #200049.
Fixes https://github.com/llvm/llvm-project/issues/200199.
Commit: 642bbbaf57ed1d0ce6b7871a8d3dc1386e95926b
https://github.com/llvm/llvm-project/commit/642bbbaf57ed1d0ce6b7871a8d3dc1386e95926b
Author: Dhruva Chakrabarti <Dhruva.Chakrabarti at amd.com>
Date: 2026-05-28 (Thu, 28 May 2026)
Changed paths:
M llvm/lib/CodeGen/InlineSpiller.cpp
M llvm/lib/CodeGen/LiveRangeEdit.cpp
Log Message:
-----------
[2/3][RegAlloc][LiveRegMatrix] Fix inconsistency when fold creates a CopyMI (#197776)
When TargetInstrInfo::foldMemoryOperand produces a side-effect CopyMI,
the copy destination vreg's LiveInterval is extended via addSegment. If
that vreg is already assigned in LiveRegMatrix, the matrix becomes
inconsistent because it still holds the old (smaller) interval.
Fix this in two places:
- InlineSpiller::foldMemoryOperand: unassign the vreg from the matrix
before addSegment, reassign after, so the matrix reflects the updated
interval.
- LiveRangeEdit::foldAsLoad: notify the delegate via
LRE_WillShrinkVirtReg before addSegment.
LIT test exercised by this patch (i.e. if I introduce consistency
verification as in https://github.com/llvm/llvm-project/pull/197778 but
not this patch, the following test fails):
CodeGen/X86/apx/pr191368.ll
Assisted-by: Cursor/Claude Opus
Commit: 01cfbaabef6cb59a1a6eb870bf5f48ac2e747118
https://github.com/llvm/llvm-project/commit/01cfbaabef6cb59a1a6eb870bf5f48ac2e747118
Author: Tom Stellard <tstellar at redhat.com>
Date: 2026-05-28 (Thu, 28 May 2026)
Changed paths:
M .github/workflows/release-binaries-all.yml
M .github/workflows/release-binaries.yml
M .github/workflows/release-sources.yml
M .github/workflows/release-tasks.yml
M .github/workflows/upload-release-artifact/action.yml
Log Message:
-----------
workflows/upload-release-artifact: Use require-release-manager action (#195374)
This removes the final use of RELEASE_TASKS_USER_TOKEN secret. It
required plumbing the secrets in thrugh several levels of workflow
calls, which is not ideal, but I don't see a better way to do this.
Commit: f7f3d9d0aea8588ed1aff033978370a5bdf97029
https://github.com/llvm/llvm-project/commit/f7f3d9d0aea8588ed1aff033978370a5bdf97029
Author: Nerixyz <nerixdev at outlook.de>
Date: 2026-05-28 (Thu, 28 May 2026)
Changed paths:
M lldb/test/API/windows/thread/main.c
Log Message:
-----------
[lldb][Windows] Move `processthreadsapi.h` include (#200278)
`processthreadsapi.h` needs to be included after `windows.h`.
clang-format needs to be disabled here to avoid sorting the includes.
Fixes the test failure from
https://github.com/llvm/llvm-project/pull/199983#issuecomment-4567633271.
Commit: 075e16f74d7b265a22af73c4fcb5a6bd4b186543
https://github.com/llvm/llvm-project/commit/075e16f74d7b265a22af73c4fcb5a6bd4b186543
Author: Erich Keane <ekeane at nvidia.com>
Date: 2026-05-28 (Thu, 28 May 2026)
Changed paths:
M clang/include/clang/CIR/Dialect/Builder/CIRBaseBuilder.h
M clang/lib/CIR/CodeGen/CIRGenFunction.cpp
M clang/test/CIR/CodeGen/vla.c
Log Message:
-----------
[CIR] Correctly emit the size expr of a VLA with a 'bool' size. (#200066)
This came up in a test suite, the frontend considers 'bool' to be
integral enough to use as a bounds, so bool makes it through to the VLA
codegen. This patch adds a new cast function that takes a bool or int
type and casts it to an int (as this is a pretty useful task, that I
believe I've seen before).
Commit: 927c51d2434e9cb094742e77289b35dad88383c5
https://github.com/llvm/llvm-project/commit/927c51d2434e9cb094742e77289b35dad88383c5
Author: Dave Lee <davelee.com at gmail.com>
Date: 2026-05-28 (Thu, 28 May 2026)
Changed paths:
M lldb/source/Commands/CommandObjectFrame.cpp
M lldb/test/API/commands/frame/recognizer/TestFrameRecognizer.py
Log Message:
-----------
[lldb] Improve frame variable handling of recognizer arguments (#200084)
Fixes two bugs. The bug which prompted this change is that `frame
variable name` would
print all regcognizer arguments, even though only "name" was requested.
While making a test for the first bug, I found that `frame variable
recognizer_arg` will
both successfully print the variable, and also report a false positive
error:
```
error: <user expression>:1:1: use of undeclared identifier 'recognizer_arg'
1 | recognizer_arg
```
This change fixes both bugs, including when using `--regex`.
Commit: 58dff928280641f764fd08e421ee8a707f586f2d
https://github.com/llvm/llvm-project/commit/58dff928280641f764fd08e421ee8a707f586f2d
Author: Zibi Sarbinowski <zibi at ca.ibm.com>
Date: 2026-05-28 (Thu, 28 May 2026)
Changed paths:
A llvm/test/tools/llvm-offload-binary/llvm-offload-binary-malformed.ll
M llvm/test/tools/llvm-offload-binary/llvm-offload-binary.ll
Log Message:
-----------
[llvm-offload-binary] Fix test failures on z/OS by splitting malformed tests (#200258)
## Summary
This PR fixes test failures in `llvm-offload-binary.ll` on z/OS (and
potentially other EBCDIC platforms) by splitting the malformed file
tests into a separate test file.
## Problem
The test was failing on z/OS because it uses `printf` with octal escape
sequences to create malformed binary test data:
```bash
printf "\020\377\020\255\012" > %t9
```
On z/OS, the shell's I/O redirection performs automatic EBCDIC-to-ASCII
translation on the output from `printf`. This means the binary data
written to the file gets translated, resulting in different bytes than
intended. The malformed test data is therefore not created correctly,
causing `llvm-offload-binary` to fail in unexpected ways or not produce
the expected error messages.
## Benefits of this solution
- Main test file now passes on all platforms including z/OS
- Malformed file error handling tests are preserved for ASCII-based
systems
- Clear separation of concerns between standard tests and
platform-specific tests
- No loss of test coverage on supported platforms
Commit: ee40c5e35152cbd7ddb9d44aecab455e66df8d5a
https://github.com/llvm/llvm-project/commit/ee40c5e35152cbd7ddb9d44aecab455e66df8d5a
Author: Valentin Clement (バレンタイン クレメン) <clementval at gmail.com>
Date: 2026-05-28 (Thu, 28 May 2026)
Changed paths:
M flang/lib/Optimizer/Analysis/ArraySectionAnalyzer.cpp
A flang/test/HLFIR/order_assignments/where-allocatable-base.f90
Log Message:
-----------
[flang] Fix WHERE self-updates on allocatable array sections (#200281)
Teach ArraySectionAnalyzer to use the scheduler's value-equivalence
callback
when comparing hlfir.designate base memrefs. This lets HLFIR ordered
assignment
lowering recognize allocatable WHERE self-updates as aligned even when
the LHS
and RHS use distinct descriptor loads.
This avoids generating full-sized RHS temporaries for these masked
self-updates, preventing device heap exhaustion while preserving
parallel
kernel generation. Add a regression test for allocatable WHERE section
scheduling.
Commit: 7e200ebdd08cc5d95016c02636abe6e93bb581d4
https://github.com/llvm/llvm-project/commit/7e200ebdd08cc5d95016c02636abe6e93bb581d4
Author: Craig Topper <craig.topper at sifive.com>
Date: 2026-05-28 (Thu, 28 May 2026)
Changed paths:
M llvm/lib/Transforms/AggressiveInstCombine/AggressiveInstCombine.cpp
M llvm/test/Transforms/AggressiveInstCombine/popcount.ll
Log Message:
-----------
[AggressiveInstCombine] Support Len==8 in tryToRecognizePopCount2n3. (#199551)
Len==8 can use matchPopCountBytes to do it's matching.
Commit: f85729489de0289a24920fa931b0aa00fb095c56
https://github.com/llvm/llvm-project/commit/f85729489de0289a24920fa931b0aa00fb095c56
Author: Aiden Grossman <aidengrossman at google.com>
Date: 2026-05-28 (Thu, 28 May 2026)
Changed paths:
M llvm/docs/TestingGuide.rst
Log Message:
-----------
[Docs] Improve Documentation on Writing IR Test Cases (#200259)
This adds documentation for a couple common review comments I've seen:
1. Extraneous target triples/data-layouts
2. Tests not getting put in the right folder (especially when they
require a target and are not put in the target-specific subfolder)
3. Extraneous FileCheck prefixes.
Commit: 75fb8e47f6170d66c72311b9629b19c02e97841b
https://github.com/llvm/llvm-project/commit/75fb8e47f6170d66c72311b9629b19c02e97841b
Author: Alan Zhao <ayzhao at google.com>
Date: 2026-05-28 (Thu, 28 May 2026)
Changed paths:
M lld/ELF/Arch/X86_64.cpp
Log Message:
-----------
[lld][nfc] Fix spelling (#200279)
Commit: 8d8ebb1cb1b552423f6dff74a0887943d36dce08
https://github.com/llvm/llvm-project/commit/8d8ebb1cb1b552423f6dff74a0887943d36dce08
Author: Alexey Bataev <a.bataev at outlook.com>
Date: 2026-05-28 (Thu, 28 May 2026)
Changed paths:
A llvm/test/Transforms/SLPVectorizer/X86/revec-fma-vectorize.ll
Log Message:
-----------
[SLP][REVEC][NFC]Add a test with the missed fma vectorization, NFC
Reviewers:
Pull Request: https://github.com/llvm/llvm-project/pull/200298
Commit: a853917bbf7b88e5b7e6cf61d0e724d68e0e1df1
https://github.com/llvm/llvm-project/commit/a853917bbf7b88e5b7e6cf61d0e724d68e0e1df1
Author: Ethan Luis McDonough <ethanluismcdonough at gmail.com>
Date: 2026-05-28 (Thu, 28 May 2026)
Changed paths:
M llvm/include/llvm/Transforms/IPO/InstrumentorUtils.h
Log Message:
-----------
[Instrumentor] Fix nondeterminism in indirect argument alloca usage (#200289)
Co-authored-by: Kevin Sala Penades <salapenades1 at llnl.gov>
Commit: 3f140498c2d7ad67226c14d9d2cf5caf1442cceb
https://github.com/llvm/llvm-project/commit/3f140498c2d7ad67226c14d9d2cf5caf1442cceb
Author: Johannes Doerfert <jdoerfert.llvm at gmail.com>
Date: 2026-05-28 (Thu, 28 May 2026)
Changed paths:
M llvm/include/llvm/Transforms/IPO/Instrumentor.h
M llvm/include/llvm/Transforms/IPO/InstrumentorStubPrinter.h
M llvm/lib/Transforms/IPO/Instrumentor.cpp
M llvm/lib/Transforms/IPO/InstrumentorStubPrinter.cpp
R llvm/test/Instrumentation/Instrumentor/default_rt
A llvm/test/Instrumentation/Instrumentor/default_rt.c
A llvm/test/Instrumentation/Instrumentor/default_rt.h
M llvm/test/Instrumentation/Instrumentor/generate_rt.ll
A llvm/test/Instrumentation/Instrumentor/lit.local.cfg
M llvm/test/Instrumentation/Instrumentor/rt_config.json
Log Message:
-----------
[Instrumentor] Improve stub printer (for C/C++ and value packs) (#198366)
The stub printer now emits a helper header to deal with value packs (in
C and C++). We also make the files C/C++ compatible and use the proper
format strings for int32_t and int64_t.
Commit: 843d4a6a27a06527122d3c5fa1a3f85fd8d5fd1b
https://github.com/llvm/llvm-project/commit/843d4a6a27a06527122d3c5fa1a3f85fd8d5fd1b
Author: Ethan Luis McDonough <ethanluismcdonough at gmail.com>
Date: 2026-05-28 (Thu, 28 May 2026)
Changed paths:
M llvm/include/llvm/Transforms/IPO/Instrumentor.h
M llvm/lib/Transforms/IPO/Instrumentor.cpp
M llvm/test/Instrumentation/Instrumentor/default_config.json
M llvm/test/Instrumentation/Instrumentor/module_and_globals.ll
A llvm/test/Instrumentation/Instrumentor/operations.json
A llvm/test/Instrumentation/Instrumentor/operations.ll
Log Message:
-----------
[Instrumentor] Add numeric operation instruction instrumentation support (#199749)
This patch introduces a new instrumentation opportunity for numeric
operations.
Commit: 4910eda2a04e8532e434acb140c692e1c4da319c
https://github.com/llvm/llvm-project/commit/4910eda2a04e8532e434acb140c692e1c4da319c
Author: Florian Mayer <fmayer at google.com>
Date: 2026-05-29 (Fri, 29 May 2026)
Changed paths:
M clang/lib/Analysis/FlowSensitive/Models/UncheckedStatusOrAccessModel.cpp
M clang/unittests/Analysis/FlowSensitive/MockHeaders.cpp
M clang/unittests/Analysis/FlowSensitive/UncheckedStatusOrAccessModelTestFixture.cpp
Log Message:
-----------
[FlowSensitive] [StatusOr] Support ABSL_RETURN_IF_ERROR (#200287)
This was recently introduced in absl
Commit: 7964b66bf55d53f7a528a8153c005bee0614a3d7
https://github.com/llvm/llvm-project/commit/7964b66bf55d53f7a528a8153c005bee0614a3d7
Author: Ethan Luis McDonough <ethanluismcdonough at gmail.com>
Date: 2026-05-28 (Thu, 28 May 2026)
Changed paths:
M llvm/include/llvm/CMakeLists.txt
A llvm/include/llvm/Transforms/IPO/InstrumentorRuntimeHelper.h
A llvm/include/llvm/Transforms/IPO/InstrumentorVariables.inc.in
M llvm/lib/Transforms/IPO/InstrumentorStubPrinter.cpp
M llvm/test/Instrumentation/Instrumentor/default_rt.h
Log Message:
-----------
[Instrumentor] Move instrumentor stub library into its own header file (#199329)
This patch depends on #198366. It moves the instrumentor runtime helper
header into its own file and makes it accessible as a string value to
the instrumentor pass.
Commit: 5047ae21b426452b3ee753574be45404d15111cb
https://github.com/llvm/llvm-project/commit/5047ae21b426452b3ee753574be45404d15111cb
Author: Aiden Grossman <aidengrossman at google.com>
Date: 2026-05-29 (Fri, 29 May 2026)
Changed paths:
M llvm/docs/DeveloperPolicy.rst
Log Message:
-----------
[Docs] Note change to Maintainers.md in DeveloperPolicy (#200315)
This was brought up in a Discord discussion around adding a new target.
Update the documentation to mention Maintainers.md everywhere and remove
references to Maintainers.rst where the former is exclusive.
The only remaining usage of Maintainers.rst is in clang-tools-extra and
we should probably just rewrite it in Markdown especially given it seems
like there is conesnsus to move away from ReST entirely, but we can do
that later.
Commit: 7672a992182dee9ddaabe538bd3fd61a91d854b8
https://github.com/llvm/llvm-project/commit/7672a992182dee9ddaabe538bd3fd61a91d854b8
Author: forking-google-bazel-bot[bot] <265904573+forking-google-bazel-bot[bot]@users.noreply.github.com>
Date: 2026-05-29 (Fri, 29 May 2026)
Changed paths:
M utils/bazel/llvm-project-overlay/llvm/BUILD.bazel
Log Message:
-----------
[Bazel] Fixes 7964b66 (#200316)
This fixes 7964b66bf55d53f7a528a8153c005bee0614a3d7.
Co-authored-by: Google Bazel Bot <google-bazel-bot at google.com>
Commit: 4c33844b4b560f24b2a3a0cc689d73510cb01ad5
https://github.com/llvm/llvm-project/commit/4c33844b4b560f24b2a3a0cc689d73510cb01ad5
Author: Yaxun (Sam) Liu <yaxun.liu at amd.com>
Date: 2026-05-28 (Thu, 28 May 2026)
Changed paths:
M compiler-rt/lib/profile/CMakeLists.txt
Log Message:
-----------
[PGO][HIP] Skip ROCm interceptor in profile-only compiler-rt builds (#200111)
PR #177665 made `libclang_rt.profile.a` merge `RTInterception` and
`sanitizer_common` object libs to support the `hipModuleLoad*` host
interceptor added in `InstrProfilingPlatformROCm.cpp`. Those object-lib
targets are only created when `COMPILER_RT_BUILD_SANITIZERS / _MEMPROF /
_XRAY / _CTX_PROFILE` is enabled (see `compiler-rt/lib/CMakeLists.txt`),
so a profile-only configuration fails at configure time:
```
CMake Error at cmake/Modules/AddCompilerRT.cmake:365 (add_library):
Error evaluating generator expression:
$<TARGET_OBJECTS:RTInterception.x86_64>
Objects of target "RTInterception.x86_64" referenced but no such target
exists.
Call Stack (most recent call first):
lib/profile/CMakeLists.txt:233 (add_compiler_rt_runtime)
```
Fix: gate the object-lib merge on the `RTInterception.<arch>` /
`RTSanitizerCommon*.<arch>` targets actually existing, and drop
`InstrProfilingPlatformROCm.cpp` from `PROFILE_SOURCES` in that case so
the static archive stays self-contained. The host-side hook
`__llvm_profile_hip_collect_device_data` is already declared weak in
`InstrProfilingFile.c` (PR #200101), so its absence is fine at link
time.
Verified:
- Profile-only standalone compiler-rt build
(`-DCOMPILER_RT_BUILD_SANITIZERS=OFF -DCOMPILER_RT_BUILD_MEMPROF=OFF
-DCOMPILER_RT_BUILD_XRAY=OFF -DCOMPILER_RT_BUILD_CTX_PROFILE=OFF
-DCOMPILER_RT_BUILD_PROFILE=ON`) now configures and links cleanly.
- Default runtimes build still merges the object libs and produces the
interceptor; `check-profile` 134/134 pass.
Commit: 3cb8e7215f2d3aa2849813320d3d337859242388
https://github.com/llvm/llvm-project/commit/3cb8e7215f2d3aa2849813320d3d337859242388
Author: Jeffrey Byrnes <jeffrey.byrnes at amd.com>
Date: 2026-05-28 (Thu, 28 May 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPUCoExecSchedStrategy.cpp
M llvm/lib/Target/AMDGPU/AMDGPUCoExecSchedStrategy.h
Log Message:
-----------
[AMDGPU] Address follow-up concerns from 189121 (#192322)
Addressing some comments missed in
https://github.com/llvm/llvm-project/pull/185726
Commit: 561c528b5e1900d41aeef506dfb632a66b3b9d51
https://github.com/llvm/llvm-project/commit/561c528b5e1900d41aeef506dfb632a66b3b9d51
Author: Luke Lau <luke at igalia.com>
Date: 2026-05-29 (Fri, 29 May 2026)
Changed paths:
M llvm/include/llvm/CodeGen/SDPatternMatch.h
M llvm/lib/Target/RISCV/RISCVISelLowering.cpp
M llvm/test/CodeGen/RISCV/rvv/vp-combine-reverse-load.ll
M llvm/test/CodeGen/RISCV/rvv/vp-combine-store-reverse.ll
Log Message:
-----------
[RISCV] Extend vp.reverse vp.load/vp.store combine to non-VP splice + reverse (#180907)
As part of #172961, we can replace vp.reverse with
vector.splice.right(reverse(X), poison, EVL). This extends the existing
vp.reverse(vp.load) -> vp.strided.load stride=-1 and
vp.store(vp.reverse) -> vp.strided.store stride=-1 combines to also
handle the splice form.
It adds a pattern match helper to match both vp.reverse and
vector.splice.right. If vp.reverse is removed in future, then this
pattern match helper can be removed.
Commit: 01a92098491a9d94f84149b92a5a522b1725668b
https://github.com/llvm/llvm-project/commit/01a92098491a9d94f84149b92a5a522b1725668b
Author: Chaitanya <Krishna.Sankisa at amd.com>
Date: 2026-05-29 (Fri, 29 May 2026)
Changed paths:
M clang/lib/CIR/CodeGen/CIRGenBuiltinAMDGPU.cpp
M clang/lib/CIR/CodeGen/CIRGenFunction.h
Log Message:
-----------
[CIR] Add emitBuiltinWithOneOverloadedType helper (#199518)
Port `emitBuiltinWithOneOverloadedType<N>` from classic
CodeGen(`CGBuiltin.h`) to `CIRGenFunction` so the common pattern "emit N
scalar operands and call an LLVM intrinsic whose return type matches the
first operand" can be written as a one-liner across all targets.
Used it to simplify a few existing AMDGPU builtin lowerings (`div_fmas`,
`ds_swizzle`, `readlane`, `readfirstlane`).
Commit: b378c7162613afdc982e8a2e6ec478066ea04492
https://github.com/llvm/llvm-project/commit/b378c7162613afdc982e8a2e6ec478066ea04492
Author: Jin Huang <jinhuang1102 at gmail.com>
Date: 2026-05-28 (Thu, 28 May 2026)
Changed paths:
M llvm/lib/CodeGen/ExpandIRInsts.cpp
M llvm/test/CodeGen/AArch64/fcvt-i256.ll
M llvm/test/CodeGen/AMDGPU/itofp.i128.bf.ll
M llvm/test/CodeGen/AMDGPU/itofp.i128.ll
M llvm/test/CodeGen/RISCV/bitint-fp-conv-200.ll
M llvm/test/Transforms/ExpandIRInsts/X86/expand-fp-convert-small.ll
M llvm/test/Transforms/ExpandIRInsts/X86/expand-int-convert-small.ll
M llvm/test/Transforms/ExpandIRInsts/X86/expand-large-fp-convert-fptosi129.ll
M llvm/test/Transforms/ExpandIRInsts/X86/expand-large-fp-convert-fptoui129.ll
M llvm/test/Transforms/ExpandIRInsts/X86/expand-large-fp-convert-si129tofp.ll
M llvm/test/Transforms/ExpandIRInsts/X86/expand-large-fp-convert-ui129tofp.ll
M llvm/test/Transforms/ExpandIRInsts/X86/expand-large-fp-optnone.ll
Log Message:
-----------
[profcheck] Fix profile metadata propagation for Large FP Operations (#175864)
This PR improves the propagation of profile metadata within the
ExpandIRInsts pass. When lowering non-standard floating-point
operations, the pass now ensures that branch weights are correctly
attached to the generated control flow, preventing the loss of profile
data during IR expansion.
This enhancements cover the conversions between non-standard
floating-point formats and large integers (e.g., `fptosi/fptoui`,
`sitofp/uitofp` involving `i129`).
This PR implements Heuristic-Based Branch Weights labeling using
established heuristics for Floating-point rounding overflow and
saturation checks and adds detailed comments within the expansion logic
to explain the rationale behind specific branch weight choices and the
underlying mathematical invariants.
Please refer to the implementation details in the source code for the
specific branch weight values and the logic governing their application.
---------
Co-authored-by: Jin Huang <jingold at google.com>
Co-authored-by: Aiden Grossman <aidengrossman at google.com>
Commit: 023e7decf625eb03e93aec568ffdbf13e726fbee
https://github.com/llvm/llvm-project/commit/023e7decf625eb03e93aec568ffdbf13e726fbee
Author: Sudharsan Veeravalli <svs at qti.qualcomm.com>
Date: 2026-05-29 (Fri, 29 May 2026)
Changed paths:
M llvm/lib/Target/RISCV/RISCVMoveMerger.cpp
M llvm/test/CodeGen/RISCV/rv32-merge-non-arg-reg.mir
Log Message:
-----------
[RISCV] Skip unrelated COPY during Zdinx/P instruction generation in RISCVMoveMerge (#200219)
`findMatchingInstPair` returned early on the first non-matching `COPY`,
which could miss a valid later `COPY` pair.
Update the scan to continue past non-matching `COPY` instructions and
only apply existing dependency checks when a lane match is found.
Commit: 479818a38ccfb1d82a1e67d13ae11d2151a62c30
https://github.com/llvm/llvm-project/commit/479818a38ccfb1d82a1e67d13ae11d2151a62c30
Author: Aiden Grossman <aidengrossman at google.com>
Date: 2026-05-29 (Fri, 29 May 2026)
Changed paths:
M llvm/utils/profcheck-xfail.txt
Log Message:
-----------
[Profcheck] Update xfail list after b378c7162613afdc982e8a2e6ec478066ea04492 (#200326)
Commit: 767f01e0910d9211486d4022c5c5e7d71c85dff2
https://github.com/llvm/llvm-project/commit/767f01e0910d9211486d4022c5c5e7d71c85dff2
Author: Wenju He <wenju.he at intel.com>
Date: 2026-05-29 (Fri, 29 May 2026)
Changed paths:
A libclc/clc/include/clc/internal/math/clc_runtime_has_hw_fma32.h
M libclc/clc/include/clc/internal/math/clc_sw_fma.h
M libclc/clc/include/clc/math/clc_fma.h
M libclc/clc/lib/generic/math/clc_fma.cl
M libclc/clc/lib/spirv/CMakeLists.txt
A libclc/clc/lib/spirv/math/clc_fma.cl
A libclc/clc/lib/spirv/math/clc_fma.inc
A libclc/clc/lib/spirv/math/clc_runtime_has_hw_fma32.cl
A libclc/clc/lib/spirv/math/clc_sw_fma.cl
M libclc/clc/lib/spirv/vulkan/CMakeLists.txt
R libclc/clc/lib/spirv/vulkan/math/clc_sw_fma.cl
M libclc/opencl/lib/generic/math/fma.cl
M libclc/opencl/lib/spirv/CMakeLists.txt
A libclc/opencl/lib/spirv/math/fma.cl
Log Message:
-----------
[libclc] Use float sw_fma for spirv*-mesa-mesa3d targets (#199626)
This partially reverts 39f3d72b72fd, which changes almost all targets to
use __builtin_elementwise_fma.
The same revert was done for clspv in 1d719edd9935.
Restore __clc_runtime_has_hw_fma32 so that Mesa can dynamically change
its behavior to enable native fma for specific hardware.
Fixes #198542
Commit: 021b93e7e763e81db740972c5f2b761a6f7f47b5
https://github.com/llvm/llvm-project/commit/021b93e7e763e81db740972c5f2b761a6f7f47b5
Author: Pavel Labath <pavel at labath.sk>
Date: 2026-05-29 (Fri, 29 May 2026)
Changed paths:
M lldb/test/API/python_api/sbmodule/TestSBModule.py
Log Message:
-----------
[lldb] Make TestSBModule a no-SHARED_BUILD_TESTCASE (#188265)
Building libfoo.a twice (quickly) confuses the cache in
ObjectContainerBSDArchive (which works only with second granularity),
and causes the second test to fail due to accessing wrong parts of the
file.
I'm also making this a NO_DEBUG_INFO_TESTCASE as the debug info
distinction is not particularly relevant for this test. Technically,
this would be enough as the collision is between two debug info variants
of the same test case, but SHARED_BUILD_TESTCASE=False seems like a more
principled fix.
Commit: bf8dabd88282bb9cf6bd364d29e6d797645074f0
https://github.com/llvm/llvm-project/commit/bf8dabd88282bb9cf6bd364d29e6d797645074f0
Author: Jan Patrick Lehr <JanPatrick.Lehr at amd.com>
Date: 2026-05-29 (Fri, 29 May 2026)
Changed paths:
A offload/ci/hip-tpl.py
Log Message:
-----------
[HIP][CI] Add HIP Kokkos bot recipe (#200201)
Commit: 7d7f98b11b9c2dee5ca6b570fba161dbb102ef87
https://github.com/llvm/llvm-project/commit/7d7f98b11b9c2dee5ca6b570fba161dbb102ef87
Author: Chuanqi Xu <yedeng.yd at linux.alibaba.com>
Date: 2026-05-29 (Fri, 29 May 2026)
Changed paths:
M clang/lib/CodeGen/CGVTables.cpp
M clang/lib/CodeGen/ItaniumCXXABI.cpp
M clang/lib/CodeGen/MicrosoftCXXABI.cpp
M clang/test/CodeGen/construction-vtable-visibility.cpp
M clang/test/CodeGen/push-hidden-visibility-subclass.cpp
M clang/test/CodeGen/split-lto-unit-input.cpp
M clang/test/CodeGenCUDA/increment-index-for-thunks.cu
M clang/test/CodeGenCUDA/record-layout.cu
M clang/test/CodeGenCXX/OmitRTTIComponentABI/simple-vtable-definition.cpp
M clang/test/CodeGenCXX/PR26569.cpp
M clang/test/CodeGenCXX/RelativeVTablesABI/available_externally-vtable.cpp
M clang/test/CodeGenCXX/RelativeVTablesABI/child-inheritted-from-parent-in-comdat.cpp
M clang/test/CodeGenCXX/RelativeVTablesABI/child-vtable-in-comdat.cpp
M clang/test/CodeGenCXX/RelativeVTablesABI/cross-translation-unit-1.cpp
M clang/test/CodeGenCXX/RelativeVTablesABI/cross-translation-unit-2.cpp
M clang/test/CodeGenCXX/RelativeVTablesABI/diamond-inheritance.cpp
M clang/test/CodeGenCXX/RelativeVTablesABI/diamond-virtual-inheritance.cpp
M clang/test/CodeGenCXX/RelativeVTablesABI/inheritted-virtual-function.cpp
M clang/test/CodeGenCXX/RelativeVTablesABI/inline-virtual-function.cpp
M clang/test/CodeGenCXX/RelativeVTablesABI/inlined-key-function.cpp
M clang/test/CodeGenCXX/RelativeVTablesABI/multiple-inheritance.cpp
M clang/test/CodeGenCXX/RelativeVTablesABI/no-alias-when-dso-local.cpp
M clang/test/CodeGenCXX/RelativeVTablesABI/override-pure-virtual-method.cpp
M clang/test/CodeGenCXX/RelativeVTablesABI/overriden-virtual-function.cpp
M clang/test/CodeGenCXX/RelativeVTablesABI/parent-and-child-in-comdats.cpp
M clang/test/CodeGenCXX/RelativeVTablesABI/parent-vtable-in-comdat.cpp
M clang/test/CodeGenCXX/RelativeVTablesABI/relative-vtables-flag.cpp
M clang/test/CodeGenCXX/RelativeVTablesABI/relative-vtables-hwasan.cpp
M clang/test/CodeGenCXX/RelativeVTablesABI/simple-vtable-definition.cpp
M clang/test/CodeGenCXX/RelativeVTablesABI/vtable-hidden-when-in-comdat.cpp
M clang/test/CodeGenCXX/apple-kext-indirect-call-2.cpp
M clang/test/CodeGenCXX/apple-kext-indirect-call.cpp
M clang/test/CodeGenCXX/apple-kext-indirect-virtual-dtor-call.cpp
M clang/test/CodeGenCXX/attr-exclude_from_explicit_instantiation.exclude_from_dllexport.cpp
M clang/test/CodeGenCXX/attr-exclude_from_explicit_instantiation.exclude_from_dllimport.cpp
M clang/test/CodeGenCXX/cfi-cross-dso.cpp
M clang/test/CodeGenCXX/ctor-dtor-alias.cpp
M clang/test/CodeGenCXX/cxx11-vtable-key-function.cpp
M clang/test/CodeGenCXX/dllexport.cpp
M clang/test/CodeGenCXX/dllimport-rtti.cpp
M clang/test/CodeGenCXX/dllimport.cpp
M clang/test/CodeGenCXX/dso-local-executable.cpp
M clang/test/CodeGenCXX/dynamic-cast-address-space.cpp
M clang/test/CodeGenCXX/internal-linkage.cpp
M clang/test/CodeGenCXX/key-function-vtable.cpp
M clang/test/CodeGenCXX/mangle-ms-md5.cpp
M clang/test/CodeGenCXX/mangle-subst-std.cpp
M clang/test/CodeGenCXX/mdefault-visibility-export-mapping-rtti.cpp
M clang/test/CodeGenCXX/microsoft-abi-extern-template.cpp
M clang/test/CodeGenCXX/microsoft-abi-vftables.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.cpp
M clang/test/CodeGenCXX/microsoft-interface.cpp
M clang/test/CodeGenCXX/microsoft-no-rtti-data.cpp
M clang/test/CodeGenCXX/microsoft-vector-deleting-dtors.cpp
M clang/test/CodeGenCXX/modules-vtable.cppm
M clang/test/CodeGenCXX/ms-local-vft-alias-comdat.cpp
M clang/test/CodeGenCXX/ms-thunks-unprototyped.cpp
M clang/test/CodeGenCXX/pr70585.cppm
M clang/test/CodeGenCXX/ps-dllstorage-vtable-rtti.cpp
M clang/test/CodeGenCXX/ptrauth-apple-kext-indirect-call-2.cpp
M clang/test/CodeGenCXX/ptrauth-apple-kext-indirect-call.cpp
M clang/test/CodeGenCXX/ptrauth-apple-kext-indirect-virtual-dtor-call.cpp
M clang/test/CodeGenCXX/ptrauth-explicit-vtable-pointer-control.cpp
M clang/test/CodeGenCXX/ptrauth-global-constant-initializers.cpp
M clang/test/CodeGenCXX/ptrauth-member-function-pointer.cpp
M clang/test/CodeGenCXX/ptrauth-type-info-vtable.cpp
M clang/test/CodeGenCXX/ptrauth-virtual-function.cpp
M clang/test/CodeGenCXX/ptrauth-vtable-virtual-inheritance-thunk.cpp
M clang/test/CodeGenCXX/template-instantiation.cpp
M clang/test/CodeGenCXX/type-metadata.cpp
M clang/test/CodeGenCXX/type_visibility.cpp
M clang/test/CodeGenCXX/vcall-visibility-metadata.cpp
M clang/test/CodeGenCXX/virt-template-vtable.cpp
M clang/test/CodeGenCXX/visibility-dllstorageclass.cpp
M clang/test/CodeGenCXX/visibility.cpp
M clang/test/CodeGenCXX/vtable-align-address-space.cpp
M clang/test/CodeGenCXX/vtable-align.cpp
M clang/test/CodeGenCXX/vtable-assume-load-address-space.cpp
M clang/test/CodeGenCXX/vtable-assume-load.cpp
M clang/test/CodeGenCXX/vtable-available-externally.cpp
M clang/test/CodeGenCXX/vtable-consteval.cpp
M clang/test/CodeGenCXX/vtable-constexpr-address-space.cpp
M clang/test/CodeGenCXX/vtable-constexpr.cpp
M clang/test/CodeGenCXX/vtable-key-function-address-space.cpp
M clang/test/CodeGenCXX/vtable-key-function-arm.cpp
M clang/test/CodeGenCXX/vtable-key-function-ios.cpp
M clang/test/CodeGenCXX/vtable-key-function-win-comdat.cpp
M clang/test/CodeGenCXX/vtable-key-function.cpp
M clang/test/CodeGenCXX/vtable-linkage-address-space.cpp
M clang/test/CodeGenCXX/vtable-linkage.cpp
M clang/test/CodeGenCXX/vtt-layout-address-space.cpp
M clang/test/CodeGenCXX/vtt-layout.cpp
M clang/test/CodeGenCXX/windows-itanium-type-info.cpp
M clang/test/DebugInfo/CXX/vtable-inheritance-diamond.cpp
M clang/test/DebugInfo/CXX/vtable-inheritance-multiple.cpp
M clang/test/DebugInfo/CXX/vtable-inheritance-simple-main.cpp
M clang/test/DebugInfo/CXX/vtable-inheritance-simple.cpp
M clang/test/DebugInfo/CXX/vtable-inheritance-virtual.cpp
M clang/test/DebugInfo/CXX/vtable-template-instantiation.cpp
M clang/test/Headers/hip-header.hip
M clang/test/Modules/vtable-windows.cppm
M clang/test/OpenMP/nvptx_target_pure_deleted_codegen.cpp
M clang/test/OpenMP/target_vtable_codegen_explicit.cpp
Log Message:
-----------
[CodeGen] Stop setting vtable as unnamed_addr (#200108)
Successor of https://github.com/llvm/llvm-project/pull/197855
Close https://github.com/llvm/llvm-project/issues/71196
See the above PR for the full context.
AI assisted
Commit: 891b8f6fa8e796464b34fa9460933fccf69f3cc3
https://github.com/llvm/llvm-project/commit/891b8f6fa8e796464b34fa9460933fccf69f3cc3
Author: Claire Fan <fanyungching at gmail.com>
Date: 2026-05-28 (Thu, 28 May 2026)
Changed paths:
M llvm/lib/Target/BPF/BPFSelectionDAGInfo.cpp
M llvm/lib/Target/BPF/BPFSelectionDAGInfo.h
A llvm/test/CodeGen/BPF/libcall-memcpy-threshold.ll
Log Message:
-----------
[BPF] crash fix for memcpy with unsupported alignment (#199541)
### Summary
BPF only has scalar load/store opcodes up to 8 bytes and `memcpy` with
16 byte alignment crashes with `llvm_unreachable("unsupported memcpy
alignment");` in `BPFInstrInfo::expandMEMCPY`
### Issue
The crash can be reproduced from Rust code like:
```rust
#[no_mangle]
pub extern "C" fn entry(src: *const u128) -> u64 {
let mut dst = [0u128; 2];
unsafe { ptr::copy_nonoverlapping(src, dst.as_mut_ptr(), 2) };
let _ = black_box(dst);
0
}
```
This produces a `memcpy` with 16-byte alignment and
`BPFSelectionDAGInfo::EmitTargetCodeForMemcpy` emit the `BPFISD::MEMCPY`
pseudo for 16-byte alignment. That pseudo later reaches `expandMEMCPY`
during the Post-RA pseudo expansion pass and hits:
```
llvm_unreachable("unsupported memcpy alignment");
```
The crash report looks like:
```
= note: PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/
and include the crash backtrace and instructions to reproduce the bug.
Stack dump:
0. Running pass 'Function Pass Manager' on module 'linked_module'.
1. Running pass 'Post-RA pseudo instruction expansion pass' on function '@entry'
```
### Fix
Return `SDValue()` in `BPFSelectionDAGInfo::EmitTargetCodeForMemcpy`
when the alignment is larger than 8 bytes. LLVM then naturally falls
back to the existing libcall path and emits `call memcpy` instead of
creating a pseudo instruction that cannot be expanded later.
Since `memcpy`, `memset`, and `memmove` are now whitelisted, I think
this fallback behavior is the right fix: unsupported target expansion
should decline and use the existing libcall path instead of crashing.
### Opt-in controls around libcalls
I also want to use this chance to introduce two opt-in controls around
libcalls for VM/runtime use cases built on top of the BPF backend (both
controls are opt-in and disabled by default, so existing kernel projects
and current BPF behavior remain unchanged),
### --bpf-max-stores-per-memfunc
First, an opt-in flag to control over
`BPFSelectionDAGInfo::getCommonMaxStoresPerMemFunc()`.
Today, the target memory expansion path uses:
```c++
if (StoresNumEstimate > getCommonMaxStoresPerMemFunc())
return SDValue();
```
This threshold controls whether `EmitTargetCodeForMemcpy` continues
emitting the BPF memory pseudo(which is later expanded with load/store
ops) or falls back to the libcall path.
Currently this value is effectively fixed at 128, which means most
constant-size memory operations are expanded into inline load/store
sequences. Exposing the threshold gives VM/runtime users a way to allow
more memory operations to fall through to libcalls, while keeping the
current default behavior unchanged.
### --bpf-allows-libcalls (PR #199542 )
Second, an opt-in flag to allow additional libcalls beyond the currently
whitelisted ones.
Today BPF rejects unsupported libcalls here:
```c++
if (Sym != BPF_TRAP && Sym != "__multi3" && Sym != "__divti3" &&
Sym != "__modti3" && Sym != "__udivti3" &&
Sym != "__umodti3" && Sym != "memcpy" &&
Sym != "memset" && Sym != "memmove")
fail(
CLI.DL, DAG,
Twine("A call to built-in function '" + Sym +
"' is not supported."));
```
With the new flag enabled, _this error path is skipped_ so VM/runtime
environments can provide their own libcall implementations.
For VM runtimes using the BPF backend, libcalls are useful because they
create an interface between normal compiler-generated code and
runtime-specific optimization. We have already explored this model for
u128 arithmetic, where libcalls allow normal Rust code to stay unchanged
while the runtime can provide optimized behavior:
https://blueshift.gg/research/accelerating-u128-math-with-libcalls-and-jit-intrinsics
The same idea applies to memory operations. Users can continue writing
normal Rust like `ptr::copy_nonoverlapping`, while the runtime can
choose an implementation tailored to its execution environment.
Both controls are opt-in and disabled by default, so existing kernel
projects and current BPF behavior remain unchanged.
Commit: 6bee6b09e21c579f191daab05a180b3ffeedfebc
https://github.com/llvm/llvm-project/commit/6bee6b09e21c579f191daab05a180b3ffeedfebc
Author: Claire Fan <fanyungching at gmail.com>
Date: 2026-05-28 (Thu, 28 May 2026)
Changed paths:
M llvm/lib/Target/BPF/BPFISelLowering.cpp
A llvm/test/CodeGen/BPF/libcall-non-whitelisted.ll
Log Message:
-----------
[BPF] cli option to allow libcalls (#199542)
This is the follow up PR for PR #199541
### --bpf-allows-libcalls
Second, an opt-in flag to allow additional libcalls beyond the currently
whitelisted ones.
Today BPF rejects unsupported libcalls here:
```c++
if (Sym != BPF_TRAP && Sym != "__multi3" && Sym != "__divti3" &&
Sym != "__modti3" && Sym != "__udivti3" &&
Sym != "__umodti3" && Sym != "memcpy" &&
Sym != "memset" && Sym != "memmove")
fail(
CLI.DL, DAG,
Twine("A call to built-in function '" + Sym +
"' is not supported."));
```
With the new flag enabled, this error path is skipped so VM/runtime
environments can provide their own libcall implementations.
For VM runtimes using the BPF backend, libcalls are useful because they
create an interface between normal compiler-generated code and
runtime-specific optimization. We have already explored this model for
u128 arithmetic, where libcalls allow normal Rust code to stay unchanged
while the runtime can provide optimized behavior:
https://blueshift.gg/research/accelerating-u128-math-with-libcalls-and-jit-intrinsics
The same idea applies to memory operations. Users can continue writing
normal Rust like `ptr::copy_nonoverlapping`, while the runtime can
choose an implementation tailored to its execution environment.
This new option is opt-in and disabled by default, so existing kernel
projects and current BPF behavior remain unchanged.
Commit: 05bcb056f05607025d260945a982dd2fd230b9f6
https://github.com/llvm/llvm-project/commit/05bcb056f05607025d260945a982dd2fd230b9f6
Author: Craig Topper <craig.topper at sifive.com>
Date: 2026-05-28 (Thu, 28 May 2026)
Changed paths:
M llvm/lib/Target/RISCV/RISCVMoveMerger.cpp
Log Message:
-----------
[RISCV] Combine isGPRPairCopyCandidateEven/isGPRPairCopyCandidateOdd in MoveMerger. NFC (#200254)
These only differ in the subreg index. Add a bool to control it.
Commit: 4c1bc59365360f7f24a5c82b8cebd2b52634879a
https://github.com/llvm/llvm-project/commit/4c1bc59365360f7f24a5c82b8cebd2b52634879a
Author: Timm Baeder <tbaeder at redhat.com>
Date: 2026-05-29 (Fri, 29 May 2026)
Changed paths:
M clang/lib/AST/ByteCode/Compiler.cpp
M clang/lib/AST/ByteCode/Function.h
M clang/lib/AST/ByteCode/Interp.cpp
M clang/test/AST/ByteCode/cxx23.cpp
Log Message:
-----------
[clang][bytecode] Fix variadic operator calls with explicit this (#199978)
Commit: bbf8a33ad5f51b5641e7665e5f0d2f0079b454f6
https://github.com/llvm/llvm-project/commit/bbf8a33ad5f51b5641e7665e5f0d2f0079b454f6
Author: Davide Grohmann <davide.grohmann at arm.com>
Date: 2026-05-29 (Fri, 29 May 2026)
Changed paths:
M mlir/lib/Conversion/TosaToSPIRVTosa/TosaToSPIRVTosaOps.cpp
M mlir/test/Conversion/TosaToSPIRVTosa/tosa-to-spirv.mlir
Log Message:
-----------
[mlir][spirv][tosa] Extend TOSA to SPIR-V TOSA op conversion (#200009)
Add conversion patterns for additional TOSA 1.0 operations targeting
the SPIR-V TOSA extended instruction set.
Introduce a common TosaOpConvert pattern with small replacer classes
to share result type conversion while keeping op-specific replacement
logic explicit.
The newly covered operations include:
* elementwise ops such as clamp, arithmetic_right_shift, mul, table,
negate, and select
* reductions and argmax
* gather, scatter, resize
* reshape, reverse, slice, tile, transpose
* cast and const_shape
Also add conversion tests.
---------
Signed-off-by: Davide Grohmann <davide.grohmann at arm.com>
Commit: b835d5a98f48cb9dcae3ec915a0790826eb7d2a2
https://github.com/llvm/llvm-project/commit/b835d5a98f48cb9dcae3ec915a0790826eb7d2a2
Author: Nikita Popov <npopov at redhat.com>
Date: 2026-05-29 (Fri, 29 May 2026)
Changed paths:
M llvm/lib/IR/Value.cpp
M llvm/test/Analysis/ValueTracking/memory-dereferenceable.ll
Log Message:
-----------
[IR] Only require nofree in canBeFreed() (#200191)
After https://github.com/llvm/llvm-project/pull/195658 we only need the
function to be nofree, as this also precludes freeing via
synchronization now. Being nosync is no longer required.
Commit: 01c93f511b4b5f734ac420709266036497610014
https://github.com/llvm/llvm-project/commit/01c93f511b4b5f734ac420709266036497610014
Author: Nikita Popov <npopov at redhat.com>
Date: 2026-05-29 (Fri, 29 May 2026)
Changed paths:
M clang/lib/CodeGen/CGCall.cpp
M clang/test/CodeGenCXX/new_hot_cold.cpp
M clang/test/CodeGenCXX/operator-new.cpp
Log Message:
-----------
[Clang] Mark new as inaccessiblememonly if sane (#197199)
If `-fassume-sane-operator-new` (the default), assume that `operator
new` does not read or write accessible memory.
Currently, this assumption already exists due to special treatment in
BasicAA. I'd like to remove this special treatment (see
https://github.com/llvm/llvm-project/pull/197180), and instead rely only
on the `memory` attribute.
It's worth noting that this is consistent with GCC's interpretation of
the flag (where it is also enabled by default):
> [...] With -fassume-sane-operators-new-delete option GCC may assume
that calls to the replaceable global operators from new or delete
expressions or from __builtin_operator_new or __builtin_operator_delete
calls don’t read or modify any global variables or variables whose
address could escape to the operators (global state; except for errno
for the new and new[] operators). [...]
Commit: b159ed6fa212607ecd287fa73f4bee59802b1528
https://github.com/llvm/llvm-project/commit/b159ed6fa212607ecd287fa73f4bee59802b1528
Author: hev <wangrui at loongson.cn>
Date: 2026-05-29 (Fri, 29 May 2026)
Changed paths:
M llvm/lib/Target/LoongArch/AsmParser/LoongArchAsmParser.cpp
M llvm/lib/Target/LoongArch/CMakeLists.txt
M llvm/lib/Target/LoongArch/LoongArchAsmPrinter.cpp
M llvm/lib/Target/LoongArch/LoongArchAsmPrinter.h
M llvm/lib/Target/LoongArch/LoongArchTargetMachine.cpp
A llvm/lib/Target/LoongArch/LoongArchTargetObjectFile.cpp
A llvm/lib/Target/LoongArch/LoongArchTargetObjectFile.h
M llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchAsmBackend.cpp
M llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchELFObjectWriter.cpp
M llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchELFStreamer.cpp
M llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchELFStreamer.h
M llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchFixupKinds.h
M llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchMCAsmInfo.h
M llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchTargetStreamer.cpp
M llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchTargetStreamer.h
A llvm/test/DebugInfo/LoongArch/tls.ll
A llvm/test/MC/LoongArch/Directives/tls.s
M llvm/utils/gn/secondary/llvm/lib/Target/LoongArch/BUILD.gn
Log Message:
-----------
[LoongArch] Emit DTPREL relocations for TLS debug info (#199326)
Teach the LoongArch backend to lower thread-local debug references using
target-specific DTPREL relocations.
This adds .dtprelword and .dtpreldword directive parsing and streaming,
introduces 32-bit and 64-bit DTPREL fixups and ELF relocation mappings,
and uses a LoongArch target object file to represent debug TLS symbols
as VK_DTPREL expressions. LoongArchAsmPrinter is updated to emit the new
directives for debug TLS values in assembly output.
Add MC and debug info tests for assembly emission and object
relocations.
Commit: 8f45cf9822a5840925836457b78ba4d515ef8da5
https://github.com/llvm/llvm-project/commit/8f45cf9822a5840925836457b78ba4d515ef8da5
Author: Jonas Paulsson <paulson1 at linux.ibm.com>
Date: 2026-05-29 (Fri, 29 May 2026)
Changed paths:
M llvm/lib/Target/SystemZ/SystemZTargetTransformInfo.cpp
M llvm/test/Analysis/CostModel/SystemZ/cmp-ext-01.ll
Log Message:
-----------
[SystemZ] Handle pointer size correctly in getVectorBitmaskConversionCost(). (#200171)
Unfortunately, getScalarSizeInBits() returns 0 for PointerTy, which
means that the loop vectorizer got way too high costs for sext i1 after
a compare(ptr, 0).
There is already a version of getScalarSizeInBits() in
SystemZTargetTransformInfo.cpp that handles this, so this is fixed by
using this in the needed places.
As a result, a few more loops are vectorized, and perl improves ~1%.
Commit: 64bc1fae11d6591739ed0c14f1f3464ae7bc24ac
https://github.com/llvm/llvm-project/commit/64bc1fae11d6591739ed0c14f1f3464ae7bc24ac
Author: Dominik Steenken <dost at de.ibm.com>
Date: 2026-05-29 (Fri, 29 May 2026)
Changed paths:
M clang/include/clang/Basic/CodeGenOptions.def
M clang/include/clang/Options/Options.td
M clang/lib/CodeGen/CodeGenModule.cpp
M clang/lib/Driver/ToolChains/Clang.cpp
A clang/test/CodeGen/SystemZ/stack-guard-global-option.c
M clang/test/Driver/stack-protector-guard.c
M llvm/include/llvm/IR/Module.h
M llvm/lib/IR/Module.cpp
M llvm/lib/Target/SystemZ/SystemZAsmPrinter.cpp
M llvm/lib/Target/SystemZ/SystemZAsmPrinter.h
M llvm/lib/Target/SystemZ/SystemZISelDAGToDAG.cpp
M llvm/lib/Target/SystemZ/SystemZISelLowering.cpp
M llvm/lib/Target/SystemZ/SystemZISelLowering.h
M llvm/lib/Target/SystemZ/SystemZInstrInfo.cpp
M llvm/lib/Target/SystemZ/SystemZInstrInfo.h
M llvm/lib/Target/SystemZ/SystemZInstrInfo.td
M llvm/lib/Target/SystemZ/SystemZOperators.td
A llvm/test/CodeGen/SystemZ/stack-guard-global-nopic.ll
A llvm/test/CodeGen/SystemZ/stack-guard-global-pic.ll
A llvm/test/CodeGen/SystemZ/stack-guard-pseudos.ll
A llvm/test/CodeGen/SystemZ/stack-guard-tls.ll
R llvm/test/CodeGen/SystemZ/stack-guard.ll
Log Message:
-----------
[SystemZ] Global Stackprotector and associated location section (#169317)
This commit allows `-mstack-protector-guard=global` for `s390x`.
It also adds a new arch-specific option
`-mstack-protector-guard-record`, analogous to `-mrecord-mcount`, which
will cause `clang` to emit a `__stack_protector_loc` section containing
all the locations in the output binary that load the stack guard
address, for the purposes of later rewriting of those loads by the
kernel. This new option only works together with the `global` stack
protector.
In order to minimize exposure of the stack guard, both the storing of
the stack guard onto the stack, and the later comparison of that value
against the reference value, are handled via direct mem-to-mem
instructions, those being `mvc` and `clc`.
This is achieved by introducing two new pseudo instructions,
`MOVE_STACK_GUARD` and `COMPARE_STACK_GUARD`, which are inserted by the
DAGCombiner after SelectionDAG construction. These pseudos stick around
throughout the entire backend pipeline, and are lowered only in the
AsmPrinter.
This commit also adds tests for both kinds of stack protectors (tls and
global), for the proper insertion of the pseudos, the proper emission of
the, `__stack_protector_loc` section, as well as the option
compatibility checks for the new options.
Commit: f7a2267de9e3088bafe241da9bd90c710ccc9c3c
https://github.com/llvm/llvm-project/commit/f7a2267de9e3088bafe241da9bd90c710ccc9c3c
Author: Fangrui Song <i at maskray.me>
Date: 2026-05-29 (Fri, 29 May 2026)
Changed paths:
M llvm/lib/IR/LegacyPassManager.cpp
Log Message:
-----------
[IR] Skip remove_if scan for empty maps in removeNotPreservedAnalysis (#200292)
removeNotPreservedAnalysis runs after every legacy-PM pass. #198982
changed it to DenseMap::remove_if, which iterates the raw bucket array
even when the map is empty. The old begin()/end() loop did not:
begin()'s
makeBegin returns end() directly for an empty map (its "avoid advancing
past empty buckets" shortcut), so the loop touched no buckets. These
maps
are usually empty here but keep a grown bucket array after their entries
are erased (a 64-bucket array when compiling sqlite3.i at -O0 -g), so
remove_if walks empty buckets for nothing, regressing instructions:u
(most visible at -O0). #199571 was a small fix for the out-of-lined
remove_if call; this addresses the dominant cost.
Skip empty maps, which fixes the regression:
https://llvm-compile-time-tracker.com/compare.php?from=8ab00f2c21e5975f5de977ca68607b4acc23c856&to=6a33135fad599da0c2c9919ec37f81217e5c8f6b&stat=instructions:u
Commit: 3648f148c70b1980e858f539f1d49837ad94dbf0
https://github.com/llvm/llvm-project/commit/3648f148c70b1980e858f539f1d49837ad94dbf0
Author: Ryotaro Kasuga <kasuga.ryotaro at fujitsu.com>
Date: 2026-05-29 (Fri, 29 May 2026)
Changed paths:
M llvm/Maintainers.md
Log Message:
-----------
[LLVM] Add myself as maintainer for LoopInterchange and related passes (#200335)
I have been consistently contributing to LoopInterchange and the passes
related to it, including Delinearization, DependenceAnalysis, and
ScalarEvolutionDivision. In accordance with [the LLVM Developer
Policy](https://llvm.org/docs/DeveloperPolicy.html#adding-or-enabling-a-new-llvm-pass),
and to help move things forward, particularly toward enabling
LoopInterchange by default, I would like to nominate myself as a
maintainer for these passes.
See also: #124911.
Commit: 971ad593d6a2df38ab3854dc3bc440eab8416057
https://github.com/llvm/llvm-project/commit/971ad593d6a2df38ab3854dc3bc440eab8416057
Author: Joshua Rodriguez <josh.rodriguez at arm.com>
Date: 2026-05-29 (Fri, 29 May 2026)
Changed paths:
M llvm/lib/Target/AArch64/GISel/AArch64RegisterBankInfo.cpp
M llvm/test/CodeGen/AArch64/arm64-int-neon.ll
Log Message:
-----------
[AArch64][GlobalISel] Add handling for scalar sqneg intrinsic (#200211)
Scalar versions of the intrinsic must be performed on FPR banks. To
ensure this happens, coerce the source and destination registers to be
on FPR.
Commit: 3ca81aa6b6d081797eeb555fb905fe7707acac74
https://github.com/llvm/llvm-project/commit/3ca81aa6b6d081797eeb555fb905fe7707acac74
Author: Justin Lebar <justin.lebar at gmail.com>
Date: 2026-05-29 (Fri, 29 May 2026)
Changed paths:
M llvm/lib/Transforms/Vectorize/VectorCombine.cpp
M llvm/test/Transforms/VectorCombine/X86/load-extractelement-scalarization.ll
Log Message:
-----------
[VectorCombine] Don't scalarize atomic loads (#200263)
scalarizeLoad tries to convert e.g.
%a = load <2 x i32> %ptr
%b = extractelement %a, 1
into a scalar load. Before this patch it would do this even when the
load is atomic, but in doing so it accidentally dropped the atomicity of
the load!
Although it is correct to apply this transformation to unordered
atomics, for now we simply don't apply this pass to atomics at all.
This bug was found by a large run of Opus 4.7 looking for bugs in LLVM.
Commit: 9d47197593c671a2925b1121b9194d73d2b0195b
https://github.com/llvm/llvm-project/commit/9d47197593c671a2925b1121b9194d73d2b0195b
Author: Nikolas Klauser <nikolasklauser at berlin.de>
Date: 2026-05-29 (Fri, 29 May 2026)
Changed paths:
M libcxx/include/__memory/shared_ptr.h
Log Message:
-----------
[libc++] Use variable templates instead of class templates in shared_ptr.h (#199481)
This improves readability and compile times a bit.
Commit: eaf5ba7478e774e55334b021221db62f331667e5
https://github.com/llvm/llvm-project/commit/eaf5ba7478e774e55334b021221db62f331667e5
Author: Sven van Haastregt <sven.vanhaastregt at arm.com>
Date: 2026-05-29 (Fri, 29 May 2026)
Changed paths:
M llvm/lib/Target/SPIRV/SPIRVAsmPrinter.cpp
M llvm/lib/Target/SPIRV/SPIRVModuleAnalysis.cpp
M llvm/test/CodeGen/SPIRV/transcoding/ReqdSubgroupSize.ll
Log Message:
-----------
[SPIR-V] Recognize reqd_sub_group_size metadata for SubgroupSize (#199521)
Recognize function metadata without a vendor prefix for the
`SubgroupSize` Execution Mode, alongside the existing vendor-prefixed
metadata. `SubgroupSize` is a core SPIR-V feature, so representing it
using vendor-prefixed metadata was misleading.
Relates to
https://github.com/KhronosGroup/SPIRV-LLVM-Translator/issues/3742
Commit: e8772d99d89a5ed47a58d1a429bc55e5e055c3f7
https://github.com/llvm/llvm-project/commit/e8772d99d89a5ed47a58d1a429bc55e5e055c3f7
Author: Ryotaro Kasuga <kasuga.ryotaro at fujitsu.com>
Date: 2026-05-29 (Fri, 29 May 2026)
Changed paths:
M llvm/Maintainers.md
Log Message:
-----------
[Maintainers] Fix Markdown heading level (#200340)
Commit: d7703c6aab9fd496cc467d81415d07c01247f188
https://github.com/llvm/llvm-project/commit/d7703c6aab9fd496cc467d81415d07c01247f188
Author: Pavel Labath <pavel at labath.sk>
Date: 2026-05-29 (Fri, 29 May 2026)
Changed paths:
M libc/config/linux/aarch64/headers.txt
M libc/config/linux/riscv/headers.txt
M libc/config/linux/x86_64/headers.txt
Log Message:
-----------
[libc] Add byteswap.h to Linux public header target lists (#200345)
The headers don't get built/installed without this.
Commit: a0f7a62bb6a20404221e2823d4b7dd77f67e77ea
https://github.com/llvm/llvm-project/commit/a0f7a62bb6a20404221e2823d4b7dd77f67e77ea
Author: Mariya Podchishchaeva <mariya.podchishchaeva at intel.com>
Date: 2026-05-29 (Fri, 29 May 2026)
Changed paths:
M clang/docs/ReleaseNotes.rst
Log Message:
-----------
[clang][doc][SYCL] Add a very first SYCL release note (#200200)
Commit: 2d046bd62066067a1de8cb65752f1dd9404c4121
https://github.com/llvm/llvm-project/commit/2d046bd62066067a1de8cb65752f1dd9404c4121
Author: Benjamin Maxwell <benjamin.maxwell at arm.com>
Date: 2026-05-29 (Fri, 29 May 2026)
Changed paths:
M llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp
M llvm/test/Transforms/LoopStrengthReduce/AArch64/vscale-fixups.ll
A llvm/test/Transforms/LoopStrengthReduce/AArch64/vscale-negative-i32-offset.ll
Log Message:
-----------
[LSR] Improve the recognition of vscale immediates (#196998)
Previously, the extraction of vscale immediates was handled the same as
the non-scalable case. That is we'd look for a `vscale * constant`
scMulExpr on the LHS of the SCEV expression.
However, within a SCEV expression operands are ordered by "complexity",
which is defined (mostly) by the order of the SCEVTypes enum:
https://github.com/llvm/llvm-project/blob/bcb84e234980ca42ee47e21e4c97180c788c946a/llvm/include/llvm/Analysis/ScalarEvolutionExpressions.h#L38-L59
So, (non-scalable) constants would always occur on the LHS as the
simplest expression type, but a scMulExpr could occur later in the
operand list for a scAddExpr (e.g., after a sext/zext expression). This
meant in some cases we'd fail to find vscale immediates.
This patch updates `ExtractImmediate` to search later operands to find
vscale offsets, and prefer vscale offsets based on the access type and
current BaseOffset. So for scalable accesses, we prefer finding vscale
immediates over fixed immediates when both are present.
Commit: f7fa98ea57dc665d8fcde895fe44547b9d9189cb
https://github.com/llvm/llvm-project/commit/f7fa98ea57dc665d8fcde895fe44547b9d9189cb
Author: David Spickett <david.spickett at arm.com>
Date: 2026-05-29 (Fri, 29 May 2026)
Changed paths:
M llvm/Maintainers.md
Log Message:
-----------
[llvm][docs] Correct link to libc maintainers file (#200348)
Commit: c2e39974c8e27727b15297f82b6bd3be684a4789
https://github.com/llvm/llvm-project/commit/c2e39974c8e27727b15297f82b6bd3be684a4789
Author: Weibo He <NewSigma at 163.com>
Date: 2026-05-29 (Fri, 29 May 2026)
Changed paths:
M llvm/include/llvm/Transforms/Coroutines/SuspendCrossingInfo.h
M llvm/lib/Transforms/Coroutines/CoroFrame.cpp
M llvm/lib/Transforms/Coroutines/SuspendCrossingInfo.cpp
A llvm/test/Transforms/Coroutines/coro-frame-inramp.ll
Log Message:
-----------
[CoroSplit] Never cross suspending points when `coro.is_in_ramp` is true (#198226)
When `coro.is_in_ramp` is true, the marked region does not appear in
resumers after splitting and therefore never crosses a suspension point.
This patch leverages that property to avoid wasting space on lazy
conversion:
``` C++
#include <coroutine>
struct coro {
struct promise_type {
auto get_return_object() noexcept {
return std::coroutine_handle<promise_type>::from_promise(*this);
}
std::suspend_always initial_suspend() noexcept { return {}; }
std::suspend_never final_suspend() noexcept { return {}; }
void return_void() noexcept {}
void unhandled_exception() {}
};
coro(std::coroutine_handle<promise_type> handle) : handle(handle) {}
std::coroutine_handle<> handle;
long l[2];
};
coro fn() {
co_return;
}
```
Commit: 2e10a9f2e95a17d4d009e9546a6cb5d442049233
https://github.com/llvm/llvm-project/commit/2e10a9f2e95a17d4d009e9546a6cb5d442049233
Author: Timm Baeder <tbaeder at redhat.com>
Date: 2026-05-29 (Fri, 29 May 2026)
Changed paths:
M clang/lib/AST/ByteCode/Interp.h
M clang/test/AST/ByteCode/const-eval.c
Log Message:
-----------
[clang][bytecode] Check Mulc op for numbers (#199657)
Commit: bafde6fbb860e9b2f887a649c19f3b3ebb168041
https://github.com/llvm/llvm-project/commit/bafde6fbb860e9b2f887a649c19f3b3ebb168041
Author: Michael Kruse <llvm-project at meinersbur.de>
Date: 2026-05-29 (Fri, 29 May 2026)
Changed paths:
M clang/lib/Driver/ToolChains/AMDGPU.cpp
M clang/lib/Driver/ToolChains/HIPAMD.cpp
M flang-rt/CMakeLists.txt
M flang-rt/cmake/modules/AddFlangRT.cmake
A flang-rt/cmake/modules/FlangRTIntrospection.cmake
M flang-rt/lib/CMakeLists.txt
M flang-rt/lib/runtime/CMakeLists.txt
A flang-rt/lib/runtime/__cuda_builtins.f90
A flang-rt/lib/runtime/__cuda_device.f90
A flang-rt/lib/runtime/__fortran_builtins.f90
A flang-rt/lib/runtime/__fortran_ieee_exceptions.f90
A flang-rt/lib/runtime/__fortran_type_info.f90
A flang-rt/lib/runtime/__ppc_intrinsics.f90
A flang-rt/lib/runtime/__ppc_types.f90
A flang-rt/lib/runtime/cooperative_groups.f90
A flang-rt/lib/runtime/cuda_runtime_api.f90
A flang-rt/lib/runtime/cudadevice.f90
A flang-rt/lib/runtime/flang_debug.f90
A flang-rt/lib/runtime/ieee_arithmetic.f90
A flang-rt/lib/runtime/ieee_exceptions.f90
A flang-rt/lib/runtime/ieee_features.f90
A flang-rt/lib/runtime/iso_c_binding.f90
A flang-rt/lib/runtime/iso_fortran_env.f90
M flang-rt/lib/runtime/iso_fortran_env_impl.cpp
A flang-rt/lib/runtime/iso_fortran_env_impl.f90
A flang-rt/lib/runtime/mma.f90
M flang-rt/test/CMakeLists.txt
M flang-rt/test/Driver/compare_iso_fortran_env_symbols.f90
M flang-rt/test/Driver/iso_fortran_env_impl.f90
M flang-rt/test/lit.cfg.py
M flang-rt/test/lit.site.cfg.py.in
M flang/CMakeLists.txt
M flang/lib/Semantics/semantics.cpp
R flang/module/.clang-format
R flang/module/__cuda_builtins.f90
R flang/module/__cuda_device.f90
R flang/module/__fortran_builtins.f90
R flang/module/__fortran_ieee_exceptions.f90
R flang/module/__fortran_type_info.f90
R flang/module/__ppc_intrinsics.f90
R flang/module/__ppc_types.f90
R flang/module/cooperative_groups.f90
R flang/module/cuda_runtime_api.f90
R flang/module/cudadevice.f90
R flang/module/flang_debug.f90
R flang/module/ieee_arithmetic.f90
R flang/module/ieee_exceptions.f90
R flang/module/ieee_features.f90
R flang/module/iso_c_binding.f90
R flang/module/iso_fortran_env.f90
R flang/module/iso_fortran_env_impl.f90
R flang/module/mma.f90
M flang/test/CMakeLists.txt
R flang/test/Driver/Inputs/resource_dir_with_per_target_subdir/finclude/flang/x86_64-unknown-linux-gnu/.keep
M flang/test/Driver/intrinsic-module-path_per_target.f90
M flang/test/Driver/pp-fixed-form.f90
M flang/test/Lower/OpenMP/simd_aarch64.f90
M flang/test/Lower/OpenMP/target-enter-data-default-openmp52.f90
M flang/test/Lower/where-loc.f90
M flang/test/Parser/bug2280.f90
M flang/test/Preprocessing/fixed-free.f
M flang/test/Preprocessing/no-pp-if.f90
M flang/test/Semantics/bug163242.f90
M flang/test/Semantics/bug164303.f90
M flang/test/Semantics/bug2021.f90
M flang/test/lit.cfg.py
M flang/test/lit.site.cfg.py.in
M flang/tools/CMakeLists.txt
R flang/tools/f18/CMakeLists.txt
R flang/tools/f18/dump.cpp
M llvm/runtimes/CMakeLists.txt
M openmp/CMakeLists.txt
R openmp/cmake/modules/LibompCheckFortranFlag.cmake
M openmp/cmake/modules/LibompHandleFlags.cmake
M openmp/module/CMakeLists.txt
M openmp/runtime/cmake/LibompExports.cmake
M openmp/runtime/test/lit.cfg
M openmp/runtime/test/lit.site.cfg.in
M runtimes/cmake/config-Fortran.cmake
Log Message:
-----------
[Flang] Move builtin .mod generation into runtimes (Reapply #137828) (#171515)
Reapplication of #137828 and #169638
Move building the .mod files from openmp/flang to openmp/flang-rt using
a shared mechanism. Motivations to do so are:
1. Most modules are target-dependent and need to be re-compiled for each
target separately, which is something the LLVM_ENABLE_RUNTIMES system
already does. Prime example is `iso_c_binding.mod` which encodes the
target's ABI. Constants such as `c_long_double` also have different
values).
Most other modules have `#ifdef`-enclosed code as well. For instance
this caused offload targets nvptx64-nvidia-cuda/amdgpu-amd-amdhsa to use
the modules files compiled for the host which may contrain uses of the
types REAL(10) or REAL(16) not available for nvptx/amdgpu.
2. CMake has support for Fortran that we should use. Among other things,
it automatically determines module dependencies so there is no need to
hardcode them in the CMakeLists.txt.
Currently the dependencies between builtin modules and `omp_lib.mod`
seem to be incorrect:
https://github.com/llvm/llvm-project/pull/174474#issuecomment-3880189581
3. It allows using Fortran itself to implement Flang-RT. Currently, only
`iso_fortran_env_impl.f90` emits object files that are needed by Fortran
applications (#89403). The workaround of #95388 could be reverted (PR
#169525).
If using Flang for cross-compilation or target-offloading, flang-rt must
now be compiled for each target not only for the library, but also to
get the target-specific module files. For instance in a bootstrapping
runtime build, this can be done by adding:
`-DLLVM_RUNTIME_TARGETS=default;nvptx64-nvidia-cuda;amdgpu-amd-amdhsa`.
Some new dependencies come into play:
* openmp depends on flang-rt for building `lib_omp.mod` and
`lib_omp_kinds.mod`. Currently, if flang-rt is not found then the
modules are not built.
* check-flang depends on flang-rt: If not found, the majority of tests
are disabled. If not building in a bootstrpping build, the location of
the module files can be pointed to using
`-DFLANG_INTRINSIC_MODULES_DIR=<path>`, e.g. in a flang-standalone
build. Alternatively, the test needing any of the intrinsic modules
could be marked with `REQUIRES: flangrt-modules`.
* check-flang depends on openmp: Not a change; tests requiring
`lib_omp.mod` and `lib_omp_kinds.mod` those are already marked with
`openmp_runtime`.
As intrinsic are now specific to the target, their location is moved
from `include/flang` to `<resource-dir>/finclude/flang/<triple>`. The
mechnism to compute the location have been moved from flang-rt
(previously used to compute the location of `libflang_rt.*.a`) to common
locations in `cmake/GetToolchainDirs.cmake` and
`runtimes/CMakeLists.txt` so they can be used by both, openmp and
flang-rt. Potentially the mechnism could also be shared by other
libraries such as compiler-rt.
`finclude` was chosen because `gfortran` uses it as well and avoids
misuse such as `#include <flang/iso_c_binding.mod>`. The search location
is now determined by `ToolChain` in the driver, instead of by the
frontend. Another subdirectory `flang` avoids accidental inclusion of
gfortran-modules which due to compression would result in
user-unfriendly errors. Now the driver adds `-fintrinsic-module-path`
for that location to the frontend call (Just like gfortran does).
Since the driver determines the location,
tests invoking `flang -fc1` and `bbc` must also be passed the location
by llvm-lit. This works like llvm-lit does for finding the include dirs
for Clang using `-print-file-name=...`.
Commit: 0d8316a53da5ef7b46dd54ea5cf69c89129bb46d
https://github.com/llvm/llvm-project/commit/0d8316a53da5ef7b46dd54ea5cf69c89129bb46d
Author: Dan Liew <dan at su-root.co.uk>
Date: 2026-05-29 (Fri, 29 May 2026)
Changed paths:
M compiler-rt/docs/BuildingCompilerRT.rst
M compiler-rt/test/CMakeLists.txt
Log Message:
-----------
[Compiler-rt][CMake][BoundsSafety] Add `COMPILER_RT_ENABLE_TEST_SUITES` to control which test suites are enabled (#196385)
This change introduces a new CMake cache variable
`COMPILER_RT_ENABLE_TEST_SUITES` that allows users to have fine-grained
control over which test suites are included and therefore run when
running `ninja check-all`.
For example building with `COMPILER_RT_ENABLE_TEST_SUITES=builtins;asan`
will only enable the builtins and asan tests under `compiler-rt/tests`.
The default value of `COMPILER_RT_INCLUDE_TESTS` is `all` which is a
special value that includes everything and it being the default means
this patch preserves existing behavior. Note this new option only has
affect when `COMPILER_RT_INCLUDE_TESTS` is On.
The primary use case for this change is it allows controlling tests that
don't have a corresponding runtime to be enabled/disabled. An example of
this is the `shadowcallstack` test suite. `-fbounds-safety` also has a
downstream test suite in compiler-rt like this. Previously there was no
way to disable including these tests when `COMPILER_RT_INCLUDE_TESTS`
was on.
The `-fbounds-safety` test suite will be upstreamed once the necessary
clang pieces exist upstream.
A side benefit of this change is it allows building runtimes but not
testing some of them which can be useful in some testing environments
(e.g. smoke-test). It is not the primary motivation though.
While the existing `COMPILER_RT_BUILD_<NAME>` options can be used to
prevent running tests (by not building corresponding runtimes) that
isn't a good solution because it:
* Doesn't work for tests that have no corresponding runtime to be built
like `shadowcallstack` because there's no CMake option for it.
* Requires specifying multiple CMake options to disable building each
runtime that we don't want tested. This approach disallows "building
but not testing certain runtimes" and also is annoying to maintain
because its effectively a subtractive list (you say what you don't
want) that has to be updated everytime a new runtime is introduced
whereas COMPILER_RT_ENABLE_TEST_SUITES is an additive list (you say
what you want) that doesn't need modifying everytime a new runtime is
introduced.
To implement this all test directories in `compiler-rt/test` are now
added through the `compiler_rt_test_runtime()` function which has been
adapted to accommodate all use cases.
Assisted-by: Claude Code
rdar://176477660
Commit: 386dac00fba8c7386fe33174234ca1c22b82258b
https://github.com/llvm/llvm-project/commit/386dac00fba8c7386fe33174234ca1c22b82258b
Author: Nikita Popov <npopov at redhat.com>
Date: 2026-05-29 (Fri, 29 May 2026)
Changed paths:
M clang/lib/CodeGen/CGCall.cpp
M clang/test/CodeGenCXX/new_hot_cold.cpp
M clang/test/CodeGenCXX/operator-new.cpp
Log Message:
-----------
Revert "[Clang] Mark new as inaccessiblememonly if sane" (#200349)
Reverts llvm/llvm-project#197199.
This had some unexpected optimization impact.
Commit: 0850f6e62ea02a51be9aa465dbc926d30f7ef6a5
https://github.com/llvm/llvm-project/commit/0850f6e62ea02a51be9aa465dbc926d30f7ef6a5
Author: Bill Wendling <morbo at google.com>
Date: 2026-05-29 (Fri, 29 May 2026)
Changed paths:
M clang/lib/CodeGen/CGStmt.cpp
M clang/lib/CodeGen/CodeGenFunction.h
Log Message:
-----------
[CodeGen][NFC] Refactor EmitAsmStmt to reduce header churn (#199377)
Implement Justin's suggestion, which was far better than what we had.
Commit: 2c49ef885bae8fdb540705a8df0200fbc9de4592
https://github.com/llvm/llvm-project/commit/2c49ef885bae8fdb540705a8df0200fbc9de4592
Author: Florian Hahn <flo at fhahn.com>
Date: 2026-05-29 (Fri, 29 May 2026)
Changed paths:
M llvm/lib/Transforms/Vectorize/VPlanPatternMatch.h
M llvm/lib/Transforms/Vectorize/VPlanUtils.cpp
M llvm/test/Transforms/LoopVectorize/hoist-predicated-loads-with-predicated-stores.ll
Log Message:
-----------
[VPlan] Support URem in getSCEVExprForVPValue. (#199794)
Extend vputils::getSCEVExprForVPValue to construct SCEV expressions for
URem recipes.
Enables SCEV-based no-alias reasoning for stores derived from UREM GEPs.
PR: https://github.com/llvm/llvm-project/pull/199794
Commit: 73080a6c3b5c3e7d11c1294e0afa7ebe5821d712
https://github.com/llvm/llvm-project/commit/73080a6c3b5c3e7d11c1294e0afa7ebe5821d712
Author: Igor Wodiany <igor.wodiany at amd.com>
Date: 2026-05-29 (Fri, 29 May 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.cpp
M llvm/lib/Target/AMDGPU/VOP2Instructions.td
M llvm/lib/Target/AMDGPU/VOP3Instructions.td
M llvm/lib/Target/AMDGPU/VOPInstructions.td
Log Message:
-----------
[AMDGPU] Remove _dpp variants from VOPD tables (#200184)
DPP instructions are not eligible to pariticpate in VOPD and will be
eventually rejected -- `VOPDComponentTable` size is reduced by 33%. This
address a comment from #199072.
Assisted-by: Claude Code
Commit: 7527985fd76cd2a22e4d2a168b813fd29142e24d
https://github.com/llvm/llvm-project/commit/7527985fd76cd2a22e4d2a168b813fd29142e24d
Author: Igor Wodiany <igor.wodiany at amd.com>
Date: 2026-05-29 (Fri, 29 May 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/SIInstrInfo.td
M llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.cpp
M llvm/lib/Target/AMDGPU/VOPDInstructions.td
M llvm/lib/Target/AMDGPU/VOPInstructions.td
Log Message:
-----------
[AMDGPU] Use direct lookup table for VOPD eligibility (#200241)
This further improves lookup by using a packed key that returns both X
and Y eligibility via a direct lookup, removing the need for a binary
search on the VOPDX and VOPDY tables.
Due to TableGen limitations the direct lookup table is generated
manually from the VOPDX and VOPDY tables. Doing it automatically is
future work.
After this patch, `getCanBeVOPD` is reduced to one O(log n) binary
search and one O(1) direct lookup. We could replace the whole function
with a direct lookup using Opc as a key, but the new table would be an
order of magnitude larger. As such, a two-step lookup is the preferred
approach unless we can show that the benefit of a single lookup
outweighs the significant increase in table size — especially since n in
the initial O(log n) lookup is only ~50.
With this patch I'm seeing a decrease from ~2.5% to ~1.75% in perf
report for `getCanBeVOPD`. The baseline has both #199072 and #200184
applied.
Assisted-By: Claude Code
Commit: afddfe074afb19681e2d7628f37f5d621df2ff3a
https://github.com/llvm/llvm-project/commit/afddfe074afb19681e2d7628f37f5d621df2ff3a
Author: Felipe de Azevedo Piovezan <fpiovezan at apple.com>
Date: 2026-05-29 (Fri, 29 May 2026)
Changed paths:
M lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCClassDescriptorV2.cpp
M lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCClassDescriptorV2.h
Log Message:
-----------
[lldb][NFCI] Cleanup AppleObjCClassDescriptorV2::class_ro_t API (#200213)
Commit: 7a4d7733ae55ef8ac139d80e2b0f2bd1951ff5c8
https://github.com/llvm/llvm-project/commit/7a4d7733ae55ef8ac139d80e2b0f2bd1951ff5c8
Author: Deepak Shirke <117824396+deepakshirkem at users.noreply.github.com>
Date: 2026-05-29 (Fri, 29 May 2026)
Changed paths:
M lld/ELF/LinkerScript.cpp
M lld/docs/ReleaseNotes.rst
M lld/test/ELF/linkerscript/end-overflow-check.test
A lld/test/ELF/linkerscript/memory-loc-counter-dot-addr.s
Log Message:
-----------
[ELF] Fix location counter used for output section address with MEMOR… (#197293)
When a section uses '.' as its address expression inside a MEMORY region
(e.g. 's02 . : { ... } > FLASH'), lld was incorrectly evaluating '.'
against the memory region's current position instead of the global
location counter. Save the global dot before the memRegion override and
restore it when an explicit addrExpr is present.
Fixes #112919
@maskray @smithp35 could you please review this patch?
Commit: 3843c160526fcda1e6c0760bff09b9c43c3a0b9d
https://github.com/llvm/llvm-project/commit/3843c160526fcda1e6c0760bff09b9c43c3a0b9d
Author: Timm Baeder <tbaeder at redhat.com>
Date: 2026-05-29 (Fri, 29 May 2026)
Changed paths:
M clang/lib/AST/ByteCode/Interp.h
M clang/lib/AST/ByteCode/Pointer.cpp
M clang/lib/AST/ByteCode/Pointer.h
M clang/test/AST/ByteCode/const-eval.c
Log Message:
-----------
[clang][bytecode] `Pointer::computeOffsetForComparison()` can fail (#199987)
It used to cause an assertion failure inside
`ASTContext::getTypeSizeInChars()` when the reocord decl was not
defined.
Commit: cfeeab33e66c56bf7619a8672bf44cb48473b00d
https://github.com/llvm/llvm-project/commit/cfeeab33e66c56bf7619a8672bf44cb48473b00d
Author: Dominik Steenken <dost at de.ibm.com>
Date: 2026-05-29 (Fri, 29 May 2026)
Changed paths:
M llvm/lib/Target/SystemZ/SystemZInstrInfo.cpp
Log Message:
-----------
[SystemZ] Remove unused variable warning (#200359)
This PR removes a variable declaration that was causing issues in builds
without assertions and `-Werror` enabled. Instead of declaring a
variable that is then only used in an assert, the value assigned to the
variable is moved into the assert instead.
This should resolve the build issue caused by #169317 discovered
[here](https://lab.llvm.org/buildbot/#/builders/228/builds/377).
Commit: e7a1a60f63b095f45cbd66f5e9542bd2498e371a
https://github.com/llvm/llvm-project/commit/e7a1a60f63b095f45cbd66f5e9542bd2498e371a
Author: Alexey Bataev <a.bataev at outlook.com>
Date: 2026-05-29 (Fri, 29 May 2026)
Changed paths:
M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
M llvm/test/Transforms/SLPVectorizer/X86/revec-fma-vectorize.ll
Log Message:
-----------
[SLP][REVEC] Skip external-use extract cost for insertelement buildvector roots
An insertelement buildvector node produces a single vector whose type
equals the scalar type, and its external use is the whole vector, not a
subvector lane. SLP charged it an SK_ExtractSubvector cost, flipping
trees like the complex FMA (2.0f * A) + B from cost -1 to 0 so REVEC
kept them scalar.
Fixes #199715
Reviewers: RKSimon, hiraditya, bababuck
Pull Request: https://github.com/llvm/llvm-project/pull/200299
Commit: 1cf8469545abb5f5df92714a3b6d98dc2a485fa0
https://github.com/llvm/llvm-project/commit/1cf8469545abb5f5df92714a3b6d98dc2a485fa0
Author: Paul Walker <paul.walker at arm.com>
Date: 2026-05-29 (Fri, 29 May 2026)
Changed paths:
M llvm/include/llvm/CodeGen/ValueTypes.h
M llvm/include/llvm/CodeGenTypes/MachineValueType.h
M llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
M llvm/lib/Target/AArch64/AArch64ISelDAGToDAG.cpp
M llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
M llvm/lib/Target/AMDGPU/SIISelLowering.cpp
M llvm/lib/Target/Hexagon/HexagonISelDAGToDAG.cpp
M llvm/lib/Target/Hexagon/HexagonISelDAGToDAGHVX.cpp
M llvm/lib/Target/Hexagon/HexagonISelLowering.cpp
M llvm/lib/Target/Hexagon/HexagonISelLowering.h
M llvm/lib/Target/M68k/M68kISelLowering.cpp
M llvm/lib/Target/RISCV/RISCVISelLowering.cpp
M llvm/lib/Target/RISCV/RISCVSelectionDAGInfo.cpp
M llvm/lib/Target/RISCV/RISCVTargetTransformInfo.cpp
M llvm/lib/Target/SystemZ/SystemZISelLowering.cpp
M llvm/lib/Target/WebAssembly/WebAssemblyISelLowering.cpp
M llvm/lib/Target/X86/X86FastISel.cpp
M llvm/lib/Target/X86/X86ISelDAGToDAG.cpp
M llvm/lib/Target/X86/X86ISelLowering.cpp
M llvm/lib/Target/X86/X86ISelLoweringCall.cpp
M llvm/lib/Target/X86/X86TargetTransformInfo.cpp
Log Message:
-----------
[NFC][ValueType] Add is*VectorOf(VT) helpers. (#200189)
Allows VT.isFixedLengthVectorOf(MVT::i1) in place of
"VT.isFixedLengthVector() && VT.getVectorElementType() == MVT::i1".
Commit: 354cdd40be8715c41c1d68faab31c330e026b369
https://github.com/llvm/llvm-project/commit/354cdd40be8715c41c1d68faab31c330e026b369
Author: Martin Storsjö <martin at martin.st>
Date: 2026-05-29 (Fri, 29 May 2026)
Changed paths:
M compiler-rt/lib/builtins/arm/fixdfdi.S
M compiler-rt/lib/builtins/arm/fixsfdi.S
M compiler-rt/lib/builtins/arm/fixunsdfdi.S
M compiler-rt/lib/builtins/arm/fixunssfdi.S
Log Message:
-----------
[compiler-rt] [ARM] Restore Windows specific names for fp->int functions (#200360)
These Windows specific names were added in
8c59680ac26cf3d772f51aa5ebd64be8e59ed384 (and refactored later in
e6407356ba008e474322d52b7d031f65fa4913fc).
When ARM specific implementations of them were added in
174eb79572b3433aa338ede31815fa8fa6a13b29, the ARM specific files replace
the generic ones - while the ARM specific file lacked the Windows/ARM
renaming of the functions.
Restore the Windows naming of these functions.
Commit: 458e23591c4df2b330aa9d949c4b0933c1529be2
https://github.com/llvm/llvm-project/commit/458e23591c4df2b330aa9d949c4b0933c1529be2
Author: Paul Walker <paul.walker at arm.com>
Date: 2026-05-29 (Fri, 29 May 2026)
Changed paths:
M llvm/lib/Analysis/ConstantFolding.cpp
M llvm/test/Transforms/InstSimplify/sincos.ll
Log Message:
-----------
[LLVM][InstSimplify] Ensure scalar sincos constant fold only triggers for scalars. (#200229)
Commit: fad51d3f41482e148683e12741ac9abfbe49742d
https://github.com/llvm/llvm-project/commit/fad51d3f41482e148683e12741ac9abfbe49742d
Author: Nikolas Klauser <nikolasklauser at berlin.de>
Date: 2026-05-29 (Fri, 29 May 2026)
Changed paths:
M libcxx/include/__configuration/namespace.h
Log Message:
-----------
[libc++] Only push/pop diagnostics for ABI annotations pragmas if not in a system header (#200338)
This should significantly reduce the compile time hit for Clang modules
with the new explicit and implicit ABI annotations.
Commit: edb7a0487060c9e786d9d4dd7d362627a7d3da54
https://github.com/llvm/llvm-project/commit/edb7a0487060c9e786d9d4dd7d362627a7d3da54
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2026-05-29 (Fri, 29 May 2026)
Changed paths:
M llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
M llvm/test/CodeGen/LoongArch/lsx/vmskcond.ll
Log Message:
-----------
[DAG] isAllOnesOrAllOnesSplat - handle implicitly truncated constants (#200209)
Allow implicit truncation in BUILD_VECTOR/SPLAT_VECTOR splat nodes - we only need 1's in the lower bits of every element
More yak shaving for #198162 where we often have <8 x i1> <i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1> used in XOR patterns.
Commit: 1cd28beb77558f80644b4764a9402d0461345ae9
https://github.com/llvm/llvm-project/commit/1cd28beb77558f80644b4764a9402d0461345ae9
Author: Ivan Kosarev <ivan.kosarev at amd.com>
Date: 2026-05-29 (Fri, 29 May 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp
M llvm/lib/Target/AMDGPU/SIFrameLowering.cpp
M llvm/lib/Target/AMDGPU/SIRegisterInfo.cpp
M llvm/lib/Target/AMDGPU/SIRegisterInfo.td
M llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.1024bit.ll
M llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.512bit.ll
M llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.768bit.ll
M llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.832bit.ll
M llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.896bit.ll
M llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.960bit.ll
M llvm/test/CodeGen/AMDGPU/extend-phi-subrange-not-in-parent.mir
M llvm/test/CodeGen/AMDGPU/ipra-regmask.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/sgpr-spill-to-vmem-scc-clobber-unhandled.mir
M llvm/test/CodeGen/AMDGPU/spill-scavenge-offset.ll
M llvm/test/CodeGen/AMDGPU/split-liverange-overlapping-copies.mir
A llvm/test/MC/AMDGPU/vcc_tuples.s
Log Message:
-----------
[AMDGPU] Have VCC as a first-class member of the SGPR pool. (#173870)
Add VCC and tuples using VCC to SGPR register classes.
We already support VCC as an allocatable register for 32-bit SGPR
operands, so it seems most natural to support it for register
tuple operands as well.
s106/s107 are still not allowed as aliases of vcc_lo/hi in
AsmParser.
The names given to the VCC tuples match those produced by SP3,
though it feels like there is room for improvement.
https://github.com/llvm/llvm-project/issues/62651
Commit: 472e7ed971bd24a14ba2c75f6c442928f8283d7c
https://github.com/llvm/llvm-project/commit/472e7ed971bd24a14ba2c75f6c442928f8283d7c
Author: Nerixyz <nerixdev at outlook.de>
Date: 2026-05-29 (Fri, 29 May 2026)
Changed paths:
M lldb/source/Plugins/ExpressionParser/Clang/ClangExpressionDeclMap.cpp
M lldb/source/Plugins/ExpressionParser/Clang/ClangExpressionSourceCode.cpp
M lldb/source/Plugins/ExpressionParser/Clang/ClangExpressionUtil.cpp
M lldb/source/Plugins/ExpressionParser/Clang/ClangUserExpression.cpp
M lldb/test/API/commands/expression/expr_inside_lambda/TestExprInsideLambdas.py
Log Message:
-----------
[lldb] Treat `__this` from CodeView/PDB as captured `this` (#200271)
When building with CodeView/PDB, the captured `this` parameter in a
lambda is named `__this` instead of `this` (for clang, see
[`CGDebugInfo::GetLambdaCaptureName`](https://github.com/llvm/llvm-project/blob/23776bd325ec951781923a638ad632e4126b30ea/clang/lib/CodeGen/CGDebugInfo.cpp#L2064)).
In this PR, I added lookups for `__this`. This change will make the
success cases in `TestExprInsideLambdas.py` pass. The only difference
with CodeView/PDB is that the errors show "use of undeclared identifier"
instead of "use of non-static data member" because the lambda object
isn't a nested type here.
Fixes #71837.
Commit: e0282749ff6bab5a436b201315982483a6d04113
https://github.com/llvm/llvm-project/commit/e0282749ff6bab5a436b201315982483a6d04113
Author: Hassnaa Hamdi <hassnaa.hamdi at arm.com>
Date: 2026-05-29 (Fri, 29 May 2026)
Changed paths:
M llvm/include/llvm/Transforms/Vectorize/LoopVectorize.h
M llvm/lib/Transforms/Vectorize/LoopVectorizationLegality.cpp
M llvm/lib/Transforms/Vectorize/LoopVectorizationPlanner.cpp
M llvm/lib/Transforms/Vectorize/LoopVectorizationPlanner.h
M llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
Log Message:
-----------
[LV][NFC] Factor out vectorization report functions to a separate namespace (#194951)
This patch groups the stateless vectorization-reporting helpers into a
new `LoopVectorizationUtils` namespace in the Planner so they can be
shared cleanly across the Loop Vectorizer's components.
Commit: 9f34092cbdc079e17fb42c4c911f5e90ffbb7f14
https://github.com/llvm/llvm-project/commit/9f34092cbdc079e17fb42c4c911f5e90ffbb7f14
Author: Aaron Ballman <aaron at aaronballman.com>
Date: 2026-05-29 (Fri, 29 May 2026)
Changed paths:
M clang/www/c_status.html
Log Message:
-----------
[C23] Combine two proposals on C status tracking page (#200239)
N2601 is what added Annex H for the interchange and extended floating
point types.
N2844 removed default argument promotions for the types in Annex H.
So these two proposals really do go together.
Commit: 421cfead959f7a616a4899828895347edb28ff1b
https://github.com/llvm/llvm-project/commit/421cfead959f7a616a4899828895347edb28ff1b
Author: Timm Baeder <tbaeder at redhat.com>
Date: 2026-05-29 (Fri, 29 May 2026)
Changed paths:
M clang/lib/AST/ByteCode/Compiler.cpp
M clang/lib/AST/ByteCode/Interp.cpp
M clang/lib/AST/ByteCode/Interp.h
M clang/lib/AST/ByteCode/Opcodes.td
M clang/test/AST/ByteCode/cxx23.cpp
M clang/test/SemaCXX/constant-expression-p2280r4.cpp
Log Message:
-----------
[clang][bytecode] Reject dynamic_cast on constexpr-unknown pointers (#200363)
Commit: caa7b801d217b3a6147e0a9a6787d56f4496abf3
https://github.com/llvm/llvm-project/commit/caa7b801d217b3a6147e0a9a6787d56f4496abf3
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2026-05-29 (Fri, 29 May 2026)
Changed paths:
M llvm/test/CodeGen/X86/avx512-mask-op.ll
Log Message:
-----------
[X86] avx512-mask-op.ll - add #198162 test coverage based off "Eval4Inputs" example (#200373)
Commit: 8c4a5318ae93ffc598b5dbc4cc0c3795ecd423eb
https://github.com/llvm/llvm-project/commit/8c4a5318ae93ffc598b5dbc4cc0c3795ecd423eb
Author: Ilia Kuklin <ikuklin at accesssoftek.com>
Date: 2026-05-29 (Fri, 29 May 2026)
Changed paths:
M llvm/include/llvm/DebugInfo/PDB/Native/PDBFile.h
M llvm/include/llvm/DebugInfo/PDB/Native/PDBFileBuilder.h
M llvm/include/llvm/DebugInfo/PDB/Native/PDBStringTableBuilder.h
M llvm/include/llvm/DebugInfo/PDB/Native/RawConstants.h
M llvm/lib/DebugInfo/PDB/Native/PDBFile.cpp
M llvm/lib/DebugInfo/PDB/Native/PDBFileBuilder.cpp
A llvm/test/tools/llvm-pdbutil/dxcontainer.test
M llvm/tools/llvm-pdbutil/PdbYaml.cpp
M llvm/tools/llvm-pdbutil/PdbYaml.h
M llvm/tools/llvm-pdbutil/YAMLOutputStyle.cpp
M llvm/tools/llvm-pdbutil/YAMLOutputStyle.h
M llvm/tools/llvm-pdbutil/llvm-pdbutil.cpp
M llvm/tools/llvm-pdbutil/llvm-pdbutil.h
Log Message:
-----------
[PDB][llvm-pdbutil] Add DXContainer support for `pdb2yaml` and `yaml2pdb` (#198351)
This patch enables the following:
1. Attempting to parse a `DXContainer` from stream 5 (generated by
DirectX tools) of a PDB file.
2. Outputting a PDB file with a built in DXContainer as YAML. Existing
DirectX tools form a PDB container with empty DBI, TPI and IPI streams,
so this patch also allows them to be empty when dumping a PDB file as
YAML.
3. Creating a PDB file from YAML with an built in DXContainer. When
creating a PDB with a DXContainer, streams DBI, TPI and IPI can be
completely empty, so this patch also includes adjustments to allow
forming such a PDB file. This is done to maintain compatibility with
other DirectX tools.
Commit: 5154b695ec1c37b4756199234842a1eea3437258
https://github.com/llvm/llvm-project/commit/5154b695ec1c37b4756199234842a1eea3437258
Author: Timm Baeder <tbaeder at redhat.com>
Date: 2026-05-29 (Fri, 29 May 2026)
Changed paths:
M clang/lib/AST/ByteCode/ByteCodeEmitter.h
M clang/lib/AST/ByteCode/Compiler.cpp
M clang/lib/AST/ByteCode/Compiler.h
M clang/lib/AST/ByteCode/Context.cpp
M clang/lib/AST/ByteCode/Context.h
M clang/lib/AST/ByteCode/EvalEmitter.cpp
M clang/lib/AST/ByteCode/EvalEmitter.h
M clang/lib/AST/ExprConstant.cpp
Log Message:
-----------
[clang][bytecode] Use in `VarDecl::evaluateDestruction()` (#199646)
Fixes https://github.com/llvm/llvm-project/issues/146832
It's not possible to add a test for this unfortunately, since using the
current interpreter for this isolated use case worked just fine. I have
verified that this does not cause any regressions however.
Commit: 040ee4af4d2554ebee49cc7792869f247c462960
https://github.com/llvm/llvm-project/commit/040ee4af4d2554ebee49cc7792869f247c462960
Author: Florian Hahn <flo at fhahn.com>
Date: 2026-05-29 (Fri, 29 May 2026)
Changed paths:
M llvm/lib/Transforms/Vectorize/VPlanPatternMatch.h
M llvm/lib/Transforms/Vectorize/VPlanUtils.cpp
Log Message:
-----------
[VPlan] Add m_Shl matcher. (NFC) (#200376)
Add matcher for Shl, analogous to m_URem, m_UDiv etc.
Commit: 8785f7cea2ce68fb117e23ac0d6700d14c8beae1
https://github.com/llvm/llvm-project/commit/8785f7cea2ce68fb117e23ac0d6700d14c8beae1
Author: Rahul Joshi <rjoshi at nvidia.com>
Date: 2026-05-29 (Fri, 29 May 2026)
Changed paths:
M llvm/lib/IR/Intrinsics.cpp
M llvm/test/Assembler/implicit-intrinsic-declaration-invalid.ll
M llvm/test/Verifier/arbitrary-fp-convert.ll
M llvm/test/Verifier/callbr.ll
M llvm/test/Verifier/get-active-lane-mask.ll
M llvm/test/Verifier/intrinsic-arg-overloading-struct-ret.ll
M llvm/test/Verifier/matrix-intrinsics.ll
M llvm/test/Verifier/reduction-intrinsics.ll
M llvm/test/Verifier/sat-intrinsics.ll
M llvm/test/Verifier/scatter_gather.ll
M llvm/test/Verifier/stepvector-intrinsic.ll
M mlir/test/Dialect/LLVMIR/call-intrin.mlir
Log Message:
-----------
[LLVM] Precise error message for intrinsic signature verification (2/n) (#199217)
Print precise error message for overloaded types and `LLVMMatchType`
when an intrinsic's type signature verfication fails.
Commit: 78eca55b542b6bca573f34a1b359fa949c3a8c89
https://github.com/llvm/llvm-project/commit/78eca55b542b6bca573f34a1b359fa949c3a8c89
Author: Dominik Steenken <dost at de.ibm.com>
Date: 2026-05-29 (Fri, 29 May 2026)
Changed paths:
M llvm/lib/Target/SystemZ/SystemZISelLowering.cpp
A llvm/test/CodeGen/SystemZ/combine-ccmask-tm-full.ll
Log Message:
-----------
[SystemZ] Fix off-by-one error in backend (#200141)
When combineCCMask is called on a TM node with two constant operands,
and all of the bits in the mask are active, the existing APInt bit
access goes off the overall length of the integer by one. This commit
fixes that by using the index value of the leftmost active bit, rather
than the number of active bits.
Commit: f9cab1481053994428feba1baf7571188f00a368
https://github.com/llvm/llvm-project/commit/f9cab1481053994428feba1baf7571188f00a368
Author: Charles Zablit <c_zablit at apple.com>
Date: 2026-05-29 (Fri, 29 May 2026)
Changed paths:
M lldb/source/Plugins/Process/Windows/Common/DebuggerThread.cpp
Log Message:
-----------
[lldb][windows] allow longer paths than MAX_PATH in GetFileNameByLoadAddress (#200225)
DLLs can be longer than MAX_PATH. This is causing test failures when
running `check-lldb` in a Windows Docker container.
This patch allow long paths when calling `GetFileNameByLoadAddress`.
https://github.com/llvm/llvm-project/pull/198795#discussion_r3276277895
was correct.
Commit: 5e89f5217299579dd834e42173fcc50bc1d31f10
https://github.com/llvm/llvm-project/commit/5e89f5217299579dd834e42173fcc50bc1d31f10
Author: Ilia Kuklin <ikuklin at accesssoftek.com>
Date: 2026-05-29 (Fri, 29 May 2026)
Changed paths:
M llvm/include/llvm/DebugInfo/PDB/Native/PDBFile.h
M llvm/include/llvm/DebugInfo/PDB/Native/PDBFileBuilder.h
M llvm/include/llvm/DebugInfo/PDB/Native/PDBStringTableBuilder.h
M llvm/include/llvm/DebugInfo/PDB/Native/RawConstants.h
M llvm/lib/DebugInfo/PDB/Native/PDBFile.cpp
M llvm/lib/DebugInfo/PDB/Native/PDBFileBuilder.cpp
R llvm/test/tools/llvm-pdbutil/dxcontainer.test
M llvm/tools/llvm-pdbutil/PdbYaml.cpp
M llvm/tools/llvm-pdbutil/PdbYaml.h
M llvm/tools/llvm-pdbutil/YAMLOutputStyle.cpp
M llvm/tools/llvm-pdbutil/YAMLOutputStyle.h
M llvm/tools/llvm-pdbutil/llvm-pdbutil.cpp
M llvm/tools/llvm-pdbutil/llvm-pdbutil.h
Log Message:
-----------
Revert "[PDB][llvm-pdbutil] Add DXContainer support for `pdb2yaml` and `yaml2pdb`" (#200380)
Reverts llvm/llvm-project#198351
Commit: 2359e773d7e4fa003b921a2b6bded996657fb868
https://github.com/llvm/llvm-project/commit/2359e773d7e4fa003b921a2b6bded996657fb868
Author: yingopq <115543042+yingopq at users.noreply.github.com>
Date: 2026-05-29 (Fri, 29 May 2026)
Changed paths:
M llvm/lib/Target/Mips/MipsInstrInfo.td
A llvm/test/MC/Mips/j-alias-r6.s
Log Message:
-----------
[Mips] Add 'j' alias for r6 (#196706)
Fix #107460.
Commit: 8466750c230d5e51d509a8071c8a50e7de390029
https://github.com/llvm/llvm-project/commit/8466750c230d5e51d509a8071c8a50e7de390029
Author: Jean-Didier PAILLEUX <jean-didier.pailleux at sipearl.com>
Date: 2026-05-29 (Fri, 29 May 2026)
Changed paths:
M flang/lib/Lower/Allocatable.cpp
M flang/lib/Lower/MultiImageFortran.cpp
M flang/test/Lower/MIF/coarray_allocation.f90
Log Message:
-----------
[flang][coarray] Fix error fir.store mismatch memory reference type in genCoBounds #193131 (#194870)
The error mentioned in issue #193131 occurs when the lower bound of a
coarray is specified and its corank is 1. A conversion operation was
missing.
I noticed that the hasStat argument wasn't being taken into account in
Allocatable.cpp
Commit: 3c0e4ece789db7750e65c6d8b31f652be906c8a2
https://github.com/llvm/llvm-project/commit/3c0e4ece789db7750e65c6d8b31f652be906c8a2
Author: Tom Stellard <tstellar at redhat.com>
Date: 2026-05-29 (Fri, 29 May 2026)
Changed paths:
M .github/workflows/ci-post-commit-analyzer.yml
Log Message:
-----------
workflows/ci-post-commit-analyzer: Pin container image (#200293)
This is pinned to the image that was used in the last successful run of
this job.
https://github.com/llvm/llvm-project/security/code-scanning/1596
Commit: a182b4bed2c443f383258fe7dcd886b39624526f
https://github.com/llvm/llvm-project/commit/a182b4bed2c443f383258fe7dcd886b39624526f
Author: Charles Zablit <c_zablit at apple.com>
Date: 2026-05-29 (Fri, 29 May 2026)
Changed paths:
M lldb/include/lldb/Host/FileBase.h
M lldb/include/lldb/Host/windows/FileWindows.h
M lldb/source/Host/common/File.cpp
M lldb/source/Host/windows/FileWindows.cpp
M lldb/test/API/python_api/file_handle/TestFileHandle.py
Log Message:
-----------
[lldb][windows] fix command source hitting EOF (#194950)
Commit: 13ccc7c5bfc6f878625a7ab019926d72f878d07a
https://github.com/llvm/llvm-project/commit/13ccc7c5bfc6f878625a7ab019926d72f878d07a
Author: Erich Keane <ekeane at nvidia.com>
Date: 2026-05-29 (Fri, 29 May 2026)
Changed paths:
M clang/include/clang/CIR/Dialect/Builder/CIRBaseBuilder.h
M clang/test/CIR/CodeGen/ctor-null-init.cpp
Log Message:
-----------
[CIR] Handle vptr zero-init- (#200305)
For the purposes of zeroing out a type, we need to make sure that we
handle vptrs. While this seems like it is the wrong thing to do, we end
up immediately initializing the vtable correctly in the constructor
prologue, so this just ensures we do a memset/etc right before then.
Note that the original version of this function operates on a
CXXRecordDecl, so skips this type, which we cannot do, since later logic
determines whether we can/should zero-init this based on whether there
is zero-attrs in the zero init.
Commit: 4a955e932e3a622c601e8fbd78f975191c0ea856
https://github.com/llvm/llvm-project/commit/4a955e932e3a622c601e8fbd78f975191c0ea856
Author: Abhinav Garg <abhinav.garg at amd.com>
Date: 2026-05-29 (Fri, 29 May 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPURegBankLegalizeRules.cpp
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.cvt.scalef32.sr.pk.gfx950.ll
Log Message:
-----------
[AMDGPU][GIsel] Legalize rules for cvt_scalef32_sr_pk_fp4_{f16,f32} intrinsic (#193176)
Add RegBankLegalize rules for- - amdgcn_cvt_scalef32_sr_pk_fp4_f16
- amdgcn_cvt_scalef32_sr_pk_fp4_f32
Update the existing test case _llvm.amdgcn.cvt.scalef32.sr.pk.gfx950.ll_
to use -new-reg-bank-select flag.
Commit: c7d072c0d046a4334ec1dc383c6d19858aace37c
https://github.com/llvm/llvm-project/commit/c7d072c0d046a4334ec1dc383c6d19858aace37c
Author: MarcoCastorina <125660462+MarcoCastorina at users.noreply.github.com>
Date: 2026-05-29 (Fri, 29 May 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/SIWholeQuadMode.cpp
A llvm/test/CodeGen/AMDGPU/wqm-debug-instr-terminator.mir
Log Message:
-----------
Fix assert in SlotIndexes::getInstructionIndex in debug builds (#189370)
In some cases, when debug info is enabled, the assertion in
SlotIndexes::getInstructionIndex fires as the interval contains only
debug instructions. This change ensures only valid instructions are
taken into account.
Fixes SWDEV-581578
Commit: f545a3b3f558a29e2d7c2dc18748e8bedc3ce6c6
https://github.com/llvm/llvm-project/commit/f545a3b3f558a29e2d7c2dc18748e8bedc3ce6c6
Author: Charles Zablit <c_zablit at apple.com>
Date: 2026-05-29 (Fri, 29 May 2026)
Changed paths:
M lldb/include/lldb/Host/PseudoTerminal.h
M lldb/include/lldb/Host/windows/PseudoConsole.h
M lldb/source/Host/common/PseudoTerminal.cpp
M lldb/source/Host/windows/PseudoConsole.cpp
Log Message:
-----------
[lldb] Make PTY initialization idempotent (#197717)
Commit: 4b703fb5fbb9e517eb205f310a129472f3cac655
https://github.com/llvm/llvm-project/commit/4b703fb5fbb9e517eb205f310a129472f3cac655
Author: Charles Zablit <c_zablit at apple.com>
Date: 2026-05-29 (Fri, 29 May 2026)
Changed paths:
M lldb/source/Plugins/Process/Windows/Common/DebuggerThread.cpp
Log Message:
-----------
[lldb][windows] enumerate volumes via FindFirstVolumeW (#200231)
Commit: a64bc13adcb51db80dd1167ac0338cd6d9771720
https://github.com/llvm/llvm-project/commit/a64bc13adcb51db80dd1167ac0338cd6d9771720
Author: Ramkumar Ramachandra <artagnon at tenstorrent.com>
Date: 2026-05-29 (Fri, 29 May 2026)
Changed paths:
M llvm/include/llvm/IR/ValueMap.h
Log Message:
-----------
[ValueMap] Simplify insert methods (NFC) (#200264)
The other methods cannot be simplified: the use of find_as() here is to
specifically avoid the construction of temporary CallbackVHs, which is
very expensive.
Commit: 0fd11e4a83e862fcb48690555015f7da44131075
https://github.com/llvm/llvm-project/commit/0fd11e4a83e862fcb48690555015f7da44131075
Author: eleviant <eleviant at accesssoftek.com>
Date: 2026-05-29 (Fri, 29 May 2026)
Changed paths:
M clang/docs/UsersManual.rst
M clang/include/clang/Driver/CommonArgs.h
M clang/include/clang/Options/Options.td
M clang/lib/Driver/ToolChains/Clang.cpp
M clang/lib/Driver/ToolChains/CommonArgs.cpp
M clang/lib/Driver/ToolChains/Flang.cpp
M clang/lib/Frontend/CompilerInvocation.cpp
M clang/test/CodeGen/ms-intrinsics.c
A clang/test/CodeGen/wrapv.c
M clang/test/Driver/clang_wrapv_opts.c
M compiler-rt/test/ubsan/TestCases/Integer/shift.cpp
M compiler-rt/test/ubsan/TestCases/Misc/abs.cpp
Log Message:
-----------
Honor two's complement signed overflow with -fms-compatibility (#198538)
This matches MSVC behavior, where signed integer overflow follows
two's-complement semantics
Commit: 7fba4dba57ac5624e7918c023b83faa4dec973ec
https://github.com/llvm/llvm-project/commit/7fba4dba57ac5624e7918c023b83faa4dec973ec
Author: Valery Pykhtin <valery.pykhtin at amd.com>
Date: 2026-05-29 (Fri, 29 May 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/SIFoldOperands.cpp
M llvm/lib/Target/AMDGPU/SIInstrInfo.h
Log Message:
-----------
[NFC][AMDGPU] Replace getClampMask with hasSameClamp in SIInstrInfo (#200382)
getClampMask had a single call site that used the result only for
equality comparison. Replace it with hasSameClamp(A, B) which directly
expresses the intent and removes the need to expose raw TSFlags bit
values through the return type.
Co-authored-by: Claude Sonnet 4.6 <noreply at anthropic.com>
Commit: f9207d7c4b48836d83cce1d369f7115a0122618d
https://github.com/llvm/llvm-project/commit/f9207d7c4b48836d83cce1d369f7115a0122618d
Author: Nikolas Klauser <nikolasklauser at berlin.de>
Date: 2026-05-29 (Fri, 29 May 2026)
Changed paths:
M libcxx/include/__memory/shared_ptr.h
Log Message:
-----------
[libc++][NFC] Move functions in shared_ptr.h into the class body (#200343)
This removes some boilerplate code and makes it more consistent with
most of the rest of the code base.
Commit: 733d188a9548a3601278b35b027fc02d0ce94731
https://github.com/llvm/llvm-project/commit/733d188a9548a3601278b35b027fc02d0ce94731
Author: Jonathan Thackray <jonathan.thackray at arm.com>
Date: 2026-05-29 (Fri, 29 May 2026)
Changed paths:
M llvm/lib/Target/AArch64/AArch64InstrFormats.td
Log Message:
-----------
[AArch64][llvm] Restrict STSHH decoding to valid policy encodings (#200389)
Commit: 3791c8b8773735a20fcb07f7f8d87fb2222b795c
https://github.com/llvm/llvm-project/commit/3791c8b8773735a20fcb07f7f8d87fb2222b795c
Author: Susan Tan (ス-ザン タン) <zujunt at nvidia.com>
Date: 2026-05-29 (Fri, 29 May 2026)
Changed paths:
M flang/lib/Optimizer/Transforms/FIRToMemRef.cpp
M flang/test/Transforms/FIRToMemRef/slice-projected.mlir
Log Message:
-----------
[flang][FIRToMemRef] Non-box complex slices use shapeVec strides, not `fir.box_dims` (#200285)
FIRToMemRef now lowers `fir.array_coor` on projected complex %re / %im
when the base is a contiguous `!fir.ref` with `fir.shape` (e.g. a static
component array in a derived type), without calling `fir.box_dims` on
the ref and with strides that match the memref<…×2×T> view.
Previously, any projected slice is lowered through the descriptor path
and produced invalid `fir.box_dims` on a ref. Fixed to take descriptor
strides only when the coor base is actually a box. For ref + shape, it
keeps the synthesized row-major layout and scales array strides by two
scalar slots per complex, with a re/im dimension (extent 2, stride 1).
Commit: afe61654c0e8637b919c9292659a7a5515027d7c
https://github.com/llvm/llvm-project/commit/afe61654c0e8637b919c9292659a7a5515027d7c
Author: Shafik Yaghmour <shafik.yaghmour at intel.com>
Date: 2026-05-29 (Fri, 29 May 2026)
Changed paths:
M clang/docs/ReleaseNotes.rst
M clang/lib/Sema/SemaChecking.cpp
A clang/test/Sema/gh170072.c
Log Message:
-----------
[Clang][Sema] Fix crash when calling EvaluateForOverflow for UnaryOpe… (#200317)
…rator that can not overflow
A while ago I added checking for overflow in unary operators during
constant evaluation:
https://reviews.llvm.org/D142867
This created some new bug opportunities. I am now checking if the
UnaryOperator can overflow before calling EvaluateForOverflow in
Sema::CheckForIntOverflow.
Fixes: https://github.com/llvm/llvm-project/issues/170072
Commit: a8a91c01b734cfecdd6061caef71554deee55daf
https://github.com/llvm/llvm-project/commit/a8a91c01b734cfecdd6061caef71554deee55daf
Author: Srividya Sundaram <srividya.sundaram at intel.com>
Date: 2026-05-29 (Fri, 29 May 2026)
Changed paths:
M clang/lib/Driver/ToolChains/Clang.cpp
M clang/lib/Driver/ToolChains/Linux.cpp
M clang/test/Driver/sycl-offload-jit-unix.cpp
M clang/test/Driver/sycl-offload-jit.cpp
M clang/test/Driver/sycl-windows.cpp
Log Message:
-----------
[SYCL] Fix -nolibsycl and spurious spirv-link flags for SYCL offloading (#200252)
Two related driver fixes for SYCL offloading on Linux:
1. Honor -nolibsycl during linking: the SYCL runtime library
(libLLVMSYCL.so) was unconditionally added to the link line even when
-nolibsycl was passed. The flag was recognized but silently ignored at
the point where the library path is emitted.
2. Do not forward spirv-link flags to clang-sycl-linker: the driver was
passing --allow-partial-linkage and --create-library to
clang-sycl-linker for all SPIR-V offload targets, but these flags are
only meaningful to the out-of-tree spirv-link tool used by OpenMP. SYCL
uses clang-sycl-linker which does not accept them, causing a link
failure. The flags are now restricted to non-SYCL SPIR-V offload kinds.
---------
Co-authored-by: Claude Sonnet 4.6 <noreply at anthropic.com>
Commit: 4db74c054e2bc911a942f0843c2fdb49a95dd9df
https://github.com/llvm/llvm-project/commit/4db74c054e2bc911a942f0843c2fdb49a95dd9df
Author: Valery Pykhtin <valery.pykhtin at amd.com>
Date: 2026-05-29 (Fri, 29 May 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp
Log Message:
-----------
[NFC][AMDGPU] Replace uint64_t SDWA inst-type discriminant with typed enum (#200388)
cvtSDWA() previously took a uint64_t BasicInstType parameter and callers
passed raw TSFlag bit values (SIInstrFlags::VOP1/VOP2/VOPC) as a
discriminant. Introduce a private AMDGPUAsmParser::SDWAInstType enum
class to remove the raw-flag dependency.
---------
Co-authored-by: Claude Sonnet 4.6 <noreply at anthropic.com>
Commit: bdcce4a12c828d7cf5475e5f39dde32280c29a3c
https://github.com/llvm/llvm-project/commit/bdcce4a12c828d7cf5475e5f39dde32280c29a3c
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2026-05-29 (Fri, 29 May 2026)
Changed paths:
M llvm/lib/Target/X86/X86ISelLowering.cpp
M llvm/test/CodeGen/X86/avx512-mask-op.ll
M llvm/test/CodeGen/X86/fold-select.ll
Log Message:
-----------
[X86] combineMaskBitOp - fold vXi1 logicop(truncate(N0),truncate(N1)) -> truncate(logicop(X,Y)) (#200385)
Replace costly predicate logic when possible - generic 128/256/512 vector types are always cheaper
Part of #198162
Commit: 170bdf55faef8000f8abe8eb97472b3c3bab91c5
https://github.com/llvm/llvm-project/commit/170bdf55faef8000f8abe8eb97472b3c3bab91c5
Author: Valery Pykhtin <valery.pykhtin at amd.com>
Date: 2026-05-29 (Fri, 29 May 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPUISelDAGToDAG.cpp
M llvm/lib/Target/AMDGPU/AMDGPUISelDAGToDAG.h
M llvm/lib/Target/AMDGPU/AMDGPUInstructionSelector.cpp
M llvm/lib/Target/AMDGPU/AMDGPUInstructionSelector.h
M llvm/lib/Target/AMDGPU/SIDefines.h
M llvm/lib/Target/AMDGPU/SIFrameLowering.cpp
M llvm/lib/Target/AMDGPU/SIISelLowering.cpp
M llvm/lib/Target/AMDGPU/SIInstrInfo.cpp
M llvm/lib/Target/AMDGPU/SIInstrInfo.h
M llvm/lib/Target/AMDGPU/SILoadStoreOptimizer.cpp
M llvm/lib/Target/AMDGPU/SIRegisterInfo.cpp
Log Message:
-----------
[NFC][AMDGPU] Introduce AMDGPU::FlatVariant enum to replace uint64_t FLAT discriminant (#200396)
Replace the uint64_t parameter used as a FLAT address-space segment
discriminant in isLegalFLATOffset, splitFlatOffset,
allowNegativeFlatOffset with a typed enum class to prevent usage of raw
TSFlags.
Co-authored-by: Claude Sonnet 4.6 <noreply at anthropic.com>
Commit: c4a6fe766e2fe71d478efc9652f45abec8ce5abb
https://github.com/llvm/llvm-project/commit/c4a6fe766e2fe71d478efc9652f45abec8ce5abb
Author: hev <wangrui at loongson.cn>
Date: 2026-05-29 (Fri, 29 May 2026)
Changed paths:
M lld/ELF/Arch/LoongArch.cpp
A lld/test/ELF/loongarch-tls-dtprel.s
Log Message:
-----------
[lld][LoongArch] Handle DTPREL relocations in debug sections (#199327)
Teach the LoongArch lld backend to classify R_LARCH_TLS_DTPREL32 and
R_LARCH_TLS_DTPREL64 as R_DTPREL.
This allows linker processing of TLS debug info references emitted into
.debug_info via .dtprelword/.dtpreldword. Add 32-bit and 64-bit tests
that assemble objects with DTPREL relocations in debug sections.
Commit: 8d4e7d9f4e2e16fb14a1409b1bb5a9fc469c7de5
https://github.com/llvm/llvm-project/commit/8d4e7d9f4e2e16fb14a1409b1bb5a9fc469c7de5
Author: Mircea Trofin <mtrofin at google.com>
Date: 2026-05-29 (Fri, 29 May 2026)
Changed paths:
M llvm/utils/profcheck-xfail.txt
Log Message:
-----------
Add new coro test to profcheck-xfail.txt (coro aren't yet profcheck ready (#200422)
Commit: 00062ed982256651a28187e865d6ae14e21d8395
https://github.com/llvm/llvm-project/commit/00062ed982256651a28187e865d6ae14e21d8395
Author: Valery Pykhtin <valery.pykhtin at amd.com>
Date: 2026-05-29 (Fri, 29 May 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPUISelDAGToDAG.cpp
M llvm/lib/Target/AMDGPU/AMDGPUISelDAGToDAG.h
M llvm/lib/Target/AMDGPU/AMDGPUInstructionSelector.cpp
M llvm/lib/Target/AMDGPU/AMDGPUInstructionSelector.h
M llvm/lib/Target/AMDGPU/SIDefines.h
M llvm/lib/Target/AMDGPU/SIFrameLowering.cpp
M llvm/lib/Target/AMDGPU/SIISelLowering.cpp
M llvm/lib/Target/AMDGPU/SIInstrInfo.cpp
M llvm/lib/Target/AMDGPU/SIInstrInfo.h
M llvm/lib/Target/AMDGPU/SILoadStoreOptimizer.cpp
M llvm/lib/Target/AMDGPU/SIRegisterInfo.cpp
Log Message:
-----------
Revert "[NFC][AMDGPU] Introduce AMDGPU::FlatVariant enum to replace uint64_t FLAT discriminant" (#200420)
Reverts llvm/llvm-project#200396
Build failure
Commit: fa6f7426a39977661a100547690c30e5a4b3691e
https://github.com/llvm/llvm-project/commit/fa6f7426a39977661a100547690c30e5a4b3691e
Author: Yury Plyakhin <yury.plyakhin at intel.com>
Date: 2026-05-29 (Fri, 29 May 2026)
Changed paths:
M clang/docs/ClangSYCLLinker.rst
R clang/test/Driver/Inputs/SYCL/bar.ll
R clang/test/Driver/Inputs/SYCL/baz.ll
R clang/test/Driver/Inputs/SYCL/foo.ll
R clang/test/Driver/Inputs/SYCL/libLLVMSYCL.ll
R clang/test/Driver/link-device-code.test
M clang/test/Driver/sycl-link-spirv-target.cpp
M clang/test/OffloadTools/clang-sycl-linker/basic.ll
A clang/test/OffloadTools/clang-sycl-linker/link.ll
M clang/test/OffloadTools/clang-sycl-linker/split-mode.ll
M clang/tools/clang-sycl-linker/ClangSYCLLinker.cpp
M clang/tools/clang-sycl-linker/SYCLLinkOpts.td
Log Message:
-----------
[clang-sycl-linker] Decouple link step from SYCL; adopt -L / --bc-library options (#199777)
The bitcode link phase in `clang-sycl-linker` is not SYCL-specific — it
links input bitcode, then links library bitcode with `LinkOnlyNeeded`.
This PR makes the implementation reflect that and aligns the option
surface with `clang-nvlink-wrapper`.
- Rename `linkDeviceCode` / `getSYCLDeviceLibs` and strip SYCL/device
wording from verbose output, errors, and doc-comments. The
`runSYCLLink` doc-comment is expanded to describe the full
link → split → codegen → AOT → pack pipeline it actually drives.
- Replace `--device-libs=a.bc,b.bc` with repeatable `--bc-library`,
resolved against `-L` search paths. `-L` becomes the canonical form;
`--library-path` / `--library-path=` are kept as hidden aliases and
now accumulate (previously last-wins).
- Consolidate the four `Inputs/SYCL/*.ll` fixtures and
`link-device-code.test` into one `split-file`-based `link.ll`; refresh
affected check prefixes. New checks cover `-L` joined form,
multi-`-L` fall-through, and first-match-wins ordering.
- ClangSYCLLinker.rst got a substantive refresh beyond doc-comments:
intro paragraphs rewritten, help-text block updated, dropped options
(-g,
-is-windows-msvc-env, -llvm-spirv-options=, --llvm-spirv-path=) and
added options (--module-split-mode, --ocloc-options,
--opencl-aot-options) so the doc
matches current .td reality.
Assisted by claude.
Commit: a57049a7f8259d197361acd833c36b0467ecd44b
https://github.com/llvm/llvm-project/commit/a57049a7f8259d197361acd833c36b0467ecd44b
Author: Domenic Nutile <domenic.nutile at gmail.com>
Date: 2026-05-29 (Fri, 29 May 2026)
Changed paths:
M llvm/test/CodeGen/AMDGPU/GlobalISel/ashr.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/clamp-fmed3-const-combine.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/clamp-minmax-const-combine.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/combine-fma-add-fma-mul.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/combine-fma-sub-mul.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/flat-scratch.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/fmed3-min-max-const-combine.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/insertelement.i8.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/inst-select-add.s16.mir
M llvm/test/CodeGen/AMDGPU/GlobalISel/inst-select-amdgcn.class.mir
M llvm/test/CodeGen/AMDGPU/GlobalISel/inst-select-amdgcn.class.s16.mir
M llvm/test/CodeGen/AMDGPU/GlobalISel/inst-select-amdgcn.fcmp.constants.w32.mir
M llvm/test/CodeGen/AMDGPU/GlobalISel/inst-select-amdgcn.fcmp.constants.w64.mir
M llvm/test/CodeGen/AMDGPU/GlobalISel/inst-select-and.mir
M llvm/test/CodeGen/AMDGPU/GlobalISel/inst-select-anyext.mir
M llvm/test/CodeGen/AMDGPU/GlobalISel/inst-select-ashr.s16.mir
M llvm/test/CodeGen/AMDGPU/GlobalISel/inst-select-constant.mir
M llvm/test/CodeGen/AMDGPU/GlobalISel/inst-select-fabs.mir
M llvm/test/CodeGen/AMDGPU/GlobalISel/inst-select-fceil.s16.mir
M llvm/test/CodeGen/AMDGPU/GlobalISel/inst-select-ffloor.s16.mir
M llvm/test/CodeGen/AMDGPU/GlobalISel/inst-select-fmaxnum-ieee.s16.mir
M llvm/test/CodeGen/AMDGPU/GlobalISel/inst-select-fmaxnum.s16.mir
M llvm/test/CodeGen/AMDGPU/GlobalISel/inst-select-fminnum-ieee.s16.mir
M llvm/test/CodeGen/AMDGPU/GlobalISel/inst-select-fminnum.s16.mir
M llvm/test/CodeGen/AMDGPU/GlobalISel/inst-select-fmul.v2s16.mir
M llvm/test/CodeGen/AMDGPU/GlobalISel/inst-select-fneg.mir
M llvm/test/CodeGen/AMDGPU/GlobalISel/inst-select-freeze.mir
M llvm/test/CodeGen/AMDGPU/GlobalISel/inst-select-fshr.mir
M llvm/test/CodeGen/AMDGPU/GlobalISel/inst-select-lshr.s16.mir
M llvm/test/CodeGen/AMDGPU/GlobalISel/inst-select-or.mir
M llvm/test/CodeGen/AMDGPU/GlobalISel/inst-select-pattern-smed3.s16.mir
M llvm/test/CodeGen/AMDGPU/GlobalISel/inst-select-pattern-umed3.s16.mir
M llvm/test/CodeGen/AMDGPU/GlobalISel/inst-select-shl.s16.mir
M llvm/test/CodeGen/AMDGPU/GlobalISel/inst-select-xor.mir
M llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-load-constant.mir
M llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-load-flat.mir
M llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-load-global.mir
M llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-load-private.mir
M llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-store-global.mir
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.intersect_ray.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/saddsat.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/shl-ext-reduce.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/ssubsat.ll
Log Message:
-----------
[AMDGPU][True16] Upstream GlobalISel True16 tests/run lines (#200288)
All of these tests do not require functional changes to go with them
Commit: 6ce211f02fcf114a843a29b2910f6633e701b4e6
https://github.com/llvm/llvm-project/commit/6ce211f02fcf114a843a29b2910f6633e701b4e6
Author: Martin Storsjö <martin at martin.st>
Date: 2026-05-29 (Fri, 29 May 2026)
Changed paths:
M llvm/include/llvm/ADT/DenseMap.h
M llvm/lib/IR/Value.cpp
M llvm/unittests/ADT/BitVectorTest.cpp
Log Message:
-----------
Revert "[DenseMap] Replace tombstone deletion with TAOCP 6.4 Algorithm R" (#200421)
Reverts llvm/llvm-project#199615.
That change causes nondeterministic failed assertions, see the linked PR
for examples.
Commit: dc40fccbc1f8fcd6d53c970efe199fc02464b986
https://github.com/llvm/llvm-project/commit/dc40fccbc1f8fcd6d53c970efe199fc02464b986
Author: Derek Schuff <dschuff at chromium.org>
Date: 2026-05-29 (Fri, 29 May 2026)
Changed paths:
M llvm/lib/Target/WebAssembly/WebAssemblyLateEHPrepare.cpp
M llvm/test/CodeGen/WebAssembly/exception.ll
Log Message:
-----------
[WebAssembly] Avoid crash in LateEHPrepare with empty cleanup pads (#200322)
WebAssemblyLateEHPrepare::addCatchRefsAndThrowRefs was using
Catch->getIterator()->getNextNode() to find the insertion position
after the CATCH (or CATCH_ALL) instruction in an EH pad.
If the CATCH/CATCH_ALL instruction is the last instruction in the basic
block, getNextNode() returns nullptr, which causees a crash when passed
to BuildMI. This patch fixes it by using std::next(Catch->getIterator())
which returns MBB.end() if the catch is the last instruction, and the
overload of BuildMI that takes an iterator correctly handles BB.end().
Fixes #197077
Assisted-By: Gemini
Commit: 99b5ebd51f498804d6e555952e895d79152340c8
https://github.com/llvm/llvm-project/commit/99b5ebd51f498804d6e555952e895d79152340c8
Author: Sean Clarke <seanedwardsclarke at gmail.com>
Date: 2026-05-29 (Fri, 29 May 2026)
Changed paths:
M llvm/test/Transforms/InstCombine/sub-xor.ll
Log Message:
-----------
[InstCombine] Replace undef with poison in a test (#199757)
This is intended as part of the effort to deprecate undef. The
additional wrap-flags are due to the fact that the add can no longer
overflow with poison, but could overflow with undef.
Alive2 proof: https://alive2.llvm.org/ce/z/qiRYcQ
Commit: 6c9542c3f99e5cc8cdba8122b36323370fcf6d95
https://github.com/llvm/llvm-project/commit/6c9542c3f99e5cc8cdba8122b36323370fcf6d95
Author: Matt Davis <mattd at nvidia.com>
Date: 2026-05-29 (Fri, 29 May 2026)
Changed paths:
M llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp
M llvm/lib/CodeGen/AsmPrinter/DwarfDebug.h
M llvm/lib/Target/NVPTX/NVPTXDwarfDebug.cpp
M llvm/lib/Target/NVPTX/NVPTXDwarfDebug.h
A llvm/test/DebugInfo/NVPTX/language-dialect.ll
Log Message:
-----------
Add NVPTX DW_AT_LLVM_language_dialect emission. (#200003)
This PR makes use of the recently introduced DW_AT_LLVM_language_dialect
attribute. Currently, no other targets emit this compile unit DWARF
attribute ; however, this PR changes that. NVPTX can optionally emit a
dialect based on the type of input being compiled (e.g., from a Tile
frontend or traditional CUDA (SIMT) frontend).
- DwarfDebug: add finishTargetUnitAttributes virtual hook so backends
can finalize per-CU attributes.
- NVPTX: override the hook to emit DW_AT_LLVM_language_dialect
(DW_FORM_data1) for the simt and tile dialects, suppressing emission and
warning (per-CU deduplicated) for unknown values.
(Co-developed via LLM)
Commit: c4346f2a09aa809ddd5b3607f6efe8de254890b7
https://github.com/llvm/llvm-project/commit/c4346f2a09aa809ddd5b3607f6efe8de254890b7
Author: Mircea Trofin <mtrofin at google.com>
Date: 2026-05-29 (Fri, 29 May 2026)
Changed paths:
M llvm/include/llvm/IR/GlobalObject.h
M llvm/include/llvm/Transforms/Utils/AssignGUID.h
M llvm/lib/CodeGen/GlobalMerge.cpp
M llvm/lib/IR/Globals.cpp
M llvm/lib/Transforms/IPO/ConstantMerge.cpp
M llvm/lib/Transforms/Utils/AssignGUID.cpp
M llvm/test/Transforms/ConstantMerge/merge-dbg.ll
A llvm/test/Transforms/GlobalMerge/guid.ll
Log Message:
-----------
Ignore `!guid` metadata when merging globals or constants (#200323)
Follow up from PR #184065. Since globals or constants would now have
their GUID pre-calculated and affixed with metadata, we need to tolerate
its presence when merging. To that effect, we rename (and change
accordingly) `GlobalObject::hasMetadataOtherThanDebugLoc` to
`...AndGuid`.
In the case of Constants, they are merged into one of them, which then
keeps its guid, while the rest are erased. In the case of
GlobalVariables, a new one is created, and we will give it its own guid.
Commit: d043ec846b79e30b8de88e601e8c9e36eee771eb
https://github.com/llvm/llvm-project/commit/d043ec846b79e30b8de88e601e8c9e36eee771eb
Author: Dave Lee <davelee.com at gmail.com>
Date: 2026-05-29 (Fri, 29 May 2026)
Changed paths:
M lldb/source/Plugins/ObjectFile/Mach-O/ObjectFileMachO.cpp
Log Message:
-----------
[lldb] Avoid trie prefix recompuation (NFC) (#200026)
Avoid O(depth) string concatenations for every symbol in the Mach-O
exports trie.
This change uses a string to track the current trie prefix, instead of a
vector of substrings. Instead of pushing and popping on the vector, the
string is appended and truncated.
Assisted-by: claude
Commit: a8a988bd6a5be1d58402a66613814afcb60ef920
https://github.com/llvm/llvm-project/commit/a8a988bd6a5be1d58402a66613814afcb60ef920
Author: Erich Keane <ekeane at nvidia.com>
Date: 2026-05-29 (Fri, 29 May 2026)
Changed paths:
M clang/test/CIR/CodeGen/multi-vtable.cpp
M clang/test/CIR/CodeGen/thunks.cpp
M clang/test/CIR/CodeGen/vbase.cpp
M clang/test/CIR/CodeGen/virtual-function-calls.cpp
M clang/test/CIR/CodeGen/vtable-emission.cpp
M clang/test/CIR/CodeGen/vtable-linkage-explicit-instantiation.cpp
M clang/test/CIR/CodeGen/vtt.cpp
M clang/test/CIR/CodeGenCXX/vtable-linkage.cpp
Log Message:
-----------
[CIR]Fix CIR Test failures after unnamed_addr removed from vtables (#200435)
See #200108 and #197855 for the cause. We weren't generating this
anywhere in our code, so it is only OGCG check lines that got changed.
Commit: 7dcce4c16da12365709adc685679df70572ac49e
https://github.com/llvm/llvm-project/commit/7dcce4c16da12365709adc685679df70572ac49e
Author: Charles Zablit <c_zablit at apple.com>
Date: 2026-05-29 (Fri, 29 May 2026)
Changed paths:
M lldb/source/Plugins/Process/Windows/Common/DebuggerThread.cpp
Log Message:
-----------
[lldb][windows] fix scope_exit warning (#200439)
Using the constructor rather than `make_scope_exit` is preferred.
Commit: bf8e8c221f26fd92fc4ab8baa0e801e599b67fc8
https://github.com/llvm/llvm-project/commit/bf8e8c221f26fd92fc4ab8baa0e801e599b67fc8
Author: Yingwei Zheng <dtcxzyw2333 at gmail.com>
Date: 2026-05-29 (Fri, 29 May 2026)
Changed paths:
M llvm/tools/llubi/lib/Context.cpp
M llvm/tools/llubi/lib/Context.h
M llvm/tools/llubi/lib/Value.cpp
M llvm/tools/llubi/lib/Value.h
Log Message:
-----------
[llubi] Map tags into provenances (#200236)
This patch adjusts https://github.com/llvm/llvm-project/pull/185977 to
generate tags for provenances (i.e., pointer components excluding
addresses), instead of memory objects. This allows us to distinguish
between `read_provenance` and `provenance`. See the original comment in
https://github.com/llvm/llvm-project/pull/185977#discussion_r3310861793.
Currently, tags are only generated for those pointer components
associated with a known memory object. We may need some special tags for
`capture(address)`-only pointers and the result of inttoptr (wildcard
provenance) in the future.
Commit: 398573eecb37143f649f0562e565a6a5f6da5255
https://github.com/llvm/llvm-project/commit/398573eecb37143f649f0562e565a6a5f6da5255
Author: Prasoon <prasoonkumar054 at gmail.com>
Date: 2026-05-29 (Fri, 29 May 2026)
Changed paths:
M llvm/utils/lit/lit/Test.py
Log Message:
-----------
[lit] Make MetricValue a proper abstract base class (#200187)
Currently, `MetricValue` signals abstract methods by raising
`RuntimeError("abstract method")` at runtime. This means a subclass that
forgets to implement `format()` or `todata()` is only caught when the
method is actually called.
This change makes `MetricValue` inherit from `abc.ABC` and decorates
`format` and `todata` with `@abc.abstractmethod`. All three existing
subclasses (`IntMetricValue`, `RealMetricValue`, `JSONMetricValue`)
already implement both methods. No change in behavior.
Signed-off-by: Prasoon Kumar <prasoonkumar054 at gmail.com>
Commit: 0ad051a0a338797c37aa05ca8e79c0062d9c52eb
https://github.com/llvm/llvm-project/commit/0ad051a0a338797c37aa05ca8e79c0062d9c52eb
Author: vporpo <vasileios.porpodas at amd.com>
Date: 2026-05-29 (Fri, 29 May 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPUMIRFormatter.cpp
M llvm/lib/Target/AMDGPU/AMDGPUMIRFormatter.h
M llvm/test/CodeGen/AMDGPU/asyncmark-merge-empty-other.mir
M llvm/test/CodeGen/AMDGPU/expert_scheduling_gfx12.mir
M llvm/test/CodeGen/AMDGPU/expert_scheduling_gfx1250.mir
M llvm/test/CodeGen/AMDGPU/insert-skips-gfx12.mir
M llvm/test/CodeGen/AMDGPU/insert-waitcnts-gfx12-wbinv.mir
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.s.barrier.signal.isfirst.mir
M llvm/test/CodeGen/AMDGPU/spill-wait.mir
M llvm/test/CodeGen/AMDGPU/wait-xcnt-drain.mir
M llvm/test/CodeGen/AMDGPU/wait-xcnt.mir
M llvm/test/CodeGen/AMDGPU/waitcnt-func-global-inv.mir
M llvm/test/CodeGen/AMDGPU/waitcnt-gfx1250.mir
M llvm/test/CodeGen/AMDGPU/waitcnt-kmcnt-scc-different-block.mir
M llvm/test/CodeGen/AMDGPU/waitcnt-overflow.mir
M llvm/test/CodeGen/AMDGPU/waitcnt-preexisting.mir
M llvm/test/CodeGen/AMDGPU/waitcnt-vmcnt-loop.mir
M llvm/test/CodeGen/AMDGPU/waitcnt-wcg-attributes.mir
A llvm/test/CodeGen/MIR/AMDGPU/s_wait_loadcnt_dscnt-errors.mir
A llvm/test/CodeGen/MIR/AMDGPU/s_wait_loadcnt_dscnt.mir
Log Message:
-----------
[AMDGPU][MIRFormatter] S_WAIT_LOADCNT_DSCNT human-readable mask (#200059)
This patch implements a printer and parser for the S_WAIT_LOADCNT_DSCNT
mask. It prints the mask in a human-readable format, showing the counter
values like: `Loadcnt_<NUM>_Dscnt_<NUM>`.
The format matches the printing style of S_WAITCNT_DEPCTR. For example:
```
S_WAIT_LOADCNT_DSCNT .Loadcnt_0_Dsccnt_0
S_WAIT_LOADCNT_DSCNT .Dsccnt_2
S_WAIT_LOADCNT_DSCNT .AllOff
```
Counters at their maximum value (meaning "don't wait") are omitted. When
all counters are at max, `.AllOff` is printed.
Commit: 5f71480b522edbe5c8c4d509e1d9872575ace1d6
https://github.com/llvm/llvm-project/commit/5f71480b522edbe5c8c4d509e1d9872575ace1d6
Author: Matt <MattPD at users.noreply.github.com>
Date: 2026-05-29 (Fri, 29 May 2026)
Changed paths:
M flang/lib/Semantics/check-omp-structure.cpp
A flang/test/Semantics/OpenMP/declare-reduction-use-assoc-named.f90
Log Message:
-----------
[flang][OpenMP] Fix USE-associated declare reduction symbol resolution (#200328)
When a declare reduction is accessed via USE association, the symbol in
the consuming scope has `UseDetails` rather than `UserReductionDetails`.
Calling `detailsIf<UserReductionDetails>()` directly on such a symbol
returns nullptr. This causes two distinct failure modes:
1. **Operator/identifier validation** (`CheckReductionOperator`): named
reductions and defined operators are rejected with "Invalid reduction
identifier" or "Invalid reduction operator".
2. **Type validation** (`CheckSymbolSupportsType`,
`IsReductionAllowedForType`):
the type compatibility check cannot find `UserReductionDetails` for the
reduction, producing "The type of 'x' is incompatible with the
reduction operator".
This bug has existed since `UserReductionDetails` was introduced (June
2025). Only intrinsic operator reductions (like `+`) worked via USE,
because they bypass the operator validation check and their type
checking
was handled by a global module scan workaround (added Feb 2026).
**Fix:** Add `GetUltimate()` at 4 locations in `check-omp-structure.cpp`
to resolve
through `UseDetails` chains before checking for `UserReductionDetails`:
two in `CheckReductionOperator` (validation paths 1 and 2 above), one in
`CheckSymbolSupportsType`, and one in `IsReductionAllowedForType`.
Fixes https://github.com/llvm/llvm-project/issues/184932
Co-authored-by: Matt P. Dziubinski <matt-p.dziubinski at hpe.com>
Commit: 912f0d1055b8dafe8602c773787c658b5d7b3bd8
https://github.com/llvm/llvm-project/commit/912f0d1055b8dafe8602c773787c658b5d7b3bd8
Author: Chris B <chris.bieneman at me.com>
Date: 2026-05-29 (Fri, 29 May 2026)
Changed paths:
M clang/lib/AST/ByteCode/Compiler.cpp
M clang/lib/AST/ByteCode/Compiler.h
M clang/lib/AST/ExprConstant.cpp
A clang/test/SemaHLSL/Language/ConstexprVectorCasts.hlsl
A clang/test/SemaHLSL/Types/BuiltinVector/VectorCastConstantExpr.hlsl
Log Message:
-----------
[HLSL] `constexpr` vector element conversions (#195173)
This PR updates the constant expression evaluators to support HLSL's
element-wise vector element conversions. These conversions allow
element-by-element conversion of a vector from one type to another
vector of the same dimension.
Fixes #163437
---------
Co-authored-by: Deric C. <cheung.deric at gmail.com>
Commit: 3c34c34901d659873117546781847d4d68710973
https://github.com/llvm/llvm-project/commit/3c34c34901d659873117546781847d4d68710973
Author: Adhemerval Zanella <zatrazz at gmail.com>
Date: 2026-05-29 (Fri, 29 May 2026)
Changed paths:
M clang/include/clang/Basic/BuiltinsAArch64.td
M clang/lib/CIR/CodeGen/CIRGenBuiltinAArch64.cpp
M clang/lib/CodeGen/TargetBuiltins/ARM.cpp
M clang/lib/Headers/arm64intr.h
M clang/lib/Headers/intrin.h
M clang/lib/Sema/SemaARM.cpp
M clang/test/CodeGen/arm64-microsoft-intrinsics.c
M llvm/docs/LangRef.rst
M llvm/include/llvm/IR/Intrinsics.td
M llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
M llvm/lib/IR/Verifier.cpp
A llvm/test/CodeGen/AArch64/read-fp-reg.ll
A llvm/test/CodeGen/AArch64/write-volatile-register.ll
Log Message:
-----------
[aarch64] Add more MSVC intrinsics (#194632)
This patchset adds more intrinsics from MSVC build 2026 [1]. I focused
on the one documented by Microsoft, although intrin.h and related
headers do export more symbols.
This is split from https://github.com/llvm/llvm-project/pull/193221 ,
where I only added the non-controversial ones.
Commit: c241374079f12aabe5d1db5133cb5d924a3cc1d6
https://github.com/llvm/llvm-project/commit/c241374079f12aabe5d1db5133cb5d924a3cc1d6
Author: Erick Velez <erickvelez7 at gmail.com>
Date: 2026-05-29 (Fri, 29 May 2026)
Changed paths:
M clang/docs/ReleaseNotes.rst
M clang/include/clang/AST/Comment.h
M clang/lib/AST/Comment.cpp
M clang/lib/Index/CommentToXML.cpp
M clang/test/Sema/warn-documentation.cpp
Log Message:
-----------
[clang] Fix @tparam warnings for concept template parameters (#199800)
`-Wdocumentation` would warn on `@tparam` commands for concepts even if
the named
parameter existed. This patch fixes that by adding concept support to
`comment::DeclInfo` when its
properties are filled from the associated comment's decl.
Fixes #64087
Commit: 77800224eba1bd273c50fb1153945c38da507a52
https://github.com/llvm/llvm-project/commit/77800224eba1bd273c50fb1153945c38da507a52
Author: Ilia Kuklin <ikuklin at accesssoftek.com>
Date: 2026-05-29 (Fri, 29 May 2026)
Changed paths:
M llvm/include/llvm/DebugInfo/PDB/Native/PDBFile.h
M llvm/include/llvm/DebugInfo/PDB/Native/PDBFileBuilder.h
M llvm/include/llvm/DebugInfo/PDB/Native/PDBStringTableBuilder.h
M llvm/include/llvm/DebugInfo/PDB/Native/RawConstants.h
M llvm/lib/DebugInfo/PDB/Native/PDBFile.cpp
M llvm/lib/DebugInfo/PDB/Native/PDBFileBuilder.cpp
A llvm/test/tools/llvm-pdbutil/dxcontainer.test
M llvm/tools/llvm-pdbutil/PdbYaml.cpp
M llvm/tools/llvm-pdbutil/PdbYaml.h
M llvm/tools/llvm-pdbutil/YAMLOutputStyle.cpp
M llvm/tools/llvm-pdbutil/YAMLOutputStyle.h
M llvm/tools/llvm-pdbutil/llvm-pdbutil.cpp
M llvm/tools/llvm-pdbutil/llvm-pdbutil.h
Log Message:
-----------
Reapply "[PDB][llvm-pdbutil] Add DXContainer support for `pdb2yaml` and `yaml2pdb`" (#200413)
This reapplies #198351 with a fix for `-Wchanges-meaning` causing an
error in `PdbYaml.h`.
Original description:
This patch enables the following:
1. Attempting to parse a `DXContainer` from stream 5 (generated by
DirectX tools) of a PDB file, to be used later in `llvm-pdbutil`.
2. Outputting a PDB file with a built in DXContainer as YAML. Existing
DirectX tools form a PDB container with empty DBI, TPI and IPI streams,
so this patch also allows them to be empty when dumping a PDB file as
YAML.
3. Creating a PDB file from YAML with an built in DXContainer. When
creating a PDB with a DXContainer, streams DBI, TPI and IPI can be
completely empty, so this patch also includes adjustments to allow
forming such a PDB file. This is done to maintain compatibility with
other DirectX tools.
Commit: 4472e935678ae8aba762b2464867f9e3fe81ca15
https://github.com/llvm/llvm-project/commit/4472e935678ae8aba762b2464867f9e3fe81ca15
Author: Adrian Prantl <aprantl at apple.com>
Date: 2026-05-29 (Fri, 29 May 2026)
Changed paths:
M lldb/test/API/lang/objc/modules-auto-import/TestModulesAutoImport.py
Log Message:
-----------
[LLDB] Skip test with older versions of clang (#200456)
Commit: 2f2122a1438116b6e4d159bc8c7d7abe49ce7098
https://github.com/llvm/llvm-project/commit/2f2122a1438116b6e4d159bc8c7d7abe49ce7098
Author: lntue <lntue at google.com>
Date: 2026-05-29 (Fri, 29 May 2026)
Changed paths:
M libc/cmake/modules/LLVMLibCTestRules.cmake
M libc/test/CMakeLists.txt
M libc/test/UnitTest/LibcTest.h
M libc/test/shared/CMakeLists.txt
Log Message:
-----------
[libc][NFC] Add few options to allow users to skip building and running some tests. (#199474)
These options will be used to reduce redundancy and time for precommit
CIs:
- LIBC_TEST_SKIP_DEATH_TESTS
- LIBC_TEST_SKIP_SHARED_MATH_TESTS
- LIBC_TEST_CHECK_LIBC_BUILD_ONLY
Commit: 2520a9bcd0911b598e99a34420d6359c3dc61277
https://github.com/llvm/llvm-project/commit/2520a9bcd0911b598e99a34420d6359c3dc61277
Author: Jan Schultke <me at eisenwave.net>
Date: 2026-05-29 (Fri, 29 May 2026)
Changed paths:
M clang/lib/AST/ByteCode/InterpBuiltin.cpp
M clang/lib/AST/ExprConstant.cpp
M llvm/include/llvm/ADT/APInt.h
M llvm/lib/Support/APInt.cpp
M llvm/unittests/ADT/APIntTest.cpp
Log Message:
-----------
[APInt] Add `APIntOps::compressBits` and `APIntOps::expandBits` (#200114)
These are necessary to implement portable intrinsics for
bit_compress/pext/bext and bit_expand/pdep/bdep.
See
- https://github.com/llvm/llvm-project/issues/172857
- https://github.com/llvm/llvm-project/pull/168527 (I basically modeled my PR after this one)
Commit: df697a65e67300c72851dddb31f7e1b5e869c931
https://github.com/llvm/llvm-project/commit/df697a65e67300c72851dddb31f7e1b5e869c931
Author: Erich Keane <ekeane at nvidia.com>
Date: 2026-05-29 (Fri, 29 May 2026)
Changed paths:
M clang/lib/CIR/Dialect/Transforms/LoweringPrepare.cpp
M clang/test/CIR/CodeGen/global-array-dtor.cpp
M clang/test/CIR/CodeGen/global-init.cpp
M clang/test/CIR/CodeGen/static-members.cpp
Log Message:
-----------
[CIR] Set the linkage properly for the _GLOBAL__SUB_I_ function (#200443)
These are required to have internal linkage, however we were generating
them with external linkage. This causes problems with linking together
files with the same name for one reason or another.
This patch does NOT change the module initializer linkage, which based
on all uses I could find, should remain external linkage.
Commit: e5dc01128ac53f4831c314906305ccca480eeecb
https://github.com/llvm/llvm-project/commit/e5dc01128ac53f4831c314906305ccca480eeecb
Author: Domenic Nutile <domenic.nutile at gmail.com>
Date: 2026-05-29 (Fri, 29 May 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPUInstructionSelector.cpp
M llvm/lib/Target/AMDGPU/AMDGPUInstructionSelector.h
M llvm/lib/Target/AMDGPU/AMDGPURegBankLegalizeRules.cpp
M llvm/test/CodeGen/AMDGPU/GlobalISel/andn2.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/fshl.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/fshr.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/orn2.ll
A llvm/test/CodeGen/AMDGPU/GlobalISel/select-merge-values-build-vector-s16.mir
A llvm/test/CodeGen/AMDGPU/GlobalISel/true16-merge-values-s16.ll
Log Message:
-----------
[AMDGPU][True16] Add legalization/selection handling for G_MERGE_VALUES of 2 s16 -> s32 (#200082)
Co-authored-by: Petar Avramovic <Petar.Avramovic at amd.com>
Commit: 098b05f32989a4243243860c69e8ec775c86669c
https://github.com/llvm/llvm-project/commit/098b05f32989a4243243860c69e8ec775c86669c
Author: Alexander Richardson <alexrichardson at google.com>
Date: 2026-05-29 (Fri, 29 May 2026)
Changed paths:
M clang/test/Driver/print-supported-extensions-riscv.c
M llvm/lib/Target/RISCV/AsmParser/RISCVAsmParser.cpp
M llvm/lib/Target/RISCV/Disassembler/RISCVDisassembler.cpp
M llvm/lib/Target/RISCV/MCTargetDesc/RISCVBaseInfo.h
M llvm/lib/Target/RISCV/MCTargetDesc/RISCVMCCodeEmitter.cpp
M llvm/lib/Target/RISCV/RISCVFeatures.td
M llvm/lib/Target/RISCV/RISCVInstrInfo.cpp
M llvm/lib/Target/RISCV/RISCVInstrInfo.td
A llvm/lib/Target/RISCV/RISCVInstrInfoY.td
M llvm/test/CodeGen/RISCV/attributes.ll
A llvm/test/CodeGen/RISCV/rvy/rvy-invalid-operands.mir
A llvm/test/MC/RISCV/rvy/rvy-basic-invalid.s
A llvm/test/MC/RISCV/rvy/rvy-basic.s
M llvm/unittests/TargetParser/RISCVISAInfoTest.cpp
Log Message:
-----------
[RISC-V][MC] Introduce initial support for RVY (CHERI)
This adds MC-level support for most of the base Y extension instructions
using the latest 0.9.8.2 draft of the specification. This initial pull
request is restricted to the execution-mode-independent subset. The RVY
base ISA (CHERI for RISC-V) also introduces an execution mode that
determines whether certain register operands use the full extended
register or only the address subset (the current XLEN registers). The
instructions that depend on execution mode (loads/stores/jumps + AUIPC)
will be added in the following commits in this stack of changes.
Specification: https://riscv.github.io/riscv-cheri/
Co-authored-by: Jessica Clarke <jrtc27 at jrtc27.com>
Pull Request: https://github.com/llvm/llvm-project/pull/199771
Commit: 8a3ed55e56dc24cfa7d78875b89f0911a791dc55
https://github.com/llvm/llvm-project/commit/8a3ed55e56dc24cfa7d78875b89f0911a791dc55
Author: Alex Langford <alangford at apple.com>
Date: 2026-05-29 (Fri, 29 May 2026)
Changed paths:
M lldb/test/API/lang/objc/foundation/TestObjCMethods.py
Log Message:
-----------
[lldb] Tighten TestObjcMethods test case for arm64e (#200262)
This test explicitly checks for spurious DWARF lookups by looking for
the string `$__lldb` in the dwarf lookup logs. The intent here is to
validate that any calls to `FindFunctions` or `FindTypes` won't have
`$__lldb` in its lookup target. On arm64, this is trivial because `expr
self` goes through the IRInterpreter.
However, on arm64e, `expr self` is JIT compiled and executed in the
inferior process. LLDB installs some utility functions to check
invariants and those functions are usually prefixed with `$__lldb`. When
those utility functions appear in the logs, the test incorrectly fails.
Commit: 82840c51a843ee3cf0f1480be618262465ca0bc2
https://github.com/llvm/llvm-project/commit/82840c51a843ee3cf0f1480be618262465ca0bc2
Author: Ryosuke Niwa <rniwa at webkit.org>
Date: 2026-05-29 (Fri, 29 May 2026)
Changed paths:
M clang/test/Analysis/Checkers/WebKit/nodelete-annotation.cpp
Log Message:
-----------
[analyzer][webkit][NFC] Add more tests for nodelete checker (#200357)
Add more test cases based on false negative we've seen in the past.
Commit: 2d411c58671de2e251a40ec89a20b828b7a25b27
https://github.com/llvm/llvm-project/commit/2d411c58671de2e251a40ec89a20b828b7a25b27
Author: Ryosuke Niwa <rniwa at webkit.org>
Date: 2026-05-29 (Fri, 29 May 2026)
Changed paths:
M clang/lib/StaticAnalyzer/Checkers/WebKit/PtrTypesSemantics.cpp
M clang/lib/StaticAnalyzer/Checkers/WebKit/RawPtrRefLocalVarsChecker.cpp
M clang/test/Analysis/Checkers/WebKit/unchecked-local-vars.cpp
M clang/test/Analysis/Checkers/WebKit/uncounted-local-vars.cpp
M clang/test/Analysis/Checkers/WebKit/unretained-local-vars-arc.mm
Log Message:
-----------
[alpha.webkit.UncountedLocalVarsChecker] Check uninitialized raw pointer. (#200309)
Emit a warning for a uninitialized local pointer variable.
Commit: 70b6c3419e997a6b84c0985a13cd56b24488666b
https://github.com/llvm/llvm-project/commit/70b6c3419e997a6b84c0985a13cd56b24488666b
Author: Joseph Huber <huberjn at outlook.com>
Date: 2026-05-29 (Fri, 29 May 2026)
Changed paths:
M flang-rt/cmake/modules/AddFlangRT.cmake
M flang/test/CMakeLists.txt
M llvm/runtimes/CMakeLists.txt
Log Message:
-----------
[Flang] Fix runtime module file dependency on tests (#200417)
Summary:
Ever since https://github.com/llvm/llvm-project/pull/171515 we now build
the moduel files in the runtime step. This is problematic because pretty
much all of the tests depend on them. The current dependency chain
doesn't work correctly because the dependencies are set much later.
This fix just adds a global property so that we can set these
out-of-order and sets that property to depend on all the runtime tests.
Flang now becomes the only test suite who depends on the runtimes like
this, every other project's test suite is hermetic. However, moving
pretty much every flang test to flang-rt isn't ideal. We can investigate
this in depth later but for now this fixes the build.
Commit: 3330752fa10ada656e3484c82bfa8fb702c69c4f
https://github.com/llvm/llvm-project/commit/3330752fa10ada656e3484c82bfa8fb702c69c4f
Author: Teresa Johnson <tejohnson at google.com>
Date: 2026-05-29 (Fri, 29 May 2026)
Changed paths:
M llvm/lib/Transforms/IPO/MemProfContextDisambiguation.cpp
A llvm/test/ThinLTO/X86/memprof-imported-alias-assert.ll
Log Message:
-----------
Fix MemProf imported alias handling after guid metadata changes (#200430)
After PR184065 was committed, memprof ThinLTO builds were failing on
imported aliases, which now have the original aliasee guid attached
as metadata (we import aliases as a copy of the aliasee body). In
distributed ThinLTO, unless also importing the aliasee symbol, we won't
have an entry in the summary for the aliasee guid. And we now don't have
a way to locate the alias summary, which caused some assumptions and
assertions to fail.
Work around this with a TODO to add a way to find the original alias
guid.
Commit: 2c5dca550ae7b86f213aa56a0c92c53a69257968
https://github.com/llvm/llvm-project/commit/2c5dca550ae7b86f213aa56a0c92c53a69257968
Author: Peter Collingbourne <pcc at google.com>
Date: 2026-05-29 (Fri, 29 May 2026)
Changed paths:
M llvm/docs/CommandGuide/llvm-objdump.rst
M llvm/test/tools/llvm-objdump/X86/disassemble-functions.test
M llvm/tools/llvm-objdump/ObjdumpOpts.td
M llvm/tools/llvm-objdump/llvm-objdump.cpp
Log Message:
-----------
llvm-objdump: Support --disassemble= option.
This is compatible with GNU, as well as being shorter and allowing users
to specify symbol names with commas in them.
Note that this is distinct from the existing --disassemble which has
existed for a long time and disassembles all symbols. This change adds
a near-alias for the existing LLVM-specific --disassemble-symbols=.
Reviewers: jh7370, MaskRay
Pull Request: https://github.com/llvm/llvm-project/pull/196594
Commit: 8918dd8b4dc646fa9707bbfedd4efe5116abe971
https://github.com/llvm/llvm-project/commit/8918dd8b4dc646fa9707bbfedd4efe5116abe971
Author: Michael Kruse <llvm-project at meinersbur.de>
Date: 2026-05-29 (Fri, 29 May 2026)
Changed paths:
M clang/test/Driver/freebsd.c
Log Message:
-----------
[Clang][test] Fix space in ld path (#200012)
The driver resolves the path to the linker ("ld") to the absolute path.
Microsoft Visual Studio comes with its own instance of `ld.lld` which it
installs under
"c:\\program files\\microsoft visual studio\\2022\\community\\vc\\tools\\llvm\\x64\\bin\\ld.lld.exe"
In the developer command prompt, this path is added to PATH where the
Clang driver finds it. However, this path does not match regular
expression `"{{[^" ]*}}ld{{[^" ]*}}"` used by the MIPS test because the
path contains spaces.
Fix the test failure by matching only the the trailing component after
`ld`. Matching the prefix of the path is unique to the MIPS test, this
is not done with tests for other platforms.
Commit: ddef3a893ae3af11ea3a47580379e1ee6512bff9
https://github.com/llvm/llvm-project/commit/ddef3a893ae3af11ea3a47580379e1ee6512bff9
Author: Peter Collingbourne <pcc at google.com>
Date: 2026-05-29 (Fri, 29 May 2026)
Changed paths:
M llvm/docs/LangRef.rst
Log Message:
-----------
LangRef: Clarify that unnamed_addr constants can be duplicated.
It has always been the intent that it was possible to duplicate
unnamed_addr constants, and LTO takes advantage of it. The current LangRef
wording allows it, but it was not explicitly spelled out, which led Clang
developers to add an optimization that assumed that it wasn't possible.
We are considering changing the semantics of unnamed_addr, but for now,
just make the current state explicit.
Reviewers:
teresajohnson, zygoloid, rjmccall, ChuanqiXu9, efriedma-quic, ojhunt
Pull Request: https://github.com/llvm/llvm-project/pull/199251
Commit: bd5c7247525f448b54fc18213ee1deb7b8aaa3b0
https://github.com/llvm/llvm-project/commit/bd5c7247525f448b54fc18213ee1deb7b8aaa3b0
Author: Erich Keane <ekeane at nvidia.com>
Date: 2026-05-29 (Fri, 29 May 2026)
Changed paths:
M clang/lib/CIR/CodeGen/CIRGenBuiltin.cpp
A clang/test/CIR/CodeGenBuiltins/builtin-sync_synchronize.c
Log Message:
-----------
[CIR] Implement __sync_synchronize builtin (#200423)
This showed up on a spec test, but is a very simple system-sequentially
consistent fence instruction.
Commit: a10ca8ed6454361b3889a9d5b41b97d065984648
https://github.com/llvm/llvm-project/commit/a10ca8ed6454361b3889a9d5b41b97d065984648
Author: Piotr Balcer <piotr.balcer at intel.com>
Date: 2026-05-29 (Fri, 29 May 2026)
Changed paths:
M llvm/include/llvm/Frontend/Offloading/Utility.h
M llvm/lib/Frontend/Offloading/Utility.cpp
M llvm/tools/llvm-gpu-loader/llvm-gpu-loader.cpp
M llvm/tools/llvm-gpu-loader/llvm-gpu-loader.h
M offload/include/Shared/APITypes.h
M offload/liboffload/API/Kernel.td
M offload/liboffload/src/OffloadImpl.cpp
M offload/plugins-nextgen/amdgpu/src/rtl.cpp
M offload/plugins-nextgen/common/src/PluginInterface.cpp
M offload/plugins-nextgen/cuda/src/rtl.cpp
M offload/plugins-nextgen/level_zero/dynamic_l0/L0DynWrapper.cpp
M offload/plugins-nextgen/level_zero/dynamic_l0/level_zero/ze_api.h
M offload/plugins-nextgen/level_zero/include/L0Kernel.h
M offload/plugins-nextgen/level_zero/src/L0Kernel.cpp
M offload/unittests/Conformance/include/mathtest/DeviceContext.hpp
M offload/unittests/Conformance/include/mathtest/Support.hpp
M offload/unittests/Conformance/lib/DeviceContext.cpp
M offload/unittests/OffloadAPI/device_code/CMakeLists.txt
A offload/unittests/OffloadAPI/device_code/composite.cpp
M offload/unittests/OffloadAPI/device_code/multiargs.cpp
M offload/unittests/OffloadAPI/event/olGetEventElapsedTime.cpp
M offload/unittests/OffloadAPI/kernel/olLaunchKernel.cpp
M offload/unittests/OffloadAPI/kernel/olLaunchKernelCooperative.cpp
M offload/unittests/OffloadAPI/memory/olMemcpy.cpp
M offload/unittests/OffloadAPI/queue/olLaunchHostFunction.cpp
M offload/unittests/OffloadAPI/queue/olWaitEvents.cpp
Log Message:
-----------
[offload] use argument pointer array in olLaunchKernel (#194333)
This PR changes olLaunchKernel to accept an array of pointers to
arguments:
```
void *ArgPtrs[] = {&A, &B, &C};
size_t ArgSizes[] = {sizeof(A), sizeof(B), sizeof(C)};
olLaunchKernel(Queue, Device, Kernel, &LaunchArgs, std::size(ArgPtrs), ArgPtrs, ArgSizes);
```
The newly proposed interface is implementable by existing and
anticipated
backends, is familiar to CUDA programmers, eliminates the extraneous
construction of a contiguous arguments buffer, replacing it with
constructing
an array of pointers, sidesteps the alignment requirements, does not
require reading program image metadata where it's impractical, and
enables
a compliant SYCL implementation to be built on top of it.
The ArgSizes array is required to support OpenCL, which does not have
native support for launching a kernel with an argument pointer array, or
a reliable way of retrieving argument sizes for a kernel.
## Mapping the proposed API to backends
CUDA and Level-Zero both support accepting an array of pointers to
kernel arguments, through `cuLaunchKernel`
(https://docs.nvidia.com/cuda/cuda-driver-api/group__CUDA__EXEC.html#group__CUDA__EXEC_1gb8f3dc3031b40da29d5f9a7139e52e15)
and `zeCommandListAppendLaunchKernelWithArguments`
(https://oneapi-src.github.io/level-zero-spec/level-zero/latest/core/api.html#zecommandlistappendlaunchkernelwitharguments)
respectively.
For OpenCL, which requires the kernel arguments to be set separately
from the kernel launch, a potential implementation can extract the
number of arguments from the OpenCL API, and then iterate over the
argument pointer and size arrays:
```
cl_uint num_args = 0;
cl_int err = clGetKernelInfo(kernel, CL_KERNEL_NUM_ARGS,
sizeof(num_args), &num_args, NULL);
for (cl_uint i = 0; i < num_args; ++i) {
clSetKernelArg(kernel, i, ArgSizes[i], ArgPtrs[i]);
}
```
The AMDGPU plugin needs to construct a contiguous buffer using the array
of argument pointers. To do this conversion, we need to have offsets
at which to place the arguments. Here, luckily, as mentioned before,
the AMD plugin already reads kernel metadata from the program image.
The implementation simply retrieves size and offset for each argument
from the kernel image, and then uses it to populate a buffer.
Commit: 36264ec6151880d0a55a98b73e48da729058b76e
https://github.com/llvm/llvm-project/commit/36264ec6151880d0a55a98b73e48da729058b76e
Author: Prasoon <prasoonkumar054 at gmail.com>
Date: 2026-05-29 (Fri, 29 May 2026)
Changed paths:
M llvm/utils/lit/lit/TestingConfig.py
Log Message:
-----------
[lit] Remove redundant f.close() in TestingConfig (#200459)
[This
commit](https://github.com/llvm/llvm-project/commit/5536348d060066e875c9bf9e056447ece59c783d)
moved the config file `open()` into a `with` context manager but left
the trailing `f.close()` call behind. Since the context manager already
closes the file, the call is redundant. It is also outside the `with`
block, so `f` is unbound on the `except OSError` path. This removes it.
No change in behavior.
Signed-off-by: Prasoon Kumar <prasoonkumar054 at gmail.com>
Commit: 91f3d8d7030ecf4c78307bc58917f6f5ec5cdfef
https://github.com/llvm/llvm-project/commit/91f3d8d7030ecf4c78307bc58917f6f5ec5cdfef
Author: Aiden Grossman <aidengrossman at google.com>
Date: 2026-05-29 (Fri, 29 May 2026)
Changed paths:
M llvm/docs/DeveloperPolicy.rst
Log Message:
-----------
[Docs] Fix build (#200467)
5047ae21b426452b3ee753574be45404d15111cb left out some whitespace that
is necessary for sphinx to work.
Commit: 3e3871d6fecdc4dfda0e0147979aea16a94bab54
https://github.com/llvm/llvm-project/commit/3e3871d6fecdc4dfda0e0147979aea16a94bab54
Author: joaosaffran <joaosaffranllvm at gmail.com>
Date: 2026-05-29 (Fri, 29 May 2026)
Changed paths:
M clang/lib/CodeGen/CGHLSLBuiltins.cpp
M clang/lib/Headers/hlsl/hlsl_intrinsics.h
M clang/lib/Sema/SemaHLSL.cpp
A clang/test/CodeGenHLSL/builtins/splitdouble_mat.hlsl
M clang/test/SemaHLSL/BuiltIns/asuint-errors.hlsl
M clang/test/SemaHLSL/BuiltIns/asuint_mat-errors.hlsl
M clang/test/SemaHLSL/BuiltIns/splitdouble-errors.hlsl
A llvm/test/CodeGen/DirectX/splitdouble_mat.ll
Log Message:
-----------
[HLSL] Adding matrix support to splitdouble (#200257)
This patch modifies existing splitdouble lowering to handle matrix
types.
Fix: https://github.com/llvm/llvm-project/issues/199069
Commit: 5945eacb934590c2a7091d73f53289e5dbcf2c40
https://github.com/llvm/llvm-project/commit/5945eacb934590c2a7091d73f53289e5dbcf2c40
Author: michaelselehov <michael.selehov at amd.com>
Date: 2026-05-29 (Fri, 29 May 2026)
Changed paths:
M libclc/test/math/cos.cl
Log Message:
-----------
[libclc][test] Update math/cos.cl check lines after #199981 revert (#200353)
The libclc lit test 'math/cos.cl' (introduced by #197151 with
auto-generated FileCheck assertions) started failing on the staging
buildbot after the revert in #199981 of the AMDGPU ABI coercion change
(#185083). The revert restores the older codegen path, which produces a
slightly different IR shape for the select instruction inside the cos()
implementation:
- the select's 'contract' fast-math flag is no longer present, and
- the result is named %.v.i.i instead of a numbered SSA temporary.
Regenerate the AMDGCN CHECK lines with
libclc/test/update_libclc_tests.py to reflect the post-revert IR. After
this change, all 10 libclc tests in check-libclc-amdgcn-amd-amdhsa-llvm
pass.
Note: running update_libclc_tests.py also produces a purely cosmetic
diff in math/rsqrt.cl (it renames a few FileCheck capture names like
META13 to META12 to match the actual metadata indices); those capture
renames are not required for the test to pass and are not included here
to keep the change minimal.
Co-authored-by: mselehov <mselehov at amd.com>
Commit: 3aed319af981c39a0988485135070399917ada56
https://github.com/llvm/llvm-project/commit/3aed319af981c39a0988485135070399917ada56
Author: Arseniy Obolenskiy <arseniy.obolenskiy at amd.com>
Date: 2026-05-29 (Fri, 29 May 2026)
Changed paths:
M llvm/lib/Target/SPIRV/SPIRVPrepareFunctions.cpp
A llvm/test/CodeGen/SPIRV/declarations-only-module.ll
Log Message:
-----------
[SPIR-V] Insert service function when module has only declarations (#199964)
A declarations-only module produces no `MachineFunction` at all,
`SPIRVModuleAnalysis` is freed before `AsmPrinter::doFinalization` and
`outputModuleSections` asserts in `getAnalysis<SPIRVModuleAnalysis>()`
which causes a failure
Commit: d5abd9c851e81accb1b743e3f12a6d7482c657ac
https://github.com/llvm/llvm-project/commit/d5abd9c851e81accb1b743e3f12a6d7482c657ac
Author: Aiden Grossman <aidengrossman at google.com>
Date: 2026-05-29 (Fri, 29 May 2026)
Changed paths:
M llvm/lib/CodeGen/ExpandIRInsts.cpp
Log Message:
-----------
[ExpandIRInsts] Avoid redundant dyn_cast after #175864 (#200475)
CreateCondBr always returns an Instruction, so no need to dyn_cast back
to an instruction after downcasting to a Value.
Commit: 6da24e4022f0cc6e97db939c1ea6df20dbb02ae6
https://github.com/llvm/llvm-project/commit/6da24e4022f0cc6e97db939c1ea6df20dbb02ae6
Author: Alexey Bader <alexey.bader at intel.com>
Date: 2026-05-29 (Fri, 29 May 2026)
Changed paths:
M clang/test/OffloadTools/clang-sycl-linker/basic.ll
A clang/test/OffloadTools/clang-sycl-linker/options.ll
M clang/tools/clang-sycl-linker/ClangSYCLLinker.cpp
Log Message:
-----------
[clang-sycl-linker] Improve --spirv-dump-device-code and harden CLI handling (#200096)
Several small fixes and improvements to `clang-sycl-linker`'s
command-line
handling, plus completing the `--spirv-dump-device-code` option:
- **`--version`**: now exits with `EXIT_SUCCESS` after printing, instead
of
falling through into the rest of `main`.
- **Empty input**: report a clear "No input files provided" error from
`getInput` rather than triggering an assertion deep inside
`linkDeviceCode`.
- **`--spirv-dump-device-code`**: previously parsed but ignored — now
actually
copies each generated `.spv` file into the requested directory. The
directory is created up-front (`mkdir -p` semantics) so a missing path
produces a friendly diagnostic instead of a low-level copy errno.
Co-Authored-By: Claude Sonnet 4.6 <noreply at anthropic.com>
Commit: 550f61f191e57660ce9a55da22304b736ff85606
https://github.com/llvm/llvm-project/commit/550f61f191e57660ce9a55da22304b736ff85606
Author: Justin Lebar <justin.lebar at gmail.com>
Date: 2026-05-29 (Fri, 29 May 2026)
Changed paths:
M llvm/lib/Transforms/Utils/SimplifyCFG.cpp
M llvm/test/Transforms/SimplifyCFG/merge-cond-stores.ll
Log Message:
-----------
[SimplifyCFG] Preserve atomicity when merging atomic conditional stores (#200327)
mergeConditionalStoreToAddress() merges two stores into one. It does
this for non-atomic and atomic-unordered stores, but when merging
unordered stores, it would downgrade them to non-atomic!
This bug isn't accessible from C because C doesn't expose unordered
atomics. But you can access it from e.g. Objective-C with something like
```
// repro.m — clang -fno-objc-arc -O2
__attribute__((objc_root_class))
@interface C { int _value; }
@property(atomic, direct) int value;
@end
@implementation C
@end
void f(C *obj, _Bool c1, _Bool c2, int v1, int v2) {
if (!obj) __builtin_unreachable();
if (c1) obj.value = v1;
if (c2) obj.value = v2;
}
```
LLVM merges these into a single store. The store is non-atomic without
this change.
This bug was found by a large run of Opus 4.7 looking for bugs in LLVM.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply at anthropic.com>
Commit: 43511b564751fa0231d012b8bda59b88915d5855
https://github.com/llvm/llvm-project/commit/43511b564751fa0231d012b8bda59b88915d5855
Author: adams381 <adams at nvidia.com>
Date: 2026-05-29 (Fri, 29 May 2026)
Changed paths:
M clang/lib/CIR/Dialect/Transforms/TargetLowering/CIRABIRewriteContext.cpp
A clang/test/CIR/Transforms/abi-lowering/extend-after-ignore.cir
A clang/test/CIR/Transforms/abi-lowering/extend-return.cir
A clang/test/CIR/Transforms/abi-lowering/extend-signed-arg.cir
A clang/test/CIR/Transforms/abi-lowering/extend-unsigned-arg.cir
Log Message:
-----------
[CIR] Add Extend (signext/zeroext) handling to CallConvLowering (#195745)
Third PR in the series splitting
[#192119](https://github.com/llvm/llvm-project/pull/192119) /
[#192124](https://github.com/llvm/llvm-project/pull/192124).
[#195725](https://github.com/llvm/llvm-project/pull/195725) and
[#195737](https://github.com/llvm/llvm-project/pull/195737) have merged;
this PR is now a standalone diff on main.
Adds Extend (signext / zeroext) to `cir-call-conv-lowering`. The CIR
signature keeps the original narrow integer type; the rewriter attaches
`llvm.signext` / `llvm.zeroext` to `arg_attrs` and `res_attrs`. That
matches classic Clang's LLVM IR convention — `define void @f(i8 signext
%x)`, not `define void @f(i32 signext %x)` with an entry-block
truncation. The `coercedType` field on an Extend `ArgClassification` is
informational only; the rewriter doesn't use it to change the CIR
signature.
Three `.cir` tests cover narrow-signed-arg, narrow-unsigned-arg, and
narrow-signed-return. Since the test target's narrow-int Extend rule
fires only on MLIR `IntegerType` and CIR functions use `cir::IntType`,
these tests drive the rewriter through the classification-injection path
added in [#195725](https://github.com/llvm/llvm-project/pull/195725).
Commit: 352fd0bd9b8ee5f89ec1fe508d5aa35525cd94e9
https://github.com/llvm/llvm-project/commit/352fd0bd9b8ee5f89ec1fe508d5aa35525cd94e9
Author: Dave Lee <davelee.com at gmail.com>
Date: 2026-05-29 (Fri, 29 May 2026)
Changed paths:
M lldb/packages/Python/lldbsuite/test/make/Makefile.rules
Log Message:
-----------
[lldb][test] Link test binaries with -random_uuid (#199385)
Link using `-random_uuid` on macOS to avoid accidental UUID matching in tests.
Commit: a20c21b8bedc0492ea7f78e5bc72b805d47b0520
https://github.com/llvm/llvm-project/commit/a20c21b8bedc0492ea7f78e5bc72b805d47b0520
Author: Zibi Sarbinowski <zibi at ca.ibm.com>
Date: 2026-05-29 (Fri, 29 May 2026)
Changed paths:
M clang/include/clang/Basic/Attr.td
M clang/include/clang/Basic/AttrDocs.td
M clang/test/SemaCXX/init-priority-attr.cpp
Log Message:
-----------
[clang] Enable GNU __attribute__((init_priority(...))) on z/OS. (#199573)
Enable `init_priority` on z/OS
Motivation
The recent addition of `clang/test/Sema/type-dependent-attrs.cpp` in
https://github.com/llvm/llvm-project/pull/182208 started failing on
z/OS. That test uses `[[gnu::init_priority(2000)]]`, and the failure
exposed that init_priority support was still disabled for z/OS in
`Attr.td`.
What changed
- Enabled init_priority for z/OS in `clang/include/clang/Basic/Attr.td`
- Updated `clang/test/SemaCXX/init-priority-attr.cpp` so z/OS now
expects normal semantic handling for init_priority
This reverts commit 2c7e24c4b6893a93ddb2b2cca91eaf5bf7956965 and
preserve any changes done after this commit.
Commit: 6a96948271810324d02b23d31a83bc2166f4c787
https://github.com/llvm/llvm-project/commit/6a96948271810324d02b23d31a83bc2166f4c787
Author: lntue <lntue at google.com>
Date: 2026-05-29 (Fri, 29 May 2026)
Changed paths:
M libc/src/__support/FPUtil/x86_64/sqrt.h
Log Message:
-----------
[libc] Fix SSE2 check for x86_64/sqrt.h. (#200468)
Commit: 0fc5d0ab0cea3afe32592f24af17b5d7e02c9dfe
https://github.com/llvm/llvm-project/commit/0fc5d0ab0cea3afe32592f24af17b5d7e02c9dfe
Author: Fei Peng <feip at nvidia.com>
Date: 2026-05-29 (Fri, 29 May 2026)
Changed paths:
M llvm/docs/LangRef.rst
M llvm/include/llvm/IR/FixedMetadataKinds.def
M llvm/lib/IR/Instruction.cpp
M llvm/lib/IR/Verifier.cpp
M llvm/lib/Transforms/Utils/Local.cpp
M llvm/test/Bitcode/compatibility.ll
M llvm/test/Transforms/GVN/metadata.ll
M llvm/test/Transforms/InstCombine/loadstore-metadata.ll
M llvm/test/Transforms/SimplifyCFG/hoist-with-metadata.ll
A llvm/test/Verifier/mem-cache-hint.ll
Log Message:
-----------
[IR] Introduce `mem.cache_hint` metadata for composable memory cache control hints (#181612)
Add target-agnostic infrastructure for the !mem.cache_hint metadata
kind,
https://discourse.llvm.org/t/rfc-composable-and-extensible-memory-cache-control-hints-in-llvm-ir/89443
This patch includes:
- Registration of mem.cache_hint in FixedMetadataKinds
- IR Verifier validation of structural constraints
- Metadata helper support in combineMetadata(), copyMetadataForLoad(),
and dropUBImplyingAttrsAndMetadata()
- LangRef documentation for the metadata format and semantics
- Verifier and transform pass test coverage (GVN, InstCombine,
SimplifyCFG)
Co-authored-by: Yonah Goldberg <ygoldberg at nvidia.com>
Assisted-by: Claude Code
---------
Co-authored-by: Yonah Goldberg <ygoldberg at nvidia.com>
Commit: e04dbbf194773f2c70b6df9ffcfad25a493b3b45
https://github.com/llvm/llvm-project/commit/e04dbbf194773f2c70b6df9ffcfad25a493b3b45
Author: lntue <lntue at google.com>
Date: 2026-05-29 (Fri, 29 May 2026)
Changed paths:
M utils/bazel/llvm-project-overlay/libc/BUILD.bazel
Log Message:
-----------
[libc][bazel] Add arm and riscv FEnvImpl.h to textual_hdrs. (#200479)
Commit: 02997d75928b23a3e84cce8f30418599ba12b5c0
https://github.com/llvm/llvm-project/commit/02997d75928b23a3e84cce8f30418599ba12b5c0
Author: Ramkumar Ramachandra <artagnon at tenstorrent.com>
Date: 2026-05-29 (Fri, 29 May 2026)
Changed paths:
M llvm/include/llvm/IR/Instruction.h
M llvm/lib/Analysis/ValueTracking.cpp
M llvm/lib/CodeGen/ExpandReductions.cpp
M llvm/lib/CodeGen/ExpandVectorPredication.cpp
M llvm/lib/IR/Instruction.cpp
M llvm/tools/llubi/lib/Interpreter.cpp
Log Message:
-----------
[IR] Introduce Instruction::getFastMathFlagsOrNone (NFC) (#200457)
Commit: d337e680ba320b3c641f043f3b17fe79c12846f9
https://github.com/llvm/llvm-project/commit/d337e680ba320b3c641f043f3b17fe79c12846f9
Author: Helena Kotas <hekotas at microsoft.com>
Date: 2026-05-29 (Fri, 29 May 2026)
Changed paths:
R llvm/test/CodeGen/DirectX/Metadata/cbuffer-layouttype.ll
Log Message:
-----------
[DirectX] Remove obsolete cbuffer layout test (#200307)
This test uses outdated `cbuffer` layout design. It has been replaced by
`cbuffer-metadata.ll` when we updated the frontend to use explicit
padding for `cbuffer` data types.
Commit: c9cdbc4a30b83b8a8d100c19c4aba16c848b9dfb
https://github.com/llvm/llvm-project/commit/c9cdbc4a30b83b8a8d100c19c4aba16c848b9dfb
Author: Christopher Ferris <cferris1000 at users.noreply.github.com>
Date: 2026-05-29 (Fri, 29 May 2026)
Changed paths:
M compiler-rt/lib/scudo/standalone/primary64.h
M compiler-rt/lib/scudo/standalone/tests/primary_test.cpp
Log Message:
-----------
[scudo] Improve performance of pushBlocks sort. (#200297)
Ran this on an Android device using both algorithms, the new algorithm
is on average 10% faster, but gets to be 15% faster in some cases. This
is an example of the speed-ups.
Average Operation Time Maximum Operation Time Name
326.9(ns) 80770(ns) PushBlocks New
365.9(ns) 108032(ns) PushBlocks Old
Commit: 9b4e2dc291777db06af2e1a425906dd1e1cf8ffb
https://github.com/llvm/llvm-project/commit/9b4e2dc291777db06af2e1a425906dd1e1cf8ffb
Author: SunilKuravinakop <98882378+SunilKuravinakop at users.noreply.github.com>
Date: 2026-05-29 (Fri, 29 May 2026)
Changed paths:
M flang/lib/Lower/OpenMP/Atomic.cpp
M flang/lib/Semantics/check-omp-atomic.cpp
A flang/test/Integration/OpenMP/atomic-capture-release.f90
M flang/test/Integration/OpenMP/atomic-compare.f90
A flang/test/Lower/OpenMP/atomic-mem-order-transform.f90
M flang/test/Lower/OpenMP/atomic-requires-conflict-v50-3.f90
M flang/test/Lower/OpenMP/atomic-requires-conflict-v50-4.f90
M flang/test/Lower/OpenMP/requires-admo-acqrel.f90
A flang/test/Semantics/OpenMP/atomic-mem-order.f90
M flang/test/Semantics/OpenMP/atomic01.f90
M llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp
M mlir/lib/Dialect/OpenMP/IR/OpenMPDialect.cpp
M mlir/test/Dialect/OpenMP/invalid.mlir
Log Message:
-----------
[Flang][OpenMP]Handling restrictions of using Memory-Order-Clause with Atomic-Clause (#199636)
Adhering to the restrictions of using Memory-Order-Clause with
Atomic-Clause.
Added warnings to indicate the transformations that will done internally
in flang.
In the process of handling all the restrictions of using
memory-order-clause This also Fixes
[#199490](https://github.com/llvm/llvm-project/issues/199490)
---------
Co-authored-by: Sunil Kuravinakop <kuravina at pe31.hpc.amslabs.hpecorp.net>
Commit: f8545bed74159326ee0e62637943f57c10a216c9
https://github.com/llvm/llvm-project/commit/f8545bed74159326ee0e62637943f57c10a216c9
Author: Erich Keane <ekeane at nvidia.com>
Date: 2026-05-29 (Fri, 29 May 2026)
Changed paths:
M clang/lib/CIR/CodeGen/CIRGenExprAggregate.cpp
M clang/test/CIR/CodeGen/paren-list-agg-init.cpp
Log Message:
-----------
[CIR] Implement cleanups of base classes for aggregates. (#200473)
This is a very simple implementation, we just make sure we add the base
class destructor to the cleanup scope.
Commit: 4e8c14df16a7758ce5f471cfed200ad0e02847a0
https://github.com/llvm/llvm-project/commit/4e8c14df16a7758ce5f471cfed200ad0e02847a0
Author: Justin Lebar <justin.lebar at gmail.com>
Date: 2026-05-29 (Fri, 29 May 2026)
Changed paths:
M llvm/lib/CodeGen/ExpandIRInsts.cpp
M llvm/test/CodeGen/AArch64/fcvt-i256.ll
M llvm/test/Transforms/ExpandIRInsts/X86/expand-large-fp-convert-fpto-sat-vector.ll
Log Message:
-----------
[ExpandIRInsts] Fix e.g. fptoui.sat.f32.i256's handling of inf (#200261)
When expanding fptoui.sat/fptosi.sat, we saturate when the biased
exponent is at least ExponentBias + BitWidth - IsSigned, the point where
the value no longer fits in the target integer.
We should *also* always saturate when the floating-point value is
+/-inf. Usually this doesn't require any special handling; for example
for a float32 -> int32 conversion, inf has a biased exponent of 255 >
ExponentBias + BitWidth - IsSigned = 127 + 32 - 1.
But for integer types which are large enough to contain all source
floating-point values, this doesn't work. For example, if you're
converting float32 to int256, you'd compute a threshold of 383, which is
greater than 255. Therefore float32(inf) would not correctly saturate
to INT256_MAX.
Fix this by clamping the threshold to the all-ones biased exponent.
This bug was found by a large run of Opus 4.7 looking for bugs in LLVM.
Commit: 9b6611986828eebaf521a7a29414cdf3ca770b22
https://github.com/llvm/llvm-project/commit/9b6611986828eebaf521a7a29414cdf3ca770b22
Author: Joshua Batista <jbatista at microsoft.com>
Date: 2026-05-29 (Fri, 29 May 2026)
Changed paths:
A llvm/test/tools/obj2yaml/DXContainer/ShaderFlagsSM68.yaml
Log Message:
-----------
Add yamlobj roundtrip tests for SM 6.8 features (#198403)
This PR adds DXContainer tests for Shader Model 6.8 features;
SampleCmpGradientOrBias and ExtendedCommandInfo.
Assisted by: Github Copilot
Fixes https://github.com/llvm/llvm-project/issues/83177
Commit: 59eb19d0c061f4458b299dcbda242a90c4263689
https://github.com/llvm/llvm-project/commit/59eb19d0c061f4458b299dcbda242a90c4263689
Author: Ramkumar Ramachandra <artagnon at tenstorrent.com>
Date: 2026-05-29 (Fri, 29 May 2026)
Changed paths:
M llvm/include/llvm/Analysis/InstructionSimplify.h
M llvm/lib/Analysis/InstructionSimplify.cpp
Log Message:
-----------
[InstSimplify] Expose simplifyUnaryIntrinsic (NFC) (#200444)
With the eventual goal of supporting unary intrinsics in the
constant-folder.
Commit: 5d6ed5365c0fd3909b2a83be659f23738a2d1d59
https://github.com/llvm/llvm-project/commit/5d6ed5365c0fd3909b2a83be659f23738a2d1d59
Author: Eugene Epshteyn <eepshteyn at nvidia.com>
Date: 2026-05-29 (Fri, 29 May 2026)
Changed paths:
M flang/docs/Extensions.md
Log Message:
-----------
[flang][docs] Documented IS_CONTIGUOUS() extension for constant arrays (#200451)
Flang considers constant objects or subobjects of constant objects as
contiguous even in cases, where the other compilers may consider them
non-contiguous. Documented the extension.
Fixes #199878
Commit: ee872666e2881119b66b137c590a59eeace22996
https://github.com/llvm/llvm-project/commit/ee872666e2881119b66b137c590a59eeace22996
Author: Florian Hahn <flo at fhahn.com>
Date: 2026-05-29 (Fri, 29 May 2026)
Changed paths:
M llvm/include/llvm/Analysis/ScalarEvolution.h
M llvm/include/llvm/Transforms/Utils/ScalarEvolutionExpander.h
M llvm/lib/Transforms/Utils/ScalarEvolutionExpander.cpp
M llvm/lib/Transforms/Vectorize/LoopVectorizationPlanner.h
M llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
M llvm/lib/Transforms/Vectorize/VPlanConstruction.cpp
M llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
M llvm/lib/Transforms/Vectorize/VPlanTransforms.h
M llvm/lib/Transforms/Vectorize/VPlanUtils.cpp
M llvm/lib/Transforms/Vectorize/VPlanUtils.h
M llvm/test/Transforms/LoopVectorize/AArch64/sve-vscale-based-trip-counts.ll
M llvm/test/Transforms/LoopVectorize/AArch64/vector-loop-backedge-elimination-epilogue.ll
M llvm/test/Transforms/LoopVectorize/VPlan/vplan-printing.ll
M llvm/test/Transforms/LoopVectorize/float-induction.ll
M llvm/test/Transforms/LoopVectorize/if-reduction.ll
M llvm/test/Transforms/LoopVectorize/induction-step.ll
M llvm/test/Transforms/LoopVectorize/pointer-induction.ll
M llvm/test/Transforms/LoopVectorize/pr31190.ll
Log Message:
-----------
[VPlan] Expand VPExpandSCEVRecipes to VPInstructions before CSE. (#197643)
Add expandSCEVExpressions transform that converts VPExpandSCEVRecipes
to VPInstructions where possible, running before CSE so duplicates with
other SCEV expansions (e.g., from addMinimumIterationCheck) are
eliminated. This also reuses existing loop-invariant IR values via
ScalarEvolution::getSCEVValues to avoid redundant computation.
Currently limited to SCEVMulExpr (along with constants, unknowns, and
vscale). Support for SCEVAddExpr and SCEVUDivExpr will follow in
subsequent patches.
Depends on https://github.com/llvm/llvm-project/pull/189455
PR: https://github.com/llvm/llvm-project/pull/197643
Commit: 0ed795a70b9df40d08a08e70acb889eaba5f8713
https://github.com/llvm/llvm-project/commit/0ed795a70b9df40d08a08e70acb889eaba5f8713
Author: Reid Kleckner <rnk at llvm.org>
Date: 2026-05-29 (Fri, 29 May 2026)
Changed paths:
M clang/docs/ghlinks.py
Log Message:
-----------
[docs] Rewrite the ghlink Sphinx plugin to use doctree (#199076)
Previously we did a simple reST-based textual rewrite during the
source-read Sphinx phase. This did the wrong thing for markdown sources,
and would rewrite #GH123 in escaped code blocks.
The new implementations does a DFS walk over the doctree AST and does
targetted replacements in text nodes matching the pattern. This makes it
more accurate and portable between markup languages.
This does renumber the #idN anchors that refer back to the table of
contents because inline reST links consume internal id numbers. However,
the #id numbers aren't stable, they change any time we add a new
heading, so I don't see this as a blocker.
An LLM did the first draft of the script, and I tuned it up from there.
Commit: 4ac26f45fa8f5c58a90effb903808cb0e908cf1c
https://github.com/llvm/llvm-project/commit/4ac26f45fa8f5c58a90effb903808cb0e908cf1c
Author: Justin Bogner <mail at justinbogner.com>
Date: 2026-05-29 (Fri, 29 May 2026)
Changed paths:
M llvm/test/CodeGen/DirectX/firstbitlow_error.ll
M llvm/test/CodeGen/DirectX/firstbitshigh_error.ll
M llvm/test/CodeGen/DirectX/firstbituhigh_error.ll
M llvm/test/CodeGen/DirectX/saturate_errors.ll
Log Message:
-----------
[DirectX] Update checks for more precise error messages (#200491)
We've improved these error messages in #199217, update the tests for the
DirectX backend.
Commit: 3a2b697fc101f8c9e1d59307e7936ecc1f99d308
https://github.com/llvm/llvm-project/commit/3a2b697fc101f8c9e1d59307e7936ecc1f99d308
Author: Ramkumar Ramachandra <artagnon at tenstorrent.com>
Date: 2026-05-29 (Fri, 29 May 2026)
Changed paths:
M llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
Log Message:
-----------
[VPlan] Check type in collectGroupedReplicateMemOps (NFC) (#192781)
collectGroupedReplicateMemOps is currently not reusable, because it
groups memory operations by the address SCEV, ignoring the load-store
type. Fix this by factoring the check from
collectComplementaryPredicatedMemOps.
Commit: 61d17f0e69cd2cbee77a5bddac2abcfeaf0e4458
https://github.com/llvm/llvm-project/commit/61d17f0e69cd2cbee77a5bddac2abcfeaf0e4458
Author: Johannes Doerfert <jdoerfert.llvm at gmail.com>
Date: 2026-05-29 (Fri, 29 May 2026)
Changed paths:
M llvm/lib/Target/NVPTX/NVPTXLowerAggrCopies.cpp
A llvm/test/CodeGen/NVPTX/lower-aggr-copies-shared.ll
Log Message:
-----------
[NVPTX][FIX] Ensure memmove are kept if not lowered to loops (#200469)
Memmove lowering can fail, so we cannot unconditionally remove the
intrinsic.
Issue found by Robert Imschweiler <robert.imschweiler at amd.com>
Commit: 37732ab65726a6ba1e06435ad2aaabf267dcceff
https://github.com/llvm/llvm-project/commit/37732ab65726a6ba1e06435ad2aaabf267dcceff
Author: Joseph Huber <huberjn at outlook.com>
Date: 2026-05-29 (Fri, 29 May 2026)
Changed paths:
M offload/libomptarget/interface.cpp
Log Message:
-----------
[OpenMP] Fix RPC register segfaulting without PM initialized (#200494)
Summary:
This happens in practice if you link libomptarget without initializing
it in the Flang RPC IO handling.
Commit: 60290059386b267e52c2e0dbb37867ce546f3788
https://github.com/llvm/llvm-project/commit/60290059386b267e52c2e0dbb37867ce546f3788
Author: Jan Svoboda <jan_svoboda at apple.com>
Date: 2026-05-29 (Fri, 29 May 2026)
Changed paths:
M clang/include/clang/DependencyScanning/DependencyScanningFilesystem.h
M clang/include/clang/DependencyScanning/DependencyScanningService.h
M clang/lib/DependencyScanning/DependencyScannerImpl.cpp
M clang/lib/DependencyScanning/DependencyScanningFilesystem.cpp
M clang/lib/DependencyScanning/DependencyScanningService.cpp
M clang/lib/DependencyScanning/DependencyScanningWorker.cpp
M clang/tools/clang-scan-deps/ClangScanDeps.cpp
M clang/tools/clang-scan-deps/Opts.td
M clang/unittests/DependencyScanning/DependencyScanningFilesystemTest.cpp
Log Message:
-----------
[clang][scan-deps] Add option to disable caching stat failures (#200484)
While the source code isn't supposed to change during a build, in some
environments it does. This adds an option that disables caching of stat
failures, meaning that source files can be added to the build during
scanning.
This adds a `-no-cache-negative-stats` option to clang-scan-deps to
enable this behavior. There are no tests for clang-scan-deps as there's
no reliable way to do so from it. A unit test has been added that
modifies the filesystem between scans to test it.
Co-authored-by: Michael Spencer <bigcheesegs at gmail.com>
Commit: 0f8a64fb33efa81d07ace7489f99eb9bc66e5ccc
https://github.com/llvm/llvm-project/commit/0f8a64fb33efa81d07ace7489f99eb9bc66e5ccc
Author: Justin Lebar <justin.lebar at gmail.com>
Date: 2026-05-29 (Fri, 29 May 2026)
Changed paths:
M llvm/lib/CodeGen/AtomicExpandPass.cpp
M llvm/test/Transforms/AtomicExpand/X86/expand-atomic-non-integer.ll
Log Message:
-----------
[AtomicExpand] Preserve flags expanding loads/stores to cmpxchg/atomicrmw (#200324)
Don't drop volatile and syncscope flags.
Commit: 03d8fa70398db82a962de9368622add69e26e805
https://github.com/llvm/llvm-project/commit/03d8fa70398db82a962de9368622add69e26e805
Author: veera <veera at efficient.computer>
Date: 2026-05-29 (Fri, 29 May 2026)
Changed paths:
M mlir/lib/Dialect/Arith/Transforms/EmulateWideInt.cpp
M mlir/test/Dialect/Arith/emulate-wide-int.mlir
Log Message:
-----------
[MLIR][Arith][WIE] Fix Conversions for Shift Left and Right Ops (#198457)
The current conversions for `arith.shli`, `arith.shrui` and
`arith.shrsi` does not handle shift by zero correctly. It tries to shift
a `iN` value by N and results in a poison value.
This PR fixes it by adopting the math used by RISCV backend to lower 64
bit shift operations for 32 bit targets. This implementation uses less
number of ops than the existing one.
Negative proofs for current implementation:
shli: https://alive2.llvm.org/ce/z/_Q8ZuC
shrui: https://alive2.llvm.org/ce/z/vDZeEV
shrsi: https://alive2.llvm.org/ce/z/vZVatx
Proofs for attempted fix in this PR:
shli: https://alive2.llvm.org/ce/z/SDJJXW
shrui: https://alive2.llvm.org/ce/z/FZcP5y
shrsi: https://alive2.llvm.org/ce/z/5nk86z
Commit: 02cf363d17487378d0a2a89e1e95738d0945ab4c
https://github.com/llvm/llvm-project/commit/02cf363d17487378d0a2a89e1e95738d0945ab4c
Author: Erick Velez <erickvelez7 at gmail.com>
Date: 2026-05-29 (Fri, 29 May 2026)
Changed paths:
M clang-tools-extra/clang-doc/JSONGenerator.cpp
M clang-tools-extra/clang-doc/assets/namespace-template.mustache
M clang-tools-extra/test/clang-doc/json/class-specialization.cpp
Log Message:
-----------
[clang-doc] Add specialization info to record references (#191252)
Class specializations listed in a namespace's page had the problem of
being indistinguishable from each other since they couldn't display
their template arguments. They would just be displayed as a series of
the base
template's name. Now, we can display those arguments in HTML
for a better experience.
In JSONGenerator, we query the set of Infos to find the Reference's
corresponding RecordInfo. That requires keeping a pointer to the map in
JSONGenerator.
Fixes #181771
Commit: 50ed21d39c0d0ca6d8ae4f7beed5f70d7e7f7343
https://github.com/llvm/llvm-project/commit/50ed21d39c0d0ca6d8ae4f7beed5f70d7e7f7343
Author: Andy Kaylor <akaylor at nvidia.com>
Date: 2026-05-29 (Fri, 29 May 2026)
Changed paths:
M clang/include/clang/CIR/MissingFeatures.h
M clang/lib/CIR/CodeGen/CIRGenFunction.cpp
M clang/lib/CIR/CodeGen/CIRGenStmt.cpp
M clang/test/CIR/CodeGen/loop-cond-cleanup.cpp
Log Message:
-----------
[CIR] Add RunCleanupsScope RAII around loop bodies (#200461)
This fixes yet another problem where a ternary operator in a loop body
was leading to an unterminated region. We have long had a comment
suggesting that we should consider loop-specific cleanup handling to
mimic the cleanup exit block that classic codegen creates. I previously
believed that wasn't really necessary because CIR's structured
representation handles branching through cleanups during later lowering.
That's true, but not having something to trigger the cleanup stack
handling when we exit the loop's body region was causing us to miss
emitting a yield after the loop operation.
This change introduces the RAII object for cleanups. This also allows me
to remove some handling in LexicalScope::cleanup that was basically
there to smooth over terminator insertion problems.
Assisted-by: Cursor / claude-opus-4.7
Commit: 34da785839f7ddabfa735655d1c6e45c7f85b353
https://github.com/llvm/llvm-project/commit/34da785839f7ddabfa735655d1c6e45c7f85b353
Author: Mehdi Amini <joker.eph at gmail.com>
Date: 2026-05-30 (Sat, 30 May 2026)
Changed paths:
M mlir/lib/Dialect/Vector/Transforms/VectorEmulateNarrowType.cpp
M mlir/test/Dialect/Vector/flatten-memref-and-emulate-narrow-types.mlir
A mlir/test/Dialect/Vector/vector-emulate-narrow-type-unaligned-dynamic-store.mlir
M mlir/test/Dialect/Vector/vector-emulate-narrow-type-unaligned.mlir
M mlir/test/Dialect/Vector/vector-emulate-narrow-type.mlir
Log Message:
-----------
[mlir][vector] Fix incorrect byte-alignment assumption in ConvertVectorStore (#189235)
When `ConvertVectorStore` emits the narrow-type emulation for a
`vector.store` into a 2-D memref, it previously assumed that if the
trailing dimension of the memref exactly matches the vector size
(`trailingDimsMatch`), then the last-dimension index must be zero and no
sub-byte alignment adjustment is needed. This assumption is wrong: a
valid store such as
vector.store %v, %src[%c0, %c1] : memref<3x4xi2>, vector<4xi2>
has a non-zero column index (%c1 == 1) even though trailingDim (4)
equals the vector size (4). The incorrect shortcut caused the pattern to
fall into the "aligned" path and emit a plain bitcast + store at byte
offset 0, silently dropping elements [1], [2], [3] of the first byte and
overwriting the wrong memory.
Fix: use `linearizedInfo.intraDataOffset` when it can be folded, so
constant non-zero offsets emit the required partial RMW stores. If the
offset is dynamic, reject the generic unaligned lowering instead of
assuming byte alignment; callers that can guarantee container-element
alignment should use the existing `assumeAligned` path.
The regression coverage includes the original constant-index case,
dynamic unaligned stores that now fail legalization, and existing
dynamic-row cases where the low-order offset is provably aligned.
Fixes #131528
Assisted-by: Claude Code
Assisted-by: Codex
Commit: 9b5d0af42f8d5f10f6ca566eeebf162dc22abe7b
https://github.com/llvm/llvm-project/commit/9b5d0af42f8d5f10f6ca566eeebf162dc22abe7b
Author: Dave Lee <davelee.com at gmail.com>
Date: 2026-05-29 (Fri, 29 May 2026)
Changed paths:
M lldb/include/lldb/Core/DemangledNameInfo.h
Log Message:
-----------
[lldb] Halve the size of indexes in DemangledNameInfo (NFC) (#200506)
Mangled should not be more than 4GB. This will halve the size of
`DemangledNameInfo` from 128 to 64 bytes.
Commit: f958f1716fe3dc61a48f1d53a98e38a3be5791ff
https://github.com/llvm/llvm-project/commit/f958f1716fe3dc61a48f1d53a98e38a3be5791ff
Author: veera <veera at efficient.computer>
Date: 2026-05-29 (Fri, 29 May 2026)
Changed paths:
M mlir/lib/Dialect/Arith/Transforms/EmulateWideInt.cpp
M mlir/test/Dialect/Arith/emulate-wide-int.mlir
Log Message:
-----------
Revert "[MLIR][Arith][WIE] Fix Conversions for Shift Left and Right Ops" (#200512)
Reverts llvm/llvm-project#198457 since there are buildbot failures.
Commit: 3d24f9acc92bc3288efa8e17eee6ae41d694677f
https://github.com/llvm/llvm-project/commit/3d24f9acc92bc3288efa8e17eee6ae41d694677f
Author: satyanarayana reddy janga <satyajanga at fb.com>
Date: 2026-05-29 (Fri, 29 May 2026)
Changed paths:
M lldb/docs/resources/lldbgdbremote.md
M lldb/include/lldb/Host/common/NativeProcessProtocol.h
A lldb/include/lldb/Utility/AcceleratorGDBRemotePackets.h
M lldb/include/lldb/Utility/GDBRemote.h
M lldb/include/lldb/Utility/StringExtractorGDBRemote.h
M lldb/packages/Python/lldbsuite/test/tools/lldb-server/gdbremote_testcase.py
M lldb/source/Plugins/Process/gdb-remote/CMakeLists.txt
M lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerLLGS.cpp
M lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerLLGS.h
A lldb/source/Plugins/Process/gdb-remote/LLDBServerAcceleratorPlugin.cpp
A lldb/source/Plugins/Process/gdb-remote/LLDBServerAcceleratorPlugin.h
A lldb/source/Utility/AcceleratorGDBRemotePackets.cpp
M lldb/source/Utility/CMakeLists.txt
M lldb/source/Utility/StringExtractorGDBRemote.cpp
A lldb/test/API/accelerator/mock/Makefile
A lldb/test/API/accelerator/mock/TestMockAcceleratorPlugin.py
A lldb/test/API/accelerator/mock/main.c
M lldb/test/API/lit.site.cfg.py.in
M lldb/test/CMakeLists.txt
M lldb/tools/lldb-server/CMakeLists.txt
A lldb/tools/lldb-server/Plugins/Accelerator/CMakeLists.txt
A lldb/tools/lldb-server/Plugins/Accelerator/Mock/CMakeLists.txt
A lldb/tools/lldb-server/Plugins/Accelerator/Mock/LLDBServerMockAcceleratorPlugin.cpp
A lldb/tools/lldb-server/Plugins/Accelerator/Mock/LLDBServerMockAcceleratorPlugin.h
A lldb/tools/lldb-server/Plugins/CMakeLists.txt
M lldb/tools/lldb-server/lldb-gdbserver.cpp
M lldb/utils/lldb-dotest/CMakeLists.txt
M lldb/utils/lldb-dotest/lldb-dotest.in
Log Message:
-----------
[lldb-server] Add accelerator plugin infrastructure for debugging hardware accelerators like gpus (#198907)
This is the first patch of many related to
https://discourse.llvm.org/t/upstreaming-basic-support-for-accelerators/89827/6
### What this patch adds
- **`LLDBServerAcceleratorPlugin`** base class in
`source/Plugins/Process/gdb-remote/` so accelerator can implement the
own plugin
- **`accelerator-plugins+`** feature in `qSupported` response, only
advertised when at least one plugin is installed
- **`jAcceleratorPluginInitialize`** GDB remote packet and its
implementation in handlers, request and response.
- **`AcceleratorActions`** struct so every plugin can return the actions
that needs to be on the initilaize. in the future we will extend this
install breakpoints etc.
- **Mock accelerator plugin** for testing, gated by CMake option
`LLDB_ENABLE_MOCK_ACCELERATOR_PLUGIN` (default OFF)
- **Tests** that connect to a real lldb-server, verify
`accelerator-plugins+` in `qSupported`, send
`jAcceleratorPluginInitialize`, and validate the JSON response
### Design decisions
- CMake option defaults to OFF so normal builds are unaffected
- Tests skip automatically when the plugin is not compiled in
Commit: f976a1d67108d7324844635a580fc4d30e554b02
https://github.com/llvm/llvm-project/commit/f976a1d67108d7324844635a580fc4d30e554b02
Author: Ramkumar Ramachandra <artagnon at tenstorrent.com>
Date: 2026-05-29 (Fri, 29 May 2026)
Changed paths:
M llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
Log Message:
-----------
[VPlan] Squelch unused warn in collectMemOps (NFC) (#200507)
Squelch a warning reported by a Buildbot:
https://lab.llvm.org/buildbot/#/builders/228/builds/477.
Commit: 7565961d1906df86b87c41b84a2beffc9e0a4b21
https://github.com/llvm/llvm-project/commit/7565961d1906df86b87c41b84a2beffc9e0a4b21
Author: Tom Stellard <tstellar at redhat.com>
Date: 2026-05-29 (Fri, 29 May 2026)
Changed paths:
M .github/workflows/issue-write.yml
Log Message:
-----------
workflows/issue-write: Do not read pr number from file for pull_request events (#200474)
For pull_request events, the author of the pull request has full control
over the workflow job and can potentially write any pull request number
to the file. This would allow them to modify comments on any pull
request not just their own.
The reading of the pull request number from the file was added in
53ff447b64186ff51181cd6050a9613983ff80be to support issue_comment events
so we don't need it for pull_request events anyway.
Commit: d70975c36995fb744b08e899a41270b3d7a609ba
https://github.com/llvm/llvm-project/commit/d70975c36995fb744b08e899a41270b3d7a609ba
Author: Brad Smith <brad at comstyle.com>
Date: 2026-05-29 (Fri, 29 May 2026)
Changed paths:
M libcxx/test/benchmarks/algorithms/min_max_element.bench.cpp
M libcxx/test/benchmarks/containers/deque_iterator.bench.cpp
M libcxx/test/benchmarks/containers/sequence/vector_bool.bench.cpp
M libcxx/test/benchmarks/join_view.bench.cpp
M libcxx/test/benchmarks/streams/copy.bench.cpp
M libcxx/test/benchmarks/streams/ofstream.bench.cpp
A third-party/benchmark/.bazelversion
M third-party/benchmark/.clang-tidy
A third-party/benchmark/.clang-tidy.ignore
M third-party/benchmark/.pre-commit-config.yaml
R third-party/benchmark/.travis.yml
M third-party/benchmark/.ycm_extra_conf.py
M third-party/benchmark/AUTHORS
M third-party/benchmark/CMakeLists.txt
M third-party/benchmark/CONTRIBUTORS
M third-party/benchmark/MODULE.bazel
M third-party/benchmark/README.md
M third-party/benchmark/bazel/benchmark_deps.bzl
R third-party/benchmark/bindings/python/build_defs.bzl
M third-party/benchmark/bindings/python/google_benchmark/__init__.py
M third-party/benchmark/bindings/python/google_benchmark/benchmark.cc
M third-party/benchmark/bindings/python/google_benchmark/example.py
R third-party/benchmark/bindings/python/google_benchmark/version.py
R third-party/benchmark/bindings/python/nanobind.BUILD
R third-party/benchmark/bindings/python/python_headers.BUILD
M third-party/benchmark/cmake/CXXFeatureCheck.cmake
M third-party/benchmark/cmake/Config.cmake.in
M third-party/benchmark/cmake/GoogleTest.cmake.in
M third-party/benchmark/cmake/benchmark.pc.in
A third-party/benchmark/cmake/benchmark_main.pc.in
M third-party/benchmark/docs/dependencies.md
M third-party/benchmark/docs/platform_specific_build_instructions.md
M third-party/benchmark/docs/reducing_variance.md
M third-party/benchmark/docs/releasing.md
M third-party/benchmark/docs/user_guide.md
M third-party/benchmark/include/benchmark/benchmark.h
M third-party/benchmark/pyproject.toml
M third-party/benchmark/setup.py
M third-party/benchmark/src/CMakeLists.txt
M third-party/benchmark/src/benchmark.cc
M third-party/benchmark/src/benchmark_api_internal.cc
M third-party/benchmark/src/benchmark_api_internal.h
M third-party/benchmark/src/benchmark_main.cc
M third-party/benchmark/src/benchmark_name.cc
M third-party/benchmark/src/benchmark_register.cc
M third-party/benchmark/src/benchmark_register.h
M third-party/benchmark/src/benchmark_runner.cc
M third-party/benchmark/src/benchmark_runner.h
M third-party/benchmark/src/check.cc
M third-party/benchmark/src/check.h
M third-party/benchmark/src/colorprint.cc
M third-party/benchmark/src/colorprint.h
M third-party/benchmark/src/commandlineflags.cc
M third-party/benchmark/src/commandlineflags.h
M third-party/benchmark/src/complexity.cc
M third-party/benchmark/src/console_reporter.cc
M third-party/benchmark/src/counter.cc
M third-party/benchmark/src/csv_reporter.cc
M third-party/benchmark/src/cycleclock.h
M third-party/benchmark/src/internal_macros.h
M third-party/benchmark/src/json_reporter.cc
M third-party/benchmark/src/log.h
M third-party/benchmark/src/perf_counters.cc
M third-party/benchmark/src/re.h
M third-party/benchmark/src/reporter.cc
M third-party/benchmark/src/statistics.cc
M third-party/benchmark/src/string_util.cc
M third-party/benchmark/src/string_util.h
M third-party/benchmark/src/sysinfo.cc
M third-party/benchmark/src/thread_manager.h
M third-party/benchmark/src/timers.cc
M third-party/benchmark/src/timers.h
M third-party/benchmark/test/CMakeLists.txt
M third-party/benchmark/test/basic_test.cc
M third-party/benchmark/test/benchmark_gtest.cc
M third-party/benchmark/test/benchmark_min_time_flag_iters_test.cc
M third-party/benchmark/test/benchmark_min_time_flag_time_test.cc
M third-party/benchmark/test/benchmark_random_interleaving_gtest.cc
A third-party/benchmark/test/benchmark_setup_teardown_cb_types_gtest.cc
M third-party/benchmark/test/benchmark_setup_teardown_test.cc
M third-party/benchmark/test/benchmark_test.cc
M third-party/benchmark/test/complexity_test.cc
R third-party/benchmark/test/cxx03_test.cc
A third-party/benchmark/test/cxx11_test.cc
M third-party/benchmark/test/diagnostics_test.cc
M third-party/benchmark/test/display_aggregates_only_test.cc
M third-party/benchmark/test/donotoptimize_assembly_test.cc
M third-party/benchmark/test/donotoptimize_test.cc
M third-party/benchmark/test/filter_test.cc
M third-party/benchmark/test/internal_threading_test.cc
M third-party/benchmark/test/link_main_test.cc
A third-party/benchmark/test/locale_impermeability_test.cc
A third-party/benchmark/test/manual_threading_test.cc
M third-party/benchmark/test/map_test.cc
M third-party/benchmark/test/memory_manager_test.cc
A third-party/benchmark/test/memory_results_gtest.cc
M third-party/benchmark/test/multiple_ranges_test.cc
M third-party/benchmark/test/options_test.cc
M third-party/benchmark/test/output_test.h
M third-party/benchmark/test/output_test_helper.cc
A third-party/benchmark/test/overload_test.cc
M third-party/benchmark/test/perf_counters_gtest.cc
M third-party/benchmark/test/perf_counters_test.cc
A third-party/benchmark/test/profiler_manager_gtest.cc
A third-party/benchmark/test/profiler_manager_iterations_test.cc
A third-party/benchmark/test/profiler_manager_test.cc
M third-party/benchmark/test/register_benchmark_test.cc
M third-party/benchmark/test/repetitions_test.cc
M third-party/benchmark/test/report_aggregates_only_test.cc
M third-party/benchmark/test/reporter_output_test.cc
M third-party/benchmark/test/skip_with_error_test.cc
M third-party/benchmark/test/spec_arg_test.cc
M third-party/benchmark/test/spec_arg_verbosity_test.cc
M third-party/benchmark/test/state_assembly_test.cc
M third-party/benchmark/test/string_util_gtest.cc
A third-party/benchmark/test/templated_fixture_method_test.cc
M third-party/benchmark/test/time_unit_gtest.cc
M third-party/benchmark/test/user_counters_tabular_test.cc
M third-party/benchmark/test/user_counters_test.cc
M third-party/benchmark/test/user_counters_thousands_test.cc
A third-party/benchmark/test/user_counters_threads_test.cc
M third-party/benchmark/tools/compare.py
M third-party/benchmark/tools/gbench/report.py
M third-party/benchmark/tools/gbench/util.py
M third-party/benchmark/tools/libpfm.BUILD.bazel
M third-party/benchmark/tools/requirements.txt
M third-party/benchmark/tools/strip_asm.py
Log Message:
-----------
Update Google Benchmark to v1.9.5 (#198964)
Commit: 9b77b22a0d14b08fb4d3b217f323449911ef8213
https://github.com/llvm/llvm-project/commit/9b77b22a0d14b08fb4d3b217f323449911ef8213
Author: Jason Molenda <jmolenda at apple.com>
Date: 2026-05-29 (Fri, 29 May 2026)
Changed paths:
M lldb/source/Plugins/DynamicLoader/MacOSX-DYLD/DynamicLoaderDarwin.cpp
M lldb/source/Plugins/DynamicLoader/MacOSX-DYLD/DynamicLoaderDarwin.h
Log Message:
-----------
[lldb][Darwin] Correct jGetLoadedDynamicLibrariesInfos typeo & fallback (#200515)
Jonas caught that I had a typeo in checking for the
`sizeof_mh_and_loadcmds` key in the `jGetLoadedDynamicLibrariesInfos`
response from debugserver in DyanmicLoaderDarwin. Fix that.
Also I originally picked a fallback value for the mach header + load
commands as a guess. I've sinced looked at a large UI app's binaries and
based on the size of their actual mh+load commands, picked a default
that will read all the data needed in the majority of cases.
rdar://178283767
Commit: 4e47b560196a442c2cbdb451c0d28df128f9f1d0
https://github.com/llvm/llvm-project/commit/4e47b560196a442c2cbdb451c0d28df128f9f1d0
Author: Justin Lebar <justin.lebar at gmail.com>
Date: 2026-05-29 (Fri, 29 May 2026)
Changed paths:
M llvm/lib/CodeGen/ExpandIRInsts.cpp
M llvm/test/CodeGen/AArch64/fcvt-i256.ll
M llvm/test/CodeGen/RISCV/bitint-fp-conv-200.ll
M llvm/test/Transforms/ExpandIRInsts/X86/expand-large-fp-convert-si129tofp.ll
M llvm/test/Transforms/ExpandIRInsts/X86/expand-large-fp-convert-ui129tofp.ll
Log Message:
-----------
[ExpandIRInsts] Fix sitofp/uitofp to float producing garbage instead of inf (#200291)
[ExpandIRInsts] Fix sitofp/uitofp producing garbage instead of inf
s/uitofp of an integer larger than the max finite floating-point value
should produce inf. This can't happen with e.g. an int32 -> float32
conversion, but can happen for e.g. int256 -> float32.
Before this change we'd produce garbage.
Fixes #189054.
Co-Authored-By: Claude Opus 4.8 <noreply at anthropic.com>
Commit: a3241c53528a9600046b4cd9d55793cf59992a75
https://github.com/llvm/llvm-project/commit/a3241c53528a9600046b4cd9d55793cf59992a75
Author: Tom Stellard <tstellar at redhat.com>
Date: 2026-05-29 (Fri, 29 May 2026)
Changed paths:
M .github/workflows/build-ci-container-windows.yml
Log Message:
-----------
workflows/build-ci-container-windows: Remove template expansion (#200097)
https://github.com/llvm/llvm-project/security/code-scanning/1580
https://github.com/llvm/llvm-project/security/code-scanning/1581
https://github.com/llvm/llvm-project/security/code-scanning/1582
https://github.com/llvm/llvm-project/security/code-scanning/1583
https://github.com/llvm/llvm-project/security/code-scanning/1584
https://github.com/llvm/llvm-project/security/code-scanning/1585
https://github.com/llvm/llvm-project/security/code-scanning/1586
https://github.com/llvm/llvm-project/security/code-scanning/1587
Commit: 95994d1e630722badb647a423f6e78f806c983d9
https://github.com/llvm/llvm-project/commit/95994d1e630722badb647a423f6e78f806c983d9
Author: Jonas Devlieghere <jonas at devlieghere.com>
Date: 2026-05-29 (Fri, 29 May 2026)
Changed paths:
M llvm/include/llvm/Support/FileSystem.h
M llvm/lib/Support/Path.cpp
M llvm/lib/Support/Windows/Path.inc
M llvm/unittests/Support/Path.cpp
Log Message:
-----------
[Support] Add path-based setLastAccessAndModificationTime overload (#199256)
The existing setLastAccessAndModificationTime takes a file descriptor.
Add a const Twine & overload that opens the path internally so callers
no longer need to manage the fd themselves. The new overload accepts
both files and directories: on POSIX, O_RDONLY opens directories and the
existing fd-based implementation accepts a directory fd. On Windows,
FILE_FLAG_BACKUP_SEMANTICS is required to obtain a handle for a
directory.
The path overload pair mirrors the existing (Twine &) / (int FD) shape
used by setPermissions and resize_file.
Commit: 796f1b3320591b6045d2a269cc4edf525890b285
https://github.com/llvm/llvm-project/commit/796f1b3320591b6045d2a269cc4edf525890b285
Author: Akimasa Watanuki <mencotton0410 at gmail.com>
Date: 2026-05-29 (Fri, 29 May 2026)
Changed paths:
A clang/test/CIR/CodeGenHIP/device-var-registration.hip
Log Message:
-----------
[CIR][HIP][NFC] Add device variable registration coverage (#200204)
Cover the HIP `__hipRegisterVar` path in CIR and LLVM.
Commit: d46b9851c0e2c5af1729f89fb24fa368f0389839
https://github.com/llvm/llvm-project/commit/d46b9851c0e2c5af1729f89fb24fa368f0389839
Author: Aiden Grossman <aidengrossman at google.com>
Date: 2026-05-29 (Fri, 29 May 2026)
Changed paths:
M llvm/utils/profcheck-xfail.txt
Log Message:
-----------
[ProfCheck] Exclude some tests (#200527)
Introduced in #200291. Exclude for now while we get to fixing it.
Commit: 20f117f386e53fe348967c355d07842190c001ee
https://github.com/llvm/llvm-project/commit/20f117f386e53fe348967c355d07842190c001ee
Author: Dave Lee <davelee.com at gmail.com>
Date: 2026-05-29 (Fri, 29 May 2026)
Changed paths:
M lldb/source/Symbol/Symbol.cpp
Log Message:
-----------
[lldb] Fix copy-paste typo in Symbol::operator= (#200528)
Commit: cc8dd6ccd30774d3e084be01653c7c075d30c254
https://github.com/llvm/llvm-project/commit/cc8dd6ccd30774d3e084be01653c7c075d30c254
Author: Justin Lebar <justin.lebar at gmail.com>
Date: 2026-05-29 (Fri, 29 May 2026)
Changed paths:
M llvm/lib/Target/X86/X86InstrInfo.cpp
M llvm/test/CodeGen/X86/apx/kmov-kk.ll
Log Message:
-----------
[X86] Use kmovw, not kmovq, for VK16 copies without BWI (#200337)
`copyPhysReg` selected `KMOVQkk_EVEX` for a `$k -> $k` VK16 copy on a
`+egpr` (APX) subtarget even without BWI, but `KMOVQ` requires BWI. Use
`KMOVW` instead.
This bug was found by a large run of Opus 4.7 looking for bugs in LLVM.
Commit: 720df36d34e734f40a09f3d5a909353af619128b
https://github.com/llvm/llvm-project/commit/720df36d34e734f40a09f3d5a909353af619128b
Author: Akira Hatanaka <ahatanak at gmail.com>
Date: 2026-05-29 (Fri, 29 May 2026)
Changed paths:
M clang/lib/Sema/SemaChecking.cpp
A clang/test/SemaCXX/os_log.cpp
Log Message:
-----------
[os_log] Fix a CodeGen crash for non-trivial C++ arguments (#200320)
The earlier fix in commit 8a0d145d90df (#158744) only emitted a hard
error for os_log arguments of record or complex type that took the
VarArgKind::Valid / ValidInCXX11 path in checkFormatExpr. Arguments of
non-trivial C++ class type (non-trivial copy/move ctor or dtor) instead
take the VarArgKind::Undefined path, which only emitted the
-Wnon-pod-varargs warning and let compilation proceed into CodeGen.
There, emitBuiltinOSLogFormat passes the argument expression to
EmitScalarExpr, which requires a scalar type. A non-trivial class
argument is not a scalar, so CodeGen crashes (asserting in
hasScalarEvaluationKind in assertions builds).
Emit the hard error err_format_conversion_argument_type_mismatch on the
Undefined path too, so compilation stops before CodeGen.
rdar://174747930
Commit: f561d59856c1a2a1f7adb9604d47e9e1e940c7a0
https://github.com/llvm/llvm-project/commit/f561d59856c1a2a1f7adb9604d47e9e1e940c7a0
Author: Adrian Prantl <aprantl at apple.com>
Date: 2026-05-29 (Fri, 29 May 2026)
Changed paths:
M lldb/source/Commands/CommandObjectDWIMPrint.cpp
M lldb/test/API/lang/objc/objc-po-hint/TestObjcPoHint.py
Log Message:
-----------
[LLDB] Simplify the hint when po-ing an object with no object descrip… (#200499)
…tion
The current wording of the hint is so long that the output obscures the
output of the command, which can be confusing. By shortening the message
the command output hopefully comes back into the center of attention.
Commit: 1dd08114eb3b6a245ea478a6f96746085c07c30b
https://github.com/llvm/llvm-project/commit/1dd08114eb3b6a245ea478a6f96746085c07c30b
Author: Sudharsan Veeravalli <svs at qti.qualcomm.com>
Date: 2026-05-30 (Sat, 30 May 2026)
Changed paths:
M llvm/lib/Target/RISCV/RISCVFrameLowering.cpp
A llvm/test/CodeGen/RISCV/zilsd-csr-duplicate.mir
Log Message:
-----------
[RISCV] Do not append duplicate Zilsd GPRPair CSR (#200463)
`determineCalleeSaves` can run more than once and as a result we were
appending duplicate `Zilsd GPRPair CSR's`. Skip a pair if it is already
present in the CSR set.
Commit: 522ac7582ddad5296c1a2e72b98f4a396dac507d
https://github.com/llvm/llvm-project/commit/522ac7582ddad5296c1a2e72b98f4a396dac507d
Author: Jonas Devlieghere <jonas at devlieghere.com>
Date: 2026-05-29 (Fri, 29 May 2026)
Changed paths:
A llvm/test/tools/dsymutil/X86/bundle-mtime.test
M llvm/tools/dsymutil/dsymutil.cpp
Log Message:
-----------
[dsymutil] Bump .dSYM bundle directory mtime after a rewrite (#199257)
When dsymutil rewrites an existing .dSYM bundle, only the inner DWARF
file is replaced and the bundle directory's mtime stays frozen at the
time of the original build.
macOS Spotlight's bundle re-import path keys off the bundle directory's
mtime to decide whether the importer should re-run. With the mtime
frozen, Spotlight keeps the previous build's UUID indexed forever,
DebugSymbols.framework's Spotlight lookup misses on the new UUID.
Bump the bundle directory's mtime explicitly at the end of a successful
run, reusing the .dSYM extraction already used by the codesign path.
rdar://177725866
Commit: 0c94404f2135d3e6f34388d8118ddb64d27f3c02
https://github.com/llvm/llvm-project/commit/0c94404f2135d3e6f34388d8118ddb64d27f3c02
Author: Timm Baeder <tbaeder at redhat.com>
Date: 2026-05-30 (Sat, 30 May 2026)
Changed paths:
M clang/lib/AST/ByteCode/InterpBuiltinBitCast.cpp
A clang/test/AST/ByteCode/blocks.cpp
Log Message:
-----------
[clang][bytecode] Reject bitcasts of objc block pointers (#200397)
They are unsupported and will hopefully always be.
Commit: 524734d88b3cdd874f00853ea6309e70bbb1cd4e
https://github.com/llvm/llvm-project/commit/524734d88b3cdd874f00853ea6309e70bbb1cd4e
Author: Med Ismail Bennani <ismail at bennani.ma>
Date: 2026-05-30 (Sat, 30 May 2026)
Changed paths:
M lldb/test/API/assert_messages_test/TestAssertMessages.py
M lldb/test/API/lang/objc/objc-optimized/TestObjcOptimized.py
M lldb/test/API/python_api/debugger/TestDebuggerAPI.py
Log Message:
-----------
[lldb/test] Trim @expectedFailureAll(remote=True) decorators (#200529)
These three tests pass when run against a remote-darwin platform backed
by lldb-platform on device. Update each decorator to reflect where it's
still expected to fail rather than blanket-XFAILing every remote run.
- `TestAssertMessages.test_createTestTarget`: was XFAIL on
oslist=no_match(["linux"]) + remote=True. Add darwin_all to the no_match
list so the XFAIL stays only on remote-windows / remote-freebsd /
remote-netbsd / remote-android.
- `TestDebuggerAPI.test_CreateTarget_platform`: scope to non-Darwin
remotes (bug llvm/llvm-project#92419 still tracks the underlying issue
on those platforms).
- `TestObjcOptimized`: drop @expectedFailureAll(remote=True) from the
test method and put @skipUnlessDarwin on the class. The Makefile depends
on `-framework Foundation` and `-lobjc`, so the test cannot build on
non-Darwin platforms — skip it there outright instead of pretending it
could XFAIL.
Signed-off-by: Med Ismail Bennani <ismail at bennani.ma>
Commit: 08d281fe7a907089789be2c6ca6577cf3aac5629
https://github.com/llvm/llvm-project/commit/08d281fe7a907089789be2c6ca6577cf3aac5629
Author: Timm Baeder <tbaeder at redhat.com>
Date: 2026-05-30 (Sat, 30 May 2026)
Changed paths:
M clang/CMakeLists.txt
M clang/include/clang/Basic/LangOptions.def
M clang/include/clang/Config/config.h.cmake
M clang/lib/Basic/LangOptions.cpp
Log Message:
-----------
[clang] Add CLANG_USE_EXPERIMENTAL_CONST_INTERP cmake option (#199396)
To enable the new constant interpreter by default at configure time.
I don't expect any distributions to set this for now but it's useful for
testing and I think we need it eventually.
Commit: d38b5b3b990d8f8e3782ed0ea7e0499dd168d9e6
https://github.com/llvm/llvm-project/commit/d38b5b3b990d8f8e3782ed0ea7e0499dd168d9e6
Author: Prasoon <prasoonkumar054 at gmail.com>
Date: 2026-05-29 (Fri, 29 May 2026)
Changed paths:
M llvm/utils/lit/lit/ShellEnvironment.py
M llvm/utils/lit/lit/builtin_commands/diff.py
Log Message:
-----------
[lit] Add __slots__ to hot shell-execution objects (#199668)
`ShellCommand`, `ShellEnvironment` and `DiffFlags` classes are
instantiated per commad / per diff. `__slots__` drops the per-instance
`__dict__`, lowering memory and speeding attribute access. (`__slots__`
not `@dataclass(slots=True)` to keep Python 3.8 support.)
**Baseline:**
| Stage | Metric (Runtime / Peak RSS) |
| :--- | :--- |
| **CodeGen-X86** | 99.310s / 51872 kB |
| **llvm-transforms** | 51.457s / 66928 kB |
**Changes made here:**
| Stage | Metric (Runtime / Peak RSS) |
| :--- | :--- |
| **CodeGen-X86** | 98.708s / 51872 kB |
| **llvm-transforms** | 51.496s / 66824 kB |
This PR is part of the "GSoC 2026: Improving lit" project.
Signed-off-by: Prasoon Kumar <prasoonkumar054 at gmail.com>
Commit: 4672169040454c255dabf8023d553823833f6236
https://github.com/llvm/llvm-project/commit/4672169040454c255dabf8023d553823833f6236
Author: maxbartel <bartel at roofline.ai>
Date: 2026-05-29 (Fri, 29 May 2026)
Changed paths:
M utils/bazel/third_party_build/nanobind.BUILD
Log Message:
-----------
[Bazel] Add inl files to nanobind textual headers (#200516)
When using this overlay to build some bindings I noticed that
counter.inl was not available in the sandbox and the build failed. This
line adds it to the sandbox.
Commit: 3c193d4d88c8c05157b61da3f3cf925eef8d6c5d
https://github.com/llvm/llvm-project/commit/3c193d4d88c8c05157b61da3f3cf925eef8d6c5d
Author: Ayush Sahay <asahay at qti.qualcomm.com>
Date: 2026-05-30 (Sat, 30 May 2026)
Changed paths:
M lldb/source/Plugins/Process/Windows/Common/NativeRegisterContextWindows_arm64.cpp
M lldb/source/Plugins/Process/Windows/Common/NativeRegisterContextWindows_arm64.h
Log Message:
-----------
[lldb][Windows] Cache thread context in NativeRegisterContextWindows_arm64 (#197385)
Cache thread context in _NativeRegisterContextWindows_arm64_ to improve
read performance. Previously, the thread context was retrieved for every
read or write operation.
This change intends to lay the groundwork for provisioning debug support
for SVE on WoA.
Assisted-by: Claude Sonnet 4.6
Commit: 9b03d3f319689c936937ba442d0fe5af69d26965
https://github.com/llvm/llvm-project/commit/9b03d3f319689c936937ba442d0fe5af69d26965
Author: AbdallahRashed <63146988+AbdallahRashed at users.noreply.github.com>
Date: 2026-05-30 (Sat, 30 May 2026)
Changed paths:
M clang/lib/CIR/CodeGen/CIRGenDecl.cpp
A clang/test/CIR/CodeGenOpenCL/address-space-local-var.clcpp
Log Message:
-----------
[CIR][CodeGen] Replace errorNYI with assert for address space in emitAutoVarAlloca (#197506)
Auto variables can only be in the default address space, or
opencl_private when compiling OpenCL. Replace the errorNYI with an
assert matching OG codegen (CGDecl.cpp).
Fixes part of #160386
Co-authored-by: Andy Kaylor <akaylor at nvidia.com>
Commit: 799b8669e57a5981477d1afc462efd79aff1c4c1
https://github.com/llvm/llvm-project/commit/799b8669e57a5981477d1afc462efd79aff1c4c1
Author: jofrn <jo7frn1 at gmail.com>
Date: 2026-05-30 (Sat, 30 May 2026)
Changed paths:
M llvm/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp
Log Message:
-----------
[SelectionDAG] Remove redundant asserts in WidenVecRes_ATOMIC_LOAD (#200159)
These asserts duplicate guarantees already provided elsewhere:
- `isVector()` checks are redundant because `findMemType()` calls
`WidenVT.getVectorElementType()` and `WidenVT.isScalableVector()`
internally, and `WidenVecRes_ATOMIC_LOAD` is only reached from the
`ATOMIC_LOAD` case in `WidenVectorResult`, which is the vector path.
- The element-type and scalability consistency between `LdVT` and
`WidenVT` is a property of `GetWidenedVector` / `getTypeToTransformTo`.
Follow-up to feedback on #197618.
Commit: 666a8cf6ebb7b1cf502b5963c81c0ea3e19e21b1
https://github.com/llvm/llvm-project/commit/666a8cf6ebb7b1cf502b5963c81c0ea3e19e21b1
Author: CHANDRA GHALE <chandra.nitdgp at gmail.com>
Date: 2026-05-30 (Sat, 30 May 2026)
Changed paths:
M flang/include/flang/Parser/parse-tree.h
M flang/lib/Parser/program-parsers.cpp
A flang/test/Parser/compiler-directive-in-interface.f90
Log Message:
-----------
[Flang][Parser] Handle compiler directives inside INTERFACE blocks (#198516)
Unrecognized !DIR$ directives between interface specifications currently
cause cascading parse errors because the grammar for
InterfaceSpecification has no path to consume them. This patch adds
CompilerDirective as a valid alternative — matching how
InternalSubprogram and ModuleSubprogram already handle this — so that
unrecognized directives produce the expected warning instead of a fatal
parse failure.
Fixes :
[https://github.com/llvm/llvm-project/issues/198289](https://github.com/llvm/llvm-project/issues/198289)
---------
Co-authored-by: Chandra Ghale <ghale at pe34genoa.hpc.amslabs.hpecorp.net>
Commit: 9d0ce81b649ffaf029e32d11680d340d7759c0ae
https://github.com/llvm/llvm-project/commit/9d0ce81b649ffaf029e32d11680d340d7759c0ae
Author: CHANDRA GHALE <chandra.nitdgp at gmail.com>
Date: 2026-05-30 (Sat, 30 May 2026)
Changed paths:
M flang/lib/Semantics/check-omp-loop.cpp
A flang/test/Semantics/OpenMP/linear-clause-array-section.f90
Log Message:
-----------
[Flang][OpenMP] Reject array sections and subobjects in LINEAR clause (#197430)
Array sections like a(:,1,1) and array elements like a(1) in a LINEAR
clause cause a crash during MLIR-to-LLVM IR translation because the
semantic checker doesn't catch them.
This adds a call to CheckVarIsNotPartOfAnotherVar for the LINEAR clause,
which is the same check used by PRIVATE and FIRSTPRIVATE to reject
subobject designators.
Fixes :
[https://github.com/llvm/llvm-project/issues/196068](https://github.com/llvm/llvm-project/issues/196068)
Co-authored-by: Chandra Ghale <ghale at pe34genoa.hpc.amslabs.hpecorp.net>
Commit: 9e3c18494dfd32f85997868c7244a7ed472506d9
https://github.com/llvm/llvm-project/commit/9e3c18494dfd32f85997868c7244a7ed472506d9
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2026-05-30 (Sat, 30 May 2026)
Changed paths:
M llvm/lib/Target/X86/X86ISelLowering.cpp
M llvm/test/CodeGen/X86/vector-shuffle-combining-avx512vbmi2.ll
Log Message:
-----------
Revert "[X86] matchBinaryPermuteShuffle - match to X86ISD::SHLD funnel shift patterns" (#200546)
Reverts llvm/llvm-project#200136 while I investigate a miscompilation report
Commit: 093c76a9b101e4ed14854daad66223463d86d2ba
https://github.com/llvm/llvm-project/commit/093c76a9b101e4ed14854daad66223463d86d2ba
Author: Justin Lebar <justin.lebar at gmail.com>
Date: 2026-05-30 (Sat, 30 May 2026)
Changed paths:
M llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
A llvm/test/CodeGen/X86/atomic-mmo-align.ll
Log Message:
-----------
[SelectionDAG] Preserve IR alignment on atomicrmw/cmpxchg MMOs (#200332)
Previously SelectionDAG used the natural alignment of the value type,
even if the instruction specified a different alignment.
This bug was found by a large run of Opus 4.7 looking for bugs in LLVM.
Commit: c22f5665a9d631742a58e87b80b15359f65b3a66
https://github.com/llvm/llvm-project/commit/c22f5665a9d631742a58e87b80b15359f65b3a66
Author: Justin Lebar <justin.lebar at gmail.com>
Date: 2026-05-30 (Sat, 30 May 2026)
Changed paths:
M llvm/lib/Transforms/Scalar/LICM.cpp
M llvm/test/Transforms/LICM/hoist-add-sub.ll
Log Message:
-----------
[LICM] Drop poison-generating flags when reassociating an icmp (#200344)
`hoistAdd`/`hoistSub` turn `LV + C1 <pred> C2` into `LV <pred> C2 - C1`,
changing the icmp's LHS. A `samesign` flag asserted about the old
operands need not hold for the new LHS, so keeping it can turn a defined
comparison into poison (e.g. for `%iv = -3`, `samesign slt(2, 100)` is
true but the reassociated `samesign slt(-3, 95)` has
opposite-sign operands → poison). Drop the icmp's poison-generating
flags after the rewrite, as `hoistMulAddAssociation` already does.
This bug was found by a large run of Opus 4.7 looking for bugs in LLVM.
Co-authored-by: Claude Opus 4.8 (1M context) <noreply at anthropic.com>
Commit: c7614cd5507091768084f36106fa9a37f2503715
https://github.com/llvm/llvm-project/commit/c7614cd5507091768084f36106fa9a37f2503715
Author: Justin Lebar <justin.lebar at gmail.com>
Date: 2026-05-30 (Sat, 30 May 2026)
Changed paths:
M llvm/lib/Transforms/Scalar/MergeICmps.cpp
M llvm/test/Transforms/MergeICmps/X86/pair-int32-int32.ll
Log Message:
-----------
[MergeICmps] Don't merge comparisons whose width isn't a byte multiple (#200346)
MergeICmps looks for cases like
struct S { char x; char y; }
A.x == B.x && A.y == B.y
If `x` and `y` are stored adjacent to one another, we can convert the
above into a memcmp, which can then be converted into a single 16-bit
compare.
This pass currently does the wrong thing if the struct members' sizes
are not multiples of 8 bits. To fix this, we simply bail if the elements
in question are not multiples of one byte.
This bug was found by a large run of Opus 4.7 looking for bugs in LLVM.
Commit: 3c4bc6c9f7b535275a2344a78c94b8b7eb10b433
https://github.com/llvm/llvm-project/commit/3c4bc6c9f7b535275a2344a78c94b8b7eb10b433
Author: Andreas Jonson <andjo403 at hotmail.com>
Date: 2026-05-30 (Sat, 30 May 2026)
Changed paths:
M llvm/lib/Transforms/InstCombine/InstCombineSelect.cpp
M llvm/test/Transforms/InstCombine/select.ll
Log Message:
-----------
[InstCombine] Handle "trunc nuw to i1" as "icmp ne,0" in foldSelectValueEquivalence (#198131)
proof: https://alive2.llvm.org/ce/z/MGhWgE
Commit: 02af47b6053dff5d9b81a04b4a55e747a31c5ff0
https://github.com/llvm/llvm-project/commit/02af47b6053dff5d9b81a04b4a55e747a31c5ff0
Author: Michael Kruse <llvm-project at meinersbur.de>
Date: 2026-05-30 (Sat, 30 May 2026)
Changed paths:
M clang/test/Driver/freebsd.c
Log Message:
-----------
[Clang][test] Fix leading slash (#200549)
A reviewer in #200012 required checking for a leading (back-)slash to
the test despite none of the other tests doing so. Turns out, the slash
isn't there if the driver is unable to resolve the full path to the
linker. Remove the leading slash from the test.
Fixes reported buildbot failures:
* clang-solaris11-sparcv9
* clang-solaris11-amd64
Commit: fdfb99f6336401e534f611c4b2df5a338e26b997
https://github.com/llvm/llvm-project/commit/fdfb99f6336401e534f611c4b2df5a338e26b997
Author: Xavier Roche <xavier.roche at algolia.com>
Date: 2026-05-30 (Sat, 30 May 2026)
Changed paths:
M libcxx/include/__bit/byteswap.h
M libcxx/test/libcxx/transitive_includes/cxx23.csv
M libcxx/test/libcxx/transitive_includes/cxx26.csv
M libcxx/test/std/numerics/bit/byteswap.pass.cpp
A libcxx/test/std/numerics/bit/byteswap.verify.cpp
Log Message:
-----------
[libc++] std::byteswap support for _BitInt(N) (#196512)
Add a byte-reversal loop fallback for `std::byteswap` when `sizeof(T) >
16`,
so the function works for `_BitInt(N)` with `N > 128` and any future
wider
integer type. Without it, those calls hit `static_assert(sizeof(_Tp) ==
0)`
and fail to compile.
Reject `_BitInt(N)` where `N` is not a multiple of `CHAR_BIT`. The
existing
`__builtin_bswap{16,32,64,128}` paths swap the storage representation
including padding bits, and the resulting value's meaning is
unspecified.
A new `static_assert` catches that case and reports it. Size-1 types are
exempt from the check, since no bytes move there.
Part of the [_BitInt(N) libc++
effort](https://discourse.llvm.org/t/bitint-n-support-in-libc-investigations-possible-improvements-looking-for-guidance/90063).
Assisted-by: Claude (Anthropic)
---------
Co-authored-by: Claude Opus 4.6 <noreply at anthropic.com>
Commit: e3f80fe493c1e7d4701d6c08a57f106f99d15380
https://github.com/llvm/llvm-project/commit/e3f80fe493c1e7d4701d6c08a57f106f99d15380
Author: Arseniy Obolenskiy <arseniy.obolenskiy at amd.com>
Date: 2026-05-30 (Sat, 30 May 2026)
Changed paths:
M mlir/lib/Conversion/MathToSPIRV/MathToSPIRV.cpp
M mlir/test/Conversion/MathToSPIRV/math-to-fpclassify-spirv.mlir
M mlir/test/Conversion/MathToSPIRV/math-to-gl-spirv.mlir
Log Message:
-----------
[mlir][SPIR-V] Convert math.clampf to spirv.GLFClamp and math.ctpop to spirv.BitCount (#200454)
Commit: f15904ec71a8ac092aaca29bddb5f419f2919b6b
https://github.com/llvm/llvm-project/commit/f15904ec71a8ac092aaca29bddb5f419f2919b6b
Author: Kevin Sala Penades <salapenades1 at llnl.gov>
Date: 2026-05-30 (Sat, 30 May 2026)
Changed paths:
M clang/lib/CodeGen/CGOpenMPRuntime.cpp
M clang/test/OpenMP/target_teams_codegen.cpp
M llvm/include/llvm/Frontend/OpenMP/OMPIRBuilder.h
M llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp
M offload/include/Shared/APITypes.h
M offload/liboffload/src/OffloadImpl.cpp
M offload/libomptarget/KernelLanguage/API.cpp
M offload/libomptarget/omptarget.cpp
M offload/plugins-nextgen/common/include/PluginInterface.h
M offload/plugins-nextgen/common/src/PluginInterface.cpp
A offload/test/offloading/ompx_bare_gridsize.c
M offload/unittests/OffloadAPI/device_code/CMakeLists.txt
A offload/unittests/OffloadAPI/device_code/gridsize.cpp
M offload/unittests/OffloadAPI/kernel/olLaunchKernel.cpp
Log Message:
-----------
[offload][OpenMP] Add strict flag for blocks and threads in kernel arguments (#199483)
Until now, strict behavior in the number of threads and blocks has been
applied only when the kernel is in bare mode. When this mode is enabled,
the values passed in UserNumBlocks and UserThreadLimit are not adjusted
and are the definitive values used to launch the kernel. This commit
detaches the strictness from the kernel mode.
This is going to be used by the kernel replay tool. Additionally, it
starts clearing the path for the upcoming OpenMP dims modifier, used to
configure multidimensional teams and leagues, which will include
strictness choices for teams and threads.
All the bare kernels must indicate strict behavior. Asserts are added to
check this condition.
Commit: 80ad13af63ef25d4e62adce6e3362f659b5c521f
https://github.com/llvm/llvm-project/commit/80ad13af63ef25d4e62adce6e3362f659b5c521f
Author: NAKAMURA Takumi <geek4civic at gmail.com>
Date: 2026-05-30 (Sat, 30 May 2026)
Changed paths:
M utils/bazel/llvm-project-overlay/compiler-rt/BUILD.bazel
Log Message:
-----------
[bazel] Fix compiler-rt:interception (#200561)
- Add `-DCOMPILER_RT_BUILD_PROFILE_ROCM=1`
- Prune `"lib/sanitizer_common/*.S"`, it means `*.inc.S`
- Add `-fvisibility=hidden`
Bazel doesn't add `-gline-tables-only` by default. Add flags to CMake
side to align the build to Bazel.
- `-DCOMPILER_RT_HAS_G_FLAG=OFF`
- `-DCOMPILER_RT_HAS_GLINE_TABLES_ONLY_FLAG=OFF`
Commit: a59f9951f3e197127fb13d729ad4c52168f29432
https://github.com/llvm/llvm-project/commit/a59f9951f3e197127fb13d729ad4c52168f29432
Author: Alexey Bataev <a.bataev at outlook.com>
Date: 2026-05-30 (Sat, 30 May 2026)
Changed paths:
M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
A llvm/test/Transforms/SLPVectorizer/AArch64/recalc-copyable-node.ll
Log Message:
-----------
[SLP] Recompute copyable operand deps for duplicate copyable nodes
A bundle may duplicate a previously built node that has copyable elements
(same schedulable instructions, different copyable lane) while the parent
node also has copyable elements. An operand modeled as a copyable element
in the previous node is then used directly by the new node, which is not
registered in the tree yet. Recomputing that operand's direct
dependencies at this point misses the direct use, so the scheduler
decrements the operand more times than its dependency count and trips the
unscheduled-deps assertion.
Defer recomputation of such operand dependencies via
RecalcCopyableOperandDeps and redo it at the next bundle scheduling, when
the duplicate node is part of the tree. Also clear and recompute the
direct dependencies of bundles whose user is a gather node referenced
through EdgeIdx == UINT_MAX in scheduleBlock, so combined gather
sub-entries get correct dependencies against the full tree.
Reviewers:
Pull Request: https://github.com/llvm/llvm-project/pull/200564
Commit: 3467e7f9eb16b687bf79fe96b33a243542c9d701
https://github.com/llvm/llvm-project/commit/3467e7f9eb16b687bf79fe96b33a243542c9d701
Author: Alexey Bataev <a.bataev at outlook.com>
Date: 2026-05-30 (Sat, 30 May 2026)
Changed paths:
M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
M llvm/test/Transforms/SLPVectorizer/AArch64/lcssa-phi-inner-loop-scale.ll
Log Message:
-----------
[SLP] Fix extract-cost scale for LCSSA-phi external users in nested loops
getScaleToLoopIterations() used U->getParent() for all PHI-node external
users. For an LCSSA phi at an inner-loop exit still inside an outer loop,
this gave outer-loop scale instead of inner*outer scale. Because
ExtractCostCalculated deduplicates by scalar, only the first ExternalUser
determines the scale, making the cost order-dependent on use-list ordering
(and thus on .ll block ordering).
Reviewers: hiraditya, RKSimon, bababuck
Pull Request: https://github.com/llvm/llvm-project/pull/199954
Commit: d9cbed5d47d9f44a2729d2be3a9d8c91346fd5e8
https://github.com/llvm/llvm-project/commit/d9cbed5d47d9f44a2729d2be3a9d8c91346fd5e8
Author: Akimasa Watanuki <mencotton0410 at gmail.com>
Date: 2026-05-30 (Sat, 30 May 2026)
Changed paths:
M mlir/test/Dialect/LLVMIR/attach-targets.mlir
Log Message:
-----------
[MLIR][GPU][NFC] Reformat GPU target attachment tests (#199339)
Reformat attach-targets.mlir so each GPU module has a labeled check
block, split target-attachment RUN lines, and keep comments tied to the
expected target-specific matches.
Commit: 8d86dc22be4f474ad102664d1cc0374a35732625
https://github.com/llvm/llvm-project/commit/8d86dc22be4f474ad102664d1cc0374a35732625
Author: Alexey Bataev <a.bataev at outlook.com>
Date: 2026-05-30 (Sat, 30 May 2026)
Changed paths:
M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
M llvm/test/Transforms/SLPVectorizer/AArch64/lcssa-phi-extract-scale.ll
Log Message:
-----------
[SLP] Fix extract-cost scale using NCD of all external-user sites
ExtractCostCalculated deduplicates by scalar so only the first
ExternalUser determines the scale, making the cost depend on IR block
ordering via LLVM's reverse-insertion use-list order.
Add a pre-pass computing ScalarToExtractBlock - the nearest common
dominator of all effective extract sites per scalar. For PHI users inside
a loop the effective site is the incoming block; for PHI users outside
all loops it is the PHI's own block (scale = 1). The extract cost is
then scaled by getLoopNestScale of the NCD block, which is fully
order-independent.
Fixes #199548
Reviewers: bababuck, RKSimon, hiraditya
Pull Request: https://github.com/llvm/llvm-project/pull/199962
Commit: d46e7dcee756766e9f23dd2ce3179e5e9a6cd536
https://github.com/llvm/llvm-project/commit/d46e7dcee756766e9f23dd2ce3179e5e9a6cd536
Author: Timm Baeder <tbaeder at redhat.com>
Date: 2026-05-30 (Sat, 30 May 2026)
Changed paths:
M clang/lib/AST/ByteCode/Interp.h
M clang/test/AST/ByteCode/c.c
Log Message:
-----------
[clang][bytecode] Fix an assertion failure in AddSubNonNumber (#200393)
Calling Integral::getPtr() shouldn't happen for AddrLabelDiff integrals.
Commit: 2501cdd2cad9d3180860d7506611afd474a182cc
https://github.com/llvm/llvm-project/commit/2501cdd2cad9d3180860d7506611afd474a182cc
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2026-05-30 (Sat, 30 May 2026)
Changed paths:
M llvm/test/CodeGen/X86/vector-shuffle-combining-avx512vbmi2.ll
Log Message:
-----------
[X86] Add VBMI2 shuffle test to track miscompile reported in #200136 (#200569)
Commit: 3c95dd29d834fde3a1070655a8a33df8ab3ee8b8
https://github.com/llvm/llvm-project/commit/3c95dd29d834fde3a1070655a8a33df8ab3ee8b8
Author: Florian Hahn <flo at fhahn.com>
Date: 2026-05-30 (Sat, 30 May 2026)
Changed paths:
M llvm/lib/Transforms/Vectorize/VPlan.h
M llvm/lib/Transforms/Vectorize/VPlanAnalysis.cpp
M llvm/lib/Transforms/Vectorize/VPlanAnalysis.h
M llvm/lib/Transforms/Vectorize/VPlanRecipes.cpp
M llvm/lib/Transforms/Vectorize/VPlanVerifier.cpp
Log Message:
-----------
[VPlan] Thread scalar type through VPBlend, VPExpression recipes. (NFC) (#200255)
Set the scalar type for VPBlendRecipe and VPExpressionRecipe at
construction time, instead of inferring it on demand via VPTypeAnalysis.
With this change, all VPValues have their scalar type set at
construction, so VPTypeAnalysis::inferScalarType becomes a thin wrapper
around VPValue::getScalarType.
To be removed in a follow-up:
https://github.com/llvm/llvm-project/pull/200256.
PR: https://github.com/llvm/llvm-project/pull/200255
Commit: 30ec1fa2a9d9b6e0b6af64e93b500321977eafa1
https://github.com/llvm/llvm-project/commit/30ec1fa2a9d9b6e0b6af64e93b500321977eafa1
Author: Timm Baeder <tbaeder at redhat.com>
Date: 2026-05-30 (Sat, 30 May 2026)
Changed paths:
M clang/lib/AST/ByteCode/Compiler.cpp
M clang/test/AST/ByteCode/invalid.cpp
Log Message:
-----------
[clang][bytecode] Reject invalid UnaryOperators (#200394)
Commit: ef6a217703a8738b89e22a19d3daca06b0028da0
https://github.com/llvm/llvm-project/commit/ef6a217703a8738b89e22a19d3daca06b0028da0
Author: Timm Baeder <tbaeder at redhat.com>
Date: 2026-05-30 (Sat, 30 May 2026)
Changed paths:
M clang/lib/AST/ByteCode/Compiler.cpp
M clang/test/AST/ByteCode/new-delete.cpp
Log Message:
-----------
[clang][bytecode] Fix a crash with an empty InitListExpr (#200366)
Fixes https://github.com/llvm/llvm-project/issues/200295
Commit: f7d576010fc1fbc40e8534d276d3c4837d5c5aa9
https://github.com/llvm/llvm-project/commit/f7d576010fc1fbc40e8534d276d3c4837d5c5aa9
Author: Akimasa Watanuki <mencotton0410 at gmail.com>
Date: 2026-05-30 (Sat, 30 May 2026)
Changed paths:
M mlir/include/mlir/Dialect/Utils/IndexingUtils.h
M mlir/lib/Dialect/Utils/IndexingUtils.cpp
Log Message:
-----------
[mlir][nfc] Fix assertion text in IndexingUtils (#181826)
Update the assertion text to match the actual code behavior.
Some functions enforce strictly positive values, whereas the error
message incorrectly mentioned "nonnegative".
Commit: 470411cf18e33fe461f7207831604f989a7a6e61
https://github.com/llvm/llvm-project/commit/470411cf18e33fe461f7207831604f989a7a6e61
Author: Timm Baeder <tbaeder at redhat.com>
Date: 2026-05-30 (Sat, 30 May 2026)
Changed paths:
M clang/lib/AST/ByteCode/Compiler.cpp
M clang/test/AST/ByteCode/new-delete.cpp
Log Message:
-----------
[clang][bytecode] Loosen an assertion about operator delete (#200575)
We may also see OO_Array_Delete here.
Commit: 0d1ed9383d1dc5133409e5088e336bc54700fbf7
https://github.com/llvm/llvm-project/commit/0d1ed9383d1dc5133409e5088e336bc54700fbf7
Author: Mikhail R. Gadelha <mikhail at igalia.com>
Date: 2026-05-30 (Sat, 30 May 2026)
Changed paths:
M libc/src/__support/CPP/cstddef.h
M libc/src/stdlib/qsort_data.h
Log Message:
-----------
[libc] Tag cpp::byte with gnu::may_alias (#200462)
Clang's TBAA grants the [basic.lval]/11.3 char-aliasing privilege only
to the named ::std::byte type (Type::isStdByteType() requires the enum
to be declared in the std namespace). LIBC_NAMESPACE::cpp::byte lives in
libc's cpp namespace, so it gets its own TBAA node disjoint from char
even though it has the same shape as std::byte.
That mismatch lets the optimizer reorder typed loads past raw-byte
writes through cpp::byte *, miscompiling HeapSort on rv64/Release
(UnsortedThreeElementArray{1,2,3}, UnsortedTwoElementArray1 in
SortingTest.h). The same hazard is latent in every cpp::byte *-based
raw-aliasing site: memory_utils Ptr/CPtr, lsearch/lfind, block.h and
freelist_heap.h allocator metadata.
Tag the type with gnu::may_alias so accesses through cpp::byte * share
the universal char-aliasing TBAA node, fixing all of the above in one
place. This patch also reverts PR #194171, as the may_alias attribute
fixes it too.
Commit: 2396aa8ac0e8af3e46306284e62448487a33a997
https://github.com/llvm/llvm-project/commit/2396aa8ac0e8af3e46306284e62448487a33a997
Author: Amr Hesham <amr96 at programmer.net>
Date: 2026-05-30 (Sat, 30 May 2026)
Changed paths:
M clang/lib/CIR/CodeGen/CIRGenExprComplex.cpp
Log Message:
-----------
[CIR][NFC] Mark Complex visitExpr as unsupported (#197782)
Mark Complex visitExpr as unsupported, similar to Clang ORCG, not as NYI
Commit: 51256ed963046edd0cf02bf744d61f14fc9523b3
https://github.com/llvm/llvm-project/commit/51256ed963046edd0cf02bf744d61f14fc9523b3
Author: Alexis Engelke <engelke at in.tum.de>
Date: 2026-05-30 (Sat, 30 May 2026)
Changed paths:
M llvm/include/llvm/IR/DerivedTypes.h
M llvm/include/llvm/IR/Type.h
M llvm/lib/IR/Type.cpp
M llvm/lib/IR/Use.cpp
Log Message:
-----------
[IR][NFC] Inline Type::isIntegerTy(n) (#200471)
Although this gets inlined in LTO builds, non-LTO builds benefit from
having isIntegerTy(n) defined in a header.
Co-authored-by: Nikita Popov <npopov at redhat.com>
Commit: aa1cf3205e63c1944238b41408fb3425fc585c61
https://github.com/llvm/llvm-project/commit/aa1cf3205e63c1944238b41408fb3425fc585c61
Author: Fangrui Song <i at maskray.me>
Date: 2026-05-30 (Sat, 30 May 2026)
Changed paths:
M llvm/include/llvm/IR/ValueHandle.h
M llvm/unittests/IR/ValueHandleTest.cpp
Log Message:
-----------
[IR] Fix PoisoningVH relocation of a poisoned handle (#200540)
In LLVM_ENABLE_ABI_BREAKING_CHECKS builds, when poisoned (`deleted()` or
`allUsesReplacedWith()`), a PoisoningVH is removed from its use list but
keeps its raw value pointer for identity, so its PrevPtr/Next are left
stale.
PoisoningVH has no move constructor, so relocating a value that embeds
one
falls back to the copy constructor, where `setRawValPtr` relinks with
the stale pointers and corrupts the use list.
This is a latent bug for any relocation of a PoisoningVH handle
but becomes load-bearing for #199615 , which relocating erase exercises
it via ScalarEvolution's BackedgeTakenInfo (its ExitNotTakenInfo holds a
PoisoningVH<BasicBlock>).
Fix by special casing the `Poisoned` case.
Aided By Claude Opus 4.8
Commit: b771021970fcacf5eb01aaca360541534fc51547
https://github.com/llvm/llvm-project/commit/b771021970fcacf5eb01aaca360541534fc51547
Author: lntue <lntue at google.com>
Date: 2026-05-30 (Sat, 30 May 2026)
Changed paths:
M .github/workflows/libc-fullbuild-tests.yml
Log Message:
-----------
[libc][ci] Clean up libc-fullbuild-tests precommit CI. (#200520)
- Pin containers.
- Cleaner names for different targets and options.
- Add Build Test step.
- Skip shared tests and death tests.
Commit: 013ee58df53b528657bc18d3869fa5dc8d1d5ff5
https://github.com/llvm/llvm-project/commit/013ee58df53b528657bc18d3869fa5dc8d1d5ff5
Author: Vitaly Buka <vitalybuka at google.com>
Date: 2026-05-30 (Sat, 30 May 2026)
Changed paths:
M llvm/include/llvm/DebugInfo/PDB/Native/PDBFile.h
M llvm/include/llvm/DebugInfo/PDB/Native/PDBFileBuilder.h
M llvm/include/llvm/DebugInfo/PDB/Native/PDBStringTableBuilder.h
M llvm/include/llvm/DebugInfo/PDB/Native/RawConstants.h
M llvm/lib/DebugInfo/PDB/Native/PDBFile.cpp
M llvm/lib/DebugInfo/PDB/Native/PDBFileBuilder.cpp
R llvm/test/tools/llvm-pdbutil/dxcontainer.test
M llvm/tools/llvm-pdbutil/PdbYaml.cpp
M llvm/tools/llvm-pdbutil/PdbYaml.h
M llvm/tools/llvm-pdbutil/YAMLOutputStyle.cpp
M llvm/tools/llvm-pdbutil/YAMLOutputStyle.h
M llvm/tools/llvm-pdbutil/llvm-pdbutil.cpp
M llvm/tools/llvm-pdbutil/llvm-pdbutil.h
Log Message:
-----------
Revert "Reapply "[PDB][llvm-pdbutil] Add DXContainer support for `pdb2yaml` and `yaml2pdb`"" (#200588)
Reverts llvm/llvm-project#200413
Breaks build bots:
https://lab.llvm.org/buildbot/#/builders/169/builds/23142
https://lab.llvm.org/buildbot/#/builders/25/builds/18082
Commit: 56a9bba59817fa9ae5c91e011c1885ba7a689695
https://github.com/llvm/llvm-project/commit/56a9bba59817fa9ae5c91e011c1885ba7a689695
Author: Alexis Engelke <engelke at in.tum.de>
Date: 2026-05-30 (Sat, 30 May 2026)
Changed paths:
M llvm/include/llvm/IR/FMF.h
M llvm/include/llvm/IR/Operator.h
M llvm/include/llvm/IR/Value.h
M llvm/lib/Transforms/InstCombine/InstructionCombining.cpp
M llvm/lib/Transforms/Scalar/Reassociate.cpp
M llvm/lib/Transforms/Utils/Local.cpp
Log Message:
-----------
[IR] SubclassOptionalData is only optional for Instruction (#200419)
BasicBlock currently uses this for HasAddressTaken. ConstantExpr uses
this for flags and it should not be possible to modify constant
expressions after they have been created.
Therefore, update the documentation accordingly and remove the unsafe
clearSubclassOptionalData.
Remove hasSameSubclassOptionalData, as it is unused.
Commit: 90779840d51aa3fff6fa030ade7150bc647ac5ff
https://github.com/llvm/llvm-project/commit/90779840d51aa3fff6fa030ade7150bc647ac5ff
Author: Justin Lebar <justin.lebar at gmail.com>
Date: 2026-05-30 (Sat, 30 May 2026)
Changed paths:
M llvm/lib/Transforms/Utils/LowerInvoke.cpp
M llvm/test/Transforms/LowerInvoke/lowerinvoke.ll
Log Message:
-----------
[LowerInvoke] Use createCallMatchingInvoke instead of rolling it ourselves (#200536)
Using createCallMatchingInvoke ensures we copy metadata from the invoke
onto the call.
This bug was found by a large run of Opus 4.7 looking for bugs in LLVM.
Commit: 1f10f1ca8af3dff956b353d7ff3ea169c82ed909
https://github.com/llvm/llvm-project/commit/1f10f1ca8af3dff956b353d7ff3ea169c82ed909
Author: Fangrui Song <i at maskray.me>
Date: 2026-05-30 (Sat, 30 May 2026)
Changed paths:
M llvm/include/llvm/ADT/DenseMap.h
M llvm/lib/IR/Value.cpp
M llvm/unittests/ADT/BitVectorTest.cpp
Log Message:
-----------
[DenseMap] Replace tombstone deletion with TAOCP 6.4 Algorithm R (#200595)
DenseMap uses quadratic probing with lazy deletion: an erased entry
becomes a tombstone, a third bucket state alongside empty and live that
every find/insert must inspect.
Switch to linear probing with backward-shift deletion (Knuth TAOCP 6.4
Algorithm R), similar to the SmallPtrSet change #197637. This removes
the tombstone state entirely.
In exchange, erase now relocates the following live entries to close the
hole, so it invalidates iterators and references other than the erased
one. For callers that cache pointers into the bucket array,
erase(Key, OnMoved) and erase(iterator, OnMoved) fire a callback once
per
shifted bucket, so fix-ups cost O(cluster) rather than O(NumEntries).
ValueHandleBase::RemoveFromUseList uses this to refresh each moved
handle's PrevPtr.
Linear probing is more vulnerable to primary clustering than quadratic
probing, so this relies on the stronger DenseMapInfo<T*>::getHashValue
mixer from #197390.
Operation distribution when compiling CGExpr.cpp/ScalarEvolution.cpp:
62.8% lookups, 34.3% inserts, 2.9% erases. The heaviest DenseMap
specializations have pointer keys and 16-byte key/value pairs.
Alternatives such as Robin Hood hashing, Verstable, and Boost's
unordered_flat_map were evaluated; they are slower and have a larger
code footprint. I believe the current in-band sentinel value approach,
despite the pain (#146595), is the best, or at least very difficult to
beat.
---
This is a pure reland of #199615 (reverted in #200421) after fixing
the PoisoningVH bug by #200540.
Non-core cleanups aided by Claude Opus 4.7.
Commit: 6d2a90bd8bf321df0d1c3f2953fcc51ce5344b13
https://github.com/llvm/llvm-project/commit/6d2a90bd8bf321df0d1c3f2953fcc51ce5344b13
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2026-05-30 (Sat, 30 May 2026)
Changed paths:
M llvm/lib/Target/X86/X86ISelLowering.cpp
M llvm/test/CodeGen/X86/vector-shuffle-combining-avx512vbmi2.ll
Log Message:
-----------
[X86] matchBinaryPermuteShuffle - match to X86ISD::SHLD funnel shift patterns (REAPPLIED) (#200604)
Add matchShuffleAsVSHLD helper to recognise shuffle masks that can fold
to funnel shifts
Reapplied with fix for shift amount not being appropriately scaled -
test case added at #200569
Fixes #145276
Commit: 42d712ea62f5430d515ee86c3c351816e4188459
https://github.com/llvm/llvm-project/commit/42d712ea62f5430d515ee86c3c351816e4188459
Author: Florian Hahn <flo at fhahn.com>
Date: 2026-05-30 (Sat, 30 May 2026)
Changed paths:
M llvm/lib/Target/X86/X86TargetTransformInfo.cpp
M llvm/test/Transforms/LoopVectorize/X86/vector_max_bandwidth.ll
Log Message:
-----------
[X86][TTI] Use dyn_cast_or_null in getGSVectorCost. (#200606)
Ptr may be nullptr, use dyn_cast_or_null to fix crash.
Fixes https://github.com/llvm/llvm-project/issues/200330.
Commit: 8d5d550242cfda2deb9a098b6f86b4fd0b1c06a6
https://github.com/llvm/llvm-project/commit/8d5d550242cfda2deb9a098b6f86b4fd0b1c06a6
Author: Ramkumar Ramachandra <artagnon at tenstorrent.com>
Date: 2026-05-30 (Sat, 30 May 2026)
Changed paths:
M llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
M llvm/lib/Transforms/Vectorize/VPlanConstruction.cpp
M llvm/lib/Transforms/Vectorize/VPlanPatternMatch.h
M llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
M llvm/lib/Transforms/Vectorize/VPlanUtils.cpp
M llvm/lib/Transforms/Vectorize/VPlanUtils.h
Log Message:
-----------
[VPlan] Factor vputils::getIntrinsicID (NFC) (#200174)
In preparation to get getOpcodeOrIntrinsicID used by CSE to handle calls
and to constant-fold intrinsic calls, factor out vputils::getIntrinsicID
from VPlanPatternMatch to re-use.
Commit: 223ef1f31274c5dc0f176789fa09e9e467fb49fe
https://github.com/llvm/llvm-project/commit/223ef1f31274c5dc0f176789fa09e9e467fb49fe
Author: Ramkumar Ramachandra <artagnon at tenstorrent.com>
Date: 2026-05-30 (Sat, 30 May 2026)
Changed paths:
M clang/lib/CodeGen/CGBuiltin.cpp
M clang/test/CodeGen/builtins-nvptx-native-half-type.c
M clang/test/CodeGen/promoted-complex-div.c
M llvm/include/llvm/Analysis/ConstantFolding.h
M llvm/include/llvm/Analysis/InstSimplifyFolder.h
M llvm/include/llvm/Analysis/TargetFolder.h
M llvm/include/llvm/IR/ConstantFolder.h
M llvm/include/llvm/IR/IRBuilder.h
M llvm/include/llvm/IR/IRBuilderFolder.h
M llvm/include/llvm/IR/NoFolder.h
M llvm/lib/Analysis/ConstantFolding.cpp
M llvm/lib/IR/IRBuilder.cpp
M llvm/lib/Target/AMDGPU/AMDGPUCodeGenPrepare.cpp
M llvm/lib/Target/AMDGPU/AMDGPULibCalls.cpp
M llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp
M llvm/lib/Transforms/InstCombine/InstCombineCompares.cpp
M llvm/lib/Transforms/InstCombine/InstCombineMulDivRem.cpp
M llvm/lib/Transforms/Utils/SimplifyLibCalls.cpp
M llvm/test/Transforms/SLPVectorizer/AArch64/extracts-from-scalarizable-vector.ll
M llvm/test/Transforms/SLPVectorizer/RISCV/reduction-extension-after-bitwidth.ll
M llvm/test/Transforms/SLPVectorizer/RISCV/reductions.ll
M llvm/test/Transforms/SLPVectorizer/SystemZ/reorder-same-node.ll
M llvm/test/Transforms/SLPVectorizer/X86/const-reduced-vals-resized.ll
M llvm/test/Transforms/SLPVectorizer/X86/constant-based-reductions.ll
M llvm/test/Transforms/SLPVectorizer/X86/crash_reordering_undefs.ll
M llvm/test/Transforms/SLPVectorizer/X86/ctpop-non-power-of-2-reduction.ll
M llvm/test/Transforms/SLPVectorizer/X86/identity-match-splat-less-defined.ll
M llvm/test/Transforms/SLPVectorizer/X86/minbw-multiused-from-gather.ll
M llvm/test/Transforms/SLPVectorizer/X86/multi-tracked-reduced-value.ll
M llvm/test/Transforms/SLPVectorizer/X86/non-load-reduced-as-part-of-bv.ll
M llvm/test/Transforms/SLPVectorizer/X86/reduce-with-folded-to-consts.ll
M llvm/test/Transforms/SLPVectorizer/X86/reduced-value-replace-extractelement.ll
M llvm/test/Transforms/SLPVectorizer/X86/reduced-value-vectorized-later.ll
M llvm/test/Transforms/SLPVectorizer/X86/reduction-value-in-tree.ll
M llvm/test/Transforms/SLPVectorizer/X86/reschedule-only-scheduled.ll
M llvm/test/Transforms/SLPVectorizer/X86/revec-reduced-value-replace-extractelement.ll
M llvm/test/Transforms/SLPVectorizer/X86/revec-reduced-value-vectorized-later.ll
M llvm/test/Transforms/SLPVectorizer/X86/trunc-node-reused.ll
Log Message:
-----------
[IRBuilder] ConstFold unary intrinsics (#200496)
Extend TargetFolder and InstSimplifyFolder to fold unary intrinsics.
CreateUnaryIntrinsic now returns a Value, similar to
CreateBinaryIntrinsic, and this has necessitated more changes.
Commit: 866945c20298c1bca4af6973a31f4739dfe49e91
https://github.com/llvm/llvm-project/commit/866945c20298c1bca4af6973a31f4739dfe49e91
Author: Nhat Nguyen <nhat7203 at gmail.com>
Date: 2026-05-30 (Sat, 30 May 2026)
Changed paths:
M libcxx/docs/FeatureTestMacroTable.rst
M libcxx/docs/ReleaseNotes/23.rst
M libcxx/docs/Status/Cxx2cIssues.csv
M libcxx/docs/Status/Cxx2cPapers.csv
M libcxx/include/CMakeLists.txt
A libcxx/include/__ranges/concat_view.h
M libcxx/include/module.modulemap.in
M libcxx/include/ranges
M libcxx/include/version
M libcxx/modules/std/ranges.inc
A libcxx/test/libcxx/ranges/range.adaptors/range.concat/iterator.valueless_by_exception.pass.cpp
A libcxx/test/libcxx/ranges/range.adaptors/range.concat/nodiscard.verify.cpp
M libcxx/test/std/language.support/support.limits/support.limits.general/ranges.version.compile.pass.cpp
M libcxx/test/std/language.support/support.limits/support.limits.general/version.version.compile.pass.cpp
M libcxx/test/std/library/description/conventions/customization.point.object/cpo.compile.pass.cpp
A libcxx/test/std/ranges/range.adaptors/range.concat/adaptor.pass.cpp
A libcxx/test/std/ranges/range.adaptors/range.concat/begin.pass.cpp
A libcxx/test/std/ranges/range.adaptors/range.concat/constraints.pass.cpp
A libcxx/test/std/ranges/range.adaptors/range.concat/ctad.pass.cpp
A libcxx/test/std/ranges/range.adaptors/range.concat/ctor.default.pass.cpp
A libcxx/test/std/ranges/range.adaptors/range.concat/ctor.views.pass.cpp
A libcxx/test/std/ranges/range.adaptors/range.concat/end.pass.cpp
A libcxx/test/std/ranges/range.adaptors/range.concat/iterator/arithmetic.pass.cpp
A libcxx/test/std/ranges/range.adaptors/range.concat/iterator/compare.pass.cpp
A libcxx/test/std/ranges/range.adaptors/range.concat/iterator/ctor.default.pass.cpp
A libcxx/test/std/ranges/range.adaptors/range.concat/iterator/ctor.other.pass.cpp
A libcxx/test/std/ranges/range.adaptors/range.concat/iterator/decrement.pass.cpp
A libcxx/test/std/ranges/range.adaptors/range.concat/iterator/deref.pass.cpp
A libcxx/test/std/ranges/range.adaptors/range.concat/iterator/increment.pass.cpp
A libcxx/test/std/ranges/range.adaptors/range.concat/iterator/iter_move.pass.cpp
A libcxx/test/std/ranges/range.adaptors/range.concat/iterator/iter_swap.pass.cpp
A libcxx/test/std/ranges/range.adaptors/range.concat/iterator/member_types.compile.pass.cpp
A libcxx/test/std/ranges/range.adaptors/range.concat/iterator/subscript.pass.cpp
A libcxx/test/std/ranges/range.adaptors/range.concat/size.pass.cpp
A libcxx/test/std/ranges/range.adaptors/range.concat/types.h
M libcxx/utils/generate_feature_test_macro_components.py
Log Message:
-----------
[libc++][ranges] P2542R8: Implement `views::concat` (#120920)
Closes #105419
Closes #105348
Closes #105349
Closes #171314
Assisted-by: Chatgpt.
I use AI to help me write some tests, however. I have reviewed the code
I submit in the tests.
---------
Co-authored-by: A. Jiang <de34 at live.cn>
Co-authored-by: Hristo Hristov <hghristov.rmm at gmail.com>
Co-authored-by: Hristo Hristov <zingam at outlook.com>
Commit: 7a07381d55111165be955ae7919c460b71aed0ae
https://github.com/llvm/llvm-project/commit/7a07381d55111165be955ae7919c460b71aed0ae
Author: lntue <lntue at google.com>
Date: 2026-05-30 (Sat, 30 May 2026)
Changed paths:
M libc/src/wctype/CMakeLists.txt
M libc/src/wctype/wctype.cpp
R libc/src/wctype/wctype.h
A libc/src/wctype/wctype_impl.h
M libc/test/src/wctype/iswctype_test.cpp
M libc/test/src/wctype/wctype_test.cpp
Log Message:
-----------
[libc][wctype] Rename src/wctype/wctype.h to avoid name collision with system header. (#200613)
Commit: b51054818b78dc395cd4d33f17cfb6e98a36a76d
https://github.com/llvm/llvm-project/commit/b51054818b78dc395cd4d33f17cfb6e98a36a76d
Author: Justin T. Gibbs <gibbs at scsiguy.com>
Date: 2026-05-30 (Sat, 30 May 2026)
Changed paths:
M compiler-rt/lib/asan/asan_allocator.cpp
Log Message:
-----------
[asan] NFC: tag ambiguous literal args at Allocate call sites (#200615)
Groundwork for #200478
Add /*name=*/ comments to ambiguous literal call-site arguments in
compiler-rt/lib/asan/asan_allocator.cpp so the parameter name is visible
at the call site for the Allocate / instance.Allocate uses. Covers the
can_fill flag and the bare alignment literals (8, 16, 0) used by:
asan_malloc / asan_vec_malloc / asan_realloc / asan_valloc /
asan_pvalloc / asan_memalign / asan_aligned_alloc /
asan_posix_memalign / asan_new / asan_new_aligned
and the internal Reallocate / Calloc paths.
NFC.
Assisted by: Claude Opus 4.7
Commit: baa079610087a765edf4edada9e3f155c8ef0b16
https://github.com/llvm/llvm-project/commit/baa079610087a765edf4edada9e3f155c8ef0b16
Author: Justin T. Gibbs <gibbs at scsiguy.com>
Date: 2026-05-30 (Sat, 30 May 2026)
Changed paths:
M compiler-rt/lib/asan/asan_allocator.cpp
M compiler-rt/lib/asan/asan_allocator.h
M compiler-rt/lib/asan/asan_malloc_linux.cpp
M compiler-rt/lib/asan/asan_malloc_mac.cpp
M compiler-rt/lib/asan/asan_new_delete.cpp
M compiler-rt/lib/asan/tests/asan_noinst_test.cpp
Log Message:
-----------
[asan] NFC: clang-format allocator-related files (#200478)
Depends on #200615
Groundwork for #196413.
Mechanical cleanup of allocator related files in preparation of
functional changes. clang-format (v21.1.2) applied whole-file to:
compiler-rt/lib/asan/asan_allocator.cpp
compiler-rt/lib/asan/asan_allocator.h
compiler-rt/lib/asan/asan_malloc_linux.cpp
compiler-rt/lib/asan/asan_malloc_mac.cpp
compiler-rt/lib/asan/asan_new_delete.cpp
compiler-rt/lib/asan/tests/asan_noinst_test.cpp
Both compiler-rt/lib/asan/.clang-format and
compiler-rt/lib/sanitizer_common/.clang-format use
"BasedOnStyle: Google", so pointer alignment becomes "Type* name"
throughout.
NFC.
Assisted by: Claude Opus 4.7
Commit: 16a127b531eb7916d5f3b4839d1a9cc2852df4b1
https://github.com/llvm/llvm-project/commit/16a127b531eb7916d5f3b4839d1a9cc2852df4b1
Author: Justin Lebar <justin.lebar at gmail.com>
Date: 2026-05-30 (Sat, 30 May 2026)
Changed paths:
M llvm/lib/Transforms/Utils/Local.cpp
M llvm/test/Transforms/GVN/invariant.group.ll
M llvm/test/Transforms/NewGVN/invariant.group.ll
M llvm/test/Transforms/SimplifyCFG/merge-cond-stores.ll
Log Message:
-----------
[IR] Fix !invariant.group in combineMetadataForCSE when K moves (#200551)
SimplifyCFG mergeConditionalStoreToAddress currently transforms
if (cond)
store ptr, x !invariant.group;
else
store ptr, y;
into
store ptr, select(cond, x, y) !invariant.group; // BUG
It's clearly not valid to preserve !invariant.group here.
Fix this inside combineMetadataForCSE. It can only preserve
!invariant.group if
1. !DoesKMove, meaning that original instruction ("K") is replaced by
the combined instruction in place, without moving it,
2. Both stores have !invariant.group.
This matches the logic for preserving !invariant.load.
This bug was found by a large run of Opus 4.7 looking for bugs in LLVM.
Commit: dbf01d40ca99e24756f7872ea39644b2fdb46f3d
https://github.com/llvm/llvm-project/commit/dbf01d40ca99e24756f7872ea39644b2fdb46f3d
Author: NAKAMURA Takumi <geek4civic at gmail.com>
Date: 2026-05-31 (Sun, 31 May 2026)
Changed paths:
M utils/bazel/llvm-project-overlay/clang/include/clang/Config/config.h
Log Message:
-----------
[bazel] Add CLANG_USE_EXPERIMENTAL_CONST_INTERP (fixup for #199396) (#200619)
Commit: b17edc69b07d2753ca74a3a0139cbfa68f2940b8
https://github.com/llvm/llvm-project/commit/b17edc69b07d2753ca74a3a0139cbfa68f2940b8
Author: Aiden Grossman <aidengrossman at google.com>
Date: 2026-05-31 (Sun, 31 May 2026)
Changed paths:
M llvm/lib/CodeGen/ExpandIRInsts.cpp
Log Message:
-----------
[ExpandIRInsts] Drop ProfcheckDisableMetadataFixes in some cases (#200627)
This is unnecessary inside of applyProfMetadataIfEnabled because it is
already handled before the callback lambda gets called within the
function. There was also a redundant case to remove.
Commit: 1f2223d231a73da00168b6c205a0e59e147a55d3
https://github.com/llvm/llvm-project/commit/1f2223d231a73da00168b6c205a0e59e147a55d3
Author: Aiden Grossman <aidengrossman at google.com>
Date: 2026-05-31 (Sun, 31 May 2026)
Changed paths:
M llvm/lib/CodeGen/ExpandIRInsts.cpp
M llvm/utils/profcheck-xfail.txt
Log Message:
-----------
[ExpandIRInsts] Fix profile metadata after #200291 (#200629)
Commit: e920ece6ae3ba4b41b0a5ba9a7a6b95b9eb560d6
https://github.com/llvm/llvm-project/commit/e920ece6ae3ba4b41b0a5ba9a7a6b95b9eb560d6
Author: Craig Topper <craig.topper at sifive.com>
Date: 2026-05-30 (Sat, 30 May 2026)
Changed paths:
M llvm/lib/Target/RISCV/RISCVOptWInstrs.cpp
M llvm/test/CodeGen/RISCV/prefer-w-inst.mir
M llvm/test/CodeGen/RISCV/sextw-removal.ll
Log Message:
-----------
[RISCV] Prevent RISCVOptWInstrs from shrinking volatile LD instructions. (#200472)
Fixes #200379
Commit: b49a468051e1d36af19096cd01ff6a4b9a367ead
https://github.com/llvm/llvm-project/commit/b49a468051e1d36af19096cd01ff6a4b9a367ead
Author: Sergei Barannikov <barannikov88 at gmail.com>
Date: 2026-05-31 (Sun, 31 May 2026)
Changed paths:
M llvm/include/llvm/ProfileData/GCOV.h
M llvm/lib/ProfileData/InstrProfCorrelator.cpp
Log Message:
-----------
[Profile] Remove unused argument of DataExtractor constructor (NFC) (#197119)
`AddressSize` parameter is not used by `DataExtractor` and will be
removed in the future. See #190519 for more context.
Commit: 80f6b7641ef95d435a9e641970291375e3013cbe
https://github.com/llvm/llvm-project/commit/80f6b7641ef95d435a9e641970291375e3013cbe
Author: Sergei Barannikov <barannikov88 at gmail.com>
Date: 2026-05-31 (Sun, 31 May 2026)
Changed paths:
M llvm/include/llvm/Object/ELF.h
M llvm/lib/Object/Decompressor.cpp
M llvm/lib/Object/ELF.cpp
M llvm/lib/Object/MachOObjectFile.cpp
M llvm/lib/Object/XCOFFObjectFile.cpp
Log Message:
-----------
[Object] Remove unused argument of DataExtractor constructor (NFC) (#197124)
`AddressSize` parameter is not used by `DataExtractor` and will be
removed in the future. See #190519 for more context.
Commit: da3f152eebca11285f33777bf3bb97f69fb9f10d
https://github.com/llvm/llvm-project/commit/da3f152eebca11285f33777bf3bb97f69fb9f10d
Author: Alexis Engelke <engelke at in.tum.de>
Date: 2026-05-31 (Sun, 31 May 2026)
Changed paths:
M llvm/include/llvm/IR/Constant.h
M llvm/include/llvm/IR/Constants.h
M llvm/lib/IR/Constants.cpp
M llvm/lib/IR/ConstantsContext.h
Log Message:
-----------
[IR][NFC] Fast path for Constant::isNullValue (#200434)
Constant::isNullValue is the, by far, most frequently called out-of-line
function of Constant. It also has non-trivial logic and needs to switch
on the class type.
Therefore, compute the "is null" property once on construction and store
it in an unused bit in SubclassOptionalData.
This improves performance of stage2-O3 by 0.15%.
Commit: c78c9004a7f82de1c9d9e7489651e4d6e9320e01
https://github.com/llvm/llvm-project/commit/c78c9004a7f82de1c9d9e7489651e4d6e9320e01
Author: David Green <david.green at arm.com>
Date: 2026-05-31 (Sun, 31 May 2026)
Changed paths:
M llvm/test/CodeGen/AArch64/bf16-instructions.ll
M llvm/test/CodeGen/AArch64/bf16-v4-instructions.ll
M llvm/test/CodeGen/AArch64/bf16-v8-instructions.ll
Log Message:
-----------
[AArch64] Add tests for bf16 convert with fast-math flags. NFC (#200643)
Commit: a67efda258fa73c7b6b915fb31b8412b800a15e9
https://github.com/llvm/llvm-project/commit/a67efda258fa73c7b6b915fb31b8412b800a15e9
Author: Florian Hahn <flo at fhahn.com>
Date: 2026-05-31 (Sun, 31 May 2026)
Changed paths:
M llvm/lib/Transforms/Vectorize/VPlanUtils.cpp
M llvm/test/Transforms/LoopVectorize/RISCV/masked_gather_scatter.ll
Log Message:
-----------
[VPlan] Recognize shl by constant in getSCEVExprForVPValue. (#199359)
Treat `shl x, c` (with c < bitwidth) as `x * (1 << c)` so callers that
analyze GEP indices via SCEV can see through stride shifts written as
logical shifts.
PR: https://github.com/llvm/llvm-project/pull/199359
Commit: 7966cbbdd02b686dbee9134514ea113772bcfa62
https://github.com/llvm/llvm-project/commit/7966cbbdd02b686dbee9134514ea113772bcfa62
Author: Conor Kotwasinski <conorkotwasinski2024 at u.northwestern.edu>
Date: 2026-05-31 (Sun, 31 May 2026)
Changed paths:
M llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
M llvm/test/CodeGen/AArch64/alias_mask.ll
M llvm/test/CodeGen/AArch64/dag-combine-setcc.ll
M llvm/test/CodeGen/AArch64/fixed_masked_deinterleaved_loads.ll
M llvm/test/CodeGen/AArch64/fixed_masked_interleaved_stores.ll
M llvm/test/CodeGen/AArch64/sve-fixed-length-masked-expandloads.ll
M llvm/test/CodeGen/AArch64/sve-mask-partition.ll
M llvm/test/CodeGen/AArch64/vec-combine-compare-to-bitmask.ll
M llvm/test/CodeGen/AArch64/vec-combine-compare-truncate-store.ll
Log Message:
-----------
[AArch64] Use ADDP tree for v16i8 to i16 bitmask extraction (#199812)
Re-land of #192974, reverted in 868aefd.
The original PR was reverted because the new lowering produced an
EXTRACT_VECTOR_ELT with an illegal i16 result type, which tripped the
operation legalizer when called from combineBoolVectorAndTruncateStore
on a `<32 x i1>` store split into two `<16 x i1>` halves. Returning i32
(handled by the caller's existing getZExtOrTrunc) avoids this.
Regression test added: bitmask_v32i8_split in
vec-combine-compare-to-bitmask.ll.
Note: in alias_mask.ll's whilewr_8_split2, the four halfword bitmask
results are now stored as separate `str h` × 4 rather than packed into
a d-register via ZIP1+EXT before a single store. Functionally
equivalent, slightly fewer NEON arithmetic ops. Side effect of the i32
return type; the store-merging combine doesn't match the same shape.
Commit: 37845da44408c608b691c702375e06dccfd8b803
https://github.com/llvm/llvm-project/commit/37845da44408c608b691c702375e06dccfd8b803
Author: Daniil Dudkin <unterumarmung at yandex.ru>
Date: 2026-05-31 (Sun, 31 May 2026)
Changed paths:
M clang-tools-extra/clang-tidy/modernize/UseRangesCheck.cpp
M clang-tools-extra/clang-tidy/utils/UseRangesCheck.cpp
M clang-tools-extra/clang-tidy/utils/UseRangesCheck.h
M clang-tools-extra/docs/ReleaseNotes.rst
M clang-tools-extra/docs/clang-tidy/checks/modernize/use-ranges.rst
M clang-tools-extra/test/clang-tidy/checkers/modernize/Inputs/use-ranges/fake_std.h
M clang-tools-extra/test/clang-tidy/checkers/modernize/use-ranges.cpp
Log Message:
-----------
[clang-tidy] `use-ranges`: preserve used `unique` results (#196035)
Preserve iterator uses when replacing `std::unique` with
`std::ranges::unique` by appending `.begin()` in used-result contexts.
Fix #127658
Assisted by Codex.
Commit: 8dc098589f3123003846244e8df642a58bd17f4a
https://github.com/llvm/llvm-project/commit/8dc098589f3123003846244e8df642a58bd17f4a
Author: Daniil Dudkin <unterumarmung at yandex.ru>
Date: 2026-05-31 (Sun, 31 May 2026)
Changed paths:
M clang-tools-extra/clang-tidy/modernize/UseDefaultMemberInitCheck.cpp
M clang-tools-extra/clang-tidy/modernize/UseDefaultMemberInitCheck.h
M clang-tools-extra/docs/ReleaseNotes.rst
M clang-tools-extra/docs/clang-tidy/checks/modernize/use-default-member-init.rst
A clang-tools-extra/test/clang-tidy/checkers/modernize/Inputs/use-default-member-init/non-visible-references.h
A clang-tools-extra/test/clang-tidy/checkers/modernize/use-default-member-init-non-visible-references-notes.cpp
A clang-tools-extra/test/clang-tidy/checkers/modernize/use-default-member-init-non-visible-references.cpp
Log Message:
-----------
[clang-tidy] Avoid unsafe `use-default-member-init` fixes (#191607)
Suppress `modernize-use-default-member-init` diagnostics when moving a
constructor initializer into a default member initializer would
reference a declaration not visible from the field declaration.
Add `IgnoreNonVisibleReferences` to allow preserving the warning without
emitting unsafe fix-its, and document the new behavior.
Fixes #156412
Assisted by Codex
Commit: b48743be091be62232e3d51b7481604d224b992a
https://github.com/llvm/llvm-project/commit/b48743be091be62232e3d51b7481604d224b992a
Author: Daniil Dudkin <unterumarmung at yandex.ru>
Date: 2026-05-31 (Sun, 31 May 2026)
Changed paths:
M clang-tools-extra/clang-tidy/modernize/UseRangesCheck.cpp
M clang-tools-extra/docs/ReleaseNotes.rst
M clang-tools-extra/test/clang-tidy/checkers/modernize/Inputs/use-ranges/fake_std.h
M clang-tools-extra/test/clang-tidy/checkers/modernize/use-ranges.cpp
Log Message:
-----------
[clang-tidy] `use-ranges`: preserve iterator results with `.begin()` (#196036)
Preserve used iterator results for `remove`, `partition`,
`stable_partition`, and `rotate`-style replacements by appending
`.begin()` where the ranges algorithm returns a subrange.
Fix #124794
Assisted by Codex.
Commit: fe87c971bf07eb38af97ca96bf2810e94e7549dc
https://github.com/llvm/llvm-project/commit/fe87c971bf07eb38af97ca96bf2810e94e7549dc
Author: Yingwei Zheng <dtcxzyw2333 at gmail.com>
Date: 2026-05-31 (Sun, 31 May 2026)
Changed paths:
M llvm/tools/llubi/lib/Context.cpp
Log Message:
-----------
[llubi] Fix the number of words to reserve in `Context::toBytes` (#200651)
The bits should be divided by 64 instead of 8 :(
Commit: 5d20fd32807e4fdb4fc8b278a77c0ab06676fd15
https://github.com/llvm/llvm-project/commit/5d20fd32807e4fdb4fc8b278a77c0ab06676fd15
Author: Maximilian Ehlers <2843450+b-m-f at users.noreply.github.com>
Date: 2026-05-31 (Sun, 31 May 2026)
Changed paths:
M mlir/docs/Tutorials/Toy/Ch-2.md
Log Message:
-----------
[mlir] Fix typo in toy tutorial (#200640)
Signed-off-by: Maximilian Ehlers <maximilian at sodawa.com>
Commit: 025b9a27cf74c16e1b1467aa8d7423abaac8363b
https://github.com/llvm/llvm-project/commit/025b9a27cf74c16e1b1467aa8d7423abaac8363b
Author: Tomer Shafir <tomer.shafir8 at gmail.com>
Date: 2026-05-31 (Sun, 31 May 2026)
Changed paths:
M llvm/docs/TableGen/ProgRef.rst
M llvm/lib/TableGen/TGLexer.cpp
M llvm/lib/TableGen/TGLexer.h
M llvm/lib/TableGen/TGParser.cpp
M llvm/lib/TableGen/TGParser.h
A llvm/test/TableGen/switch.td
Log Message:
-----------
[TableGen] Add !switch operator (#199659)
This patch add a syntactic sugar operator to TableGen named `!switch`,
to simplify use cases where a user needs to conditionally use a value
based on exact key match. It supports variadic case arguments (0 or
more). It requires a default value - which creates a stricter grammar
that is simpler to parse, and I think the flexibility cost is not real -
it is considered a best practice in SW design for switch expressions (or
statements) on arbitrary types to always provide a default.
At parse time, after key and value type-checking, we reduce the
`!switch` expression to `!cond`, as they effectively entirely share the
downstream logic. The impl also extracts a shared pre-reduction
type-checking for `!switch` and `!cond` called
`TGParser::resolveInitTypes`.
Motivation: switch-behaving `!cond` value selection in `llvm/lib/Target`
e.g. from `llvm/lib/Target/AArch64/AArch64InstrFormats.td`:
```
// Helper class to convert vector element types to integers.
class ChangeElementTypeToInteger<ValueType InVT> {
ValueType VT = !cond(
!eq(InVT, v2f32): v2i32,
!eq(InVT, v4f32): v4i32,
// TODO: Other types.
true : untyped);
}
```
It seems like the patch can possibly have a pretty wide impact following
up, and make many parts of TableGen code a bit more compact. I intend to
migrate actual TableGen code in followup patches.
Commit: 07f9a7d2ab89731bdb9e4093c66f35c46044894a
https://github.com/llvm/llvm-project/commit/07f9a7d2ab89731bdb9e4093c66f35c46044894a
Author: Amr Hesham <amr96 at programmer.net>
Date: 2026-05-31 (Sun, 31 May 2026)
Changed paths:
M clang/lib/CIR/CodeGen/CIRGenAtomic.cpp
M clang/lib/CIR/CodeGen/CIRGenExprComplex.cpp
M clang/test/CIR/CodeGen/complex-atomic-cast.c
Log Message:
-----------
[CIR] Implement Atomic Complex to Complex cast (#199260)
Implement Atomic Complex to Complex types cast
Issue https://github.com/llvm/llvm-project/issues/192331
Commit: a89a6596129cbfdf788c5d0af0d4e071708afcf4
https://github.com/llvm/llvm-project/commit/a89a6596129cbfdf788c5d0af0d4e071708afcf4
Author: Justin Lebar <justin.lebar at gmail.com>
Date: 2026-05-31 (Sun, 31 May 2026)
Changed paths:
M llvm/lib/Transforms/Scalar/TailRecursionElimination.cpp
M llvm/test/Transforms/TailCallElim/accum_recursion.ll
M llvm/test/Transforms/TailCallElim/dropping_debugloc_acc_rec_inst_rnew.ll
Log Message:
-----------
[TailCallElim] Drop poison-generating flags on reassociated accumulators (#200624)
For example if you have recursion like
int prod(n) {
if (n == 0) return 1;
return prod(n-1) * f(n)
}
then logically this computes (((f(1) * f(2)) * f(3)) * f(4)) * ... f(n).
But TailCallElim reassociates this, computing instead
((f(n) * f(n-1)) * f(n-2)) * ...
If the operator (* in this case) had poison-generating flags like
nsw, those may not still apply after reassociation. (For example,
suppose in this example f(1) returns 0 -- in that case the original
multiplication cannot overflow, but the new one still might.)
Fix this by clearing the poison-generating flags after reassociating.
Commit: c42f1884730fb51a5f802ad621c0cc7f68715424
https://github.com/llvm/llvm-project/commit/c42f1884730fb51a5f802ad621c0cc7f68715424
Author: Dave Lee <davelee.com at gmail.com>
Date: 2026-05-31 (Sun, 31 May 2026)
Changed paths:
M lldb/source/Commands/CommandObjectFrame.cpp
Log Message:
-----------
[lldb] Fix up comment placement (NFC) (#200671)
Follow up to https://github.com/llvm/llvm-project/pull/200084
Commit: 77860f206812145c7d327aa139a75ed09726695e
https://github.com/llvm/llvm-project/commit/77860f206812145c7d327aa139a75ed09726695e
Author: Rahul Joshi <rjoshi at nvidia.com>
Date: 2026-05-31 (Sun, 31 May 2026)
Changed paths:
M llvm/lib/IR/Verifier.cpp
Log Message:
-----------
[NFC][LLVM] Remove redundant verifier type checks for some intrinsics (#200658)
Remove the following redundant type checks:
* `[s|u]div_fix*` intrinsics, existing checks in `isSignatureValid` will
verify that arg0 and arg1 are int or int vectors (since they use
`llvm_anyint_ty`) and arg2 is declared as i32, so checks related to it
are also redundant.
* For `lrint` family, the result is `llvm_anyfloat_ty` and the argument
is `llvm_anyint_ty`, so one of the checks is redundant.
Commit: 5000716798109db57396540160b9d989441b95b6
https://github.com/llvm/llvm-project/commit/5000716798109db57396540160b9d989441b95b6
Author: Arseniy Obolenskiy <arseniy.obolenskiy at amd.com>
Date: 2026-05-31 (Sun, 31 May 2026)
Changed paths:
M mlir/lib/Conversion/MathToSPIRV/MathToSPIRV.cpp
M mlir/test/Conversion/MathToSPIRV/math-to-gl-spirv.mlir
Log Message:
-----------
[mlir][SPIR-V] Convert math.cttz to spirv.GLFindILsb (#200455)
Commit: e3574d46e0de8d2c96beb0d092812a3cab153db7
https://github.com/llvm/llvm-project/commit/e3574d46e0de8d2c96beb0d092812a3cab153db7
Author: Rahul Joshi <rjoshi at nvidia.com>
Date: 2026-05-31 (Sun, 31 May 2026)
Changed paths:
M llvm/include/llvm/IR/Intrinsics.td
Log Message:
-----------
[NFC][LLVM] Fix Intrinsics.td to adhere to 80 col limit (#199346)
Verified that there is no difference in the tablegen generated files for
intrinsics except line number changes in the comments in
IntrinsicEnums.inc.
Commit: 62a23823a97991f09745b9e76f81b490989bc467
https://github.com/llvm/llvm-project/commit/62a23823a97991f09745b9e76f81b490989bc467
Author: Vedran Miletić <vedran at miletic.net>
Date: 2026-05-31 (Sun, 31 May 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/SIISelLowering.cpp
M llvm/test/CodeGen/AMDGPU/fdiv.f16.ll
Log Message:
-----------
[AMDGPU] Use v_rsq_f32 for f16 rsqrt on targets without 16-bit insts (#200646)
On gfx6/gfx7 the f16 1.0/sqrt(x) pattern was not folded to a reciprocal
square root because performFDivCombine bailed out whenever f16 fsqrt was
not a legal operation. f16 fsqrt is Custom (promoted) on these targets,
so the combine never fired and the full f32 fdiv expansion was emitted.
Split the legality check: when same-type fsqrt is legal (gfx8+), keep
emitting the native rsq. For f16 without a legal fsqrt, compute the
reciprocal square root in f32 with v_rsq_f32 and round back. This is
accurate enough for f16, and needs no denormal scaling because every f16
value extends to a normal f32 and an f16 rsq result is never denormal.
bf16 is intentionally left expanded: it shares f32's exponent range, so
bf16 denormals would extend to f32 denormals that v_rsq_f32 does not
handle.
Fixes #76948
Co-authored-by: Claude Opus 4.8 <noreply at anthropic.com>
Commit: 4298580c5516bc37c5afd3389b61374ac4b6014e
https://github.com/llvm/llvm-project/commit/4298580c5516bc37c5afd3389b61374ac4b6014e
Author: David Green <david.green at arm.com>
Date: 2026-05-31 (Sun, 31 May 2026)
Changed paths:
M llvm/lib/Target/ARM/ARMISelLowering.cpp
A llvm/test/CodeGen/Thumb2/mve-shuffle-fp16.ll
Log Message:
-----------
[ARM] Fix some fp16 Shuffle lowering without +fullfp16 (#200688)
Without fullfp16 f16 is not a legal type, meaning we need to be careful
with
how we legalize shuffle vector and buildvector operations that cannot be
treated more optimially using shuffles.
Commit: 0631ac764a565ed13283e3c7b70a746d0a8018cc
https://github.com/llvm/llvm-project/commit/0631ac764a565ed13283e3c7b70a746d0a8018cc
Author: sstwcw <su3e8a96kzlver at posteo.net>
Date: 2026-05-31 (Sun, 31 May 2026)
Changed paths:
M clang/lib/Format/DefinitionBlockSeparator.cpp
M clang/unittests/Format/DefinitionBlockSeparatorTest.cpp
Log Message:
-----------
[clang-format] Remove the blank line in the function try block (#199086)
old with config `{SeparateDefinitionBlocks: Always}`
```C++
void foo() try {
// do something
} catch (const std::exception &e) {
// handle exception
}
```
new
```C++
void foo() try {
// do something
} catch (const std::exception &e) {
// handle exception
}
```
Fixes #58183.
With the option `SeparateDefinitionBlocks` set, the program previously
added a blank line in the catch block. Now the problem is fixed.
Commit: fae9a1c3e887d58f03994d078f117e1f29b1810c
https://github.com/llvm/llvm-project/commit/fae9a1c3e887d58f03994d078f117e1f29b1810c
Author: sstwcw <su3e8a96kzlver at posteo.net>
Date: 2026-05-31 (Sun, 31 May 2026)
Changed paths:
M clang/lib/Format/FormatToken.h
M clang/lib/Format/UnwrappedLineParser.cpp
M clang/lib/Format/UnwrappedLineParser.h
M clang/unittests/Format/FormatTestVerilog.cpp
Log Message:
-----------
[clang-format] Recognize Verilog class item qualifiers (#199085)
old
```SystemVerilog
class Packet
extern protected virtual function int send
(int value);
endclass : Packet
```
new
```SystemVerilog
class Packet
extern protected virtual function int send
(int value);
endclass : Packet
```
Previously the `extern` line failed to parse completely because the
`protected virtual` part was not recognized. It made the following lines
get indented wrong.
Commit: 6897c5e24ce5e78afc2084f2c573577508443db1
https://github.com/llvm/llvm-project/commit/6897c5e24ce5e78afc2084f2c573577508443db1
Author: Min-Yih Hsu <min at myhsu.dev>
Date: 2026-05-31 (Sun, 31 May 2026)
Changed paths:
M llvm/lib/Target/M68k/AsmParser/M68kAsmParser.cpp
M llvm/lib/Target/M68k/Disassembler/M68kDisassembler.cpp
M llvm/lib/Target/M68k/M68kAsmPrinter.cpp
M llvm/lib/Target/M68k/M68kAsmPrinter.h
M llvm/lib/Target/M68k/M68kISelDAGToDAG.cpp
M llvm/lib/Target/M68k/M68kInstrControl.td
M llvm/lib/Target/M68k/M68kInstrData.td
M llvm/lib/Target/M68k/M68kInstrFormats.td
M llvm/lib/Target/M68k/M68kInstrInfo.td
M llvm/lib/Target/M68k/MCTargetDesc/M68kBaseInfo.h
M llvm/lib/Target/M68k/MCTargetDesc/M68kInstPrinter.cpp
M llvm/lib/Target/M68k/MCTargetDesc/M68kInstPrinter.h
M llvm/lib/Target/M68k/MCTargetDesc/M68kMCCodeEmitter.cpp
M llvm/lib/Target/M68k/MCTargetDesc/M68kMemOperandPrinter.h
M llvm/test/MC/Disassembler/M68k/data.txt
A llvm/test/MC/M68k/Data/Classes/lea-m68020.s
M llvm/test/MC/M68k/Relocations/PIC/text-plt.s
M llvm/test/MC/M68k/Relocations/text-plt.s
Log Message:
-----------
[M68k][MC] Add MC support for PCI w/ base displacement addressing mode (#200696)
Program Counter Indirect with Index (PCI) is augmented in M68020+ with
(1) larger displacement (up to 32-bit), and (2) Index scaling factor. We
call this PCIBD (PCI with Base Displacement) to distinguish it with the
older PCI.
Since all the components inside PCIBD are optional, including index
register, we can actually use it to replace PCD (PC displacement)
addressing mode in newer machines in order to leverage the larger
displacement.
This is the first step to support 32-bit memory addresses on M68020+
machines.
Commit: 86350249871598fe76318ebd21af468879b9e87e
https://github.com/llvm/llvm-project/commit/86350249871598fe76318ebd21af468879b9e87e
Author: Benjamin Maxwell <benjamin.maxwell at arm.com>
Date: 2026-05-31 (Sun, 31 May 2026)
Changed paths:
M llvm/lib/Target/AArch64/AArch64InstrInfo.cpp
A llvm/test/CodeGen/AArch64/sve-ldst-multi-vec.mir
Log Message:
-----------
[AArch64][SME] Add multi-vector load opcodes to getMemOpInfo (#200238)
We recently started emitting these in
84fab943b5740ec273e9f8d238ea8420033320a4, which now means we can hit an
unhandled opcode error in AArch64InstrInfo::getMemOpInfo when resolving
stack offsets.
Fixes #200034
Commit: 1bbd613e6267ea0a08994b56adc73cc7b2b5d07d
https://github.com/llvm/llvm-project/commit/1bbd613e6267ea0a08994b56adc73cc7b2b5d07d
Author: Aayush Shrivastava <79578660+iamaayushrivastava at users.noreply.github.com>
Date: 2026-06-01 (Mon, 01 Jun 2026)
Changed paths:
M llvm/lib/Transforms/InstCombine/InstCombineShifts.cpp
M llvm/test/Analysis/ValueTracking/recurrence-knownbits.ll
M llvm/test/Transforms/InstCombine/and2.ll
M llvm/test/Transforms/InstCombine/conditional-variable-length-signext-after-high-bit-extract.ll
M llvm/test/Transforms/InstCombine/lshr.ll
M llvm/test/Transforms/InstCombine/shift-direction-in-bit-test.ll
Log Message:
-----------
[InstCombine] Fold lshr 1, X into zext (X == 0) (#200669)
This PR implements the missed optimisation reported in #200538.
`1 >> X` produces 1 only when X == 0, and 0 for all other in-range
values. Fold it directly into `zext (icmp eq X, 0)`.
Commit: 50f452f4b561eafccec23f649e379d9c845afa64
https://github.com/llvm/llvm-project/commit/50f452f4b561eafccec23f649e379d9c845afa64
Author: mike-goutokuji <gfunni234 at gmail.com>
Date: 2026-06-01 (Mon, 01 Jun 2026)
Changed paths:
M llvm/lib/Transforms/InstCombine/InstCombineSelect.cpp
M llvm/test/Transforms/InstCombine/select-ctlz-to-cttz.ll
Log Message:
-----------
[InstCombine] Fix miscompilation when folding cttz with non-powers-of-2 (#200583)
Does not fold correctly: https://alive2.llvm.org/ce/z/uhHnBd
Commit: f68ef5b4303de763ecf37fd57cbefc3891ee48c0
https://github.com/llvm/llvm-project/commit/f68ef5b4303de763ecf37fd57cbefc3891ee48c0
Author: Zeyi Xu <mitchell.xu2 at gmail.com>
Date: 2026-06-01 (Mon, 01 Jun 2026)
Changed paths:
M clang-tools-extra/clang-tidy/cppcoreguidelines/MissingStdForwardCheck.cpp
M clang-tools-extra/docs/ReleaseNotes.rst
M clang-tools-extra/test/clang-tidy/checkers/cppcoreguidelines/missing-std-forward.cpp
Log Message:
-----------
[clang-tidy] Fix FP/FN in cppcoreguidelines-missing-std-forward (#178651)
Closes #176873
Commit: 28be1eaf755a36187c40c2e251a663f811db5d9c
https://github.com/llvm/llvm-project/commit/28be1eaf755a36187c40c2e251a663f811db5d9c
Author: Haohai Wen <haohai.wen at intel.com>
Date: 2026-06-01 (Mon, 01 Jun 2026)
Changed paths:
M llvm/lib/MC/MCObjectFileInfo.cpp
M llvm/test/DebugInfo/COFF/fission-sections.ll
Log Message:
-----------
[MC][COFF] Mark .debug_*.dwo sections IMAGE_SCN_LNK_REMOVE (#199616)
Mirror ELF's SHF_EXCLUDE so lld-link drops .dwo content from the linked
image.
Commit: 256d09201cf9728e7cdadde20365cfe063abe3c3
https://github.com/llvm/llvm-project/commit/256d09201cf9728e7cdadde20365cfe063abe3c3
Author: lijinpei-amd <jinpei.li at amd.com>
Date: 2026-06-01 (Mon, 01 Jun 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/SIMachineFunctionInfo.cpp
M llvm/lib/Target/AMDGPU/SIMachineFunctionInfo.h
M llvm/test/CodeGen/MIR/AMDGPU/long-branch-reg-all-sgpr-used.ll
M llvm/test/CodeGen/MIR/AMDGPU/machine-function-info-after-pei.ll
M llvm/test/CodeGen/MIR/AMDGPU/machine-function-info-long-branch-reg-debug.ll
M llvm/test/CodeGen/MIR/AMDGPU/machine-function-info-long-branch-reg.ll
A llvm/test/CodeGen/MIR/AMDGPU/machine-function-info-min-num-agprs.ll
M llvm/test/CodeGen/MIR/AMDGPU/machine-function-info-no-ir.mir
M llvm/test/CodeGen/MIR/AMDGPU/machine-function-info.ll
Log Message:
-----------
[AMDGPU] Fix missing SIMachineFunctionInfo::MinNumAGPRs from YAML mirror (#200647)
Fixes #162202.
---------
Co-authored-by: Matt Arsenault <arsenm2 at gmail.com>
Commit: 090308199b301dc5c6a2470b3a6b7ef89866dd6a
https://github.com/llvm/llvm-project/commit/090308199b301dc5c6a2470b3a6b7ef89866dd6a
Author: Thrrreeee <shijinrui at bytedance.com>
Date: 2026-06-01 (Mon, 01 Jun 2026)
Changed paths:
M bolt/include/bolt/Core/DIEBuilder.h
M bolt/include/bolt/Core/DebugNames.h
M bolt/lib/Core/DIEBuilder.cpp
M bolt/lib/Core/DebugNames.cpp
M bolt/lib/Rewrite/DWARFRewriter.cpp
Log Message:
-----------
[BOLT][DebugInfo] Make parallel DWARF debug names generation deterministic(1/2) (#197670)
This change makes BOLT's split DWARF rewriting path produce
deterministic debug names output when processing CUs in parallel.
Previously, several pieces of state used while building `.debug_names`
and updating DWO names were populated during parallel CU processing.
This could make CU/TU index assignment, cross-
CU DIE lookup, and duplicate DWO name disambiguation depend on thread
scheduling order, which in turn could lead to non-reproducible output
across runs.
The patch moves DWO name collection into a deterministic pre-processing
step, pre-allocates debug names CU / foreign TU slots before concurrent
processing, protects cross-CU DIE tracking
with a mutex, and adds a stable tie-breaker when sorting accelerator
table entries. It also centralizes creation of the DWO output directory
before parallel work starts.
This improves reproducibility of BOLT output, makes debug info rewriting
less sensitive to parallel execution order, and avoids subtle
nondeterminism in generated `.debug_names` / split DWARF artifacts.
RFC - [[RFC][BOLT] A New Parallel DWARF Processing Approach in
BOLT](https://discourse.llvm.org/t/rfc-bolt-a-new-parallel-dwarf-processing-approach-in-bolt/90736)
(The overall changes will be split into two separate PRs for easier
review.)
Draft PR - [[BOLT][DebugInfo] Add a new parallel DWARF
processing(2/2)](https://github.com/llvm/llvm-project/pull/197859)
(including all changes)
Commit: 41c269c6cb3f6f7fb6da74052d926948ac7a1c0e
https://github.com/llvm/llvm-project/commit/41c269c6cb3f6f7fb6da74052d926948ac7a1c0e
Author: Sameer Sahasrabuddhe <sameer.sahasrabuddhe at amd.com>
Date: 2026-06-01 (Mon, 01 Jun 2026)
Changed paths:
M llvm/docs/AMDGPUAsyncOperations.rst
M llvm/docs/AMDGPUUsage.rst
Log Message:
-----------
[AMDGPU][DOCS] add async ops supported by asyncmark on GFX12 onwards (#200374)
Also clean up the text a bit.
Commit: c90a8c270328f5d88b7688f7a4eece8f2100f931
https://github.com/llvm/llvm-project/commit/c90a8c270328f5d88b7688f7a4eece8f2100f931
Author: hanbeom <kese111 at gmail.com>
Date: 2026-06-01 (Mon, 01 Jun 2026)
Changed paths:
M llvm/lib/Target/WebAssembly/WebAssemblyISelLowering.cpp
M llvm/test/CodeGen/WebAssembly/simd-setcc-reductions.ll
M llvm/test/CodeGen/WebAssembly/simd-vecreduce-bool.ll
Log Message:
-----------
[WebAssembly] Handle wide mask reductions in performSETCCCombine (#189358)
This extends `performSETCCCombine` to handle wide fixed-length mask
reductions such as `v32i1` and `v64i1`.
Small mask reductions already had good combines, but `v32i1`/`v64i1`
cases still fell back to scalar bitmask materialization. This change
adds a wide-mask path using chunked `wasm_anytrue` / `wasm_alltrue`,
while preserving the existing small-mask combines.
For example, a reduction like
%1 = icmp eq <32 x i16> %v, zeroinitializer
%2 = bitcast <32 x i1> %1 to i32
%3 = icmp ne i32 %2, 0
now avoids scalar bitmask reconstruction.
Fixed: https://github.com/llvm/llvm-project/issues/187294
Commit: 0ecf562dac85a29f3de1dd598e3ae0ecc34d1240
https://github.com/llvm/llvm-project/commit/0ecf562dac85a29f3de1dd598e3ae0ecc34d1240
Author: Wenju He <wenju.he at intel.com>
Date: 2026-06-01 (Mon, 01 Jun 2026)
Changed paths:
M clang/lib/CodeGen/CodeGenAction.cpp
Log Message:
-----------
[Clang] Fix write-to-global TimePassesIsEnabled race condition in BackendConsumer ctor (#200102)
When multiple threads launch multiple clang::CompilerInstance to compile
sources, there is no crash but thread-sanitizer reports race condition
in simultaneously writing to global variables llvm::TimePassesIsEnabled
and llvm::TimePassesPerRun in BackendConsumer constructor.
This PR fixes it using ManagedStatic SmartMutex and SmartScopedLock.
Commit: d083abc9045fc58544892a2a7a67bf1246f5391c
https://github.com/llvm/llvm-project/commit/d083abc9045fc58544892a2a7a67bf1246f5391c
Author: Ruiling, Song <ruiling.song at amd.com>
Date: 2026-06-01 (Mon, 01 Jun 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPULowerExecSync.cpp
M llvm/test/CodeGen/AMDGPU/amdgpu-lower-exec-sync-and-module-lds.ll
M llvm/test/CodeGen/AMDGPU/amdgpu-lower-exec-sync.ll
A llvm/test/CodeGen/AMDGPU/s-barrier-id-allocation.ll
M llvm/test/CodeGen/AMDGPU/s-barrier-lowering.ll
M llvm/test/CodeGen/AMDGPU/s-barrier.ll
Log Message:
-----------
AMDGPU: Improve barrier id allocation (#199997)
The existing barrier ID allocation is over-conservative when a barrier
object was indirectly accessed by several kernels. Instead of the
existing allocate barrier ID for such case per-module basis, we track
the ID allocation per kernel. This would be able to reuse the same
barrier ID for different objects which are accessed (indirectly/directly)
by non-overlapping kernels. See the case: s-barrier-id-allocation.ll.
The motivation comes from downstream use-cases which are handled using
exactly the same mechanism.
I have removed the uniquifyGVPerKernel() since it is less useful in the
new way. And I think there are correctness issues in it. For
non-kernel functions, it just did the replacement without ensuring it is
really called by the kernel (`if (!isKernel(*F) || F == KF)`). This is
problematic if the non-kernel functions was called by other kernels. We
can bring it back carefully if we really need it in the future.
Commit: 7963f459e2f3324f912feab2662a0cd23b5762d7
https://github.com/llvm/llvm-project/commit/7963f459e2f3324f912feab2662a0cd23b5762d7
Author: Yashas Andaluri <yandalur at qti.qualcomm.com>
Date: 2026-06-01 (Mon, 01 Jun 2026)
Changed paths:
M llvm/lib/Target/Hexagon/CMakeLists.txt
A llvm/lib/Target/Hexagon/HexagonAggressiveRDFCopy.cpp
A llvm/lib/Target/Hexagon/HexagonAggressiveRDFCopy.h
M llvm/lib/Target/Hexagon/HexagonRDFOpt.cpp
M llvm/lib/Target/Hexagon/RDFCopy.cpp
M llvm/lib/Target/Hexagon/RDFCopy.h
A llvm/lib/Target/Hexagon/RDFCopyBase.h
M llvm/test/CodeGen/Hexagon/rdf-copy-clobber.mir
A llvm/test/CodeGen/Hexagon/rdf-copy-combine.mir
Log Message:
-----------
[Hexagon] Add AggressiveRDF copy propagation (#182818)
This patch adds a reworked copy propagation algorithm. AggressiveRDF
extends standard RDF copy propagation with support for super-register
and sub-register copy propagation. It determines candidates for copy
propagation by verifying that both the copy instruction and all reached
uses have the same reaching definitions for the source register(s).
Created a RDFCopyBase parent class for the common members used by old
RDF copy propagation and AggressiveRDF copy propagation classes.
AggressiveRDF copy propagation is disabled by default. It can be enabled
using -hexagon-aggressive-rdf-copy=true
Commit: 56f28d538f737bcd50081f75fbb8c01d0bc80c38
https://github.com/llvm/llvm-project/commit/56f28d538f737bcd50081f75fbb8c01d0bc80c38
Author: Justin T. Gibbs <gibbs at scsiguy.com>
Date: 2026-05-31 (Sun, 31 May 2026)
Changed paths:
M compiler-rt/lib/asan/asan_allocator.cpp
Log Message:
-----------
[asan] Allow OOM Policy Injection in Allocator::Allocate API (#196413)
Groundwork for #196388.
Allocator::Allocate() previously unconditionally applied the global
OOM policy as dictated by the AllocatorMayReturnNull() flag: return
nullptr or abort via Report*+Die(). Introduce Allocator::AllocateImpl()
which delegates this decision to the caller via its 'may_return_null'
boolean parameter, allowing future changes to the operator new
implementation to fully control this behavior.
Implementation:
* Rename Allocator::Allocate(...) to Allocator::AllocateImpl(...) and
add a may_return_null parameter that replaces the three internal
AllocatorMayReturnNull() calls (RSS limit, oversize, OOM).
* Reintroduce Allocator::Allocate(...) as a thin wrapper that calls
AllocateImpl(..., AllocatorMayReturnNull()), preserving the
flag-deferring semantics for every existing caller.
NFC.
Commit: f86ce229856e0cf4cbcd29ce1261596a5cb79aa5
https://github.com/llvm/llvm-project/commit/f86ce229856e0cf4cbcd29ce1261596a5cb79aa5
Author: Fangrui Song <i at maskray.me>
Date: 2026-05-31 (Sun, 31 May 2026)
Changed paths:
M bolt/lib/Rewrite/RewriteInstance.cpp
M llvm/include/llvm/MC/MCAsmInfo.h
M llvm/include/llvm/MC/MCContext.h
M llvm/lib/MC/MCAsmInfoELF.cpp
M llvm/lib/MC/MCAsmInfoGOFF.cpp
M llvm/lib/MC/MCAsmInfoWasm.cpp
M llvm/lib/MC/MCAsmInfoXCOFF.cpp
M llvm/lib/MC/MCContext.cpp
M llvm/lib/MC/MCParser/AsmParser.cpp
M llvm/lib/MC/MCParser/MasmParser.cpp
M llvm/lib/Target/AArch64/MCTargetDesc/AArch64MCAsmInfo.cpp
M llvm/lib/Target/ARM/MCTargetDesc/ARMMCAsmInfo.cpp
M llvm/lib/Target/BPF/MCTargetDesc/BPFMCAsmInfo.h
M llvm/lib/Target/Mips/MCTargetDesc/MipsMCAsmInfo.cpp
M llvm/lib/Target/NVPTX/MCTargetDesc/NVPTXMCAsmInfo.cpp
M llvm/lib/Target/RISCV/MCTargetDesc/RISCVMCAsmInfo.cpp
M llvm/lib/Target/X86/MCTargetDesc/X86MCAsmInfo.cpp
Log Message:
-----------
[MC] Remove PrivateLabelPrefix in favor of InternalSymbolPrefix. NFC (#200700)
Every target sets `PrivateLabelPrefix` equal to `InternalSymbolPrefix`.
BPF was the last target where the two diverged, and it was unified to
".L"
(#185164).
With no remaining target distinguishing the two, drop the redundant
`PrivateLabelPrefix` member and `getPrivateLabelPrefix` accessor and
route
the basic-block label callers (MCContext::createBlockSymbol, the
inline-asm
label fixups in AsmParser/MasmParser, and BOLT) through
`getInternalSymbolPrefix`.
Commit: 0b70118713e57c947914888310584589ffca664d
https://github.com/llvm/llvm-project/commit/0b70118713e57c947914888310584589ffca664d
Author: Justin Lebar <justin.lebar at gmail.com>
Date: 2026-05-31 (Sun, 31 May 2026)
Changed paths:
M llvm/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp
M llvm/test/CodeGen/RISCV/rvv/vp-reverse-mask.ll
Log Message:
-----------
[SelectionDAG] Fix SplitVecRes_VP_REVERSE for sub-byte (i1) element types (#200625)
The strided-store/reload reverse computes the byte stride as
getScalarSizeInBits() / 8, which is 0 for i1: every lane lands at the
same address and the result is garbage.
Widen sub-byte elements to a byte integer (i1 -> i8), reverse, then
truncate back.
Commit: a98f112fa80eab69f843e1e6326e0ef58f6d02d6
https://github.com/llvm/llvm-project/commit/a98f112fa80eab69f843e1e6326e0ef58f6d02d6
Author: Justin Lebar <justin.lebar at gmail.com>
Date: 2026-05-31 (Sun, 31 May 2026)
Changed paths:
M llvm/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp
M llvm/test/CodeGen/RISCV/rvv/vp-splice-mask-vectors.ll
Log Message:
-----------
[SelectionDAG] Fix SplitVecRes_VP_SPLICE for sub-byte (i1) element types (#200626)
The stack splice addresses elements by byte offset
(getVectorElementPointer) and, for a negative offset,
a stride of getScalarSizeInBits() / 8. Both break for i1:
getVectorElementPointer asserts, or the stride degenerates
to 0.
Widen sub-byte elements to a byte integer (i1 -> i8), splice, then truncate
back, like SplitVecRes_VP_REVERSE.
Commit: 01b0cccf58d2f908d8d9a29188dc586d17261b64
https://github.com/llvm/llvm-project/commit/01b0cccf58d2f908d8d9a29188dc586d17261b64
Author: Cullen Rhodes <cullen.rhodes at arm.com>
Date: 2026-06-01 (Mon, 01 Jun 2026)
Changed paths:
Log Message:
-----------
[Maintainers] Fix broken libc link (NFC) (#199653)
Was recently converted to .md (836c77bc0282).
Commit: f0c423380111db36f946c4ffd696928cf09db78a
https://github.com/llvm/llvm-project/commit/f0c423380111db36f946c4ffd696928cf09db78a
Author: David Green <david.green at arm.com>
Date: 2026-06-01 (Mon, 01 Jun 2026)
Changed paths:
M llvm/lib/Target/AArch64/AArch64ISelDAGToDAG.cpp
A llvm/test/CodeGen/AArch64/ld1st1_post_mmo.ll
Log Message:
-----------
[AArch64] Copy MMO in ld1 / st1 post index selection. (#199023)
The non-postinc variants were already copying the MMO, this extend that
to the post variants of the instructions, allowing better scheduling.
Commit: dbe5e3391c0f7ecb4dd5b3f8943c1ebf689e4118
https://github.com/llvm/llvm-project/commit/dbe5e3391c0f7ecb4dd5b3f8943c1ebf689e4118
Author: Jeff Bailey <jbailey at raspberryginger.com>
Date: 2026-06-01 (Mon, 01 Jun 2026)
Changed paths:
M libc/config/linux/aarch64/headers.txt
M libc/config/linux/arm/headers.txt
M libc/config/linux/riscv/headers.txt
M libc/config/linux/x86_64/headers.txt
M libc/include/CMakeLists.txt
M libc/include/llvm-libc-macros/CMakeLists.txt
A libc/include/llvm-libc-macros/sys-param-macros.h
A libc/include/sys/param.yaml
Log Message:
-----------
[libc] Add sys/param.h header (#200559)
Added the sys/param.h header containing standard BSD macros:
* NBBY
* MIN and MAX
* howmany, roundup, and powerof2
* MAXPATHLEN
The macros are defined in llvm-libc-macros/sys-param-macros.h with
guards to prevent redefinition conflicts.
Enabled the header for x86_64, aarch64, riscv, and arm Linux targets.
Assisted-by: Automated tooling, human reviewed.
Commit: 85ec9552dc84cbc5acd025bdeb9b258b044591b9
https://github.com/llvm/llvm-project/commit/85ec9552dc84cbc5acd025bdeb9b258b044591b9
Author: Sameer Sahasrabuddhe <sameer.sahasrabuddhe at amd.com>
Date: 2026-06-01 (Mon, 01 Jun 2026)
Changed paths:
A llvm/docs/AMDGPUMemoryModel.rst
M llvm/docs/AMDGPUUsage.rst
M llvm/docs/UserGuides.rst
Log Message:
-----------
[AMDGPU] A Vulkan-style memory model weaker than the LLVM model (#191246)
Add a new AMDGPU memory model specification that is weaker than the LLVM
memory model using Vulkan-style availability/visibility semantics and
scoped operations. The model allows more efficient implementations while
maintaining a safe-by-default mapping to the standard LLVM model.
**RFC:**
https://discourse.llvm.org/t/a-vulkan-style-memory-model-for-amdgpu-and-beyond/90498
Related changes:
- #191390
- #199489
Commit: db5d4d8e1e79a7cda990d7bb96881eb6316a3055
https://github.com/llvm/llvm-project/commit/db5d4d8e1e79a7cda990d7bb96881eb6316a3055
Author: Madhur Amilkanthwar <madhura at nvidia.com>
Date: 2026-06-01 (Mon, 01 Jun 2026)
Changed paths:
M llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
Log Message:
-----------
[VPlan][NFC] Extract logical recipe simplifications from simplifyRecipe() (#196915)
Taking suggestion from here by @david-arm
https://github.com/llvm/llvm-project/pull/196080#pullrequestreview-4237356141 - outlining logical recipees.
Commit: fb2fe71ffe5ffbced0ce2ce1f4c81bfcb5d487d9
https://github.com/llvm/llvm-project/commit/fb2fe71ffe5ffbced0ce2ce1f4c81bfcb5d487d9
Author: David Green <david.green at arm.com>
Date: 2026-06-01 (Mon, 01 Jun 2026)
Changed paths:
M llvm/lib/Target/AArch64/AArch64InstrFormats.td
M llvm/lib/Target/AArch64/AArch64InstrInfo.td
M llvm/test/CodeGen/AArch64/aarch64-mull-masks.ll
Log Message:
-----------
[AArch64] Generate umaddl and smaddl from disjoint or (#200198)
Similar to other patches recently, this adds add_like handling to the
tablegen patterns for smaddl and umaddl, allowing them to match from
disjoint or.
Commit: c9b2d7224c006239641214b2b58b0ab67a254308
https://github.com/llvm/llvm-project/commit/c9b2d7224c006239641214b2b58b0ab67a254308
Author: Nikita Popov <npopov at redhat.com>
Date: 2026-06-01 (Mon, 01 Jun 2026)
Changed paths:
M llvm/lib/Analysis/TypeBasedAliasAnalysis.cpp
Log Message:
-----------
[TBAA] Remove handling for old TBAA format (#200370)
Nowadays only struct-path TBAA is supported, and the verifier enforced
this.
Commit: 44ddc97ade5ae1dcc06a10492ac9f2119cecd9c4
https://github.com/llvm/llvm-project/commit/44ddc97ade5ae1dcc06a10492ac9f2119cecd9c4
Author: Tomer Shafir <tomer.shafir8 at gmail.com>
Date: 2026-06-01 (Mon, 01 Jun 2026)
Changed paths:
M llvm/lib/TableGen/TGParser.cpp
Log Message:
-----------
[TableGen] Remove redundant special BitsInit/BitInt resolution(NFC) (#200674)
BitsInit and BitInt are subclasses of TypedInit, so the code above will
handle them and separate if for them is not necessary. See
https://github.com/llvm/llvm-project/pull/199659#discussion_r3319597920
Keeping the test cases in `llvm/test/TableGen/switch.td` to avoid
regressions.
Commit: b73b44b5f8463072b9084b2d791f7639f0adad17
https://github.com/llvm/llvm-project/commit/b73b44b5f8463072b9084b2d791f7639f0adad17
Author: Tomer Shafir <tomer.shafir8 at gmail.com>
Date: 2026-06-01 (Mon, 01 Jun 2026)
Changed paths:
M llvm/lib/TableGen/TGParser.cpp
Log Message:
-----------
[TableGen] Align ParseOperationCond vector names(NFC) (#199666)
Depends on https://github.com/llvm/llvm-project/pull/199659. The first 1
commits are from the base PR.
Commit: e5ab4f8a1f766febdc65ce89c00dec85393cfd68
https://github.com/llvm/llvm-project/commit/e5ab4f8a1f766febdc65ce89c00dec85393cfd68
Author: Pavel Labath <pavel at labath.sk>
Date: 2026-06-01 (Mon, 01 Jun 2026)
Changed paths:
M lldb/source/Interpreter/CommandInterpreter.cpp
M lldb/test/API/python_api/interpreter/TestCommandInterpreterAPI.py
R lldb/test/Shell/Commands/process-attach-dummy.test
Log Message:
-----------
[lldb] Fix CommandInterpreter::GetExecutionContext (#199922)
Following up Jonas's comment in #198949, this patch changes the function
to not ignore the override context in the adopt_dummy_target=false case.
However, I don't implement Jonas's suggestion exactly either. Instead of
"bypassing" the override context if it contains the dummy target, this
patch returns an empty context instead. I think this makes more sense,
as the intention of the user may very well have been to run the command
in the context of the dummy target. The test suite has no opinion either
way, but this is sufficient to fix the regression that #198949 was
trying to fix.
I also delete the test added in that PR, as the tests in this patch
cover more cases, and the test has the potential of interfering with
another process/test running on the same system.
Commit: 6a33d3f71207ae2d8497bbc29f738a91bf38aab4
https://github.com/llvm/llvm-project/commit/6a33d3f71207ae2d8497bbc29f738a91bf38aab4
Author: David Green <david.green at arm.com>
Date: 2026-06-01 (Mon, 01 Jun 2026)
Changed paths:
M llvm/test/CodeGen/AArch64/GlobalISel/legalize-exp.mir
M llvm/test/CodeGen/AArch64/GlobalISel/legalize-sin.mir
M llvm/test/CodeGen/AArch64/GlobalISel/legalize-sinh.mir
Log Message:
-----------
[AArch64][GlobalISel] Fill in some missing float types in mir tests. NFC (#200743)
Commit: 7a435caaf3faa8ac36ac8bb57a34e9042f2bf63a
https://github.com/llvm/llvm-project/commit/7a435caaf3faa8ac36ac8bb57a34e9042f2bf63a
Author: Pierre van Houtryve <pierre.vanhoutryve at amd.com>
Date: 2026-06-01 (Mon, 01 Jun 2026)
Changed paths:
M llvm/utils/TableGen/Common/CMakeLists.txt
R llvm/utils/TableGen/Common/GlobalISel/GlobalISelMatchTable.cpp
R llvm/utils/TableGen/Common/GlobalISel/GlobalISelMatchTable.h
M llvm/utils/TableGen/Common/GlobalISel/GlobalISelMatchTableExecutorEmitter.cpp
A llvm/utils/TableGen/Common/GlobalISel/MatchTable/MatchTable.cpp
A llvm/utils/TableGen/Common/GlobalISel/MatchTable/MatchTable.h
A llvm/utils/TableGen/Common/GlobalISel/MatchTable/Matchers.cpp
A llvm/utils/TableGen/Common/GlobalISel/MatchTable/Matchers.h
A llvm/utils/TableGen/Common/GlobalISel/MatchTable/Types.cpp
A llvm/utils/TableGen/Common/GlobalISel/MatchTable/Types.h
M llvm/utils/TableGen/GlobalISelCombinerEmitter.cpp
M llvm/utils/TableGen/GlobalISelEmitter.cpp
Log Message:
-----------
[NFC][TableGen] Reorganize GlobalISelMatchTable.h/.cpp (#200153)
This file was a bit of a kitchen sink, and the implementation of the
match table is sufficiently difficult to get comfortable with already.
I spent the past few weeks looking at it, finding improvements, etc. and
I think a nice way to make it a bit easier to approach is to split up
the file a bit so that the main implementation (Matchers.h/.cpp) only
contains the code pertaining to the Matchers (RuleMatchers, Preds,
etc.).
We now have 3 files:
- One for type (LLT) related utilities.
- One for the MatchTable emission logic, which is generic and should not
be tied to any specific implementation. It just has the tools to emit
the opcodes for the table.
- One for the entire Matcher system, including PredicateMatchers and so
on.
Commit: ea6769c8c7ddeed6643ce2487d6c96d8f1b8abb2
https://github.com/llvm/llvm-project/commit/ea6769c8c7ddeed6643ce2487d6c96d8f1b8abb2
Author: Sergei Barannikov <barannikov88 at gmail.com>
Date: 2026-06-01 (Mon, 01 Jun 2026)
Changed paths:
M llvm/include/llvm/DWARFLinker/AddressesMap.h
M llvm/lib/DWARFLinker/Classic/DWARFLinker.cpp
M llvm/lib/DWARFLinker/Classic/DWARFLinkerCompileUnit.cpp
M llvm/lib/DWARFLinker/Parallel/DIEAttributeCloner.cpp
M llvm/lib/DWARFLinker/Parallel/DWARFLinkerCompileUnit.cpp
M llvm/lib/DWARFLinker/Parallel/DWARFLinkerImpl.cpp
M llvm/tools/dsymutil/DwarfLinkerForBinary.cpp
Log Message:
-----------
[DWARFLinker] Remove unused argument of DataExtractor constructor (NFC) (#196364)
`AddressSize` parameter is not used by `DataExtractor` and will be
removed in the future. See #190519 for more context. As a drive-by
change, use the constructor taking ArrayRef where it allows removing
extra casts.
Commit: 13e62f031fcfba57d525727e39e2e7e53c245435
https://github.com/llvm/llvm-project/commit/13e62f031fcfba57d525727e39e2e7e53c245435
Author: Sjoerd Meijer <smeijer at nvidia.com>
Date: 2026-06-01 (Mon, 01 Jun 2026)
Changed paths:
M llvm/lib/Passes/PassBuilderPipelines.cpp
M llvm/test/Other/new-pm-defaults.ll
M llvm/test/Other/new-pm-thinlto-postlink-defaults.ll
M llvm/test/Other/new-pm-thinlto-postlink-pgo-defaults.ll
M llvm/test/Other/new-pm-thinlto-postlink-samplepgo-defaults.ll
Log Message:
-----------
[LoopInterchange] Enable it by default (#124911)
This enables loop-interchange, which was first discussed here:
https://discourse.llvm.org/t/enabling-loop-interchange/82589
All bugs have been fixed, including DependenceAnalysis, and all
components have at least one maintainer; default enablement is
now meeting the requirements in the Developer's policy.
This has been a major effort by different people, many thanks to:
- Ryotaro Kasuga,
- Madhur Amilkanthwar,
- Sebastian Pop,
- Ehsan Amiri,
- Michael Kruse,
- Nikita Popov,
- Sjoerd Meijer.
Commit: fa02a6ed66b1700c996b49c96c6bc0eb014c9518
https://github.com/llvm/llvm-project/commit/fa02a6ed66b1700c996b49c96c6bc0eb014c9518
Author: Alexis Engelke <engelke at in.tum.de>
Date: 2026-06-01 (Mon, 01 Jun 2026)
Changed paths:
M llvm/lib/Transforms/Utils/SimplifyCFG.cpp
M llvm/test/Transforms/SimplifyCFG/RISCV/switch-of-powers-of-two.ll
M llvm/test/Transforms/SimplifyCFG/rangereduce.ll
Log Message:
-----------
[SimplifyCFG] Permit less dense lookup tables (#200664)
It should be most often beneficial to generate a lookup table instead of
a jump table: the lookup table is rarely larger, but saves on
instructions and an indirect branch. Therefore, adjust the lookup table
threshold to match the jump table threshold.
The motivation is clang::Decl::castToDeclContext, which is a rather hot
function when parsing C++ programs, but the switch density is just 38%.
This improves stage2-O0g by 0.17% (7zip/kimwitu++ >0.5%).
Commit: 91b77dc685cf628cbf925e43e25f2f86a912b38b
https://github.com/llvm/llvm-project/commit/91b77dc685cf628cbf925e43e25f2f86a912b38b
Author: Alexis Engelke <engelke at in.tum.de>
Date: 2026-06-01 (Mon, 01 Jun 2026)
Changed paths:
M clang/lib/CodeGen/CGClass.cpp
M clang/lib/CodeGen/CGDebugInfo.h
M llvm/include/llvm/AsmParser/LLParser.h
M llvm/include/llvm/CodeGen/MachineInstr.h
M llvm/include/llvm/CodeGen/SelectionDAGNodes.h
M llvm/include/llvm/IR/DebugLoc.h
M llvm/include/llvm/IR/DebugProgramInstruction.h
M llvm/include/llvm/IR/TrackingMDRef.h
M llvm/lib/AsmParser/LLParser.cpp
M llvm/lib/CodeGen/MIRParser/MIParser.cpp
M llvm/lib/CodeGen/MachineInstr.cpp
M llvm/lib/CodeGen/SelectionDAG/InstrEmitter.cpp
M llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp
M llvm/lib/IR/AutoUpgrade.cpp
M llvm/lib/IR/Core.cpp
M llvm/lib/IR/DebugInfo.cpp
M llvm/lib/IR/DebugLoc.cpp
M llvm/lib/IR/DebugProgramInstruction.cpp
M llvm/lib/IR/Metadata.cpp
A llvm/test/Assembler/dbg-declare-invalid-debug-loc.ll
A llvm/test/Assembler/dbg.ll
M llvm/test/CodeGen/X86/stack-protector-dbginfo.ll
M llvm/test/DebugInfo/Generic/2009-10-16-Phi.ll
M llvm/test/DebugInfo/Generic/location-verifier.ll
M llvm/test/DebugInfo/MIR/X86/regcoalescer.mir
M llvm/test/Transforms/MergeFunc/mergefunc-preserve-nonnull.ll
M llvm/test/Verifier/RemoveDI/llvm.dbg.intrinsic-dbg-attachment.ll
R llvm/test/Verifier/dbg-declare-invalid-debug-loc.ll
M llvm/test/Verifier/dbg.ll
M llvm/test/tools/llvm-reduce/remove-metadata.ll
M llvm/unittests/Analysis/IRSimilarityIdentifierTest.cpp
M llvm/unittests/CodeGen/MachineInstrTest.cpp
M llvm/unittests/Frontend/OpenMPIRBuilderTest.cpp
M llvm/unittests/IR/InstructionsTest.cpp
M llvm/unittests/SandboxIR/SandboxIRTest.cpp
Log Message:
-----------
[IR] Don't use TrackingMDNodeRef for DebugLoc (#200649)
TrackingMDNodeRef is expensive and the tracking functionality is only
used when parsing textual LLVM IR. Therefore, store a plain DILocation
pointer in DebugLoc and update the debug locs explicitly when parsing
finishes.
Invalid debug metadata now fails directly at parsing and not (just)
later when verifying. A consequence is that old-style DILocations cannot
be parsed from textual IR anymore.
As related cleanup, remove the now-unused hasTrivialDestructor() on
TrackingMDRef.
While work on changing DILocation to no longer be metadata is on the
way, it is going to take a while to finish, we can get this immediate
performance and max-rss improvement earlier.
Commit: 78f429c3b2aeb8105c888133008dea0023b8eebb
https://github.com/llvm/llvm-project/commit/78f429c3b2aeb8105c888133008dea0023b8eebb
Author: Harry Ramsey <harry.ramsey at arm.com>
Date: 2026-06-01 (Mon, 01 Jun 2026)
Changed paths:
M llvm/lib/Target/AArch64/AArch64SVEInstrInfo.td
M llvm/test/CodeGen/AArch64/sve2-sra.ll
Log Message:
-----------
[AArch64][SVE] Match (add_like x (lsr y, c)) -> usra x, y, c
Modify SVE USRA pattern to accept add_like, so both add and or disjoint
forms can select usra.
Add known-bits support for predicated SVE logical shifts, allowing
or_disjoint matching to prove disjointness for plain ORs where possible.
Commit: 4c2348902c68ae2b095317e34ff0b4fdcc571042
https://github.com/llvm/llvm-project/commit/4c2348902c68ae2b095317e34ff0b4fdcc571042
Author: Akash Agrawal <akashag at qti.qualcomm.com>
Date: 2026-06-01 (Mon, 01 Jun 2026)
Changed paths:
M llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp
A llvm/test/CodeGen/Hexagon/autohvx/cttz-elts-split.ll
Log Message:
-----------
[TargetLowering] Split CTTZ_ELTS when its step vector requires splitting (#197623)
Follow-up to #190914: getLegalMaskAndStepVector() returns an empty
StepVec to signal that the operation should be split. Only
expandVectorFindLastActive handled this; expandCttzElts crashed by
dereferencing the null SDValue during vector op legalization. Apply the
same split-and-recurse strategy, preferring the low half since CTTZ_ELTS
finds the first active lane.
Assisted-by: Anthropic::claude-4.6
Commit: 261e0f4ec53f1e98a6c5c3a958827eb83c4e4dd9
https://github.com/llvm/llvm-project/commit/261e0f4ec53f1e98a6c5c3a958827eb83c4e4dd9
Author: Pavel Labath <pavel at labath.sk>
Date: 2026-06-01 (Mon, 01 Jun 2026)
Changed paths:
M libc/config/linux/aarch64/headers.txt
M libc/config/linux/riscv/headers.txt
M libc/config/linux/x86_64/headers.txt
M libc/docs/CMakeLists.txt
M libc/docs/headers/index.rst
M libc/include/CMakeLists.txt
A libc/include/netinet/tcp.yaml
A libc/utils/docgen/netinet/tcp.yaml
Log Message:
-----------
[libc] Add netinet/tcp.h header (#200356)
This patch adds the netinet/tcp.h header definition. For now I'm only
adding TCP_NODELAY to it, as that's the only constant specified by
POSIX.
I also include the header in the public headers list for linux targets
and hook it up to the implementation status docs.
I don't add a test as this is just a constant definition, and it would
be very hard to devise (if even possible over a loopback interface) a
test to check that the option has the desired effect (in fact, POSIX
says that an implementation doesn't even have to let you set the
option).
Assisted by Gemini.
Commit: fe4b56cc54c76cb8268c4d0fb509c37428e593d6
https://github.com/llvm/llvm-project/commit/fe4b56cc54c76cb8268c4d0fb509c37428e593d6
Author: Christian Sigg <csigg at google.com>
Date: 2026-06-01 (Mon, 01 Jun 2026)
Changed paths:
M utils/bazel/llvm-project-overlay/llvm/BUILD.bazel
Log Message:
-----------
[bazel] Port 7a435ca (#200749)
Commit: fb8cb1b3d0edd14ff0b40562200b827aca72598f
https://github.com/llvm/llvm-project/commit/fb8cb1b3d0edd14ff0b40562200b827aca72598f
Author: Felipe de Azevedo Piovezan <fpiovezan at apple.com>
Date: 2026-06-01 (Mon, 01 Jun 2026)
Changed paths:
M lldb/include/lldb/Target/Process.h
M lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp
M lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.h
M lldb/source/Target/Process.cpp
M lldb/unittests/Target/MemoryTest.cpp
Log Message:
-----------
[lldb] Strip pointer metadata in ReadMemoryRanges (#200398)
The Process base class is generally responsible for fixing pointer
metadata before delegating memory reads to concrete Process
specializations. However, ReadMemoryRanges was a direct path into the
derived classes, which made it so that pointer metadata was never
stripped.
This commit creates a non-virtual ReadMemoryRanges in Process, which
clears pointer metadata, before delegating to the new virtual method
DoReadMemoryRanges. This also allows, in the future, to plug into the
memory cache system.
Commit: 2b955975dcc524dca2881080a66ce192c5582645
https://github.com/llvm/llvm-project/commit/2b955975dcc524dca2881080a66ce192c5582645
Author: Arseniy Obolenskiy <arseniy.obolenskiy at amd.com>
Date: 2026-06-01 (Mon, 01 Jun 2026)
Changed paths:
M mlir/test/Conversion/MemRefToSPIRV/bitwidth-emulation.mlir
Log Message:
-----------
[mlir][SPIR-V] Add i64 tests for MemRef bitwidth emulation (NFC) (#200724)
Commit: 24b8cfa374d7c78fadcbb41bf9cb497c84f8dda5
https://github.com/llvm/llvm-project/commit/24b8cfa374d7c78fadcbb41bf9cb497c84f8dda5
Author: Arseniy Obolenskiy <arseniy.obolenskiy at amd.com>
Date: 2026-06-01 (Mon, 01 Jun 2026)
Changed paths:
M mlir/test/Target/SPIRV/selection.mlir
Log Message:
-----------
[mlir][SPIR-V] Add roundtrip and validation test for spirv.Switch (NFC) (#200572)
Add missing `spirv-val` tests for spirv.Switch operation
Commit: abdab060c8a762aad1d11bafaa275c7d75b2f16b
https://github.com/llvm/llvm-project/commit/abdab060c8a762aad1d11bafaa275c7d75b2f16b
Author: Arseniy Obolenskiy <arseniy.obolenskiy at amd.com>
Date: 2026-06-01 (Mon, 01 Jun 2026)
Changed paths:
M mlir/lib/Conversion/MathToSPIRV/MathToSPIRV.cpp
M mlir/test/Conversion/MathToSPIRV/math-to-gl-spirv.mlir
Log Message:
-----------
[mlir][SPIR-V] Convert math.fpowi to spirv.GL.Pow (#200563)
Commit: 40b722df905dc14be1e8eb39560614e9226c50ad
https://github.com/llvm/llvm-project/commit/40b722df905dc14be1e8eb39560614e9226c50ad
Author: Arseniy Obolenskiy <arseniy.obolenskiy at amd.com>
Date: 2026-06-01 (Mon, 01 Jun 2026)
Changed paths:
M mlir/include/mlir/Dialect/SPIRV/IR/SPIRVCLOps.td
M mlir/include/mlir/Dialect/SPIRV/IR/SPIRVGLOps.td
M mlir/test/Dialect/SPIRV/IR/gl-ops.mlir
M mlir/test/Dialect/SPIRV/IR/ocl-ops.mlir
M mlir/test/Target/SPIRV/gl-ops.mlir
M mlir/test/Target/SPIRV/ocl-ops.mlir
Log Message:
-----------
[mlir][SPIR-V] Add GL Trunc and CL trunc ops (#200738)
Commit: 51b54fffee8c4b3440a03b3affceba3690754115
https://github.com/llvm/llvm-project/commit/51b54fffee8c4b3440a03b3affceba3690754115
Author: Timm Baeder <tbaeder at redhat.com>
Date: 2026-06-01 (Mon, 01 Jun 2026)
Changed paths:
M clang/lib/AST/ByteCode/Compiler.cpp
M clang/test/AST/ByteCode/cxx23.cpp
Log Message:
-----------
[clang][bytecode] Fix discarded dynamic casts (#200723)
If they are checked.
Commit: 683c367c21d8595a45a97e0439540d3efcd29b25
https://github.com/llvm/llvm-project/commit/683c367c21d8595a45a97e0439540d3efcd29b25
Author: David Spickett <david.spickett at arm.com>
Date: 2026-06-01 (Mon, 01 Jun 2026)
Changed paths:
A lldb/test/Shell/lldb-server/TestGdbserverErrorDarwin.test
M lldb/test/Shell/lldb-server/TestGdbserverErrorMessages.test
M lldb/tools/lldb-server/lldb-server.cpp
Log Message:
-----------
[lldb][lldb-server][Darwin] Error when gdbserver mode is requested (#199654)
Fixes #199035
lldb-server's platform mode works on Apple platforms but the gdbserver
mode does not. Users should use debugserver instead, and platform mode
knows to spawn debugserver instead of lldb-server.
I'm adding an error to state this, because until now it would maybe
appear to work, or crash in strange ways. None of which can be fixed by
a user and are a waste of our time dealing with the bug reports.
Commit: 62b7cf9623fc310525f39ed69aaecc318a909731
https://github.com/llvm/llvm-project/commit/62b7cf9623fc310525f39ed69aaecc318a909731
Author: Sanket Pandit <sanket.p25 at gmail.com>
Date: 2026-06-01 (Mon, 01 Jun 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/GCNHazardRecognizer.cpp
A llvm/test/CodeGen/AMDGPU/buffer-store-dwordx4-vpk-mul-war-hazard-gfx942.mir
Log Message:
-----------
[AMDGPU] Widen MUBUF/MTBUF source-vgpr WAR hazard on gfx940-family to SGPR soffset (#197267)
createsVALUHazard previously gated the MUBUF/MTBUF source-vgpr WAR
hazard to fire only when SOFFSET was a literal or absent. On
gfx940-family subtargets that gate is too narrow: the hazard also fires
when SOFFSET is sourced from an SGPR.
Concretely, on gfx950 a sequence of the form
```
buffer_store_dwordx4 v[X:X+3], voff, descr, sN offen
v_pk_mul_f32 v[X:X+1], <src>, <src> # next VALU cycle
```
deterministically commits the post-pk_mul value of v[X+1] to memory for
the second dword of the store; the other three dwords store correctly.
The wait-state window depends on the SOFFSET shape:
- sgpr-sourced SOFFSET: 1 wait state (S_NOP 0)
- literal/absent SOFFSET: 2 wait states (S_NOP 1)
- pre-gfx940 literal SOFFSET (unchanged): 1 wait state
- pre-gfx940 sgpr SOFFSET (unchanged): no hazard
Implementation widens createsVALUHazard's trigger on gfx940-family and
splits checkVALUHazardsHelper's single 2-wait-state scan into a per-MI
window: a 1-cycle scan and a 2-cycle scan, taking the max. FLAT-wide
stores keep the existing 2-wait-state behavior on gfx940 family.
Empirically reproduced and characterised on gfx950 by Triton's
fused-attention backward kernel; the threshold sweep in
repro/minimal_hazard pins the sgpr-SOFFSET window at exactly 1 cycle (a
single S_NOP 0 clears the corruption). gfx942 (MI300) was not validated
on hardware; the same gate is applied there because the existing
recognizer rule treats the gfx940 family uniformly.
New MIR test covers literal and SGPR soffset on gfx900 (older), gfx942
and gfx950, plus negative cases (dwordx2 store, non-overlapping write).
Assisted-by: Cursor <cursoragent at cursor.com>
Commit: e9556fcc4a18522e93d3975962a77a008e92b38b
https://github.com/llvm/llvm-project/commit/e9556fcc4a18522e93d3975962a77a008e92b38b
Author: Arseniy Obolenskiy <arseniy.obolenskiy at amd.com>
Date: 2026-06-01 (Mon, 01 Jun 2026)
Changed paths:
M mlir/lib/Conversion/MathToSPIRV/MathToSPIRV.cpp
M mlir/test/Conversion/MathToSPIRV/math-to-gl-spirv.mlir
M mlir/test/Conversion/MathToSPIRV/math-to-opencl-spirv.mlir
Log Message:
-----------
[mlir][SPIR-V] Convert math.trunc to GL Trunc and CL trunc (#200739)
Commit: ae1d75e6071e51fff924c6904852fc3a2ae56687
https://github.com/llvm/llvm-project/commit/ae1d75e6071e51fff924c6904852fc3a2ae56687
Author: Sonal Pinto <sonalpinto at gmail.com>
Date: 2026-06-01 (Mon, 01 Jun 2026)
Changed paths:
M libc/src/__support/math/expxf16_utils.h
M libc/src/__support/math/hypotf16.h
Log Message:
-----------
[libc][math] Guard f16 math headers to fix certain 32-bit ARM builds (#200715)
Wrap hypotf16.h and expxf16_utils.h in LIBC_TYPES_HAS_FLOAT16 macros
like other flaot16 math headers. This fixes build breaks on systems
where float16 is unsupported (like some 32-bit ARM).
Commit: 63c29df8ecebb57bdcc04de652afc8d2d98650d7
https://github.com/llvm/llvm-project/commit/63c29df8ecebb57bdcc04de652afc8d2d98650d7
Author: Dmitry Polukhin <34227995+dmpolukhin at users.noreply.github.com>
Date: 2026-06-01 (Mon, 01 Jun 2026)
Changed paths:
M clang/lib/Serialization/ASTReaderDecl.cpp
A clang/test/PCH/friend-template-spec-redecl.cpp
Log Message:
-----------
[Serialization] Fix assertion on re-deserialized friend template spec… (#200566)
…ialization in PCH (#198133)
A friend function-template specialization declared inside a class
template is serialized into a PCH. When the class template is later
instantiated while loading the PCH, the friend specialization can be
deserialized re-entrantly (VisitFriendDecl -> VisitFunctionDecl -> ...
-> VisitFunctionDecl for the same specialization) at the same time as
the canonical copy, producing two redeclarations of the same
specialization in the template's specialization set.
ASTDeclReader::VisitFunctionDecl asserted that this collision could only
happen when merging declarations from different modules. Since
38b3d87bd384, friend functions defined inside dependent class templates
are loaded eagerly, so the collision can now also occur within a single
PCH/AST file (non-modules build), tripping the assertion:
Assertion failed: (Reader.getContext().getLangOpts().Modules &&
"already deserialized this template specialization"), function
VisitFunctionDecl
The merge that follows (mergeRedeclarable) already links the two
redeclarations correctly regardless of whether modules are enabled, so
the fix is to drop the modules-only assumption and let the merge run.
Fixes https://github.com/llvm/llvm-project/issues/198133
Commit: 581c37afad03abd4230139de7e5e8e1f094de825
https://github.com/llvm/llvm-project/commit/581c37afad03abd4230139de7e5e8e1f094de825
Author: Christian Sigg <csigg at google.com>
Date: 2026-06-01 (Mon, 01 Jun 2026)
Changed paths:
M utils/bazel/llvm-project-overlay/libc/BUILD.bazel
Log Message:
-----------
[bazel] Port ae1d75e (#200758)
Commit: f2f9eae932778b04ab31760c7c068eb6bafb10fe
https://github.com/llvm/llvm-project/commit/f2f9eae932778b04ab31760c7c068eb6bafb10fe
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2026-06-01 (Mon, 01 Jun 2026)
Changed paths:
M llvm/lib/Target/X86/X86ISelLowering.cpp
M llvm/test/CodeGen/X86/vector-shuffle-combining-avx512vbmi2.ll
Log Message:
-----------
[X86] matchShuffleAsVSHLD - fix incorrect shift factor (#200754)
#200604 left the non-commuted case to still scale by 8bits instead of the src scalar bit size
Commit: ea8f3dfe487e1c0df1fbd31dded17ec77567229e
https://github.com/llvm/llvm-project/commit/ea8f3dfe487e1c0df1fbd31dded17ec77567229e
Author: David Sherwood <david.sherwood at arm.com>
Date: 2026-06-01 (Mon, 01 Jun 2026)
Changed paths:
A llvm/test/Transforms/LoopVectorize/cast-costs.ll
A llvm/test/Transforms/LoopVectorize/vscale-cost.ll
Log Message:
-----------
[LV][NFC] Add cost model tests for VPInstructionWithType (#200135)
Commit: 044b63d5771802d1baaa6e877e76e0c562aa0724
https://github.com/llvm/llvm-project/commit/044b63d5771802d1baaa6e877e76e0c562aa0724
Author: Timm Baeder <tbaeder at redhat.com>
Date: 2026-06-01 (Mon, 01 Jun 2026)
Changed paths:
M clang/lib/AST/ByteCode/Compiler.cpp
Log Message:
-----------
[clang][bytecode][NFC] Avoid some code duplication for `ScalarValueInitExpr` (#200755)
Commit: 1b24a402bf5bb84b32f9d6d1be6b46099363adde
https://github.com/llvm/llvm-project/commit/1b24a402bf5bb84b32f9d6d1be6b46099363adde
Author: David Spickett <david.spickett at arm.com>
Date: 2026-06-01 (Mon, 01 Jun 2026)
Changed paths:
A clang-tools-extra/Maintainers.md
R clang-tools-extra/Maintainers.rst
A clang-tools-extra/docs/Maintainers.md
R clang-tools-extra/docs/Maintainers.rst
Log Message:
-----------
[clang-tools-extra] Move maintainer files to .md files (#200769)
Without any formatting changes. This will break the docs build, but a
follow up (#200365) will fix the formatting and so on.
Commit: 050c202e82a643322aa9d76a69f2c6639e4b99d6
https://github.com/llvm/llvm-project/commit/050c202e82a643322aa9d76a69f2c6639e4b99d6
Author: David Spickett <david.spickett at arm.com>
Date: 2026-06-01 (Mon, 01 Jun 2026)
Changed paths:
M clang-tools-extra/Maintainers.md
M clang-tools-extra/docs/Maintainers.md
M clang-tools-extra/docs/conf.py
M llvm/Maintainers.md
Log Message:
-----------
[clang-tools-extra][docs] Convert maintainers file to Markdown (#200365)
Following the way clang does it.
* Moved files to .md (done in #200769).
* Reformatted into Markdown.
* Changed the stub file docs/Maintainers.rst into docs/Maintainers.md
and used a myst directive for the include.
* In the config file, added myst parser and ".md" as a recognised file
extension.
After this change, all maintainers files in llvm-project will be in
Markdown format.
Commit: 919f72a12f14c6b30400dc84584fd33846ffb008
https://github.com/llvm/llvm-project/commit/919f72a12f14c6b30400dc84584fd33846ffb008
Author: David Spickett <david.spickett at arm.com>
Date: 2026-06-01 (Mon, 01 Jun 2026)
Changed paths:
M .github/CODEOWNERS
M libc/docs/porting.rst
M llvm/docs/Contributing.rst
M llvm/docs/DeveloperPolicy.rst
Log Message:
-----------
[docs] Remove all references to Maintainers.rst (#200368)
All projects are using Maintainers.md files as of #200365.
Commit: bd1b3d47462acf4f854f593bdd77b3f127adea46
https://github.com/llvm/llvm-project/commit/bd1b3d47462acf4f854f593bdd77b3f127adea46
Author: Raphael Isemann <rise at apple.com>
Date: 2026-06-01 (Mon, 01 Jun 2026)
Changed paths:
M lldb/include/lldb/Core/Mangled.h
M lldb/source/Core/Mangled.cpp
M lldb/source/Plugins/Language/CPlusPlus/CPlusPlusLanguage.cpp
M lldb/unittests/Core/MangledTest.cpp
Log Message:
-----------
[lldb] Reduce size of Mangled class (#200181)
The Mangled class is used in several places in LLDB, most notably as a
direct member of Symbol. This makes this class one of the most
frequently long-lived allocations in LLDB.
In commit a2672250be871bdac18c1a955265a98704434218 , this class got a
(large) cache that stores information about demangled data. This cache
is stored in a std::optional member, which means the memory for the
class is allocated within our Mangled object. It should be noted that
this cache is only used when we actually demangle the name, which
doesn't happen for every mangled name we encounter.
The additional cache member caused that the size of Mangled went from
16B to 152B by default (that is, even if the Mangled name was never
demangled).
This patch replaces the std::optional with a unique_ptr which stores the
cache on first use in a separate heap allocation. This changes decreases
the amount of allocated memory when debugging a relatively small
Objective-C project from 1.57GiB to 1.18GiB (-400MiB).
Commit: 356d7e6bf429a7ff3ae798bb994631ef33891a44
https://github.com/llvm/llvm-project/commit/356d7e6bf429a7ff3ae798bb994631ef33891a44
Author: Nikita Popov <npopov at redhat.com>
Date: 2026-06-01 (Mon, 01 Jun 2026)
Changed paths:
M llvm/lib/IR/Value.cpp
M llvm/test/Analysis/ValueTracking/memory-dereferenceable.ll
Log Message:
-----------
[IR] Handle nofree noalias in canBeFreed() (#200194)
Based on the argument nofree semantics specified in
https://github.com/llvm/llvm-project/pull/195658, we can conclude that
an argument with both nofree and noalias cannot be freed.
This also handles the case of readonly + noalias, to be consistent with
the logic for functions (and because we had a FIXME for it...)
Commit: 0059fe6596aee0052f9ba40188ee2cef27b93af0
https://github.com/llvm/llvm-project/commit/0059fe6596aee0052f9ba40188ee2cef27b93af0
Author: Kashika Akhouri <akhourik at google.com>
Date: 2026-06-01 (Mon, 01 Jun 2026)
Changed paths:
M clang/include/clang/Analysis/Analyses/LifetimeSafety/FactsGenerator.h
M clang/lib/Analysis/LifetimeSafety/FactsGenerator.cpp
M clang/test/Sema/warn-lifetime-safety.cpp
Log Message:
-----------
[LifetimeSafety] Add support for lifetime capture_by (#196884)
This PR implements support for the `[[clang::lifetime_capture_by(X)]]`
attribute within the lifetime-safety analysis.
The PR introduces a new helper in `FactGenerator.cpp` called
`handleLifetimeCaptureBy` which detects
`[[clang::lifetime_capture_by(X)]]` on parameters. If detected, the
analyzer now generates an `OriginFlowFact` ensuring that captured
dependencies are added to the capturer's state. The PR supports
capture_by params and `this` and currently doesn't implement attributes
on function declarations.
Example:
Integrate `[[clang::lifetimebound]]`: This existing Clang annotation is
crucial for specifying that the lifetime of a function's output is tied
to one of its inputs.
```cpp
void setS(std::string_view& in, std::string_view out [[clang::lifetime_capture_by(X)]]);
std::string_view foo() {
std::string a = "on stack";
std::string_view res;
setS(res, a);
return res; // warning: returning address of local variable 'a'.
}
```
Lifetime Facts:
```cpp
Function: foo
Block B2:
End of Block
Block B1:
OriginFlow:
Dest: 0 (Expr: ImplicitCastExpr, Type : const char *)
Src: 1 (Expr: StringLiteral, Type : const char (&)[9])
Use (0 (Expr: ImplicitCastExpr, Type : const char *), Read)
Use (2 (Expr: CXXDefaultArgExpr, Type : const class std::allocator<char> &), Read)
Expire (MaterializeTemporaryExpr at 0x562afa69fdb0)
OriginFlow:
Dest: 3 (Decl: res, Type : std::string_view)
Src: 4 (Expr: CXXConstructExpr, Type : std::string_view)
Use (3 (Decl: res, Type : std::string_view), Read)
Issue (0 (Path: res), ToOrigin: 7 (Expr: DeclRefExpr, Decl: res))
Issue (1 (Path: a), ToOrigin: 8 (Expr: DeclRefExpr, Decl: a))
OriginFlow:
Dest: 9 (Expr: ImplicitCastExpr, Type : const class std::basic_string<char> &)
Src: 8 (Expr: DeclRefExpr, Decl: a)
Use (9 (Expr: ImplicitCastExpr, Type : const class std::basic_string<char> &), Read)
OriginFlow:
Dest: 10 (Expr: CXXMemberCallExpr, Type : __sv_type)
Src: 9 (Expr: ImplicitCastExpr, Type : const class std::basic_string<char> &)
OriginFlow:
Dest: 11 (Expr: ImplicitCastExpr, Type : __sv_type)
Src: 10 (Expr: CXXMemberCallExpr, Type : __sv_type)
Use (11 (Expr: ImplicitCastExpr, Type : __sv_type), Read)
// New Origin Flow fact added
OriginFlow:
Dest: 3 (Decl: res, Type : std::string_view)
Src: 11 (Expr: ImplicitCastExpr, Type : __sv_type), Merge
Use (3 (Decl: res, Type : std::string_view), Read)
Issue (2 (Path: res), ToOrigin: 12 (Expr: DeclRefExpr, Decl: res))
OriginFlow:
Dest: 13 (Expr: ImplicitCastExpr, Type : const std::string_view &)
Src: 12 (Expr: DeclRefExpr, Decl: res)
OriginFlow:
Dest: 14 (Expr: ImplicitCastExpr, Type : std::string_view)
Src: 3 (Decl: res, Type : std::string_view)
OriginFlow:
Dest: 15 (Expr: CXXConstructExpr, Type : std::string_view)
Src: 14 (Expr: ImplicitCastExpr, Type : std::string_view)
Expire (a)
Expire (res, Origin: 3 (Decl: res, Type : std::string_view))
OriginEscapes (15 (Expr: CXXConstructExpr, Type : std::string_view), via Return)
End of Block
Block B0:
End of Block
```
Commit: 9738adaff8e2ea79917858a5e6349572e884c4cd
https://github.com/llvm/llvm-project/commit/9738adaff8e2ea79917858a5e6349572e884c4cd
Author: Kseniya Tikhomirova <kseniya.tikhomirova at intel.com>
Date: 2026-06-01 (Mon, 01 Jun 2026)
Changed paths:
M libsycl/docs/index.rst
A libsycl/include/sycl/__impl/detail/get_device_kernel_info.hpp
A libsycl/include/sycl/__impl/detail/unified_range_view.hpp
M libsycl/include/sycl/__impl/queue.hpp
M libsycl/src/detail/global_objects.cpp
M libsycl/src/detail/program_manager.cpp
M libsycl/src/detail/program_manager.hpp
M libsycl/src/detail/queue_impl.cpp
M libsycl/src/detail/queue_impl.hpp
M libsycl/src/queue.cpp
A libsycl/test/basic/get_backend.cpp
A libsycl/test/basic/submit_fn_ptr.cpp
Log Message:
-----------
[libsycl] Add single_task (#192499)
Depends on liboffload PR:
https://github.com/llvm/llvm-project/pull/194333.
The approach with void sycl_kernel_launch(pack of arguments) implies
that
we can use or copy arguments only during that call. Since it pass only
kernel arguments as parameters and returns void - we have to split
setting
of extra kernel data like event dependencies and range and getting
result
event from arguments handling and direct kernel submision if it is
possible. Key stages: 1) passing to queue (or handler in future)
dependency
events and range (for parallel_for), saving them in queue (copy/move).
2)
wrapping kernel arguments into typeless wrappers (pointer based,
initially
no copy) and passing to the queue. Then depending on scenario (without
host
tasks and accessors we should be able to submit everything directly)
collection of arguments is converted to preferred liboffload structure
(no
copy of objects, copy of pointers) and passed to liboffload or RT does
deep
copy of provided arguments (simple copy of pointer of USM and copy of
value
for other arguments) to keep them alive till kernel enqueue outside
parent
submit call. 3) getting event associated with kernel enqueue. Key notes:
1)
Having these 3 separated calls is not the best solution but the only one
allowing to avoid copy for some scenarios (otherwise we have to do deep
copy always and then do joined kernel submission outside
sycl_kernel_launch
scope). 2) submit must be thread-safe. Since we have 3 calls we need to
keep kernel params and resulting event in a per queue + per thread/per
kernel way. To achieve this without copy and joined kernel submission
queue
(in future - handler) stores thread_local data for kernel submission.
thread_local can't be used for non-static class members so they are
static.
Given: same queue can be used from different threads but thread can't
use
different queues at the same moment; that means that we actually need
per
thread storage.
This is part of the SYCL support upstreaming effort. The relevant RFCs
can be found here:
https://discourse.llvm.org/t/rfc-add-full-support-for-the-sycl-programming-model/74080
https://discourse.llvm.org/t/rfc-sycl-runtime-upstreaming/74479
---------
Signed-off-by: Tikhomirova, Kseniya <kseniya.tikhomirova at intel.com>
Commit: 73ded458839c0a105b19476929f6206356f92991
https://github.com/llvm/llvm-project/commit/73ded458839c0a105b19476929f6206356f92991
Author: Donát Nagy <donat.nagy at ericsson.com>
Date: 2026-06-01 (Mon, 01 Jun 2026)
Changed paths:
M clang/lib/Analysis/LiveVariables.cpp
M clang/lib/StaticAnalyzer/Core/ExprEngineCXX.cpp
M clang/test/Analysis/cxx23-assume-attribute.cpp
Log Message:
-----------
[Liveness][analyzer] Fix handling of [[assume]] attributes (#198618)
Before this commit, if the analyzer encountered code like
```
int f(int a, int b) {
[[assume(a == 2), assume(b == 3)]];
return a + b;
}
```
it performed the following steps:
1. It visited the expression `a == 2` with `ExprEngine::Visit` (after
visiting its sub-expressions, within the regular visitation that visits
each statement of the `CFGBlock`). This triggered the `EagerlyAssume`
logic and separated two execution paths.
2. It discarded the result bound to `a == 2` from the `Environment`
because `a == 2` is not a direct child of the `AttributedStmt`.
3. Analogously, it visited an evaluated `b == 3`.
4. Analogously, it discarded the result bound to `b == 3`.
5. On each execution path `VisitAttributedStmt` was reached, it ran the
`PreStmt<AttributedStmt>` checkers and stored their results in
`CheckerPreStmt`. As there are AFAIK no such checkers, after this step
the only element of `CheckerPreStmt` was the node `Pred`.
6. It constructed a `NodeBuilder`, which was unused, but its constructor
inserted the nodes in `CheckerPreStmt` into `EvalSet`. This was
essentially a shortcut that skipped the handling of the assumptions --
but ultimately its effects were absorbed and negated by the tricky side
effects of `ExprEngine::Visit`.
7. For each node `N` in `CheckerPreStmt` (i.e. for `N == Pred`) and for
each assume attribute, it created a child node of `N` where the
assumption of **that one attribute** was visited again with
`ExprEngine::Visit`. (I.e. it separated execution paths and implicitly
placed "OR" relationships between the assumptions.)
8. It **completely ignored** the value produced by the assumption
expression: did not update the state and did not discard execution paths
where the [[assume]] assumption contradicted earlier knowledge.
This commit fixes all four logic errors:
1. The liveness analysis is updated to ensure that an `AttributedStmt`
keeps alive the assumption expressions of its [[assume]] attributes.
This ensured that their results remain in the `Environment`.
2. Now there is no `NodeBuilder` that skips the handling the
assumptions.
3. The invocation of `ExprEngine::Visit` is removed from
`VisitAttributedStmt`: there is no reason to revisit those statements
(now that we don't lose the evaluation results).
4. The state is updated to record that the values of the assumption
expressions are ALL assumed to be true. If the assumption leads to a
contradiction, the execution path is discarded (by not generating a
node).
This commit also adds a few new testcases and resolves some FIXME
comments in previously existing tests.
Commit: caf469dc802464a3554f52b10c818d4e0c840062
https://github.com/llvm/llvm-project/commit/caf469dc802464a3554f52b10c818d4e0c840062
Author: Nerixyz <nerixdev at outlook.de>
Date: 2026-06-01 (Mon, 01 Jun 2026)
Changed paths:
M llvm/include/llvm/Support/ConvertUTF.h
M llvm/lib/Support/ConvertUTFWrapper.cpp
Log Message:
-----------
[Support] Take ArrayRef in convertWideToUTF8 (#200687)
`convertWideToUTF8` took a `std::wstring`, but it never modified its
data. An `ArrayRef` or `std::wstring_view` are sufficient here. I chose
`ArrayRef<wchar_t>` over `std::wstring_view`, because it can be
implicitly constructed from any range that provides `data()` and
`size()`. A second overload taking a `const wchar_t *` is provided to
convert null terminated wide C-strings.
Commit: faa87b02121fbb668fcf71260a63c88729b83abf
https://github.com/llvm/llvm-project/commit/faa87b02121fbb668fcf71260a63c88729b83abf
Author: Matthew Devereau <matthew.devereau at arm.com>
Date: 2026-06-01 (Mon, 01 Jun 2026)
Changed paths:
M llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
M llvm/test/CodeGen/AArch64/clmul-scalable.ll
Log Message:
-----------
[AArch64] Lower scalable i64 CLMUL with SVE2/SME (#198999)
When AES or SSVE-AES are not available, but SVE2 or SME are,
clmul.nxv2i64 can benefit from a cross-byte CLMUL of .S precision. This
re-uses the functionality added for nxv8i16.
Commit: 9863725ffe80054d3fb86d7468746a1d0def26c4
https://github.com/llvm/llvm-project/commit/9863725ffe80054d3fb86d7468746a1d0def26c4
Author: Ryotaro Kasuga <kasuga.ryotaro at fujitsu.com>
Date: 2026-06-01 (Mon, 01 Jun 2026)
Changed paths:
A llvm/test/Analysis/DependenceAnalysis/exact-siv-mul-overflow.ll
Log Message:
-----------
[DA] Add test for the Exact test misses dependency due to overflow (NFC) (#200780)
This patch adds a test case that demonstrates that the Exact test misses
the dependency due to mishandling of overflow. The test case is taken
from #200766.
Commit: 421b27c4ab4b789bc5084f5f3ff9c008f69846df
https://github.com/llvm/llvm-project/commit/421b27c4ab4b789bc5084f5f3ff9c008f69846df
Author: Florian Hahn <flo at fhahn.com>
Date: 2026-06-01 (Mon, 01 Jun 2026)
Changed paths:
M llvm/lib/AsmParser/LLParser.cpp
A llvm/test/Assembler/dbg-intrinsic-forward-ref-upgrade.ll
Log Message:
-----------
[AsmParser] Apply deferred debug locations before intrinsic upgrade. (#200779)
Intrinsic upgrades may delete instructions, leaving dangling pointers
that may be accessed when applying deferred debug locations after
91b77dc (#200649).
Fix by applying deferred debug locations before intrinsic upgrade.
PR: https://github.com/llvm/llvm-project/pull/200779
Commit: 56c9a2c796661fd8b2ca627ce1f39cb3e97a203f
https://github.com/llvm/llvm-project/commit/56c9a2c796661fd8b2ca627ce1f39cb3e97a203f
Author: Chaitanya <Krishna.Sankisa at amd.com>
Date: 2026-06-01 (Mon, 01 Jun 2026)
Changed paths:
M flang/lib/Lower/OpenMP/ClauseProcessor.cpp
M flang/lib/Lower/OpenMP/ClauseProcessor.h
M flang/lib/Lower/OpenMP/OpenMP.cpp
R flang/test/Lower/OpenMP/Todo/dyn-groupprivate-clause.f90
A flang/test/Lower/OpenMP/dyn-groupprivate-clause.f90
M llvm/include/llvm/Frontend/OpenMP/ConstructDecompositionT.h
Log Message:
-----------
[flang][mlir] Add flang to mlir lowering for dyn_groupprivate (#180938)
This PR implements the Flang frontend lowering for the
`dyn_groupprivate` clause
Changes:
- Add ClauseProcessor handling for DynGroupprivate clause
- Generate appropriate MLIR representation for dyn_groupprivate
- Add/update test cases for dyn_groupprivate lowering
- Remove TODO marker for dyn_groupprivate clause
Commit: 2666b44bdc9d2098d394c0afce91a00437b75823
https://github.com/llvm/llvm-project/commit/2666b44bdc9d2098d394c0afce91a00437b75823
Author: Luke Lau <luke at igalia.com>
Date: 2026-06-01 (Mon, 01 Jun 2026)
Changed paths:
M llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp
M llvm/lib/Transforms/Vectorize/VectorCombine.cpp
R llvm/test/Transforms/InstCombine/fold-vp-load.ll
A llvm/test/Transforms/VectorCombine/RISCV/fold-vp-load.ll
Log Message:
-----------
[InstCombine][VectorCombine] Move bitcast vp.load fold into VectorCombine (#200321)
Fixes https://github.com/llvm/llvm-project/issues/199896
In #192173 we started folding bitcasts of vp.loads with an all ones mask
into a vp.load with the casted type. However on RISC-V a vp.load of an
i1 vector is illegal (since there's no masked variant of `vlm.v`), and
we have no way of checking this in InstCombine.
This moves the fold into VectorCombine so we can query TTI if the cost
is legal (and profitable)
As a side note, it may be possible to lower a vp.load of an i1 vector on
RISC-V to `vlm.v` **only** if the mask is all ones. But this means the
lowering would only be valid for certain values, which is difficult to
cost. And I'm not sure if it would be profitable anyway.
Commit: ec366837a1630c8e235b7fa235b43bd80feb4d82
https://github.com/llvm/llvm-project/commit/ec366837a1630c8e235b7fa235b43bd80feb4d82
Author: mbhade-amd <MilinNarayan.Bhade at amd.com>
Date: 2026-06-01 (Mon, 01 Jun 2026)
Changed paths:
A llvm/test/Transforms/SLPVectorizer/X86/store-load-forward-conflict.ll
Log Message:
-----------
[SLP][NFC] Pre-commit tests for store-to-load forwarding bail-out (#199908)
Commit: 0ef35be046b020a2106651ad4da879249872c88e
https://github.com/llvm/llvm-project/commit/0ef35be046b020a2106651ad4da879249872c88e
Author: Timm Baeder <tbaeder at redhat.com>
Date: 2026-06-01 (Mon, 01 Jun 2026)
Changed paths:
M clang/lib/AST/ByteCode/Interp.h
M clang/test/AST/ByteCode/invalid.cpp
Log Message:
-----------
[clang][bytecode] Don't deref() non-dereferencable pointers (#200774)
That shouldn't happen and the isDummy() check wasn't enough.
Commit: 725d3eb71deb995c657355579a17417f71e3a3a8
https://github.com/llvm/llvm-project/commit/725d3eb71deb995c657355579a17417f71e3a3a8
Author: Ryotaro Kasuga <kasuga.ryotaro at fujitsu.com>
Date: 2026-06-01 (Mon, 01 Jun 2026)
Changed paths:
M llvm/lib/Analysis/DependenceAnalysis.cpp
M llvm/test/Analysis/DependenceAnalysis/exact-siv-mul-overflow.ll
Log Message:
-----------
[DA] Fix overflow in the Exact test (#200781)
In exactTestImpl, some computations using APInt could overflow, which
might lead to incorrect results.
This patch addresses the issue by replacing APInt with
OverflowSafeSignedAPInt, a class that is sensitive to overflow and
allows us to detect it properly.
Fixes #200766.
Commit: 06ffb655904657e847854eee1c7c76ccdc75b254
https://github.com/llvm/llvm-project/commit/06ffb655904657e847854eee1c7c76ccdc75b254
Author: Younan Zhang <zyn7109 at gmail.com>
Date: 2026-06-01 (Mon, 01 Jun 2026)
Changed paths:
M clang/lib/Sema/SemaConcept.cpp
M clang/test/SemaTemplate/concepts-using-decl.cpp
Log Message:
-----------
[Clang] Profile the NNS of UnresolvedUsingType and CXXThisType correctly in concept hashing (#199617)
They were sometimes incorrect because the written type doesn't contain
an NNS which contains template parameters we're interested in.
No release note because the bug broke MS STL and I want to backport it
to the last 22.x release
Fixes https://github.com/llvm/llvm-project/issues/198663
Commit: ceb18ffc04cfbef5294a9625351995b6330674e9
https://github.com/llvm/llvm-project/commit/ceb18ffc04cfbef5294a9625351995b6330674e9
Author: Cullen Rhodes <cullen.rhodes at arm.com>
Date: 2026-06-01 (Mon, 01 Jun 2026)
Changed paths:
M .github/workflows/release-binaries.yml
Log Message:
-----------
workflows/release-binaries: Install LLDB test deps (#199900)
lldb-api tests are hitting:
"/home/runner/work/llvm-project/llvm-project/lldb/packages/Python/lldbsuite/test/lldbplatformutil.py",
line 12, in <module>
from packaging import version
ModuleNotFoundError: No module named 'packaging'
when building release binaries on Arm64/x86 Linux. Install deps before
running tests.
Fixes #176422.
Commit: de3529386e1e773f0186755b83bbc12e7884f863
https://github.com/llvm/llvm-project/commit/de3529386e1e773f0186755b83bbc12e7884f863
Author: hcx <hechenxi at bosc.ac.cn>
Date: 2026-06-01 (Mon, 01 Jun 2026)
Changed paths:
M flang/lib/Lower/ConvertVariable.cpp
M flang/test/Lower/HLFIR/structure-constructor.f90
M flang/test/Lower/OpenMP/private-derived-type.f90
M flang/test/Lower/call-copy-in-out.f90
A flang/test/Lower/component-wise-init.f90
M flang/test/Lower/default-initialization.f90
M flang/test/Lower/derived-type-finalization.f90
M flang/test/Lower/derived-type-temp.f90
M flang/test/Lower/forall/forall-allocatable-2.f90
M flang/test/Lower/pointer-default-init.f90
Log Message:
-----------
[flang][lowering] Implement component-wise initialization for derived types (#187465)
Currently, the compiler defaults to a full `memcpy` when initializing
derived types.
This patch introduces component-wise initialization for pointer /
allocatable components, avoiding unnecessary initialization data
generation and redundant copies.
Ineligible cases continue to use the existing `memcpy` initialization
path.
RFC: https://discourse.llvm.org/t/rfc-automatic-static-promotion-of-large-local-variables-in-flang/89539
Key changes:
- In `flang/lib/Lower/ConvertVariable.cpp`:
- Add `genDerivedTypeComponentInit` for component-wise derived type
initialization.
- Add `isEligibleForComponentWiseInit` to guard the new initialization
path.
- Add `genInlinedInitWithMemcpy` to factor out the existing full
`memcpy` initialization logic.
- Update `defaultInitializeAtRuntime` to select the appropriate
initialization path.
- Add and update regression tests.
---------
Co-authored-by: ict-ql <168183727+ict-ql at users.noreply.github.com>
Co-authored-by: buggfg <wangyingying at bosc.ac.cn>
Commit: d5a24ef8d093708141b03ef1da809363841065b1
https://github.com/llvm/llvm-project/commit/d5a24ef8d093708141b03ef1da809363841065b1
Author: Piotr Sobczak <piotr.sobczak at amd.com>
Date: 2026-06-01 (Mon, 01 Jun 2026)
Changed paths:
M llvm/docs/AMDGPUUsage.rst
M llvm/docs/ReleaseNotes.md
M llvm/lib/IR/Verifier.cpp
M llvm/lib/Target/AMDGPU/AMDGPU.td
M llvm/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp
M llvm/lib/Target/AMDGPU/GCNSubtarget.cpp
M llvm/lib/Target/AMDGPU/GCNSubtarget.h
M llvm/lib/Target/AMDGPU/SIISelLowering.cpp
M llvm/test/CodeGen/AMDGPU/unaligned-buffer.ll
M llvm/test/Transforms/LoadStoreVectorizer/AMDGPU/merge-vectors.ll
M llvm/test/Transforms/LoadStoreVectorizer/AMDGPU/unaligned-buffer.ll
A llvm/test/Verifier/AMDGPU/module-flag-oob-mode.ll
Log Message:
-----------
[AMDGPU] Replace relaxed-buffer-oob-mode feature with module flag (#160922)
Remove AMDGPU subtarget feature toggle for relaxed buffer OOB handling
and replace it with two explicit LLVM module flags:
- amdgpu.buffer.oob.relaxed for untyped buffer instructions
- amdgpu.tbuffer.oob.relaxed for typed buffer instructions
Each flag is modeled as i32 with Max merge behavior and validated as a
tri-state value, where 0 means Any/default, 1 means Relaxed and 2 means Strict.
The absence of the module flag implies the default mode, which is currently treated
as Strict by the backend.
Commit: 813cf3358e5eefc4a9f7393ea373f50c943fd893
https://github.com/llvm/llvm-project/commit/813cf3358e5eefc4a9f7393ea373f50c943fd893
Author: Walter <90877047+WalterKruger at users.noreply.github.com>
Date: 2026-06-01 (Mon, 01 Jun 2026)
Changed paths:
M llvm/lib/Target/X86/X86ISelLowering.cpp
M llvm/test/CodeGen/X86/gfni-operand-and-fold.ll
M llvm/test/CodeGen/X86/gfni-xor-fold-avx512.ll
M llvm/test/CodeGen/X86/gfni-xor-fold.ll
Log Message:
-----------
[X86] Fold XOR of VGF2P8AFFINEQB and its source (#198448)
Adds a optimization to fold XORs between `vgf2p8affineqb` and its
source. That XOR can done through the existing affine transformation by
XORing its matrix with the identity matrix. This patch:
- Folds XOR between `vgf2p8affineqb` and its source.
- Only occurs when the matrix is constant, ensuring that it can't
increase the dependency chain.
- Doesn't occur if the affine is multi use, preventing an increase in
code size.
- Includes test coverage for both positive and negative cases.
Fixes #184061
Commit: 76220f2c8d24b877c16c895efe9a4504e3e72cc3
https://github.com/llvm/llvm-project/commit/76220f2c8d24b877c16c895efe9a4504e3e72cc3
Author: Rajveer Singh Bharadwaj <rajveer.developer at icloud.com>
Date: 2026-06-01 (Mon, 01 Jun 2026)
Changed paths:
M clang/docs/ReleaseNotes.rst
M clang/lib/Sema/SemaCast.cpp
M clang/test/SemaCXX/builtin-bit-cast.cpp
Log Message:
-----------
[clang][SemaCXX] Fix crash caused by unresolved overloaded function type when using `__builtin_bit_cast` (#200574)
Resolves #200112
By early checking for placeholder expressions, crash can be avoided for
unreachable builtin type when fetching type info.
Commit: b99a6fc497a014c80091ab7582e331b3d03090e9
https://github.com/llvm/llvm-project/commit/b99a6fc497a014c80091ab7582e331b3d03090e9
Author: Charles Zablit <c_zablit at apple.com>
Date: 2026-06-01 (Mon, 01 Jun 2026)
Changed paths:
M lldb/source/Plugins/Process/Windows/Common/DebuggerThread.cpp
Log Message:
-----------
[lldb][windows] bound ReadProcessMemory (#200230)
Commit: 57bde44b4de822687b3790e2813b148ecd9c06e5
https://github.com/llvm/llvm-project/commit/57bde44b4de822687b3790e2813b148ecd9c06e5
Author: juan.vazquez <juvazq at google.com>
Date: 2026-06-01 (Mon, 01 Jun 2026)
Changed paths:
A llvm/include/llvm/CodeGen/BreakFalseDeps.h
M llvm/include/llvm/CodeGen/Passes.h
M llvm/include/llvm/InitializePasses.h
M llvm/include/llvm/Passes/MachinePassRegistry.def
M llvm/lib/CodeGen/BreakFalseDeps.cpp
M llvm/lib/CodeGen/CodeGen.cpp
M llvm/lib/Passes/PassBuilder.cpp
M llvm/lib/Target/ARM/ARMTargetMachine.cpp
M llvm/lib/Target/X86/X86CodeGenPassBuilder.cpp
M llvm/lib/Target/X86/X86TargetMachine.cpp
M llvm/test/CodeGen/X86/apx/ndd-false-deps.mir
M llvm/test/CodeGen/X86/break-false-dep-crash.mir
M llvm/test/CodeGen/X86/llc-pipeline-npm.ll
Log Message:
-----------
[CodeGen] Port break-false-deps to new pass manager (#194262)
Commit: 397c594e4665ef7f1ad9d5084b4bf87a3135ccb9
https://github.com/llvm/llvm-project/commit/397c594e4665ef7f1ad9d5084b4bf87a3135ccb9
Author: Afonso Rafael (Gafanhoto) <afonsorafael at sapo.pt>
Date: 2026-06-01 (Mon, 01 Jun 2026)
Changed paths:
M llvm/lib/Transforms/Scalar/LoopFuse.cpp
Log Message:
-----------
[LoopFusion] remove else after return (NFC) (#200783)
Commit: e5cf9adf6a191e92018f58518ced79735b121231
https://github.com/llvm/llvm-project/commit/e5cf9adf6a191e92018f58518ced79735b121231
Author: Kseniya Tikhomirova <kseniya.tikhomirova at intel.com>
Date: 2026-06-01 (Mon, 01 Jun 2026)
Changed paths:
M libsycl/docs/index.rst
A libsycl/include/sycl/__impl/detail/kernel_arg_helpers.hpp
M libsycl/include/sycl/__impl/detail/unified_range_view.hpp
A libsycl/include/sycl/__impl/index_space_classes.hpp
M libsycl/include/sycl/__impl/queue.hpp
A libsycl/include/sycl/__spirv/spirv_vars.hpp
M libsycl/include/sycl/sycl.hpp
A libsycl/test/basic/parallel_for_indexers.cpp
A libsycl/test/basic/queue_parallel_for_generic.cpp
A libsycl/test/basic/wrapped_usm_pointers.cpp
Log Message:
-----------
[libsycl] Add parallel_for feature (#189068)
Depends on https://github.com/llvm/llvm-project/pull/188797 (stacked
PRs).
Depends on liboffload PR:
https://github.com/llvm/llvm-project/pull/184343.
Depends on clang driver update to pick the right location for search of
libsycl: follow up for https://github.com/llvm/llvm-project/pull/188770.
Without it test will fail since clang can't find libsycl in build dir.
Depends on future liboffload fix for range. Without it test will fail on
data check.
This is part of the SYCL support upstreaming effort. The relevant RFCs
can be found here:
https://discourse.llvm.org/t/rfc-add-full-support-for-the-sycl-programming-model/74080
https://discourse.llvm.org/t/rfc-sycl-runtime-upstreaming/74479
---------
Signed-off-by: Tikhomirova, Kseniya <kseniya.tikhomirova at intel.com>
Commit: 143338131f0e8f1586f7f9aacb7d94dfde169b08
https://github.com/llvm/llvm-project/commit/143338131f0e8f1586f7f9aacb7d94dfde169b08
Author: Ritanya-B-Bharadwaj <ritanya.b.bharadwaj at gmail.com>
Date: 2026-06-01 (Mon, 01 Jun 2026)
Changed paths:
M flang/docs/FortranStandardsSupport.md
M flang/include/flang/Evaluate/type.h
M flang/include/flang/Parser/dump-parse-tree.h
M flang/include/flang/Parser/parse-tree.h
M flang/lib/Evaluate/type.cpp
M flang/lib/Parser/Fortran-parsers.cpp
M flang/lib/Parser/unparse.cpp
M flang/lib/Semantics/resolve-names.cpp
A flang/test/Lower/typeof-classof.f90
A flang/test/Parser/typeof-classof-attrs.f90
A flang/test/Semantics/typeof-classof-errors.f90
A flang/test/Semantics/typeof-classof.f90
Log Message:
-----------
[flang] Add support for TYPEOF and CLASSOF type specifiers (#188804)
Implements parsing, semantics and lowering for the Fortran 2023 TYPEOF and CLASSOF type specifiers (R703). TYPEOF produces the declared type of a data-ref; CLASSOF produces a polymorphic version. Includes constraint
checks (C709–C713) and tests.
Semantics resolves TYPEOF/CLASSOF to the concrete underlying type in the symbol table, so no lowering code changes were needed. Added a lowering test to verify FIR/HLFIR generation works correctly for intrinsic types,
derived types, extended types, and polymorphic CLASSOF with allocatable/pointer.
Fixes - https://github.com/llvm/llvm-project/issues/185635
Commit: 080286d051efe040c8678aef122d235785d74d5e
https://github.com/llvm/llvm-project/commit/080286d051efe040c8678aef122d235785d74d5e
Author: Alexis Engelke <engelke at in.tum.de>
Date: 2026-06-01 (Mon, 01 Jun 2026)
Changed paths:
M llvm/docs/LangRef.rst
M llvm/include/llvm/AsmParser/LLParser.h
M llvm/include/llvm/AsmParser/LLToken.h
M llvm/include/llvm/IR/CFG.h
M llvm/include/llvm/IR/Constants.h
M llvm/lib/AsmParser/LLLexer.cpp
M llvm/lib/AsmParser/LLParser.cpp
M llvm/lib/CodeGen/IndirectBrExpandPass.cpp
M llvm/lib/IR/AsmWriter.cpp
M llvm/lib/IR/BasicBlock.cpp
M llvm/lib/IR/Constants.cpp
M llvm/lib/IR/Value.cpp
R llvm/test/Assembler/invalid-uselistorder_bb-float-literal.ll
R llvm/test/Assembler/invalid-uselistorder_bb-missing-bb.ll
R llvm/test/Assembler/invalid-uselistorder_bb-missing-body.ll
R llvm/test/Assembler/invalid-uselistorder_bb-missing-func.ll
R llvm/test/Assembler/invalid-uselistorder_bb-not-bb.ll
R llvm/test/Assembler/invalid-uselistorder_bb-not-func.ll
R llvm/test/Assembler/invalid-uselistorder_bb-numbered.ll
R llvm/test/Assembler/uselistorder_bb.ll
M llvm/utils/emacs/llvm-mode.el
M llvm/utils/vim/syntax/llvm.vim
M llvm/utils/vscode/llvm/syntaxes/ll.tmLanguage.yaml
Log Message:
-----------
[IR] BlockAddress doesn't use BasicBlock (#200772)
BlockAddress is the only non-terminator user of a BasicBlock, and it
occurs very rarely. To speed up predecessor iteration, change
BlockAddress to no longer use its BasicBlock.
This should also make uselistorder_bb obsolete.
Commit: c9d5ccaa2283507b1b5a3cbebf59ac521edb9f73
https://github.com/llvm/llvm-project/commit/c9d5ccaa2283507b1b5a3cbebf59ac521edb9f73
Author: Amir Ayupov <aaupov at fb.com>
Date: 2026-06-01 (Mon, 01 Jun 2026)
Changed paths:
M bolt/lib/Profile/DataReader.cpp
M bolt/test/X86/nolbr.s
Log Message:
-----------
[BOLT] Fix fdata parsing warning (#200725)
Commit: 3afd3a99562704798e268162701c0ecb3b82e5a5
https://github.com/llvm/llvm-project/commit/3afd3a99562704798e268162701c0ecb3b82e5a5
Author: Vaisman <vasili.svirski at gmail.com>
Date: 2026-06-01 (Mon, 01 Jun 2026)
Changed paths:
M mlir/test/Dialect/NVGPU/roundtrip.mlir
Log Message:
-----------
[mlir][nvgpu] Add roundtrip tests for warpgroup MMA operations (#199272)
Add roundtrip tests for the following NVGPU dialect operations:
- `nvgpu.warpgroup.mma.init.accumulator`
- `nvgpu.warpgroup.mma.store`
These operations were present in the dialect but lacked roundtrip
test coverage in `roundtrip.mlir`. The tests verify that operand
and result types survive the parser/printer roundtrip.
Commit: a2d89d1938837362c367f40dc22891e1471e7de7
https://github.com/llvm/llvm-project/commit/a2d89d1938837362c367f40dc22891e1471e7de7
Author: Pavel Labath <pavel at labath.sk>
Date: 2026-06-01 (Mon, 01 Jun 2026)
Changed paths:
M libc/config/linux/aarch64/headers.txt
M libc/config/linux/riscv/headers.txt
M libc/config/linux/x86_64/headers.txt
Log Message:
-----------
[libc] Add sys/uio.h to Linux public header target lists (#200793)
The headers don't get installed without this.
Assisted by Gemini.
Commit: c7a58d582c8f0967a3345b52c5a7d74b869b384a
https://github.com/llvm/llvm-project/commit/c7a58d582c8f0967a3345b52c5a7d74b869b384a
Author: Florian Hahn <flo at fhahn.com>
Date: 2026-06-01 (Mon, 01 Jun 2026)
Changed paths:
A llvm/test/Transforms/LoopVectorize/VPlan/vplan-printing-flags.ll
Log Message:
-----------
[LV] Add test for printing cast flags. (#200806)
Add test showing missing flags when printing VPInstructionWithType
casts.
Commit: fc8911a78e3618adbf422d7856ed0cb4115eada1
https://github.com/llvm/llvm-project/commit/fc8911a78e3618adbf422d7856ed0cb4115eada1
Author: Charles Zablit <c_zablit at apple.com>
Date: 2026-06-01 (Mon, 01 Jun 2026)
Changed paths:
M lldb/source/Plugins/Platform/Windows/PlatformWindows.cpp
Log Message:
-----------
[lldb][windows] fix late null check (#200822)
`process_sp` should be null checked before calling the
`HijackProcessEvents` method. This patch also removes 2 unused
variables.
Commit: 6a80387760c17b7e72e77b1b24ac1808bdf0929e
https://github.com/llvm/llvm-project/commit/6a80387760c17b7e72e77b1b24ac1808bdf0929e
Author: Charles Zablit <c_zablit at apple.com>
Date: 2026-06-01 (Mon, 01 Jun 2026)
Changed paths:
M lldb/source/Plugins/Platform/Windows/PlatformWindows.cpp
Log Message:
-----------
[NFC][lldb][windows] Simplify PlatformWindows::ConnectRemote (#200823)
Commit: cedd8d914432253879a1b830c0550c0fb7f01776
https://github.com/llvm/llvm-project/commit/cedd8d914432253879a1b830c0550c0fb7f01776
Author: Charles Zablit <c_zablit at apple.com>
Date: 2026-06-01 (Mon, 01 Jun 2026)
Changed paths:
M lldb/source/Plugins/Process/Windows/Common/NativeProcessWindows.cpp
Log Message:
-----------
[NFC][lldb][windows] simplify NativeProcessWindows::FindSoftwareBreakpoint (#200820)
Commit: d2bea40d8822e51f58c2655996f27d159179d120
https://github.com/llvm/llvm-project/commit/d2bea40d8822e51f58c2655996f27d159179d120
Author: Charles Zablit <c_zablit at apple.com>
Date: 2026-06-01 (Mon, 01 Jun 2026)
Changed paths:
M lldb/source/Plugins/Process/Windows/Common/DebuggerThread.cpp
Log Message:
-----------
[NFC][lldb][windows] follow styling guidelines for hProcess (#200812)
`hProcess` does not follow the LLVM styling guidelines. Rename it to
`process`.
Commit: b05c5e4d8238bfe34f3b4df72377f714f2e60d2f
https://github.com/llvm/llvm-project/commit/b05c5e4d8238bfe34f3b4df72377f714f2e60d2f
Author: Charles Zablit <c_zablit at apple.com>
Date: 2026-06-01 (Mon, 01 Jun 2026)
Changed paths:
M lldb/source/Plugins/Process/Windows/Common/NativeProcessWindows.cpp
Log Message:
-----------
[lldb][Windows] Don't kill lldb when a thread fails to stop (#200805)
Replace `exit(1)` in `NativeProcessWindows::StopThread` with logging so
a single thread suspend failure no longer terminates lldb itself.
Commit: c07f4eef0945cf8e3b1d7480cbfcfa19f79d885f
https://github.com/llvm/llvm-project/commit/c07f4eef0945cf8e3b1d7480cbfcfa19f79d885f
Author: Timm Baeder <tbaeder at redhat.com>
Date: 2026-06-01 (Mon, 01 Jun 2026)
Changed paths:
M clang/lib/AST/ByteCode/Pointer.cpp
M clang/test/SemaCXX/constant-expression-p2280r4.cpp
Log Message:
-----------
[clang][bytecode] Remove unknown-size-array special handling (#200789)
from `Pointer::toAPValue()`.
Commit: e6ab63e40b5d53ec7c2b03cc6d084c0edeb7f32b
https://github.com/llvm/llvm-project/commit/e6ab63e40b5d53ec7c2b03cc6d084c0edeb7f32b
Author: idubinov <igor.dubinov at amd.com>
Date: 2026-06-01 (Mon, 01 Jun 2026)
Changed paths:
M llvm/lib/Target/SPIRV/SPIRVBuiltins.cpp
M llvm/lib/Target/SPIRV/SPIRVInstructionSelector.cpp
M llvm/lib/Target/SPIRV/SPIRVModuleAnalysis.cpp
R llvm/test/CodeGen/SPIRV/EnqueueEmptyKernel.ll
M llvm/test/CodeGen/SPIRV/transcoding/enqueue_kernel.ll
Log Message:
-----------
[SPIRV] Fix enqueue empty kernel (#187671)
Function reference arguments don't get spv_bitcast after opaque pointer
migration, while data pointer arguments still might. Therefore:
a. getBlockStructInstr() got updated to check G_GLOBAL_VALUE ->
G_ADDRSPACE_CAST pattern for function reference arguments;
b. buildEnqueueKernel() got updated to add bitcast the block literal
pointer from struct* to i8*, as required by OpEnqueueKernel.
---------
Co-authored-by: Arseniy Obolenskiy <gooddoog at student.su>
Co-authored-by: Marcos Maronas <mmaronas at amd.com>
Co-authored-by: Dmitry Sidorov <dsidorov at amd.com>
Commit: 8994480709a9b39042685842d8201c97fb822a68
https://github.com/llvm/llvm-project/commit/8994480709a9b39042685842d8201c97fb822a68
Author: Florian Hahn <flo at fhahn.com>
Date: 2026-06-01 (Mon, 01 Jun 2026)
Changed paths:
M llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
M llvm/lib/Transforms/Vectorize/VPlanHelpers.h
M llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
Log Message:
-----------
[LV] Remove legacy setVectorizedCallDecision & co (NFC). (#195519)
Remove setVectorizedCallDecision & co after being superseded by
https://github.com/llvm/llvm-project/pull/195518.
Note that we still need to retain some of the call cost logic in the
legacy cost model, to compute if scalarization is profitable.
Depends on https://github.com/llvm/llvm-project/pull/195518.
PR: https://github.com/llvm/llvm-project/pull/195519
Commit: 5c9b5781b7384956db5bd4ca019593a2d4024088
https://github.com/llvm/llvm-project/commit/5c9b5781b7384956db5bd4ca019593a2d4024088
Author: Cullen Rhodes <cullen.rhodes at arm.com>
Date: 2026-06-01 (Mon, 01 Jun 2026)
Changed paths:
M llvm/test/MC/AArch64/SME2/uqcvt-diagnostics.s
Log Message:
-----------
[AArch64][SME2] Fix mnemonic in uqcvt-diagnostics.s test (NFC) (#200824)
Commit: 87f09d325da79b379723b29755861da9baf2dc7a
https://github.com/llvm/llvm-project/commit/87f09d325da79b379723b29755861da9baf2dc7a
Author: Conscat <omg.lily2000 at gmail.com>
Date: 2026-06-01 (Mon, 01 Jun 2026)
Changed paths:
M clang/docs/ReleaseNotes.rst
M clang/lib/Parse/ParseExpr.cpp
M clang/lib/Parse/ParseExprCXX.cpp
M clang/lib/Parse/ParseTentative.cpp
M clang/test/SemaCXX/typeof.cpp
Log Message:
-----------
[clang] Parse `__typeof_unqual__` consistently with `__typeof__` (#198948)
C23 `__typeof_unqual` and `__typeof_unqual__` are supported in all
language modes as an extension.
However, existing tests missed this form:
```cpp
int main() {
__typeof_unqual(int) x = 0;
}
```
That doesn't compile today.
```
<source>:2:4: error: expected expression
2 | __typeof_unqual(int) x = 0;
| ^
1 error generated.
Compiler returned: 1
```
I think the fix is to parse `tok::kw_typeof_unqual` everywhere that we
currently parse `tok::kw_typeof`. It simply falls through `case`s
beneath `tok::kw_typeof`, so this should handle them equivalently. No
keyword semantics are changed by this PR.
While in here I noticed Clang Format ignores the token too, so I gave
Clang Format the same parsing parity between these tokens. It now holds
true under `isTypeName()`, just like `typeof`. `__typeof_unqual` kind of
accidentally formatted correctly in C++ anyways, but not in C, so this
is a meaningful fix. Previously it had no tests at all.
In the `clang-format` release notes, I'm not sure whether this should be
considered a fix or a new feature. I've left the clang-format notes
unchanged for now.
Assisted-by: Cursor/Claude Opus
Commit: 25ebed5fc05af9263300e381c684b3202fec3b2f
https://github.com/llvm/llvm-project/commit/25ebed5fc05af9263300e381c684b3202fec3b2f
Author: Charles Zablit <c_zablit at apple.com>
Date: 2026-06-01 (Mon, 01 Jun 2026)
Changed paths:
M lldb/source/Plugins/DynamicLoader/Windows-DYLD/DynamicLoaderWindowsDYLD.cpp
Log Message:
-----------
[lldb][windows] refactor null handling in DynamicLoaderWindowsDYLD (#200821)
This patch thightens the null guards.
---------
Co-authored-by: Nerixyz <nero.9 at hotmail.de>
Commit: dbeea291e5412c2d23a702078346ca894999bb92
https://github.com/llvm/llvm-project/commit/dbeea291e5412c2d23a702078346ca894999bb92
Author: Ilia Kuklin <ikuklin at accesssoftek.com>
Date: 2026-06-01 (Mon, 01 Jun 2026)
Changed paths:
M llvm/lib/ObjCopy/DXContainer/DXContainerObjcopy.cpp
M llvm/test/tools/llvm-objcopy/DXContainer/copy-headers.yaml
M llvm/test/tools/llvm-objcopy/DXContainer/dump-section.yaml
Log Message:
-----------
[llvm-objcopy] Strip header from DXContainer's ILDB part during `--dump-section` (#198578)
This strips the header from ILDB part of DXContainer during
`llvm-objcopy --dump-section`, so that the output contains bitcode only.
Commit: 6535731ef84e8ceccbb3f9ad511d23a202dcab81
https://github.com/llvm/llvm-project/commit/6535731ef84e8ceccbb3f9ad511d23a202dcab81
Author: Ryotaro Kasuga <kasuga.ryotaro at fujitsu.com>
Date: 2026-06-01 (Mon, 01 Jun 2026)
Changed paths:
A llvm/test/Transforms/LoopInterchange/memory-attr.ll
Log Message:
-----------
[LoopInterchange] Add test where loop has memory-affected calls (NFC) (#200827)
This patch adds the following two test cases:
- There is a call to a function with `memory(write)` in the loop nest,
which is taken from #200796.
- There is a call to a function with `memory(none)` in the loop nest.
For the former case, we are not allowed to interchange the loops because
the function call may write to an unknown memory location, but the
transformation is still applied, i.e., a miscompilation. As for the
latter case, the call should not prevent the loops from being
interchanged, which seems to be the original intention of the code.
Commit: 9f1568aca7542dd363a4f5e575311e6c901d8226
https://github.com/llvm/llvm-project/commit/9f1568aca7542dd363a4f5e575311e6c901d8226
Author: SunilKuravinakop <98882378+SunilKuravinakop at users.noreply.github.com>
Date: 2026-06-01 (Mon, 01 Jun 2026)
Changed paths:
M flang/test/Integration/OpenMP/atomic-capture-release.f90
Log Message:
-----------
[flang][OpenMP] Restricting Integration test atomic-capture-release.f90 run to x86 and aarch64 (#200770)
Similar to the the change in
`flang/test/Integration/OpenMP/atomic-compare.f90`, restricting the test
case `flang/test/Integration/OpenMP/atomic-capture-release.f90` to run
on
`x86-registered-target & aarch64-registered-target`
This also Fixes
[#200729](https://github.com/llvm/llvm-project/issues/200729)
A comment has been added to the merge in
[[Flang][OpenMP]Handling restrictions of using Memory-Order-Clause with
Atomic-Clause](https://github.com/llvm/llvm-project/pull/199636)
>LLVM Buildbot has detected a new failure on builder
ppc64le-mlir-rhel-clang running on ppc64le-mlir-rhel-test while building
flang,llvm,mlir at step 4 "cmake-configure".
Full details are available at:
https://lab.llvm.org/buildbot/#/builders/129/builds/45227
Hence this PR.
Co-authored-by: Sunil Kuravinakop <kuravina at pe31.hpc.amslabs.hpecorp.net>
Commit: 61480755ee91a7e1a24726fbcf4d6fd0e9b561e9
https://github.com/llvm/llvm-project/commit/61480755ee91a7e1a24726fbcf4d6fd0e9b561e9
Author: Amir Ayupov <aaupov at fb.com>
Date: 2026-06-01 (Mon, 01 Jun 2026)
Changed paths:
M bolt/include/bolt/Profile/DataAggregator.h
M bolt/include/bolt/Utils/CommandLineOpts.h
M bolt/lib/Profile/DataAggregator.cpp
M bolt/lib/Rewrite/RewriteInstance.cpp
M bolt/lib/Utils/CommandLineOpts.cpp
M bolt/test/X86/pre-aggregated-perf.test
M bolt/test/perf2bolt/perf_test.test
M bolt/tools/driver/llvm-bolt.cpp
M bolt/tools/heatmap/heatmap.cpp
Log Message:
-----------
[BOLT] Support multiple perf data inputs
Allow multiple -p/-perfdata args (comma-separated and repeated).
Process them in parallel with `--perfdata-jobs/-pj` (default 4,
0 for all available hardware threads). Keep YAML/DataReader
inputs single-profile only.
This also enables density computation with multiple perf files.
Prior to that, it was impossible to compute total density as
it wasn't computed from symbolized profiles.
Depends on
#199323
#199322
#199321
#199320
Test Plan:
Updated pre-aggregated-perf.test and perf_test
For a large binary (300MB text) and 7 ETM perf data files
(6GB each), compared to parallel perf2bolt + merge-fdata:
* processing time is equal: 670+3s -> 669s (within noise),
* output is equivalent: sorted fdata is equal.
Reviewers:
paschalis-mpeis, rafaelauler, yozhu, ayermolo, yavtuk, maksfb, yota9
Reviewed By: paschalis-mpeis, rafaelauler
Pull Request: https://github.com/llvm/llvm-project/pull/199324
Commit: e68990b844ee4bfbb29a187b32232a1edb04a873
https://github.com/llvm/llvm-project/commit/e68990b844ee4bfbb29a187b32232a1edb04a873
Author: Charles Zablit <c_zablit at apple.com>
Date: 2026-06-01 (Mon, 01 Jun 2026)
Changed paths:
M lldb/source/Plugins/Process/Windows/Common/NativeProcessWindows.cpp
M lldb/source/Plugins/Process/Windows/Common/NativeProcessWindows.h
Log Message:
-----------
[NFC][lldb][windows] break down NativeProcessWindows::OnDebugException (#200832)
This patch breaks down `NativeProcessWindows::OnDebugException` into 3
different handlers (one for each exception) for readability.
Commit: 53133f6234e926dc5385c0b1b328cc4f2b76de23
https://github.com/llvm/llvm-project/commit/53133f6234e926dc5385c0b1b328cc4f2b76de23
Author: Hongyu Chen <xxs_chy at outlook.com>
Date: 2026-06-01 (Mon, 01 Jun 2026)
Changed paths:
M llvm/lib/CodeGen/PeepholeOptimizer.cpp
M llvm/test/CodeGen/X86/bitcnt-load-with-cmov.ll
Log Message:
-----------
[Peephole] Do not fold load if any clobber exists (#198238)
Fixes #198173, which is introduced by
https://github.com/llvm/llvm-project/commit/9525bcc3e06e6c0bff3a85f503e47b06a63d6dcc.
The original patch missed the case where there is a clobber between
`LoadMI` and `FlagProducer`.
Commit: 5fa7b5547d2a70003a681ecf2823170c69c44bec
https://github.com/llvm/llvm-project/commit/5fa7b5547d2a70003a681ecf2823170c69c44bec
Author: Charles Zablit <c_zablit at apple.com>
Date: 2026-06-01 (Mon, 01 Jun 2026)
Changed paths:
M lldb/source/Host/windows/ProcessLauncherWindows.cpp
Log Message:
-----------
[NFC][lldb][windows] cleanup ProcessLauncherWindows result check (#200804)
Commit: b05222259c09b55a41f2a368dce8c21b016fe293
https://github.com/llvm/llvm-project/commit/b05222259c09b55a41f2a368dce8c21b016fe293
Author: Yingwei Zheng <dtcxzyw2333 at gmail.com>
Date: 2026-06-01 (Mon, 01 Jun 2026)
Changed paths:
M llvm/test/tools/llubi/intr_vector_manip.ll
M llvm/tools/llubi/lib/Interpreter.cpp
M llvm/tools/llubi/lib/Library.cpp
M llvm/tools/llubi/lib/Value.h
Log Message:
-----------
[llubi] Fix the storage kind of poison results (#200830)
`AnyValue::poison()` only represents scalar integer/fp/pointer values.
Commit: ef7cbc5f9c408a1c505fc5aa4e1920fb8c0ed9c0
https://github.com/llvm/llvm-project/commit/ef7cbc5f9c408a1c505fc5aa4e1920fb8c0ed9c0
Author: Davide Grohmann <davide.grohmann at arm.com>
Date: 2026-06-01 (Mon, 01 Jun 2026)
Changed paths:
M mlir/lib/Conversion/TosaToSPIRVTosa/TosaToSPIRVTosaOps.cpp
M mlir/test/Conversion/TosaToSPIRVTosa/tosa-to-spirv.mlir
Log Message:
-----------
[mlir][spirv][tosa] Add remaining TOSA 1.0 SPIR-V TOSA ops (#200383)
Add conversion patterns for additional TOSA 1.0 operations targeting the
SPIR-V TOSA extended instruction set.
This covers pooling and convolution ops, FFT/RFFT, matmul, concat, pad,
rescale, const, const_shape, and identity. Concat is split into
conservative chunks to avoid producing SPIR-V instructions with too many
operands.
Add a multi-result conversion pattern for FFT/RFFT and share the
convolution replacement logic for conv2d, conv3d, and depthwise_conv2d
while keeping transpose_conv2d explicit because it has different
attributes.
Also share constant attribute conversion for const and const_shape,
including integer element type conversions such as index to i32, i4 to
i8, and i48 to i64, and preserve the empty const_shape edge case.
Add conversion tests for the newly covered operations.
Signed-off-by: Davide Grohmann <davide.grohmann at arm.com>
Commit: 82b4ef588555273c1561ffeae6f3ca3c78120189
https://github.com/llvm/llvm-project/commit/82b4ef588555273c1561ffeae6f3ca3c78120189
Author: RonDahan101 <166982786+RonDahan101 at users.noreply.github.com>
Date: 2026-06-01 (Mon, 01 Jun 2026)
Changed paths:
M llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
M llvm/lib/Transforms/Vectorize/VPlan.h
M llvm/lib/Transforms/Vectorize/VPlanRecipes.cpp
M llvm/test/Transforms/LoopVectorize/AArch64/sve2-histcnt.ll
M llvm/test/Transforms/LoopVectorize/VPlan/AArch64/sve2-histcnt-vplan.ll
Log Message:
-----------
[LV] Fix missing MetaData for histogram instructions (#134241)
Commit: 96f5b177203af235f59e9c3512dd3734a4edbefb
https://github.com/llvm/llvm-project/commit/96f5b177203af235f59e9c3512dd3734a4edbefb
Author: Pavel Labath <pavel at labath.sk>
Date: 2026-06-01 (Mon, 01 Jun 2026)
Changed paths:
M libc/config/linux/aarch64/headers.txt
M libc/config/linux/riscv/headers.txt
M libc/config/linux/x86_64/headers.txt
M libc/hdr/types/CMakeLists.txt
A libc/hdr/types/struct_udphdr.h
M libc/include/CMakeLists.txt
M libc/include/llvm-libc-types/CMakeLists.txt
A libc/include/llvm-libc-types/struct_udphdr.h
A libc/include/netinet/udp.yaml
M libc/test/src/CMakeLists.txt
A libc/test/src/netinet/CMakeLists.txt
A libc/test/src/netinet/udp_test.cpp
Log Message:
-----------
[libc] Add netinet/udp.h containing struct udphdr (#200839)
This patch adds a generated <netinet/udp.h> containing the `udphdr`
structure definition.
There are two styles ("linux" and "BSD") of udphdr field names (and both
of them can be found in the wild), so I follow the glibc and bionic
approach of using an anonymous union. (musl uses a #define on the field
names, which doesn't seem that great).
I've added the target to `include/CMakeLists.txt` and registered it
under target lists in `headers.txt` for the supported Linux platforms
(x86_64, aarch64, and riscv).
To verify layout and alignment correctness, I've added a layout and
field compatibility unit test under `test/src/netinet/udp_test.cpp`.
Assisted by Gemini.
Commit: 45660cb7d894741cfaeb5f94058662c81f9a07ca
https://github.com/llvm/llvm-project/commit/45660cb7d894741cfaeb5f94058662c81f9a07ca
Author: Charles Zablit <c_zablit at apple.com>
Date: 2026-06-01 (Mon, 01 Jun 2026)
Changed paths:
M lldb/source/Host/windows/ConnectionGenericFileWindows.cpp
Log Message:
-----------
[lldb][Windows] Use captured error in ConnectionGenericFile::Read (#200803)
Use the captured value on both branches so the reported error matches
the one that was tested against.
Commit: 234e46a14635cb1b76e4852fc49a3407f6d87a1b
https://github.com/llvm/llvm-project/commit/234e46a14635cb1b76e4852fc49a3407f6d87a1b
Author: Zhen Wang <zhenw at nvidia.com>
Date: 2026-06-01 (Mon, 01 Jun 2026)
Changed paths:
M flang/include/flang/Semantics/semantics.h
M flang/lib/Semantics/resolve-names.cpp
M flang/lib/Semantics/semantics.cpp
A flang/test/Semantics/cuf-missing-intrinsic-modules.cuf
Log Message:
-----------
[cuda][flang] Diagnose missing CUDA intrinsic modules in Flang semantics (#200509)
- Replace CUDA intrinsic module `CHECK`s with actionable diagnostics
when `cudadevice` or `__cuda_builtins` cannot be read.
- Avoid dereferencing missing CUDA module scopes during implicit CUDA
symbol import.
- Add a semantics test covering the missing CUDA intrinsic module
diagnostic.
Commit: 1f1ae8f372d680c12fea01b041a0ab83e169225a
https://github.com/llvm/llvm-project/commit/1f1ae8f372d680c12fea01b041a0ab83e169225a
Author: Alexey Bader <alexey.bader at intel.com>
Date: 2026-06-01 (Mon, 01 Jun 2026)
Changed paths:
M clang/tools/clang-sycl-linker/ClangSYCLLinker.cpp
Log Message:
-----------
[NFC][clang-sycl-linker] Apply LLVM coding standards to ClangSYCLLinker.cpp (#200543)
Bring the file in line with llvm/docs/CodingStandards.rst without
changing
behavior:
- Restore the canonical //===---===// file-header banner.
- Move free functions out of the anonymous namespace and mark them
`static`; keep only types (LinkerOptTable, LinkResult, SplitModule,
IRSplitMode, EntryPointCategorizer) inside anonymous namespaces.
- Rename a local `OutputFile` in createTempFile to `Path` to stop it
shadowing the file-scope `OutputFile`.
- Rename the inner `Err` in runCodeGen to `MatErr` to stop it shadowing
the surrounding `SMDiagnostic Err`.
- Normalize parameter-name comments to the `/*Name=*/value` form.
- Strip quotes from Doxygen `\param 'Name'` directives.
Co-Authored-By: Claude
Commit: 83538c5ef242052a9140603a167858af86b033c3
https://github.com/llvm/llvm-project/commit/83538c5ef242052a9140603a167858af86b033c3
Author: Amr Hesham <amr96 at programmer.net>
Date: 2026-06-01 (Mon, 01 Jun 2026)
Changed paths:
M clang/lib/CIR/CodeGen/CIRGenExprScalar.cpp
M clang/test/CIR/CodeGenOpenCL/as_type.cl
Log Message:
-----------
[CIR] Implement __builtin_astype for vec4 to vec3 (#199374)
Implement __builtin_astype for vec4 to vec3
Issue #192311
Commit: 9e0d8a65db700435bda0ca8d63dadb07e6e18370
https://github.com/llvm/llvm-project/commit/9e0d8a65db700435bda0ca8d63dadb07e6e18370
Author: Adrian Prantl <aprantl at apple.com>
Date: 2026-06-01 (Mon, 01 Jun 2026)
Changed paths:
M lldb/include/lldb/Symbol/Type.h
M lldb/source/Symbol/Type.cpp
M lldb/unittests/Symbol/TestType.cpp
Log Message:
-----------
[LLDB] Detect cycles during Type resolution (#200304)
I got LLDB crash reports from the Swift plugin where (presumably
malformed) debug info sends lldb_private::Type into an infite recursion.
Most likely this is a bug in the DWARF parser, however, even malformed
inputs shouldn't crash LLDB so this patch adds cycle detection.
rdar://177856769
Assisted-by: claude
Commit: 8b901cc2a0a3310b2b25d01f31d4bec665b714ef
https://github.com/llvm/llvm-project/commit/8b901cc2a0a3310b2b25d01f31d4bec665b714ef
Author: Sergei Druzhkov <serzhdruzhok at gmail.com>
Date: 2026-06-01 (Mon, 01 Jun 2026)
Changed paths:
M lldb/tools/lldb-dap/InstructionBreakpoint.cpp
M lldb/tools/lldb-dap/InstructionBreakpoint.h
Log Message:
-----------
[lldb-dap] Cleanup InstructionBreakpoint (#200228)
Added mutex like in other breakpoints
([PR](https://github.com/llvm/llvm-project/pull/134030)). Also removed
unused `m_offset` field.
Commit: 92b01a1bac4d01bb548c625a464840e32dea6c13
https://github.com/llvm/llvm-project/commit/92b01a1bac4d01bb548c625a464840e32dea6c13
Author: lntue <lntue at google.com>
Date: 2026-06-01 (Mon, 01 Jun 2026)
Changed paths:
M .github/workflows/libc-fullbuild-tests.yml
Log Message:
-----------
[libc] Add GPU build-only to fullbuild precommit CIs. (#200593)
- Add build-only CI for AMDGPU.
- Also pass correct flags to other targets.
Commit: e4065977f3de2b3518cad25a9ad07030610edd79
https://github.com/llvm/llvm-project/commit/e4065977f3de2b3518cad25a9ad07030610edd79
Author: Yaxun (Sam) Liu <yaxun.liu at amd.com>
Date: 2026-06-01 (Mon, 01 Jun 2026)
Changed paths:
M llvm/include/llvm/Transforms/Scalar.h
M llvm/include/llvm/Transforms/Scalar/SROA.h
M llvm/lib/Passes/PassBuilder.cpp
M llvm/lib/Passes/PassBuilderPipelines.cpp
M llvm/lib/Target/NVPTX/NVPTXTargetMachine.cpp
M llvm/lib/Transforms/Scalar/SROA.cpp
M llvm/test/CodeGen/NVPTX/lower-byval-args.ll
A llvm/test/Transforms/PhaseOrdering/struct-to-vector-before-memcpyopt.ll
A llvm/test/Transforms/SROA/struct-to-vector-fp-store-only-tail.ll
A llvm/test/Transforms/SROA/struct-to-vector-subpartition.ll
A llvm/test/Transforms/SROA/struct-to-vector.ll
Log Message:
-----------
[SROA] Canonicalize homogeneous structs to fixed vectors (opt-in, after memcpyopt) (#165159)
SROA sometimes keeps temporary allocas around for homogeneous structs
like
`{ i32, i32, i32, i32 }` because the partition has only memcpy/memset
traffic
and no scalar typed users to drive vector promotion. On targets like
AMDGPU
these allocas turn into scratch memory and hurt performance. This PR
adds a
helper `tryCanonicalizeStructToVector` that converts such a partition to
a
fixed vector type when every non-debug, non-lifetime user is a memory
intrinsic, so the alloca can promote through normal vector load/store
paths.
The element-shape rule accepts any homogeneous element count, any
integer
width, any FP type, and integral pointer types, as long as the struct is
tightly packed.
Canonicalization is gated behind a new per-pass option
`canonicalize-struct-to-vector` on `SROAOptions`, off by default. Only
the
late SROA passes in `addVectorPasses` (new PM, non-LTO and FullLTO) and
the
two legacy-PM SROAs in NVPTX enable it, so it always runs after
`MemCpyOptPass`. Running it earlier can hide memcpy chains that
memcpyopt
would otherwise collapse, and can also emit wide stores whose suffix
lanes
are undef when only part of a struct was initialized. Both hazards are
covered by new tests `struct-to-vector-before-memcpyopt.ll` and
`struct-to-vector-fp-store-only-tail.ll`. The opt-in design and the
"after memcpyopt" placement come from @YonahGoldberg's refactor, which
removed every regression reported in earlier benchmark runs (see
dtcxzyw/llvm-opt-benchmark-nightly#306). AMDGPU inherits the new-PM
opt-ins
automatically; other targets keep upstream-main SROA behavior unless
they
opt in.
Co-authored-by: Yonah Goldberg <ygoldberg at nvidia.com>
---------
Co-authored-by: Yonah Goldberg <ygoldberg at nvidia.com>
Commit: b480b451b211c3956e06e5630f368daa14325f6f
https://github.com/llvm/llvm-project/commit/b480b451b211c3956e06e5630f368daa14325f6f
Author: Arseniy Obolenskiy <arseniy.obolenskiy at amd.com>
Date: 2026-06-01 (Mon, 01 Jun 2026)
Changed paths:
M llvm/lib/IR/Verifier.cpp
A llvm/test/Verifier/AMDGPU/intrinsic-load-to-lds.ll
Log Message:
-----------
[AMDGPU] Verify data size of load-to-LDS intrinsics (#200587)
An out-of-range size immarg (e.g. 0) produced an illegal i0 memory type
during SelectionDAG building and crashed the backend instead of being
rejected up front
Commit: 0068e3c4c9233d54d22d205ab17ecd88a97050c0
https://github.com/llvm/llvm-project/commit/0068e3c4c9233d54d22d205ab17ecd88a97050c0
Author: Deric C. <cheung.deric at gmail.com>
Date: 2026-06-01 (Mon, 01 Jun 2026)
Changed paths:
M llvm/lib/Target/DirectX/DXIL.td
M llvm/lib/Target/DirectX/DXILOpLowering.cpp
A llvm/test/CodeGen/DirectX/SampleBias.ll
Log Message:
-----------
[DirectX] Implement lowering of llvm.dx.resource.samplebias to the SampleBias DXIL Op (#199745)
Fixes #192548
This PR implements the lowering of the `llvm.dx.resource.samplebias`
intrinsic to the `SampleBias` DXIL Op.
Although I reckon that other `lowerSample*` functions in
`DXILOpLowering.cpp` will have shared logic, this is the first one to be
implemented. Consolidating common logic between future `lowerSample*`
functions can be left to a later PR implementing the second or other
`lowerSample*` function.
Assisted-by: Claude Opus 4.6
Commit: 09f30ef6105e3f9695ad876fcb5add2e7917712b
https://github.com/llvm/llvm-project/commit/09f30ef6105e3f9695ad876fcb5add2e7917712b
Author: Sergei Druzhkov <serzhdruzhok at gmail.com>
Date: 2026-06-01 (Mon, 01 Jun 2026)
Changed paths:
M lldb/test/API/tools/lldb-dap/attach-commands/TestDAP_attachCommands.py
M lldb/test/API/tools/lldb-dap/launch/TestDAP_launch_extra_launch_commands.py
M lldb/tools/lldb-dap/Handler/AttachRequestHandler.cpp
M lldb/tools/lldb-dap/Handler/RequestHandler.cpp
Log Message:
-----------
[lldb-dap] Use SetTarget for launch and attach commands (#200133)
Without this patch event listener registration was skipped, as a result
`Modules` view in UI was not displayed in case of launching target via
`launchCommands` or `attachCommands`.
Commit: 5eca8b67ff3c5f371141d54b6e4544a0ebe77fdb
https://github.com/llvm/llvm-project/commit/5eca8b67ff3c5f371141d54b6e4544a0ebe77fdb
Author: Yaxun (Sam) Liu <yaxun.liu at amd.com>
Date: 2026-06-01 (Mon, 01 Jun 2026)
Changed paths:
M compiler-rt/lib/profile/CMakeLists.txt
Log Message:
-----------
[PGO][HIP] Fix profile-only Windows link by gating ROCm interceptor macro (#200859)
PR #200111 stops compiling InstrProfilingPlatformROCm.cpp (which defines
the
HIP GPU helper __llvm_profile_hip_collect_device_data) in profile-only
builds.
But the compile define -DCOMPILER_RT_BUILD_PROFILE_ROCM=1 was still
added
whenever the COMPILER_RT_BUILD_PROFILE_ROCM option was on (the default),
so
InstrProfilingFile.c still referenced the helper from
__llvm_profile_write_file
even though it was never built.
On ELF the declaration is weak, so the undefined symbol folds to null
and the
address-guarded call is skipped. COFF/Windows has no such fallback:
error LNK2019: unresolved external symbol
__llvm_profile_hip_collect_device_data referenced in function
__llvm_profile_write_file
Add the define only when PROFILE_HAS_HIP_INTERCEPTOR is true, i.e. the
same
condition that keeps InstrProfilingPlatformROCm.cpp in the archive, so
the
macro is defined iff the helper is actually compiled in.
Reported by zmodem:
https://github.com/llvm/llvm-project/pull/200111#issuecomment-4593893230
Commit: 1f467e7180891c0d4249c6c0d78be1dae62c36a5
https://github.com/llvm/llvm-project/commit/1f467e7180891c0d4249c6c0d78be1dae62c36a5
Author: Nick Sarnie <nick.sarnie at intel.com>
Date: 2026-06-01 (Mon, 01 Jun 2026)
Changed paths:
M offload/test/mapping/ompx_hold/struct.c
M offload/test/offloading/indirect_fp_mapping.c
Log Message:
-----------
[offload][LIT] Disable two tests failing on new Intel GPU driver (#200856)
One new consistent failure and one which causes instability.
Signed-off-by: Nick Sarnie <nick.sarnie at intel.com>
Commit: 668441fbdacdeee35069989acf92824db9af1764
https://github.com/llvm/llvm-project/commit/668441fbdacdeee35069989acf92824db9af1764
Author: Florian Hahn <flo at fhahn.com>
Date: 2026-06-01 (Mon, 01 Jun 2026)
Changed paths:
M llvm/test/Transforms/LoopVectorize/VPlan/expand-scev.ll
Log Message:
-----------
[LV] Add VPlan printing test wih UDiv SCEV expansion. (NFC) (#200845)
Commit: 2b4f07dfa997a31af99fa43ba9348b76e0624ed9
https://github.com/llvm/llvm-project/commit/2b4f07dfa997a31af99fa43ba9348b76e0624ed9
Author: duk <74797529+duk-37 at users.noreply.github.com>
Date: 2026-06-01 (Mon, 01 Jun 2026)
Changed paths:
M llvm/lib/Target/X86/X86FixupLEAs.cpp
A llvm/test/CodeGen/X86/lea-fixup-mcsymbol.mir
Log Message:
-----------
[X86] Fix X86FixupLEAs displacement check for other types of operands (#200705)
This has [already bitten us
before](https://github.com/llvm/llvm-project/pull/71641) with
BlockAddresses, but another case popped up recently: under complex
conditions, LEAs in the three-operand case with symbolic displacements
could be miscompiled due to `MO_MCSymbol` not being handled in a similar
way. To avoid other issues in the future, just be more conservative
about the symbol type and only return false if we know for a fact that
the offset is zero.
Fixes #200707
Commit: 2b9a8029af27be8c8e7fc6c2c07ca79bc89359a8
https://github.com/llvm/llvm-project/commit/2b9a8029af27be8c8e7fc6c2c07ca79bc89359a8
Author: Sjoerd Meijer <smeijer at nvidia.com>
Date: 2026-06-01 (Mon, 01 Jun 2026)
Changed paths:
M llvm/Maintainers.md
Log Message:
-----------
[LLVM] Nominate Ehsan as a DA maintainer (#200375)
This is related to #200335. I would like to nominate Ehsan as a
maintainer for DependenceAnalysis as I am aware he expressed interest in
that. I am happy that Ryotaro became a maintainer, and if we get one
more maintainer with Ehsan, that is a really good sign of a healthy loop
optimisation community; I think this is a good thing, and support this.
---------
Co-authored-by: Ehsan Amiri <ehsan.amiri at huawei.com>
Commit: 754d3d0d966423f9d308c6823deed55b02bac9f2
https://github.com/llvm/llvm-project/commit/754d3d0d966423f9d308c6823deed55b02bac9f2
Author: Leandro Lupori <leandro.lupori at linaro.org>
Date: 2026-06-01 (Mon, 01 Jun 2026)
Changed paths:
M flang/lib/Lower/OpenMP/DataSharingProcessor.cpp
M flang/lib/Lower/OpenMP/OpenMP.cpp
M flang/test/Lower/OpenMP/composite_simd_linear.f90
M flang/test/Lower/OpenMP/distribute-parallel-do-simd.f90
M flang/test/Lower/OpenMP/distribute-simd.f90
M flang/test/Lower/OpenMP/linear_modifier.f90
M flang/test/Lower/OpenMP/loop-pointer-variable.f90
M flang/test/Lower/OpenMP/ordered-simd.f90
M flang/test/Lower/OpenMP/wsloop-simd.f90
M mlir/lib/Target/LLVMIR/Dialect/OpenMP/OpenMPToLLVMIRTranslation.cpp
A mlir/test/Target/LLVMIR/openmp-simd-linear.mlir
Log Message:
-----------
Reland "[flang][OpenMP] Fix lowering of LINEAR iteration variables (#188851)" (#194623)
Linear iteration variables were being treated as private. This fixes
one of the issues reported in #170784.
The regressions in the OpenMP V&V and Fujitsu testsuites happened
because the users iterator was apparently becoming invalid, after one of
its uses was replaced. This was fixed by making a copy of the list of
users.
Commit: 4044ea38d4c4b3d00a33116be5e780f5bada33bb
https://github.com/llvm/llvm-project/commit/4044ea38d4c4b3d00a33116be5e780f5bada33bb
Author: Hristo Hristov <hghristov.rmm at gmail.com>
Date: 2026-06-01 (Mon, 01 Jun 2026)
Changed paths:
M libcxx/include/__iterator/bounded_iter.h
M libcxx/include/__iterator/capacity_aware_iterator.h
A libcxx/test/libcxx/utilities/optional/nodiscard.iterator.verify.cpp
Log Message:
-----------
[libc++] Applied `[[nodiscard]]` to `optional::iterator` (#198489)
Towards #172124
Commit: 1e79ea1f5b3e4aafdaeeb577babbf3b969744232
https://github.com/llvm/llvm-project/commit/1e79ea1f5b3e4aafdaeeb577babbf3b969744232
Author: Madhur Amilkanthwar <madhura at nvidia.com>
Date: 2026-06-01 (Mon, 01 Jun 2026)
Changed paths:
M llvm/lib/Transforms/Utils/LoopUnroll.cpp
A llvm/test/Transforms/LoopUnroll/runtime-unroll-reductions-min-max.ll
Log Message:
-----------
[LoopUnroll] Support parallel reductions for minmax (#182473)
This patch
* Supports parallel reductions for min/max operations in LoopUnroller.
* Adds relevant test (including intrinsics).
* Renames flag -unroll-add-parallel-reduction to
-unroll-parallel-reduction.
* Relaxes check in IVDescriptors.cpp (`getMinMaxRecurrence`) to handle
out-of-loop uses.
Planning to take support for vector types in the next patch.
Commit: cd6891edcffa29284bb0815ec771467facaf3f35
https://github.com/llvm/llvm-project/commit/cd6891edcffa29284bb0815ec771467facaf3f35
Author: Aayush Shrivastava <79578660+iamaayushrivastava at users.noreply.github.com>
Date: 2026-06-01 (Mon, 01 Jun 2026)
Changed paths:
M libc/include/math.yaml
Log Message:
-----------
[libc][math] Add missing math.yaml entries for acospif and atan2f16 (#199442)
Fixes #199266
This PR adds missing `math.yaml` entries for `acospif` and `atan2f16`.
Commit: d1010189961f8060cebbe2543f5d586d4fbad263
https://github.com/llvm/llvm-project/commit/d1010189961f8060cebbe2543f5d586d4fbad263
Author: NeKon69 <nobodqwe at gmail.com>
Date: 2026-06-01 (Mon, 01 Jun 2026)
Changed paths:
M clang/include/clang/Analysis/CFG.h
M clang/lib/Analysis/CFG.cpp
M clang/lib/Analysis/LifetimeSafety/FactsGenerator.cpp
M clang/test/Sema/warn-lifetime-safety.cpp
Log Message:
-----------
[LifetimeSafety] Store cleanup expressions for temporaries (#200568)
Now in `CFGFullExprCleanup` we also store a cleanup expressions to be
able to get an accurate location where destruction happened.
This helps user understand lifetime semantics of objects better.
Closes #195503
Commit: 294b72f48f1178e4f9cf9a68f3c807c12557298a
https://github.com/llvm/llvm-project/commit/294b72f48f1178e4f9cf9a68f3c807c12557298a
Author: Florian Hahn <flo at fhahn.com>
Date: 2026-06-01 (Mon, 01 Jun 2026)
Changed paths:
M llvm/lib/Transforms/Vectorize/VPlan.h
M llvm/unittests/Transforms/Vectorize/VPlanTest.cpp
Log Message:
-----------
[VPlan] Assert operand correctness at construction. (NFC) (#200686)
Update VPWidenPHIRecipe, VPBlendRecipe and VPReductionRecipe to assert
type correctness at construction.
PR: https://github.com/llvm/llvm-project/pull/200686
Commit: 6277fbf3f1afe5a87a66301cadeb5daa4dfce3b4
https://github.com/llvm/llvm-project/commit/6277fbf3f1afe5a87a66301cadeb5daa4dfce3b4
Author: Sergei Barannikov <barannikov88 at gmail.com>
Date: 2026-06-01 (Mon, 01 Jun 2026)
Changed paths:
M llvm/include/llvm/Support/ELFAttrParserCompact.h
M llvm/include/llvm/Support/ELFAttrParserExtended.h
M llvm/lib/Support/ELFAttrParserCompact.cpp
M llvm/lib/Support/ELFAttrParserExtended.cpp
Log Message:
-----------
[Support] Remove unused argument of DataExtractor constructor (NFC) (#197121)
`AddressSize` parameter is not used by `DataExtractor` and will be
removed in the future. See #190519 for more context.
Commit: 203c0668d4b098714d1748de766e890fe6296891
https://github.com/llvm/llvm-project/commit/203c0668d4b098714d1748de766e890fe6296891
Author: Aayush Shrivastava <79578660+iamaayushrivastava at users.noreply.github.com>
Date: 2026-06-01 (Mon, 01 Jun 2026)
Changed paths:
M clang/lib/AST/AttrImpl.cpp
M clang/test/Sema/alloc-size.c
M clang/test/Sema/attr-nonnull.c
Log Message:
-----------
[clang] Fix assertion crash in alloc_size structural equivalence check (#199407) (#199980)
Fixes #199407
Remove ParamIdx from the `USE_DEFAULT_EQUALITY` default-comparison path
and add an explicit `equalAttrArgs<ParamIdx>` specialization that safely
handles invalid (unset) values.
Commit: 52ff7167af07c3173e0dddebba8c5cf288d45d71
https://github.com/llvm/llvm-project/commit/52ff7167af07c3173e0dddebba8c5cf288d45d71
Author: Arseniy Obolenskiy <arseniy.obolenskiy at amd.com>
Date: 2026-06-01 (Mon, 01 Jun 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/SIFixSGPRCopies.cpp
M llvm/test/CodeGen/AMDGPU/vgpr_constant64_to_sgpr.mir
Log Message:
-----------
[AMDGPU] Use S_MOV_B64_IMM_PSEUDO when moving 64-bit VGPR const to SGPR (#200576)
S_MOV_B64 only encodes a 32-bit literal, so rematerializing a non-inline
64-bit immediate through it silently dropped the high 32 bits
Commit: 2a2e45257b8277ae6dbd3bce1627a9b07d1a301d
https://github.com/llvm/llvm-project/commit/2a2e45257b8277ae6dbd3bce1627a9b07d1a301d
Author: Arseniy Obolenskiy <arseniy.obolenskiy at amd.com>
Date: 2026-06-01 (Mon, 01 Jun 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPUPrintfRuntimeBinding.cpp
M llvm/test/CodeGen/AMDGPU/opencl-printf.ll
Log Message:
-----------
[AMDGPU] Use fpext to widen sub DWORD FP printf args (#200870)
Widening half/bfloat printf varargs via bitcast+sext corrupted the FP
bit pattern for negative values
Extend by value-preserving fpext to float instead
Commit: 56ccbc25315030088b04435e4828efbc22f0e926
https://github.com/llvm/llvm-project/commit/56ccbc25315030088b04435e4828efbc22f0e926
Author: Madhur Amilkanthwar <madhura at nvidia.com>
Date: 2026-06-01 (Mon, 01 Jun 2026)
Changed paths:
M llvm/lib/Transforms/Utils/LoopUnroll.cpp
R llvm/test/Transforms/LoopUnroll/runtime-unroll-reductions-min-max.ll
Log Message:
-----------
Revert "[LoopUnroll] Support parallel reductions for minmax (#182473)" (#200892)
This reverts commit 1e79ea1f5b3e4aafdaeeb577babbf3b969744232.
Commit: b8db0a46a08d5aa14a872dd9b1a778b334b2cce4
https://github.com/llvm/llvm-project/commit/b8db0a46a08d5aa14a872dd9b1a778b334b2cce4
Author: Lily Gorsheneva <bgorshenev at google.com>
Date: 2026-06-01 (Mon, 01 Jun 2026)
Changed paths:
M llvm/test/Transforms/LoadStoreVectorizer/AMDGPU/merge-vectors.ll
M llvm/test/Transforms/LoadStoreVectorizer/AMDGPU/unaligned-buffer.ll
Log Message:
-----------
Make tests added in rd5a24ef work in read-only source filesystems. (#200883)
Commit: 8bae84de90eb5b042cc8a320b88f92357e09975f
https://github.com/llvm/llvm-project/commit/8bae84de90eb5b042cc8a320b88f92357e09975f
Author: Krzysztof Parzyszek <Krzysztof.Parzyszek at amd.com>
Date: 2026-06-01 (Mon, 01 Jun 2026)
Changed paths:
M flang/lib/Semantics/check-omp-structure.cpp
M flang/lib/Semantics/check-omp-structure.h
Log Message:
-----------
[flang][OpenMP] Simplify checks for type-parameter inquiry (#198217)
Remove the no longer needed IsDataRefTypeParamInquiry.
Commit: 09bf7ef7d7848e4c78d3790a51dc28d9f157e777
https://github.com/llvm/llvm-project/commit/09bf7ef7d7848e4c78d3790a51dc28d9f157e777
Author: Harlen Batagelo <hbatagelo at gmail.com>
Date: 2026-06-01 (Mon, 01 Jun 2026)
Changed paths:
M llvm/include/llvm/Testing/Annotations/Annotations.h
M llvm/lib/Testing/Annotations/Annotations.cpp
M llvm/unittests/Testing/Annotations/AnnotationsTest.cpp
Log Message:
-----------
[Testing] Allow custom markers in llvm::Annotations (#195570)
The current annotation markers can conflict with several language
constructs. Notably, `[[ ]]` and `^` collide with C++ attributes (e.g.,
`[[nodiscard]]`), the C++26 reflection operator (`^^int`), and
Objective-C blocks (`void (^foo)(void)`). Similarly, `$` can conflict
with identifiers that also use `$` with `-fdollars-in-identifiers`, as
well as with C++26 code that uses `$` as raw-string delimiters or as a
preprocessing token
([P2558R2](https://www.open-std.org/JTC1/SC22/WG21/docs/papers/2023/p2558r2.html)).
Because the markers are currently hardcoded in `llvm::Annotations`,
existing workarounds have to rely on digraphs or macro substitution via
implicit `#define`s. These approaches reduce readability and make tests
cumbersome to write. This PR alleviates these issues by adding support
for custom markers. It adds an overloaded `Annotations` constructor that
accepts a new `Annotations::Markers` struct. For example, to use `~` for
point, `@` for name, and `{{`/`}}` for range:
```cpp
Annotations Example(R"cpp(
@name(payload){{[[nodiscard]] int foo(int x);}}~
)cpp", {"~", "@", "{{", "}}"});
```
Alternatively, we can use setters to customize the markers individually:
```cpp
Annotations Example(R"cpp(
@name(payload){{[[nodiscard]] int foo(int x);}}~
)cpp", Annotations::Markers().setPoint("~")
.setName("@@")
.setRangeBegin("{{")
.setRangeEnd("}}"));
```
Using longer markers:
```cpp
Annotations Example(R"cpp(
$$name(payload)[[[[[nodiscard]] int foo(int x);]]]^^
)cpp", {"^^", "$$", "[[[", "]]]"});
```
Using multi-byte characters:
```cpp
Annotations Example(R"cpp(
🏷️name(payload)👉[[nodiscard]] int foo(int x);👈🎯
)cpp", {"🎯", "🏷️", "👉", "👈"});
```
The existing single-argument constructor delegates to the new overload,
preserving backward compatibility.
PS: The original code has a FIXME comment mentioning alternative
approaches, such as escaping and changing the default syntax. While
valid, escaping would increase visual noise, and changing the default
syntax would break existing tests. The approach proposed here provides
the flexibility to choose a syntax that is clean for a specific context
and is backward compatible. See https://reviews.llvm.org/D59814 for
earlier discussion about these alternative design choices.
Commit: e5851a8f307a8e59742c5ab8fed7abdbe3f9cf21
https://github.com/llvm/llvm-project/commit/e5851a8f307a8e59742c5ab8fed7abdbe3f9cf21
Author: Justin Lebar <justin.lebar at gmail.com>
Date: 2026-06-01 (Mon, 01 Jun 2026)
Changed paths:
M llvm/lib/Target/NVPTX/NVPTXISelLowering.cpp
M llvm/lib/Target/NVPTX/NVPTXInstrInfo.td
M llvm/test/CodeGen/NVPTX/convert-fp.ll
Log Message:
-----------
[NVPTX] Fix fptosi/fptoui to i1. (#200718)
The langref says:
> The 'fptosi' instruction converts its floating-point operand into the
> nearest (rounding towards zero) signed integer value. If the value
> cannot fit in ty2, the result is a poison value.
Previously `fptosi to i1` and `fptoui to i1` were lowered as `x == 0.0`,
which is clearly incorrect.
Because the conversion truncates toward zero, the only results that are
not poison are:
- 0 and -1 for the signed case, and
- 0 and 1 for the unsigned case.
So the i1 result is fully determined by a single fp compare:
- `fptosi x to i1` == `x <= -1.0`
- `fptoui x to i1` == `x >= 1.0`
with any value being acceptable for the poison (out-of-range) inputs.
Commit: 0f1f234990f40c942fb8b87cd2141c48848b8253
https://github.com/llvm/llvm-project/commit/0f1f234990f40c942fb8b87cd2141c48848b8253
Author: Zorojuro <sawantsukumar at gmail.com>
Date: 2026-06-01 (Mon, 01 Jun 2026)
Changed paths:
M libc/test/src/math/acos_test.cpp
M libc/test/src/math/asin_test.cpp
M libc/test/src/math/atan_test.cpp
M libc/test/src/math/cbrt_test.cpp
M libc/test/src/math/exp10_test.cpp
M libc/test/src/math/exp2_test.cpp
M libc/test/src/math/exp_test.cpp
M libc/test/src/math/expm1_test.cpp
M libc/test/src/math/sin_test.cpp
M libc/test/src/math/sincos_test.cpp
Log Message:
-----------
[libc][math] Adding constexpr to tests for Double-type math functions (#200681)
Similar to
```CPP
constexpr uint64_t X_COUNT = 123;
constexpr uint64_t X_START = FPBits(0.25).uintval();
constexpr uint64_t X_STOP = FPBits(4.0).uintval();
constexpr uint64_t X_STEP = (X_STOP - X_START) / X_COUNT;
constexpr uint64_t Y_COUNT = 137;
constexpr uint64_t Y_START = FPBits(0.25).uintval();
constexpr uint64_t Y_STOP = FPBits(4.0).uintval();
constexpr uint64_t Y_STEP = (Y_STOP - Y_START) / Y_COUNT;
```
in [atan2_test.cpp](https://github.com/llvm/llvm-project/blob/main/libc/test/src/math/atan2_test.cpp)
This PR tends to add constexpr to all double function tests-only
Additonally, replacing
``` CPP
LIBC_NAMESPACE::fputil::FPBits<double>(x).uintval();
```
to
```CPP
FPBits(x).uintval();
```
Assisted using Copilot.
Commit: 209d77c43a8aba33d1fbadfdcc4246a35d5fe433
https://github.com/llvm/llvm-project/commit/209d77c43a8aba33d1fbadfdcc4246a35d5fe433
Author: Nikita Popov <npopov at redhat.com>
Date: 2026-06-01 (Mon, 01 Jun 2026)
Changed paths:
M llvm/lib/IR/Globals.cpp
Log Message:
-----------
[IR] Reorder checks in isInterposable() (NFC) (#200862)
The isDSOLocal() check is a lot cheaper than getSemanticInterposition(),
so perform it first.
Commit: 80875b8a637dcee352721ad6fe4f7b2886abc370
https://github.com/llvm/llvm-project/commit/80875b8a637dcee352721ad6fe4f7b2886abc370
Author: Florian Hahn <flo at fhahn.com>
Date: 2026-06-01 (Mon, 01 Jun 2026)
Changed paths:
M llvm/test/Transforms/LoopVectorize/VPlan/vplan-printing-reductions.ll
M llvm/test/Transforms/LoopVectorize/iv_outside_user.ll
M llvm/test/Transforms/LoopVectorize/replace-first-order-recurrence-by-versioned-iv.ll
Log Message:
-----------
[LV] Add users to header phis in tests (NFC). (#200890)
Make sure the header phis in various tests are actually used, to make
them more robust w.r.t. to future simplification changes. Those dead
phis would be cleaned up before LV in the regular pipeline.
Commit: dc448dad35c896eab52dba9500ad599b69c420fa
https://github.com/llvm/llvm-project/commit/dc448dad35c896eab52dba9500ad599b69c420fa
Author: lijinpei-amd <jinpli at amd.com>
Date: 2026-06-01 (Mon, 01 Jun 2026)
Changed paths:
M llvm/lib/Transforms/Vectorize/VectorCombine.cpp
M llvm/test/Transforms/VectorCombine/fold-shuffle-chains-to-reduce.ll
Log Message:
-----------
[VectorCombine] Don't fold non-idempotent shuffle reductions when shuffle duplicates element (#200778)
This is a small correctness fix for foldShuffleChainsToReduce. For odd /
non-power-of-2 vector sizes the parity-mask scheme duplicates a lane,
which is only sound when the reduction op is idempotent. For
non-idempotent ops (e.g. add, xor) the duplicated lane changes the
result, so I track a HasLaneDuplication flag and bail out of the fold in
that case. Tests cover non-foldable add/xor and a still-foldable
idempotent smax.
Commit: 0d98eb6e872811bdfd0545e46bdfd4251b493e2d
https://github.com/llvm/llvm-project/commit/0d98eb6e872811bdfd0545e46bdfd4251b493e2d
Author: Andy Kaylor <akaylor at nvidia.com>
Date: 2026-06-01 (Mon, 01 Jun 2026)
Changed paths:
M clang/lib/CIR/CodeGen/CIRGenCleanup.cpp
M clang/lib/CIR/CodeGen/CIRGenFunction.h
M clang/test/CIR/CodeGen/cleanup-conditional.cpp
M clang/test/CIR/CodeGen/loop-cond-cleanup.cpp
Log Message:
-----------
[CIR] Fix ordering of lifetime-extended cleanups (#200874)
We had a bug that was causing any lifetime-extended cleanups that
occurred within a full-expression cleanup scope to be emitted
prematurely when the expression also required deferred conditional
cleanups. This was, in some cases, causing a dangling reference to
temporaries that had already been destructed. Luckily, it was also
causing us to not emit a return at the end of the function in one case,
leading the verifier to draw attention to this problem.
This change introduces new functions in RunCleanupsScope to allow
"ordinary" EH stack cleanups to be force-emitted separately from
lifetime-extended cleanups. Classic codegen doesn't need this capability
because it handles deferred conditional cleanups very differently than
CIR due to its flat/branching approach.
The testing for this fix did uncover a significant issue wherein CIR is
calling destructors in the wrong order even after the fix in this PR.
However, that's a pre-existing issue that will require changes beyond
the scope of this fix, so I'll handle it in a follow-up.
Assisted-by: Cursor / claude-opus-4.7
Commit: 9433fd7666ca6e0e38c05e3dc911b0685ffa0ab3
https://github.com/llvm/llvm-project/commit/9433fd7666ca6e0e38c05e3dc911b0685ffa0ab3
Author: Wael Yehia <wmyehia2001 at yahoo.com>
Date: 2026-06-01 (Mon, 01 Jun 2026)
Changed paths:
M compiler-rt/lib/builtins/ppc/init_ifuncs.c
Log Message:
-----------
[AIX] Set the ifunc constructor's priority to 100, to run before any user code (#200893)
Co-authored-by: Wael Yehia <wyehia at ca.ibm.com>
Commit: 0b411ba0a26b82e301453a67ca44a5c986aa0bdc
https://github.com/llvm/llvm-project/commit/0b411ba0a26b82e301453a67ca44a5c986aa0bdc
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2026-06-01 (Mon, 01 Jun 2026)
Changed paths:
M llvm/lib/Target/X86/X86ISelLowering.cpp
Log Message:
-----------
[X86] lowerShuffleAsBitBlend - use getConstVector to create selection mask (#200877)
Avoids wasteful SDValue creation if the shuffle matching fails, handles
any i64 legalisation and makes it easier to add UNDEF element handling
in the future.
Commit: 910b4af8118ffef60c58f397794368577b35a7e1
https://github.com/llvm/llvm-project/commit/910b4af8118ffef60c58f397794368577b35a7e1
Author: Ilia Kuklin <ikuklin at accesssoftek.com>
Date: 2026-06-01 (Mon, 01 Jun 2026)
Changed paths:
M llvm/lib/ObjCopy/DXContainer/DXContainerObjcopy.cpp
M llvm/test/tools/llvm-objcopy/DXContainer/copy-headers.yaml
M llvm/test/tools/llvm-objcopy/DXContainer/dump-section.yaml
Log Message:
-----------
Revert "[llvm-objcopy] Strip header from DXContainer's ILDB part during `--dump-section`" (#200867)
Reverts llvm/llvm-project#198578
Failed build: https://lab.llvm.org/buildbot/#/builders/190/builds/43332
Commit: 4ae332399664a0f2426576b84bfcd173e85d9125
https://github.com/llvm/llvm-project/commit/4ae332399664a0f2426576b84bfcd173e85d9125
Author: Alex Duran <alejandro.duran at intel.com>
Date: 2026-06-01 (Mon, 01 Jun 2026)
Changed paths:
M offload/plugins-nextgen/level_zero/CMakeLists.txt
M offload/plugins-nextgen/level_zero/dynamic_l0/level_zero/ze_api.h
M offload/plugins-nextgen/level_zero/include/AsyncQueue.h
A offload/plugins-nextgen/level_zero/include/L0CmdListManager.h
M offload/plugins-nextgen/level_zero/include/L0Device.h
M offload/plugins-nextgen/level_zero/include/L0Kernel.h
M offload/plugins-nextgen/level_zero/include/L0Memory.h
M offload/plugins-nextgen/level_zero/include/L0Options.h
M offload/plugins-nextgen/level_zero/include/L0Plugin.h
R offload/plugins-nextgen/level_zero/include/TLS.h
M offload/plugins-nextgen/level_zero/src/L0Device.cpp
M offload/plugins-nextgen/level_zero/src/L0Kernel.cpp
M offload/plugins-nextgen/level_zero/src/L0Memory.cpp
M offload/plugins-nextgen/level_zero/src/L0Options.cpp
M offload/plugins-nextgen/level_zero/src/L0Program.cpp
A offload/plugins-nextgen/level_zero/src/L0Queue.cpp
Log Message:
-----------
[OFFLOAD][L0] Refactor AsyncQueues (#200650)
This PR introduces a major refactor on how L0 queues are used in the
plugin as the current design is too tied to OpenMP behavior. There are
two major changes:
* We no longer have a per-thread queue cache as this resulted in a
single logical queue backed up by multiple L0 queues. We now have a per
device cache which should have a similar level of reuse performance.
* The AsyncQueueTy type has been largely extended to hide the logic of
the different queues types (which are now subclasses of AsyncQueueTy).
This has greatly simplified the L0Device implementation.
As part of this refactor a number of other changes happened:
* Copy command lists were removed in favor of the
ZE_COMMAND_QUEUE_FLAG_COPY_OFFLOAD_HINT driver hint.
* Support for inorder queues was added (can be selected using
LIBOMPTARGET_LEVEL_ZERO_COMMAND_MODE=inorder).
* Sync queues now use inorder queues.
* Queue operations conditionally only use events when necessary (OMPT,
profiling or queue logic).
* MemFill now support asynchronous operations
There are a few more things that still need to be adjusted and cleanup
but as this PR is already big enough as it is, I'll prepare a follow-up
to fix them.
Commit: 948b2b594af8101f5062c66aa8e23334fed4e2c0
https://github.com/llvm/llvm-project/commit/948b2b594af8101f5062c66aa8e23334fed4e2c0
Author: Ege Beysel <beysel at roofline.ai>
Date: 2026-06-01 (Mon, 01 Jun 2026)
Changed paths:
M mlir/lib/Dialect/Linalg/Transforms/Transforms.cpp
M mlir/test/Dialect/Linalg/transform-lower-pack.mlir
Log Message:
-----------
[mlir][Linalg] Enable lowering/decomposing scalable pack ops (#200216)
Enables lowering/decomposing `linalg.pack` ops with dynamic inner tiles
to a sequence of `tensor.pad` -> `tensor.expand_shape` ->
`linalg.transpose` ops.
---------
Signed-off-by: Ege Beysel <beyselege at gmail.com>
Commit: 4a00d0099bbe5eb318fd4af3e701a1e150b0f9e4
https://github.com/llvm/llvm-project/commit/4a00d0099bbe5eb318fd4af3e701a1e150b0f9e4
Author: lntue <lntue at google.com>
Date: 2026-06-01 (Mon, 01 Jun 2026)
Changed paths:
M .github/workflows/libc-fullbuild-tests.yml
M .github/workflows/libc-overlay-tests.yml
M .github/workflows/libc-shared-tests.yml
Log Message:
-----------
[libc][ci] Use lld for linking in precommit CIs. (#200897)
Commit: ae464f629520427be2ff63768d8a9fa4f0345223
https://github.com/llvm/llvm-project/commit/ae464f629520427be2ff63768d8a9fa4f0345223
Author: Endre Fülöp <endre.fulop at sigmatechnology.com>
Date: 2026-06-01 (Mon, 01 Jun 2026)
Changed paths:
M clang-tools-extra/clang-tidy/cert/CERTTidyModule.cpp
M clang-tools-extra/docs/ReleaseNotes.rst
A clang-tools-extra/test/clang-tidy/checkers/cert/err33-c.cpp
Log Message:
-----------
[clang-tidy] Fix cert-err33-c inheriting CheckedReturnTypes from bugp… (#200169)
…rone-unused-return-value
The cert-err33-c alias did not override CheckedReturnTypes, causing it
to inherit the default from bugprone-unused-return-value. This made it
flag any function returning std::error_code, std::expected, etc. That is
outside the scope of CERT ERR33-C (a fixed list of C standard library
functions).
Set CheckedReturnTypes to empty so the alias only checks its intended
function list.
---------
Co-authored-by: EugeneZelenko <eugene.zelenko at gmail.com>
Commit: c5eafbcc29c5d83deea9ae2232883ebef1febec0
https://github.com/llvm/llvm-project/commit/c5eafbcc29c5d83deea9ae2232883ebef1febec0
Author: Endre Fülöp <endre.fulop at sigmatechnology.com>
Date: 2026-06-01 (Mon, 01 Jun 2026)
Changed paths:
M clang/lib/StaticAnalyzer/Core/RegionStore.cpp
M clang/test/Analysis/bstring_UninitRead.c
M clang/test/Analysis/initialization.c
M clang/test/Analysis/initialization.cpp
Log Message:
-----------
[analyzer] Normalize sub-array indices in RegionStore initializer res… (#200044)
…olution
After #198346, alpha.unix.cstring.UninitializedRead reports a false
positive when a pointer into a fully-initialized const multidimensional
array is advanced past an inner dimension boundary and used as a source
argument to memcpy. The root cause is in
`convertOffsetsFromSvalToUnsigneds` in RegionStore, which returned
UndefinedVal for any element index exceeding its sub-array extent,
conflating pointer arithmetic legality with memory initializedness.
This patch separates the two concerns. The RegionStore now normalizes
indices that overflow an inner dimension by carrying into the outer
dimension via divmod, the same way `arr[0][5]` in `int arr[4][3]`
denotes the same memory as `arr[1][2]`. UndefinedVal is returned only
when the computed flat offset exceeds the total array allocation.
Whether cross-subobject pointer arithmetic constitutes undefined
behavior per C/C++ standards is a separate concern for individual
checkers to diagnose. No existing checker flags sub-array boundary
crossing as UB, verified both before and after #198346.
Fixes #199271
Commit: 4c64e23f917db492d1f5c125303bc2bd61f211ec
https://github.com/llvm/llvm-project/commit/4c64e23f917db492d1f5c125303bc2bd61f211ec
Author: Arthur Eubanks <aeubanks at google.com>
Date: 2026-06-01 (Mon, 01 Jun 2026)
Changed paths:
M llvm/utils/gn/secondary/compiler-rt/lib/scudo/standalone/tests/BUILD.gn
M llvm/utils/gn/secondary/libcxx/include/BUILD.gn
M llvm/utils/gn/secondary/lldb/source/Plugins/Process/gdb-remote/BUILD.gn
M llvm/utils/gn/secondary/lldb/source/Utility/BUILD.gn
M llvm/utils/gn/secondary/lldb/test/BUILD.gn
M llvm/utils/gn/secondary/llvm/lib/Target/Hexagon/BUILD.gn
M llvm/utils/gn/secondary/llvm/utils/TableGen/Common/BUILD.gn
Log Message:
-----------
[gn build] Port commits (#200910)
3d24f9acc92b
7963f459e2f3
7a435caaf3fa
866945c20298
a0ac75213425
Commit: 4b3249a79b2e2856f24d5e8d718381b4b097d29b
https://github.com/llvm/llvm-project/commit/4b3249a79b2e2856f24d5e8d718381b4b097d29b
Author: Jared Hoberock <jaredhoberock at gmail.com>
Date: 2026-06-01 (Mon, 01 Jun 2026)
Changed paths:
M mlir/lib/Conversion/GPUCommon/GPUToLLVMConversion.cpp
M mlir/test/Conversion/GPUCommon/lower-alloc-to-gpu-runtime-calls.mlir
M mlir/test/Conversion/GPUCommon/lower-launch-func-bare-ptr.mlir
Log Message:
-----------
[MLIR][GPU] Support synchronous gpu.alloc and gpu.dealloc in gpu-to-llvm (#191661)
The gpu-to-llvm conversion patterns for gpu.alloc and gpu.dealloc
previously required async tokens for non-host shared operations. This
prevented lowering synchronous device memory allocation and deallocation
to runtime calls.
Changes:
- gpu.alloc: drop the isAsyncWithOneDependency guard for non-shared
allocs. Cap the number of async dependencies at one to preserve the
prior single-dependency invariant. Cast the runtime-returned pointer to
the memref's address space when they differ, so the descriptor's pointer
slots type-check for memref<..., N>.
- gpu.dealloc: drop the async requirement entirely. Use a null stream
when no async dependencies are present. Use eraseOp instead of replaceOp
for sync deallocs (which have no results). Cap the number of async
dependencies at one.
- Add a unit test for the synchronous alloc/dealloc lowering and a test
that more than one async dependency leaves the op unconverted.
- Update lower-launch-func-bare-ptr.mlir, which previously asserted
gpu.alloc survived the conversion (because the pattern bailed for sync
non-shared allocs); it now asserts the full lowering through
mgpuMemAlloc + addrspacecast.
Assisted-by: Claude
Commit: 8c30cb246ce877c6a6b534fff5e58cc46ced95d3
https://github.com/llvm/llvm-project/commit/8c30cb246ce877c6a6b534fff5e58cc46ced95d3
Author: Alex Duran <alejandro.duran at intel.com>
Date: 2026-06-01 (Mon, 01 Jun 2026)
Changed paths:
M offload/plugins-nextgen/level_zero/dynamic_l0/L0DynWrapper.cpp
Log Message:
-----------
[OFFLOAD][L0] Add support for dynamic l0 fallbacks (#200517)
The PR adds support to define fallbacks for DLWRAP routines that are not
found when loading the library.
It implements a fallback for
zeCommandListAppendLaunchKernelWithArguments introduced in #194333 which
might not be available in older drivers.
Commit: eae4d72971719d7c68c30c7eeb37135606e346aa
https://github.com/llvm/llvm-project/commit/eae4d72971719d7c68c30c7eeb37135606e346aa
Author: Delaram Talaashrafi <dtalaashrafi at nvidia.com>
Date: 2026-06-01 (Mon, 01 Jun 2026)
Changed paths:
M mlir/lib/Dialect/OpenACC/Transforms/ACCComputeLowering.cpp
M mlir/test/Dialect/OpenACC/acc-compute-lowering-loop.mlir
Log Message:
-----------
[openacc] Attach Parallelism Levels to Auto Loops (#200884)
Auto loops are analyzed by the compiler in later compilation stages to
determine whether they can be parallelized. These loops may carry
parallelism levels (this does not guarantee that they are parallelizable,
compiler should still analyze them). However, if the loop is parallelized,
the parallelism levels specified in the source should be respected. This
change attaches the parallelism level to auto loops, which enables their
propagation through next compilation steps.
Commit: 4aa9a9f6f6b9e04c64e18f2f23efbd3745982773
https://github.com/llvm/llvm-project/commit/4aa9a9f6f6b9e04c64e18f2f23efbd3745982773
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2026-06-01 (Mon, 01 Jun 2026)
Changed paths:
M llvm/lib/Target/X86/X86ISelLowering.cpp
M llvm/test/CodeGen/X86/vector-interleaved-load-i16-stride-5.ll
M llvm/test/CodeGen/X86/vector-shuffle-combining-avx2.ll
Log Message:
-----------
[X86] lowerShuffleAsBitMask - use getConstVector to create bitmask (#200889)
Avoids wasteful SDValue creation if the shuffle matching fails, handles
any i64 legalisation, avoid issues with later folds not recognising fp
'allones' masks and makes it easier to add UNDEF element handling in the
future.
Commit: 659c3fbd732771ad30052a9cd2c5896cfe00737e
https://github.com/llvm/llvm-project/commit/659c3fbd732771ad30052a9cd2c5896cfe00737e
Author: Sergei Druzhkov <serzhdruzhok at gmail.com>
Date: 2026-06-01 (Mon, 01 Jun 2026)
Changed paths:
M lldb/test/API/tools/lldb-dap/coreFile/TestDAP_coreFile.py
M lldb/tools/lldb-dap/ProtocolUtils.cpp
Log Message:
-----------
[lldb-dap] Mark source deemphasize if path doesn't exist (#194702)
LLDB-DAP has a problem with sanitizers in GCC. When we stop in
sanitizer's code, lldb-dap sends stack frames with path (sanitizer's
build dir path) that doesn't exist on machine. It leads to problems in
VS Code UI (see issue below).
Fixes #184789
Commit: 27d344d36ecac3645ed8b8a1ba37dd6772be6a71
https://github.com/llvm/llvm-project/commit/27d344d36ecac3645ed8b8a1ba37dd6772be6a71
Author: Arthur Eubanks <aeubanks at google.com>
Date: 2026-06-01 (Mon, 01 Jun 2026)
Changed paths:
M llvm/utils/gn/build/write_cmake_config.py
M llvm/utils/gn/secondary/llvm/lib/Transforms/IPO/BUILD.gn
Log Message:
-----------
[gn build] Port 7964b66b (#200914)
Commit: 7a9fdaa0b1a0c003d9c278bd40647b357952ca93
https://github.com/llvm/llvm-project/commit/7a9fdaa0b1a0c003d9c278bd40647b357952ca93
Author: Alex Langford <alangford at apple.com>
Date: 2026-06-01 (Mon, 01 Jun 2026)
Changed paths:
M lldb/test/API/lang/cpp/dynamic-value/TestDynamicValue.py
Log Message:
-----------
[lldb] Skip minidump case in TestDynamicValue.py for arm64e (#200047)
The minidump format does not currently have a way to distinguish arm64e
from arm64.
Commit: 5fa177b90c8f365743bfe2633d620aa333a4bd02
https://github.com/llvm/llvm-project/commit/5fa177b90c8f365743bfe2633d620aa333a4bd02
Author: Krzysztof Drewniak <Krzysztof.Drewniak at amd.com>
Date: 2026-06-01 (Mon, 01 Jun 2026)
Changed paths:
M mlir/include/mlir/Dialect/AMDGPU/IR/AMDGPUOps.td
M mlir/include/mlir/Dialect/LLVMIR/ROCDLOps.td
M mlir/lib/Conversion/AMDGPUToROCDL/AMDGPUToROCDL.cpp
M mlir/lib/Dialect/AMDGPU/IR/AMDGPUOps.cpp
M mlir/lib/Dialect/AMDGPU/Transforms/EmulateAtomics.cpp
M mlir/lib/Dialect/LLVMIR/IR/ROCDLDialect.cpp
M mlir/test/Conversion/AMDGPUToROCDL/amdgpu-to-rocdl.mlir
M mlir/test/Dialect/AMDGPU/amdgpu-emulate-atomics.mlir
M mlir/test/Dialect/AMDGPU/canonicalize.mlir
M mlir/test/Dialect/AMDGPU/ops.mlir
M mlir/test/Dialect/LLVMIR/rocdl.mlir
M mlir/test/Target/LLVMIR/rocdl.mlir
Log Message:
-----------
[mlir][ROCDL][AMDGPU] Add result arguments to buffer atomics (#198596)
Buffer atomic operations were failing LLVM validation because they
weren't declared as having a result (the old value). This commit updates
those operations to fix the error. (Note: if you don't need the result,
you just don't use it, and the compiler backend emits an atomic that
doesn't return the old value.)
Commit: f323e93d46d9ca3b34a35739089f14ee15865012
https://github.com/llvm/llvm-project/commit/f323e93d46d9ca3b34a35739089f14ee15865012
Author: Florian Hahn <flo at fhahn.com>
Date: 2026-06-01 (Mon, 01 Jun 2026)
Changed paths:
M llvm/lib/Transforms/Vectorize/VPlanRecipes.cpp
M llvm/test/Transforms/LoopVectorize/VPlan/vplan-printing-flags.ll
Log Message:
-----------
[VPlan] Propagate print flags for VPInstructionWithType. (#200838)
Update VPInstructionWithType::print to include printing flags.
Commit: a330c89d7de14a13b55e5aef3b80b054815c24ab
https://github.com/llvm/llvm-project/commit/a330c89d7de14a13b55e5aef3b80b054815c24ab
Author: Amir Ayupov <aaupov at fb.com>
Date: 2026-06-01 (Mon, 01 Jun 2026)
Changed paths:
M bolt/docs/profiles.md
M bolt/include/bolt/Profile/DataAggregator.h
M bolt/include/bolt/Utils/CommandLineOpts.h
M bolt/lib/Profile/DataAggregator.cpp
M bolt/lib/Utils/CommandLineOpts.cpp
M bolt/test/perf2bolt/lit.local.cfg
A bolt/test/perf2bolt/perf_brstack.test
M bolt/test/perf2bolt/perf_test.test
Log Message:
-----------
[BOLT] Add perf2bolt pre-aggregated profile output
Add a pre-aggregated profile output format (`--profile-format=preagg`)
so perf.data can be pre-parsed/aggregated and used as input with -pa.
Supports branch (T traces) and basic samples (S records).
Currently only covers main binary, can be extended to cover multi-DSO.
Test Plan: Updated perf_test.test, added perf_brstack.test
Reviewers:
yota9, ayermolo, yozhu, maksfb, yavtuk, paschalis-mpeis, rafaelauler
Reviewed By: paschalis-mpeis
Pull Request: https://github.com/llvm/llvm-project/pull/199465
Commit: a4f3a0153b8be8044d6b4a85e9632618930193f4
https://github.com/llvm/llvm-project/commit/a4f3a0153b8be8044d6b4a85e9632618930193f4
Author: Alex Duran <alejandro.duran at intel.com>
Date: 2026-06-01 (Mon, 01 Jun 2026)
Changed paths:
M offload/plugins-nextgen/level_zero/include/L0Device.h
M offload/plugins-nextgen/level_zero/include/L0Plugin.h
M offload/plugins-nextgen/level_zero/src/L0Device.cpp
M offload/plugins-nextgen/level_zero/src/L0Plugin.cpp
Log Message:
-----------
[OFFLOAD][L0][NFC] Remove Device TLS table (#200923)
After #200650 the Device TLS table is not used anymore so it can be
removed.
Commit: 43ce763adaf01ec2e454c912bf022c7778f9c05b
https://github.com/llvm/llvm-project/commit/43ce763adaf01ec2e454c912bf022c7778f9c05b
Author: Alex Duran <alejandro.duran at intel.com>
Date: 2026-06-01 (Mon, 01 Jun 2026)
Changed paths:
R offload/plugins-nextgen/level_zero/include/AsyncQueue.h
M offload/plugins-nextgen/level_zero/include/L0Device.h
M offload/plugins-nextgen/level_zero/include/L0Kernel.h
A offload/plugins-nextgen/level_zero/include/L0Queue.h
M offload/plugins-nextgen/level_zero/src/L0Device.cpp
M offload/plugins-nextgen/level_zero/src/L0Queue.cpp
Log Message:
-----------
[OFFLOAD][L0][NFC] Rename AsyncQueueTy struct to L0QueueTy (#200921)
L0QueueTy is more descriptive after the changes in #200650.
Also renamed the header name and one internal field to be more
descriptive.
Commit: 3e45dea1ecce8e0360f58a74f2d4cd45eac301e4
https://github.com/llvm/llvm-project/commit/3e45dea1ecce8e0360f58a74f2d4cd45eac301e4
Author: Andy Kaylor <akaylor at nvidia.com>
Date: 2026-06-01 (Mon, 01 Jun 2026)
Changed paths:
M clang/lib/CIR/CodeGen/CIRGenFunction.h
A clang/test/CIR/CodeGen/cleanup-derived-to-base-ref.cpp
Log Message:
-----------
[CIR] Spill and reload values across deferred cleanup scopes (#200904)
The `valuesToReload` handling in our `RunCleanupScope::forceCleanup()`
function was not taking into account cleanup scopes for deferred
conditional cleanups that get created when we call
`forceDeactivation()`. This was leading to a CIR verification error in
cases where a deferred cleanup was used in an expression that returns a
value.
This change adds code to spill values ahead of the `forceDeactivation()`
call when we see that there are cleanups on the deferred stack.
Assisted-by: Cursor / claude-opus-4.7
Commit: 385ba8821c75a13ca45a38047e69670921ba9a06
https://github.com/llvm/llvm-project/commit/385ba8821c75a13ca45a38047e69670921ba9a06
Author: Alex Langford <alangford at apple.com>
Date: 2026-06-01 (Mon, 01 Jun 2026)
Changed paths:
M lldb/test/API/macosx/branch-islands/Makefile
Log Message:
-----------
[lldb] Fix TestBranchIslands.py for arm64e (#200498)
Need to pass CFLAGS to clang when building the asm files, otherwise the
triple isn't used and they're automatically compiled for the host
platform.
Commit: 8b66d829fbcc37eeb8a2a2e14dfc7bf40ee067e1
https://github.com/llvm/llvm-project/commit/8b66d829fbcc37eeb8a2a2e14dfc7bf40ee067e1
Author: Renato Golin <rengolin at systemcall.eu>
Date: 2026-06-01 (Mon, 01 Jun 2026)
Changed paths:
M .clang-format-ignore
R clang/.clang-format-ignore
M llvm/docs/CodingStandards.rst
Log Message:
-----------
[Docs] Update coding standard for TD files (#200848)
This PR proposes an update to the coding standards document to make
explicit that we do not want unnecessary formatting changes to TD files.
This is in response to this merged PR (#199346), which lead to this RFC
(https://discourse.llvm.org/t/80-column-limit-for-td-files/90950/).
---------
Co-authored-by: Vlad Serebrennikov <serebrennikov.vladislav at gmail.com>
Commit: 4d3513075df51a2cb579e3d82e9593aac42a4bce
https://github.com/llvm/llvm-project/commit/4d3513075df51a2cb579e3d82e9593aac42a4bce
Author: Alex Langford <alangford at apple.com>
Date: 2026-06-01 (Mon, 01 Jun 2026)
Changed paths:
M lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCTrampolineHandler.cpp
Log Message:
-----------
[lldb] Strip objc superclass pointer in trampoline handler (#200490)
The pointer needs to be stripped before being handed off to any objc
runtime functions. Otherwise the utility expression will hit a PAC
exception and the thread plan will fail to execute correctly.
This fixes TestObjCStepping.py on arm64e.
Commit: e6874781e5b678101ff5f220c3a0dd4df5d2cf29
https://github.com/llvm/llvm-project/commit/e6874781e5b678101ff5f220c3a0dd4df5d2cf29
Author: jofrn <jo7frn1 at gmail.com>
Date: 2026-06-01 (Mon, 01 Jun 2026)
Changed paths:
M llvm/lib/CodeGen/SelectionDAG/LegalizeTypes.h
M llvm/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp
M llvm/test/CodeGen/X86/atomic-load-store.ll
Log Message:
-----------
[SelectionDAG] Widen <2 x T> vector types for atomic store (#197618)
Vector types of 2 elements must be widened. This change does this
for vector types of atomic store in SelectionDAG so that it can
translate aligned vectors of >1 size.
Store-side counterpart to #148897. Stacked on top of #197166; and below
of #197619.
Commit: 24ea912d3b66800a5b341a31b9d20494a15e728c
https://github.com/llvm/llvm-project/commit/24ea912d3b66800a5b341a31b9d20494a15e728c
Author: Ehsan Amiri <ehsan.amiri at huawei.com>
Date: 2026-06-01 (Mon, 01 Jun 2026)
Changed paths:
M llvm/Maintainers.md
Log Message:
-----------
[LLVM] Fix style issue in Maintainers file (#200917)
Commit: fc2ab20894edd965e0394ca3a30a2ed5beb11617
https://github.com/llvm/llvm-project/commit/fc2ab20894edd965e0394ca3a30a2ed5beb11617
Author: Petar Avramovic <Petar.Avramovic at amd.com>
Date: 2026-06-01 (Mon, 01 Jun 2026)
Changed paths:
M llvm/test/CodeGen/AMDGPU/GlobalISel/atomic_optimizations_mul_one.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/fdiv.f16.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/floor.f64.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/fp64-atomics-gfx90a.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/fpow.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/udiv.i64.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/urem.i64.ll
M llvm/test/CodeGen/AMDGPU/atomics_cond_sub.ll
M llvm/test/CodeGen/AMDGPU/callbr-intrinsics.ll
M llvm/test/CodeGen/AMDGPU/fneg-fabs-v2f32.ll
M llvm/test/CodeGen/AMDGPU/fptosi-sat-scalar.ll
M llvm/test/CodeGen/AMDGPU/fptosi-sat-vector.ll
M llvm/test/CodeGen/AMDGPU/fptoui-sat-scalar.ll
M llvm/test/CodeGen/AMDGPU/fptoui-sat-vector.ll
M llvm/test/CodeGen/AMDGPU/fsqrt.f64.ll
M llvm/test/CodeGen/AMDGPU/lds-barrier-memoperand.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.ballot.i64.wave32.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.ptr.buffer.atomic.fadd_rtn_errors.ll
M llvm/test/CodeGen/AMDGPU/llvm.exp.f64.ll
M llvm/test/CodeGen/AMDGPU/llvm.exp10.f64.ll
M llvm/test/CodeGen/AMDGPU/llvm.exp2.f64.ll
M llvm/test/CodeGen/AMDGPU/load-atomic-flat.ll
M llvm/test/CodeGen/AMDGPU/load-atomic-global.ll
M llvm/test/CodeGen/AMDGPU/load-atomic-local.ll
M llvm/test/CodeGen/AMDGPU/maximumnum.ll
M llvm/test/CodeGen/AMDGPU/minimumnum.ll
M llvm/test/CodeGen/AMDGPU/packed-fneg-fsub-fp16.ll
M llvm/test/CodeGen/AMDGPU/ps-shader-arg-count.ll
M llvm/test/CodeGen/AMDGPU/rsq.f64.ll
M llvm/test/CodeGen/AMDGPU/store-atomic-flat.ll
M llvm/test/CodeGen/AMDGPU/store-atomic-global.ll
M llvm/test/CodeGen/AMDGPU/store-atomic-local.ll
Log Message:
-----------
AMDGPU/GlobalISel: Switch some tests to -new-reg-bank-select (#200853)
Commit: 9740a4bb88463581a4fd6c1362b9d1d14c995cb3
https://github.com/llvm/llvm-project/commit/9740a4bb88463581a4fd6c1362b9d1d14c995cb3
Author: Aiden Grossman <aidengrossman at google.com>
Date: 2026-06-01 (Mon, 01 Jun 2026)
Changed paths:
M llvm/lib/CodeGen/SelectOptimize.cpp
M llvm/test/CodeGen/AArch64/selectopt-cast.ll
M llvm/utils/profcheck-xfail.txt
Log Message:
-----------
[SelectOpt] Preserve Profile Information (#200680)
If at least one of the SelectLike instructions in the group has profile
metadata, we can propagate it given they all share the same condition.
Commit: 64ed6837d6026b97dcb5e175caf3d54ad3397850
https://github.com/llvm/llvm-project/commit/64ed6837d6026b97dcb5e175caf3d54ad3397850
Author: Petar Avramovic <Petar.Avramovic at amd.com>
Date: 2026-06-01 (Mon, 01 Jun 2026)
Changed paths:
M llvm/test/CodeGen/AMDGPU/GlobalISel/combine-fma-add-mul-post-legalize.mir
M llvm/test/CodeGen/AMDGPU/GlobalISel/combine-fma-add-mul-pre-legalize.mir
M llvm/test/CodeGen/AMDGPU/GlobalISel/combine-fma-unmerge-values.mir
M llvm/test/CodeGen/AMDGPU/GlobalISel/divergence-divergent-i1-phis-no-lane-mask-merging.mir
M llvm/test/CodeGen/AMDGPU/GlobalISel/divergence-divergent-i1-used-outside-loop.mir
M llvm/test/CodeGen/AMDGPU/GlobalISel/divergence-structurizer.mir
M llvm/test/CodeGen/AMDGPU/GlobalISel/divergence-temporal-divergent-i1.mir
M llvm/test/CodeGen/AMDGPU/GlobalISel/divergence-temporal-divergent-reg.mir
M llvm/test/CodeGen/AMDGPU/GlobalISel/inst-select-amdgcn.exp.compr.mir
M llvm/test/CodeGen/AMDGPU/GlobalISel/inst-select-amdgcn.exp.mir
M llvm/test/CodeGen/AMDGPU/GlobalISel/inst-select-amdgcn.fcmp.constants.w32.mir
M llvm/test/CodeGen/AMDGPU/GlobalISel/inst-select-amdgcn.fcmp.constants.w64.mir
M llvm/test/CodeGen/AMDGPU/GlobalISel/inst-select-i1-copy.mir
M llvm/test/CodeGen/AMDGPU/GlobalISel/inst-select-select.mir
M llvm/test/CodeGen/AMDGPU/GlobalISel/inst-select-sext-inreg.mir
M llvm/test/CodeGen/AMDGPU/GlobalISel/inst-select-sext.mir
M llvm/test/CodeGen/AMDGPU/GlobalISel/inst-select-zext.mir
M llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-fptrunc.mir
M llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-intrinsic-amdgcn-fdiv-fast.mir
M llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-rotl-rotr.mir
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.image.atomic.dim.mir
M llvm/test/CodeGen/AMDGPU/GlobalISel/mul-known-bits.i64.mir
M llvm/test/CodeGen/AMDGPU/GlobalISel/postlegalizer-combiner-divrem.mir
M llvm/test/CodeGen/AMDGPU/GlobalISel/postlegalizer-combiner-unmerge-undef.mir
M llvm/test/CodeGen/AMDGPU/GlobalISel/postlegalizercombiner-load-and-mask.mir
M llvm/test/CodeGen/AMDGPU/GlobalISel/prelegalizer-combiner-divrem.mir
M llvm/test/CodeGen/AMDGPU/GlobalISel/prelegalizer-combiner-shuffle.mir
M llvm/test/CodeGen/AMDGPU/GlobalISel/regbankselect-unmerge-values.mir
M llvm/test/CodeGen/AMDGPU/GlobalISel/regbankselect-widen-scalar-loads.mir
Log Message:
-----------
AMDGPU/GlobalISel: Remove redundant -global-isel from -run-pass MIR tests (NFC) (#200857)
Commit: 8c65695c54b74bc806f1f74314a45a0bb8c56642
https://github.com/llvm/llvm-project/commit/8c65695c54b74bc806f1f74314a45a0bb8c56642
Author: Alex Duran <alejandro.duran at intel.com>
Date: 2026-06-01 (Mon, 01 Jun 2026)
Changed paths:
M offload/plugins-nextgen/level_zero/include/L0Queue.h
M offload/plugins-nextgen/level_zero/src/L0Queue.cpp
Log Message:
-----------
[OFFLOAD][L0][NFC] Add struct for deferred memory operations (#200928)
Improve readibility a bit by using a well-defined struct instead of
tuples.
Commit: 11158cfe3faa2c9c04c8b5fdac3ac25eec75cb51
https://github.com/llvm/llvm-project/commit/11158cfe3faa2c9c04c8b5fdac3ac25eec75cb51
Author: Aiden Grossman <aidengrossman at google.com>
Date: 2026-06-01 (Mon, 01 Jun 2026)
Changed paths:
M llvm/test/Transforms/HotColdSplit/coldentrycount.ll
Log Message:
-----------
[HotColdSplit] Consolidate pass pipeline (#200941)
Codegenprepare was added for more of a E2E test in
f0f68c6e6c5e0064c0196e4f1528e910a47766e0. The pipeline was split in
cb5e48d1c2c4774ed9f17ff89412f1291b640172 to allow for the removal of the
HotColdSplit legacy pass. Now that CodeGenPrepare has been ported to the
NewPM in f1ec0d12bb0843f0deab83ef2b5cf1339cbc4f0b (which even touched
this test), we can use a single pass pipeline and simplify the run line
a little bit.
Commit: fbcf6bbf35a176a27ce8ca509c00d6b5c8a8c064
https://github.com/llvm/llvm-project/commit/fbcf6bbf35a176a27ce8ca509c00d6b5c8a8c064
Author: Fangrui Song <i at maskray.me>
Date: 2026-06-01 (Mon, 01 Jun 2026)
Changed paths:
M lld/COFF/Chunks.h
M lld/MachO/ConcatOutputSection.h
M lld/wasm/SyntheticSections.h
Log Message:
-----------
[lld] Remove unused DenseMapInfo::getTombstoneKey (#200636)
#200595 changed DenseMap to no longer create tombstone buckets, so
DenseMapInfo<T>::getTombstoneKey() is never called. Remove dead
definitions and dead tombstone branches.
Commit: 54796f26bf917bd68434f4c13c2a9bb16506cba9
https://github.com/llvm/llvm-project/commit/54796f26bf917bd68434f4c13c2a9bb16506cba9
Author: Fangrui Song <i at maskray.me>
Date: 2026-06-01 (Mon, 01 Jun 2026)
Changed paths:
M lldb/include/lldb/Core/Highlighter.h
M lldb/include/lldb/Host/HostThread.h
M lldb/include/lldb/Symbol/SymbolContext.h
M lldb/include/lldb/Utility/ConstString.h
M lldb/include/lldb/Utility/FileSpec.h
M lldb/include/lldb/Utility/UUID.h
M lldb/source/Plugins/LanguageRuntime/ObjC/ObjCLanguageRuntime.h
M lldb/source/Plugins/ObjectFile/Mach-O/ObjectFileMachO.cpp
M lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.h
M lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp
Log Message:
-----------
[lldb] Remove unused DenseMapInfo::getTombstoneKey (#200635)
#200595 changed DenseMap to no longer create tombstone buckets, so
DenseMapInfo<T>::getTombstoneKey() is never called. Remove dead
definitions and dead tombstone branches.
Commit: f0d3a8f1f20b8f569d6c2cf2add3295ea6ac3abf
https://github.com/llvm/llvm-project/commit/f0d3a8f1f20b8f569d6c2cf2add3295ea6ac3abf
Author: Fangrui Song <i at maskray.me>
Date: 2026-06-01 (Mon, 01 Jun 2026)
Changed paths:
M bolt/include/bolt/Passes/DataflowAnalysis.h
M bolt/include/bolt/Passes/SplitFunctions.h
M bolt/include/bolt/Profile/DataReader.h
Log Message:
-----------
[BOLT] Remove unused DenseMapInfo::getTombstoneKey (#200637)
#200595 changed DenseMap to no longer create tombstone buckets, so
DenseMapInfo<T>::getTombstoneKey() is never called. Remove dead
definitions and dead tombstone branches.
Commit: 7ccb0ed0172625239626a7503f6996ebd27a6aea
https://github.com/llvm/llvm-project/commit/7ccb0ed0172625239626a7503f6996ebd27a6aea
Author: Sam Clegg <sbc at chromium.org>
Date: 2026-06-01 (Mon, 01 Jun 2026)
Changed paths:
M lld/wasm/Config.h
M lld/wasm/Writer.cpp
Log Message:
-----------
[lld][WebAssembly] Refine type used for internal TLS-related symbols. NFC (#200899)
I noticed this while reviewing #200855.
Commit: 333bc302b49f37da1987e15ae6f66a3027f615f7
https://github.com/llvm/llvm-project/commit/333bc302b49f37da1987e15ae6f66a3027f615f7
Author: Dave Lee <davelee.com at gmail.com>
Date: 2026-06-01 (Mon, 01 Jun 2026)
Changed paths:
M lldb/include/lldb/Symbol/Symbol.h
Log Message:
-----------
[lldb] Add static_assert to catch increases to size of Symbol (#200919)
Commit: 67139a27775e72b0b199a37946a8b3fa0abdc75e
https://github.com/llvm/llvm-project/commit/67139a27775e72b0b199a37946a8b3fa0abdc75e
Author: Fangrui Song <i at maskray.me>
Date: 2026-06-01 (Mon, 01 Jun 2026)
Changed paths:
M flang/include/flang/Lower/IterationSpace.h
M flang/include/flang/Lower/Support/Utils.h
M flang/include/flang/Semantics/symbol.h
M flang/lib/Lower/Support/Utils.cpp
Log Message:
-----------
[flang] Remove unused DenseMapInfo::getTombstoneKey (#200632)
#200595 changed DenseMap to no longer create tombstone buckets, so
DenseMapInfo<T>::getTombstoneKey() is never called. Remove dead
definitions and dead tombstone branches.
Commit: 4b91251dd8af6a109c07c7a89bafab9be0dd829c
https://github.com/llvm/llvm-project/commit/4b91251dd8af6a109c07c7a89bafab9be0dd829c
Author: Fangrui Song <i at maskray.me>
Date: 2026-06-01 (Mon, 01 Jun 2026)
Changed paths:
M mlir/docs/DefiningDialects/Operations.md
M mlir/include/mlir/Analysis/CallGraph.h
M mlir/include/mlir/Analysis/DataFlowFramework.h
M mlir/include/mlir/Dialect/LLVMIR/LLVMAttrs.h
M mlir/include/mlir/IR/AffineExpr.h
M mlir/include/mlir/IR/AffineMap.h
M mlir/include/mlir/IR/Attributes.h
M mlir/include/mlir/IR/Block.h
M mlir/include/mlir/IR/BlockSupport.h
M mlir/include/mlir/IR/BuiltinAttributes.h
M mlir/include/mlir/IR/DialectInterface.h
M mlir/include/mlir/IR/IntegerSet.h
M mlir/include/mlir/IR/Location.h
M mlir/include/mlir/IR/OpDefinition.h
M mlir/include/mlir/IR/OpImplementation.h
M mlir/include/mlir/IR/OperationSupport.h
M mlir/include/mlir/IR/Remarks.h
M mlir/include/mlir/IR/TypeRange.h
M mlir/include/mlir/IR/Types.h
M mlir/include/mlir/IR/Value.h
M mlir/include/mlir/Pass/PassInstrumentation.h
M mlir/include/mlir/Pass/PassManager.h
M mlir/include/mlir/Support/InterfaceSupport.h
M mlir/include/mlir/Support/TypeID.h
M mlir/include/mlir/TableGen/Constraint.h
M mlir/include/mlir/TableGen/Format.h
M mlir/include/mlir/TableGen/Pattern.h
M mlir/include/mlir/Tools/PDLL/AST/Types.h
M mlir/lib/Conversion/PDLToPDLInterp/PredicateTree.cpp
M mlir/lib/Dialect/Func/Transforms/DuplicateFunctionElimination.cpp
M mlir/lib/Dialect/Vector/Transforms/VectorUnroll.cpp
M mlir/lib/Support/StorageUniquer.cpp
M mlir/lib/TableGen/Constraint.cpp
M mlir/lib/Transforms/Utils/CFGToSCF.cpp
M mlir/lib/Transforms/Utils/CSE.cpp
M mlir/lib/Transforms/Utils/DialectConversion.cpp
M mlir/tools/mlir-tblgen/EnumsGen.cpp
Log Message:
-----------
[mlir] Remove unused DenseMapInfo::getTombstoneKey (#200633)
#200595 changed DenseMap to no longer create tombstone buckets, so
DenseMapInfo<T>::getTombstoneKey() is never called. Remove dead
definitions and dead tombstone branches.
Commit: 9e29f7ddc42e325aa34dcf58a5da800afa9f64ad
https://github.com/llvm/llvm-project/commit/9e29f7ddc42e325aa34dcf58a5da800afa9f64ad
Author: jofrn <jo7frn1 at gmail.com>
Date: 2026-06-01 (Mon, 01 Jun 2026)
Changed paths:
M llvm/include/llvm/Target/TargetSelectionDAG.td
M llvm/lib/Target/X86/X86ISelLowering.cpp
M llvm/lib/Target/X86/X86InstrAVX512.td
M llvm/lib/Target/X86/X86InstrSSE.td
M llvm/test/CodeGen/X86/atomic-load-store.ll
M llvm/test/CodeGen/X86/atomic-unordered.ll
Log Message:
-----------
[X86] Remove extra MOV after widening atomic store (#197619)
This change adds patterns to optimize out an extra MOV present after
widening the atomic store. Covers `<2 x i8>` (SSE4.1+), `<2 x i16>`,
`<4 x i8>`, `<2 x i32>`, `<2 x float>`, `<4 x i16>`,
`<2 x ptr addrspace(270)>`.
Store-side counterpart to #148898. Stacked on top of #197618; and below
of #197860.
Commit: f254ae6f7f12042d3822c64d4467fe3d385f992c
https://github.com/llvm/llvm-project/commit/f254ae6f7f12042d3822c64d4467fe3d385f992c
Author: Marcos Ramirez Joos <mramirezjoos.oss at proton.me>
Date: 2026-06-01 (Mon, 01 Jun 2026)
Changed paths:
M libc/cmake/modules/CheckCompilerFeatures.cmake
M libc/cmake/modules/LLVMLibCCompileOptionRules.cmake
M libc/cmake/modules/LLVMLibCTestRules.cmake
A libc/cmake/modules/compiler_features/check_stdc_fenv_access.cpp
M libc/src/__support/FPUtil/FEnvImpl.h
Log Message:
-----------
[libc] Add FENV_ACCESS pragma with CMake compiler feature detection (#200268)
Related to https://github.com/llvm/llvm-project/pull/199009
Added compiler feature detection for _STDC FENV_ACCESS_ pragma. It is
used to conditionally add function-scoped `#pragma STDC FENV_ACCESS ON`
to `libc/src/__support/FPUtil/FEnvAccess.h`, whenever functions from the
`<fenv.h>` header are called and the target supports the pragma.
Commit: b9d5c24b42f7101f8a34ebb660adc68a22e40dc3
https://github.com/llvm/llvm-project/commit/b9d5c24b42f7101f8a34ebb660adc68a22e40dc3
Author: Arthur Eubanks <aeubanks at google.com>
Date: 2026-06-01 (Mon, 01 Jun 2026)
Changed paths:
M llvm/utils/gn/secondary/clang/include/clang/Config/BUILD.gn
Log Message:
-----------
[gn build] Port 7a907089 (#200953)
Commit: d7ee01c0fa3113b0b2d98e77273f794a182bf2dd
https://github.com/llvm/llvm-project/commit/d7ee01c0fa3113b0b2d98e77273f794a182bf2dd
Author: Stanislav Mekhanoshin <Stanislav.Mekhanoshin at amd.com>
Date: 2026-06-01 (Mon, 01 Jun 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/Disassembler/AMDGPUDisassembler.cpp
M llvm/test/MC/AMDGPU/gfx11_asm_vop3_dpp8.s
M llvm/test/MC/AMDGPU/gfx12_asm_vop1-fake16.s
M llvm/test/MC/AMDGPU/gfx12_asm_vop1.s
M llvm/test/MC/AMDGPU/gfx13_asm_sopc.s
M llvm/test/MC/AMDGPU/gfx13_asm_vop1.s
M llvm/test/MC/AMDGPU/gfx13_asm_vop1_t16_promote.s
M llvm/test/MC/AMDGPU/gfx13_asm_vop3-fake16.s
M llvm/test/MC/AMDGPU/gfx13_asm_vop3.s
M llvm/test/MC/AMDGPU/gfx13_asm_vop3_from_vop1-fake16.s
M llvm/test/MC/AMDGPU/literals.s
M llvm/test/MC/Disassembler/AMDGPU/gfx10_vop1.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx10_vop3.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx10_vop3c.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx10_vop3cx.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx10_vopc.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx10_vopcx.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx11_dasm_vop1.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx11_dasm_vop3.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx11_dasm_vop3_from_vop1.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx11_dasm_vop3_from_vopc.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx11_dasm_vop3_from_vopcx.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx11_dasm_vopc.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx11_dasm_vopcx.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx12_dasm_vop3.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx12_dasm_vop3_from_vop1.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx12_dasm_vop3c.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx12_dasm_vop3cx.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx12_dasm_vop3cx_dpp16.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx12_dasm_vopc.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx12_dasm_vopcx.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx8_vop1.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx8_vop2.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx8_vop3.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx8_vop3c.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx8_vop3cx.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx8_vopc.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx8_vopcx.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx9_vop1.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx9_vop2.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx9_vop3.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx9_vop3c.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx9_vop3cx.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx9_vopc.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx9_vopcx.txt
Log Message:
-----------
[AMDGPU] Fix disasm of i16 operands fp inline constants (#200944)
Commit: 9bda223f692b10d4311331e2c2ae82293b8af63e
https://github.com/llvm/llvm-project/commit/9bda223f692b10d4311331e2c2ae82293b8af63e
Author: Zorojuro <sawantsukumar at gmail.com>
Date: 2026-06-01 (Mon, 01 Jun 2026)
Changed paths:
M libc/src/__support/math/acos.h
M libc/src/__support/math/asin.h
M libc/src/__support/math/asin_utils.h
M libc/src/__support/math/asinpi.h
M libc/src/__support/math/atan2f128.h
M libc/src/__support/math/atan_utils.h
M libc/src/__support/math/cbrt.h
M libc/src/__support/math/cos.h
M libc/src/__support/math/exp.h
M libc/src/__support/math/exp10.h
M libc/src/__support/math/exp2.h
M libc/src/__support/math/expm1.h
M libc/src/__support/math/log.h
M libc/src/__support/math/log10.h
M libc/src/__support/math/log1p.h
M libc/src/__support/math/log2.h
M libc/src/__support/math/log_range_reduction.h
M libc/src/__support/math/range_reduction_double_common.h
M libc/src/__support/math/sin.h
M libc/src/__support/math/sincos.h
M libc/src/__support/math/sincos_eval.h
M libc/src/__support/math/tan.h
M libc/test/src/__support/FPUtil/comparison_operations_test.cpp
M libc/test/src/__support/FPUtil/dyadic_float_test.cpp
M libc/test/src/__support/FPUtil/fpbits_test.cpp
Log Message:
-----------
[libc] Renaming Float128 (DyadicFloat<128>) to DFloat128 (#200907)
This is to be able to use the `Float128` for emulated float128 type.
[#200565 ](https://github.com/llvm/llvm-project/pull/200565)
Commit: e58e30842fdbae26153757985de2d5fecc7a174e
https://github.com/llvm/llvm-project/commit/e58e30842fdbae26153757985de2d5fecc7a174e
Author: Justin Lebar <justin.lebar at gmail.com>
Date: 2026-06-01 (Mon, 01 Jun 2026)
Changed paths:
M clang/lib/CodeGen/TargetBuiltins/NVPTX.cpp
M clang/test/CodeGen/builtins-nvptx.c
M llvm/include/llvm/IR/IntrinsicsNVVM.td
M llvm/lib/IR/AutoUpgrade.cpp
M llvm/lib/Target/NVPTX/NVPTXISelLowering.cpp
M llvm/lib/Target/NVPTX/NVPTXIntrinsics.td
M llvm/lib/Target/NVPTX/NVPTXTargetTransformInfo.cpp
M llvm/test/Assembler/auto_upgrade_nvvm_intrinsics.ll
M llvm/test/CodeGen/NVPTX/atomicrmw-sm60.ll
M llvm/test/CodeGen/NVPTX/atomicrmw-sm70.ll
M llvm/test/CodeGen/NVPTX/atomicrmw-sm90.ll
M llvm/test/CodeGen/NVPTX/atomicrmw.py
R llvm/test/CodeGen/NVPTX/atomics-with-scope.ll
Log Message:
-----------
[NVPTX][clang] Remove nvvm scoped atomic intrinsics; use atomicrmw/cmpxchg (#200735)
The
`llvm.nvvm.atomic.{add,exch,max,min,inc,dec,and,or,xor,cas}.gen.{i,f}.{cta,sys}`
intrinsics are redundant; we can use atomicrmw / cmpxchg with a syncscope.
Moreover, the nvvm atomics are problematic because they don't have
unsigned min/max opcodes. Clang uses these intrinsics and currently emits
signed min/max for what should be unsigned operations!
Fix by doing the following.
- Remove the nvvm intrinsics.
- Auto-upgrade the removed intrinsics to atomicrmw/cmpxchg.
- Make clang Clang emits atomicrmw/cmpxchg directly.
Commit: 1123d2bd380e6524dce0f9c09e010b8a3e80a7fa
https://github.com/llvm/llvm-project/commit/1123d2bd380e6524dce0f9c09e010b8a3e80a7fa
Author: Craig Topper <craig.topper at sifive.com>
Date: 2026-06-01 (Mon, 01 Jun 2026)
Changed paths:
M llvm/lib/Target/RISCV/RISCVISelLowering.cpp
M llvm/test/CodeGen/RISCV/clmulh.ll
M llvm/test/CodeGen/RISCV/imm.ll
M llvm/test/CodeGen/RISCV/rv64i-demanded-bits.ll
M llvm/test/CodeGen/RISCV/rv64p.ll
M llvm/test/CodeGen/RISCV/rv64zbkb.ll
M llvm/test/CodeGen/RISCV/sextw-removal.ll
Log Message:
-----------
[RISCV] Improve shrinkDemandedConstant. (#196585)
Teach shrinkDemandedConstant to restore a constant that can be
materialized as:
lui a0, hi20
addi(w) a0, a0, lo12
slli a1, a0, 32
add a0, a0, a1
or:
lui a0, hi20
addi(w) a0, a0, lo12
pack a0, a0, a0
This fixes a regression between clang 18 and 19 on this test case
https://godbolt.org/z/Ma746a8xP
Commit: daac50b33ee19d5ef5669da8f0119b6ce5c395d8
https://github.com/llvm/llvm-project/commit/daac50b33ee19d5ef5669da8f0119b6ce5c395d8
Author: Fangrui Song <i at maskray.me>
Date: 2026-06-01 (Mon, 01 Jun 2026)
Changed paths:
M polly/include/polly/Support/VirtualInstruction.h
Log Message:
-----------
[Polly] Remove unused DenseMapInfo::getTombstoneKey (#200963)
#200595 changed DenseMap to no longer create tombstone buckets, so
DenseMapInfo<T>::getTombstoneKey() is never called. Remove dead
definitions and dead tombstone branches.
Commit: 6bbbdbaad55c70fe3234519ab2e81edd26de285a
https://github.com/llvm/llvm-project/commit/6bbbdbaad55c70fe3234519ab2e81edd26de285a
Author: Changpeng Fang <changpeng.fang at amd.com>
Date: 2026-06-01 (Mon, 01 Jun 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/GCNHazardRecognizer.cpp
Log Message:
-----------
[AMDGPU] Simplicy the logic in checkWMMACoexecutionHazards, NFC (#200717)
Commit: 94337fb6b2d5935cdaa9abecdba8274924119dcc
https://github.com/llvm/llvm-project/commit/94337fb6b2d5935cdaa9abecdba8274924119dcc
Author: Med Ismail Bennani <ismail at bennani.ma>
Date: 2026-06-01 (Mon, 01 Jun 2026)
Changed paths:
M lldb/packages/Python/lldbsuite/test/lldbtest.py
Log Message:
-----------
[lldb/test] Fix variant double-expansion in LLDBTestCaseFactory (#200943)
LLDBTestCaseFactory generates the actual test methods that get run: for
every `test*` method on a TestBase subclass, it stamps out one copy per
debug-info format (dwarf, dsym, ...) and, if a variant like
swift_clang's clang/noclang is registered, one copy per variant value on
top. When two test methods in the same class have names that share a
prefix and the longer one is declared first in the file, the shorter
method's expansion ends up re-stamping every copy already produced for
the longer one.
The variant-expansion helper decides what to copy by name-prefix match:
when processing `test_expr`, it grabs `test_expr`, `test_expr_dwarf`,
`test_expr_dsym`, ... and produces a clang/noclang suffix for each one.
The factory was handing it the full running dict of already-synthesized
methods, so by the time `test_expr`'s turn came, the dict also held
`test_expr_stripped_dwarf` and `test_expr_stripped_dsym` from
`test_expr_stripped`. Those names start with `test_expr_` too, so they
pick up a second clang/noclang suffix and inherit `test_expr`'s
xfail/skip predicates.
HiddenIvarsTestCase trips this twice in a row (test_expr_stripped before
test_expr; test_frame_variable_stripped before test_frame_variable).
Upstream `_test_variants` is empty so the bug is latent on mainline, but
any registered variant exposes it.
With swift_clang (values clang/noclang) registered, test_expr_stripped +
test_expr should produce eight methods (4 dwarf/dsym × 2 clang/noclang
per original). Before this patch the factory emits twelve, four of them
junk:
```
test_expr_stripped_dsym_clang_clang
test_expr_stripped_dsym_clang_noclang
test_expr_stripped_dsym_noclang_clang
test_expr_stripped_dsym_noclang_noclang
test_expr_stripped_dwarf_clang_clang
test_expr_stripped_dwarf_clang_noclang
test_expr_stripped_dwarf_noclang_clang
test_expr_stripped_dwarf_noclang_noclang
test_expr_dsym_clang
test_expr_dsym_noclang
test_expr_dwarf_clang
test_expr_dwarf_noclang
```
Track each method's expansion in a local dict and merge it back into the
shared dict only once that method is fully processed, so the variant
helper never sees another method's copies.
Commit: 0597087c44e493610d3f96608bef46e721201af6
https://github.com/llvm/llvm-project/commit/0597087c44e493610d3f96608bef46e721201af6
Author: Med Ismail Bennani <ismail at bennani.ma>
Date: 2026-06-01 (Mon, 01 Jun 2026)
Changed paths:
M lldb/CMakeLists.txt
M lldb/packages/Python/lldbsuite/test/dotest.py
M lldb/test/CMakeLists.txt
Log Message:
-----------
[lldb] Skip libc++ category tests on Darwin when no in-tree libc++ is built (#199262)
`canRunLibcxxTests()` previously short-circuited with "libc++ always
present" for all Darwin targets, meaning the "libc++" test category was
never skipped on macOS — even when `LLDB_HAS_LIBCXX` is `OFF` and no
`--libcxx-include-dir` / `--libcxx-library-dir` are passed to dotest.
The tests would silently run against the system libc++ instead of an
in-tree build, producing results inconsistent with what the suite is
designed to validate.
This fixes `canRunLibcxxTests()` to apply the same `libcxx_include_dir`
/ `libcxx_library_dir` guard on `Darwin` that `Linux` already uses. When
those dirs are absent (i.e. no in-tree libc++ was built), the function
returns `False` and `checkLibcxxSupport()` appends `libc++` to
`skip_categories` — skipping those tests exactly as Linux does.
On the CMake side, the `SEND_ERROR` for `LLDB_HAS_LIBCXX=OFF` is
downgraded to a `WARNING` so downstreams that intentionally skip the
runtimes build can keep `LLDB_INCLUDE_TESTS=ON` for the tests they
actually want to run. The warning is also gated on the new
`LLDB_ENABLE_LIBCXX_TESTS` option (default `ON`): setting it to OFF
acknowledges the deliberate choice and silences the warning without
requiring either an in-tree libc++ build or disabling all tests.
Signed-off-by: Med Ismail Bennani <ismail at bennani.ma>
Commit: b8aa19be4846132525b4f65e7bc5369c6693232f
https://github.com/llvm/llvm-project/commit/b8aa19be4846132525b4f65e7bc5369c6693232f
Author: Ilia Kuklin <ikuklin at accesssoftek.com>
Date: 2026-06-02 (Tue, 02 Jun 2026)
Changed paths:
M llvm/lib/Object/DXContainer.cpp
M llvm/unittests/Object/DXContainerTest.cpp
Log Message:
-----------
[Object][DirectX] Fix UB when parsing a DXContainer from a null buffer (#200865)
Adds an additional check that `Src != nullptr` before doing other
operations on it, which caused a UB in one test with #200413.
Commit: f8a5f67e81e95c8007072c3cb307cf5b3bebfd64
https://github.com/llvm/llvm-project/commit/f8a5f67e81e95c8007072c3cb307cf5b3bebfd64
Author: Sergey Stepanov <23sas32 at gmail.com>
Date: 2026-06-01 (Mon, 01 Jun 2026)
Changed paths:
M llvm/lib/Target/RISCV/RISCVFrameLowering.cpp
M llvm/lib/Target/RISCV/RISCVInstrInfoZicfiss.td
M llvm/test/CodeGen/RISCV/shadowcallstack.ll
Log Message:
-----------
[RISCV] Use sspush/sspopchk mnemonics for shadow stack codegen (#200182)
After PR #178609, SSPUSH/SSPOPCHK/C_SSPUSH became encodable under the
Zimop/Zcmop predicates alone (old Zicfiss requirement was relaxed to
Zimop).
Before that, the hw-shadow-stack codegen path introduced in PR #152251
needed PseudoMOP_* wrappers that expand to the base
MOP_RR_7/MOP_R_28/C_MOP_1, because the real SSPUSH/SSPOPCHK/C_SSPUSH
were gated by Zicfiss while the codegen path only required Zimop.
As a side effect, the assembler printed `mop.rr.7 zero, zero,
ra`/`mop.r.28 zero, ra` for hw-shadow-stack functions instead of the
proper `sspush ra`/`sspopchk ra` mnemonics from the CFI RISC-V spec
(while the disassembler already printed proper sspush/sspopchk.
With predicates now aligned, the pseudos are just plain wrappers with
identical predicates to the real instructions, so they became redundant.
This patch removes them and emits SSPUSH/SSPOPCHK/C_SSPUSH directly.
Commit: cd328c777b2925881e852adbd129848cc0c327dc
https://github.com/llvm/llvm-project/commit/cd328c777b2925881e852adbd129848cc0c327dc
Author: Matheus Izvekov <mizvekov at gmail.com>
Date: 2026-06-01 (Mon, 01 Jun 2026)
Changed paths:
M clang/docs/ReleaseNotes.rst
M clang/include/clang/AST/ExprCXX.h
M clang/include/clang/Sema/Sema.h
M clang/lib/AST/ASTImporter.cpp
M clang/lib/AST/ExprCXX.cpp
M clang/lib/AST/ItaniumMangle.cpp
M clang/lib/Sema/HLSLExternalSemaSource.cpp
M clang/lib/Sema/SemaTemplate.cpp
M clang/lib/Sema/SemaTemplateDeduction.cpp
M clang/lib/Sema/SemaTemplateInstantiate.cpp
M clang/lib/Sema/SemaType.cpp
M clang/lib/Sema/TreeTransform.h
M clang/lib/Serialization/ASTReaderStmt.cpp
M clang/lib/Serialization/ASTWriterStmt.cpp
M clang/test/SemaOpenACC/combined-construct-copy-ast.cpp
M clang/test/SemaOpenACC/combined-construct-copyin-ast.cpp
M clang/test/SemaOpenACC/combined-construct-copyout-ast.cpp
M clang/test/SemaOpenACC/combined-construct-create-ast.cpp
M clang/test/SemaOpenACC/combined-construct-no_create-ast.cpp
M clang/test/SemaOpenACC/combined-construct-present-ast.cpp
M clang/test/SemaOpenACC/combined-construct-private-firstprivate-ast.cpp
M clang/test/SemaOpenACC/compute-construct-varlist-ast.cpp
M clang/test/SemaOpenACC/data-construct-copy-ast.cpp
M clang/test/SemaOpenACC/data-construct-copyin-ast.cpp
M clang/test/SemaOpenACC/data-construct-copyout-ast.cpp
M clang/test/SemaOpenACC/data-construct-create-ast.cpp
M clang/test/SemaOpenACC/data-construct-no_create-ast.cpp
M clang/test/SemaOpenACC/data-construct-present-ast.cpp
M clang/test/SemaOpenACC/sub-array-ast.cpp
M clang/test/SemaTemplate/alias-templates.cpp
M clang/test/SemaTemplate/concepts.cpp
Log Message:
-----------
[clang] fix transformation of SubstNonTypeTemplateParmExpr nodes from type alias templates and concepts (#200850)
This makes sure SubstNonTypeTemplateParmExpr produced from
non-specialization decls (Type alias templates and concepts) are
correctly transformed.
This makes the SubstNonTypeTemplateParmExpr store the parameter type
directly, and uses that instead of relying on the AssociatedDecl.
Fixes #191738
Fixes #196375
Commit: 1460e27c8d38bd9632e1bd95d1f534ba71996a02
https://github.com/llvm/llvm-project/commit/1460e27c8d38bd9632e1bd95d1f534ba71996a02
Author: Alexey Samsonov <vonosmas at gmail.com>
Date: 2026-06-01 (Mon, 01 Jun 2026)
Changed paths:
M libc/config/linux/aarch64/entrypoints.txt
M libc/config/linux/x86_64/entrypoints.txt
M libc/include/wchar.yaml
M libc/src/wchar/CMakeLists.txt
A libc/src/wchar/swprintf.cpp
A libc/src/wchar/swprintf.h
M libc/test/src/wchar/CMakeLists.txt
A libc/test/src/wchar/swprintf_test.cpp
Log Message:
-----------
[libc] Add a placeholder for swprintf function (#200895)
Add a declaration and stub implementation for the `swprintf` function.
Only enable it when `LLVM_LIBC_ENABLE_EXPERIMENTAL_ENTRYPOINTS` is
specified to clarify that the implementation is not ready yet.
We're singling out `swprintf` among the other wide-character formatting
functions because it's used in libc++ to implement `std::to_wstring` for
floating point values
(https://github.com/llvm/llvm-project/blob/2a2e45257b8277ae6dbd3bce1627a9b07d1a301d/libcxx/src/string.cpp#L366),
and is the last remaining piece of functionality preventing us from
turning on wide character support in libc++ built against llvm-libc.
Adding the stub function would allow us to test the compilation with
`_LIBCPP_HAS_WIDE_CHARACTERS` enabled, and start keeping track of what
tests from libc++ test suite are working / not working yet.
Commit: 79b7fefcacdc7b5dc8817cecddcbb9a8da3c996c
https://github.com/llvm/llvm-project/commit/79b7fefcacdc7b5dc8817cecddcbb9a8da3c996c
Author: A. Jiang <de34 at live.cn>
Date: 2026-06-02 (Tue, 02 Jun 2026)
Changed paths:
M libcxx/include/__type_traits/integral_constant.h
M libcxx/include/__type_traits/is_constant_evaluated.h
M libcxx/include/__type_traits/is_within_lifetime.h
A libcxx/test/libcxx/type_traits/nodiscard.verify.cpp
M libcxx/test/std/utilities/meta/meta.const.eval/is_within_lifetime.compile.pass.cpp
Log Message:
-----------
[libc++][type_traits] Applied `[[nodiscard]]` (#200760)
`[[nodiscard]]` should be applied to functions where discarding the
return value is most likely a correctness issue.
- https://libcxx.llvm.org/CodingGuidelines.html
- https://wg21.link/type.traits
Commit: f1c6c1a3de116fb273b25d5f9022c8d44ea72fb4
https://github.com/llvm/llvm-project/commit/f1c6c1a3de116fb273b25d5f9022c8d44ea72fb4
Author: Justin Lebar <justin.lebar at gmail.com>
Date: 2026-06-01 (Mon, 01 Jun 2026)
Changed paths:
M llvm/lib/Target/NVPTX/NVPTXISelLowering.cpp
M llvm/test/CodeGen/NVPTX/mulwide.ll
Log Message:
-----------
[NVPTX] Fix sext(shl nsw x, topbit) miscompile. (#200924)
Consider the following IR.
i64 f(i32 %x) {
%s = shl nsw i32 %x, 31
%e = sext i32 %s to i64
ret %e
}
combineMulWide (renamed in this patch to combineSZExtToMulWide) rewrites
this into:
mul.wide.s32 %dst, %x, -2147483648
The LLVM IR is only meaningful for %x == 0 or -1; all other inputs
result in poison. Therefore to check whether this rewrite is correct, we
just need to ask if it generates the correct output when %x is 0 and
when %x is -1.
- When x == 0, IR and PTX both produce 0. OK.
- When x == -1:
- IR produces sext(INT32_MIN), whereas
- PTX produces sext(-1) * sext(INT32_MIN) = -sext(INT32_MIN)
Therefore the transformation is not correct.
This only happens when we're shifting by N-1 bits (where N is the narrow
integer width). In other cases, the multiplier is positive and it works
fine.
Commit: 45b3c4488fb59468fa5fb3637d5b9ecbd4f0c81e
https://github.com/llvm/llvm-project/commit/45b3c4488fb59468fa5fb3637d5b9ecbd4f0c81e
Author: adams381 <adams at nvidia.com>
Date: 2026-06-01 (Mon, 01 Jun 2026)
Changed paths:
M clang/include/clang/CIR/Dialect/IR/CIROps.td
M clang/include/clang/CIR/Dialect/IR/CIRTypes.h
M clang/include/clang/CIR/Dialect/IR/CIRTypes.td
M clang/include/clang/CIR/Dialect/IR/CIRTypesDetails.h
M clang/lib/CIR/CodeGen/CIRGenBuilder.h
M clang/lib/CIR/CodeGen/CIRGenBuiltinX86.cpp
M clang/lib/CIR/CodeGen/CIRGenExpr.cpp
M clang/lib/CIR/CodeGen/CIRGenRecordLayoutBuilder.cpp
M clang/lib/CIR/Dialect/IR/CIRAttrs.cpp
M clang/lib/CIR/Dialect/IR/CIRDataLayout.cpp
M clang/lib/CIR/Dialect/IR/CIRDialect.cpp
M clang/lib/CIR/Dialect/IR/CIRTypes.cpp
M clang/lib/CIR/Dialect/Transforms/CXXABILowering.cpp
M clang/lib/CIR/Dialect/Transforms/LoweringPrepare.cpp
M clang/lib/CIR/Dialect/Transforms/TargetLowering/LowerItaniumCXXABI.cpp
M clang/lib/CIR/Lowering/DirectToLLVM/LowerToLLVM.cpp
M clang/test/CIR/CodeGen/bitfield-union.c
M clang/test/CIR/CodeGen/bitfields.c
M clang/test/CIR/CodeGen/bitfields.cpp
M clang/test/CIR/CodeGen/bitfields_be.c
M clang/test/CIR/CodeGen/class.cpp
M clang/test/CIR/CodeGen/cleanup.cpp
M clang/test/CIR/CodeGen/constant-inits.cpp
M clang/test/CIR/CodeGen/coro-task.cpp
M clang/test/CIR/CodeGen/ctor.cpp
M clang/test/CIR/CodeGen/cxx-abi-lowering-string-array.cpp
M clang/test/CIR/CodeGen/destructors.cpp
M clang/test/CIR/CodeGen/dumb-record.cpp
M clang/test/CIR/CodeGen/dynamic-cast.cpp
M clang/test/CIR/CodeGen/empty-union.c
M clang/test/CIR/CodeGen/empty-union.cpp
M clang/test/CIR/CodeGen/finegrain-bitfield-access.cpp
M clang/test/CIR/CodeGen/forward-decls.cpp
M clang/test/CIR/CodeGen/global-dtor-union-narrowed.cpp
M clang/test/CIR/CodeGen/inline-cxx-func.cpp
M clang/test/CIR/CodeGen/member-functions.cpp
M clang/test/CIR/CodeGen/mms-bitfields.c
M clang/test/CIR/CodeGen/multi-vtable.cpp
M clang/test/CIR/CodeGen/no-proto-fn-ptr-global-init.c
M clang/test/CIR/CodeGen/no-unique-address.cpp
M clang/test/CIR/CodeGen/nonzeroinit-struct.cpp
M clang/test/CIR/CodeGen/paren-list-agg-init.cpp
M clang/test/CIR/CodeGen/record-type-metadata.cpp
M clang/test/CIR/CodeGen/record-with-padded-union.cpp
M clang/test/CIR/CodeGen/record-zero-init-padding.c
M clang/test/CIR/CodeGen/struct.c
M clang/test/CIR/CodeGen/template-specialization.cpp
M clang/test/CIR/CodeGen/three-way-cmp.cpp
M clang/test/CIR/CodeGen/union.c
M clang/test/CIR/CodeGen/union.cpp
M clang/test/CIR/CodeGen/var_arg.c
M clang/test/CIR/CodeGen/variable-template-specialization.cpp
M clang/test/CIR/CodeGen/vbase.cpp
M clang/test/CIR/CodeGen/virtual-function-calls.cpp
M clang/test/CIR/CodeGen/vtable-emission.cpp
M clang/test/CIR/CodeGen/vtable-nyi-nonconvertible-functype.cpp
M clang/test/CIR/CodeGen/vtt.cpp
M clang/test/CIR/CodeGenBuiltins/X86/avx512vlvp2intersect-builtins.c
M clang/test/CIR/CodeGenBuiltins/X86/avx512vp2intersect-builtins.c
M clang/test/CIR/CodeGenBuiltins/X86/keylocker.c
M clang/test/CIR/CodeGenCXX/zero_init_bases.cpp
M clang/test/CIR/IR/array-ctor.cir
M clang/test/CIR/IR/array-dtor.cir
M clang/test/CIR/IR/bitfield_info.cir
M clang/test/CIR/IR/construct-catch-param.cir
M clang/test/CIR/IR/copy.cir
M clang/test/CIR/IR/dynamic-cast.cir
M clang/test/CIR/IR/func-attrs.cir
M clang/test/CIR/IR/func.cir
M clang/test/CIR/IR/global-init.cir
M clang/test/CIR/IR/invalid-array-structor.cir
M clang/test/CIR/IR/invalid-cast.cir
M clang/test/CIR/IR/invalid-const-record.cir
M clang/test/CIR/IR/invalid-construct-catch-param.cir
M clang/test/CIR/IR/invalid-data-member.cir
M clang/test/CIR/IR/invalid-delete-array.cir
M clang/test/CIR/IR/invalid-dyn-cast.cir
M clang/test/CIR/IR/invalid-struct.cir
M clang/test/CIR/IR/invalid-type-info.cir
M clang/test/CIR/IR/invalid-vtable.cir
M clang/test/CIR/IR/method-attr.cir
M clang/test/CIR/IR/struct.cir
M clang/test/CIR/IR/vtable-addrpt.cir
M clang/test/CIR/IR/vtable-attr.cir
M clang/test/CIR/IR/vtt-addrpoint.cir
M clang/test/CIR/Lowering/struct.cir
M clang/test/CIR/Lowering/vtt-addrpoint.cir
M clang/test/CIR/Transforms/canonicalize-cleanup-scope.cir
M clang/test/CIR/Transforms/cxx-abi-lowering-attrs.cir
M clang/test/CIR/Transforms/eh-abi-lowering-construct-catch-invalid.cir
M clang/test/CIR/Transforms/eh-abi-lowering-construct-catch.cir
M clang/test/CIR/Transforms/eh-abi-lowering-itanium.cir
M clang/test/CIR/Transforms/flatten-cleanup-scope-eh.cir
M clang/test/CIR/Transforms/flatten-cleanup-scope-multi-exit.cir
M clang/test/CIR/Transforms/flatten-cleanup-scope-simple.cir
M clang/test/CIR/Transforms/flatten-preserve-attrs.cir
M clang/test/CIR/Transforms/flatten-throwing-in-cleanup.cir
M clang/test/CIR/Transforms/flatten-try-op.cir
M clang/test/CIR/Transforms/pure-ptr-arithmetic.cir
M clang/unittests/CIR/PointerLikeTest.cpp
M clang/unittests/CIR/RecordTypeMetadataTest.cpp
M clang/unittests/CIR/UnionTypeSizeTest.cpp
Log Message:
-----------
[CIR] Split RecordType into StructType/UnionType
Union tail padding was stored as the last element of the `members` array
with a `padded = true` flag. Every pass touching `RecordType` had to
special-case unions: skip the last member when iterating, call
`getLargestMember()` to find the storage type, check `isUnion()` before
almost every layout query. This spread union-specific logic across
`CIRTypes.cpp`, `LowerToLLVM.cpp`, `CXXABILowering.cpp`,
`CIRGenRecordLayoutBuilder.cpp`, and `CIRGenExpr.cpp`.
This PR moves union tail padding to a dedicated `padding` field on
`RecordTypeStorage` and introduces two C++ view classes: `UnionType` and
`StructType`, both subclassing `RecordType` via `classof`-based
dispatch. `mlir::dyn_cast<UnionType>` and `mlir::isa<StructType>` work
naturally.
`UnionType` owns the union-specific API: `getPadding()` returns the
tail-padding type (null if none), and `getUnionStorageType(DataLayout)`
returns the highest-alignment variant. `RecordType::getLargestMember()`
and the old `RecordType::getPadding()` (which returned the last member)
are removed.
The CIR text syntax for padded unions changes from `union "Name" padded
{members..., padType}` to `union "Name" padded {members...}, padding =
{padType}`, separating padding from the member list.
`CIRGenRecordLayoutBuilder::appendPaddingBytes` now routes union tail
padding to a new `unionPadding` field instead of appending to
`fieldTypes`. `LowerToLLVM` and `CXXABILowering` use the new `UnionType`
API directly.
Commit: 22e13e71ed46f0d47f90ae5e6cea2956db892be3
https://github.com/llvm/llvm-project/commit/22e13e71ed46f0d47f90ae5e6cea2956db892be3
Author: Michael Kruse <llvm-project at meinersbur.de>
Date: 2026-06-02 (Tue, 02 Jun 2026)
Changed paths:
M clang/include/clang/Options/FlangOptions.td
M clang/lib/Driver/ToolChains/Flang.cpp
M flang/include/flang/Support/LangOptions.def
M flang/lib/Frontend/CompilerInvocation.cpp
M flang/lib/Semantics/mod-file.cpp
M flang/lib/Semantics/semantics.cpp
A flang/test/Semantics/Inputs/device_modfile01_a.mod
A flang/test/Semantics/device-modfile01.f90
A flang/test/Semantics/device-modfile02.f90
Log Message:
-----------
[Flang] Fix device-side module lookup (#200863)
When invoking flang with device-offloading (eg. `flang modfile.f90
-fopenmp --offload-arch=gfx90a`), it will invoke the frontend twice:
once for the host architecture, and a second time for the architecture
specified with `--offload-arch`. However, both frontend invocations are
going to write `modfile.mod` (or whatever the module name in
`modfile.f90`), and as a result the second one for gfx90a will be what
the file contains after the driver invocation returns. Until #171515
both version of the file were identical, but now both files are using a
different set of builtin modules. Since Flang's mod files store the
checksums of used module files in them, this can result in a checksum
mismatch error. For instance, modfile.mod being the gfx90a version, and
then using it to compile with `flang modfile.f90
--target=x86_64-linux-gnu`) will have a checksum mismath.
flang -fc1 host x86_64 --> modfile.mod --> lib/clang/23/finclude/flang/x86_64-linux-gnu/iso_fortran_env.mod
/ / \ \
flang -fc1 -foffload-device nvptx / \ lib/clang/23/finclude/flang/nvptx64-nvidia-cuda/iso_fortran_env.mod
/ \
flang -fc1 -foffload-device amdgcn lib/clang/23/finclude/flang/amdgcn-amd-amdhsa/iso_fortran_env.mod
We fix this by
1. Not overwriting the `--target` host module file with the
`--offload-arch` module; the auxiliary target is the canonical version
for its contents; and
2. Ignore checksum errors when using an intrinsic module during
offloading. The device version should be compatible with the host
version, just with definitions which the .mod file will eventually
import from the intrinsic module at compile-time.
Commit: f7fd7a17361ceb850a9c370df25777ba10519710
https://github.com/llvm/llvm-project/commit/f7fd7a17361ceb850a9c370df25777ba10519710
Author: Zachary Yedidia <zyedidia at gmail.com>
Date: 2026-06-01 (Mon, 01 Jun 2026)
Changed paths:
M llvm/lib/Target/AArch64/MCTargetDesc/AArch64MCLFIRewriter.cpp
M llvm/lib/Target/AArch64/MCTargetDesc/AArch64MCLFIRewriter.h
A llvm/test/MC/AArch64/LFI/tlsdesccall.s
Log Message:
-----------
[LFI][AArch64] Emit .tlsdesccall with the associated blr (#200903)
This PR fixes an issue in the LFI control-flow rewrites if a blr is
marked with `.tlsdesccall`. The `.tlsdesccall` should be moved after
rewriting so that it is associated with the rewritten `blr`, rather than
the guard instruction.
Commit: 015d0479b94ce48e431398813525a59a16c6e4eb
https://github.com/llvm/llvm-project/commit/015d0479b94ce48e431398813525a59a16c6e4eb
Author: Arthur Eubanks <aeubanks at google.com>
Date: 2026-06-01 (Mon, 01 Jun 2026)
Changed paths:
A llvm/include/llvm/Transforms/Utils/TriggerCrashPass.h
M llvm/lib/CodeGen/TargetPassConfig.cpp
M llvm/lib/Passes/PassBuilder.cpp
M llvm/lib/Passes/PassBuilderPipelines.cpp
M llvm/lib/Transforms/Utils/CMakeLists.txt
A llvm/lib/Transforms/Utils/TriggerCrashPass.cpp
A llvm/test/Other/trigger-crash-flags.ll
M llvm/utils/gn/secondary/llvm/lib/Transforms/Utils/BUILD.gn
Log Message:
-----------
[LLVM] Add flags to crash the opt/codegen pipeline (#200967)
Will be used for testing crash reduction.
Commit: c92353836fc9cccebe8af71b93bafb450d128505
https://github.com/llvm/llvm-project/commit/c92353836fc9cccebe8af71b93bafb450d128505
Author: Harald van Dijk <hdijk at accesssoftek.com>
Date: 2026-06-02 (Tue, 02 Jun 2026)
Changed paths:
M llvm/lib/Target/DirectX/DirectXTargetMachine.cpp
M llvm/test/CodeGen/DirectX/llc-pipeline.ll
Log Message:
-----------
[DirectX] Disable DCE and DSE for -O0 (#192520)
These are optimisation passes which are inappropriate to run when the
user has requested no optimisations, and which make it more difficult to
write tests.
Co-authored-by: Andrew Savonichev <andrew.savonichev at gmail.com>
Commit: 6d0b3fd88b60e23ff945b98f68b1607fb6f2fa5b
https://github.com/llvm/llvm-project/commit/6d0b3fd88b60e23ff945b98f68b1607fb6f2fa5b
Author: Johannes Doerfert <jdoerfert.llvm at gmail.com>
Date: 2026-06-01 (Mon, 01 Jun 2026)
Changed paths:
M llvm/utils/instrumentor-config-wizard.py
Log Message:
-----------
[Instrumentor] Improve the config wizard script (#199108)
This makes the config wizard script more generic as we grow
instrumentation opportunities. Better output, e.g., clear paths, are
also displayed now.
Prepared with Claude (AI) and tested by me afterwards.
Commit: 62118b56a7482549b0c19adf3fdf724afbb959a6
https://github.com/llvm/llvm-project/commit/62118b56a7482549b0c19adf3fdf724afbb959a6
Author: idubinov <igor.dubinov at amd.com>
Date: 2026-06-01 (Mon, 01 Jun 2026)
Changed paths:
M llvm/lib/Target/SPIRV/SPIRVBuiltins.cpp
Log Message:
-----------
[NFC][SPIR-V] Fix unused-variable in SPIRVBuiltins (#200842)
Commit: f9ae788567343e89f7cb9a9b18d1a43967baf7b3
https://github.com/llvm/llvm-project/commit/f9ae788567343e89f7cb9a9b18d1a43967baf7b3
Author: Nathan Ridge <zeratul976 at hotmail.com>
Date: 2026-06-01 (Mon, 01 Jun 2026)
Changed paths:
M clang-tools-extra/clangd/unittests/SemanticHighlightingTests.cpp
M clang/lib/Sema/HeuristicResolver.cpp
Log Message:
-----------
[clang][HeuristicResolver] Handle non-dependent TemplateSpecializationType gracefully (#200714)
Fixes https://github.com/llvm/llvm-project/issues/197716
Commit: ccd2606d0c30c58554cc11038a2160672ef529d5
https://github.com/llvm/llvm-project/commit/ccd2606d0c30c58554cc11038a2160672ef529d5
Author: Matheus Izvekov <mizvekov at gmail.com>
Date: 2026-06-01 (Mon, 01 Jun 2026)
Changed paths:
M clang-tools-extra/clang-tidy/misc/DefinitionsInHeadersCheck.cpp
M clang-tools-extra/clangd/SemanticHighlighting.cpp
M clang-tools-extra/clangd/refactor/tweaks/DefineInline.cpp
M clang/docs/ReleaseNotes.rst
M clang/include/clang/AST/Decl.h
M clang/include/clang/AST/DeclTemplate.h
M clang/include/clang/AST/JSONNodeDumper.h
M clang/include/clang/AST/RecursiveASTVisitor.h
M clang/include/clang/ASTMatchers/ASTMatchers.h
M clang/include/clang/ASTMatchers/ASTMatchersInternal.h
M clang/include/clang/Basic/Specifiers.h
M clang/include/clang/Sema/Sema.h
M clang/lib/AST/ASTContext.cpp
M clang/lib/AST/ASTDumper.cpp
M clang/lib/AST/ASTImporter.cpp
M clang/lib/AST/Comment.cpp
M clang/lib/AST/Decl.cpp
M clang/lib/AST/DeclPrinter.cpp
M clang/lib/AST/DeclTemplate.cpp
M clang/lib/AST/JSONNodeDumper.cpp
M clang/lib/AST/TextNodeDumper.cpp
M clang/lib/ASTMatchers/Dynamic/Registry.cpp
M clang/lib/Analysis/ExprMutationAnalyzer.cpp
M clang/lib/CodeGen/CGVTables.cpp
M clang/lib/Index/IndexingContext.cpp
M clang/lib/InstallAPI/Visitor.cpp
M clang/lib/Parse/ParseDeclCXX.cpp
M clang/lib/Sema/HLSLExternalSemaSource.cpp
M clang/lib/Sema/SemaConcept.cpp
M clang/lib/Sema/SemaDecl.cpp
M clang/lib/Sema/SemaDeclCXX.cpp
M clang/lib/Sema/SemaExprMember.cpp
M clang/lib/Sema/SemaOverload.cpp
M clang/lib/Sema/SemaTemplate.cpp
M clang/lib/Sema/SemaTemplateDeduction.cpp
M clang/lib/Sema/SemaTemplateDeductionGuide.cpp
M clang/lib/Sema/SemaTemplateInstantiate.cpp
M clang/lib/Sema/SemaTemplateInstantiateDecl.cpp
M clang/lib/Serialization/ASTReaderDecl.cpp
M clang/lib/Serialization/ASTWriterDecl.cpp
M clang/lib/StaticAnalyzer/Core/BugSuppression.cpp
M clang/lib/Tooling/Syntax/BuildTree.cpp
M clang/test/AST/ast-dump-templates-pattern.cpp
M clang/test/CXX/basic/basic.link/p11.cpp
M clang/test/CXX/temp/temp.arg/temp.arg.template/p3-2a.cpp
M clang/test/CXX/temp/temp.constr/temp.constr.decl/p4.cpp
M clang/test/CXX/temp/temp.decls/temp.spec.partial/temp.spec.partial.member/p2.cpp
M clang/test/CXX/temp/temp.spec/temp.expl.spec/p7.cpp
M clang/test/SemaTemplate/concepts-out-of-line-def.cpp
M clang/test/SemaTemplate/friend-template.cpp
M clang/test/SemaTemplate/instantiate-scope.cpp
M clang/test/Templight/templight-default-func-arg.cpp
M clang/test/Templight/templight-empty-entries-fix.cpp
M clang/tools/libclang/CIndex.cpp
M clang/unittests/AST/ASTImporterTest.cpp
M clang/unittests/ASTMatchers/ASTMatchersTraversalTest.cpp
M lldb/source/Plugins/Language/CPlusPlus/CPlusPlusLanguage.cpp
M lldb/source/Plugins/TypeSystem/Clang/TypeSystemClang.cpp
Log Message:
-----------
[clang] fix getTemplateInstantiationArgs (#199528)
This implements a new strategy for collecting the template arguments, by
relying on the qualifiers and template parameter lists to navigate the
template context of out-of-line definitions.
This greatly simplifies the signature of that function, by removing a
bunch of workarounds, and simpliffying a couple that weren't removed
yet.
Since this now relies on qualifiers and template parameter lists, this
patch expends most of its effort making sure these are placed,
transformed and propagated to template instantiations.
Also makes the explicit specialization AST nodes stop abusing the
template parameter lists by storing it's own template parameter list,
creating a dedicated field for them, similar to partial specializations.
Fixes #101330
Commit: a6255e47bfc5dad9729dc0e0c7d1cda65b52adf5
https://github.com/llvm/llvm-project/commit/a6255e47bfc5dad9729dc0e0c7d1cda65b52adf5
Author: Arthur Eubanks <aeubanks at google.com>
Date: 2026-06-02 (Tue, 02 Jun 2026)
Changed paths:
R llvm/include/llvm/Transforms/Utils/TriggerCrashPass.h
M llvm/lib/CodeGen/TargetPassConfig.cpp
M llvm/lib/Passes/PassBuilder.cpp
M llvm/lib/Passes/PassBuilderPipelines.cpp
M llvm/lib/Transforms/Utils/CMakeLists.txt
R llvm/lib/Transforms/Utils/TriggerCrashPass.cpp
R llvm/test/Other/trigger-crash-flags.ll
M llvm/utils/gn/secondary/llvm/lib/Transforms/Utils/BUILD.gn
Log Message:
-----------
Revert "[LLVM] Add flags to crash the opt/codegen pipeline" (#200977)
Reverts llvm/llvm-project#200967
Test failing on some buildbots:
https://lab.llvm.org/buildbot/#/builders/11/builds/41237
Commit: ad6366d6cc417f504b4a7fe7ff14e12ae79d7346
https://github.com/llvm/llvm-project/commit/ad6366d6cc417f504b4a7fe7ff14e12ae79d7346
Author: Fangrui Song <i at maskray.me>
Date: 2026-06-02 (Tue, 02 Jun 2026)
Changed paths:
M clang-tools-extra/clang-tidy/cppcoreguidelines/SpecialMemberFunctionsCheck.h
M clang-tools-extra/clang-tidy/utils/RenamerClangTidyCheck.cpp
M clang-tools-extra/clangd/Config.h
M clang-tools-extra/clangd/Headers.h
M clang-tools-extra/clangd/Protocol.h
M clang-tools-extra/clangd/SystemIncludeExtractor.cpp
M clang-tools-extra/clangd/index/Ref.h
M clang-tools-extra/clangd/index/SymbolID.h
M clang-tools-extra/clangd/index/dex/Token.h
M clang-tools-extra/clangd/index/dex/Trigram.h
M clang-tools-extra/include-cleaner/include/clang-include-cleaner/Types.h
M clang/include/clang/AST/APValue.h
M clang/include/clang/AST/ASTContext.h
M clang/include/clang/AST/ASTTypeTraits.h
M clang/include/clang/AST/BaseSubobject.h
M clang/include/clang/AST/CharUnits.h
M clang/include/clang/AST/DeclID.h
M clang/include/clang/AST/DeclarationName.h
M clang/include/clang/AST/GlobalDecl.h
M clang/include/clang/AST/NestedNameSpecifier.h
M clang/include/clang/AST/Redeclarable.h
M clang/include/clang/AST/TypeOrdering.h
M clang/include/clang/Analysis/Analyses/LifetimeSafety/Utils.h
M clang/include/clang/Analysis/CallGraph.h
M clang/include/clang/Analysis/FlowSensitive/DataflowAnalysisContext.h
M clang/include/clang/Analysis/FlowSensitive/Formula.h
M clang/include/clang/Analysis/ProgramPoint.h
M clang/include/clang/Analysis/RetainSummaryManager.h
M clang/include/clang/Basic/DirectoryEntry.h
M clang/include/clang/Basic/FileEntry.h
M clang/include/clang/Basic/IdentifierTable.h
M clang/include/clang/Basic/Module.h
M clang/include/clang/Basic/SourceLocation.h
M clang/include/clang/Basic/TokenKinds.h
M clang/include/clang/DependencyScanning/DependencyGraph.h
M clang/include/clang/Sema/ScopeInfo.h
M clang/include/clang/Sema/SemaCUDA.h
M clang/include/clang/Sema/Weak.h
M clang/include/clang/Serialization/ASTBitCodes.h
M clang/include/clang/Tooling/Inclusions/StandardLibrary.h
M clang/lib/APINotes/APINotesFormat.h
M clang/lib/AST/APValue.cpp
M clang/lib/AST/ExprConstant.cpp
M clang/lib/AST/ItaniumCXXABI.cpp
M clang/lib/CodeGen/CGDebugInfo.cpp
M clang/lib/CodeGen/CGObjCMacConstantLiteralUtil.h
M clang/lib/CodeGen/CodeGenTBAA.h
M clang/lib/Sema/SemaStmt.cpp
M clang/lib/StaticAnalyzer/Core/CallEvent.cpp
M clang/tools/clang-linker-wrapper/ClangLinkerWrapper.cpp
M clang/tools/libclang/CXCursor.cpp
M clang/tools/libclang/Indexing.cpp
Log Message:
-----------
[clang][clang-tools-extra] Remove unused DenseMapInfo::getTombstoneKey (#200634)
#200595 changed DenseMap to no longer create tombstone buckets, so
DenseMapInfo<T>::getTombstoneKey() is never called. Remove dead
definitions and dead tombstone branches.
Commit: dbab3f71775f6edd11546385aeddb9d0b053a2b5
https://github.com/llvm/llvm-project/commit/dbab3f71775f6edd11546385aeddb9d0b053a2b5
Author: Florian Hahn <flo at fhahn.com>
Date: 2026-06-02 (Tue, 02 Jun 2026)
Changed paths:
M llvm/include/llvm/Analysis/IVDescriptors.h
M llvm/include/llvm/Analysis/ScalarEvolution.h
M llvm/include/llvm/Transforms/Vectorize/LoopVectorizationLegality.h
M llvm/lib/Analysis/IVDescriptors.cpp
M llvm/lib/Analysis/ScalarEvolution.cpp
M llvm/lib/Transforms/Vectorize/LoopVectorizationLegality.cpp
M llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
M llvm/lib/Transforms/Vectorize/VPlan.h
M llvm/lib/Transforms/Vectorize/VPlanConstruction.cpp
M llvm/lib/Transforms/Vectorize/VPlanTransforms.h
M llvm/test/Transforms/LoopVectorize/VPlan/vplan-print-after-all.ll
M llvm/test/Transforms/LoopVectorize/induction.ll
M llvm/test/Transforms/LoopVectorize/predicated-inductions-vs-first-order-recurrences.ll
M llvm/test/Transforms/LoopVectorize/predicated-inductions.ll
Log Message:
-----------
[VPlan] Move IV predicate handling to VPlan. (#192876)
Commit: 8ce6c5ff2c134414d8e1815bdc122699abd89954
https://github.com/llvm/llvm-project/commit/8ce6c5ff2c134414d8e1815bdc122699abd89954
Author: Yuta Nakamura <44285097+nakasan617 at users.noreply.github.com>
Date: 2026-06-02 (Tue, 02 Jun 2026)
Changed paths:
M clang-tools-extra/clang-tidy/bugprone/UseAfterMoveCheck.cpp
M clang-tools-extra/docs/ReleaseNotes.rst
M clang-tools-extra/docs/clang-tidy/checks/bugprone/use-after-move.rst
M clang-tools-extra/test/clang-tidy/checkers/bugprone/use-after-move.cpp
Log Message:
-----------
[clang-tidy] Fix false positive in bugprone-use-after-move for std::tie (#192895)
std::tie(a, b) = expr reinitializes all variables passed to std::tie
because the tuple assignment operator writes back through the stored
references. The check was not recognizing this pattern, causing a false
positive on the second std::tie assignment in loops like:
std::tie(a, b) = foo(std::move(a), std::move(b));
std::tie(a, b) = foo(std::move(a), std::move(b)); // false positive
Add std::tie assignment as a reinitialization case in
makeReinitMatcher().
Fixes #136105.
---
**AI Disclosure:** Claude (Anthropic) was used to assist in diagnosing
the CI test failure and identifying the off-by-one line number in the
CHECK-NOTES.
---------
Co-authored-by: Claude Sonnet 4.6 <noreply at anthropic.com>
Co-authored-by: Zeyi Xu <mitchell.xu2 at gmail.com>
Commit: 734012d9897c5b6a9157b8e3a8f8c38dd8ac63f4
https://github.com/llvm/llvm-project/commit/734012d9897c5b6a9157b8e3a8f8c38dd8ac63f4
Author: Sudharsan Veeravalli <svs at qti.qualcomm.com>
Date: 2026-06-02 (Tue, 02 Jun 2026)
Changed paths:
M llvm/lib/Target/RISCV/RISCVFrameLowering.cpp
A llvm/test/CodeGen/RISCV/cmp-zilsd-csr.ll
A llvm/test/CodeGen/RISCV/saverestore-zilsd-fixed-location.ll
Log Message:
-----------
[RISCV] Disable Zilsd CSR-pair generation when push/pop or save-restore is enabled (#200623)
We were generating duplicate/worse code due to the generation of the
`Zilsd` load/store doubles for handling `CSR's` when `Zcmp/Xqccmp` or
`Save/Restore Libcalls` were enabled.
Commit: ff2fec30ac7ca732aec032f45c7d300d04c1e7bf
https://github.com/llvm/llvm-project/commit/ff2fec30ac7ca732aec032f45c7d300d04c1e7bf
Author: Zeyi Xu <mitchell.xu2 at gmail.com>
Date: 2026-06-02 (Tue, 02 Jun 2026)
Changed paths:
M clang-tools-extra/clang-tidy/bugprone/BugproneTidyModule.cpp
M clang-tools-extra/clang-tidy/bugprone/CMakeLists.txt
A clang-tools-extra/clang-tidy/bugprone/MissingEndComparisonCheck.cpp
A clang-tools-extra/clang-tidy/bugprone/MissingEndComparisonCheck.h
M clang-tools-extra/docs/ReleaseNotes.rst
A clang-tools-extra/docs/clang-tidy/checks/bugprone/missing-end-comparison.rst
M clang-tools-extra/docs/clang-tidy/checks/list.rst
A clang-tools-extra/test/clang-tidy/checkers/Inputs/Headers/std/algorithm
A clang-tools-extra/test/clang-tidy/checkers/Inputs/Headers/std/iterator
A clang-tools-extra/test/clang-tidy/checkers/bugprone/missing-end-comparison-custom.cpp
A clang-tools-extra/test/clang-tidy/checkers/bugprone/missing-end-comparison-cxx17.cpp
A clang-tools-extra/test/clang-tidy/checkers/bugprone/missing-end-comparison-cxx20.cpp
A clang-tools-extra/test/clang-tidy/checkers/bugprone/missing-end-comparison-cxx98.cpp
A clang-tools-extra/test/clang-tidy/checkers/bugprone/missing-end-comparison.cpp
Log Message:
-----------
[clang-tidy] Add `bugprone-missing-end-comparison` check (#182543)
This PR introduces a new check `bugprone-missing-end-comparison`.
It detects instances where the result of a standard algorithm is used
directly in a boolean context without being compared against the
corresponding end iterator.
Currently the check can't handle algorithms returning `std::pair` and
`std::ranges::mismatch_result`, but it should be a good enough starting
point for future improvements.
As of AI-Usage: Assisted by Gemini CLI (for pre-commit reviewing,
documentation and some code refactor/cleanup)
Closes https://github.com/llvm/llvm-project/issues/178731
---------
Co-authored-by: EugeneZelenko <eugene.zelenko at gmail.com>
Commit: b3221413294c8cb1de20059b06021a5ab0d73b25
https://github.com/llvm/llvm-project/commit/b3221413294c8cb1de20059b06021a5ab0d73b25
Author: vporpo <vasileios.porpodas at amd.com>
Date: 2026-06-01 (Mon, 01 Jun 2026)
Changed paths:
M llvm/lib/Transforms/Vectorize/SandboxVectorizer/Passes/LoadStoreVec.cpp
M llvm/lib/Transforms/Vectorize/SandboxVectorizer/Passes/TransactionAcceptOrRevert.cpp
M llvm/test/Transforms/SandboxVectorizer/load_store_vec.ll
M llvm/test/Transforms/SandboxVectorizer/load_store_vec_mixed_types.ll
Log Message:
-----------
[SandboxVec][LoadStoreVec][AMDGPU] Remove early reject of mixed types (#200523)
Up until now mixing floats and non-floats was disabled in the legality
checks. This patch changes this. We are now eagerly vectorizing mixed
types, but we are also checking the cost model to make sure we don't
regress on targets where this is expensive.
Commit: c0e4fc8afeaf80e5acff8ec73b3d4ebac492a729
https://github.com/llvm/llvm-project/commit/c0e4fc8afeaf80e5acff8ec73b3d4ebac492a729
Author: Lang Hames <lhames at gmail.com>
Date: 2026-06-02 (Tue, 02 Jun 2026)
Changed paths:
Log Message:
-----------
[ORC] Simplify DylibManager::lookupSymbols, remove LookupRequest. (#195954)
DylibManager::lookupSymbols used to take an array of LookupRequests,
where each request specified a handle and list of symbols to lookup
within that handle.
This commit replaces the array of lookup requests with a single handle
and list of symbols passed directly to lookupSymbols.
In practice all clients were passing a singlton array anyway, and
simplifying this signature significantly simplifies implementations.
Commit: a4e18dc2a2e300dd6b5e93225b050d852abb319d
https://github.com/llvm/llvm-project/commit/a4e18dc2a2e300dd6b5e93225b050d852abb319d
Author: Lang Hames <lhames at gmail.com>
Date: 2026-06-02 (Tue, 02 Jun 2026)
Changed paths:
M llvm/include/llvm/ExecutionEngine/Orc/ExecutorResolutionGenerator.h
Log Message:
-----------
[ORC] Fix header comment. NFC. (#200980)
Commit: 5148d2de75ec49b7642dff033164e51b099f06c4
https://github.com/llvm/llvm-project/commit/5148d2de75ec49b7642dff033164e51b099f06c4
Author: Timm Baeder <tbaeder at redhat.com>
Date: 2026-06-02 (Tue, 02 Jun 2026)
Changed paths:
M clang/lib/AST/ByteCode/Descriptor.cpp
M clang/lib/AST/ByteCode/Descriptor.h
M clang/lib/AST/ByteCode/DynamicAllocator.cpp
M clang/lib/AST/ByteCode/Pointer.h
M clang/lib/AST/ByteCode/Program.cpp
M clang/unittests/AST/ByteCode/CMakeLists.txt
A clang/unittests/AST/ByteCode/Pointer.cpp
Log Message:
-----------
[clang][bytecode] Improve `getType()` (#200342)
We previously often fell back to the type of the declaration, which is
wrong if we're pointing e.g. to a nested array.
Add a new unit test to vaildate this.
Commit: fba43a5b8923ea4f1d526ff0180a33543b65bc59
https://github.com/llvm/llvm-project/commit/fba43a5b8923ea4f1d526ff0180a33543b65bc59
Author: Chaitanya <Krishna.Sankisa at amd.com>
Date: 2026-06-02 (Tue, 02 Jun 2026)
Changed paths:
M clang/lib/CIR/Lowering/DirectToLLVM/LowerToLLVM.cpp
A clang/test/CIR/Lowering/call-llvm-intrinsic.cir
Log Message:
-----------
[CIR] Fix cir.call_llvm_intrinsic lowering for 0-result ops (#199516)
`cir.call_llvm_intrinsic` declares `Optional<CIR_AnyType>:$result`, but
the lowering indexed `op->getResultTypes()[0]` unconditionally and OOBed
on void calls.
Guard with `getNumResults()` and pick the void overload of
`LLVM::CallIntrinsicOp::create` in `createCallLLVMIntrinsicOp`.
Commit: 7290d876ad409596fe232e20bc4e83706fc5c05b
https://github.com/llvm/llvm-project/commit/7290d876ad409596fe232e20bc4e83706fc5c05b
Author: Chaitanya <Krishna.Sankisa at amd.com>
Date: 2026-06-02 (Tue, 02 Jun 2026)
Changed paths:
M clang/lib/CIR/CodeGen/CIRGenBuiltinAMDGPU.cpp
M clang/test/CIR/CodeGenHIP/builtins-amdgcn.hip
Log Message:
-----------
[CIR][AMDGPU] Implement lowering for __builtin_amdgcn_dispatch_ptr (#199880)
Port `emitAMDGPUDispatchPtr` from OGCG. Emits the `amdgcn.dispatch.ptr`
intrinsic and inserts an address-space cast when the builtin's expected
return type differs.
Commit: 4cef4efb2fc088426b1d75435536fafa6b562617
https://github.com/llvm/llvm-project/commit/4cef4efb2fc088426b1d75435536fafa6b562617
Author: Carlos Alberto Enciso <Carlos.Enciso at sony.com>
Date: 2026-06-02 (Tue, 02 Jun 2026)
Changed paths:
M llvm/docs/CommandGuide/llvm-debuginfo-analyzer.rst
M llvm/include/llvm/DebugInfo/LogicalView/Core/LVElement.h
M llvm/include/llvm/DebugInfo/LogicalView/Core/LVLocation.h
M llvm/include/llvm/DebugInfo/LogicalView/Core/LVReader.h
M llvm/include/llvm/DebugInfo/LogicalView/Core/LVSupport.h
M llvm/include/llvm/DebugInfo/LogicalView/LVReaderHandler.h
M llvm/include/llvm/DebugInfo/LogicalView/Readers/LVBinaryReader.h
A llvm/include/llvm/DebugInfo/LogicalView/Readers/LVIRReader.h
M llvm/lib/DebugInfo/LogicalView/CMakeLists.txt
M llvm/lib/DebugInfo/LogicalView/Core/LVElement.cpp
M llvm/lib/DebugInfo/LogicalView/Core/LVLocation.cpp
M llvm/lib/DebugInfo/LogicalView/Core/LVReader.cpp
M llvm/lib/DebugInfo/LogicalView/LVReaderHandler.cpp
A llvm/lib/DebugInfo/LogicalView/Readers/LVIRReader.cpp
M llvm/lib/Transforms/Utils/DebugSSAUpdater.cpp
A llvm/test/tools/llvm-debuginfo-analyzer/IR/01-ir-compare-logical-elements.test
A llvm/test/tools/llvm-debuginfo-analyzer/IR/01-ir-print-basic-details.test
A llvm/test/tools/llvm-debuginfo-analyzer/IR/01-ir-select-logical-elements.test
A llvm/test/tools/llvm-debuginfo-analyzer/IR/02-ir-logical-lines.test
A llvm/test/tools/llvm-debuginfo-analyzer/IR/03-ir-incorrect-lexical-scope-typedef.test
A llvm/test/tools/llvm-debuginfo-analyzer/IR/04-ir-missing-nested-enumerators.test
A llvm/test/tools/llvm-debuginfo-analyzer/IR/05-ir-incorrect-lexical-scope-variable.test
A llvm/test/tools/llvm-debuginfo-analyzer/IR/06-ir-full-logical-view.test
A llvm/test/tools/llvm-debuginfo-analyzer/IR/07-ir-debug-formats.test
A llvm/test/tools/llvm-debuginfo-analyzer/IR/08-ir-multiple-compile-units.test
A llvm/test/tools/llvm-debuginfo-analyzer/IR/Inputs/compile-unit-1.ll
A llvm/test/tools/llvm-debuginfo-analyzer/IR/Inputs/compile-unit-2.ll
A llvm/test/tools/llvm-debuginfo-analyzer/IR/Inputs/compile-unit-3.ll
A llvm/test/tools/llvm-debuginfo-analyzer/IR/Inputs/compile-unit.ll
A llvm/test/tools/llvm-debuginfo-analyzer/IR/Inputs/hello-world-clang.ll
A llvm/test/tools/llvm-debuginfo-analyzer/IR/Inputs/pr-43860-clang.ll
A llvm/test/tools/llvm-debuginfo-analyzer/IR/Inputs/pr-44884-clang.ll
A llvm/test/tools/llvm-debuginfo-analyzer/IR/Inputs/pr-46466-clang.ll
A llvm/test/tools/llvm-debuginfo-analyzer/IR/Inputs/test-clang-intrinsics.ll
A llvm/test/tools/llvm-debuginfo-analyzer/IR/Inputs/test-clang.ll
M llvm/tools/llvm-debuginfo-analyzer/CMakeLists.txt
M llvm/unittests/DebugInfo/LogicalView/CMakeLists.txt
A llvm/unittests/DebugInfo/LogicalView/IRReaderTest.cpp
M llvm/unittests/DebugInfo/LogicalView/Inputs/README.md
A llvm/unittests/DebugInfo/LogicalView/Inputs/test-clang.bc
A llvm/unittests/DebugInfo/LogicalView/Inputs/test-clang.ll
Log Message:
-----------
[llvm-debuginfo-analyzer] Add support for LLVM IR format. (#200603)
llvm-debuginfo-analyzer is a command line tool that processes debug
info contained in a binary file and produces a debug information
format agnostic “Logical View”, which is a high-level semantic
representation of the debug info, independent of the low-level format.
Add support for the LLVM IR format and be able to generate logical
views. Both textual representation (.ll) and bitcode (.bc) formats
are supported.
This relands https://github.com/llvm/llvm-project/pull/135440, which was
reverted in https://github.com/llvm/llvm-project/pull/199890.
It includes the fixes for the buildbots problems.
Commit: f3bed426308372c70df7565095d6abaaab5d1aa6
https://github.com/llvm/llvm-project/commit/f3bed426308372c70df7565095d6abaaab5d1aa6
Author: Justin Lebar <justin.lebar at gmail.com>
Date: 2026-06-01 (Mon, 01 Jun 2026)
Changed paths:
M llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp
A llvm/test/CodeGen/AArch64/vector-splice-compress-mmo-align.ll
Log Message:
-----------
[SelectionDAG] Don't over-claim alignment on vector splice/compress stack MMOs (#200622)
expandVectorSplice and expandVECTOR_COMPRESS allocate their scratch slot
on the stack with getReducedAlign, but the memory accesses they generate
touching this slot use the type's natural alignment, which may be
larger!
Commit: adcd285fc4047759e4014d6568d80bb64589aded
https://github.com/llvm/llvm-project/commit/adcd285fc4047759e4014d6568d80bb64589aded
Author: Christopher Ferris <cferris1000 at users.noreply.github.com>
Date: 2026-06-01 (Mon, 01 Jun 2026)
Changed paths:
M compiler-rt/lib/scudo/standalone/mem_map_linux.cpp
M compiler-rt/lib/scudo/standalone/report_linux.cpp
M compiler-rt/lib/scudo/standalone/report_linux.h
M compiler-rt/lib/scudo/standalone/secondary.h
M compiler-rt/lib/scudo/standalone/tests/report_test.cpp
Log Message:
-----------
[scudo] Return nullptr if a remap fails on linux. (#200537)
Add a check if a fixed address mmap doesn't return the expected address.
Allow a remap call to fail if the mmap fails and returns a nullptr to
the caller.
Fix a place where if remap fails in the secondary, it didn't do
anything. Now it will unmap the original entry on failure.
Commit: 363fdc5895b55c8c4775149df832960f615d3839
https://github.com/llvm/llvm-project/commit/363fdc5895b55c8c4775149df832960f615d3839
Author: Christian Ulmann <christianulmann at gmail.com>
Date: 2026-06-02 (Tue, 02 Jun 2026)
Changed paths:
M llvm/lib/IR/AsmWriter.cpp
A llvm/test/Assembler/dilabel.ll
Log Message:
-----------
[LLVM][IR] Make sure that DILabel's line is always printed (#200846)
This commit ensures that the textual IR of the DILabel always contains
the `line` information. This is required as the absence of a line causes
a parsing failure, i.e., this change fixes the print + parse roundtrip.
Commit: 872e45be708bbe82424addcee26757697adc7a98
https://github.com/llvm/llvm-project/commit/872e45be708bbe82424addcee26757697adc7a98
Author: hanbeom <kese111 at gmail.com>
Date: 2026-06-02 (Tue, 02 Jun 2026)
Changed paths:
M llvm/lib/Target/X86/X86ISelLowering.cpp
M llvm/test/CodeGen/X86/gfni-or-fold.ll
Log Message:
-----------
[X86] Fold OR of constant splats into GF2P8AFFINEQB (#194330)
Fold OR of a constant byte splat into X86ISD::GF2P8AFFINEQB when the
affine matrix is known at compile time.
For bits forced to 1 by the OR mask, zero the corresponding matrix rows
(in reverse row order within each 64-bit lane) and set the same bits in
the immediate. This turns:
gf2p8affineqb(x, M, imm) | C
into:
gf2p8affineqb(x, M & KeepMask, imm | C)
where KeepMask clears the rows for output bits selected by C.
This removes a separate OR after GF2P8AFFINEQB for constant-matrix cases
and extends the existing GFNI combine coverage beyond XOR folds.
Fixes: https://github.com/llvm/llvm-project/issues/191173
Commit: d046ee42e576f9fa6f8e3b57bfe9d6c574ab1708
https://github.com/llvm/llvm-project/commit/d046ee42e576f9fa6f8e3b57bfe9d6c574ab1708
Author: Tom Stellard <tstellar at redhat.com>
Date: 2026-06-01 (Mon, 01 Jun 2026)
Changed paths:
M .github/workflows/upload-release-artifact/action.yml
Log Message:
-----------
workflows/upload-release-artifact: Fix typo introduced in 01cfbaabef6cb59a1a6eb870bf5f48ac2e747118 (#200730)
Commit: 9547e0f5960bb1021112c5a373217c209b6b4014
https://github.com/llvm/llvm-project/commit/9547e0f5960bb1021112c5a373217c209b6b4014
Author: Carlos Alberto Enciso <Carlos.Enciso at sony.com>
Date: 2026-06-02 (Tue, 02 Jun 2026)
Changed paths:
M llvm/docs/CommandGuide/llvm-debuginfo-analyzer.rst
M llvm/include/llvm/DebugInfo/LogicalView/Core/LVElement.h
M llvm/include/llvm/DebugInfo/LogicalView/Core/LVLocation.h
M llvm/include/llvm/DebugInfo/LogicalView/Core/LVReader.h
M llvm/include/llvm/DebugInfo/LogicalView/Core/LVSupport.h
M llvm/include/llvm/DebugInfo/LogicalView/LVReaderHandler.h
M llvm/include/llvm/DebugInfo/LogicalView/Readers/LVBinaryReader.h
R llvm/include/llvm/DebugInfo/LogicalView/Readers/LVIRReader.h
M llvm/lib/DebugInfo/LogicalView/CMakeLists.txt
M llvm/lib/DebugInfo/LogicalView/Core/LVElement.cpp
M llvm/lib/DebugInfo/LogicalView/Core/LVLocation.cpp
M llvm/lib/DebugInfo/LogicalView/Core/LVReader.cpp
M llvm/lib/DebugInfo/LogicalView/LVReaderHandler.cpp
R llvm/lib/DebugInfo/LogicalView/Readers/LVIRReader.cpp
M llvm/lib/Transforms/Utils/DebugSSAUpdater.cpp
R llvm/test/tools/llvm-debuginfo-analyzer/IR/01-ir-compare-logical-elements.test
R llvm/test/tools/llvm-debuginfo-analyzer/IR/01-ir-print-basic-details.test
R llvm/test/tools/llvm-debuginfo-analyzer/IR/01-ir-select-logical-elements.test
R llvm/test/tools/llvm-debuginfo-analyzer/IR/02-ir-logical-lines.test
R llvm/test/tools/llvm-debuginfo-analyzer/IR/03-ir-incorrect-lexical-scope-typedef.test
R llvm/test/tools/llvm-debuginfo-analyzer/IR/04-ir-missing-nested-enumerators.test
R llvm/test/tools/llvm-debuginfo-analyzer/IR/05-ir-incorrect-lexical-scope-variable.test
R llvm/test/tools/llvm-debuginfo-analyzer/IR/06-ir-full-logical-view.test
R llvm/test/tools/llvm-debuginfo-analyzer/IR/07-ir-debug-formats.test
R llvm/test/tools/llvm-debuginfo-analyzer/IR/08-ir-multiple-compile-units.test
R llvm/test/tools/llvm-debuginfo-analyzer/IR/Inputs/compile-unit-1.ll
R llvm/test/tools/llvm-debuginfo-analyzer/IR/Inputs/compile-unit-2.ll
R llvm/test/tools/llvm-debuginfo-analyzer/IR/Inputs/compile-unit-3.ll
R llvm/test/tools/llvm-debuginfo-analyzer/IR/Inputs/compile-unit.ll
R llvm/test/tools/llvm-debuginfo-analyzer/IR/Inputs/hello-world-clang.ll
R llvm/test/tools/llvm-debuginfo-analyzer/IR/Inputs/pr-43860-clang.ll
R llvm/test/tools/llvm-debuginfo-analyzer/IR/Inputs/pr-44884-clang.ll
R llvm/test/tools/llvm-debuginfo-analyzer/IR/Inputs/pr-46466-clang.ll
R llvm/test/tools/llvm-debuginfo-analyzer/IR/Inputs/test-clang-intrinsics.ll
R llvm/test/tools/llvm-debuginfo-analyzer/IR/Inputs/test-clang.ll
M llvm/tools/llvm-debuginfo-analyzer/CMakeLists.txt
M llvm/unittests/DebugInfo/LogicalView/CMakeLists.txt
R llvm/unittests/DebugInfo/LogicalView/IRReaderTest.cpp
M llvm/unittests/DebugInfo/LogicalView/Inputs/README.md
R llvm/unittests/DebugInfo/LogicalView/Inputs/test-clang.bc
R llvm/unittests/DebugInfo/LogicalView/Inputs/test-clang.ll
Log Message:
-----------
Revert "[llvm-debuginfo-analyzer] Add support for LLVM IR format. (#200603)" (#201019)
This reverts commit 4cef4efb2fc088426b1d75435536fafa6b562617.
There are link issues with some buildbots.
Commit: 622302e847858a7a8ca5f2b360c67d7647689cc9
https://github.com/llvm/llvm-project/commit/622302e847858a7a8ca5f2b360c67d7647689cc9
Author: Jerry Zhang Jian <jerry.zhangjian at sifive.com>
Date: 2026-06-02 (Tue, 02 Jun 2026)
Changed paths:
M llvm/lib/Target/RISCV/MCTargetDesc/RISCVMCCodeEmitter.cpp
M llvm/lib/Target/RISCV/RISCVAsmPrinter.cpp
M llvm/lib/Target/RISCV/RISCVISelDAGToDAG.cpp
M llvm/lib/Target/RISCV/RISCVISelLowering.cpp
M llvm/lib/Target/RISCV/RISCVIndirectBranchTracking.cpp
M llvm/lib/Target/RISCV/RISCVInstrInfo.td
A llvm/test/CodeGen/RISCV/lpad-setjmp-isel.ll
A llvm/test/CodeGen/RISCV/lpad-setjmp-no-cfp.ll
A llvm/test/CodeGen/RISCV/lpad-setjmp.ll
M llvm/test/CodeGen/RISCV/lpad.ll
Log Message:
-----------
[RISCV] Ensure LPAD alignment for calls to returns_twice functions (#177515)
When Zicfilp is enabled, all LPAD instructions must be 4-byte aligned,
including those following a returns_twice call. Linker relaxation can
convert calls to c.jal (RV32C) or cm.jalt (Zcmt), causing LPAD
misalignment.
This patch handles calls to returns_twice functions (e.g., setjmp) when
Zicfilp CFI is enabled:
1. In ISel (LowerCall), detect
CLI.CB->hasFnAttr(Attribute::ReturnsTwice)
and select LPAD_CALL or LPAD_CALL_INDIRECT ISD opcodes. Custom ISel
in RISCVISelDAGToDAG adds the landing pad label as a pseudo operand.
2. RISCVAsmPrinter::emitLpadAlignedCall handles assembly output: when
Zca
is enabled, emit .p2align 2 before the call. When linker relaxation is
also enabled, wrap with .option push/exact/pop to prevent relaxation.
The LPAD instruction is emitted immediately after the call.
3. RISCVMCCodeEmitter::expandFunctionCallLpad handles object output:
expands the pseudo to AUIPC+JALR+LPAD (direct) or JALR+LPAD (indirect),
without R_RISCV_RELAX relocation.
Note: Both AsmPrinter and MCCodeEmitter need separate expansion logic
because GNU assembler doesn't yet support call.lpad/jalr.lpad syntax.
4. RISCVIndirectBranchTracking no longer needs to scan for returns_twice
calls since LPAD is now emitted directly by the pseudo expansion.
The existing lpad.ll test is updated to add cf-protection-branch module
flag, as the test_returns_twice function was intended to test
CFI-enabled
behavior. Without this flag, LPAD insertion after setjmp would not be
triggered.
Known issue: When Large Code Model and Zicfilp are both enabled, direct
calls to returns_twice functions use SW_GUARDED_CALL which takes
priority
over LPAD_CALL. This combination is not yet handled and will be
addressed
in a follow-up patch.
Signed-off-by: Jerry Zhang Jian <jerry.zhangjian at sifive.com>
Commit: b8e768f6ae95343ac542b195265572ecd063fc2b
https://github.com/llvm/llvm-project/commit/b8e768f6ae95343ac542b195265572ecd063fc2b
Author: Cullen Rhodes <cullen.rhodes at arm.com>
Date: 2026-06-02 (Tue, 02 Jun 2026)
Changed paths:
M clang/cmake/caches/release_cpack_pre_build_strip_lto.cmake
Log Message:
-----------
[CMake][Release] Use llvm-bitcode-strip on Darwin for build with -ffat-lto-objects (#200764)
Building with --fat-lto-objects was added in #140381 (cff9ae7a15a5). On
macOS the tests are failing when building release binaries with many
"The file was not recognized as a valid object file" errors, e.g.:
2026-01-16T12:54:26.0928880Z
/Users/runner/work/llvm-project/llvm-project/build/tools/clang/stage2-instrumented-bins/tools/clang/stage2-bins/_CPack_Packages/Darwin/TXZ/LLVM-22.1.0-rc1-macOS-ARM64/bin/llvm-strip:
error:
'/Users/runner/work/llvm-project/llvm-project/build/tools/clang/stage2-instrumented-bins/tools/clang/stage2-bins/_CPack_Packages/Darwin/TXZ/LLVM-22.1.0-rc1-macOS-ARM64/lib/libLLVMAArch64AsmParser.a(AArch64AsmParser.cpp.o)':
The file was not recognized as a valid object file
It's assuming bitcode is embedded in section .llvm.lto
(llvm/lib/Object/ObjectFile.cpp:80) but on MachO it's in
__LLVM,__bitcode (llvm/lib/Object/MachOObjectFile.cpp:2184)
llvm-bitcode-strip is a driver for the MachO bitcode_strip utility which
handles this. Use this instead.
Fixes #176398.
Assisted-by: codex
Commit: c4484e8422745ab8c1ada25a6bda5d69ef8da924
https://github.com/llvm/llvm-project/commit/c4484e8422745ab8c1ada25a6bda5d69ef8da924
Author: Cullen Rhodes <cullen.rhodes at arm.com>
Date: 2026-06-02 (Tue, 02 Jun 2026)
Changed paths:
M llvm/docs/ReleaseNotes.md
M llvm/include/llvm/CodeGen/TargetRegisterInfo.h
M llvm/lib/CodeGen/AggressiveAntiDepBreaker.cpp
M llvm/lib/CodeGen/MachineVerifier.cpp
M llvm/lib/CodeGen/RegisterBankInfo.cpp
M llvm/lib/CodeGen/SelectionDAG/InstrEmitter.cpp
M llvm/lib/CodeGen/SelectionDAG/ScheduleDAGFast.cpp
M llvm/lib/CodeGen/SelectionDAG/ScheduleDAGRRList.cpp
M llvm/lib/CodeGen/SelectionDAG/ScheduleDAGSDNodes.cpp
M llvm/lib/CodeGen/TargetRegisterInfo.cpp
M llvm/lib/Target/AMDGPU/SILowerSGPRSpills.cpp
M llvm/unittests/CodeGen/MFCommon.inc
M llvm/utils/TableGen/RegisterInfoEmitter.cpp
Log Message:
-----------
[CodeGen] De-type getMinimalPhysRegClass and related APIs (#197495)
Follow-up #193438 to de-type getMinimalPhysRegClass so it can be replaced with
the precomputed getDefaultMinimalPhysRegClass. Type is also removed from
related APIs.
There's very few uses of getMinimalPhysRegClass with a non-default type
(MVT::Other) and none at all for getCommonMinimalPhysRegClass. Rather than
trying to also handle the type when precomputing at compile-time it seems
better to remove the type altogether and simplify the APIs. This also improves
compile-time for a number of targets and configurations:
CTMark geomean:
- stage1-O3: -0.23%
- stage1-ReleaseThinLTO: -0.19%
- stage1-ReleaseLTO-g: -0.15%
- stage1-aarch64-O3: -0.57%
- stage2-O3: -0.23%
- clang: -0.13%
https://llvm-compile-time-tracker.com/compare.php?from=eae0b6b2498305ee29dc85a405ede9ccdc10ce7d&to=08c052a2db407d2a21d468001fd2035d3720acf7&stat=instructions%3Au
Assisted-by: codex
Commit: bb20724ecb743be0d67270934830510f0149ed15
https://github.com/llvm/llvm-project/commit/bb20724ecb743be0d67270934830510f0149ed15
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2026-06-02 (Tue, 02 Jun 2026)
Changed paths:
M llvm/lib/Target/X86/X86ISelLowering.cpp
M llvm/lib/Target/X86/X86InstrAVX512.td
M llvm/test/CodeGen/X86/ifma-combine-vpmadd52.ll
M llvm/test/CodeGen/X86/slow-pmullq.ll
Log Message:
-----------
[X86] Move Non-VLX handling for VPMADD52 instructions entirely into tablegen (#200800)
Just widen v2i64/v4i64 cases to v8i64
Removes more VLX/NoVLX testing from DAG
Commit: b3438c9af04b2ccf13b0adb6faf5e1fa0e3fb585
https://github.com/llvm/llvm-project/commit/b3438c9af04b2ccf13b0adb6faf5e1fa0e3fb585
Author: Jiahao Guo <eoonguo at gmail.com>
Date: 2026-06-02 (Tue, 02 Jun 2026)
Changed paths:
M clang/include/clang/CIR/Dialect/IR/CIROps.td
M clang/lib/CIR/Dialect/IR/CIRDialect.cpp
M clang/lib/CIR/Lowering/DirectToLLVM/LowerToLLVM.cpp
A clang/test/CIR/IR/invalid-lifetime.cir
A clang/test/CIR/IR/lifetime.cir
A clang/test/CIR/Lowering/lifetime.cir
Log Message:
-----------
[CIR] Add cir.lifetime.start and cir.lifetime.end Op (#199599)
### summary
Adds the `cir.lifetime.start` and `cir.lifetime.end` ops, which mark the
beginning and end of an alloca's live range. They mirror the LLVM
intrinsics `llvm.lifetime.start` / `llvm.lifetime.end`
Commit: c22474fc02c1c26c81577d4cc147ed3b7c04a079
https://github.com/llvm/llvm-project/commit/c22474fc02c1c26c81577d4cc147ed3b7c04a079
Author: Abhinav Pradeep <abhinav.pradeep at oracle.com>
Date: 2026-06-02 (Tue, 02 Jun 2026)
Changed paths:
M clang/lib/Analysis/LifetimeSafety/Checker.cpp
M clang/test/Sema/warn-lifetime-safety-lifetimebound.cpp
Log Message:
-----------
[LifetimeSafety] Prevent false-negative lifetimebound verification when origin escapes in an unrelated manner (#200786)
This PR removes a false-negative `[[lifetimebound]]` verification result
that occurs when the annotated attribute escapes via unrelated origin
escape kinds (escape through global, escape through field).
Change summary:
- `Checker.cpp` has function `checkAnnotations` which checks if an
escaping `Origin` was an annotated parameter. Modified the logic there
to only verify `[[lifetimebound]]` in the case that the escape was
through a return statement.
Fixes #200412
---------
Signed-off-by: Abhinav Pradeep <abhinav.pradeep at oracle.com>
Commit: 6f44c750a1987b050490f9655dc88c0145a44813
https://github.com/llvm/llvm-project/commit/6f44c750a1987b050490f9655dc88c0145a44813
Author: Antonio Frighetto <me at antoniofrighetto.com>
Date: 2026-06-02 (Tue, 02 Jun 2026)
Changed paths:
M clang/lib/CodeGen/CGBuiltin.cpp
M clang/test/CodeGen/math-libcalls-tbaa-indirect-args.c
M clang/test/CodeGen/math-libcalls-tbaa.c
Log Message:
-----------
[clang][CodeGen] Drop TBAA metadata emission on FP libcalls (#200752)
TBAA annotation on FP libcalls has been superseded by
recently-introduced `llvm.errno.tbaa` module-level metadata.
Commit: 114e135010ba92afd87462dd120f865b83f966b3
https://github.com/llvm/llvm-project/commit/114e135010ba92afd87462dd120f865b83f966b3
Author: Felipe de Azevedo Piovezan <fpiovezan at apple.com>
Date: 2026-06-02 (Tue, 02 Jun 2026)
Changed paths:
M lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCClassDescriptorV2.cpp
M lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCClassDescriptorV2.h
Log Message:
-----------
[lldb][NFCI] Cleanup AppleObjCClassDescriptorV2::ivar_t API (#201042)
Commit: a6a5bfc12f25de87815995d08e7d4f14477764ca
https://github.com/llvm/llvm-project/commit/a6a5bfc12f25de87815995d08e7d4f14477764ca
Author: Ryotaro Kasuga <kasuga.ryotaro at fujitsu.com>
Date: 2026-06-02 (Tue, 02 Jun 2026)
Changed paths:
M llvm/lib/Transforms/Scalar/LoopInterchange.cpp
M llvm/test/Transforms/LoopInterchange/memory-attr.ll
Log Message:
-----------
[LoopInterchange] Prevent interchange when memory-accessing calls exist (#200828)
Previously loop-interchange can be applied even though the loop has call
instructions which may access the memory. The root cause of this problem
is that the implementation didn't match the comment, like below:
```cpp
// readnone functions do not prevent interchanging.
if (CI->onlyWritesMemory() || isa<PseudoProbeInst>(CI))
continue;
```
However, I think ensuring `readnone` is insufficient in the first place,
because the LLVM Language Reference states about `readnone` as follows:
```
This attribute indicates that the function does not dereference that pointer argument, even though it may read or write the memory that the pointer points to if accessed through other pointers.
```
So, this patch fixes the issue by verifying that all the calls in the
loop have the `memory(none)` attribute. We could probably check that all
the arguments of the calls have `readnone`, but I believe just calling
`doesNotAccessMemory` is simpler and sufficient in practical cases
(though I haven't actually checked).
Fixes #200796.
Commit: 9c63a7e92616b96239b6687f229a15776572b5cb
https://github.com/llvm/llvm-project/commit/9c63a7e92616b96239b6687f229a15776572b5cb
Author: Arseniy Obolenskiy <arseniy.obolenskiy at amd.com>
Date: 2026-06-02 (Tue, 02 Jun 2026)
Changed paths:
M llvm/lib/Target/SPIRV/SPIRVBuiltins.cpp
M llvm/test/CodeGen/SPIRV/transcoding/OpenCL/convert_functions.ll
Log Message:
-----------
[SPIR-V] Fix inverted signed/unsigned opcode for int-to-int convert builtins (#200791)
Commit: e174a520b21103890ebc7367952202914b2baf88
https://github.com/llvm/llvm-project/commit/e174a520b21103890ebc7367952202914b2baf88
Author: Timm Baeder <tbaeder at redhat.com>
Date: 2026-06-02 (Tue, 02 Jun 2026)
Changed paths:
M clang/lib/AST/ByteCode/Compiler.cpp
M clang/test/AST/ByteCode/cxx20.cpp
Log Message:
-----------
[clang][bytecode] Reject invalid UETT_OpenMPRequiredSimdAlign nodes (#200997)
Commit: 0a758f9356138e327134a9aea2d760a50c49a419
https://github.com/llvm/llvm-project/commit/0a758f9356138e327134a9aea2d760a50c49a419
Author: Antonio Frighetto <me at antoniofrighetto.com>
Date: 2026-06-02 (Tue, 02 Jun 2026)
Changed paths:
M llvm/include/llvm/Transforms/Scalar/GVN.h
M llvm/lib/Transforms/Scalar/GVN.cpp
M llvm/test/Analysis/TypeBasedAliasAnalysis/gvn-nonlocal-type-mismatch.ll
M llvm/test/Transforms/GVN/PRE/load-metadata.ll
M llvm/test/Transforms/GVN/PRE/lpre-call-wrap.ll
M llvm/test/Transforms/GVN/PRE/phi-translate-2.ll
M llvm/test/Transforms/GVN/PRE/phi-translate-add.ll
M llvm/test/Transforms/GVN/PRE/phi-translate.ll
M llvm/test/Transforms/GVN/PRE/pre-after-rle.ll
M llvm/test/Transforms/GVN/PRE/pre-aliasning-path.ll
M llvm/test/Transforms/GVN/PRE/pre-load-combine-metadata.ll
M llvm/test/Transforms/GVN/PRE/pre-load-dbg.ll
M llvm/test/Transforms/GVN/PRE/pre-load-guards.ll
M llvm/test/Transforms/GVN/PRE/pre-load-implicit-cf-updates.ll
M llvm/test/Transforms/GVN/PRE/pre-load.ll
M llvm/test/Transforms/GVN/PRE/pre-single-pred.ll
M llvm/test/Transforms/GVN/PRE/preserve-tbaa.ll
M llvm/test/Transforms/GVN/PRE/rle-addrspace-cast.ll
M llvm/test/Transforms/GVN/PRE/rle-semidominated.ll
M llvm/test/Transforms/GVN/PRE/rle.ll
M llvm/test/Transforms/GVN/nonescaping.ll
M llvm/test/Transforms/GVN/pr14166.ll
M llvm/test/Transforms/GVN/readattrs.ll
M llvm/test/Transforms/GVN/setjmp.ll
M llvm/test/Transforms/GVN/tbaa.ll
M llvm/test/Transforms/GVN/vscale.ll
Log Message:
-----------
[GVN] MemorySSA for GVN: eliminate redundant loads via MemorySSA (#152859)
Introduce the main algorithm performing redundant load elimination via
MemorySSA in GVN. The entry point is `findReachingValuesForLoad`, which,
given as input a possibly redundant load `L`, it attempts to provide as
output a set of reaching memory values (`ReachingMemVal`), i.e., which
values (defs or equivalent reads) can reach `L` along at least one path
where that memory location is not modified meanwhile (if non-local, PRE
will establish whether the load may be eliminated).
Specifically, a reaching value may be of the following descriptor kind
(`DepKind`):
* Def: found a new instruction that produces exactly the bits the load
would read. For example, a must-alias store (which defines the load
memory location), or a must-alias read (exactly reads the same memory
location, found, e.g., after a phi-translation fixup);
* Clobber: found a write that clobbers a superset of the bits the load
would read. For example, a memset call over a memory region, whose value
read overlaps such a region (and may be forwarded to the load), or a
generic call clobbering the load that cannot be reused;
* Other: a precise instruction could not be found, but know the block
where the dependency exists (e.g., a memory location already live at
function entry).
We start off by looking for the users of the defining memory access of
the given load within the same block, searching for local dependencies.
We may need to iteratively follow the use-def chain of the defining
memory access to find the actual clobbering access, while staying within
the scope of the load. If an actual local def/clobber (or liveOnEntry)
is found, we are done and return that one. Otherwise, we move visiting
the predecessors of the load's block, considering the incoming value
from the MemoryPhi as a potential clobbering access. Hence, we search
for dependencies within the predecessor block itself. If the new
potential clobbering access is a MemoryPhi, we continue visiting the
transitive closure of the predecessor, recording its new potential
clobbering access. In this phase, as we are exploring non-local
definitions, the load itself may be considered a must-alias def as well
when being examined from a backedge path.
Co-authored-by: Momchil Velikov <momchil.velikov at arm.com>
Commit: b0e72b7c3f240cdc7e20eb6692d4662e7315bbc6
https://github.com/llvm/llvm-project/commit/b0e72b7c3f240cdc7e20eb6692d4662e7315bbc6
Author: markyang92 <80628866+markyang92 at users.noreply.github.com>
Date: 2026-06-02 (Tue, 02 Jun 2026)
Changed paths:
M clang/CMakeLists.txt
M clang/utils/perf-training/lit.site.cfg.in
Log Message:
-----------
[clang][cmake] Move perf-training out of CLANG_INCLUDE_TESTS (#192163)
perf-training defines the generate-profdata target used by the PGO
bootstrap build.
However, it is currently enabled only when CLANG_INCLUDE_TESTS=ON.
For distribution builds such as Yocto/OE, tests are usually disabled by
setting this to OFF.
But perf-training is a PGO utility, not a test target, and it is
currently gated by that block.
As a result, generate-profdata is unavailable to the PGO bootstrap build
when
CLANG_INCLUDE_TESTS=OFF.
Move perf-training out of the CLANG_INCLUDE_TESTS block.
This is safe because utils/perf-training/CMakeLists.txt adds targets
only when
LLVM_BUILD_INSTRUMENTED or CLANG_BOLT is enabled, so moving it out does
not add
any targets unless PGO or BOLT is actually in use.
Also fix the path in lit.site.cfg.in for standalone builds.
When llvm_src_dir is set from CMAKE_SOURCE_DIR, standalone clang builds
end up
using the clang source directory instead of the LLVM source directory.
Set it to the proper LLVM source location instead.
Assisted-by: claude
Commit: 0a52250e27e87b6b29492fc5223f9634acb948b1
https://github.com/llvm/llvm-project/commit/0a52250e27e87b6b29492fc5223f9634acb948b1
Author: 陈子昂 <2802328816 at qq.com>
Date: 2026-06-02 (Tue, 02 Jun 2026)
Changed paths:
A llvm/test/Transforms/LoopVectorize/RISCV/strided-access-wide-stride.ll
Log Message:
-----------
[LV][RISCV] Add crash test for wide pointer stride in convertToStridedAccesses (#200985)
Pre-commit test for https://github.com/llvm/llvm-project/issues/199640.
The test demonstrates a crash when the pointer stride exceeds the
canonical IV type (i32) range. To be updated by #199647.
Commit: edeffec62d462e0d162c6bcb41050c9afe192815
https://github.com/llvm/llvm-project/commit/edeffec62d462e0d162c6bcb41050c9afe192815
Author: Zhige Chen <zhige_chen at outlook.com>
Date: 2026-06-02 (Tue, 02 Jun 2026)
Changed paths:
M llvm/test/tools/llubi/controlflow.ll
A llvm/test/tools/llubi/global.ll
A llvm/test/tools/llubi/global_constant_store.ll
A llvm/test/tools/llubi/global_constexpr_initializer.ll
A llvm/test/tools/llubi/global_external.ll
M llvm/tools/llubi/lib/Context.cpp
M llvm/tools/llubi/lib/Context.h
M llvm/tools/llubi/lib/ExecutorBase.cpp
M llvm/tools/llubi/lib/Interpreter.cpp
M llvm/tools/llubi/lib/Value.cpp
M llvm/tools/llubi/lib/Value.h
M llvm/tools/llubi/llubi.cpp
Log Message:
-----------
[llubi] Global variables with simple initializers and global-address constants (#200547)
This PR implements global variables with simple initializers and
global-address constants. Support for constant expressions, alias, etc.,
are left for future PRs.
Commit: 88e96462dec6f3bbab7901a85b33bd15d4df6736
https://github.com/llvm/llvm-project/commit/88e96462dec6f3bbab7901a85b33bd15d4df6736
Author: Joshua Rodriguez <josh.rodriguez at arm.com>
Date: 2026-06-02 (Tue, 02 Jun 2026)
Changed paths:
M llvm/lib/Target/AArch64/GISel/AArch64RegisterBankInfo.cpp
M llvm/test/CodeGen/AArch64/arm64-int-neon.ll
M llvm/test/CodeGen/AArch64/arm64-neon-copy.ll
Log Message:
-----------
[AArch64][GlobalISel] Add handling for scalar sqabs intrinsic (#200222)
sqabs is a neon intrinsic, so can only be performed on vector register
banks. To handle intrinsic properly, coerce regbankselection to put
sqabs on fpr banks.
Commit: 32c7aaa3326f920cafd8474c6d5774ed5c0b3558
https://github.com/llvm/llvm-project/commit/32c7aaa3326f920cafd8474c6d5774ed5c0b3558
Author: Ömer Sinan Ağacan <omeragacan at gmail.com>
Date: 2026-06-02 (Tue, 02 Jun 2026)
Changed paths:
M llvm/test/Transforms/MemCpyOpt/memcpy.ll
Log Message:
-----------
Remove an invalid FIXME in a MemCpyOpt test (#200809)
Call slot optimization explicitly [requires `writable` and `noalias`][0]
when the destination is an argument, and `sret` doesn't imply any of
these.
So the `memcpy` into the return value pointer cannot be optimized away
in this test.
The test for doing this optimization when the `sret` argument is also
`writable` and `noalias` is [here][1].
Relevant commits:
- 369c9b791bc3f380e884bcad444287998c32ae16 requires writability in call
slot optimization and adds the `writable` attribute in the test linked
above, which already has `sret`, so that it optimizes as before. So
`sret` does not imply `writable`.
- f445e39ab271d07733f0f45048badd9e58905aec updates `isWritable` used in
the commit above to check for `noalias` on arguments before concluding
"writable".
The FIXME should probably have been removed with one of these commits.
[0]:
https://github.com/llvm/llvm-project/blob/356d7e6bf429a7ff3ae798bb994631ef33891a44/llvm/lib/Analysis/AliasAnalysis.cpp#L1009-L1019
[1]:
https://github.com/llvm/llvm-project/blob/356d7e6bf429a7ff3ae798bb994631ef33891a44/llvm/test/Transforms/MemCpyOpt/sret.ll#L9
Commit: ecf8b039e5e80a609a4446b29e83600062179cc6
https://github.com/llvm/llvm-project/commit/ecf8b039e5e80a609a4446b29e83600062179cc6
Author: Igor Wodiany <igor.wodiany at amd.com>
Date: 2026-06-02 (Tue, 02 Jun 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/SIWholeQuadMode.cpp
Log Message:
-----------
[AMDGPU] Recompute EXEC liveness in SIWholeQuadMode::toExact (#200866)
This is required as stale liveness information can lead to an incorrect
optimization in `SIOptimizeExecMaskingPreRA`. For example, when `hi16`
is removed from EXEC, `optimizeElseBranch` produces an incorrect result
by removing `S_AND`.
This is caused by the following code:
```c++
SlotIndex StartIdx = LIS->getInstructionIndex(SaveExecMI);
SlotIndex EndIdx = LIS->getInstructionIndex(*AndExecMI);
for (MCRegUnit Unit : TRI->regunits(ExecReg)) {
LiveRange &RegUnit = LIS->getRegUnit(Unit);
if (RegUnit.find(StartIdx) != std::prev(RegUnit.find(EndIdx)))
return false;
}
```
When `hi16` is available there are two `RegUnit`s, one for `hi16` and
one for `lo16`. In the case of `wqm.ll` test it produces two live
ranges:
```
0: [320r,320d:3)[368r,368d:2)[736r,736d:4)[832r,832d:1)[944r,944d:0) 0 at 944r 1 at 832r 2 at 368r 3 at 320r 4 at 736r
1: [12r,12d:1)[320r,320d:5)[368r,368d:4)[736r,736d:6)[744r,744d:0)[832r,832d:3)[944r,944d:2) 0 at 744r 1 at 12r 2 at 944r 3 at 832r 4 at 368r 5 at 320r 6 at 736r
```
When `hi16` is removed there is only one range:
```
0: [320r,320d:3)[368r,368d:2)[736r,736d:4)[832r,832d:1)[944r,944d:0) 0 at 944r 1 at 832r 2 at 368r 3 at 320r 4 at 736r
```
If only the first range is considered the loop will finish without
returning false and continue to remove `S_AND`. It is because EXEC
register for `S_AND` added by `SIWholeQuadMode::toExact` is not in the
range. This is incorrect.
When `hi16` is present the incorrect behavior is masked by the second
live range coming from `hi16`, causing the loop to return. This can be
most likely explained by the fact that `hi16` is only computed after the
new `S_AND` was added so contains more up to date information. Removing
EXEC from `LiveIntervals` forces the live range to be recomputed.
Commit: 2fc8a3e84ec08659e33b63e91f1d9b4be0890cfc
https://github.com/llvm/llvm-project/commit/2fc8a3e84ec08659e33b63e91f1d9b4be0890cfc
Author: Elvina Yakubova <eyakubova at nvidia.com>
Date: 2026-06-02 (Tue, 02 Jun 2026)
Changed paths:
M bolt/include/bolt/Core/MCPlusBuilder.h
M bolt/lib/Core/BinaryFunction.cpp
M bolt/lib/Passes/VeneerElimination.cpp
M bolt/lib/Target/AArch64/AArch64MCPlusBuilder.cpp
A bolt/test/AArch64/veneer-erratum-843419.s
Log Message:
-----------
[BOLT][AArch64] Eliminate e843419 veneers (#187955)
Detect and eliminate A53 843419 errata veneers with the drop-cortex-a53-843419-veneers option.
Commit: 7d62e753bb9ef0c21d1be9d155e4f6456391a406
https://github.com/llvm/llvm-project/commit/7d62e753bb9ef0c21d1be9d155e4f6456391a406
Author: David Spickett <david.spickett at arm.com>
Date: 2026-06-02 (Tue, 02 Jun 2026)
Changed paths:
M lldb/test/API/functionalities/thread/jump/TestThreadJump.py
Log Message:
-----------
[lldb][test] Disable part of TestThreadJump.py on WoA (#201074)
See https://github.com/llvm/llvm-project/issues/201068.
Commit: 4cfbf8ec82cb7e6f06c3f382a1b4ec082bd42b18
https://github.com/llvm/llvm-project/commit/4cfbf8ec82cb7e6f06c3f382a1b4ec082bd42b18
Author: Kshitij Paranjape <kshitijvparanjape at gmail.com>
Date: 2026-06-02 (Tue, 02 Jun 2026)
Changed paths:
M llvm/include/llvm/Analysis/ValueTracking.h
M llvm/lib/Analysis/ValueTracking.cpp
M llvm/test/Transforms/LoopVectorize/dereferenceable-info-from-assumption-constant-size.ll
M llvm/test/Transforms/LoopVectorize/single-early-exit-deref-assumptions.ll
M llvm/test/Transforms/SimplifyCFG/speculate-derefable-load.ll
Log Message:
-----------
[ValueTracking] Conservative NoSync check prevents vectorization (#199002)
Conservative nosync check in ValueTracking.cpp returns false causing
potentially faulting load preventing vectorization. Instead check if any
instructions betweenAssume Instruction and Ctx Instruction are synchronizing.
Fixes #180180.
Commit: 924388cd4bffe04cd6f191da0cd7015a19c673ef
https://github.com/llvm/llvm-project/commit/924388cd4bffe04cd6f191da0cd7015a19c673ef
Author: Pavel Labath <pavel at labath.sk>
Date: 2026-06-02 (Tue, 02 Jun 2026)
Changed paths:
M libc/config/linux/aarch64/headers.txt
M libc/config/linux/riscv/headers.txt
M libc/config/linux/x86_64/headers.txt
Log Message:
-----------
[libc] Add sys/sendfile.h to the public header list (#201062)
Commit: 4b212e5418097e31b13ab51dd9574c8cc6a3fdab
https://github.com/llvm/llvm-project/commit/4b212e5418097e31b13ab51dd9574c8cc6a3fdab
Author: Florian Hahn <flo at fhahn.com>
Date: 2026-06-02 (Tue, 02 Jun 2026)
Changed paths:
M llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
M llvm/test/Transforms/LoopVectorize/AArch64/transform-narrow-interleave-to-widen-memory-metadata.ll
Log Message:
-----------
[VPlan] Propagate interleave-group metadata to narrowed wide load/store. (#199356)
VPInterleaveRecipe now carries the common metadata valid for all members
and as such hold for any member. Propagate it to narrowed load and
stores.
PR: https://github.com/llvm/llvm-project/pull/199356
Commit: c3ea53cd814abd924fd004357f357823b180ace8
https://github.com/llvm/llvm-project/commit/c3ea53cd814abd924fd004357f357823b180ace8
Author: Florian Hahn <flo at fhahn.com>
Date: 2026-06-02 (Tue, 02 Jun 2026)
Changed paths:
M llvm/lib/Transforms/Vectorize/VPlanRecipes.cpp
M llvm/test/Transforms/LoopVectorize/AArch64/interleaved_cost.ll
M llvm/test/Transforms/LoopVectorize/AArch64/sve-gather-scatter-cost.ll
M llvm/test/Transforms/LoopVectorize/ARM/interleaved_cost.ll
M llvm/test/Transforms/LoopVectorize/ARM/mve-interleaved-cost.ll
M llvm/test/Transforms/LoopVectorize/RISCV/interleaved-cost.ll
M llvm/test/Transforms/LoopVectorize/SystemZ/mem-interleaving-costs-02.ll
M llvm/test/Transforms/LoopVectorize/SystemZ/mem-interleaving-costs.ll
M llvm/test/Transforms/LoopVectorize/VPlan/vplan-printing.ll
M llvm/test/Transforms/LoopVectorize/WebAssembly/memory-interleave.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/handle-iptr-with-data-layout-to-not-assert.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-f32-stride-2.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-f32-stride-3.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-f32-stride-4.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-f32-stride-5.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-f32-stride-6.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-f32-stride-7.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-f32-stride-8.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-f64-stride-2.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-f64-stride-3.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-f64-stride-4.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-f64-stride-5.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-f64-stride-6.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-f64-stride-7.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-f64-stride-8.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-half.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-i16-stride-2.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-i16-stride-3.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-i16-stride-4.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-i16-stride-5.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-i16-stride-6.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-i16-stride-7.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-i16-stride-8.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-i32-stride-2-indices-0u.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-i32-stride-2.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-i32-stride-3-indices-01u.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-i32-stride-3-indices-0uu.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-i32-stride-3.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-i32-stride-4-indices-012u.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-i32-stride-4-indices-01uu.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-i32-stride-4-indices-0uuu.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-i32-stride-4.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-i32-stride-5.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-i32-stride-6.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-i32-stride-7.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-i32-stride-8.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-i64-stride-2.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-i64-stride-3.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-i64-stride-4.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-i64-stride-5.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-i64-stride-6.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-i64-stride-7.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-i64-stride-8.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-i8-stride-2.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-i8-stride-3.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-i8-stride-4.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-i8-stride-5.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-i8-stride-6.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-i8-stride-7.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-i8-stride-8.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-f32-stride-2.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-f32-stride-3.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-f32-stride-4.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-f32-stride-5.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-f32-stride-6.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-f32-stride-7.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-f32-stride-8.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-f64-stride-2.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-f64-stride-3.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-f64-stride-4.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-f64-stride-5.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-f64-stride-6.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-f64-stride-7.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-i16-stride-2.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-i16-stride-3.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-i16-stride-4.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-i16-stride-5.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-i16-stride-6.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-i16-stride-7.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-i16-stride-8.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-i32-stride-2.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-i32-stride-3.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-i32-stride-4.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-i32-stride-5.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-i32-stride-6.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-i32-stride-7.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-i32-stride-8.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-i64-stride-2.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-i64-stride-3.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-i64-stride-4.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-i64-stride-5.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-i64-stride-6.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-i64-stride-7.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-i64-stride-8.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-i8-stride-2.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-i8-stride-3.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-i8-stride-4.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-i8-stride-5.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-i8-stride-6.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-i8-stride-7.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-i8-stride-8.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/masked-interleaved-load-i16.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/masked-interleaved-store-i16.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/strided-load-i16.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/strided-load-i32.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/strided-load-i64.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/strided-load-i8.ll
M llvm/test/tools/UpdateTestChecks/update_analyze_test_checks/Inputs/x86-loopvectorize-costmodel.ll
M llvm/test/tools/UpdateTestChecks/update_analyze_test_checks/Inputs/x86-loopvectorize-costmodel.ll.expected
M llvm/test/tools/UpdateTestChecks/update_analyze_test_checks/loopvectorize-costmodel.test
Log Message:
-----------
[VPlan] Don't print interleave group insert position. (#200023)
This patch updates interleave group printing to drop the insert
position. It does not add any information (the position of the
interleave group is determined by the position in VPlan), and for stores
we currently were printing <badref> anyways (trying to print a value
with void type).
PR: https://github.com/llvm/llvm-project/pull/200023
Commit: bae4566a422cba33fb41a072320b36fb51cb67ee
https://github.com/llvm/llvm-project/commit/bae4566a422cba33fb41a072320b36fb51cb67ee
Author: Amit Kumar Pandey <pandey.kumaramit2023 at gmail.com>
Date: 2026-06-02 (Tue, 02 Jun 2026)
Changed paths:
M compiler-rt/lib/asan/asan_interceptors.cpp
M compiler-rt/lib/sanitizer_common/sanitizer_common.h
M compiler-rt/lib/sanitizer_common/sanitizer_common_interceptors.inc
M compiler-rt/lib/sanitizer_common/sanitizer_linux.cpp
M compiler-rt/lib/sanitizer_common/sanitizer_mac.cpp
M compiler-rt/lib/sanitizer_common/sanitizer_win.cpp
M compiler-rt/lib/tsan/rtl/tsan_interceptors_posix.cpp
Log Message:
-----------
[compiler-rt][sanitizer_common] Generalize CheckNoDeepBind as OnDlOpen (#200748)
Rename the dlopen pre-check hook to OnDlOpen so platform-specific dlopen
handling can be extended beyond the RTLD_DEEPBIND guard on Linux.
Windows and macOS keep no-op implementations. All dlopen interceptors
call the shared hook.
Commit: bbc8fcb0e850984efa54eb815717f7ab905c4c05
https://github.com/llvm/llvm-project/commit/bbc8fcb0e850984efa54eb815717f7ab905c4c05
Author: Luke Lau <luke at igalia.com>
Date: 2026-06-02 (Tue, 02 Jun 2026)
Changed paths:
M llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
M llvm/test/Transforms/LoopVectorize/reduction-with-invariant-store.ll
Log Message:
-----------
[VPlan] Fix assertion when VPReductionPHIRecipe is simplified (#201023)
When replacing an invariant store of a reduction, we assert that the
stored value is the backedge value. However in some cases the
VPReductionPHIRecipe may be simplified away completely, so account for
this.
Fixes #201020
Fixes #200742
Commit: 969f6415b69cce63e98c19a03e8940b89cd8b285
https://github.com/llvm/llvm-project/commit/969f6415b69cce63e98c19a03e8940b89cd8b285
Author: Florian Hahn <flo at fhahn.com>
Date: 2026-06-02 (Tue, 02 Jun 2026)
Changed paths:
M llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
M llvm/lib/Transforms/Vectorize/VPlan.cpp
M llvm/lib/Transforms/Vectorize/VPlan.h
M llvm/lib/Transforms/Vectorize/VPlanAnalysis.cpp
M llvm/lib/Transforms/Vectorize/VPlanAnalysis.h
M llvm/lib/Transforms/Vectorize/VPlanConstruction.cpp
M llvm/lib/Transforms/Vectorize/VPlanHelpers.h
M llvm/lib/Transforms/Vectorize/VPlanRecipes.cpp
M llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
M llvm/lib/Transforms/Vectorize/VPlanUnroll.cpp
M llvm/lib/Transforms/Vectorize/VPlanUtils.cpp
M llvm/lib/Transforms/Vectorize/VPlanVerifier.cpp
M llvm/test/Transforms/LoopVectorize/RISCV/type-info-cache-evl-crash.ll
M llvm/test/Transforms/LoopVectorize/vplan-incomplete-cases.ll
Log Message:
-----------
[VPlan] Replace VPTypeAnalysis with VPValue::getScalarType. (NFC) (#200256)
Now that all VPValues have their scalar type set at construction,
replace calls to VPTypeAnalysis::inferScalarType with direct calls to
VPValue::getScalarType, and remove the no-longer-needed VPTypeAnalysis
members from VPCostContext and VPTransformState. Also remove the
getScalarTypeOrInfer fallback helper.
Depends on https://github.com/llvm/llvm-project/pull/200255
PR: https://github.com/llvm/llvm-project/pull/200256
Commit: 238bd57ccc283a3dec84afcd0b092b4e7a378491
https://github.com/llvm/llvm-project/commit/238bd57ccc283a3dec84afcd0b092b4e7a378491
Author: Tomer Shafir <tomer.shafir8 at gmail.com>
Date: 2026-06-02 (Tue, 02 Jun 2026)
Changed paths:
M llvm/lib/Target/AArch64/AArch64InstrFormats.td
M llvm/lib/Target/AArch64/SVEInstrFormats.td
Log Message:
-----------
[AArch64][TG] Migrate AArch64 backend from !cond to !switch(NFC) (#200949)
Making exact matches more compact. The \!switch operator has been
introduced by: https://github.com/llvm/llvm-project/pull/199659
Commit: f341dab9edfa97d7a4a01f9bc0fe981055dc5cc9
https://github.com/llvm/llvm-project/commit/f341dab9edfa97d7a4a01f9bc0fe981055dc5cc9
Author: Ming-Yi Lai <ming-yi.lai at mediatek.com>
Date: 2026-06-02 (Tue, 02 Jun 2026)
Changed paths:
M clang/include/clang/Basic/DiagnosticCommonKinds.td
M clang/lib/Basic/Targets/RISCV.cpp
M clang/lib/Basic/Targets/RISCV.h
M clang/test/CodeGen/RISCV/riscv-cf-protection.c
Log Message:
-----------
[clang][RISCV][Zicfilp] Force user to use `-mcf-branch-label-scheme=unlabeled` (#152122)
Expected Behavior:
When `-fcf-protection=branch|full` is specified, it's an error to omit
`-mcf-branch-label-scheme=unlabeled`.
Context:
When using forward-edge control flow integrity feature based on the
RISC-V Zicfilp extension, the `-mcf-branch-label-scheme` option selects
the encoding scheme used in the landing pad labels. The spec defines 2
schemes: `func-sig` and `unlabeled`, with the former specified as the
default. However the `func-sig` backend is still under active
development and won't land anytime soon; in the meanwhile, the
`unlabeled` scheme almost has complete support in the toolchain now.
Given that Clang currently accepts and defaults to
`-mcf-branch-label-scheme=func-sig` but doesn't work correctly, we want
to formally forbid the user from using
`-mcf-branch-label-scheme=func-sig` for now until the `func-sig` scheme
is properly supported. We choose to do so by forcing the user to specify
`-mcf-branch-label-scheme=unlabeled` (instead of changing the default to
`unlabeled`) so the default of `func-sig` can be retained according to
the spec and build scripts targeting the current Clang can be
forward-compatible with the Clang that supports the complete `func-sig`
scheme.
Commit: 016f53e2df9dae2177623d369eb5a1373fa6dc3c
https://github.com/llvm/llvm-project/commit/016f53e2df9dae2177623d369eb5a1373fa6dc3c
Author: Mel Chen <mel.chen at sifive.com>
Date: 2026-06-02 (Tue, 02 Jun 2026)
Changed paths:
M llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
M llvm/test/Transforms/LoopVectorize/RISCV/dead-ops-cost.ll
M llvm/test/Transforms/LoopVectorize/RISCV/masked_gather_scatter.ll
M llvm/test/Transforms/LoopVectorize/RISCV/strided-access-wide-stride.ll
A llvm/test/Transforms/LoopVectorize/RISCV/strided-accesses-narrow-iv.ll
M llvm/test/Transforms/LoopVectorize/RISCV/strided-accesses.ll
M llvm/test/Transforms/LoopVectorize/RISCV/truncate-to-minimal-bitwidth-cost.ll
Log Message:
-----------
[VPlan] Use pointer index type for stride in convertToStridedAccesses (#199647)
The type of StrideInBytes should be index type, not the canonical IV
type. When the type of canonical IV is narrower than index type (e.g.,
i32 canonical IV on a RV64), using CanonicalIVType for stride may cause
crash.
The assertion failure in SelectionDAG was a secondary symptom, and the
root cause is a semantic mismatch in the stride type.
Fixes #199509
Commit: 67aaa03dac582b5ccf65776e449eb6c7517eb11c
https://github.com/llvm/llvm-project/commit/67aaa03dac582b5ccf65776e449eb6c7517eb11c
Author: Matthias Springer <me at m-sp.org>
Date: 2026-06-02 (Tue, 02 Jun 2026)
Changed paths:
M mlir/docs/Dialects/LLVM.md
M mlir/docs/LangRef.md
A mlir/docs/Tokens.md
M mlir/docs/Traits/_index.md
M mlir/include/mlir/Dialect/Async/IR/Async.h
M mlir/include/mlir/Dialect/Async/IR/AsyncOps.td
M mlir/include/mlir/Dialect/LLVMIR/LLVMIntrinsicOps.td
M mlir/include/mlir/Dialect/LLVMIR/LLVMOpBase.td
M mlir/include/mlir/Dialect/LLVMIR/LLVMOps.td
M mlir/include/mlir/Dialect/LLVMIR/LLVMTypes.h
M mlir/include/mlir/IR/BuiltinDialectBytecode.td
M mlir/include/mlir/IR/BuiltinTypes.td
M mlir/include/mlir/IR/CommonTypeConstraints.td
M mlir/include/mlir/IR/OpBase.td
M mlir/include/mlir/IR/OpDefinition.h
M mlir/lib/AsmParser/TokenKinds.def
M mlir/lib/AsmParser/TypeParser.cpp
M mlir/lib/Conversion/AsyncToLLVM/AsyncToLLVM.cpp
M mlir/lib/Dialect/Async/IR/Async.cpp
M mlir/lib/Dialect/Async/Transforms/AsyncRuntimeRefCounting.cpp
M mlir/lib/Dialect/Async/Transforms/AsyncToAsyncRuntime.cpp
M mlir/lib/Dialect/LLVMIR/IR/LLVMDialect.cpp
M mlir/lib/Dialect/LLVMIR/IR/LLVMTypeSyntax.cpp
M mlir/lib/Dialect/LLVMIR/IR/LLVMTypes.cpp
M mlir/lib/IR/AsmPrinter.cpp
M mlir/lib/IR/Verifier.cpp
M mlir/lib/Target/LLVMIR/TypeFromLLVM.cpp
M mlir/lib/Target/LLVMIR/TypeToLLVM.cpp
M mlir/test/Conversion/AsyncToLLVM/convert-coro-to-llvm.mlir
M mlir/test/Dialect/ArmSME/invalid.mlir
M mlir/test/Dialect/Builtin/Bytecode/builtin_fixed.mlir
M mlir/test/Dialect/Builtin/Bytecode/builtin_fixed_0.mlirbc
M mlir/test/Dialect/Builtin/Bytecode/types.mlir
M mlir/test/Dialect/LLVMIR/types.mlir
M mlir/test/Dialect/Linalg/invalid.mlir
M mlir/test/Dialect/MemRef/invalid.mlir
M mlir/test/Dialect/SparseTensor/invalid.mlir
M mlir/test/Dialect/Tensor/invalid.mlir
M mlir/test/Dialect/Vector/invalid.mlir
M mlir/test/Dialect/traits.mlir
M mlir/test/IR/operand.mlir
M mlir/test/IR/result.mlir
A mlir/test/IR/token-type.mlir
M mlir/test/Target/LLVMIR/Import/intrinsic.ll
M mlir/test/Target/LLVMIR/llvmir-intrinsics.mlir
M mlir/test/lib/Dialect/Test/TestOps.td
M mlir/test/mlir-tblgen/predicate.td
M mlir/test/mlir-tblgen/types.mlir
M mlir/tools/mlir-tblgen/OpDefinitionsGen.cpp
Log Message:
-----------
[mlir][IR] Add builtin `TokenType` (#195640)
Introduces a new parameterless, opaque, builtin SSA value type,
`!token`. A token cannot appear in a value-forwarding position such as
`cf.br`, `arith.select`, `scf.for` iter-args or function call/return.
Walking back from any token use reaches the producing operation without
crossing such a boundary. Tokens carry no runtime data and cannot
constant-fold.
This contract is enforced by changing the default ODS `AnyType`
predicate to exclude tokens. In addition, token-producing and
token-consuming ops must opt in by implementing the `ProducesToken` and
`ConsumesToken` traits. The IR verifier checks for the presence of these
traits.
Note: CSE, DCE, hoisting, and `OperationEquivalence` remain unchanged. A
stronger contract (e.g., uniqueness, arity, paired lifetime), if
desirable based on the semantics of token-producing and token-consuming
ops, can be expressed at the op level via existing mechanisms (side
effects, block arguments, traits, attributes), keeping the type
orthogonal to operation-level transformations. This mirrors LLVM's
`token` type.
Other changes:
* Builtin bytecode: new entry for `TokenType`.
* AsmParser / AsmPrinter: `token` keyword for the textual format.
* Remove `LLVMTokenType` from the LLVM dialect and use the builtin
`TokenType` instead.
* Async dialect: references to `async::TokenType` are qualified to
disambiguate from the new builtin `TokenType`.
* Documentation: new `mlir/docs/Tokens.md` covering the structural
contract, design rationale, and ODS integration.
No changes to `Operation`, the generic op syntax, the bytecode op
encoding, or core C++ APIs around `Operation`.
This commit is in preparation of adding support for breaking exit from
regions. (E.g., early exit from loops.)
RFC:
https://discourse.llvm.org/t/rfc-add-a-builtin-token-type-to-mlir/90706
Assisted-by: claude-opus-4.7-thinking-high
---------
Co-authored-by: Mehdi Amini <joker.eph at gmail.com>
Commit: 9def57af57cc61ebaa83106f056ef3bbc59e0244
https://github.com/llvm/llvm-project/commit/9def57af57cc61ebaa83106f056ef3bbc59e0244
Author: Florian Hahn <flo at fhahn.com>
Date: 2026-06-02 (Tue, 02 Jun 2026)
Changed paths:
M llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
Log Message:
-----------
[VPlan] Remove stale references to VPTypeInfo. (#201088)
VPTypeInfo has been removed, and (#199647) a016f53e2 add dead reference,
causing the build to fail on main.
Commit: c51296345de89f80fbaeac85e92d72d0df06c0cb
https://github.com/llvm/llvm-project/commit/c51296345de89f80fbaeac85e92d72d0df06c0cb
Author: Charles Zablit <c_zablit at apple.com>
Date: 2026-06-02 (Tue, 02 Jun 2026)
Changed paths:
M lldb/source/Host/windows/PipeWindows.cpp
Log Message:
-----------
[lldb][windows] Close pipe HANDLE if _open_osfhandle fails (#200882)
Commit: 3c0daa26db4ba76359ca3285af6b709d8199c1cc
https://github.com/llvm/llvm-project/commit/3c0daa26db4ba76359ca3285af6b709d8199c1cc
Author: Charles Zablit <c_zablit at apple.com>
Date: 2026-06-02 (Tue, 02 Jun 2026)
Changed paths:
M lldb/source/Host/windows/PseudoConsole.cpp
Log Message:
-----------
[lldb][Windows] Default-initialize PseudoConsole Kernel32 members (#200880)
Commit: 6e1f2f513c84759e0d0727925dbb8c3a3e8b5199
https://github.com/llvm/llvm-project/commit/6e1f2f513c84759e0d0727925dbb8c3a3e8b5199
Author: Charles Zablit <c_zablit at apple.com>
Date: 2026-06-02 (Tue, 02 Jun 2026)
Changed paths:
M lldb/bindings/python/CMakeLists.txt
Log Message:
-----------
[lldb][windows] copy vcpkg runtime dlls (#200416)
Commit: 6b6cb5fb35183b156f8acf648184b61b985bee8f
https://github.com/llvm/llvm-project/commit/6b6cb5fb35183b156f8acf648184b61b985bee8f
Author: Ilia Kuklin <ikuklin at accesssoftek.com>
Date: 2026-06-02 (Tue, 02 Jun 2026)
Changed paths:
M llvm/lib/ObjCopy/DXContainer/DXContainerObjcopy.cpp
M llvm/test/tools/llvm-objcopy/DXContainer/copy-headers.yaml
M llvm/test/tools/llvm-objcopy/DXContainer/dump-section.yaml
Log Message:
-----------
Reapply "[llvm-objcopy] Strip header from DXContainer's ILDB part during `--dump-section`" (#200906)
The patch is reapplied with adjustments for the test failing on some
buildbots.
It strips the header from ILDB part of DXContainer during `llvm-objcopy
--dump-section`, so that the output contains bitcode only.
Commit: 78cf6cde9fbb6f08dacb3de5bc529243f9f85d9b
https://github.com/llvm/llvm-project/commit/78cf6cde9fbb6f08dacb3de5bc529243f9f85d9b
Author: Donát Nagy <donat.nagy at ericsson.com>
Date: 2026-06-02 (Tue, 02 Jun 2026)
Changed paths:
M clang/lib/StaticAnalyzer/Core/ExprEngine.cpp
M clang/lib/StaticAnalyzer/Core/ExprEngineCallAndReturn.cpp
Log Message:
-----------
[NFC][analyzer] Simplify ExprEngine::Visit, eliminate NodeBuilders (#200837)
Remove NodeBuilder use from `ExprEngine::Visit` to reduce its size from
700 lines to 600 lines of source code.
This commit also moves the "for instance method operators, make sure the
'this' argument has a valid region" logic (~10 lines) from the huge
`ExprEngine::Visit` to the more specific `VisitCallExpr`; and applies a
few other very minor code quality improvements.
Commit: 3191c78697c8b499a108e917a9590811db723969
https://github.com/llvm/llvm-project/commit/3191c78697c8b499a108e917a9590811db723969
Author: Arseniy Obolenskiy <arseniy.obolenskiy at amd.com>
Date: 2026-06-02 (Tue, 02 Jun 2026)
Changed paths:
M llvm/lib/Target/SPIRV/SPIRVAsmPrinter.cpp
A llvm/test/CodeGen/SPIRV/extensions/SPV_INTEL_inline_assembly/module_asm_unsupported.ll
Log Message:
-----------
[SPIR-V] Reject module-level inline assembly with a diagnostic (#199992)
Module level inline asm is unsupported, even with extension
Commit: 7139d0b46f6d71334b74049bbd540ac4b18a1bc5
https://github.com/llvm/llvm-project/commit/7139d0b46f6d71334b74049bbd540ac4b18a1bc5
Author: Lukacma <Marian.Lukac at arm.com>
Date: 2026-06-02 (Tue, 02 Jun 2026)
Changed paths:
M clang/include/clang/Basic/arm_neon.td
M clang/lib/CodeGen/TargetBuiltins/ARM.cpp
A clang/test/CodeGen/AArch64/f16f32dot-intrinsics.c
M clang/test/Sema/aarch64-neon-immediate-ranges/dotprod.c
M llvm/include/llvm/IR/IntrinsicsAArch64.td
M llvm/lib/Target/AArch64/AArch64InstrFormats.td
A llvm/test/CodeGen/AArch64/aarch64-f16f32dot-intrinsics.ll
Log Message:
-----------
[AArch64] Add intrinsic support for Fdot instr. (#189987)
This patch adds intrinsics for new NEON Fdot instruction variants. The
implementation is based on the
[proposal](https://github.com/ARM-software/acle/pull/428) and adds these
ACLE builtins:
```
float32x2_t vdot_f32_f16(float32x2_t r, float16x4_t a, float16x4_t b);
float32x4_t vdotq_f32_f16(float32x4_t r, float16x8_t a, float16x8_t b);
float32x2_t vdot_lane_f32_f16(float32x2_t r, float16x4_t a, float16x4_t b, const int lane);
float32x4_t vdotq_laneq_f32_f16(float32x4_t r, float16x8_t a, float16x8_t b, const int lane);
float32x2_t vdot_laneq_f32_f16(float32x2_t r, float16x4_t a, float16x8_t b, const int lane);
float32x4_t vdotq_lane_f32_f16(float32x4_t r, float16x8_t a, float16x4_t b, const int lane);
```
Commit: 67b3b87e6d64d7d706e14be8c5bba6acdc200623
https://github.com/llvm/llvm-project/commit/67b3b87e6d64d7d706e14be8c5bba6acdc200623
Author: Paul Walker <paul.walker at arm.com>
Date: 2026-06-02 (Tue, 02 Jun 2026)
Changed paths:
M llvm/lib/CodeGen/GlobalISel/CSEMIRBuilder.cpp
M llvm/test/CodeGen/AArch64/GlobalISel/select-splat-vector.ll
Log Message:
-----------
[LLVM][GlobalISel] Make CSEMIRBuilder::buildFConstant scalable vector aware. (#200386)
Commit: ad9e5bfcaf38580b2596967d3e1b7c3746d31bb1
https://github.com/llvm/llvm-project/commit/ad9e5bfcaf38580b2596967d3e1b7c3746d31bb1
Author: Weronika Lewandowska <weronika.lewandowska at intel.com>
Date: 2026-06-02 (Tue, 02 Jun 2026)
Changed paths:
M llvm/runtimes/CMakeLists.txt
Log Message:
-----------
[Offload] Forward LIBOMPTARGET_ cmake options to offload (#199906)
Add LIBOMPTARGET for offload so LIBOMPTARGET_* options are forwarded.
Note that the LIBOMPTARGET_* prefix was inherited from OpenMP's CMake
setup.
Commit: 3c86ffb3bd282cfad0bf1e3aa2cedf1e4895b057
https://github.com/llvm/llvm-project/commit/3c86ffb3bd282cfad0bf1e3aa2cedf1e4895b057
Author: Paul Walker <paul.walker at arm.com>
Date: 2026-06-02 (Tue, 02 Jun 2026)
Changed paths:
M llvm/lib/IR/Verifier.cpp
M llvm/test/Verifier/immarg-param-attribute-invalid.ll
Log Message:
-----------
[LLVM][Verifier] Reject "splat (...)" as an invalid value for an immarg operand. (#200445)
This makes the behaviour consistent with ConstantDataVector based
values.
Commit: b29352f7ea1d46fa7d90900d7a279851b6de9f74
https://github.com/llvm/llvm-project/commit/b29352f7ea1d46fa7d90900d7a279851b6de9f74
Author: Hans Wennborg <hans at hanshq.net>
Date: 2026-06-02 (Tue, 02 Jun 2026)
Changed paths:
M clang-tools-extra/clang-tidy/misc/DefinitionsInHeadersCheck.cpp
M clang-tools-extra/clangd/SemanticHighlighting.cpp
M clang-tools-extra/clangd/refactor/tweaks/DefineInline.cpp
M clang/docs/ReleaseNotes.rst
M clang/include/clang/AST/Decl.h
M clang/include/clang/AST/DeclTemplate.h
M clang/include/clang/AST/JSONNodeDumper.h
M clang/include/clang/AST/RecursiveASTVisitor.h
M clang/include/clang/ASTMatchers/ASTMatchers.h
M clang/include/clang/ASTMatchers/ASTMatchersInternal.h
M clang/include/clang/Basic/Specifiers.h
M clang/include/clang/Sema/Sema.h
M clang/lib/AST/ASTContext.cpp
M clang/lib/AST/ASTDumper.cpp
M clang/lib/AST/ASTImporter.cpp
M clang/lib/AST/Comment.cpp
M clang/lib/AST/Decl.cpp
M clang/lib/AST/DeclPrinter.cpp
M clang/lib/AST/DeclTemplate.cpp
M clang/lib/AST/JSONNodeDumper.cpp
M clang/lib/AST/TextNodeDumper.cpp
M clang/lib/ASTMatchers/Dynamic/Registry.cpp
M clang/lib/Analysis/ExprMutationAnalyzer.cpp
M clang/lib/CodeGen/CGVTables.cpp
M clang/lib/Index/IndexingContext.cpp
M clang/lib/InstallAPI/Visitor.cpp
M clang/lib/Parse/ParseDeclCXX.cpp
M clang/lib/Sema/HLSLExternalSemaSource.cpp
M clang/lib/Sema/SemaConcept.cpp
M clang/lib/Sema/SemaDecl.cpp
M clang/lib/Sema/SemaDeclCXX.cpp
M clang/lib/Sema/SemaExprMember.cpp
M clang/lib/Sema/SemaOverload.cpp
M clang/lib/Sema/SemaTemplate.cpp
M clang/lib/Sema/SemaTemplateDeduction.cpp
M clang/lib/Sema/SemaTemplateDeductionGuide.cpp
M clang/lib/Sema/SemaTemplateInstantiate.cpp
M clang/lib/Sema/SemaTemplateInstantiateDecl.cpp
M clang/lib/Serialization/ASTReaderDecl.cpp
M clang/lib/Serialization/ASTWriterDecl.cpp
M clang/lib/StaticAnalyzer/Core/BugSuppression.cpp
M clang/lib/Tooling/Syntax/BuildTree.cpp
M clang/test/AST/ast-dump-templates-pattern.cpp
M clang/test/CXX/basic/basic.link/p11.cpp
M clang/test/CXX/temp/temp.arg/temp.arg.template/p3-2a.cpp
M clang/test/CXX/temp/temp.constr/temp.constr.decl/p4.cpp
M clang/test/CXX/temp/temp.decls/temp.spec.partial/temp.spec.partial.member/p2.cpp
M clang/test/CXX/temp/temp.spec/temp.expl.spec/p7.cpp
M clang/test/SemaTemplate/concepts-out-of-line-def.cpp
M clang/test/SemaTemplate/friend-template.cpp
M clang/test/SemaTemplate/instantiate-scope.cpp
M clang/test/Templight/templight-default-func-arg.cpp
M clang/test/Templight/templight-empty-entries-fix.cpp
M clang/tools/libclang/CIndex.cpp
M clang/unittests/AST/ASTImporterTest.cpp
M clang/unittests/ASTMatchers/ASTMatchersTraversalTest.cpp
M lldb/source/Plugins/Language/CPlusPlus/CPlusPlusLanguage.cpp
M lldb/source/Plugins/TypeSystem/Clang/TypeSystemClang.cpp
Log Message:
-----------
Revert "[clang] fix getTemplateInstantiationArgs" (#201093)
This caused bootstrap builds on macOS to fail with
error: definition with same mangled name ... as another definition
in JSONGenerator.cpp. See comments on the original PR.
Reverts llvm/llvm-project#199528
Commit: 1872f06d60f35133bbc06e047c763b490c2d31be
https://github.com/llvm/llvm-project/commit/1872f06d60f35133bbc06e047c763b490c2d31be
Author: khaki3 <47756807+khaki3 at users.noreply.github.com>
Date: 2026-06-02 (Tue, 02 Jun 2026)
Changed paths:
M flang/include/flang/Optimizer/HLFIR/Passes.td
M flang/lib/Optimizer/HLFIR/Transforms/CMakeLists.txt
M flang/lib/Optimizer/HLFIR/Transforms/OptimizedBufferization.cpp
A flang/lib/Optimizer/HLFIR/Transforms/SeparateAllocatableAssign.cpp
M flang/lib/Optimizer/Passes/Pipelines.cpp
M flang/test/Driver/mlir-debug-pass-pipeline.f90
M flang/test/Driver/mlir-pass-pipeline.f90
M flang/test/Fir/basic-program.fir
A flang/test/HLFIR/opt-bufferization-dealloc-conflict.fir
A flang/test/HLFIR/separate-allocatable-assign.fir
M flang/test/Integration/OpenMP/workshare-axpy.f90
Log Message:
-----------
[flang][HLFIR] Add SeparateAllocatableAssign pass (#197814)
Example:
```fortran
!$acc kernels
B = A ! A, B allocatable
!$acc end kernels
```
In this code, `B = A` lowers to `hlfir.assign ... realloc`, which
becomes a `_FortranAAssign` runtime call inside the compute region — the
allocation can't be separated from the copy, and it crashes when `B` is
unallocated.
Fix: add `SeparateAllocatableAssign`, which splits the realloc assign
into an explicit conditional [re-]allocation followed by a plain
`hlfir.assign`, exposing the allocation as plain FIR. For variable RHS
it skips aliasing cases (`a = a(:n)`) by loading the LHS `fir.box` and
querying `fir::AliasAnalysis` on the data. For `hlfir.expr` RHS it
leaves ordering to bufferization, and fixes
`ElementalAssignBufferization` to stop fusing an elemental across a
deallocation.
Commit: f85f70fe78bd9d787d5414a79224c2e6b60fa472
https://github.com/llvm/llvm-project/commit/f85f70fe78bd9d787d5414a79224c2e6b60fa472
Author: Fangrui Song <i at maskray.me>
Date: 2026-06-02 (Tue, 02 Jun 2026)
Changed paths:
M llvm/lib/Target/AArch64/AArch64StackTaggingPreRA.cpp
M llvm/lib/Target/AMDGPU/GCNHazardRecognizer.cpp
M llvm/lib/Target/CSKY/MCTargetDesc/CSKYTargetStreamer.h
M llvm/lib/Target/PowerPC/PPCAsmPrinter.cpp
M llvm/lib/Target/SPIRV/SPIRVTypeInst.h
M llvm/lib/Target/X86/X86OptimizeLEAs.cpp
Log Message:
-----------
[Target] Remove unused DenseMapInfo::getTombstoneKey (#200955)
#200595 changed DenseMap to no longer create tombstone buckets, so
DenseMapInfo<T>::getTombstoneKey() is never called. Remove dead
definitions and dead tombstone branches.
Commit: 414b8b986705d24e415e8ef17bc8ddbbd6839712
https://github.com/llvm/llvm-project/commit/414b8b986705d24e415e8ef17bc8ddbbd6839712
Author: Fangrui Song <i at maskray.me>
Date: 2026-06-02 (Tue, 02 Jun 2026)
Changed paths:
M llvm/include/llvm/CodeGen/AccelTable.h
M llvm/include/llvm/CodeGen/MachineBasicBlock.h
M llvm/include/llvm/CodeGen/MachineInstr.h
M llvm/include/llvm/CodeGen/MachineOperand.h
M llvm/include/llvm/CodeGen/PBQP/CostAllocator.h
M llvm/include/llvm/CodeGen/Register.h
M llvm/include/llvm/CodeGen/SelectionDAGNodes.h
M llvm/include/llvm/CodeGen/TargetInstrInfo.h
M llvm/include/llvm/DebugInfo/CodeView/TypeHashing.h
M llvm/include/llvm/DebugInfo/CodeView/TypeIndex.h
M llvm/include/llvm/DebugInfo/DWARF/DWARFAcceleratorTable.h
M llvm/include/llvm/DebugInfo/GSYM/FileEntry.h
M llvm/include/llvm/Transforms/IPO/Attributor.h
M llvm/include/llvm/Transforms/IPO/FunctionSpecialization.h
M llvm/include/llvm/Transforms/IPO/IROutliner.h
M llvm/include/llvm/Transforms/Scalar/GVNExpression.h
M llvm/include/llvm/Transforms/Utils/BypassSlowDivision.h
M llvm/include/llvm/Transforms/Vectorize/SandboxVectorizer/VecUtils.h
M llvm/lib/CodeGen/AsmPrinter/CodeViewDebug.h
M llvm/lib/CodeGen/AssignmentTrackingAnalysis.cpp
M llvm/lib/CodeGen/ComplexDeinterleavingPass.cpp
M llvm/lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.cpp
M llvm/lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.h
M llvm/lib/CodeGen/MachineOutliner.cpp
M llvm/lib/CodeGen/StackMaps.cpp
M llvm/lib/DebugInfo/CodeView/TypeHashing.cpp
M llvm/lib/DebugInfo/DWARF/DWARFAcceleratorTable.cpp
M llvm/lib/DebugInfo/PDB/Native/GSIStreamBuilder.cpp
M llvm/lib/Transforms/IPO/Attributor.cpp
M llvm/lib/Transforms/IPO/AttributorAttributes.cpp
M llvm/lib/Transforms/IPO/FunctionSpecialization.cpp
M llvm/lib/Transforms/IPO/WholeProgramDevirt.cpp
M llvm/lib/Transforms/InstCombine/InstCombinePHI.cpp
M llvm/lib/Transforms/Scalar/EarlyCSE.cpp
M llvm/lib/Transforms/Scalar/GVN.cpp
M llvm/lib/Transforms/Scalar/GVNSink.cpp
M llvm/lib/Transforms/Scalar/LoopUnrollPass.cpp
M llvm/lib/Transforms/Scalar/NewGVN.cpp
M llvm/lib/Transforms/Utils/CanonicalizeFreezeInLoops.cpp
M llvm/lib/Transforms/Utils/Local.cpp
M llvm/lib/Transforms/Utils/SimplifyCFG.cpp
M llvm/lib/Transforms/Vectorize/LoadStoreVectorizer.cpp
M llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
M llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
Log Message:
-----------
[CodeGen][Transforms] Remove unused DenseMapInfo::getTombstoneKey (#200956)
#200595 changed DenseMap to no longer create tombstone buckets, so
DenseMapInfo<T>::getTombstoneKey() is never called. Remove dead
definitions and dead tombstone branches.
Commit: e0f5ce18c04a5c55e5eb4e35e5ab1f1980e15c31
https://github.com/llvm/llvm-project/commit/e0f5ce18c04a5c55e5eb4e35e5ab1f1980e15c31
Author: Fangrui Song <i at maskray.me>
Date: 2026-06-02 (Tue, 02 Jun 2026)
Changed paths:
M llvm/include/llvm/Analysis/AliasAnalysis.h
M llvm/include/llvm/Analysis/AssumeBundleQueries.h
M llvm/include/llvm/Analysis/IRSimilarityIdentifier.h
M llvm/include/llvm/Analysis/MemoryLocation.h
M llvm/include/llvm/Analysis/MemorySSA.h
M llvm/include/llvm/Analysis/ScalarEvolution.h
M llvm/include/llvm/Analysis/VectorUtils.h
M llvm/include/llvm/IR/Attributes.h
M llvm/include/llvm/IR/BasicBlock.h
M llvm/include/llvm/IR/DebugInfo.h
M llvm/include/llvm/IR/DebugInfoMetadata.h
M llvm/include/llvm/IR/Dominators.h
M llvm/include/llvm/IR/Metadata.h
M llvm/include/llvm/IR/ModuleSummaryIndex.h
M llvm/include/llvm/IR/ValueHandle.h
M llvm/include/llvm/IR/ValueMap.h
M llvm/lib/Analysis/IRSimilarityIdentifier.cpp
M llvm/lib/Analysis/MemorySSA.cpp
M llvm/lib/IR/ConstantsContext.h
M llvm/lib/IR/LLVMContextImpl.h
Log Message:
-----------
[IR][Analysis] Remove unused DenseMapInfo::getTombstoneKey (#200958)
#200595 changed DenseMap to no longer create tombstone buckets, so
DenseMapInfo<T>::getTombstoneKey() is never called. Remove dead
definitions and dead tombstone branches.
Commit: 17f85f467249d08508fe29f5c01f6a046d9a68e3
https://github.com/llvm/llvm-project/commit/17f85f467249d08508fe29f5c01f6a046d9a68e3
Author: Fangrui Song <i at maskray.me>
Date: 2026-06-02 (Tue, 02 Jun 2026)
Changed paths:
M llvm/include/llvm/BinaryFormat/Minidump.h
M llvm/include/llvm/BinaryFormat/Wasm.h
M llvm/include/llvm/BinaryFormat/WasmTraits.h
M llvm/include/llvm/CAS/CASID.h
M llvm/include/llvm/CAS/CASReference.h
M llvm/include/llvm/CodeGenTypes/LowLevelType.h
M llvm/include/llvm/DWARFLinker/Classic/DWARFLinkerDeclContext.h
M llvm/include/llvm/ExecutionEngine/Orc/Shared/ExecutorAddress.h
M llvm/include/llvm/ExecutionEngine/Orc/Shared/MemoryFlags.h
M llvm/include/llvm/ExecutionEngine/Orc/SymbolStringPool.h
M llvm/include/llvm/Frontend/OpenMP/OMPContext.h
M llvm/include/llvm/Linker/IRMover.h
M llvm/include/llvm/MC/MCRegister.h
M llvm/include/llvm/Object/ObjectFile.h
M llvm/include/llvm/ProfileData/Coverage/CoverageMapping.h
M llvm/include/llvm/ProfileData/FunctionId.h
M llvm/include/llvm/ProfileData/SampleProf.h
M llvm/include/llvm/SandboxIR/Context.h
M llvm/include/llvm/TextAPI/SymbolSet.h
M llvm/lib/Linker/IRMover.cpp
M llvm/lib/Object/Minidump.cpp
M llvm/tools/dsymutil/BinaryHolder.h
M llvm/tools/llvm-c-test/echo.cpp
M llvm/tools/llvm-reduce/deltas/Delta.h
M llvm/tools/llvm-split/llvm-split.cpp
M llvm/utils/TableGen/Basic/RuntimeLibcallsEmitter.cpp
M llvm/utils/gdb-scripts/prettyprinters.py
Log Message:
-----------
[llvm] Remove unused DenseMapInfo::getTombstoneKey (#200957)
#200595 changed DenseMap to no longer create tombstone buckets, so
DenseMapInfo<T>::getTombstoneKey() is never called. Remove dead
definitions and dead tombstone branches.
Commit: 10d3c6779d9faffed0a1d686ea76ee2cec48bd06
https://github.com/llvm/llvm-project/commit/10d3c6779d9faffed0a1d686ea76ee2cec48bd06
Author: Jeff Bailey <jbailey at raspberryginger.com>
Date: 2026-06-02 (Tue, 02 Jun 2026)
Changed paths:
M libc/include/limits.yaml
M libc/include/llvm-libc-macros/limits-macros.h
M libc/test/src/__support/CPP/limits_test.cpp
Log Message:
-----------
[libc] Define SSIZE_MAX in limits-macros.h (#201087)
Defined SSIZE_MAX in limits-macros.h to support POSIX compliance.
Applications compiling against LLVM libc require SSIZE_MAX to be defined
in limits.h.
SSIZE_MAX is defined strictly in terms of __PTRDIFF_MAX__, matching
ssize_t defined as __PTRDIFF_TYPE__, ensuring they are always
structurally aligned and compile-time safe.
Added Doxygen comments for SSIZE_MAX.
Added SSIZE_MAX to limits.yaml and added a unit test in limits_test.cpp
to verify the definition.
Assisted-by: Automated tooling, human reviewed.
Commit: 9a9b9d92db959447c32c63a931f269189c3c0893
https://github.com/llvm/llvm-project/commit/9a9b9d92db959447c32c63a931f269189c3c0893
Author: Ilia Kuklin <ikuklin at accesssoftek.com>
Date: 2026-06-02 (Tue, 02 Jun 2026)
Changed paths:
M llvm/include/llvm/DebugInfo/PDB/Native/PDBFile.h
M llvm/include/llvm/DebugInfo/PDB/Native/PDBFileBuilder.h
M llvm/include/llvm/DebugInfo/PDB/Native/PDBStringTableBuilder.h
M llvm/include/llvm/DebugInfo/PDB/Native/RawConstants.h
M llvm/lib/DebugInfo/PDB/Native/PDBFile.cpp
M llvm/lib/DebugInfo/PDB/Native/PDBFileBuilder.cpp
A llvm/test/tools/llvm-pdbutil/dxcontainer.test
M llvm/tools/llvm-pdbutil/PdbYaml.cpp
M llvm/tools/llvm-pdbutil/PdbYaml.h
M llvm/tools/llvm-pdbutil/YAMLOutputStyle.cpp
M llvm/tools/llvm-pdbutil/YAMLOutputStyle.h
M llvm/tools/llvm-pdbutil/llvm-pdbutil.cpp
M llvm/tools/llvm-pdbutil/llvm-pdbutil.h
Log Message:
-----------
Reapply "[PDB][llvm-pdbutil] Add DXContainer support for `pdb2yaml` and `yaml2pdb`" (#201092)
This reapplies #198351 with 2 issues fixed:
- `-Wchanges-meaning` causing an error in `PdbYaml.h`
- UB when parsing DXContainer header from a null buffer, fixed in
#200865
Original patch description:
This patch enables the following:
1. Attempting to parse a `DXContainer` from stream 5 (generated by
DirectX tools) of a PDB file, to be used later in `llvm-pdbutil`.
2. Outputting a PDB file with a built in DXContainer as YAML. Existing
DirectX tools form a PDB container with empty DBI, TPI and IPI streams,
so this patch also allows them to be empty when dumping a PDB file as
YAML.
3. Creating a PDB file from YAML with an built in DXContainer. When
creating a PDB with a DXContainer, streams DBI, TPI and IPI can be
completely empty, so this patch also includes adjustments to allow
forming such a PDB file. This is done to maintain compatibility with
other DirectX tools.
Commit: 0012320e60cddc1f98a9835f7d4ce8552fe12fe7
https://github.com/llvm/llvm-project/commit/0012320e60cddc1f98a9835f7d4ce8552fe12fe7
Author: Paul Walker <paul.walker at arm.com>
Date: 2026-06-02 (Tue, 02 Jun 2026)
Changed paths:
M llvm/lib/CodeGen/ComplexDeinterleavingPass.cpp
M llvm/test/CodeGen/AArch64/complex-deinterleaving-f32-add.ll
Log Message:
-----------
[LLVM][ComplexDeinterleaving] Update identifyDeinterleave to support all forms of zero. (#200400)
The original code misses ConstantFP based zeros.
Commit: 574243d7fad23da3532699caf0eadf36dfc321d8
https://github.com/llvm/llvm-project/commit/574243d7fad23da3532699caf0eadf36dfc321d8
Author: Arseniy Obolenskiy <arseniy.obolenskiy at amd.com>
Date: 2026-06-02 (Tue, 02 Jun 2026)
Changed paths:
M llvm/lib/Target/SPIRV/SPIRVCallLowering.cpp
A llvm/test/CodeGen/SPIRV/transcoding/func_param_attr.ll
Log Message:
-----------
[SPIR-V] Emit missing Sext function parameter decoration for signext args and test other param decorations (#200801)
Commit: 94fcaf5110e21451fed27c61e1f1e0b5fb3bdb33
https://github.com/llvm/llvm-project/commit/94fcaf5110e21451fed27c61e1f1e0b5fb3bdb33
Author: Paul Walker <paul.walker at arm.com>
Date: 2026-06-02 (Tue, 02 Jun 2026)
Changed paths:
M llvm/lib/Transforms/Vectorize/SandboxVectorizer/Passes/LoadStoreVec.cpp
M llvm/test/Transforms/SandboxVectorizer/load_store_vec.ll
Log Message:
-----------
[LLVM][SandboxVec][LoadStoreVec] Add support for vector ConstantInt/FP. (#200437)
The current implementation treats all ConstantInt/FP values as scalar,
leading to the wrong number of elements being used when combining them.
Commit: 9942a38e64b2333dc3816eebe6ac9230b1993220
https://github.com/llvm/llvm-project/commit/9942a38e64b2333dc3816eebe6ac9230b1993220
Author: A. Jiang <de34 at live.cn>
Date: 2026-06-02 (Tue, 02 Jun 2026)
Changed paths:
M libcxx/include/__mutex/unique_lock.h
M libcxx/include/shared_mutex
M libcxx/test/libcxx/thread/nodiscard.verify.cpp
Log Message:
-----------
[libc++] Apply `[[nodiscard]]` to `unique_lock` and `<shared_mutex>` (#200986)
`[[nodiscard]]` should be applied to functions where discarding the
return value is most likely a correctness issue.
- https://libcxx.llvm.org/CodingGuidelines.html
- https://wg21.link/thread.sharedmutex.class
- https://wg21.link/thread.sharedtimedmutex.class
- https://wg21.link/thread.lock.unique
- https://wg21.link/thread.lock.shared
Remarks:
- All constructors of `shared_lock` are marked `[[nodiscard]]`, which is
consistent with handling for constructors of `unique_lock`.
Commit: 2a7524b4e33c8dfd667fa28341ec7c6c529d9c50
https://github.com/llvm/llvm-project/commit/2a7524b4e33c8dfd667fa28341ec7c6c529d9c50
Author: Nerixyz <nerixdev at outlook.de>
Date: 2026-06-02 (Tue, 02 Jun 2026)
Changed paths:
M lldb/source/Plugins/Process/Windows/Common/DebuggerThread.cpp
M lldb/source/Plugins/Process/Windows/Common/IDebugDelegate.h
M lldb/source/Plugins/Process/Windows/Common/LocalDebugDelegate.cpp
M lldb/source/Plugins/Process/Windows/Common/LocalDebugDelegate.h
M lldb/source/Plugins/Process/Windows/Common/NativeProcessWindows.h
M lldb/source/Plugins/Process/Windows/Common/ProcessDebugger.cpp
M lldb/source/Plugins/Process/Windows/Common/ProcessDebugger.h
M lldb/source/Plugins/Process/Windows/Common/ProcessWindows.cpp
M lldb/source/Plugins/Process/Windows/Common/ProcessWindows.h
A lldb/test/Shell/Process/Windows/output_debug_string.cpp
M llvm/docs/ReleaseNotes.md
Log Message:
-----------
[lldb][Windows] Support OutputDebugString (#196395)
This picks https://reviews.llvm.org/D128541 back up. It implements
support for `OutputDebugStringA/W` on Windows. It's used by some logging
systems.
The main changes since the original patch:
- Use `WaitForDebugEventEx` for getting debug events over
`WaitForDebugEvent`. According to the
[docs](https://learn.microsoft.com/en-us/windows/win32/api/debugapi/nf-debugapi-waitfordebugeventex),
the only difference is that the -Ex version correctly outputs Unicode
strings.
- Support strings longer than 64 KiB. I set an arbitrary limit of 1 MiB
for the strings we read. The debugger interface only tells us the length
modulo 64 KiB which is a bit awkward. Libraries like Qt already chunk
calls to `OutputDebugString`, so strings shouldn't be too big in
practice.
- Output to stdout instead of a log channel, so the output is always
enabled. I don't know if this should go to stdout or stderr.
Tested that it works with lldb-dap and shows up in the debug console in
all modes.
Closes #185891.
---------
Co-authored-by: Alvin Wong <alvin at alvinhc.com>
Commit: 6180a4899ff913e0a0e2338e4d019b683f8f06da
https://github.com/llvm/llvm-project/commit/6180a4899ff913e0a0e2338e4d019b683f8f06da
Author: Charles Zablit <c_zablit at apple.com>
Date: 2026-06-02 (Tue, 02 Jun 2026)
Changed paths:
M lldb/source/Plugins/DynamicLoader/Windows-DYLD/CMakeLists.txt
M lldb/source/Plugins/DynamicLoader/Windows-DYLD/DynamicLoaderWindowsDYLD.cpp
A lldb/source/Plugins/DynamicLoader/Windows-DYLD/MSVCRTCFrameRecognizer.cpp
A lldb/source/Plugins/DynamicLoader/Windows-DYLD/MSVCRTCFrameRecognizer.h
M lldb/source/Plugins/Process/Windows/Common/CMakeLists.txt
R lldb/source/Plugins/Process/Windows/Common/MSVCRTCFrameRecognizer.cpp
R lldb/source/Plugins/Process/Windows/Common/MSVCRTCFrameRecognizer.h
M lldb/source/Plugins/Process/Windows/Common/ProcessWindows.cpp
Log Message:
-----------
[lldb][Windows] Register MSVCRTCFrameRecognizer from DynamicLoaderWindowsDYLD (#201097)
Commit: 2790e61b41949e4ce61faebdb1faed614ca14416
https://github.com/llvm/llvm-project/commit/2790e61b41949e4ce61faebdb1faed614ca14416
Author: Zeyi Xu <mitchell.xu2 at gmail.com>
Date: 2026-06-02 (Tue, 02 Jun 2026)
Changed paths:
M clang-tools-extra/clang-tidy/readability/NonConstParameterCheck.cpp
M clang-tools-extra/docs/ReleaseNotes.rst
M clang-tools-extra/test/clang-tidy/checkers/readability/non-const-parameter.cpp
Log Message:
-----------
[clang-tidy] Fix crash in readability-non-const-parameter with redecls (#200178)
The check matches `VarDecls` with `hasInitializer()`, which uses
`getAnyInitializer()` and may therefore match a redeclaration whose
initializer is attached to another declaration. So calling
`IgnoreParenCasts()` on `VD->getInit()` directly would crash when that
redeclaration had no initializer of its own.
This commit fixes the problem by using a new matcher that only matches
VarDecls with an initializer on the current declaration.
Closes https://github.com/llvm/llvm-project/issues/199197
Commit: 52fd3ec25a3d9a20efae59c453a2450bf633a970
https://github.com/llvm/llvm-project/commit/52fd3ec25a3d9a20efae59c453a2450bf633a970
Author: Jeff Bailey <jbailey at raspberryginger.com>
Date: 2026-06-02 (Tue, 02 Jun 2026)
Changed paths:
M libc/include/llvm-libc-macros/linux/unistd-macros.h
M libc/include/unistd.yaml
M libc/src/unistd/linux/sysconf.cpp
M libc/test/include/CMakeLists.txt
A libc/test/include/unistd_macros_test.cpp
M libc/test/src/unistd/sysconf_test.cpp
Log Message:
-----------
[libc] Define _POSIX_THREADS and support _SC_THREADS in sysconf (#201091)
Defined the _POSIX_THREADS macro to 202405L in unistd-macros.h for Linux
to signal POSIX thread support.
Also implemented runtime support for _SC_THREADS in sysconf, returning
_POSIX_THREADS, and added _SC_THREADS and _POSIX_THREADS to the public
unistd.yaml specification.
Added compile-time and runtime tests to verify _POSIX_THREADS definition
and sysconf(_SC_THREADS) behavior. Standardized header comments in
unistd-macros.h to conform to LLVM style.
Assisted-by: Automated tooling, human reviewed.
---------
Co-authored-by: Pavel Labath <pavel at labath.sk>
Commit: 0bbb91b73430cf6e436cb9c0fe61a2f280d9453b
https://github.com/llvm/llvm-project/commit/0bbb91b73430cf6e436cb9c0fe61a2f280d9453b
Author: Felipe de Azevedo Piovezan <fpiovezan at apple.com>
Date: 2026-06-02 (Tue, 02 Jun 2026)
Changed paths:
Log Message:
-----------
[lldb][NFCI] Cleanup AppleObjCClassDescriptorV2::ivar_t API (#200777)
Commit: bd85a10b0cbfde6e944da773c435b8006130848f
https://github.com/llvm/llvm-project/commit/bd85a10b0cbfde6e944da773c435b8006130848f
Author: Mirko Brkušanin <Mirko.Brkusanin at amd.com>
Date: 2026-06-02 (Tue, 02 Jun 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPUAsmPrinter.cpp
M llvm/lib/Target/AMDGPU/AMDGPUMCResourceInfo.cpp
M llvm/lib/Target/AMDGPU/AMDGPUResourceUsageAnalysis.cpp
M llvm/lib/Target/AMDGPU/AMDGPUResourceUsageAnalysis.h
M llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.cpp
M llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.h
A llvm/test/CodeGen/AMDGPU/dvgpr-vgpr-count-propagation-direct-chain.ll
A llvm/test/CodeGen/AMDGPU/dvgpr-vgpr-count-propagation-indirect.ll
A llvm/test/CodeGen/AMDGPU/dvgpr-vgpr-count-propagation.ll
M llvm/test/CodeGen/AMDGPU/dvgpr_sym_fail_too_many_block_size_16.ll
M llvm/test/CodeGen/AMDGPU/dvgpr_sym_fail_too_many_block_size_16_anon.ll
Log Message:
-----------
[AMDGPU] Do not propagate vgpr count in dVGPR mode (#187078)
When dVGPR mode is enabled chain functions should not propagate VGPR
counts from other chain callees. VGPRs are allocated before chaining to
a chain functions. We only propagate counts from non-chain callees.
Commit: 3db25f80895d281d2d3921bb15677e0c8de03c7a
https://github.com/llvm/llvm-project/commit/3db25f80895d281d2d3921bb15677e0c8de03c7a
Author: Pavel Labath <pavel at labath.sk>
Date: 2026-06-02 (Tue, 02 Jun 2026)
Changed paths:
M libc/src/__support/File/linux/CMakeLists.txt
M libc/src/__support/File/linux/dir.cpp
M libc/src/__support/File/linux/file.cpp
M libc/src/__support/OSUtil/linux/CMakeLists.txt
M libc/src/__support/OSUtil/linux/auxv.h
M libc/src/__support/threads/linux/CMakeLists.txt
M libc/src/__support/threads/linux/thread.cpp
M libc/src/fcntl/linux/CMakeLists.txt
M libc/src/fcntl/linux/creat.cpp
M libc/src/spawn/linux/CMakeLists.txt
M libc/src/spawn/linux/posix_spawn.cpp
Log Message:
-----------
[libc] Use linux_syscalls::open instead of manual SYS_open ifdefs (#201089)
I needed to clean up a few types in file.cpp in order to match the
wrapper prototype.
Assisted by Gemini.
Commit: fda34a97729f254d1a184d341683132c4ec65489
https://github.com/llvm/llvm-project/commit/fda34a97729f254d1a184d341683132c4ec65489
Author: Christian Sigg <csigg at google.com>
Date: 2026-06-02 (Tue, 02 Jun 2026)
Changed paths:
M clang/test/CodeGen/RISCV/riscv-cf-protection.c
Log Message:
-----------
[clang] Fix lit test after f341dab for envs that cannot write to file (#201121)
Commit: 023248a62673ce82045fa284022673882f209677
https://github.com/llvm/llvm-project/commit/023248a62673ce82045fa284022673882f209677
Author: Nerixyz <nerixdev at outlook.de>
Date: 2026-06-02 (Tue, 02 Jun 2026)
Changed paths:
M lldb/source/Plugins/Process/Windows/Common/DebuggerThread.cpp
Log Message:
-----------
[lldb][Windows] Use LazyImport for WaitForDebugEventEx (#201118)
From
https://github.com/llvm/llvm-project/pull/196395#pullrequestreview-4409209050.
This uses `LazyImport` for `WaitForDebugEventEx` to simplify the import.
Commit: 492202ec237f97299c6c2070a79be4c10826992f
https://github.com/llvm/llvm-project/commit/492202ec237f97299c6c2070a79be4c10826992f
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2026-06-02 (Tue, 02 Jun 2026)
Changed paths:
M llvm/lib/Target/X86/X86ISelLowering.cpp
M llvm/test/CodeGen/X86/shuffle-strided-with-offset-512.ll
M llvm/test/CodeGen/X86/shuffle-vs-trunc-512.ll
M llvm/test/CodeGen/X86/vector-interleaved-load-i8-stride-2.ll
Log Message:
-----------
[X86] lowerShuffleWithPSHUFB - use getConstVector to create shuffle mask (#201122)
Avoids wasteful SDValue creation if the shuffle matching fails - and
makes it easier to match+merge compatible constant pool entries
Commit: 47347d24f0a9f68ae60a54ce2ab46a023b739b8d
https://github.com/llvm/llvm-project/commit/47347d24f0a9f68ae60a54ce2ab46a023b739b8d
Author: vsimion26 <vlad.simion at intel.com>
Date: 2026-06-02 (Tue, 02 Jun 2026)
Changed paths:
M mlir/include/mlir/Dialect/Quant/IR/QuantTypes.h
M mlir/lib/Dialect/Quant/IR/QuantOps.cpp
M mlir/lib/Dialect/Quant/IR/QuantTypes.cpp
M mlir/lib/Dialect/Quant/IR/TypeDetail.h
M mlir/lib/Dialect/Quant/IR/TypeParser.cpp
A mlir/test/Dialect/Quant/invalid-quantile-types.mlir
M mlir/test/Dialect/Quant/parse-uniform-invalid.mlir
M mlir/test/Dialect/Quant/parse-uniform.mlir
A mlir/test/Dialect/Quant/quantile-types.mlir
Log Message:
-----------
Quantile Type and Low FP Support (#190321)
# **QuantileType: Composing with Interface-Based Storage Types in MLIR
Quantization**
## **Context**
Recent [community
work](https://discourse.llvm.org/t/rfc-extending-uniformquantizedtype-with-interface-based-support-for-new-storage-types-in-quant-dialect/87803)
(RFC by Roman-Pevnyi, Aug 2025)
successfully extended UniformQuantizedType with a StorageTypeInterface.
This
made the quantization framework extensible, allowing new storage types
(Integer, Float8E5M2, Float8E4M3FN, NF4) to be plugged in without
modifying
core quantization logic.
## **Building on that work**
QuantileType follows the same interface-driven philosophy but addresses
a
different level of abstraction: the storage type itself.
The observation: Many low-precision storage types (ui4, si8, f8, NF4)
can be enhanced with a quantile lookup table. Rather than creating a new
complete quantized type for each variant (QuantileQuantizedType,
QuantileQuantizedPerAxisType, etc.), we insert an abstraction layer.
QuantileType is a builtin that wraps any storage type with quantile
metadata:
quantile<ui4:f16, {-1.0, -0.696, ..., 1.0}>
quantile<si8:f32, {-2.0, -1.0, 0.0, 1.0, 2.0}>
quantile<f8E4M3FN:f16, {...}>
This storage abstraction then composes naturally with existing
quantization:
!quant.uniform<quantile<ui4:f16, {...}>:f32, scale:zeropoint>
## **Architecture**
Roman's StorageTypeInterface allows UniformQuantizedType to work with
any
compliant storage type. QuantileType extends this by making it possible
to
augment any storage type WITH quantile information, creating composable
layers:
Builtin QuantileType (unified storage + quantiles)
↓ (implements StorageTypeInterface)
UniformQuantizedType (uniform quantization logic)
↓
Hardware-specific lowering
## **Key benefits**
1. SINGLE INTERFACE FOR ALL QUANTILE SCHEMES
With QuantileType: One parameterized abstraction
quantile<ui4:f16, {nf4_table}>
quantile<ui4:f16, {custom_table}>
All compose with !quant.uniform naturally
[NF4
Type](https://github.com/openvinotoolkit/npu_compiler/blob/90b6098b9ee96055d633dc520354434bae22e336/src/vpux_compiler/include/vpux/compiler/core/types/quantile_float/types.hpp#L62)
& [NF4
Table](https://github.com/openvinotoolkit/npu_compiler/blob/90b6098b9ee96055d633dc520354434bae22e336/src/vpux_compiler/src/core/types/quantile_float/types.cpp#L116-L132)
2. EXTENSIBILITY FOR NEW STORAGE TYPES
When a new low-fp storage type is added (FP3, FPx, etc.),
it automatically works with quantiles:
quantile<fpx:f16, {...}>
No new dialect types needed. The type just implements
StorageTypeInterface
and QuantileType wraps it.
3. CLEAN SEPARATION OF CONCERNS
StorageTypeInterface:
- Defines what storage types must provide (width, signedness, min/max
values)
QuantileType (builtin abstraction):
- Wraps any StorageTypeInterface-compliant type with a lookup table
- Acts as a "storage + quantile mapping" layer
UniformQuantizedType (quantization logic):
- Works with any StorageTypeInterface, including QuantileType
## **Example IR**
In uniform quantization context:
!elem_type = !quant.uniform<quantile<ui4:f16, {-1.0, ..., 1.0}>:f32,
0.01:128>
QuantileType is a natural extension of the StorageTypeInterface
architecture. It:
- Provides a unified abstraction for quantile-enhanced storage
- Avoids type explosion by parameterizing rather than creating variants
- Maintains clean separation between storage concerns and quantization
logic
- Enables portability and reusability across MLIR consumers
Commit: 16853f627616581293a8561b5c00dad33056c75f
https://github.com/llvm/llvm-project/commit/16853f627616581293a8561b5c00dad33056c75f
Author: Timm Baeder <tbaeder at redhat.com>
Date: 2026-06-02 (Tue, 02 Jun 2026)
Changed paths:
M clang/lib/AST/ByteCode/Interp.cpp
M clang/test/AST/ByteCode/records.cpp
Log Message:
-----------
[clang][bytecode] Variadic ctors also start lifetime (#201113)
This is the same thing we do in the non-variadic `Call()`.
Commit: d25f10e8b4a37c2759925883fb59a9da4ea0eb94
https://github.com/llvm/llvm-project/commit/d25f10e8b4a37c2759925883fb59a9da4ea0eb94
Author: Ilia Kuklin <ikuklin at accesssoftek.com>
Date: 2026-06-02 (Tue, 02 Jun 2026)
Changed paths:
M lldb/docs/dil-expr-lang.ebnf
M lldb/include/lldb/ValueObject/DILAST.h
M lldb/include/lldb/ValueObject/DILEval.h
M lldb/include/lldb/ValueObject/DILLexer.h
M lldb/include/lldb/ValueObject/DILParser.h
M lldb/source/ValueObject/DILAST.cpp
M lldb/source/ValueObject/DILEval.cpp
M lldb/source/ValueObject/DILLexer.cpp
M lldb/source/ValueObject/DILParser.cpp
A lldb/test/API/commands/frame/var-dil/expr/Bitwise/Makefile
A lldb/test/API/commands/frame/var-dil/expr/Bitwise/TestFrameVarDILBitwise.py
A lldb/test/API/commands/frame/var-dil/expr/Bitwise/main.cpp
Log Message:
-----------
[lldb] Add bitwise shift operators and fix literals' sign in DIL (#192506)
This patch add bitwise shift operators and fixes the Scalar's sign
inside of the literals with signed types. The only way to test this fix,
for now, is to use these literals in an arithmetic right shift that does
sign extension, so this is included in this patch.
Commit: 720e796af81205c8cc215bf957db8f51d757fc8c
https://github.com/llvm/llvm-project/commit/720e796af81205c8cc215bf957db8f51d757fc8c
Author: Joseph Huber <huberjn at outlook.com>
Date: 2026-06-02 (Tue, 02 Jun 2026)
Changed paths:
M flang-rt/lib/runtime/io-api-server.cpp
Log Message:
-----------
[flang-rt] Fix weak RPC stub on Mac-OS (#200998)
Summary:
This does not work like the ELF extern weak. Attempt to just provide a
weak function that will get overridden if it is linked in.
Commit: c24ae339133c6c893914a823613096f2334bba30
https://github.com/llvm/llvm-project/commit/c24ae339133c6c893914a823613096f2334bba30
Author: Christian Sigg <csigg at google.com>
Date: 2026-06-02 (Tue, 02 Jun 2026)
Changed paths:
M utils/bazel/llvm-project-overlay/lldb/source/Plugins/BUILD.bazel
Log Message:
-----------
[bazel] Port 6180a48 (#201128)
Commit: 384c17f8259d1bad41afb40ada89a763aaa3615f
https://github.com/llvm/llvm-project/commit/384c17f8259d1bad41afb40ada89a763aaa3615f
Author: Tomer Shafir <tomer.shafir8 at gmail.com>
Date: 2026-06-02 (Tue, 02 Jun 2026)
Changed paths:
M llvm/test/TableGen/aarch64-apple-tuning-features.td
Log Message:
-----------
[AArch64] Use awk on aarch64-apple-tuning-features for AIX(NFC) (#200656)
See https://github.com/llvm/llvm-project/pull/197777
Commit: 47abd870986690ed50eab4de59c9dffa56ac24b7
https://github.com/llvm/llvm-project/commit/47abd870986690ed50eab4de59c9dffa56ac24b7
Author: Nikita Popov <npopov at redhat.com>
Date: 2026-06-02 (Tue, 02 Jun 2026)
Changed paths:
M llvm/lib/Analysis/AliasAnalysis.cpp
M llvm/lib/Analysis/CaptureTracking.cpp
M llvm/test/Transforms/FunctionAttrs/writeonly.ll
Log Message:
-----------
[CaptureTracking] Don't require offset to stay the same (#201106)
For isIntrinsicReturningPointerAliasingArgumentWithoutCapturing() we
don't need the offset to stay the same. Even if the intrinsic applies an
offset to the pointer (like ptrmask), we can still continue by analyzing
the return value of the intrinsic, rather than considering the intrinsic
itself capturing.
Also clarify that this needs to stay in sync with isEscapeSource()
specifically, not getUnderlyingObject() or DecomposeGEP (which isn't
even possible, as they use different values for the argument). This used
to be different historically.
This was set to true in fd72bf21c958ae2fdfaa8654df55367c72575d3a, which
set all users to true, so I don't believe there was a specific reason
for this choice.
I ran into this when trying to replace some home-grown code in
FunctionAttrs with CaptureTracking.
Commit: 4d5a79542cef700f8201f113f370f35054a4e7d9
https://github.com/llvm/llvm-project/commit/4d5a79542cef700f8201f113f370f35054a4e7d9
Author: Christian Sigg <csigg at google.com>
Date: 2026-06-02 (Tue, 02 Jun 2026)
Changed paths:
M utils/bazel/llvm-project-overlay/libc/BUILD.bazel
Log Message:
-----------
[bazel] Port 3db25f8 (#201131)
Commit: 68883a8b839f3f7f2adbae7a0e2dda3a0dd6b301
https://github.com/llvm/llvm-project/commit/68883a8b839f3f7f2adbae7a0e2dda3a0dd6b301
Author: Christian Sigg <csigg at google.com>
Date: 2026-06-02 (Tue, 02 Jun 2026)
Changed paths:
M utils/bazel/llvm-project-overlay/libc/BUILD.bazel
Log Message:
-----------
[bazel] Port 3db25f8 (#201132)
Commit: 06978156c7ba8a8c8aca60033ea65c8335cca24c
https://github.com/llvm/llvm-project/commit/06978156c7ba8a8c8aca60033ea65c8335cca24c
Author: Kelvin Li <kli at ca.ibm.com>
Date: 2026-06-02 (Tue, 02 Jun 2026)
Changed paths:
M flang/lib/Lower/OpenMP/Atomic.cpp
Log Message:
-----------
[flang] Fix possibly unused variable (NFC) (#200905)
Commit: 5d9e965c3f9983278308a00c282810e0f04754cc
https://github.com/llvm/llvm-project/commit/5d9e965c3f9983278308a00c282810e0f04754cc
Author: Timm Baeder <tbaeder at redhat.com>
Date: 2026-06-02 (Tue, 02 Jun 2026)
Changed paths:
M clang/lib/AST/ByteCode/Compiler.cpp
M clang/lib/AST/ExprConstant.cpp
M clang/test/Sema/constexpr.c
Log Message:
-----------
[clang][ExprConst] Support DesignatedInitUpdateExpr of array type (#201000)
I think this should work.
Commit: ade0e1a49c2118a98b0b34b3136661747bc5aaa0
https://github.com/llvm/llvm-project/commit/ade0e1a49c2118a98b0b34b3136661747bc5aaa0
Author: Andrzej Warzyński <andrzej.warzynski at arm.com>
Date: 2026-06-02 (Tue, 02 Jun 2026)
Changed paths:
M clang/lib/CIR/Dialect/IR/CIRDialect.cpp
M clang/test/CIR/IR/invalid-cast.cir
M clang/test/CIR/Lowering/cast.cir
Log Message:
-----------
[cir] Refine cir::CastOp semantics for int <-> float casts (#200005)
Int-to-float and float-to-int casts in cir::CastOp are lowered directly
to their LLVM equivalents. Update the verifier to reflect this semantics
and ensure that, for vector casts, the source and destination vectors have
the same length.
This lets the CIR verifier reject invalid casts earlier, instead of relying
on errors reported later at the LLVM IR level.
Commit: 8f58a4cab3a7eccad53797a49e16f8a933d149b1
https://github.com/llvm/llvm-project/commit/8f58a4cab3a7eccad53797a49e16f8a933d149b1
Author: Jeremy Kun <jkun at google.com>
Date: 2026-06-02 (Tue, 02 Jun 2026)
Changed paths:
M mlir/include/mlir/Dialect/EmitC/IR/EmitC.td
M mlir/lib/Dialect/EmitC/IR/EmitC.cpp
M mlir/lib/Target/Cpp/TranslateToCpp.cpp
M mlir/test/Conversion/MemRefToEmitC/memref-to-emitc-alloc-copy.mlir
M mlir/test/Conversion/MemRefToEmitC/memref-to-emitc-alloc-dealloc.mlir
M mlir/test/Conversion/MemRefToEmitC/memref-to-emitc-alloc-load-store.mlir
M mlir/test/Conversion/MemRefToEmitC/memref-to-emitc-copy.mlir
M mlir/test/Dialect/EmitC/attrs.mlir
M mlir/test/Dialect/EmitC/invalid_ops.mlir
A mlir/test/Dialect/EmitC/member_call_opaque.mlir
M mlir/test/Dialect/EmitC/ops.mlir
M mlir/test/Target/Cpp/call.mlir
M mlir/test/Target/Cpp/expressions.mlir
Log Message:
-----------
[mlir][emitc]: Add MemberCallOpaque op (#200057)
Cf. https://discourse.llvm.org/t/method-calls-in-emitc/90898
Commit: 87b97d67d401938086edc0602f55fe284bffc24d
https://github.com/llvm/llvm-project/commit/87b97d67d401938086edc0602f55fe284bffc24d
Author: David Spickett <david.spickett at arm.com>
Date: 2026-06-02 (Tue, 02 Jun 2026)
Changed paths:
M clang-tools-extra/docs/conf.py
Log Message:
-----------
[clang-tools-extra][docs] Do not require myst_parser when building man pages (#201138)
Commit: afd040cb4624c7c7f843367751e22d50b39250f5
https://github.com/llvm/llvm-project/commit/afd040cb4624c7c7f843367751e22d50b39250f5
Author: Jan Patrick Lehr <JanPatrick.Lehr at amd.com>
Date: 2026-06-02 (Tue, 02 Jun 2026)
Changed paths:
M openmp/tools/archer/ompt-tsan.cpp
Log Message:
-----------
[OpenMP][OMPT] Remove unused var in archer (#201140)
Working on enabling the build of OpenMP and Offload in pre-merge checks
surfaced this unused var and pre-merge checks run with -Werror.
As I did not see where it should be used, remove the variable to address
the warning.
The pre-merge running into the warning as error is
https://github.com/llvm/llvm-project/actions/runs/26826349862/job/79094823845?pr=174955
Commit: 8dd51399f8a9f13cbe35fb2060f05bd30acfb6f8
https://github.com/llvm/llvm-project/commit/8dd51399f8a9f13cbe35fb2060f05bd30acfb6f8
Author: Felipe de Azevedo Piovezan <fpiovezan at apple.com>
Date: 2026-06-02 (Tue, 02 Jun 2026)
Changed paths:
M lldb/include/lldb/Target/Memory.h
M lldb/source/Target/Memory.cpp
Log Message:
-----------
[lldb][NFC] Factor out helper code from MemoryCache (#201120)
This will be reused in a subsequent commit.
Commit: f813817e3495c5ab8e0dd7d3c471e531d83a630a
https://github.com/llvm/llvm-project/commit/f813817e3495c5ab8e0dd7d3c471e531d83a630a
Author: Arseniy Obolenskiy <arseniy.obolenskiy at amd.com>
Date: 2026-06-02 (Tue, 02 Jun 2026)
Changed paths:
M llvm/lib/Target/SPIRV/SPIRVBuiltins.cpp
A llvm/test/CodeGen/SPIRV/transcoding/OpenCL/convert_signedness.ll
Log Message:
-----------
[SPIR-V] Select int-to-int convert opcode from source signedness (#201116)
OpSConvert/OpUConvert sext/zext is determined by the source operand, not
the destination type. Discovered in
https://github.com/llvm/llvm-project/pull/200791/changes#r3341230426
Fix a regression caused by #200791
Commit: 6bcdd843e302063c4f0d36204686155149a6bb0a
https://github.com/llvm/llvm-project/commit/6bcdd843e302063c4f0d36204686155149a6bb0a
Author: Paweł Bylica <pawel at hepcolgum.band>
Date: 2026-06-02 (Tue, 02 Jun 2026)
Changed paths:
M llvm/lib/Target/X86/X86ISelLowering.cpp
M llvm/lib/Target/X86/X86InstrCompiler.td
M llvm/lib/Target/X86/X86InstrFragments.td
M llvm/test/CodeGen/X86/bittest-big-integer.ll
A llvm/test/CodeGen/X86/bt-merge-fuse.ll
Log Message:
-----------
[X86] Merge BT with a matching BTR/BTS/BTC (#193612)
Fixes #165291.
BTR/BTS/BTC set CF from the pre-operation bit value, so a subsequent BT
on the same source and bit index produces the same CF and is redundant.
We were emitting both.
```ll
define i1 @btr_eq_i32(ptr %word, i32 %position) nounwind {
%ofs = and i32 %position, 31
%bit = shl nuw i32 1, %ofs
%mask = xor i32 %bit, -1
%ld = load i32, ptr %word
%test = and i32 %ld, %bit
%res = and i32 %ld, %mask
%cmp = icmp eq i32 %test, 0
store i32 %res, ptr %word
ret i1 %cmp
}
```
Before:
```asm
movl (%rdi), %eax
movl %eax, %ecx
btrl %esi, %ecx
btl %esi, %eax
setae %al
movl %ecx, (%rdi)
retq
```
After:
```asm
movl (%rdi), %ecx
btrl %esi, %ecx
setae %al
movl %ecx, (%rdi)
retq
```
## Approach
- Add three flag-producing DAG nodes `X86ISD::{BTR,BTS,BTC}` that model
the register-register BTR/BTS/BTC as `(res, EFLAGS) = op src, bitno`.
- Pattern-match them to the existing BTR/BTS/BTC *rr encodings.
- Add a DAG combine in `combineBT` that fuses an `X86ISD::BT` with a
sibling `AND(Src, rotl -2, X)` / `OR(Src, shl 1, X)` / `XOR(Src, shl 1,
X)` on the same source into a single flag-producing node. The
bit-position operand can differ from BT's by trunc/zext or by an `and x,
C` that preserves the low `log2(BW)` bits (BT already masks those
implicitly), so peek through those wrappers when matching.
`llvm/test/CodeGen/X86/bittest-big-integer.ll` was regenerated and
shrinks by 78 CHECK lines; dozens of `btl` instructions collapsed into
the preceding bit-modify. All 5442 X86 CodeGen tests pass.
Commit: d81e8afe7a51005f5fa58cf4b25ccfdb41f685b1
https://github.com/llvm/llvm-project/commit/d81e8afe7a51005f5fa58cf4b25ccfdb41f685b1
Author: xgxanq <anqfu at amd.com>
Date: 2026-06-02 (Tue, 02 Jun 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/GCNSchedStrategy.cpp
M llvm/lib/Target/AMDGPU/GCNSchedStrategy.h
A llvm/test/CodeGen/AMDGPU/rewrite-mfma-form-spill-cost-reset.ll
Log Message:
-----------
[AMDGPU] RewriteMFMAFormStage: fix SpillCost early-return missing reset (#199708)
Extract resetRewriteCandsToVGPR() to consolidate the logic that restores
MFMA candidates from AGPR form back to VGPR form after cost analysis.
getRewriteCost() returned early when SpillCost > 0 without resetting the
AGPR-form register classes set by initHeuristics(), leaving MRI in a
corrupted state. Call resetRewriteCandsToVGPR() on both the early-return
path and the normal exit path to fix this.
Also change getRewriteCost() and rewrite() to take ArrayRef instead of
const std::vector& for cleaner API.
---------
Co-authored-by: Claude Sonnet 4 (1M context) <noreply at anthropic.com>
Commit: e8f518d6613b950958618db9466a5936d844ff26
https://github.com/llvm/llvm-project/commit/e8f518d6613b950958618db9466a5936d844ff26
Author: Sean Clarke <seanedwardsclarke at gmail.com>
Date: 2026-06-02 (Tue, 02 Jun 2026)
Changed paths:
M llvm/include/llvm/Analysis/VectorUtils.h
M llvm/include/llvm/IR/PatternMatch.h
M llvm/lib/Analysis/InstructionSimplify.cpp
M llvm/lib/Analysis/VectorUtils.cpp
M llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp
M llvm/test/Transforms/InstCombine/masked_intrinsics-inseltpoison.ll
M llvm/test/Transforms/InstCombine/masked_intrinsics.ll
M llvm/test/Transforms/InstCombine/pr83947.ll
M llvm/test/Transforms/InstSimplify/call.ll
Log Message:
-----------
[VectorUtils] Replace maskIsAll{Zero,One}OrUndef with PatternMatch (#200040)
As part of the ongoing effort to deprecate UndefValue, and also to take
better advantage of pattern matching, eliminate the VectorUtils
functions `maskIsAllZeroOrUndef`/`maskIsAllOneOrUndef` and replace them
with new matchers `m_ZeroOrPoison` and `m_AllOnesOrPoison`.
The new matchers are simply `m_CombineOr` on `m_Zero`/`m_AllOnes` and
`m_Poison`. `m_Zero` and `m_AllOnes` already match vectors where some
(but not all) elements are poison, so these matchers were created to
also match the case where all elements are poison.
This affects InstCombine/InstSimplify with a mask containing `undef` for
the intrinsics `llvm.masked.load`, `llvm.masked.store`,
`llvm.masked.gather`, and `llvm.masked.scatter`.
Some relevant tests were altered to use poison instead of undef, and
test coverage for masked loads/stores with poison was increased.
Commit: f834b7f55feb37191405bf28cca52f53f4c1873f
https://github.com/llvm/llvm-project/commit/f834b7f55feb37191405bf28cca52f53f4c1873f
Author: Alex Duran <alejandro.duran at intel.com>
Date: 2026-06-02 (Tue, 02 Jun 2026)
Changed paths:
M offload/plugins-nextgen/level_zero/include/L0CmdListManager.h
M offload/plugins-nextgen/level_zero/include/L0Queue.h
M offload/plugins-nextgen/level_zero/src/L0Device.cpp
M offload/plugins-nextgen/level_zero/src/L0Queue.cpp
Log Message:
-----------
[OFFLOAD][L0] Move dataFence logic to L0Queue (#201046)
The dataFence device operation logic was still on L0Device. With this all the operations working on command lists have their logic consolidated in L0Queue.
Commit: 3dfd4f784d7d0837252482f28ed2c0ca99a109b0
https://github.com/llvm/llvm-project/commit/3dfd4f784d7d0837252482f28ed2c0ca99a109b0
Author: Utkarsh Saxena <usx at google.com>
Date: 2026-06-02 (Tue, 02 Jun 2026)
Changed paths:
M clang/include/clang/Analysis/Analyses/LifetimeSafety/LoanPropagation.h
M clang/lib/Analysis/LifetimeSafety/LoanPropagation.cpp
M clang/unittests/Analysis/LifetimeSafetyTest.cpp
Log Message:
-----------
[LifetimeSafety] Refactor buildOriginFlowChain to use PImpl pattern (#201071)
Move `buildOriginFlowChain` into `AnalysisImpl`, removing `FactManager`
parameter
Commit: b54d214b77aac2bab9b949bb4bdd3cc511fbe944
https://github.com/llvm/llvm-project/commit/b54d214b77aac2bab9b949bb4bdd3cc511fbe944
Author: Paul Kirth <paulkirth at google.com>
Date: 2026-06-02 (Tue, 02 Jun 2026)
Changed paths:
M llvm/lib/Target/RISCV/AsmParser/RISCVAsmParser.cpp
M llvm/test/MC/RISCV/rvi-pseudos.s
Log Message:
-----------
[llvm][RISCV][MC] Fix arithmetic error in pseudo parsing (#200217)
When arithmetic was used in RISCV pseudo instructions, like lla, the
custom parsing breaks the associativity of the operators by parsing the
entire remainder of an expression. This would lead to scenarios where we
would parse `top - 0x100 -0x10` as `top - (0x100 -0x10)` and yield the
wrong offset (`0xF0`(wrong) vs. `0x110`(correct)).
Instead, don't advance the parser and just examine the token to
determine if it's an identifier and if we should handle this case or
bail out. In cases we do handle, just use `parseExpression()`, which
will handle this correctly.
Commit: 0212229ac05d60314db7dfb8ae89c11a015bb7bc
https://github.com/llvm/llvm-project/commit/0212229ac05d60314db7dfb8ae89c11a015bb7bc
Author: Charles Zablit <c_zablit at apple.com>
Date: 2026-06-02 (Tue, 02 Jun 2026)
Changed paths:
M .ci/green-dragon/lldb-windows.groovy
Log Message:
-----------
[CI] install packaging before running lldb tests on Windows (#201112)
https://ci-external.swift.org/job/lldb-windows/job/main/ is failing
because lldb API tests require the `packaging` module.
This patch installs it before running the `check-lldb` target.
Commit: 63a1b9d6386cb574e3007f7b6174eb6777916815
https://github.com/llvm/llvm-project/commit/63a1b9d6386cb574e3007f7b6174eb6777916815
Author: Benjamin Maxwell <benjamin.maxwell at arm.com>
Date: 2026-06-02 (Tue, 02 Jun 2026)
Changed paths:
M llvm/lib/Target/AArch64/AArch64InstrInfo.cpp
M llvm/test/CodeGen/AArch64/sve-ldst-multi-vec.mir
Log Message:
-----------
[AArch64][SME] Add multi-vector store/load opcodes to getMemOpInfo (#201073)
Follow-up to #200238
Commit: 9083fb24c709238b1f18f0486bcf014e490e1997
https://github.com/llvm/llvm-project/commit/9083fb24c709238b1f18f0486bcf014e490e1997
Author: Lukacma <Marian.Lukac at arm.com>
Date: 2026-06-02 (Tue, 02 Jun 2026)
Changed paths:
M lldb/test/API/commands/register/aarch64_dynamic_regset/main.c
M lldb/test/API/commands/register/aarch64_sve_registers/rw_access_static_config/main.c
M llvm/lib/Target/AArch64/AArch64ISelDAGToDAG.cpp
M llvm/lib/Target/AArch64/AArch64InstrFormats.td
M llvm/lib/Target/AArch64/AArch64InstrInfo.td
M llvm/lib/Target/AArch64/AArch64SMEInstrInfo.td
M llvm/lib/Target/AArch64/AArch64SystemOperands.td
M llvm/lib/Target/AArch64/Utils/AArch64BaseInfo.cpp
M llvm/test/CodeGen/AArch64/aarch64-sme-za-call-lowering.ll
M llvm/test/CodeGen/AArch64/aarch64-sysreg128.ll
R llvm/test/CodeGen/AArch64/arm64-invalid-sys-reg.ll
A llvm/test/CodeGen/AArch64/arm64-named-reg-notareg.ll
M llvm/test/CodeGen/AArch64/expand-sme-pseudos.mir
M llvm/test/CodeGen/AArch64/machine-sme-abi-find-insert-pt.mir
M llvm/test/CodeGen/AArch64/machine-sme-abi-skip-debug-inst.mir
M llvm/test/CodeGen/AArch64/sme-abi-eh-liveins.mir
M llvm/test/CodeGen/AArch64/sme-lazy-sve-nzcv-live.mir
M llvm/test/CodeGen/AArch64/special-reg.ll
M llvm/test/MC/AArch64/arm64-system-encoding.s
M llvm/test/MC/AArch64/armv9-mrrs-diagnostics.s
M llvm/test/MC/AArch64/armv9-mrrs.s
M llvm/test/MC/AArch64/armv9-msrr-diagnostics.s
M llvm/test/MC/AArch64/armv9-msrr.s
M llvm/test/MC/AArch64/basic-a64-instructions.s
M llvm/test/MC/Disassembler/AArch64/armv8.2a-uao.txt
M llvm/test/MC/Disassembler/AArch64/armv8.4a-dit.txt
M llvm/test/MC/Disassembler/AArch64/armv8.5a-dataproc.txt
M llvm/test/MC/Disassembler/AArch64/armv8.5a-mte.txt
M llvm/test/MC/Disassembler/AArch64/armv8.5a-sb.txt
M llvm/test/MC/Disassembler/AArch64/armv8.5a-ssbs.txt
M llvm/test/MC/Disassembler/AArch64/armv8.7a-wfxt.txt
M llvm/test/MC/Disassembler/AArch64/armv8.7a-xs.txt
M llvm/test/MC/Disassembler/AArch64/armv8.8a-nmi.txt
M llvm/test/MC/Disassembler/AArch64/basic-a64-instructions.txt
Log Message:
-----------
Revert "[AArch64] Fix definition of system register move instructions" (#201137)
Reverts llvm/llvm-project#185709
Commit: 516867bc96ae3e3a40b296f038d24ee53cf0f5c0
https://github.com/llvm/llvm-project/commit/516867bc96ae3e3a40b296f038d24ee53cf0f5c0
Author: Henry Jiang <henry_jiang2 at apple.com>
Date: 2026-06-02 (Tue, 02 Jun 2026)
Changed paths:
M llvm/lib/CodeGen/PseudoProbeInserter.cpp
A llvm/test/CodeGen/AArch64/aarch64-pseudo-probe-tail-call.ll
A llvm/test/CodeGen/X86/pseudo-probe-tail-call.ll
Log Message:
-----------
[PseudoProbe] Preserve pseudoprobe for tailcall pseudo instrs (#197246)
Preserve probes for tail call pseudo instructions.
On AArch64, X86, and other platforms, the lowering of tail calls
requires a pseudo instruction like `TCRETURNdi`. It is often the case
that `TCRETURNdi` is within its own MBB, and the direct call probe
associated with that tail call is considered dangling and removed. This
patch tries to preserve that.
Commit: cf25fb1e0809aaf4dbb13f2b837d47e329f595b8
https://github.com/llvm/llvm-project/commit/cf25fb1e0809aaf4dbb13f2b837d47e329f595b8
Author: Abid Qadeer <haqadeer at amd.com>
Date: 2026-06-02 (Tue, 02 Jun 2026)
Changed paths:
M flang/lib/Semantics/check-omp-metadirective.cpp
M flang/lib/Semantics/check-omp-structure.cpp
M flang/lib/Semantics/check-omp-structure.h
A flang/test/Semantics/OpenMP/declare-variant-match.f90
M flang/test/Semantics/OpenMP/declare-variant.f90
Log Message:
-----------
[flang][OpenMP] Add structure checks for DECLARE VARIANT (#198799)
This PR adds declare-variant structure checking. Following checks are
added:
- Validate [base:]variant arguments (including implicit base for
single-name form).
- Require exactly one MATCH clause; reject a second MATCH on the same
directive.
- Reject duplicate (base, variant) across multiple declare variant
directives.
- Reject clauses not allowed on declare variant.
- Apply shared context-selector checks to MATCH (reuse metadirective
logic).
- Require constant user conditions in MATCH for declare variant (dynamic
selectors deferred).
Refactor metadirective support:
- Extract CheckContextSelectorSpecification for reuse.
- Reject SCORE on trait sets that do not allow it (also affects
metadirective).
Co-authored-by: Cursor <cursoragent at cursor.com>
Commit: 9f790fcc1f09ce4237801a7bb357d31a4c6050fb
https://github.com/llvm/llvm-project/commit/9f790fcc1f09ce4237801a7bb357d31a4c6050fb
Author: Arseniy Obolenskiy <arseniy.obolenskiy at amd.com>
Date: 2026-06-02 (Tue, 02 Jun 2026)
Changed paths:
M llvm/lib/Target/SPIRV/SPIRVBuiltins.cpp
M llvm/test/CodeGen/SPIRV/transcoding/enqueue_kernel.ll
Log Message:
-----------
[SPIR-V] Fix i8 pointer type for NULL events in OpEnqueueKernel (#201125)
Commit: 7b199bdb2fe3d852684fab77bfdd3141dbc987f9
https://github.com/llvm/llvm-project/commit/7b199bdb2fe3d852684fab77bfdd3141dbc987f9
Author: Dave Lee <davelee.com at gmail.com>
Date: 2026-06-02 (Tue, 02 Jun 2026)
Changed paths:
M lldb/include/lldb/Symbol/Symbol.h
Log Message:
-----------
[lldb] Fix Symbol static_assert for 32 bit Windows (#201130)
Follow up to
https://github.com/llvm/llvm-project/pull/200919#issuecomment-4600914496
Commit: 22ef7baaf6dc409a353af42ff52599b2746107ca
https://github.com/llvm/llvm-project/commit/22ef7baaf6dc409a353af42ff52599b2746107ca
Author: Jake Daly <48452250+jakemdaly at users.noreply.github.com>
Date: 2026-06-02 (Tue, 02 Jun 2026)
Changed paths:
M clang/include/clang/Basic/DiagnosticIDs.h
Log Message:
-----------
[clang][NFC] Bump the maximum number of Sema diagnostics (#200948)
The number of Sema diagnostics in DiagnosticSemaKinds.td has reached the
5000 limit. This PR increases the max limit to 6000.
Commit: af5506c5c12d73439a9fc6f1951caf1cbde183cc
https://github.com/llvm/llvm-project/commit/af5506c5c12d73439a9fc6f1951caf1cbde183cc
Author: Petr Hosek <phosek at google.com>
Date: 2026-06-02 (Tue, 02 Jun 2026)
Changed paths:
M llvm/lib/Target/RISCV/RISCVFrameLowering.cpp
M llvm/lib/Target/RISCV/RISCVRegisterInfo.cpp
M llvm/test/CodeGen/RISCV/GlobalISel/vararg.ll
M llvm/test/CodeGen/RISCV/callee-saved-gprs.ll
M llvm/test/CodeGen/RISCV/calling-conv-ilp32-ilp32f-common.ll
M llvm/test/CodeGen/RISCV/calling-conv-ilp32-ilp32f-ilp32d-common.ll
M llvm/test/CodeGen/RISCV/calling-conv-ilp32.ll
M llvm/test/CodeGen/RISCV/calling-conv-ilp32e.ll
M llvm/test/CodeGen/RISCV/calling-conv-lp64.ll
M llvm/test/CodeGen/RISCV/emit-x8-as-fp.ll
M llvm/test/CodeGen/RISCV/frame.ll
M llvm/test/CodeGen/RISCV/frameaddr-returnaddr.ll
M llvm/test/CodeGen/RISCV/ipra.ll
M llvm/test/CodeGen/RISCV/large-stack.ll
M llvm/test/CodeGen/RISCV/local-stack-slot-allocation.ll
M llvm/test/CodeGen/RISCV/push-pop-popret.ll
M llvm/test/CodeGen/RISCV/qci-interrupt-attr.ll
M llvm/test/CodeGen/RISCV/rv64-statepoint-call-lowering-x2.ll
M llvm/test/CodeGen/RISCV/rvv/callee-saved-regs.ll
M llvm/test/CodeGen/RISCV/rvv/stack-probing-dynamic.ll
M llvm/test/CodeGen/RISCV/vararg-ilp32e.ll
M llvm/test/CodeGen/RISCV/vararg.ll
M llvm/test/CodeGen/RISCV/xqccmp-callee-saved-gprs.ll
M llvm/test/CodeGen/RISCV/xqccmp-push-pop-popret.ll
M llvm/test/DebugInfo/RISCV/relax_dwo_ranges.ll
Log Message:
-----------
Revert "[RISCV] Prefer SP over FP for frame index access when offset fits within compressed immediate range. (#193962)" (#201041)
This reverts commits:
* 46e07d38e078799fa83386ef2b3b5ee423a467c5
* b5d577d3faef34276991fe80b5f869e3f8ef7442
This change is causing a miscompile in zstd, see the discussion under
https://github.com/llvm/llvm-project/pull/193962 for more details.
Commit: a6615588ac141ca87c4197f3484e80cb88899cee
https://github.com/llvm/llvm-project/commit/a6615588ac141ca87c4197f3484e80cb88899cee
Author: Jeffrey Byrnes <jeffrey.byrnes at amd.com>
Date: 2026-06-02 (Tue, 02 Jun 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPUCoExecSchedStrategy.cpp
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.sched.group.barrier.gfx12.ll
Log Message:
-----------
[AMDGPU] Add IGLP mutations to CoexecSched (#200981)
Adds IGLP mutations support to CoexecSched -- regular handling of this
mutation in GCNSchedStage is implemented in GCNSchedStrategy.cpp
Commit: b65054f66b0a0d62c1a5fe0b3d7749696058d1c8
https://github.com/llvm/llvm-project/commit/b65054f66b0a0d62c1a5fe0b3d7749696058d1c8
Author: Arthur Eubanks <aeubanks at google.com>
Date: 2026-06-02 (Tue, 02 Jun 2026)
Changed paths:
A llvm/include/llvm/Transforms/Utils/TriggerCrashPass.h
M llvm/lib/CodeGen/TargetPassConfig.cpp
M llvm/lib/Passes/PassBuilder.cpp
M llvm/lib/Passes/PassBuilderPipelines.cpp
M llvm/lib/Transforms/Utils/CMakeLists.txt
A llvm/lib/Transforms/Utils/TriggerCrashPass.cpp
A llvm/test/Other/trigger-crash-flags.ll
M llvm/utils/gn/secondary/llvm/lib/Transforms/Utils/BUILD.gn
Log Message:
-----------
Reland [LLVM] Add flags to crash the opt/codegen pipeline (#201146)
Will be used for testing crash reduction.
Reland of #200967. Test needs `REQUIRES: backtrace`.
Commit: 836bf567e622a2e083a0c850b861b450fc97b915
https://github.com/llvm/llvm-project/commit/836bf567e622a2e083a0c850b861b450fc97b915
Author: Fangrui Song <i at maskray.me>
Date: 2026-06-02 (Tue, 02 Jun 2026)
Changed paths:
M llvm/include/llvm/ADT/APFixedPoint.h
M llvm/include/llvm/ADT/APInt.h
M llvm/include/llvm/ADT/APSInt.h
M llvm/include/llvm/ADT/ArrayRef.h
M llvm/include/llvm/ADT/BitVector.h
M llvm/include/llvm/ADT/CachedHashString.h
M llvm/include/llvm/ADT/DenseMapInfo.h
M llvm/include/llvm/ADT/DenseMapInfoVariant.h
M llvm/include/llvm/ADT/Hashing.h
M llvm/include/llvm/ADT/ImmutableList.h
M llvm/include/llvm/ADT/PointerEmbeddedInt.h
M llvm/include/llvm/ADT/PointerIntPair.h
M llvm/include/llvm/ADT/PointerSumType.h
M llvm/include/llvm/ADT/PointerUnion.h
M llvm/include/llvm/ADT/SmallBitVector.h
M llvm/include/llvm/ADT/SmallVector.h
M llvm/include/llvm/ADT/StringRef.h
M llvm/include/llvm/Support/FileSystem/UniqueID.h
M llvm/include/llvm/Support/TypeSize.h
M llvm/include/llvm/Support/UniqueBBID.h
M llvm/include/llvm/Support/VersionTuple.h
M llvm/lib/Support/StringRef.cpp
M llvm/unittests/ADT/DenseMapTest.cpp
M llvm/unittests/ADT/DenseSetTest.cpp
M llvm/unittests/ADT/MapVectorTest.cpp
M llvm/unittests/Support/ReverseIterationTest.cpp
Log Message:
-----------
[ADT] Remove unused DenseMapInfo::getTombstoneKey (#200959)
#200595 changed DenseMap to no longer create tombstone buckets, so
DenseMapInfo<T>::getTombstoneKey() is never called. Remove dead
definitions and dead tombstone branches.
Commit: e3bc0828d8562468161d64e86a2fb06d39ca8d6f
https://github.com/llvm/llvm-project/commit/e3bc0828d8562468161d64e86a2fb06d39ca8d6f
Author: David Tenty <daltenty at ibm.com>
Date: 2026-06-02 (Tue, 02 Jun 2026)
Changed paths:
M llvm/lib/Target/PowerPC/PPCTargetMachine.cpp
A llvm/test/CodeGen/PowerPC/aix-codemodel.ll
M llvm/test/CodeGen/PowerPC/ppc-i128-cmp.ll
Log Message:
-----------
[AIX][LLVM] Update the default code model for 64-bit (#199301)
This changes the default code model on 64-bit AIX to large.
For many applications, the existing small code model is simply
inadequate to build. Users often then end up relying on expensive linker
fixups (i.e. -Wl,-bigtoc) to work around the issue when they would have
been better served by moving to the larger code model. Our analysis and
benchmarking leads us to believe this's generally a net benefit to
users.
(Assisted by AI)
Commit: 824fc060d46abbeda94c9a787ef94a81fbf12230
https://github.com/llvm/llvm-project/commit/824fc060d46abbeda94c9a787ef94a81fbf12230
Author: agozillon <Andrew.Gozillon at amd.com>
Date: 2026-06-02 (Tue, 02 Jun 2026)
Changed paths:
M mlir/lib/Target/LLVMIR/Dialect/OpenMP/OpenMPToLLVMIRTranslation.cpp
A mlir/test/Target/LLVMIR/omptarget-declare-target-llvm-device-2.mlir
Log Message:
-----------
[Flang][OpenMP] Declare Target fixes for USM and declare target to (#200248)
Currently declare target enter would fall through the if statement even
though it's a synonym of declare target to, so fix this via adding a
simpler and more readable check for link clause instead.
USM declare target to works a little differently to regular link cases,
where the type is actually converted into a pointer, rather than a
global of the original typing. So, add a caveat where we convert the
type to a pointer if requires usm has been triggered. This gets the
correct behaviour in USM mode on USM devices.
Commit: 4e3dd548ac39c20ede16b98a7d2bb80b45c417e5
https://github.com/llvm/llvm-project/commit/4e3dd548ac39c20ede16b98a7d2bb80b45c417e5
Author: ShengYi Hung <aokblast at FreeBSD.org>
Date: 2026-06-04 (Thu, 04 Jun 2026)
Changed paths:
M .ci/green-dragon/lldb-windows.groovy
M .clang-format-ignore
M .github/CODEOWNERS
M .github/actions/push-container/action.yml
M .github/new-issues-labeler.yml
M .github/workflows/build-ci-container-windows.yml
M .github/workflows/ci-post-commit-analyzer.yml
M .github/workflows/docs.yml
M .github/workflows/hlsl-test-all.yaml
M .github/workflows/issue-release-workflow.yml
M .github/workflows/issue-write.yml
M .github/workflows/libc-fullbuild-tests.yml
M .github/workflows/libc-overlay-tests.yml
M .github/workflows/libc-shared-tests.yml
M .github/workflows/libclang-abi-tests.yml
M .github/workflows/libcxx-run-benchmarks.yml
M .github/workflows/llvm-abi-tests.yml
M .github/workflows/pr-code-lint.yml
M .github/workflows/premerge.yaml
M .github/workflows/release-binaries-all.yml
M .github/workflows/release-binaries.yml
M .github/workflows/release-documentation.yml
M .github/workflows/release-doxygen.yml
M .github/workflows/release-sources.yml
M .github/workflows/release-tasks.yml
R .github/workflows/require-release-manager/action.yml
A .github/workflows/require-team-membership/action.yml
M .github/workflows/sycl-tests.yml
M .github/workflows/unprivileged-download-artifact/action.yml
M .github/workflows/upload-release-artifact/action.yml
M bolt/docs/profiles.md
M bolt/include/bolt/Core/DIEBuilder.h
M bolt/include/bolt/Core/DebugNames.h
M bolt/include/bolt/Core/MCPlusBuilder.h
M bolt/include/bolt/Passes/DataflowAnalysis.h
M bolt/include/bolt/Passes/SplitFunctions.h
M bolt/include/bolt/Profile/DataAggregator.h
M bolt/include/bolt/Profile/DataReader.h
M bolt/include/bolt/Utils/CommandLineOpts.h
M bolt/lib/Core/BinaryFunction.cpp
M bolt/lib/Core/DIEBuilder.cpp
M bolt/lib/Core/DebugNames.cpp
M bolt/lib/Passes/VeneerElimination.cpp
M bolt/lib/Profile/DataAggregator.cpp
M bolt/lib/Profile/DataReader.cpp
M bolt/lib/Rewrite/DWARFRewriter.cpp
M bolt/lib/Rewrite/RewriteInstance.cpp
M bolt/lib/Target/AArch64/AArch64MCPlusBuilder.cpp
M bolt/lib/Utils/CommandLineOpts.cpp
A bolt/test/AArch64/veneer-erratum-843419.s
M bolt/test/X86/nolbr.s
M bolt/test/X86/pre-aggregated-perf.test
M bolt/test/lit.cfg.py
A bolt/test/merge-fdata-no-lbr-event-multi.test
A bolt/test/merge-fdata-no-lbr-event.test
M bolt/test/perf2bolt/lit.local.cfg
A bolt/test/perf2bolt/perf_brstack.test
M bolt/test/perf2bolt/perf_test.test
M bolt/tools/driver/llvm-bolt.cpp
M bolt/tools/heatmap/heatmap.cpp
M bolt/tools/merge-fdata/merge-fdata.cpp
A clang-tools-extra/Maintainers.md
R clang-tools-extra/Maintainers.rst
M clang-tools-extra/clang-doc/BitcodeWriter.cpp
M clang-tools-extra/clang-doc/JSONGenerator.cpp
M clang-tools-extra/clang-doc/Representation.cpp
M clang-tools-extra/clang-doc/Representation.h
M clang-tools-extra/clang-doc/Serialize.cpp
M clang-tools-extra/clang-doc/YAMLGenerator.cpp
M clang-tools-extra/clang-doc/assets/namespace-template.mustache
M clang-tools-extra/clang-doc/tool/ClangDocMain.cpp
M clang-tools-extra/clang-tidy/bugprone/BugproneTidyModule.cpp
M clang-tools-extra/clang-tidy/bugprone/CMakeLists.txt
A clang-tools-extra/clang-tidy/bugprone/MissingEndComparisonCheck.cpp
A clang-tools-extra/clang-tidy/bugprone/MissingEndComparisonCheck.h
M clang-tools-extra/clang-tidy/bugprone/UseAfterMoveCheck.cpp
M clang-tools-extra/clang-tidy/cert/CERTTidyModule.cpp
M clang-tools-extra/clang-tidy/cppcoreguidelines/AvoidNonConstGlobalVariablesCheck.cpp
M clang-tools-extra/clang-tidy/cppcoreguidelines/AvoidNonConstGlobalVariablesCheck.h
M clang-tools-extra/clang-tidy/cppcoreguidelines/MissingStdForwardCheck.cpp
M clang-tools-extra/clang-tidy/cppcoreguidelines/SpecialMemberFunctionsCheck.h
M clang-tools-extra/clang-tidy/modernize/UseDefaultMemberInitCheck.cpp
M clang-tools-extra/clang-tidy/modernize/UseDefaultMemberInitCheck.h
M clang-tools-extra/clang-tidy/modernize/UseRangesCheck.cpp
M clang-tools-extra/clang-tidy/modernize/UseUsingCheck.cpp
M clang-tools-extra/clang-tidy/readability/NonConstParameterCheck.cpp
M clang-tools-extra/clang-tidy/readability/RedundantParenthesesCheck.cpp
M clang-tools-extra/clang-tidy/utils/RenamerClangTidyCheck.cpp
M clang-tools-extra/clang-tidy/utils/UseRangesCheck.cpp
M clang-tools-extra/clang-tidy/utils/UseRangesCheck.h
M clang-tools-extra/clangd/Config.h
M clang-tools-extra/clangd/HeaderSourceSwitch.cpp
M clang-tools-extra/clangd/Headers.h
M clang-tools-extra/clangd/ProjectModules.cpp
M clang-tools-extra/clangd/Protocol.h
M clang-tools-extra/clangd/Selection.cpp
M clang-tools-extra/clangd/SemanticHighlighting.cpp
M clang-tools-extra/clangd/SystemIncludeExtractor.cpp
M clang-tools-extra/clangd/XRefs.cpp
M clang-tools-extra/clangd/index/Ref.h
M clang-tools-extra/clangd/index/SymbolID.h
M clang-tools-extra/clangd/index/dex/Token.h
M clang-tools-extra/clangd/index/dex/Trigram.h
M clang-tools-extra/clangd/test/type-hierarchy-ext.test
M clang-tools-extra/clangd/test/type-hierarchy.test
M clang-tools-extra/clangd/unittests/CallHierarchyTests.cpp
M clang-tools-extra/clangd/unittests/HeaderSourceSwitchTests.cpp
M clang-tools-extra/clangd/unittests/SemanticHighlightingTests.cpp
A clang-tools-extra/docs/Maintainers.md
R clang-tools-extra/docs/Maintainers.rst
M clang-tools-extra/docs/ReleaseNotes.rst
A clang-tools-extra/docs/clang-tidy/checks/bugprone/missing-end-comparison.rst
M clang-tools-extra/docs/clang-tidy/checks/bugprone/use-after-move.rst
M clang-tools-extra/docs/clang-tidy/checks/cppcoreguidelines/avoid-non-const-global-variables.rst
M clang-tools-extra/docs/clang-tidy/checks/list.rst
M clang-tools-extra/docs/clang-tidy/checks/modernize/use-default-member-init.rst
M clang-tools-extra/docs/clang-tidy/checks/modernize/use-ranges.rst
M clang-tools-extra/docs/clang-tidy/checks/modernize/use-using.rst
M clang-tools-extra/docs/conf.py
M clang-tools-extra/include-cleaner/include/clang-include-cleaner/Types.h
A clang-tools-extra/test/clang-doc/compact.cpp
M clang-tools-extra/test/clang-doc/enum.cpp
M clang-tools-extra/test/clang-doc/index.cpp
M clang-tools-extra/test/clang-doc/json/class-requires.cpp
M clang-tools-extra/test/clang-doc/json/class-specialization.cpp
M clang-tools-extra/test/clang-doc/json/class-template.cpp
M clang-tools-extra/test/clang-doc/json/class.cpp
M clang-tools-extra/test/clang-doc/json/compound-constraints.cpp
M clang-tools-extra/test/clang-doc/json/concept.cpp
M clang-tools-extra/test/clang-doc/json/function-requires.cpp
M clang-tools-extra/test/clang-doc/json/function-specifiers.cpp
M clang-tools-extra/test/clang-doc/json/inheritance.cpp
M clang-tools-extra/test/clang-doc/json/method-template.cpp
M clang-tools-extra/test/clang-doc/json/multiple-namespaces.cpp
M clang-tools-extra/test/clang-doc/json/namespace.cpp
M clang-tools-extra/test/clang-doc/json/nested-namespace.cpp
M clang-tools-extra/test/clang-doc/templates.cpp
A clang-tools-extra/test/clang-tidy/checkers/Inputs/Headers/std/algorithm
A clang-tools-extra/test/clang-tidy/checkers/Inputs/Headers/std/iterator
A clang-tools-extra/test/clang-tidy/checkers/bugprone/missing-end-comparison-custom.cpp
A clang-tools-extra/test/clang-tidy/checkers/bugprone/missing-end-comparison-cxx17.cpp
A clang-tools-extra/test/clang-tidy/checkers/bugprone/missing-end-comparison-cxx20.cpp
A clang-tools-extra/test/clang-tidy/checkers/bugprone/missing-end-comparison-cxx98.cpp
A clang-tools-extra/test/clang-tidy/checkers/bugprone/missing-end-comparison.cpp
M clang-tools-extra/test/clang-tidy/checkers/bugprone/use-after-move.cpp
A clang-tools-extra/test/clang-tidy/checkers/cert/err33-c.cpp
A clang-tools-extra/test/clang-tidy/checkers/cppcoreguidelines/avoid-non-const-global-variables-macros.cpp
M clang-tools-extra/test/clang-tidy/checkers/cppcoreguidelines/missing-std-forward.cpp
M clang-tools-extra/test/clang-tidy/checkers/misc/const-correctness-parameters.cpp
M clang-tools-extra/test/clang-tidy/checkers/misc/const-correctness-pointer-as-values.cpp
A clang-tools-extra/test/clang-tidy/checkers/modernize/Inputs/use-default-member-init/non-visible-references.h
M clang-tools-extra/test/clang-tidy/checkers/modernize/Inputs/use-ranges/fake_std.h
A clang-tools-extra/test/clang-tidy/checkers/modernize/use-default-member-init-non-visible-references-notes.cpp
A clang-tools-extra/test/clang-tidy/checkers/modernize/use-default-member-init-non-visible-references.cpp
M clang-tools-extra/test/clang-tidy/checkers/modernize/use-ranges.cpp
M clang-tools-extra/test/clang-tidy/checkers/modernize/use-using-ignore-extern-c.cpp
M clang-tools-extra/test/clang-tidy/checkers/modernize/use-using.cpp
M clang-tools-extra/test/clang-tidy/checkers/readability/non-const-parameter.cpp
M clang-tools-extra/test/clang-tidy/checkers/readability/redundant-parentheses.cpp
M clang-tools-extra/unittests/clang-doc/ClangDocTest.cpp
R clang/.clang-format-ignore
M clang/CMakeLists.txt
M clang/cmake/caches/HLSL.cmake
M clang/cmake/caches/release_cpack_pre_build_strip_lto.cmake
M clang/docs/ClangSYCLLinker.rst
M clang/docs/LanguageExtensions.rst
M clang/docs/LifetimeSafety.rst
M clang/docs/OpenMPSupport.rst
M clang/docs/ReleaseNotes.rst
M clang/docs/ScalableStaticAnalysisFramework/developer-docs/ForceLinkerHeaders.rst
M clang/docs/ScalableStaticAnalysisFramework/developer-docs/HowToExtend.rst
M clang/docs/UsersManual.rst
M clang/docs/analyzer/developer-docs/IPA.rst
M clang/docs/ghlinks.py
M clang/include/clang/AST/APValue.h
M clang/include/clang/AST/ASTContext.h
M clang/include/clang/AST/ASTTypeTraits.h
M clang/include/clang/AST/BaseSubobject.h
M clang/include/clang/AST/CharUnits.h
M clang/include/clang/AST/Comment.h
M clang/include/clang/AST/Decl.h
M clang/include/clang/AST/DeclID.h
M clang/include/clang/AST/DeclTemplate.h
M clang/include/clang/AST/DeclarationName.h
M clang/include/clang/AST/ExprCXX.h
M clang/include/clang/AST/GlobalDecl.h
M clang/include/clang/AST/NestedNameSpecifier.h
M clang/include/clang/AST/Redeclarable.h
M clang/include/clang/AST/TypeOrdering.h
M clang/include/clang/Analysis/Analyses/LifetimeSafety/FactsGenerator.h
M clang/include/clang/Analysis/Analyses/LifetimeSafety/LifetimeAnnotations.h
M clang/include/clang/Analysis/Analyses/LifetimeSafety/LifetimeSafety.h
M clang/include/clang/Analysis/Analyses/LifetimeSafety/LoanPropagation.h
M clang/include/clang/Analysis/Analyses/LifetimeSafety/Utils.h
M clang/include/clang/Analysis/AnalysisDeclContext.h
M clang/include/clang/Analysis/CFG.h
M clang/include/clang/Analysis/CallGraph.h
M clang/include/clang/Analysis/FlowSensitive/DataflowAnalysisContext.h
M clang/include/clang/Analysis/FlowSensitive/Formula.h
M clang/include/clang/Analysis/PathDiagnostic.h
M clang/include/clang/Analysis/ProgramPoint.h
M clang/include/clang/Analysis/RetainSummaryManager.h
M clang/include/clang/Basic/Attr.td
M clang/include/clang/Basic/AttrDocs.td
M clang/include/clang/Basic/Builtins.td
M clang/include/clang/Basic/BuiltinsAArch64.td
M clang/include/clang/Basic/CodeGenOptions.def
M clang/include/clang/Basic/DarwinSDKInfo.h
M clang/include/clang/Basic/DebugOptions.def
M clang/include/clang/Basic/DiagnosticCommonKinds.td
M clang/include/clang/Basic/DiagnosticIDs.h
M clang/include/clang/Basic/DiagnosticSemaKinds.td
M clang/include/clang/Basic/DirectoryEntry.h
M clang/include/clang/Basic/FileEntry.h
M clang/include/clang/Basic/FileManager.h
M clang/include/clang/Basic/IdentifierTable.h
M clang/include/clang/Basic/LangOptions.def
M clang/include/clang/Basic/Module.h
M clang/include/clang/Basic/SourceLocation.h
M clang/include/clang/Basic/TokenKinds.h
M clang/include/clang/Basic/arm_neon.td
M clang/include/clang/Basic/riscv_vector.td
M clang/include/clang/Basic/riscv_vector_common.td
M clang/include/clang/CIR/Dialect/Builder/CIRBaseBuilder.h
M clang/include/clang/CIR/Dialect/IR/CIRCUDAAttrs.td
M clang/include/clang/CIR/Dialect/IR/CIROps.td
M clang/include/clang/CIR/Dialect/IR/CIRTypes.h
M clang/include/clang/CIR/Dialect/IR/CIRTypes.td
M clang/include/clang/CIR/Dialect/IR/CIRTypesDetails.h
M clang/include/clang/CIR/Dialect/Transforms/CIRTransformUtils.h
M clang/include/clang/CIR/FrontendAction/CIRGenAction.h
M clang/include/clang/CIR/MissingFeatures.h
M clang/include/clang/CodeGen/CodeGenAction.h
A clang/include/clang/CodeGen/ModuleLinker.h
M clang/include/clang/Config/config.h.cmake
M clang/include/clang/DependencyScanning/DependencyGraph.h
M clang/include/clang/DependencyScanning/DependencyScanningFilesystem.h
M clang/include/clang/DependencyScanning/DependencyScanningService.h
M clang/include/clang/Driver/CommonArgs.h
M clang/include/clang/Driver/Types.def
M clang/include/clang/Options/FlangOptions.td
M clang/include/clang/Options/Options.td
M clang/include/clang/ScalableStaticAnalysisFramework/Analyses/PointerFlow/PointerFlow.h
M clang/include/clang/ScalableStaticAnalysisFramework/Analyses/PointerFlow/PointerFlowAnalysis.h
A clang/include/clang/ScalableStaticAnalysisFramework/BuiltinAnchorSources.def
M clang/include/clang/ScalableStaticAnalysisFramework/Core/Serialization/SerializationFormatRegistry.h
M clang/include/clang/ScalableStaticAnalysisFramework/Core/TUSummary/ExtractorRegistry.h
M clang/include/clang/ScalableStaticAnalysisFramework/Core/WholeProgramAnalysis/AnalysisRegistry.h
M clang/include/clang/ScalableStaticAnalysisFramework/SSAFBuiltinForceLinker.h
M clang/include/clang/Sema/ScopeInfo.h
M clang/include/clang/Sema/Sema.h
M clang/include/clang/Sema/SemaCUDA.h
M clang/include/clang/Sema/SemaObjC.h
M clang/include/clang/Sema/Weak.h
M clang/include/clang/Serialization/ASTBitCodes.h
M clang/include/clang/StaticAnalyzer/Checkers/Checkers.td
M clang/include/clang/StaticAnalyzer/Checkers/Taint.h
M clang/include/clang/StaticAnalyzer/Core/BugReporter/BugReporter.h
M clang/include/clang/StaticAnalyzer/Core/Checker.h
M clang/include/clang/StaticAnalyzer/Core/CheckerManager.h
M clang/include/clang/StaticAnalyzer/Core/PathSensitive/CallEvent.h
M clang/include/clang/StaticAnalyzer/Core/PathSensitive/CheckerContext.h
M clang/include/clang/StaticAnalyzer/Core/PathSensitive/CoreEngine.h
M clang/include/clang/StaticAnalyzer/Core/PathSensitive/Environment.h
M clang/include/clang/StaticAnalyzer/Core/PathSensitive/ExplodedGraph.h
M clang/include/clang/StaticAnalyzer/Core/PathSensitive/ExprEngine.h
M clang/include/clang/StaticAnalyzer/Core/PathSensitive/LoopWidening.h
M clang/include/clang/StaticAnalyzer/Core/PathSensitive/MemRegion.h
M clang/include/clang/StaticAnalyzer/Core/PathSensitive/ProgramState.h
M clang/include/clang/StaticAnalyzer/Core/PathSensitive/SValBuilder.h
M clang/include/clang/StaticAnalyzer/Core/PathSensitive/Store.h
M clang/include/clang/StaticAnalyzer/Core/PathSensitive/SymbolManager.h
M clang/include/clang/Support/RISCVVIntrinsicUtils.h
M clang/include/clang/Tooling/Inclusions/StandardLibrary.h
M clang/include/module.modulemap
M clang/lib/APINotes/APINotesFormat.h
M clang/lib/AST/APValue.cpp
M clang/lib/AST/ASTImporter.cpp
M clang/lib/AST/AttrImpl.cpp
M clang/lib/AST/ByteCode/ByteCodeEmitter.h
M clang/lib/AST/ByteCode/Compiler.cpp
M clang/lib/AST/ByteCode/Compiler.h
M clang/lib/AST/ByteCode/Context.cpp
M clang/lib/AST/ByteCode/Context.h
M clang/lib/AST/ByteCode/Descriptor.cpp
M clang/lib/AST/ByteCode/Descriptor.h
M clang/lib/AST/ByteCode/DynamicAllocator.cpp
M clang/lib/AST/ByteCode/EvalEmitter.cpp
M clang/lib/AST/ByteCode/EvalEmitter.h
M clang/lib/AST/ByteCode/Function.h
M clang/lib/AST/ByteCode/Interp.cpp
M clang/lib/AST/ByteCode/Interp.h
M clang/lib/AST/ByteCode/InterpBuiltin.cpp
M clang/lib/AST/ByteCode/InterpBuiltinBitCast.cpp
M clang/lib/AST/ByteCode/Opcodes.td
M clang/lib/AST/ByteCode/Pointer.cpp
M clang/lib/AST/ByteCode/Pointer.h
M clang/lib/AST/ByteCode/Program.cpp
M clang/lib/AST/Comment.cpp
M clang/lib/AST/Decl.cpp
M clang/lib/AST/DeclCXX.cpp
M clang/lib/AST/ExprCXX.cpp
M clang/lib/AST/ExprConstant.cpp
M clang/lib/AST/ItaniumCXXABI.cpp
M clang/lib/AST/ItaniumMangle.cpp
M clang/lib/AST/MicrosoftMangle.cpp
M clang/lib/AST/TextNodeDumper.cpp
M clang/lib/Analysis/AnalysisDeclContext.cpp
M clang/lib/Analysis/CFG.cpp
M clang/lib/Analysis/ExprMutationAnalyzer.cpp
M clang/lib/Analysis/FlowSensitive/Models/UncheckedStatusOrAccessModel.cpp
M clang/lib/Analysis/LifetimeSafety/Checker.cpp
M clang/lib/Analysis/LifetimeSafety/FactsGenerator.cpp
M clang/lib/Analysis/LifetimeSafety/LifetimeAnnotations.cpp
M clang/lib/Analysis/LifetimeSafety/LoanPropagation.cpp
M clang/lib/Analysis/LiveVariables.cpp
M clang/lib/Analysis/PathDiagnostic.cpp
M clang/lib/Analysis/ProgramPoint.cpp
M clang/lib/Basic/DarwinSDKInfo.cpp
M clang/lib/Basic/FileManager.cpp
M clang/lib/Basic/LangOptions.cpp
M clang/lib/Basic/TargetInfo.cpp
M clang/lib/Basic/Targets/RISCV.cpp
M clang/lib/Basic/Targets/RISCV.h
M clang/lib/Basic/Targets/WebAssembly.cpp
M clang/lib/Basic/Targets/WebAssembly.h
M clang/lib/CIR/CodeGen/CIRGenAtomic.cpp
M clang/lib/CIR/CodeGen/CIRGenBuilder.h
M clang/lib/CIR/CodeGen/CIRGenBuiltin.cpp
M clang/lib/CIR/CodeGen/CIRGenBuiltinAArch64.cpp
M clang/lib/CIR/CodeGen/CIRGenBuiltinAMDGPU.cpp
M clang/lib/CIR/CodeGen/CIRGenBuiltinX86.cpp
M clang/lib/CIR/CodeGen/CIRGenCUDANV.cpp
M clang/lib/CIR/CodeGen/CIRGenCUDARuntime.h
M clang/lib/CIR/CodeGen/CIRGenCleanup.cpp
M clang/lib/CIR/CodeGen/CIRGenCoroutine.cpp
M clang/lib/CIR/CodeGen/CIRGenDecl.cpp
M clang/lib/CIR/CodeGen/CIRGenException.cpp
M clang/lib/CIR/CodeGen/CIRGenExpr.cpp
M clang/lib/CIR/CodeGen/CIRGenExprAggregate.cpp
M clang/lib/CIR/CodeGen/CIRGenExprComplex.cpp
M clang/lib/CIR/CodeGen/CIRGenExprScalar.cpp
M clang/lib/CIR/CodeGen/CIRGenFunction.cpp
M clang/lib/CIR/CodeGen/CIRGenFunction.h
M clang/lib/CIR/CodeGen/CIRGenItaniumCXXABI.cpp
M clang/lib/CIR/CodeGen/CIRGenModule.cpp
M clang/lib/CIR/CodeGen/CIRGenModule.h
M clang/lib/CIR/CodeGen/CIRGenRecordLayoutBuilder.cpp
M clang/lib/CIR/CodeGen/CIRGenStmt.cpp
M clang/lib/CIR/CodeGen/CIRGenTypes.cpp
M clang/lib/CIR/Dialect/IR/CIRAttrs.cpp
M clang/lib/CIR/Dialect/IR/CIRDataLayout.cpp
M clang/lib/CIR/Dialect/IR/CIRDialect.cpp
M clang/lib/CIR/Dialect/IR/CIRTypes.cpp
M clang/lib/CIR/Dialect/Transforms/CIRTransformUtils.cpp
M clang/lib/CIR/Dialect/Transforms/CXXABILowering.cpp
M clang/lib/CIR/Dialect/Transforms/EHABILowering.cpp
M clang/lib/CIR/Dialect/Transforms/FlattenCFG.cpp
M clang/lib/CIR/Dialect/Transforms/LoweringPrepare.cpp
M clang/lib/CIR/Dialect/Transforms/TargetLowering/CIRABIRewriteContext.cpp
M clang/lib/CIR/Dialect/Transforms/TargetLowering/LowerItaniumCXXABI.cpp
M clang/lib/CIR/FrontendAction/CIRGenAction.cpp
M clang/lib/CIR/FrontendAction/CMakeLists.txt
M clang/lib/CIR/Lowering/DirectToLLVM/LowerToLLVM.cpp
M clang/lib/CodeGen/ABIInfoImpl.cpp
M clang/lib/CodeGen/BackendConsumer.h
M clang/lib/CodeGen/CGAtomic.cpp
M clang/lib/CodeGen/CGBlocks.cpp
M clang/lib/CodeGen/CGBuiltin.cpp
M clang/lib/CodeGen/CGCUDANV.cpp
M clang/lib/CodeGen/CGCXX.cpp
M clang/lib/CodeGen/CGCall.cpp
M clang/lib/CodeGen/CGCall.h
M clang/lib/CodeGen/CGClass.cpp
M clang/lib/CodeGen/CGDebugInfo.cpp
M clang/lib/CodeGen/CGDebugInfo.h
M clang/lib/CodeGen/CGDecl.cpp
M clang/lib/CodeGen/CGException.cpp
M clang/lib/CodeGen/CGExpr.cpp
M clang/lib/CodeGen/CGExprAgg.cpp
M clang/lib/CodeGen/CGHLSLBuiltins.cpp
M clang/lib/CodeGen/CGHLSLRuntime.cpp
M clang/lib/CodeGen/CGHLSLRuntime.h
M clang/lib/CodeGen/CGObjCMacConstantLiteralUtil.h
M clang/lib/CodeGen/CGOpenMPRuntime.cpp
M clang/lib/CodeGen/CGOpenMPRuntimeGPU.cpp
M clang/lib/CodeGen/CGStmt.cpp
M clang/lib/CodeGen/CGStmtOpenMP.cpp
M clang/lib/CodeGen/CGVTables.cpp
M clang/lib/CodeGen/CMakeLists.txt
M clang/lib/CodeGen/CodeGenAction.cpp
M clang/lib/CodeGen/CodeGenFunction.h
M clang/lib/CodeGen/CodeGenModule.cpp
M clang/lib/CodeGen/CodeGenModule.h
M clang/lib/CodeGen/CodeGenTBAA.h
M clang/lib/CodeGen/CoverageMappingGen.cpp
M clang/lib/CodeGen/ItaniumCXXABI.cpp
M clang/lib/CodeGen/MicrosoftCXXABI.cpp
A clang/lib/CodeGen/ModuleLinker.cpp
M clang/lib/CodeGen/TargetBuiltins/AMDGPU.cpp
M clang/lib/CodeGen/TargetBuiltins/ARM.cpp
M clang/lib/CodeGen/TargetBuiltins/NVPTX.cpp
M clang/lib/CodeGen/TargetBuiltins/RISCV.cpp
M clang/lib/CodeGen/TargetBuiltins/X86.cpp
M clang/lib/CodeGen/Targets/AMDGPU.cpp
M clang/lib/CodeGen/Targets/X86.cpp
M clang/lib/DependencyScanning/DependencyScannerImpl.cpp
M clang/lib/DependencyScanning/DependencyScanningFilesystem.cpp
M clang/lib/DependencyScanning/DependencyScanningService.cpp
M clang/lib/DependencyScanning/DependencyScanningWorker.cpp
M clang/lib/Driver/Driver.cpp
M clang/lib/Driver/ModulesDriver.cpp
M clang/lib/Driver/OffloadBundler.cpp
M clang/lib/Driver/ToolChains/AMDGPU.cpp
M clang/lib/Driver/ToolChains/Clang.cpp
M clang/lib/Driver/ToolChains/CommonArgs.cpp
M clang/lib/Driver/ToolChains/Darwin.cpp
M clang/lib/Driver/ToolChains/Darwin.h
M clang/lib/Driver/ToolChains/Flang.cpp
M clang/lib/Driver/ToolChains/HIPAMD.cpp
M clang/lib/Driver/ToolChains/Hexagon.cpp
M clang/lib/Driver/ToolChains/Linux.cpp
M clang/lib/Driver/ToolChains/WebAssembly.cpp
M clang/lib/Driver/Types.cpp
M clang/lib/Format/DefinitionBlockSeparator.cpp
M clang/lib/Format/FormatToken.h
M clang/lib/Format/UnwrappedLineParser.cpp
M clang/lib/Format/UnwrappedLineParser.h
M clang/lib/Frontend/CompilerInvocation.cpp
M clang/lib/Headers/arm64intr.h
M clang/lib/Headers/hlsl/hlsl_intrinsics.h
M clang/lib/Headers/intrin.h
M clang/lib/Headers/opencl-c.h
M clang/lib/Headers/wasm_simd128.h
M clang/lib/Index/CommentToXML.cpp
M clang/lib/Interpreter/IncrementalParser.cpp
M clang/lib/Lex/HeaderSearch.cpp
M clang/lib/Lex/ModuleMap.cpp
M clang/lib/Lex/PPDirectives.cpp
M clang/lib/Parse/ParseExpr.cpp
M clang/lib/Parse/ParseExprCXX.cpp
M clang/lib/Parse/ParseTemplate.cpp
M clang/lib/Parse/ParseTentative.cpp
M clang/lib/ScalableStaticAnalysisFramework/Analyses/CallGraph/CallGraphExtractor.cpp
M clang/lib/ScalableStaticAnalysisFramework/Analyses/CallGraph/CallGraphJSONFormat.cpp
M clang/lib/ScalableStaticAnalysisFramework/Analyses/PointerFlow/PointerFlowAnalysis.cpp
M clang/lib/ScalableStaticAnalysisFramework/Analyses/PointerFlow/PointerFlowExtractor.cpp
M clang/lib/ScalableStaticAnalysisFramework/Analyses/PointerFlow/PointerFlowFormat.cpp
M clang/lib/ScalableStaticAnalysisFramework/Analyses/UnsafeBufferUsage/UnsafeBufferUsageAnalysis.cpp
M clang/lib/ScalableStaticAnalysisFramework/Analyses/UnsafeBufferUsage/UnsafeBufferUsageExtractor.cpp
M clang/lib/ScalableStaticAnalysisFramework/Analyses/UnsafeBufferUsage/UnsafeBufferUsageFormat.cpp
M clang/lib/ScalableStaticAnalysisFramework/Core/Serialization/JSONFormat/JSONFormatImpl.cpp
M clang/lib/ScalableStaticAnalysisFramework/Core/WholeProgramAnalysis/AnalysisRegistry.cpp
M clang/lib/Sema/AnalysisBasedWarnings.cpp
M clang/lib/Sema/CheckExprLifetime.cpp
M clang/lib/Sema/HLSLExternalSemaSource.cpp
M clang/lib/Sema/HeuristicResolver.cpp
M clang/lib/Sema/OpenCLBuiltins.td
M clang/lib/Sema/Sema.cpp
M clang/lib/Sema/SemaAMDGPU.cpp
M clang/lib/Sema/SemaARM.cpp
M clang/lib/Sema/SemaBase.cpp
M clang/lib/Sema/SemaCUDA.cpp
M clang/lib/Sema/SemaCast.cpp
M clang/lib/Sema/SemaChecking.cpp
M clang/lib/Sema/SemaConcept.cpp
M clang/lib/Sema/SemaDecl.cpp
M clang/lib/Sema/SemaDeclCXX.cpp
M clang/lib/Sema/SemaExpr.cpp
M clang/lib/Sema/SemaExprCXX.cpp
M clang/lib/Sema/SemaExprObjC.cpp
M clang/lib/Sema/SemaHLSL.cpp
M clang/lib/Sema/SemaLifetimeSafety.h
M clang/lib/Sema/SemaLookup.cpp
M clang/lib/Sema/SemaOpenACCClause.cpp
M clang/lib/Sema/SemaStmt.cpp
M clang/lib/Sema/SemaStmtAsm.cpp
M clang/lib/Sema/SemaTemplate.cpp
M clang/lib/Sema/SemaTemplateDeduction.cpp
M clang/lib/Sema/SemaTemplateInstantiate.cpp
M clang/lib/Sema/SemaTemplateInstantiateDecl.cpp
M clang/lib/Sema/SemaType.cpp
M clang/lib/Sema/TreeTransform.h
M clang/lib/Serialization/ASTReaderDecl.cpp
M clang/lib/Serialization/ASTReaderStmt.cpp
M clang/lib/Serialization/ASTWriterStmt.cpp
M clang/lib/StaticAnalyzer/Checkers/AnalysisOrderChecker.cpp
M clang/lib/StaticAnalyzer/Checkers/AnalyzerStatsChecker.cpp
M clang/lib/StaticAnalyzer/Checkers/ArrayBoundChecker.cpp
M clang/lib/StaticAnalyzer/Checkers/BasicObjCFoundationChecks.cpp
M clang/lib/StaticAnalyzer/Checkers/BuiltinFunctionChecker.cpp
M clang/lib/StaticAnalyzer/Checkers/CStringChecker.cpp
M clang/lib/StaticAnalyzer/Checkers/CXXDeleteChecker.cpp
M clang/lib/StaticAnalyzer/Checkers/CXXSelfAssignmentChecker.cpp
M clang/lib/StaticAnalyzer/Checkers/CallAndMessageChecker.cpp
M clang/lib/StaticAnalyzer/Checkers/CastValueChecker.cpp
M clang/lib/StaticAnalyzer/Checkers/CheckObjCDealloc.cpp
M clang/lib/StaticAnalyzer/Checkers/CheckerDocumentation.cpp
M clang/lib/StaticAnalyzer/Checkers/ChrootChecker.cpp
M clang/lib/StaticAnalyzer/Checkers/ContainerModeling.cpp
M clang/lib/StaticAnalyzer/Checkers/ConversionChecker.cpp
M clang/lib/StaticAnalyzer/Checkers/DebugContainerModeling.cpp
M clang/lib/StaticAnalyzer/Checkers/DebugIteratorModeling.cpp
M clang/lib/StaticAnalyzer/Checkers/DereferenceChecker.cpp
M clang/lib/StaticAnalyzer/Checkers/DirectIvarAssignment.cpp
M clang/lib/StaticAnalyzer/Checkers/DynamicTypeChecker.cpp
M clang/lib/StaticAnalyzer/Checkers/DynamicTypePropagation.cpp
M clang/lib/StaticAnalyzer/Checkers/ErrnoChecker.cpp
M clang/lib/StaticAnalyzer/Checkers/ErrnoModeling.cpp
M clang/lib/StaticAnalyzer/Checkers/ErrnoModeling.h
M clang/lib/StaticAnalyzer/Checkers/ErrnoTesterChecker.cpp
M clang/lib/StaticAnalyzer/Checkers/ExprInspectionChecker.cpp
M clang/lib/StaticAnalyzer/Checkers/FuchsiaHandleChecker.cpp
M clang/lib/StaticAnalyzer/Checkers/GenericTaintChecker.cpp
M clang/lib/StaticAnalyzer/Checkers/InnerPointerChecker.cpp
M clang/lib/StaticAnalyzer/Checkers/InvalidatedIteratorChecker.cpp
M clang/lib/StaticAnalyzer/Checkers/Iterator.cpp
M clang/lib/StaticAnalyzer/Checkers/Iterator.h
M clang/lib/StaticAnalyzer/Checkers/IteratorModeling.cpp
M clang/lib/StaticAnalyzer/Checkers/IteratorRangeChecker.cpp
M clang/lib/StaticAnalyzer/Checkers/LocalizationChecker.cpp
M clang/lib/StaticAnalyzer/Checkers/MIGChecker.cpp
M clang/lib/StaticAnalyzer/Checkers/MacOSKeychainAPIChecker.cpp
M clang/lib/StaticAnalyzer/Checkers/MallocChecker.cpp
M clang/lib/StaticAnalyzer/Checkers/MismatchedIteratorChecker.cpp
M clang/lib/StaticAnalyzer/Checkers/MoveChecker.cpp
M clang/lib/StaticAnalyzer/Checkers/NoOwnershipChangeVisitor.cpp
M clang/lib/StaticAnalyzer/Checkers/NonNullParamChecker.cpp
M clang/lib/StaticAnalyzer/Checkers/NullabilityChecker.cpp
M clang/lib/StaticAnalyzer/Checkers/ObjCSuperDeallocChecker.cpp
M clang/lib/StaticAnalyzer/Checkers/PthreadLockChecker.cpp
M clang/lib/StaticAnalyzer/Checkers/RetainCountChecker/RetainCountChecker.cpp
M clang/lib/StaticAnalyzer/Checkers/RetainCountChecker/RetainCountChecker.h
M clang/lib/StaticAnalyzer/Checkers/RetainCountChecker/RetainCountDiagnostics.cpp
M clang/lib/StaticAnalyzer/Checkers/ReturnPointerRangeChecker.cpp
M clang/lib/StaticAnalyzer/Checkers/STLAlgorithmModeling.cpp
M clang/lib/StaticAnalyzer/Checkers/SmartPtrModeling.cpp
M clang/lib/StaticAnalyzer/Checkers/StackAddrEscapeChecker.cpp
M clang/lib/StaticAnalyzer/Checkers/StdLibraryFunctionsChecker.cpp
M clang/lib/StaticAnalyzer/Checkers/StdVariantChecker.cpp
M clang/lib/StaticAnalyzer/Checkers/StreamChecker.cpp
M clang/lib/StaticAnalyzer/Checkers/Taint.cpp
M clang/lib/StaticAnalyzer/Checkers/TaintTesterChecker.cpp
M clang/lib/StaticAnalyzer/Checkers/TraversalChecker.cpp
M clang/lib/StaticAnalyzer/Checkers/UnconditionalVAArgChecker.cpp
M clang/lib/StaticAnalyzer/Checkers/UndefBranchChecker.cpp
M clang/lib/StaticAnalyzer/Checkers/UndefinedArraySubscriptChecker.cpp
M clang/lib/StaticAnalyzer/Checkers/UninitializedObject/UninitializedObjectChecker.cpp
M clang/lib/StaticAnalyzer/Checkers/UnreachableCodeChecker.cpp
M clang/lib/StaticAnalyzer/Checkers/VAListChecker.cpp
M clang/lib/StaticAnalyzer/Checkers/VLASizeChecker.cpp
M clang/lib/StaticAnalyzer/Checkers/VforkChecker.cpp
M clang/lib/StaticAnalyzer/Checkers/VirtualCallChecker.cpp
M clang/lib/StaticAnalyzer/Checkers/WebKit/ASTUtils.cpp
M clang/lib/StaticAnalyzer/Checkers/WebKit/PtrTypesSemantics.cpp
M clang/lib/StaticAnalyzer/Checkers/WebKit/RawPtrRefLocalVarsChecker.cpp
M clang/lib/StaticAnalyzer/Checkers/cert/InvalidPtrChecker.cpp
M clang/lib/StaticAnalyzer/Core/BugReporter.cpp
M clang/lib/StaticAnalyzer/Core/BugReporterVisitors.cpp
M clang/lib/StaticAnalyzer/Core/BugSuppression.cpp
M clang/lib/StaticAnalyzer/Core/CallEvent.cpp
M clang/lib/StaticAnalyzer/Core/CheckerManager.cpp
M clang/lib/StaticAnalyzer/Core/CoreEngine.cpp
M clang/lib/StaticAnalyzer/Core/Environment.cpp
M clang/lib/StaticAnalyzer/Core/ExplodedGraph.cpp
M clang/lib/StaticAnalyzer/Core/ExprEngine.cpp
M clang/lib/StaticAnalyzer/Core/ExprEngineC.cpp
M clang/lib/StaticAnalyzer/Core/ExprEngineCXX.cpp
M clang/lib/StaticAnalyzer/Core/ExprEngineCallAndReturn.cpp
M clang/lib/StaticAnalyzer/Core/ExprEngineObjC.cpp
M clang/lib/StaticAnalyzer/Core/LoopUnrolling.cpp
M clang/lib/StaticAnalyzer/Core/LoopWidening.cpp
M clang/lib/StaticAnalyzer/Core/MemRegion.cpp
R clang/lib/StaticAnalyzer/Core/PrettyStackTraceLocationContext.h
A clang/lib/StaticAnalyzer/Core/PrettyStackTraceStackFrame.h
M clang/lib/StaticAnalyzer/Core/ProgramState.cpp
M clang/lib/StaticAnalyzer/Core/RegionStore.cpp
M clang/lib/StaticAnalyzer/Core/SValBuilder.cpp
M clang/lib/StaticAnalyzer/Core/SymbolManager.cpp
M clang/lib/StaticAnalyzer/Core/WorkList.cpp
M clang/lib/StaticAnalyzer/Frontend/AnalysisConsumer.cpp
M clang/lib/Support/RISCVVIntrinsicUtils.cpp
M clang/lib/Tooling/InterpolatingCompilationDatabase.cpp
A clang/test/AST/ByteCode/blocks.cpp
M clang/test/AST/ByteCode/builtin-functions.cpp
M clang/test/AST/ByteCode/c.c
M clang/test/AST/ByteCode/const-eval.c
M clang/test/AST/ByteCode/cxx11.cpp
M clang/test/AST/ByteCode/cxx20.cpp
M clang/test/AST/ByteCode/cxx23.cpp
M clang/test/AST/ByteCode/invalid.cpp
M clang/test/AST/ByteCode/new-delete.cpp
M clang/test/AST/ByteCode/records.cpp
M clang/test/AST/ByteCode/unions.cpp
M clang/test/AST/ast-dump-aarch64-mte.c
M clang/test/AST/ast-dump-decl.cpp
M clang/test/AST/ast-dump-expr-json.cpp
M clang/test/AST/ast-dump-expr.cpp
M clang/test/AST/ast-dump-linkage-internal.cpp
M clang/test/AST/ast-dump-linkage.cpp
M clang/test/AST/ast-dump-templates-pattern.cpp
A clang/test/AST/ast-print-amdgcn-predicate.c
A clang/test/ASTMerge/class-template-spec/Inputs/class-template-spec.cpp
A clang/test/ASTMerge/class-template-spec/test.cpp
M clang/test/Analysis/Checkers/WebKit/call-args.cpp
M clang/test/Analysis/Checkers/WebKit/nodelete-annotation.cpp
M clang/test/Analysis/Checkers/WebKit/objc-mock-types.h
M clang/test/Analysis/Checkers/WebKit/unchecked-local-vars.cpp
M clang/test/Analysis/Checkers/WebKit/uncounted-local-vars.cpp
A clang/test/Analysis/Checkers/WebKit/unretained-call-args-member.mm
M clang/test/Analysis/Checkers/WebKit/unretained-local-vars-arc.mm
M clang/test/Analysis/Checkers/WebKit/unretained-local-vars.mm
M clang/test/Analysis/bstring_UninitRead.c
A clang/test/Analysis/ctu/constraintsatisfaction.cpp
M clang/test/Analysis/cxx23-assume-attribute.cpp
M clang/test/Analysis/initialization.c
M clang/test/Analysis/initialization.cpp
M clang/test/CIR/CodeGen/abi-lower-after-unreachable.cpp
M clang/test/CIR/CodeGen/bitfield-union.c
M clang/test/CIR/CodeGen/bitfields.c
M clang/test/CIR/CodeGen/bitfields.cpp
M clang/test/CIR/CodeGen/bitfields_be.c
M clang/test/CIR/CodeGen/class.cpp
M clang/test/CIR/CodeGen/cleanup-conditional.cpp
A clang/test/CIR/CodeGen/cleanup-derived-to-base-ref.cpp
A clang/test/CIR/CodeGen/cleanup-throw-from-cleanup.cpp
M clang/test/CIR/CodeGen/cleanup.cpp
M clang/test/CIR/CodeGen/complex-atomic-cast.c
M clang/test/CIR/CodeGen/constant-inits.cpp
A clang/test/CIR/CodeGen/coro-exceptions.cpp
M clang/test/CIR/CodeGen/coro-task.cpp
M clang/test/CIR/CodeGen/ctor-null-init.cpp
M clang/test/CIR/CodeGen/ctor.cpp
M clang/test/CIR/CodeGen/cxx-abi-lowering-string-array.cpp
M clang/test/CIR/CodeGen/destructors.cpp
M clang/test/CIR/CodeGen/dumb-record.cpp
M clang/test/CIR/CodeGen/dynamic-cast-exact.cpp
M clang/test/CIR/CodeGen/dynamic-cast.cpp
M clang/test/CIR/CodeGen/empty-union.c
M clang/test/CIR/CodeGen/empty-union.cpp
M clang/test/CIR/CodeGen/finegrain-bitfield-access.cpp
M clang/test/CIR/CodeGen/forward-decls.cpp
M clang/test/CIR/CodeGen/global-array-dtor.cpp
M clang/test/CIR/CodeGen/global-dtor-union-narrowed.cpp
M clang/test/CIR/CodeGen/global-init.cpp
M clang/test/CIR/CodeGen/inline-cxx-func.cpp
A clang/test/CIR/CodeGen/inline-extern-force-codegen.c
A clang/test/CIR/CodeGen/link-bitcode-file.c
M clang/test/CIR/CodeGen/loop-cond-cleanup.cpp
M clang/test/CIR/CodeGen/member-functions.cpp
M clang/test/CIR/CodeGen/mms-bitfields.c
M clang/test/CIR/CodeGen/multi-vtable.cpp
M clang/test/CIR/CodeGen/no-proto-fn-ptr-global-init.c
M clang/test/CIR/CodeGen/no-unique-address.cpp
M clang/test/CIR/CodeGen/nonzeroinit-struct.cpp
M clang/test/CIR/CodeGen/paren-list-agg-init.cpp
M clang/test/CIR/CodeGen/record-type-metadata.cpp
A clang/test/CIR/CodeGen/record-with-padded-union.cpp
M clang/test/CIR/CodeGen/record-zero-init-padding.c
M clang/test/CIR/CodeGen/static-members.cpp
M clang/test/CIR/CodeGen/struct.c
A clang/test/CIR/CodeGen/switch-pre-case-stmts.cpp
M clang/test/CIR/CodeGen/template-specialization.cpp
M clang/test/CIR/CodeGen/three-way-cmp.cpp
M clang/test/CIR/CodeGen/thunks.cpp
M clang/test/CIR/CodeGen/try-catch.cpp
M clang/test/CIR/CodeGen/union.c
M clang/test/CIR/CodeGen/union.cpp
M clang/test/CIR/CodeGen/var_arg.c
M clang/test/CIR/CodeGen/variable-template-specialization.cpp
M clang/test/CIR/CodeGen/vbase.cpp
A clang/test/CIR/CodeGen/vector-binop-overflow.cpp
M clang/test/CIR/CodeGen/virtual-function-calls.cpp
M clang/test/CIR/CodeGen/vla.c
M clang/test/CIR/CodeGen/vtable-emission.cpp
M clang/test/CIR/CodeGen/vtable-linkage-explicit-instantiation.cpp
M clang/test/CIR/CodeGen/vtable-nyi-nonconvertible-functype.cpp
M clang/test/CIR/CodeGen/vtt.cpp
M clang/test/CIR/CodeGenBuiltins/X86/avx512vlvp2intersect-builtins.c
M clang/test/CIR/CodeGenBuiltins/X86/avx512vp2intersect-builtins.c
M clang/test/CIR/CodeGenBuiltins/X86/keylocker.c
A clang/test/CIR/CodeGenBuiltins/builtin-sync_synchronize.c
M clang/test/CIR/CodeGenCUDA/address-spaces.cu
M clang/test/CIR/CodeGenCUDA/device-stub.cu
M clang/test/CIR/CodeGenCXX/vtable-linkage.cpp
M clang/test/CIR/CodeGenCXX/zero_init_bases.cpp
A clang/test/CIR/CodeGenHIP/builtins-amdgcn-image.hip
M clang/test/CIR/CodeGenHIP/builtins-amdgcn.hip
A clang/test/CIR/CodeGenHIP/device-var-registration.hip
A clang/test/CIR/CodeGenOpenCL/address-space-local-var.clcpp
M clang/test/CIR/CodeGenOpenCL/as_type.cl
M clang/test/CIR/IR/array-ctor.cir
M clang/test/CIR/IR/array-dtor.cir
M clang/test/CIR/IR/bitfield_info.cir
M clang/test/CIR/IR/construct-catch-param.cir
M clang/test/CIR/IR/copy.cir
M clang/test/CIR/IR/dynamic-cast.cir
M clang/test/CIR/IR/func-attrs.cir
M clang/test/CIR/IR/func.cir
M clang/test/CIR/IR/global-init.cir
M clang/test/CIR/IR/invalid-array-structor.cir
M clang/test/CIR/IR/invalid-cast.cir
M clang/test/CIR/IR/invalid-const-record.cir
M clang/test/CIR/IR/invalid-construct-catch-param.cir
M clang/test/CIR/IR/invalid-data-member.cir
M clang/test/CIR/IR/invalid-delete-array.cir
M clang/test/CIR/IR/invalid-dyn-cast.cir
A clang/test/CIR/IR/invalid-lifetime.cir
M clang/test/CIR/IR/invalid-struct.cir
M clang/test/CIR/IR/invalid-type-info.cir
M clang/test/CIR/IR/invalid-vtable.cir
A clang/test/CIR/IR/lifetime.cir
M clang/test/CIR/IR/method-attr.cir
M clang/test/CIR/IR/struct.cir
A clang/test/CIR/IR/var-registration.cir
M clang/test/CIR/IR/vtable-addrpt.cir
M clang/test/CIR/IR/vtable-attr.cir
M clang/test/CIR/IR/vtt-addrpoint.cir
A clang/test/CIR/Lowering/call-llvm-intrinsic.cir
M clang/test/CIR/Lowering/cast.cir
A clang/test/CIR/Lowering/lifetime.cir
M clang/test/CIR/Lowering/struct.cir
M clang/test/CIR/Lowering/vtt-addrpoint.cir
A clang/test/CIR/Transforms/abi-lowering/extend-after-ignore.cir
A clang/test/CIR/Transforms/abi-lowering/extend-return.cir
A clang/test/CIR/Transforms/abi-lowering/extend-signed-arg.cir
A clang/test/CIR/Transforms/abi-lowering/extend-unsigned-arg.cir
M clang/test/CIR/Transforms/canonicalize-cleanup-scope.cir
M clang/test/CIR/Transforms/cxx-abi-lowering-attrs.cir
M clang/test/CIR/Transforms/eh-abi-lowering-construct-catch-invalid.cir
M clang/test/CIR/Transforms/eh-abi-lowering-construct-catch.cir
M clang/test/CIR/Transforms/eh-abi-lowering-itanium.cir
M clang/test/CIR/Transforms/flatten-cleanup-scope-eh.cir
M clang/test/CIR/Transforms/flatten-cleanup-scope-multi-exit.cir
M clang/test/CIR/Transforms/flatten-cleanup-scope-simple.cir
M clang/test/CIR/Transforms/flatten-preserve-attrs.cir
M clang/test/CIR/Transforms/flatten-throwing-in-cleanup.cir
M clang/test/CIR/Transforms/flatten-try-op.cir
M clang/test/CIR/Transforms/pure-ptr-arithmetic.cir
M clang/test/CMakeLists.txt
A clang/test/CXX/basic/basic.link/p11.cpp
A clang/test/CXX/expr/expr.prim/expr.prim.this/p4.cpp
M clang/test/CXX/temp/temp.decls/temp.spec.partial/temp.spec.partial.member/p2.cpp
M clang/test/CXX/temp/temp.spec/temp.expl.spec/p7.cpp
A clang/test/CodeGen/AArch64/f16f32dot-intrinsics.c
A clang/test/CodeGen/AArch64/mskernel-interlocked.c
M clang/test/CodeGen/AArch64/neon-intrinsics.c
M clang/test/CodeGen/AArch64/neon/getset.c
M clang/test/CodeGen/AArch64/neon/intrinsics.c
M clang/test/CodeGen/AArch64/poly64.c
M clang/test/CodeGen/RISCV/riscv-cf-protection.c
A clang/test/CodeGen/SystemZ/stack-guard-global-option.c
A clang/test/CodeGen/X86/mskernel-interlocked.c
R clang/test/CodeGen/amdgpu-abi-struct-coerce.c
M clang/test/CodeGen/amdgpu-variadic-call.c
M clang/test/CodeGen/arm64-microsoft-intrinsics.c
M clang/test/CodeGen/arm64-mte.c
A clang/test/CodeGen/builtin-clear-padding-codegen.c
M clang/test/CodeGen/builtin-masked.c
M clang/test/CodeGen/builtins-elementwise-math.c
M clang/test/CodeGen/builtins-nvptx-native-half-type.c
M clang/test/CodeGen/builtins-nvptx.c
M clang/test/CodeGen/cfi-icall-trap-recover-runtime.c
M clang/test/CodeGen/construction-vtable-visibility.cpp
M clang/test/CodeGen/lto-newpm-pipeline.c
M clang/test/CodeGen/math-libcalls-tbaa-indirect-args.c
M clang/test/CodeGen/math-libcalls-tbaa.c
M clang/test/CodeGen/ms-intrinsics.c
M clang/test/CodeGen/promoted-complex-div.c
M clang/test/CodeGen/push-hidden-visibility-subclass.cpp
M clang/test/CodeGen/sanitize-metadata-nosanitize.c
M clang/test/CodeGen/scoped-atomic-ops.c
M clang/test/CodeGen/split-lto-unit-input.cpp
M clang/test/CodeGen/stack-clash-protection.c
M clang/test/CodeGen/unique-internal-linkage-names.cpp
A clang/test/CodeGen/wrapv.c
M clang/test/CodeGenCUDA/amdgpu-kernel-arg-pointer-type.cu
M clang/test/CodeGenCUDA/atomic-options.hip
M clang/test/CodeGenCUDA/builtins-amdgcn.cu
M clang/test/CodeGenCUDA/builtins-spirv-amdgcn.cu
M clang/test/CodeGenCUDA/device-vtable.cu
A clang/test/CodeGenCUDA/implicit-hd-dtor-trap-stub-hip.hip
A clang/test/CodeGenCUDA/implicit-hd-explicit-inst-hip.hip
A clang/test/CodeGenCUDA/implicit-hd-overload-ambig-hip.hip
M clang/test/CodeGenCUDA/increment-index-for-thunks.cu
M clang/test/CodeGenCUDA/record-layout.cu
M clang/test/CodeGenCXX/OmitRTTIComponentABI/simple-vtable-definition.cpp
M clang/test/CodeGenCXX/PR26569.cpp
M clang/test/CodeGenCXX/RelativeVTablesABI/available_externally-vtable.cpp
M clang/test/CodeGenCXX/RelativeVTablesABI/child-inheritted-from-parent-in-comdat.cpp
M clang/test/CodeGenCXX/RelativeVTablesABI/child-vtable-in-comdat.cpp
M clang/test/CodeGenCXX/RelativeVTablesABI/cross-translation-unit-1.cpp
M clang/test/CodeGenCXX/RelativeVTablesABI/cross-translation-unit-2.cpp
M clang/test/CodeGenCXX/RelativeVTablesABI/diamond-inheritance.cpp
M clang/test/CodeGenCXX/RelativeVTablesABI/diamond-virtual-inheritance.cpp
M clang/test/CodeGenCXX/RelativeVTablesABI/inheritted-virtual-function.cpp
M clang/test/CodeGenCXX/RelativeVTablesABI/inline-virtual-function.cpp
M clang/test/CodeGenCXX/RelativeVTablesABI/inlined-key-function.cpp
M clang/test/CodeGenCXX/RelativeVTablesABI/multiple-inheritance.cpp
M clang/test/CodeGenCXX/RelativeVTablesABI/no-alias-when-dso-local.cpp
M clang/test/CodeGenCXX/RelativeVTablesABI/override-pure-virtual-method.cpp
M clang/test/CodeGenCXX/RelativeVTablesABI/overriden-virtual-function.cpp
M clang/test/CodeGenCXX/RelativeVTablesABI/parent-and-child-in-comdats.cpp
M clang/test/CodeGenCXX/RelativeVTablesABI/parent-vtable-in-comdat.cpp
M clang/test/CodeGenCXX/RelativeVTablesABI/relative-vtables-flag.cpp
M clang/test/CodeGenCXX/RelativeVTablesABI/relative-vtables-hwasan.cpp
M clang/test/CodeGenCXX/RelativeVTablesABI/simple-vtable-definition.cpp
M clang/test/CodeGenCXX/RelativeVTablesABI/vtable-hidden-when-in-comdat.cpp
M clang/test/CodeGenCXX/aarch64-mangle-sve-vectors-msvc.cpp
M clang/test/CodeGenCXX/amdgcn-func-arg.cpp
M clang/test/CodeGenCXX/apple-kext-indirect-call-2.cpp
M clang/test/CodeGenCXX/apple-kext-indirect-call.cpp
M clang/test/CodeGenCXX/apple-kext-indirect-virtual-dtor-call.cpp
M clang/test/CodeGenCXX/attr-exclude_from_explicit_instantiation.exclude_from_dllexport.cpp
M clang/test/CodeGenCXX/attr-exclude_from_explicit_instantiation.exclude_from_dllimport.cpp
M clang/test/CodeGenCXX/builtin-amdgcn-fence.cpp
A clang/test/CodeGenCXX/builtin-clear-padding-codegen.cpp
M clang/test/CodeGenCXX/cfi-cross-dso.cpp
M clang/test/CodeGenCXX/cfi-vcall-trap-recover-runtime.cpp
M clang/test/CodeGenCXX/ctor-dtor-alias.cpp
M clang/test/CodeGenCXX/cxx0x-initializer-stdinitializerlist.cpp
M clang/test/CodeGenCXX/cxx11-vtable-key-function.cpp
M clang/test/CodeGenCXX/dllexport.cpp
M clang/test/CodeGenCXX/dllimport-rtti.cpp
M clang/test/CodeGenCXX/dllimport.cpp
M clang/test/CodeGenCXX/dso-local-executable.cpp
M clang/test/CodeGenCXX/dynamic-cast-address-space.cpp
M clang/test/CodeGenCXX/internal-linkage.cpp
M clang/test/CodeGenCXX/key-function-vtable.cpp
M clang/test/CodeGenCXX/mangle-ms-md5.cpp
M clang/test/CodeGenCXX/mangle-subst-std.cpp
M clang/test/CodeGenCXX/mdefault-visibility-export-mapping-rtti.cpp
M clang/test/CodeGenCXX/microsoft-abi-extern-template.cpp
M clang/test/CodeGenCXX/microsoft-abi-vftables.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.cpp
M clang/test/CodeGenCXX/microsoft-interface.cpp
M clang/test/CodeGenCXX/microsoft-no-rtti-data.cpp
M clang/test/CodeGenCXX/microsoft-vector-deleting-dtors.cpp
M clang/test/CodeGenCXX/modules-vtable.cppm
M clang/test/CodeGenCXX/ms-local-vft-alias-comdat.cpp
M clang/test/CodeGenCXX/ms-thunks-unprototyped.cpp
M clang/test/CodeGenCXX/noescape.cpp
M clang/test/CodeGenCXX/pr70585.cppm
M clang/test/CodeGenCXX/ps-dllstorage-vtable-rtti.cpp
M clang/test/CodeGenCXX/ptrauth-apple-kext-indirect-call-2.cpp
M clang/test/CodeGenCXX/ptrauth-apple-kext-indirect-call.cpp
M clang/test/CodeGenCXX/ptrauth-apple-kext-indirect-virtual-dtor-call.cpp
M clang/test/CodeGenCXX/ptrauth-explicit-vtable-pointer-control.cpp
M clang/test/CodeGenCXX/ptrauth-global-constant-initializers.cpp
M clang/test/CodeGenCXX/ptrauth-member-function-pointer.cpp
M clang/test/CodeGenCXX/ptrauth-type-info-vtable.cpp
M clang/test/CodeGenCXX/ptrauth-virtual-function.cpp
M clang/test/CodeGenCXX/ptrauth-vtable-virtual-inheritance-thunk.cpp
M clang/test/CodeGenCXX/template-instantiation.cpp
M clang/test/CodeGenCXX/type-metadata.cpp
M clang/test/CodeGenCXX/type_visibility.cpp
M clang/test/CodeGenCXX/vcall-visibility-metadata.cpp
M clang/test/CodeGenCXX/virt-template-vtable.cpp
M clang/test/CodeGenCXX/visibility-dllstorageclass.cpp
M clang/test/CodeGenCXX/visibility.cpp
M clang/test/CodeGenCXX/vtable-align-address-space.cpp
M clang/test/CodeGenCXX/vtable-align.cpp
M clang/test/CodeGenCXX/vtable-assume-load-address-space.cpp
M clang/test/CodeGenCXX/vtable-assume-load.cpp
M clang/test/CodeGenCXX/vtable-available-externally.cpp
M clang/test/CodeGenCXX/vtable-consteval.cpp
M clang/test/CodeGenCXX/vtable-constexpr-address-space.cpp
M clang/test/CodeGenCXX/vtable-constexpr.cpp
M clang/test/CodeGenCXX/vtable-key-function-address-space.cpp
M clang/test/CodeGenCXX/vtable-key-function-arm.cpp
M clang/test/CodeGenCXX/vtable-key-function-ios.cpp
M clang/test/CodeGenCXX/vtable-key-function-win-comdat.cpp
M clang/test/CodeGenCXX/vtable-key-function.cpp
M clang/test/CodeGenCXX/vtable-linkage-address-space.cpp
M clang/test/CodeGenCXX/vtable-linkage.cpp
M clang/test/CodeGenCXX/vtt-layout-address-space.cpp
M clang/test/CodeGenCXX/vtt-layout.cpp
M clang/test/CodeGenCXX/windows-itanium-type-info.cpp
M clang/test/CodeGenCoroutines/coro-gro4.cpp
M clang/test/CodeGenCoroutines/coro-symmetric-transfer-03.cpp
M clang/test/CodeGenCoroutines/coro-symmetric-transfer-04.cpp
M clang/test/CodeGenCoroutines/pr65018.cpp
M clang/test/CodeGenDirectX/Builtins/dot2add.c
A clang/test/CodeGenHIP/offload-pgo-sections.hip
M clang/test/CodeGenHIP/placement-new-addrspace.hip
A clang/test/CodeGenHIP/profile-coverage-mapping.hip
M clang/test/CodeGenHLSL/ArrayAssignable.logicalptr.hlsl
M clang/test/CodeGenHLSL/BasicFeatures/ArrayReturn.hlsl
M clang/test/CodeGenHLSL/BasicFeatures/InitLists.hlsl
M clang/test/CodeGenHLSL/BasicFeatures/MatrixConstructor.hlsl
M clang/test/CodeGenHLSL/BasicFeatures/MatrixElementTypeCast.hlsl
M clang/test/CodeGenHLSL/BasicFeatures/MatrixExplicitTruncation.hlsl
M clang/test/CodeGenHLSL/BasicFeatures/MatrixImplicitTruncation.hlsl
M clang/test/CodeGenHLSL/BasicFeatures/MatrixSingleSubscriptConstSwizzle.hlsl
M clang/test/CodeGenHLSL/BasicFeatures/MatrixSingleSubscriptDynamicSwizzle.hlsl
M clang/test/CodeGenHLSL/BasicFeatures/MatrixSingleSubscriptGetter.hlsl
M clang/test/CodeGenHLSL/BasicFeatures/MatrixSingleSubscriptSetter.hlsl
M clang/test/CodeGenHLSL/BasicFeatures/MatrixSplat.hlsl
M clang/test/CodeGenHLSL/BasicFeatures/MatrixToAndFromVectorConstructors.hlsl
M clang/test/CodeGenHLSL/BoolMatrix.hlsl
M clang/test/CodeGenHLSL/GlobalConstructorFunction.hlsl
M clang/test/CodeGenHLSL/GlobalConstructorLib.hlsl
M clang/test/CodeGenHLSL/GlobalConstructors.hlsl
M clang/test/CodeGenHLSL/builtins/AddUint64.hlsl
M clang/test/CodeGenHLSL/builtins/BoolSwizzles.hlsl
M clang/test/CodeGenHLSL/builtins/ScalarSwizzles.hlsl
M clang/test/CodeGenHLSL/builtins/abs.hlsl
M clang/test/CodeGenHLSL/builtins/ceil.hlsl
M clang/test/CodeGenHLSL/builtins/f16tof32-builtin.hlsl
M clang/test/CodeGenHLSL/builtins/f16tof32.hlsl
M clang/test/CodeGenHLSL/builtins/f32tof16-builtin.hlsl
M clang/test/CodeGenHLSL/builtins/f32tof16.hlsl
M clang/test/CodeGenHLSL/builtins/floor.hlsl
M clang/test/CodeGenHLSL/builtins/mad.hlsl
A clang/test/CodeGenHLSL/builtins/splitdouble_mat.hlsl
M clang/test/CodeGenHLSL/convergence/cf.for.plain.hlsl
M clang/test/CodeGenHLSL/convergence/do.while.hlsl
M clang/test/CodeGenHLSL/convergence/entry.point.hlsl
M clang/test/CodeGenHLSL/convergence/for.hlsl
M clang/test/CodeGenHLSL/convergence/global_array.hlsl
M clang/test/CodeGenHLSL/convergence/while.hlsl
M clang/test/CodeGenHLSL/matrix-member-one-based-accessor-scalar-load.hlsl
M clang/test/CodeGenHLSL/matrix-member-one-based-accessor-scalar-store.hlsl
M clang/test/CodeGenHLSL/matrix-member-one-based-swizzle-load.hlsl
M clang/test/CodeGenHLSL/matrix-member-one-based-swizzle-store.hlsl
M clang/test/CodeGenHLSL/matrix-member-zero-based-accessor-scalar-load.hlsl
M clang/test/CodeGenHLSL/matrix-member-zero-based-accessor-scalar-store.hlsl
M clang/test/CodeGenHLSL/matrix-member-zero-based-swizzle-load.hlsl
M clang/test/CodeGenHLSL/matrix-member-zero-based-swizzle-store.hlsl
M clang/test/CodeGenHLSL/resources/ByteAddressBuffers-constructors.hlsl
M clang/test/CodeGenHLSL/resources/ByteAddressBuffers-methods.hlsl
M clang/test/CodeGenHLSL/resources/CBufferMatrixSingleSubscriptSwizzle.hlsl
M clang/test/CodeGenHLSL/resources/MatrixElement_cbuffer.hlsl
M clang/test/CodeGenHLSL/resources/StructuredBuffers-methods-lib.hlsl
M clang/test/CodeGenHLSL/resources/StructuredBuffers-methods-ps.hlsl
M clang/test/CodeGenHLSL/resources/Texture2D-Mips.hlsl
M clang/test/CodeGenHLSL/resources/TypedBuffers-constructor.hlsl
M clang/test/CodeGenHLSL/resources/TypedBuffers-methods.hlsl
M clang/test/CodeGenHLSL/resources/cbuffer.hlsl
M clang/test/CodeGenHLSL/resources/cbuffer_with_packoffset.hlsl
M clang/test/CodeGenHLSL/resources/res-array-global-subarray-many.hlsl
M clang/test/CodeGenHLSL/resources/res-array-global-subarray-one.hlsl
A clang/test/CodeGenHLSL/resources/res-array-global-to-local.hlsl
M clang/test/CodeGenHLSL/resources/res-array-local-multi-dim.hlsl
M clang/test/CodeGenHLSL/resources/res-array-local1.hlsl
M clang/test/CodeGenHLSL/resources/res-array-local2.hlsl
M clang/test/CodeGenHLSL/resources/res-array-local3.hlsl
M clang/test/CodeGenHLSL/resources/resource-bindings.hlsl
A clang/test/CodeGenHLSL/resources/resources-in-structs-array-to-local.hlsl
M clang/test/CodeGenHLSL/resources/resources-in-structs-array.hlsl
M clang/test/CodeGenHLSL/resources/resources-in-structs-inheritance.hlsl
M clang/test/CodeGenHLSL/resources/resources-in-structs.hlsl
M clang/test/CodeGenHLSL/static-local-ctor.hlsl
M clang/test/CodeGenHLSL/this-assignment-overload.hlsl
M clang/test/CodeGenHLSL/this-assignment.hlsl
M clang/test/CodeGenHLSL/this-reference.hlsl
M clang/test/CodeGenObjC/exceptions.m
M clang/test/CodeGenObjC/noescape.m
M clang/test/CodeGenOpenCL/addr-space-struct-arg.cl
M clang/test/CodeGenOpenCL/amdgpu-abi-struct-arg-byref.cl
M clang/test/CodeGenOpenCL/amdgpu-abi-struct-coerce.cl
M clang/test/CodeGenOpenCL/amdgpu-enqueue-kernel.cl
M clang/test/CodeGenOpenCL/atomic-builtins-default-to-device-scope.cl
M clang/test/CodeGenOpenCL/atomic-ops.cl
M clang/test/CodeGenSYCL/kernel-caller-entry-point.cpp
M clang/test/DebugInfo/CXX/vtable-inheritance-diamond.cpp
M clang/test/DebugInfo/CXX/vtable-inheritance-multiple.cpp
M clang/test/DebugInfo/CXX/vtable-inheritance-simple-main.cpp
M clang/test/DebugInfo/CXX/vtable-inheritance-simple.cpp
M clang/test/DebugInfo/CXX/vtable-inheritance-virtual.cpp
M clang/test/DebugInfo/CXX/vtable-template-instantiation.cpp
M clang/test/DebugInfo/Generic/sysroot-sdk.c
R clang/test/Driver/Inputs/SYCL/bar.ll
R clang/test/Driver/Inputs/SYCL/baz.ll
R clang/test/Driver/Inputs/SYCL/foo.ll
R clang/test/Driver/Inputs/SYCL/libLLVMSYCL.ll
M clang/test/Driver/amdgpu-validate-sanitize.cl
R clang/test/Driver/clang-offload-bundler-asserts-on.c
A clang/test/Driver/clang-offload-bundler-multi-compress.c
R clang/test/Driver/clang-offload-bundler-standardize.c
R clang/test/Driver/clang-offload-bundler-zlib.c
R clang/test/Driver/clang-offload-bundler-zstd.c
R clang/test/Driver/clang-offload-bundler.c
M clang/test/Driver/clang_wrapv_opts.c
M clang/test/Driver/crash-ir-repro.cpp
A clang/test/Driver/dxc_section_emission.hlsl
R clang/test/Driver/fat-archive-unbundle-ext.c
M clang/test/Driver/freebsd.c
M clang/test/Driver/hexagon-toolchain-elf.c
M clang/test/Driver/hip-options.hip
R clang/test/Driver/link-device-code.test
R clang/test/Driver/linker-wrapper-canonical-prefixes.c
R clang/test/Driver/linker-wrapper-hip-amdgcnspirv.c
R clang/test/Driver/linker-wrapper-hip-no-rdc.c
R clang/test/Driver/linker-wrapper-image.c
R clang/test/Driver/linker-wrapper-llvm-help.c
R clang/test/Driver/linker-wrapper.c
M clang/test/Driver/modules-driver-dep-graph-stdlib-modules.cpp
M clang/test/Driver/modules-driver-import-std.cpp
M clang/test/Driver/msvc-link.c
R clang/test/Driver/nvlink-wrapper.c
A clang/test/Driver/print-enabled-extensions/riscv-sifive-p870-d.c
R clang/test/Driver/print-enabled-extensions/riscv-sifive-p870.c
M clang/test/Driver/print-supported-extensions-riscv.c
M clang/test/Driver/riscv-cpus.c
M clang/test/Driver/split-debug.c
M clang/test/Driver/stack-protector-guard.c
M clang/test/Driver/sycl-link-spirv-target.cpp
M clang/test/Driver/sycl-offload-jit-unix.cpp
M clang/test/Driver/sycl-offload-jit.cpp
M clang/test/Driver/sycl-windows.cpp
M clang/test/Headers/__clang_hip_math.hip
M clang/test/Headers/amdgcn-openmp-device-math-complex.c
M clang/test/Headers/hip-header.hip
M clang/test/Misc/target-invalid-cpu-note/riscv.c
M clang/test/Modules/cxx-templates.cpp
M clang/test/Modules/debug-info-moduleimport.m
M clang/test/Modules/safe_buffers_optout.cpp
A clang/test/Modules/template-default-args-2.cpp
A clang/test/Modules/template-default-args-3.cpp
M clang/test/Modules/vtable-windows.cppm
A clang/test/OffloadTools/clang-linker-wrapper/linker-wrapper-canonical-prefixes.c
A clang/test/OffloadTools/clang-linker-wrapper/linker-wrapper-hip-amdgcnspirv.c
A clang/test/OffloadTools/clang-linker-wrapper/linker-wrapper-hip-no-rdc.c
A clang/test/OffloadTools/clang-linker-wrapper/linker-wrapper-image.c
A clang/test/OffloadTools/clang-linker-wrapper/linker-wrapper-llvm-help.c
A clang/test/OffloadTools/clang-linker-wrapper/linker-wrapper.c
A clang/test/OffloadTools/clang-linker-wrapper/lit.local.cfg
A clang/test/OffloadTools/clang-linker-wrapper/openmp-spirv.cpp
A clang/test/OffloadTools/clang-nvlink-wrapper/nvlink-wrapper.c
A clang/test/OffloadTools/clang-offload-bundler/asserts-on.c
A clang/test/OffloadTools/clang-offload-bundler/basic.c
A clang/test/OffloadTools/clang-offload-bundler/fat-archive-unbundle-ext.c
A clang/test/OffloadTools/clang-offload-bundler/standardize.c
A clang/test/OffloadTools/clang-offload-bundler/zlib.c
A clang/test/OffloadTools/clang-offload-bundler/zstd.c
A clang/test/OffloadTools/clang-sycl-linker/basic.ll
A clang/test/OffloadTools/clang-sycl-linker/link.ll
A clang/test/OffloadTools/clang-sycl-linker/options.ll
A clang/test/OffloadTools/clang-sycl-linker/split-mode.ll
A clang/test/OffloadTools/clang-sycl-linker/triple.ll
M clang/test/OpenMP/amdgcn_target_device_vla.cpp
M clang/test/OpenMP/amdgpu_target_with_aligned_attribute.c
M clang/test/OpenMP/nvptx_target_pure_deleted_codegen.cpp
M clang/test/OpenMP/target_teams_codegen.cpp
M clang/test/OpenMP/target_teams_generic_loop_codegen.cpp
M clang/test/OpenMP/target_teams_generic_loop_codegen_as_distribute.cpp
M clang/test/OpenMP/target_teams_generic_loop_codegen_as_parallel_for.cpp
M clang/test/OpenMP/target_vtable_codegen_explicit.cpp
A clang/test/PCH/friend-template-spec-redecl.cpp
M clang/test/PCH/unsafe-buffer-usage-pragma-pch-complex.cpp
M clang/test/PCH/unsafe-buffer-usage-pragma-pch-cross-files-2.cpp
M clang/test/PCH/unsafe-buffer-usage-pragma-pch-cross-files.cpp
M clang/test/Preprocessor/riscv-target-features.c
M clang/test/Preprocessor/wasm-target-features.c
M clang/test/Sema/Inputs/lifetime-analysis.h
M clang/test/Sema/aarch64-neon-immediate-ranges/dotprod.c
M clang/test/Sema/alloc-size.c
M clang/test/Sema/attr-nonnull.c
A clang/test/Sema/builtin-clear-padding.c
M clang/test/Sema/builtins-arm64-mte.c
M clang/test/Sema/builtins-elementwise-math.c
M clang/test/Sema/constexpr.c
A clang/test/Sema/gh170072.c
A clang/test/Sema/inline-asm-constraint-embedded-null.c
M clang/test/Sema/warn-documentation.cpp
M clang/test/Sema/warn-lifetime-analysis-nocfg.cpp
M clang/test/Sema/warn-lifetime-safety-cfg-bailout.cpp
M clang/test/Sema/warn-lifetime-safety-dangling-field.cpp
M clang/test/Sema/warn-lifetime-safety-dangling-global.cpp
M clang/test/Sema/warn-lifetime-safety-fixits.cpp
M clang/test/Sema/warn-lifetime-safety-invalidations.cpp
M clang/test/Sema/warn-lifetime-safety-lifetimebound.cpp
M clang/test/Sema/warn-lifetime-safety-misplaced-lifetimebound-cross-tu.cpp
M clang/test/Sema/warn-lifetime-safety-misplaced-lifetimebound-intra-tu.cpp
A clang/test/Sema/warn-lifetime-safety-misplaced-lifetimebound-macro.cpp
M clang/test/Sema/warn-lifetime-safety-suggestions.cpp
M clang/test/Sema/warn-lifetime-safety.cpp
M clang/test/SemaCUDA/dtor.cu
A clang/test/SemaCUDA/implicit-hd-dtor-explicit-instantiation.cu
A clang/test/SemaCUDA/implicit-hd-explicit-inst-organic-caller.cu
A clang/test/SemaCUDA/implicit-hd-overload-ambig-organic-caller.cu
M clang/test/SemaCXX/builtin-bit-cast.cpp
A clang/test/SemaCXX/builtin-clear-padding.cpp
M clang/test/SemaCXX/constant-expression-cxx14.cpp
M clang/test/SemaCXX/constant-expression-p2280r4.cpp
M clang/test/SemaCXX/cxx2a-consteval.cpp
M clang/test/SemaCXX/cxx2c-decomposition.cpp
M clang/test/SemaCXX/init-priority-attr.cpp
A clang/test/SemaCXX/os_log.cpp
M clang/test/SemaCXX/typeof.cpp
A clang/test/SemaCXX/warn-unsafe-buffer-usage-pragma-issue-79379.cpp
M clang/test/SemaCXX/warn-unsafe-buffer-usage-pragma-pch.cpp
A clang/test/SemaCXX/warn-unsafe-buffer-usage-template-instantiation-notes.cpp
M clang/test/SemaHLSL/BuiltIns/asuint-errors.hlsl
M clang/test/SemaHLSL/BuiltIns/asuint_mat-errors.hlsl
M clang/test/SemaHLSL/BuiltIns/splitdouble-errors.hlsl
A clang/test/SemaHLSL/Language/ConstexprVectorCasts.hlsl
M clang/test/SemaHLSL/Resources/static_resources.hlsl
A clang/test/SemaHLSL/Types/BuiltinVector/VectorCastConstantExpr.hlsl
M clang/test/SemaOpenACC/combined-construct-copy-ast.cpp
M clang/test/SemaOpenACC/combined-construct-copyin-ast.cpp
M clang/test/SemaOpenACC/combined-construct-copyout-ast.cpp
M clang/test/SemaOpenACC/combined-construct-create-ast.cpp
M clang/test/SemaOpenACC/combined-construct-no_create-ast.cpp
M clang/test/SemaOpenACC/combined-construct-present-ast.cpp
M clang/test/SemaOpenACC/combined-construct-private-firstprivate-ast.cpp
A clang/test/SemaOpenACC/compute-construct-reduction-vla.c
A clang/test/SemaOpenACC/compute-construct-reduction-vla.cpp
M clang/test/SemaOpenACC/compute-construct-varlist-ast.cpp
M clang/test/SemaOpenACC/data-construct-copy-ast.cpp
M clang/test/SemaOpenACC/data-construct-copyin-ast.cpp
M clang/test/SemaOpenACC/data-construct-copyout-ast.cpp
M clang/test/SemaOpenACC/data-construct-create-ast.cpp
M clang/test/SemaOpenACC/data-construct-no_create-ast.cpp
M clang/test/SemaOpenACC/data-construct-present-ast.cpp
M clang/test/SemaOpenACC/sub-array-ast.cpp
M clang/test/SemaOpenCL/builtins-amdgcn-error-gfx1250-cooperative-atomics.cl
A clang/test/SemaOpenCL/intel-bfloat16-conversions-builtins.cl
A clang/test/SemaOpenCL/intel-split-work-group-barrier-builtins.cl
A clang/test/SemaOpenCL/intel-subgroup-buffer-prefetch-builtins.cl
A clang/test/SemaOpenCL/intel-subgroup-local-block-io-builtins.cl
A clang/test/SemaOpenCL/intel-subgroup-local-block-io-ui-without-char-short-long.cl
M clang/test/SemaOpenCL/intel-subgroups-builtins.cl
M clang/test/SemaTemplate/alias-templates.cpp
M clang/test/SemaTemplate/class-template-spec.cpp
M clang/test/SemaTemplate/concepts-lambda.cpp
M clang/test/SemaTemplate/concepts-using-decl.cpp
M clang/test/SemaTemplate/concepts.cpp
M clang/test/SemaTemplate/generic-lambda.cpp
M clang/test/SemaTemplate/partial-spec-instantiate.cpp
R clang/test/Tooling/clang-linker-wrapper-spirv.cpp
R clang/test/Tooling/clang-sycl-linker-split-mode.ll
R clang/test/Tooling/clang-sycl-linker-triple.ll
R clang/test/Tooling/clang-sycl-linker.ll
M clang/test/Tooling/lit.local.cfg
M clang/test/lit.cfg.py
M clang/tools/clang-linker-wrapper/ClangLinkerWrapper.cpp
M clang/tools/clang-scan-deps/ClangScanDeps.cpp
M clang/tools/clang-scan-deps/Opts.td
M clang/tools/clang-sycl-linker/ClangSYCLLinker.cpp
M clang/tools/clang-sycl-linker/SYCLLinkOpts.td
M clang/tools/libclang/CIndex.cpp
M clang/tools/libclang/CXCursor.cpp
M clang/tools/libclang/Indexing.cpp
M clang/unittests/AST/ByteCode/CMakeLists.txt
A clang/unittests/AST/ByteCode/Pointer.cpp
M clang/unittests/Analysis/ExprMutationAnalyzerTest.cpp
M clang/unittests/Analysis/FlowSensitive/MockHeaders.cpp
M clang/unittests/Analysis/FlowSensitive/UncheckedStatusOrAccessModelTestFixture.cpp
M clang/unittests/Analysis/LifetimeSafetyTest.cpp
M clang/unittests/Basic/DarwinSDKInfoTest.cpp
M clang/unittests/Basic/FileManagerTest.cpp
M clang/unittests/CIR/PointerLikeTest.cpp
M clang/unittests/CIR/RecordTypeMetadataTest.cpp
M clang/unittests/CIR/UnionTypeSizeTest.cpp
M clang/unittests/DependencyScanning/DependencyScanningFilesystemTest.cpp
M clang/unittests/Format/DefinitionBlockSeparatorTest.cpp
M clang/unittests/Format/FormatTestVerilog.cpp
M clang/unittests/ScalableStaticAnalysisFramework/Frontend/TUSummaryExtractorFrontendActionTest.cpp
M clang/unittests/ScalableStaticAnalysisFramework/Registries/FancyAnalysisData.cpp
M clang/unittests/ScalableStaticAnalysisFramework/Registries/MockSerializationFormat.cpp
M clang/unittests/ScalableStaticAnalysisFramework/Registries/MockSummaryExtractor1.cpp
M clang/unittests/ScalableStaticAnalysisFramework/Registries/MockSummaryExtractor2.cpp
R clang/unittests/ScalableStaticAnalysisFramework/SSAFBuiltinTestForceLinker.h
R clang/unittests/ScalableStaticAnalysisFramework/SSAFTestForceLinker.h
M clang/unittests/ScalableStaticAnalysisFramework/TestFixture.cpp
M clang/unittests/ScalableStaticAnalysisFramework/WholeProgramAnalysis/AnalysisDriverTest.cpp
M clang/unittests/ScalableStaticAnalysisFramework/WholeProgramAnalysis/UnsafeBufferReachableAnalysisTest.cpp
M clang/unittests/StaticAnalyzer/BlockEntranceCallbackTest.cpp
M clang/unittests/StaticAnalyzer/CallDescriptionTest.cpp
M clang/unittests/StaticAnalyzer/CallEventTest.cpp
M clang/unittests/StaticAnalyzer/FalsePositiveRefutationBRVisitorTest.cpp
M clang/unittests/StaticAnalyzer/ParamRegionTest.cpp
M clang/unittests/StaticAnalyzer/StoreTest.cpp
M clang/unittests/StaticAnalyzer/SymbolReaperTest.cpp
M clang/unittests/StaticAnalyzer/UnsignedStatDemo.cpp
M clang/unittests/Tooling/Syntax/BuildTreeTest.cpp
M clang/utils/TableGen/RISCVVEmitter.cpp
M clang/utils/perf-training/lit.site.cfg.in
M clang/www/analyzer/checker_dev_manual.html
M clang/www/c_status.html
M clang/www/cxx_dr_status.html
M compiler-rt/CMakeLists.txt
M compiler-rt/cmake/Modules/AllSupportedArchDefs.cmake
M compiler-rt/cmake/base-config-ix.cmake
M compiler-rt/docs/BuildingCompilerRT.rst
M compiler-rt/include/sanitizer/common_interface_defs.h
M compiler-rt/include/sanitizer/tysan_interface.h
M compiler-rt/lib/asan/asan_allocator.cpp
M compiler-rt/lib/asan/asan_allocator.h
M compiler-rt/lib/asan/asan_errors.cpp
M compiler-rt/lib/asan/asan_errors.h
M compiler-rt/lib/asan/asan_interceptors.cpp
M compiler-rt/lib/asan/asan_malloc_linux.cpp
M compiler-rt/lib/asan/asan_malloc_mac.cpp
M compiler-rt/lib/asan/asan_mapping.h
M compiler-rt/lib/asan/asan_new_delete.cpp
M compiler-rt/lib/asan/asan_poisoning.cpp
M compiler-rt/lib/asan/asan_report.cpp
M compiler-rt/lib/asan/asan_report.h
M compiler-rt/lib/asan/tests/asan_noinst_test.cpp
M compiler-rt/lib/builtins/CMakeLists.txt
A compiler-rt/lib/builtins/arm/extendsfdf2.S
A compiler-rt/lib/builtins/arm/fixdfdi.S
A compiler-rt/lib/builtins/arm/fixdfsi.S
A compiler-rt/lib/builtins/arm/fixsfdi.S
A compiler-rt/lib/builtins/arm/fixsfsi.S
A compiler-rt/lib/builtins/arm/fixunsdfdi.S
A compiler-rt/lib/builtins/arm/fixunsdfsi.S
A compiler-rt/lib/builtins/arm/fixunssfdi.S
A compiler-rt/lib/builtins/arm/fixunssfsi.S
A compiler-rt/lib/builtins/arm/truncdfsf2.S
M compiler-rt/lib/builtins/atomic.c
M compiler-rt/lib/builtins/clear_cache.c
M compiler-rt/lib/builtins/ppc/init_ifuncs.c
M compiler-rt/lib/profile/CMakeLists.txt
M compiler-rt/lib/profile/InstrProfilingFile.c
A compiler-rt/lib/profile/InstrProfilingPlatformROCm.cpp
M compiler-rt/lib/sanitizer_common/sanitizer_asm.h
M compiler-rt/lib/sanitizer_common/sanitizer_common.h
M compiler-rt/lib/sanitizer_common/sanitizer_common_interceptors.inc
M compiler-rt/lib/sanitizer_common/sanitizer_common_interface.inc
M compiler-rt/lib/sanitizer_common/sanitizer_interface_internal.h
M compiler-rt/lib/sanitizer_common/sanitizer_linux.cpp
M compiler-rt/lib/sanitizer_common/sanitizer_linux_libcdep.cpp
M compiler-rt/lib/sanitizer_common/sanitizer_mac.cpp
M compiler-rt/lib/sanitizer_common/sanitizer_platform.h
M compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_linux.cpp
M compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.cpp
M compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.h
A compiler-rt/lib/sanitizer_common/sanitizer_syscall_linux_alpha.inc
M compiler-rt/lib/sanitizer_common/sanitizer_win.cpp
M compiler-rt/lib/scudo/standalone/combined.h
M compiler-rt/lib/scudo/standalone/include/scudo/interface.h
M compiler-rt/lib/scudo/standalone/mem_map_linux.cpp
M compiler-rt/lib/scudo/standalone/memtag.h
M compiler-rt/lib/scudo/standalone/primary32.h
M compiler-rt/lib/scudo/standalone/primary64.h
M compiler-rt/lib/scudo/standalone/report_linux.cpp
M compiler-rt/lib/scudo/standalone/report_linux.h
M compiler-rt/lib/scudo/standalone/secondary.h
M compiler-rt/lib/scudo/standalone/tests/CMakeLists.txt
A compiler-rt/lib/scudo/standalone/tests/error_info_test.cpp
M compiler-rt/lib/scudo/standalone/tests/primary_test.cpp
M compiler-rt/lib/scudo/standalone/tests/report_test.cpp
M compiler-rt/lib/scudo/standalone/wrappers_c.cpp
M compiler-rt/lib/tsan/rtl/tsan_interceptors_posix.cpp
M compiler-rt/lib/tysan/tysan.cpp
M compiler-rt/lib/tysan/tysan.h
M compiler-rt/lib/tysan/tysan_interceptors.cpp
M compiler-rt/test/CMakeLists.txt
R compiler-rt/test/asan/TestCases/copy_container_annotations.cpp
M compiler-rt/test/builtins/Unit/atomic_test.c
A compiler-rt/test/builtins/Unit/extendsfdf2new_test.c
A compiler-rt/test/builtins/Unit/fixdfdinew_test.c
A compiler-rt/test/builtins/Unit/fixdfsinew_test.c
A compiler-rt/test/builtins/Unit/fixsfdinew_test.c
A compiler-rt/test/builtins/Unit/fixsfsinew_test.c
A compiler-rt/test/builtins/Unit/fixunsdfdinew_test.c
A compiler-rt/test/builtins/Unit/fixunsdfsinew_test.c
A compiler-rt/test/builtins/Unit/fixunssfdinew_test.c
A compiler-rt/test/builtins/Unit/fixunssfsinew_test.c
A compiler-rt/test/builtins/Unit/truncdfsf2new_test.c
A compiler-rt/test/tysan/set_type_unknown-interface.c
M compiler-rt/test/ubsan/TestCases/Integer/shift.cpp
M compiler-rt/test/ubsan/TestCases/Misc/abs.cpp
M cross-project-tests/intrinsic-header-tests/wasm_simd128.c
M flang-rt/CMakeLists.txt
M flang-rt/cmake/modules/AddFlangRT.cmake
M flang-rt/cmake/modules/AddFlangRTOffload.cmake
A flang-rt/cmake/modules/FlangRTIntrospection.cmake
M flang-rt/include/flang-rt/runtime/io-stmt.h
M flang-rt/lib/CMakeLists.txt
M flang-rt/lib/runtime/CMakeLists.txt
A flang-rt/lib/runtime/__cuda_builtins.f90
A flang-rt/lib/runtime/__cuda_device.f90
A flang-rt/lib/runtime/__fortran_builtins.f90
A flang-rt/lib/runtime/__fortran_ieee_exceptions.f90
A flang-rt/lib/runtime/__fortran_type_info.f90
A flang-rt/lib/runtime/__ppc_intrinsics.f90
A flang-rt/lib/runtime/__ppc_types.f90
A flang-rt/lib/runtime/cooperative_groups.f90
A flang-rt/lib/runtime/cuda_runtime_api.f90
A flang-rt/lib/runtime/cudadevice.f90
A flang-rt/lib/runtime/flang_debug.f90
A flang-rt/lib/runtime/ieee_arithmetic.f90
A flang-rt/lib/runtime/ieee_exceptions.f90
A flang-rt/lib/runtime/ieee_features.f90
M flang-rt/lib/runtime/io-api-common.h
M flang-rt/lib/runtime/io-api-server.cpp
A flang-rt/lib/runtime/io-stmt-minimal.cpp
A flang-rt/lib/runtime/iso_c_binding.f90
A flang-rt/lib/runtime/iso_fortran_env.f90
M flang-rt/lib/runtime/iso_fortran_env_impl.cpp
A flang-rt/lib/runtime/iso_fortran_env_impl.f90
M flang-rt/lib/runtime/main.cpp
A flang-rt/lib/runtime/mma.f90
M flang-rt/lib/runtime/transformational.cpp
M flang-rt/test/CMakeLists.txt
M flang-rt/test/Driver/compare_iso_fortran_env_symbols.f90
M flang-rt/test/Driver/iso_fortran_env_impl.f90
M flang-rt/test/lit.cfg.py
M flang-rt/test/lit.site.cfg.py.in
M flang/CMakeLists.txt
M flang/docs/Extensions.md
M flang/docs/FortranStandardsSupport.md
M flang/include/flang/Common/Fortran-consts.h
M flang/include/flang/Evaluate/type.h
M flang/include/flang/Lower/CallInterface.h
M flang/include/flang/Lower/ConvertVariable.h
M flang/include/flang/Lower/IterationSpace.h
M flang/include/flang/Lower/Support/PrivateReductionUtils.h
M flang/include/flang/Lower/Support/Utils.h
M flang/include/flang/Optimizer/Builder/FIRBuilder.h
A flang/include/flang/Optimizer/Dialect/FIRBoxUtils.h
M flang/include/flang/Optimizer/Dialect/FIRType.h
M flang/include/flang/Optimizer/Dialect/FIRTypes.td
M flang/include/flang/Optimizer/HLFIR/Passes.td
M flang/include/flang/Parser/dump-parse-tree.h
M flang/include/flang/Parser/parse-tree.h
M flang/include/flang/Semantics/openmp-utils.h
M flang/include/flang/Semantics/semantics.h
M flang/include/flang/Semantics/symbol.h
M flang/include/flang/Support/Fortran.h
M flang/include/flang/Support/LangOptions.def
M flang/lib/Evaluate/formatting.cpp
M flang/lib/Evaluate/tools.cpp
M flang/lib/Evaluate/type.cpp
M flang/lib/Frontend/CompilerInvocation.cpp
M flang/lib/Frontend/FrontendAction.cpp
M flang/lib/Lower/Allocatable.cpp
M flang/lib/Lower/CallInterface.cpp
M flang/lib/Lower/ConvertCall.cpp
M flang/lib/Lower/ConvertConstant.cpp
M flang/lib/Lower/ConvertVariable.cpp
M flang/lib/Lower/MultiImageFortran.cpp
M flang/lib/Lower/OpenMP/Atomic.cpp
M flang/lib/Lower/OpenMP/ClauseProcessor.cpp
M flang/lib/Lower/OpenMP/ClauseProcessor.h
M flang/lib/Lower/OpenMP/Clauses.cpp
M flang/lib/Lower/OpenMP/DataSharingProcessor.cpp
M flang/lib/Lower/OpenMP/OpenMP.cpp
M flang/lib/Lower/Support/PrivateReductionUtils.cpp
M flang/lib/Lower/Support/Utils.cpp
M flang/lib/Optimizer/Analysis/AliasAnalysis.cpp
M flang/lib/Optimizer/Analysis/ArraySectionAnalyzer.cpp
M flang/lib/Optimizer/Builder/CUDAIntrinsicCall.cpp
M flang/lib/Optimizer/Builder/FIRBuilder.cpp
M flang/lib/Optimizer/Builder/IntrinsicCall.cpp
M flang/lib/Optimizer/Dialect/CMakeLists.txt
A flang/lib/Optimizer/Dialect/FIRBoxUtils.cpp
M flang/lib/Optimizer/Dialect/FIROps.cpp
M flang/lib/Optimizer/HLFIR/Transforms/CMakeLists.txt
M flang/lib/Optimizer/HLFIR/Transforms/OptimizedBufferization.cpp
A flang/lib/Optimizer/HLFIR/Transforms/SeparateAllocatableAssign.cpp
M flang/lib/Optimizer/Passes/Pipelines.cpp
M flang/lib/Optimizer/Transforms/FIRToMemRef.cpp
M flang/lib/Parser/Fortran-parsers.cpp
M flang/lib/Parser/program-parsers.cpp
M flang/lib/Parser/unparse.cpp
M flang/lib/Semantics/check-omp-atomic.cpp
M flang/lib/Semantics/check-omp-loop.cpp
M flang/lib/Semantics/check-omp-metadirective.cpp
M flang/lib/Semantics/check-omp-structure.cpp
M flang/lib/Semantics/check-omp-structure.h
M flang/lib/Semantics/expression.cpp
M flang/lib/Semantics/mod-file.cpp
M flang/lib/Semantics/openmp-utils.cpp
M flang/lib/Semantics/resolve-directives.cpp
M flang/lib/Semantics/resolve-names.cpp
M flang/lib/Semantics/semantics.cpp
M flang/lib/Semantics/type.cpp
M flang/lib/Support/Fortran.cpp
R flang/module/.clang-format
R flang/module/__cuda_builtins.f90
R flang/module/__cuda_device.f90
R flang/module/__fortran_builtins.f90
R flang/module/__fortran_ieee_exceptions.f90
R flang/module/__fortran_type_info.f90
R flang/module/__ppc_intrinsics.f90
R flang/module/__ppc_types.f90
R flang/module/cooperative_groups.f90
R flang/module/cuda_runtime_api.f90
R flang/module/cudadevice.f90
R flang/module/flang_debug.f90
R flang/module/ieee_arithmetic.f90
R flang/module/ieee_exceptions.f90
R flang/module/ieee_features.f90
R flang/module/iso_c_binding.f90
R flang/module/iso_fortran_env.f90
R flang/module/iso_fortran_env_impl.f90
R flang/module/mma.f90
M flang/test/Analysis/AliasAnalysis/alias-analysis-acc.mlir
M flang/test/CMakeLists.txt
R flang/test/Driver/Inputs/resource_dir_with_per_target_subdir/finclude/flang/x86_64-unknown-linux-gnu/.keep
M flang/test/Driver/intrinsic-module-path_per_target.f90
M flang/test/Driver/mlir-debug-pass-pipeline.f90
M flang/test/Driver/mlir-pass-pipeline.f90
M flang/test/Driver/pp-fixed-form.f90
M flang/test/Fir/array-coor-canonicalization.fir
M flang/test/Fir/basic-program.fir
A flang/test/HLFIR/c_devptr_byvalue.cuf
A flang/test/HLFIR/opt-bufferization-dealloc-conflict.fir
A flang/test/HLFIR/order_assignments/where-allocatable-base.f90
A flang/test/HLFIR/separate-allocatable-assign.fir
A flang/test/Integration/OpenMP/atomic-capture-release.f90
M flang/test/Integration/OpenMP/atomic-compare.f90
M flang/test/Integration/OpenMP/workshare-axpy.f90
M flang/test/Lower/CUDA/cuda-device-proc.cuf
M flang/test/Lower/HLFIR/structure-constructor.f90
M flang/test/Lower/MIF/coarray_allocation.f90
R flang/test/Lower/OpenMP/Todo/dyn-groupprivate-clause.f90
M flang/test/Lower/OpenMP/Todo/omp-declare-reduction-advanced-types.f90
A flang/test/Lower/OpenMP/Todo/ordered-depend.f90
M flang/test/Lower/OpenMP/Todo/reduction-character-dynamic-length.f90
A flang/test/Lower/OpenMP/atomic-mem-order-transform.f90
M flang/test/Lower/OpenMP/atomic-requires-conflict-v50-3.f90
M flang/test/Lower/OpenMP/atomic-requires-conflict-v50-4.f90
M flang/test/Lower/OpenMP/composite_simd_linear.f90
A flang/test/Lower/OpenMP/copyprivate6.f90
A flang/test/Lower/OpenMP/declare-reduction-no-initializer-derived.f90
A flang/test/Lower/OpenMP/declare-reduction-no-initializer-intrinsic.f90
A flang/test/Lower/OpenMP/declare-reduction-no-initializer-target-derived.f90
A flang/test/Lower/OpenMP/declare-reduction-no-initializer-unsupported.f90
A flang/test/Lower/OpenMP/declare-reduction-target-intrinsic.f90
M flang/test/Lower/OpenMP/distribute-parallel-do-simd.f90
M flang/test/Lower/OpenMP/distribute-simd.f90
A flang/test/Lower/OpenMP/dyn-groupprivate-clause.f90
M flang/test/Lower/OpenMP/linear_modifier.f90
M flang/test/Lower/OpenMP/loop-pointer-variable.f90
M flang/test/Lower/OpenMP/ordered-simd.f90
M flang/test/Lower/OpenMP/private-derived-type.f90
M flang/test/Lower/OpenMP/requires-admo-acqrel.f90
M flang/test/Lower/OpenMP/simd_aarch64.f90
M flang/test/Lower/OpenMP/target-enter-data-default-openmp52.f90
M flang/test/Lower/OpenMP/wsloop-simd.f90
M flang/test/Lower/call-copy-in-out.f90
A flang/test/Lower/component-wise-init.f90
M flang/test/Lower/default-initialization.f90
M flang/test/Lower/derived-type-finalization.f90
M flang/test/Lower/derived-type-temp.f90
M flang/test/Lower/forall/forall-allocatable-2.f90
M flang/test/Lower/pointer-default-init.f90
A flang/test/Lower/typeof-classof.f90
M flang/test/Lower/where-loc.f90
M flang/test/Parser/bug2280.f90
A flang/test/Parser/compiler-directive-in-interface.f90
A flang/test/Parser/typeof-classof-attrs.f90
M flang/test/Preprocessing/fixed-free.f
M flang/test/Preprocessing/no-pp-if.f90
A flang/test/Preprocessing/show-macros-stdin.f90
A flang/test/Semantics/Inputs/device_modfile01_a.mod
A flang/test/Semantics/OpenMP/atomic-mem-order.f90
M flang/test/Semantics/OpenMP/atomic01.f90
A flang/test/Semantics/OpenMP/declare-reduction-accessibility.f90
A flang/test/Semantics/OpenMP/declare-reduction-default-private.f90
A flang/test/Semantics/OpenMP/declare-reduction-modfile-private.f90
A flang/test/Semantics/OpenMP/declare-reduction-public-regression.f90
A flang/test/Semantics/OpenMP/declare-reduction-use-assoc-named.f90
A flang/test/Semantics/OpenMP/declare-reduction-use-assoc.f90
A flang/test/Semantics/OpenMP/declare-simd-interface-body.f90
M flang/test/Semantics/OpenMP/declare-simd-uniform.f90
A flang/test/Semantics/OpenMP/declare-variant-match.f90
M flang/test/Semantics/OpenMP/declare-variant.f90
R flang/test/Semantics/OpenMP/detach-symbols.f90
A flang/test/Semantics/OpenMP/linear-clause-array-section.f90
M flang/test/Semantics/OpenMP/linear-clause03.f90
A flang/test/Semantics/OpenMP/workdistribute05.f90
A flang/test/Semantics/PowerPC/ppc-vector-diagnostics.f90
M flang/test/Semantics/bug163242.f90
M flang/test/Semantics/bug164303.f90
M flang/test/Semantics/bug2021.f90
A flang/test/Semantics/cuf-missing-intrinsic-modules.cuf
A flang/test/Semantics/device-modfile01.f90
A flang/test/Semantics/device-modfile02.f90
A flang/test/Semantics/typeof-classof-errors.f90
A flang/test/Semantics/typeof-classof.f90
M flang/test/Transforms/FIRToMemRef/array-coor-rebox-slice-shape.mlir
M flang/test/Transforms/FIRToMemRef/array-coor-slice-shift.mlir
M flang/test/Transforms/FIRToMemRef/slice-projected.mlir
M flang/test/lit.cfg.py
M flang/test/lit.site.cfg.py.in
M flang/tools/CMakeLists.txt
R flang/tools/f18/CMakeLists.txt
R flang/tools/f18/dump.cpp
M libc/cmake/modules/CheckCompilerFeatures.cmake
M libc/cmake/modules/LLVMLibCCompileOptionRules.cmake
M libc/cmake/modules/LLVMLibCTestRules.cmake
A libc/cmake/modules/compiler_features/check_stdc_fenv_access.cpp
M libc/config/baremetal/aarch64/entrypoints.txt
M libc/config/baremetal/arm/entrypoints.txt
M libc/config/baremetal/config.json
M libc/config/baremetal/riscv/entrypoints.txt
M libc/config/darwin/aarch64/entrypoints.txt
M libc/config/gpu/amdgpu/entrypoints.txt
M libc/config/gpu/nvptx/entrypoints.txt
M libc/config/linux/aarch64/entrypoints.txt
M libc/config/linux/aarch64/headers.txt
M libc/config/linux/arm/headers.txt
M libc/config/linux/riscv/entrypoints.txt
M libc/config/linux/riscv/headers.txt
M libc/config/linux/x86_64/entrypoints.txt
M libc/config/linux/x86_64/headers.txt
M libc/docs/CMakeLists.txt
M libc/docs/headers/index.rst
M libc/docs/porting.rst
M libc/hdr/types/CMakeLists.txt
A libc/hdr/types/struct_udphdr.h
M libc/include/CMakeLists.txt
M libc/include/limits.yaml
M libc/include/llvm-libc-macros/CMakeLists.txt
M libc/include/llvm-libc-macros/limits-macros.h
M libc/include/llvm-libc-macros/linux/unistd-macros.h
A libc/include/llvm-libc-macros/sys-param-macros.h
M libc/include/llvm-libc-types/CMakeLists.txt
A libc/include/llvm-libc-types/struct_udphdr.h
M libc/include/math.yaml
A libc/include/netinet/tcp.yaml
A libc/include/netinet/udp.yaml
A libc/include/sys/param.yaml
M libc/include/unistd.yaml
M libc/include/wchar.yaml
M libc/include/wctype.yaml
M libc/shared/math.h
A libc/shared/math/isnanf16.h
M libc/src/__support/CMakeLists.txt
M libc/src/__support/CPP/cstddef.h
M libc/src/__support/FPUtil/FEnvImpl.h
M libc/src/__support/FPUtil/x86_64/sqrt.h
M libc/src/__support/File/linux/CMakeLists.txt
M libc/src/__support/File/linux/dir.cpp
M libc/src/__support/File/linux/file.cpp
M libc/src/__support/OSUtil/linux/CMakeLists.txt
M libc/src/__support/OSUtil/linux/auxv.h
M libc/src/__support/OSUtil/linux/syscall_wrappers/mprotect.h
M libc/src/__support/OSUtil/linux/syscall_wrappers/munmap.h
M libc/src/__support/macros/optimization.h
M libc/src/__support/math/CMakeLists.txt
M libc/src/__support/math/acos.h
M libc/src/__support/math/asin.h
M libc/src/__support/math/asin_utils.h
M libc/src/__support/math/asinpi.h
M libc/src/__support/math/atan2f128.h
M libc/src/__support/math/atan_utils.h
M libc/src/__support/math/cbrt.h
M libc/src/__support/math/cos.h
M libc/src/__support/math/exp.h
M libc/src/__support/math/exp10.h
M libc/src/__support/math/exp2.h
M libc/src/__support/math/expm1.h
M libc/src/__support/math/expxf16_utils.h
M libc/src/__support/math/hypotf16.h
A libc/src/__support/math/isnanf16.h
M libc/src/__support/math/log.h
M libc/src/__support/math/log10.h
M libc/src/__support/math/log1p.h
M libc/src/__support/math/log2.h
M libc/src/__support/math/log_range_reduction.h
M libc/src/__support/math/range_reduction_double_common.h
M libc/src/__support/math/sin.h
M libc/src/__support/math/sincos.h
M libc/src/__support/math/sincos_eval.h
M libc/src/__support/math/tan.h
A libc/src/__support/net/CMakeLists.txt
A libc/src/__support/net/address.cpp
A libc/src/__support/net/address.h
M libc/src/__support/threads/linux/CMakeLists.txt
M libc/src/__support/threads/linux/thread.cpp
M libc/src/__support/wctype/CMakeLists.txt
M libc/src/__support/wctype/perfect_hash_map.h
A libc/src/__support/wctype/wctype_conversion_utils.cpp
A libc/src/__support/wctype/wctype_conversion_utils.h
M libc/src/__support/wctype_utils.h
M libc/src/arpa/inet/CMakeLists.txt
M libc/src/arpa/inet/inet_addr.cpp
M libc/src/arpa/inet/inet_aton.cpp
M libc/src/fcntl/linux/CMakeLists.txt
M libc/src/fcntl/linux/creat.cpp
M libc/src/inttypes/strtoimax.cpp
M libc/src/inttypes/strtoumax.cpp
M libc/src/math/CMakeLists.txt
M libc/src/math/generic/CMakeLists.txt
A libc/src/math/generic/isnanf16.cpp
A libc/src/math/isnanf16.h
M libc/src/spawn/linux/CMakeLists.txt
M libc/src/spawn/linux/posix_spawn.cpp
M libc/src/stdlib/qsort_data.h
M libc/src/stdlib/strtol.cpp
M libc/src/stdlib/strtol_l.cpp
M libc/src/stdlib/strtoll.cpp
M libc/src/stdlib/strtoll_l.cpp
M libc/src/stdlib/strtoul.cpp
M libc/src/stdlib/strtoul_l.cpp
M libc/src/stdlib/strtoull.cpp
M libc/src/stdlib/strtoull_l.cpp
M libc/src/unistd/linux/sysconf.cpp
M libc/src/wchar/CMakeLists.txt
A libc/src/wchar/swprintf.cpp
A libc/src/wchar/swprintf.h
M libc/src/wchar/wcstol.cpp
M libc/src/wchar/wcstoll.cpp
M libc/src/wchar/wcstoul.cpp
M libc/src/wchar/wcstoull.cpp
M libc/src/wctype/CMakeLists.txt
A libc/src/wctype/towlower.cpp
A libc/src/wctype/towlower.h
A libc/src/wctype/towupper.cpp
A libc/src/wctype/towupper.h
M libc/src/wctype/wctype.cpp
R libc/src/wctype/wctype.h
A libc/src/wctype/wctype_impl.h
M libc/startup/linux/aarch64/CMakeLists.txt
M libc/startup/linux/aarch64/tls.cpp
M libc/startup/linux/riscv/CMakeLists.txt
M libc/startup/linux/riscv/tls.cpp
M libc/startup/linux/x86_64/CMakeLists.txt
M libc/startup/linux/x86_64/tls.cpp
M libc/test/CMakeLists.txt
M libc/test/UnitTest/FPMatcher.h
M libc/test/UnitTest/LibcTest.h
M libc/test/include/CMakeLists.txt
A libc/test/include/unistd_macros_test.cpp
M libc/test/integration/src/__support/GPU/CMakeLists.txt
M libc/test/shared/CMakeLists.txt
M libc/test/shared/shared_math_constexpr_test.cpp
M libc/test/shared/shared_math_test.cpp
M libc/test/src/CMakeLists.txt
M libc/test/src/__support/CPP/limits_test.cpp
M libc/test/src/__support/FPUtil/comparison_operations_test.cpp
M libc/test/src/__support/FPUtil/dyadic_float_test.cpp
M libc/test/src/__support/FPUtil/fpbits_test.cpp
M libc/test/src/__support/threads/linux/raw_mutex_test.cpp
M libc/test/src/__support/wctype/CMakeLists.txt
M libc/test/src/__support/wctype_utils_test.cpp
M libc/test/src/arpa/inet/inet_aton_test.cpp
M libc/test/src/math/AddTest.h
M libc/test/src/math/CeilTest.h
M libc/test/src/math/CopySignTest.h
M libc/test/src/math/DivTest.h
M libc/test/src/math/FAbsTest.h
M libc/test/src/math/FDimTest.h
M libc/test/src/math/FMaxTest.h
M libc/test/src/math/FMinTest.h
M libc/test/src/math/FloorTest.h
M libc/test/src/math/FmaTest.h
M libc/test/src/math/FrexpTest.h
M libc/test/src/math/HypotTest.h
M libc/test/src/math/ILogbTest.h
M libc/test/src/math/LogbTest.h
M libc/test/src/math/ModfTest.h
M libc/test/src/math/MulTest.h
M libc/test/src/math/NearbyIntTest.h
M libc/test/src/math/RIntTest.h
M libc/test/src/math/RemQuoTest.h
M libc/test/src/math/RoundEvenTest.h
M libc/test/src/math/RoundTest.h
M libc/test/src/math/RoundToIntegerTest.h
M libc/test/src/math/RsqrtTest.h
M libc/test/src/math/SqrtTest.h
M libc/test/src/math/SubTest.h
M libc/test/src/math/TruncTest.h
M libc/test/src/math/acos_test.cpp
M libc/test/src/math/acosf_test.cpp
M libc/test/src/math/acoshf_test.cpp
M libc/test/src/math/acospif_test.cpp
M libc/test/src/math/asin_test.cpp
M libc/test/src/math/asinf_test.cpp
M libc/test/src/math/asinhf_test.cpp
M libc/test/src/math/asinpi_test.cpp
M libc/test/src/math/asinpif_test.cpp
M libc/test/src/math/atan_test.cpp
M libc/test/src/math/atanf_test.cpp
M libc/test/src/math/atanhf_test.cpp
M libc/test/src/math/cbrt_test.cpp
M libc/test/src/math/cbrtf_test.cpp
M libc/test/src/math/cos_test.cpp
M libc/test/src/math/cosf_float_test.cpp
M libc/test/src/math/cosf_test.cpp
M libc/test/src/math/coshf_test.cpp
M libc/test/src/math/erff_test.cpp
M libc/test/src/math/exp10_test.cpp
M libc/test/src/math/exp10f_test.cpp
M libc/test/src/math/exp10m1f_test.cpp
M libc/test/src/math/exp2_test.cpp
M libc/test/src/math/exp2f_test.cpp
M libc/test/src/math/exp2m1f_test.cpp
M libc/test/src/math/exp_test.cpp
M libc/test/src/math/expf_test.cpp
M libc/test/src/math/expm1_test.cpp
M libc/test/src/math/expm1f_test.cpp
M libc/test/src/math/log10_test.cpp
M libc/test/src/math/log10f_test.cpp
M libc/test/src/math/log1p_test.cpp
M libc/test/src/math/log1pf_test.cpp
M libc/test/src/math/log2_test.cpp
M libc/test/src/math/log2f_test.cpp
M libc/test/src/math/log_test.cpp
M libc/test/src/math/logf_test.cpp
M libc/test/src/math/sin_test.cpp
M libc/test/src/math/sincos_test.cpp
M libc/test/src/math/sincosf_test.cpp
M libc/test/src/math/sinf_float_test.cpp
M libc/test/src/math/sinf_test.cpp
M libc/test/src/math/sinhf_test.cpp
M libc/test/src/math/smoke/AddTest.h
M libc/test/src/math/smoke/CMakeLists.txt
M libc/test/src/math/smoke/CopySignTest.h
M libc/test/src/math/smoke/DivTest.h
M libc/test/src/math/smoke/FDimTest.h
M libc/test/src/math/smoke/FMaxTest.h
M libc/test/src/math/smoke/FMaximumMagNumTest.h
M libc/test/src/math/smoke/FMaximumMagTest.h
M libc/test/src/math/smoke/FMaximumNumTest.h
M libc/test/src/math/smoke/FMaximumTest.h
M libc/test/src/math/smoke/FMinTest.h
M libc/test/src/math/smoke/FMinimumMagNumTest.h
M libc/test/src/math/smoke/FMinimumMagTest.h
M libc/test/src/math/smoke/FMinimumNumTest.h
M libc/test/src/math/smoke/FMinimumTest.h
M libc/test/src/math/smoke/ILogbTest.h
A libc/test/src/math/smoke/IsNanTest.h
M libc/test/src/math/smoke/LogbTest.h
M libc/test/src/math/smoke/ModfTest.h
M libc/test/src/math/smoke/MulTest.h
M libc/test/src/math/smoke/NextAfterTest.h
M libc/test/src/math/smoke/NextTowardTest.h
M libc/test/src/math/smoke/RoundToIntegerTest.h
M libc/test/src/math/smoke/SubTest.h
A libc/test/src/math/smoke/isnanf16_test.cpp
M libc/test/src/math/tan_test.cpp
M libc/test/src/math/tanf_test.cpp
M libc/test/src/math/tanhf_test.cpp
M libc/test/src/mathvec/expf_test.cpp
A libc/test/src/netinet/CMakeLists.txt
A libc/test/src/netinet/udp_test.cpp
M libc/test/src/stdlib/StrtolTest.h
M libc/test/src/stdlib/strtoint32_test.cpp
M libc/test/src/stdlib/strtoint64_test.cpp
M libc/test/src/unistd/sysconf_test.cpp
M libc/test/src/wchar/CMakeLists.txt
M libc/test/src/wchar/WcstolTest.h
A libc/test/src/wchar/swprintf_test.cpp
M libc/test/src/wctype/CMakeLists.txt
M libc/test/src/wctype/iswctype_test.cpp
M libc/test/src/wctype/iswprint_test.cpp
A libc/test/src/wctype/towlower_test.cpp
A libc/test/src/wctype/towupper_test.cpp
M libc/test/src/wctype/wctype_test.cpp
M libc/test/utils/FPUtil/x86_long_double_test.cpp
A libc/utils/docgen/netinet/tcp.yaml
M libc/utils/libctest/format.py
A libclc/clc/include/clc/internal/math/clc_runtime_has_hw_fma32.h
M libclc/clc/include/clc/internal/math/clc_sw_fma.h
M libclc/clc/include/clc/math/clc_fma.h
M libclc/clc/include/clc/relational/clc_signbit.h
M libclc/clc/lib/generic/math/clc_fma.cl
M libclc/clc/lib/generic/relational/clc_signbit.cl
A libclc/clc/lib/generic/relational/clc_signbit.inc
M libclc/clc/lib/spirv/CMakeLists.txt
A libclc/clc/lib/spirv/math/clc_fma.cl
A libclc/clc/lib/spirv/math/clc_fma.inc
A libclc/clc/lib/spirv/math/clc_runtime_has_hw_fma32.cl
A libclc/clc/lib/spirv/math/clc_sw_fma.cl
M libclc/clc/lib/spirv/vulkan/CMakeLists.txt
R libclc/clc/lib/spirv/vulkan/math/clc_sw_fma.cl
M libclc/opencl/lib/generic/math/fma.cl
M libclc/opencl/lib/spirv/CMakeLists.txt
A libclc/opencl/lib/spirv/math/fma.cl
M libclc/test/conversion/convert.cl
M libclc/test/geometric/cross.cl
M libclc/test/integer/add_sat.cl
M libclc/test/integer/sub_sat.cl
M libclc/test/lit.cfg.py
M libclc/test/lit.site.cfg.py.in
M libclc/test/math/cos.cl
M libclc/test/math/fabs.cl
M libclc/test/math/rsqrt.cl
M libclc/test/misc/as_type.cl
M libclc/test/update_libclc_tests.py
M libclc/test/work-item/get_group_id.cl
M libcxx/docs/FeatureTestMacroTable.rst
M libcxx/docs/ReleaseNotes/23.rst
M libcxx/docs/Status/Cxx2cIssues.csv
M libcxx/docs/Status/Cxx2cPapers.csv
M libcxx/include/CMakeLists.txt
M libcxx/include/__algorithm/copy_if.h
M libcxx/include/__algorithm/partial_sort_copy.h
M libcxx/include/__algorithm/ranges_copy_if.h
M libcxx/include/__algorithm/ranges_partial_sort_copy.h
M libcxx/include/__algorithm/ranges_unique_copy.h
M libcxx/include/__algorithm/unique_copy.h
M libcxx/include/__bit/byteswap.h
A libcxx/include/__concepts/referenceable.h
M libcxx/include/__config
M libcxx/include/__configuration/hardening.h
M libcxx/include/__configuration/namespace.h
M libcxx/include/__cxx03/istream
M libcxx/include/__functional/function.h
M libcxx/include/__iterator/bounded_iter.h
M libcxx/include/__iterator/capacity_aware_iterator.h
M libcxx/include/__iterator/common_iterator.h
M libcxx/include/__iterator/concepts.h
M libcxx/include/__iterator/iter_move.h
M libcxx/include/__iterator/iterator_traits.h
M libcxx/include/__iterator/static_bounded_iter.h
M libcxx/include/__iterator/wrap_iter.h
M libcxx/include/__memory/ranges_uninitialized_algorithms.h
M libcxx/include/__memory/shared_ptr.h
M libcxx/include/__memory/uninitialized_algorithms.h
M libcxx/include/__mutex/unique_lock.h
M libcxx/include/__ranges/adjacent_transform_view.h
A libcxx/include/__ranges/concat_view.h
M libcxx/include/__ranges/transform_view.h
M libcxx/include/__ranges/zip_transform_view.h
M libcxx/include/__tree
M libcxx/include/__type_traits/add_pointer.h
M libcxx/include/__type_traits/conditional.h
M libcxx/include/__type_traits/integral_constant.h
M libcxx/include/__type_traits/is_constant_evaluated.h
R libcxx/include/__type_traits/is_referenceable.h
M libcxx/include/__type_traits/is_within_lifetime.h
M libcxx/include/__type_traits/remove_pointer.h
M libcxx/include/__verbose_trap
M libcxx/include/any
M libcxx/include/map
M libcxx/include/module.modulemap.in
M libcxx/include/ranges
M libcxx/include/set
M libcxx/include/shared_mutex
M libcxx/include/string
M libcxx/include/tuple
M libcxx/include/version
M libcxx/modules/std/ranges.inc
M libcxx/test/benchmarks/algorithms/min_max_element.bench.cpp
M libcxx/test/benchmarks/containers/deque_iterator.bench.cpp
M libcxx/test/benchmarks/containers/sequence/vector_bool.bench.cpp
M libcxx/test/benchmarks/join_view.bench.cpp
M libcxx/test/benchmarks/streams/copy.bench.cpp
M libcxx/test/benchmarks/streams/ofstream.bench.cpp
M libcxx/test/libcxx-03/vendor/apple/disable-availability.sh.cpp
A libcxx/test/libcxx/atomics/builtin_clear_padding.pass.cpp
A libcxx/test/libcxx/containers/sequences/array/nodiscard.iterator.verify.cpp
R libcxx/test/libcxx/containers/views/mdspan/mdspan/assert.at.pass.cpp
A libcxx/test/libcxx/ranges/range.adaptors/range.concat/iterator.valueless_by_exception.pass.cpp
A libcxx/test/libcxx/ranges/range.adaptors/range.concat/nodiscard.verify.cpp
M libcxx/test/libcxx/thread/nodiscard.verify.cpp
M libcxx/test/libcxx/transitive_includes/cxx23.csv
M libcxx/test/libcxx/transitive_includes/cxx26.csv
A libcxx/test/libcxx/type_traits/nodiscard.verify.cpp
A libcxx/test/libcxx/utilities/function.objects/block.func.compile.pass.cpp
R libcxx/test/libcxx/utilities/meta/is_referenceable.compile.pass.cpp
M libcxx/test/libcxx/utilities/meta/is_within_lifetime.verify.cpp
A libcxx/test/libcxx/utilities/optional/nodiscard.iterator.verify.cpp
M libcxx/test/selftest/modules/std-and-std.compat-module.sh.cpp
M libcxx/test/selftest/modules/std-module.sh.cpp
M libcxx/test/selftest/modules/std.compat-module.sh.cpp
M libcxx/test/std/containers/associative/multimap/multimap.modifiers/extract_key.pass.cpp
M libcxx/test/std/containers/associative/multiset/extract_key.pass.cpp
M libcxx/test/std/containers/sequences/array/size_and_alignment.compile.pass.cpp
M libcxx/test/std/containers/views/mdspan/mdspan/at.pass.cpp
M libcxx/test/std/input.output/iostream.format/input.streams/istream.unformatted/ignore.char_type.pass.cpp
M libcxx/test/std/language.support/support.limits/support.limits.general/ranges.version.compile.pass.cpp
M libcxx/test/std/language.support/support.limits/support.limits.general/version.version.compile.pass.cpp
M libcxx/test/std/library/description/conventions/customization.point.object/cpo.compile.pass.cpp
M libcxx/test/std/modules/std.compat.pass.cpp
M libcxx/test/std/modules/std.pass.cpp
M libcxx/test/std/numerics/bit/byteswap.pass.cpp
A libcxx/test/std/numerics/bit/byteswap.verify.cpp
M libcxx/test/std/numerics/c.math/signbit.pass.cpp
A libcxx/test/std/ranges/range.adaptors/range.concat/adaptor.pass.cpp
A libcxx/test/std/ranges/range.adaptors/range.concat/begin.pass.cpp
A libcxx/test/std/ranges/range.adaptors/range.concat/constraints.pass.cpp
A libcxx/test/std/ranges/range.adaptors/range.concat/ctad.pass.cpp
A libcxx/test/std/ranges/range.adaptors/range.concat/ctor.default.pass.cpp
A libcxx/test/std/ranges/range.adaptors/range.concat/ctor.views.pass.cpp
A libcxx/test/std/ranges/range.adaptors/range.concat/end.pass.cpp
A libcxx/test/std/ranges/range.adaptors/range.concat/iterator/arithmetic.pass.cpp
A libcxx/test/std/ranges/range.adaptors/range.concat/iterator/compare.pass.cpp
A libcxx/test/std/ranges/range.adaptors/range.concat/iterator/ctor.default.pass.cpp
A libcxx/test/std/ranges/range.adaptors/range.concat/iterator/ctor.other.pass.cpp
A libcxx/test/std/ranges/range.adaptors/range.concat/iterator/decrement.pass.cpp
A libcxx/test/std/ranges/range.adaptors/range.concat/iterator/deref.pass.cpp
A libcxx/test/std/ranges/range.adaptors/range.concat/iterator/increment.pass.cpp
A libcxx/test/std/ranges/range.adaptors/range.concat/iterator/iter_move.pass.cpp
A libcxx/test/std/ranges/range.adaptors/range.concat/iterator/iter_swap.pass.cpp
A libcxx/test/std/ranges/range.adaptors/range.concat/iterator/member_types.compile.pass.cpp
A libcxx/test/std/ranges/range.adaptors/range.concat/iterator/subscript.pass.cpp
A libcxx/test/std/ranges/range.adaptors/range.concat/size.pass.cpp
A libcxx/test/std/ranges/range.adaptors/range.concat/types.h
M libcxx/test/std/strings/basic.string/string.capacity/over_max_size.pass.cpp
A libcxx/test/std/utilities/any/any.nonmembers/any.cast/const_reference_types.verify.cpp
M libcxx/test/std/utilities/any/any.nonmembers/any.cast/reference_types.verify.cpp
A libcxx/test/std/utilities/any/any.nonmembers/any.cast/void.const.verify.cpp
M libcxx/test/std/utilities/any/any.nonmembers/any.cast/void.verify.cpp
M libcxx/test/std/utilities/memory/specialized.algorithms/uninitialized.construct.value/ranges_uninitialized_value_construct.pass.cpp
M libcxx/test/std/utilities/memory/specialized.algorithms/uninitialized.construct.value/ranges_uninitialized_value_construct_n.pass.cpp
M libcxx/test/std/utilities/memory/specialized.algorithms/uninitialized.construct.value/uninitialized_value_construct.pass.cpp
M libcxx/test/std/utilities/memory/specialized.algorithms/uninitialized.construct.value/uninitialized_value_construct_n.pass.cpp
M libcxx/test/std/utilities/memory/specialized.algorithms/uninitialized.copy/ranges_uninitialized_copy.pass.cpp
M libcxx/test/std/utilities/memory/specialized.algorithms/uninitialized.copy/ranges_uninitialized_copy_n.pass.cpp
M libcxx/test/std/utilities/memory/specialized.algorithms/uninitialized.copy/uninitialized_copy.pass.cpp
M libcxx/test/std/utilities/memory/specialized.algorithms/uninitialized.copy/uninitialized_copy_n.pass.cpp
M libcxx/test/std/utilities/memory/specialized.algorithms/uninitialized.fill.n/ranges_uninitialized_fill_n.pass.cpp
M libcxx/test/std/utilities/memory/specialized.algorithms/uninitialized.fill.n/uninitialized_fill_n.pass.cpp
M libcxx/test/std/utilities/memory/specialized.algorithms/uninitialized.fill/ranges_uninitialized_fill.pass.cpp
M libcxx/test/std/utilities/memory/specialized.algorithms/uninitialized.fill/uninitialized_fill.pass.cpp
M libcxx/test/std/utilities/memory/specialized.algorithms/uninitialized.move/ranges_uninitialized_move.pass.cpp
M libcxx/test/std/utilities/memory/specialized.algorithms/uninitialized.move/ranges_uninitialized_move_n.pass.cpp
M libcxx/test/std/utilities/memory/specialized.algorithms/uninitialized.move/uninitialized_move.pass.cpp
M libcxx/test/std/utilities/memory/specialized.algorithms/uninitialized.move/uninitialized_move_n.pass.cpp
M libcxx/test/std/utilities/memory/util.smartptr/util.smartptr.shared/util.smartptr.shared.const/shared_ptr_Y.pass.cpp
M libcxx/test/std/utilities/meta/meta.const.eval/is_within_lifetime.compile.pass.cpp
M libcxx/test/std/utilities/meta/meta.rel/is_virtual_base_of.pass.cpp
M libcxx/test/std/utilities/meta/meta.trans/objc_support.compile.pass.mm
M libcxx/test/std/utilities/meta/meta.unary/meta.unary.prop/is_implicit_lifetime.pass.cpp
M libcxx/test/std/utilities/meta/meta.unary/meta.unary.prop/is_implicit_lifetime.verify.cpp
A libcxx/test/support/algorithms.h
M libcxx/test/support/copy_move_types.h
M libcxx/utils/ci/docker/docker-compose.yml
M libcxx/utils/generate_feature_test_macro_components.py
M libsycl/docs/index.rst
A libsycl/include/sycl/__impl/detail/get_device_kernel_info.hpp
A libsycl/include/sycl/__impl/detail/kernel_arg_helpers.hpp
A libsycl/include/sycl/__impl/detail/unified_range_view.hpp
A libsycl/include/sycl/__impl/index_space_classes.hpp
M libsycl/include/sycl/__impl/queue.hpp
A libsycl/include/sycl/__spirv/spirv_vars.hpp
M libsycl/include/sycl/sycl.hpp
M libsycl/src/detail/global_objects.cpp
M libsycl/src/detail/program_manager.cpp
M libsycl/src/detail/program_manager.hpp
M libsycl/src/detail/queue_impl.cpp
M libsycl/src/detail/queue_impl.hpp
M libsycl/src/queue.cpp
A libsycl/test/basic/get_backend.cpp
A libsycl/test/basic/parallel_for_indexers.cpp
A libsycl/test/basic/queue_parallel_for_generic.cpp
A libsycl/test/basic/submit_fn_ptr.cpp
A libsycl/test/basic/wrapped_usm_pointers.cpp
M libsycl/test/lit.cfg.py
M lld/COFF/Chunks.cpp
M lld/COFF/Chunks.h
M lld/COFF/Writer.cpp
M lld/ELF/Arch/LoongArch.cpp
M lld/ELF/Arch/X86_64.cpp
M lld/ELF/LinkerScript.cpp
M lld/ELF/Writer.cpp
M lld/MachO/BPSectionOrderer.cpp
M lld/MachO/ConcatOutputSection.cpp
M lld/MachO/ConcatOutputSection.h
M lld/MachO/InputSection.h
M lld/MachO/LTO.cpp
M lld/docs/ReleaseNotes.rst
M lld/test/COFF/arm64-relocs-imports.test
M lld/test/COFF/ctors_dtors_priority.s
M lld/test/ELF/linkerscript/end-overflow-check.test
A lld/test/ELF/linkerscript/memory-loc-counter-dot-addr.s
A lld/test/ELF/linkerscript/overlap-nobits.s
A lld/test/ELF/loongarch-tls-dtprel.s
M lld/test/ELF/lto/devirt_vcall_vis_export_dynamic.ll
M lld/test/ELF/lto/devirt_vcall_vis_public.ll
M lld/test/ELF/lto/devirt_vcall_vis_shared_def.ll
A lld/test/MachO/Inputs/large-lto-object.ll
M lld/test/MachO/arm64-thunks.s
A lld/test/MachO/eh-frame-ordering.s
M lld/test/MachO/lto-object-path.ll
M lld/test/wasm/alias.s
M lld/test/wasm/build-id.test
M lld/test/wasm/ctor-return-value.s
M lld/test/wasm/duplicate-global-imports.s
M lld/test/wasm/export-optional.s
M lld/test/wasm/externref.s
M lld/test/wasm/function-imports-first.ll
M lld/test/wasm/function-imports.s
M lld/test/wasm/gc-imports.s
M lld/test/wasm/gc-sections.ll
M lld/test/wasm/global-base.test
M lld/test/wasm/globals.s
M lld/test/wasm/lto/tls.ll
M lld/test/wasm/map-file.s
M lld/test/wasm/merge-string-debug.s
M lld/test/wasm/mutable-global-exports.s
M lld/test/wasm/name-section-mangling.s
M lld/test/wasm/signature-mismatch-export.ll
M lld/test/wasm/signature-mismatch.s
M lld/test/wasm/stack-first.test
A lld/test/wasm/stack-pointer-abi.s
M lld/test/wasm/startstop.ll
M lld/test/wasm/table-base.s
M lld/test/wasm/tag-section.ll
A lld/test/wasm/thread-context-abi-mismatch.s
M lld/test/wasm/tls-base-non-shared-memory.s
A lld/test/wasm/tls-libcall.s
M lld/test/wasm/undefined-weak-call.s
M lld/test/wasm/unresolved-symbols-dynamic.s
M lld/test/wasm/weak-undefined-pic.s
M lld/test/wasm/weak-undefined.s
M lld/wasm/Config.h
M lld/wasm/Driver.cpp
M lld/wasm/Options.td
M lld/wasm/SyntheticSections.cpp
M lld/wasm/SyntheticSections.h
M lld/wasm/Writer.cpp
M lldb/CMakeLists.txt
M lldb/bindings/python/CMakeLists.txt
M lldb/docs/dil-expr-lang.ebnf
M lldb/docs/resources/lldbgdbremote.md
M lldb/include/lldb/Core/DataFileCache.h
M lldb/include/lldb/Core/DemangledNameInfo.h
M lldb/include/lldb/Core/Highlighter.h
M lldb/include/lldb/Core/Mangled.h
M lldb/include/lldb/Core/Module.h
M lldb/include/lldb/Host/FileBase.h
M lldb/include/lldb/Host/HostThread.h
M lldb/include/lldb/Host/PseudoTerminal.h
M lldb/include/lldb/Host/common/NativeProcessProtocol.h
M lldb/include/lldb/Host/windows/FileWindows.h
A lldb/include/lldb/Host/windows/LazyImport.h
M lldb/include/lldb/Host/windows/PseudoConsole.h
M lldb/include/lldb/Symbol/ObjectFile.h
M lldb/include/lldb/Symbol/Symbol.h
M lldb/include/lldb/Symbol/SymbolContext.h
M lldb/include/lldb/Symbol/Symtab.h
M lldb/include/lldb/Symbol/Type.h
M lldb/include/lldb/Target/Memory.h
M lldb/include/lldb/Target/Process.h
A lldb/include/lldb/Utility/AcceleratorGDBRemotePackets.h
M lldb/include/lldb/Utility/ConstString.h
M lldb/include/lldb/Utility/DataEncoder.h
M lldb/include/lldb/Utility/FileSpec.h
M lldb/include/lldb/Utility/GDBRemote.h
M lldb/include/lldb/Utility/StringExtractorGDBRemote.h
M lldb/include/lldb/Utility/UUID.h
M lldb/include/lldb/ValueObject/DILAST.h
M lldb/include/lldb/ValueObject/DILEval.h
M lldb/include/lldb/ValueObject/DILLexer.h
M lldb/include/lldb/ValueObject/DILParser.h
M lldb/packages/Python/lldbsuite/test/dotest.py
M lldb/packages/Python/lldbsuite/test/lldbtest.py
M lldb/packages/Python/lldbsuite/test/make/Makefile.rules
M lldb/packages/Python/lldbsuite/test/tools/lldb-server/gdbremote_testcase.py
M lldb/source/Commands/CommandObjectDWIMPrint.cpp
M lldb/source/Commands/CommandObjectFrame.cpp
M lldb/source/Commands/CommandObjectTarget.cpp
M lldb/source/Core/DataFileCache.cpp
M lldb/source/Core/Mangled.cpp
M lldb/source/Core/Module.cpp
M lldb/source/Host/common/File.cpp
M lldb/source/Host/common/PseudoTerminal.cpp
M lldb/source/Host/common/Socket.cpp
M lldb/source/Host/posix/DomainSocket.cpp
M lldb/source/Host/windows/ConnectionGenericFileWindows.cpp
M lldb/source/Host/windows/FileWindows.cpp
M lldb/source/Host/windows/PipeWindows.cpp
M lldb/source/Host/windows/ProcessLauncherWindows.cpp
M lldb/source/Host/windows/PseudoConsole.cpp
M lldb/source/Interpreter/CommandInterpreter.cpp
M lldb/source/Plugins/DynamicLoader/MacOSX-DYLD/DynamicLoaderDarwin.cpp
M lldb/source/Plugins/DynamicLoader/MacOSX-DYLD/DynamicLoaderDarwin.h
M lldb/source/Plugins/DynamicLoader/Windows-DYLD/CMakeLists.txt
M lldb/source/Plugins/DynamicLoader/Windows-DYLD/DynamicLoaderWindowsDYLD.cpp
A lldb/source/Plugins/DynamicLoader/Windows-DYLD/MSVCRTCFrameRecognizer.cpp
A lldb/source/Plugins/DynamicLoader/Windows-DYLD/MSVCRTCFrameRecognizer.h
M lldb/source/Plugins/ExpressionParser/Clang/ClangASTImporter.h
M lldb/source/Plugins/ExpressionParser/Clang/ClangExpressionDeclMap.cpp
M lldb/source/Plugins/ExpressionParser/Clang/ClangExpressionSourceCode.cpp
M lldb/source/Plugins/ExpressionParser/Clang/ClangExpressionUtil.cpp
M lldb/source/Plugins/ExpressionParser/Clang/ClangUserExpression.cpp
M lldb/source/Plugins/Language/CPlusPlus/CPlusPlusLanguage.cpp
M lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCClassDescriptorV2.cpp
M lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCClassDescriptorV2.h
M lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCTrampolineHandler.cpp
M lldb/source/Plugins/LanguageRuntime/ObjC/ObjCLanguageRuntime.h
M lldb/source/Plugins/ObjectFile/Mach-O/ObjectFileMachO.cpp
M lldb/source/Plugins/Platform/MacOSX/PlatformAppleSimulator.cpp
M lldb/source/Plugins/Platform/MacOSX/PlatformAppleSimulator.h
M lldb/source/Plugins/Platform/MacOSX/PlatformDarwin.cpp
M lldb/source/Plugins/Platform/MacOSX/PlatformDarwin.h
M lldb/source/Plugins/Platform/MacOSX/PlatformMacOSX.cpp
M lldb/source/Plugins/Platform/MacOSX/PlatformRemoteDarwinDevice.cpp
M lldb/source/Plugins/Platform/Windows/PlatformWindows.cpp
M lldb/source/Plugins/Process/Windows/Common/CMakeLists.txt
M lldb/source/Plugins/Process/Windows/Common/DebuggerThread.cpp
M lldb/source/Plugins/Process/Windows/Common/IDebugDelegate.h
M lldb/source/Plugins/Process/Windows/Common/LocalDebugDelegate.cpp
M lldb/source/Plugins/Process/Windows/Common/LocalDebugDelegate.h
R lldb/source/Plugins/Process/Windows/Common/MSVCRTCFrameRecognizer.cpp
R lldb/source/Plugins/Process/Windows/Common/MSVCRTCFrameRecognizer.h
M lldb/source/Plugins/Process/Windows/Common/NativeProcessWindows.cpp
M lldb/source/Plugins/Process/Windows/Common/NativeProcessWindows.h
M lldb/source/Plugins/Process/Windows/Common/NativeRegisterContextWindows_arm64.cpp
M lldb/source/Plugins/Process/Windows/Common/NativeRegisterContextWindows_arm64.h
M lldb/source/Plugins/Process/Windows/Common/NativeThreadWindows.cpp
M lldb/source/Plugins/Process/Windows/Common/ProcessDebugger.cpp
M lldb/source/Plugins/Process/Windows/Common/ProcessDebugger.h
M lldb/source/Plugins/Process/Windows/Common/ProcessWindows.cpp
M lldb/source/Plugins/Process/Windows/Common/ProcessWindows.h
M lldb/source/Plugins/Process/Windows/Common/TargetThreadWindows.cpp
M lldb/source/Plugins/Process/gdb-remote/CMakeLists.txt
M lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerLLGS.cpp
M lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerLLGS.h
M lldb/source/Plugins/Process/gdb-remote/GDBRemoteRegisterContext.cpp
M lldb/source/Plugins/Process/gdb-remote/GDBRemoteRegisterContext.h
A lldb/source/Plugins/Process/gdb-remote/LLDBServerAcceleratorPlugin.cpp
A lldb/source/Plugins/Process/gdb-remote/LLDBServerAcceleratorPlugin.h
M lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp
M lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.h
M lldb/source/Plugins/Process/gdb-remote/ThreadGDBRemote.cpp
M lldb/source/Plugins/Process/gdb-remote/ThreadGDBRemote.h
M lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp
M lldb/source/Plugins/SymbolFile/NativePDB/PdbAstBuilderClang.cpp
M lldb/source/Plugins/SymbolFile/NativePDB/PdbAstBuilderClang.h
M lldb/source/Plugins/SymbolFile/NativePDB/PdbUtil.cpp
M lldb/source/Plugins/SymbolFile/NativePDB/PdbUtil.h
M lldb/source/Symbol/Symbol.cpp
M lldb/source/Symbol/Symtab.cpp
M lldb/source/Symbol/Type.cpp
M lldb/source/Target/Memory.cpp
M lldb/source/Target/Process.cpp
A lldb/source/Utility/AcceleratorGDBRemotePackets.cpp
M lldb/source/Utility/CMakeLists.txt
M lldb/source/Utility/StringExtractorGDBRemote.cpp
M lldb/source/ValueObject/DILAST.cpp
M lldb/source/ValueObject/DILEval.cpp
M lldb/source/ValueObject/DILLexer.cpp
M lldb/source/ValueObject/DILParser.cpp
M lldb/source/ValueObject/ValueObjectVTable.cpp
A lldb/test/API/accelerator/mock/Makefile
A lldb/test/API/accelerator/mock/TestMockAcceleratorPlugin.py
A lldb/test/API/accelerator/mock/main.c
M lldb/test/API/assert_messages_test/TestAssertMessages.py
M lldb/test/API/commands/expression/expr_inside_lambda/TestExprInsideLambdas.py
M lldb/test/API/commands/frame/recognizer/TestFrameRecognizer.py
A lldb/test/API/commands/frame/var-dil/expr/Bitwise/Makefile
A lldb/test/API/commands/frame/var-dil/expr/Bitwise/TestFrameVarDILBitwise.py
A lldb/test/API/commands/frame/var-dil/expr/Bitwise/main.cpp
A lldb/test/API/commands/frame/var-dil/expr/EnumValueLookup/Makefile
A lldb/test/API/commands/frame/var-dil/expr/EnumValueLookup/TestEnumValueLookup.py
A lldb/test/API/commands/frame/var-dil/expr/EnumValueLookup/main.cpp
A lldb/test/API/functionalities/gdb_remote_client/TestUnavailableRegisters.py
M lldb/test/API/functionalities/thread/jump/TestThreadJump.py
M lldb/test/API/functionalities/vtable/TestVTableValue.py
M lldb/test/API/lang/c/function_types/TestFunctionTypes.py
M lldb/test/API/lang/cpp/dynamic-value/TestDynamicValue.py
M lldb/test/API/lang/objc/foundation/TestObjCMethods.py
M lldb/test/API/lang/objc/modules-auto-import/Makefile
M lldb/test/API/lang/objc/modules-auto-import/TestModulesAutoImport.py
M lldb/test/API/lang/objc/objc-optimized/TestObjcOptimized.py
M lldb/test/API/lang/objc/objc-po-hint/TestObjcPoHint.py
M lldb/test/API/lit.cfg.py
M lldb/test/API/lit.site.cfg.py.in
M lldb/test/API/lldbtest.py
M lldb/test/API/macosx/branch-islands/Makefile
M lldb/test/API/python_api/debugger/TestDebuggerAPI.py
M lldb/test/API/python_api/file_handle/TestFileHandle.py
M lldb/test/API/python_api/interpreter/TestCommandInterpreterAPI.py
M lldb/test/API/python_api/sbmodule/TestSBModule.py
M lldb/test/API/tools/lldb-dap/attach-commands/TestDAP_attachCommands.py
M lldb/test/API/tools/lldb-dap/coreFile/TestDAP_coreFile.py
M lldb/test/API/tools/lldb-dap/launch/TestDAP_launch_extra_launch_commands.py
A lldb/test/API/windows/thread/Makefile
A lldb/test/API/windows/thread/TestThreadName.py
A lldb/test/API/windows/thread/main.c
M lldb/test/CMakeLists.txt
M lldb/test/Shell/Commands/command-dil-diagnostics.test
M lldb/test/Shell/Commands/command-module-hook-fire.test
M lldb/test/Shell/ObjectFile/MachO/section-overflow-binary.test
A lldb/test/Shell/Process/Windows/output_debug_string.cpp
M lldb/test/Shell/Settings/TestCxxFrameFormatPartialFailure.test
A lldb/test/Shell/SymbolFile/NativePDB/ast-lambdas-msvc.cpp
A lldb/test/Shell/SymbolFile/NativePDB/ast-lambdas.cpp
M lldb/test/Shell/SymbolFile/NativePDB/ast-methods.cpp
M lldb/test/Shell/SymbolFile/PDB/ast-restore.test
M lldb/test/Shell/lit.cfg.py
A lldb/test/Shell/lldb-server/TestGdbserverErrorDarwin.test
M lldb/test/Shell/lldb-server/TestGdbserverErrorMessages.test
M lldb/tools/debugserver/source/RNBRemote.cpp
M lldb/tools/lldb-dap/DAP.cpp
M lldb/tools/lldb-dap/Handler/AttachRequestHandler.cpp
M lldb/tools/lldb-dap/Handler/RequestHandler.cpp
M lldb/tools/lldb-dap/InstructionBreakpoint.cpp
M lldb/tools/lldb-dap/InstructionBreakpoint.h
M lldb/tools/lldb-dap/JSONUtils.cpp
M lldb/tools/lldb-dap/LLDBUtils.cpp
M lldb/tools/lldb-dap/OutputRedirector.cpp
M lldb/tools/lldb-dap/OutputRedirector.h
M lldb/tools/lldb-dap/Protocol/ProtocolTypes.cpp
M lldb/tools/lldb-dap/ProtocolUtils.cpp
M lldb/tools/lldb-server/CMakeLists.txt
A lldb/tools/lldb-server/Plugins/Accelerator/CMakeLists.txt
A lldb/tools/lldb-server/Plugins/Accelerator/Mock/CMakeLists.txt
A lldb/tools/lldb-server/Plugins/Accelerator/Mock/LLDBServerMockAcceleratorPlugin.cpp
A lldb/tools/lldb-server/Plugins/Accelerator/Mock/LLDBServerMockAcceleratorPlugin.h
A lldb/tools/lldb-server/Plugins/CMakeLists.txt
M lldb/tools/lldb-server/lldb-gdbserver.cpp
M lldb/tools/lldb-server/lldb-server.cpp
M lldb/unittests/Core/MangledTest.cpp
M lldb/unittests/DAP/Handler/DisconnectTest.cpp
M lldb/unittests/DAP/ProtocolTypesTest.cpp
M lldb/unittests/Host/SocketTest.cpp
M lldb/unittests/Symbol/TestType.cpp
M lldb/unittests/Target/MemoryTest.cpp
M lldb/unittests/Utility/LockedTest.cpp
M lldb/utils/lldb-dotest/CMakeLists.txt
M lldb/utils/lldb-dotest/lldb-dotest.in
M llvm/CMakeLists.txt
M llvm/Maintainers.md
M llvm/cmake/modules/AddLLVM.cmake
M llvm/docs/AMDGPU/AMDGPUAsmGFX950.rst
M llvm/docs/AMDGPUAsyncOperations.rst
A llvm/docs/AMDGPUMemoryModel.rst
M llvm/docs/AMDGPUUsage.rst
M llvm/docs/CMake.rst
M llvm/docs/CodingStandards.rst
M llvm/docs/CommandGuide/llvm-mca.rst
M llvm/docs/CommandGuide/llvm-objdump.rst
M llvm/docs/Contributing.rst
M llvm/docs/Coroutines.rst
M llvm/docs/DeveloperPolicy.rst
M llvm/docs/GlobalISel/GenericOpcode.rst
M llvm/docs/LangRef.rst
M llvm/docs/ProgrammersManual.rst
M llvm/docs/RISCVUsage.rst
M llvm/docs/ReleaseNotes.md
M llvm/docs/SPIRVUsage.rst
M llvm/docs/SandboxIR.md
M llvm/docs/SourceLevelDebugging.rst
M llvm/docs/TableGen/ProgRef.rst
M llvm/docs/TestingGuide.rst
M llvm/docs/UserGuides.rst
R llvm/docs/requirements-hashed.txt
M llvm/docs/requirements.txt
A llvm/docs/requirements.txt.in
M llvm/include/llvm-c/Remarks.h
M llvm/include/llvm-c/lto.h
M llvm/include/llvm/ADT/APFixedPoint.h
M llvm/include/llvm/ADT/APFloat.h
M llvm/include/llvm/ADT/APInt.h
M llvm/include/llvm/ADT/APSInt.h
M llvm/include/llvm/ADT/ArrayRef.h
M llvm/include/llvm/ADT/BitVector.h
M llvm/include/llvm/ADT/CachedHashString.h
M llvm/include/llvm/ADT/DenseMap.h
M llvm/include/llvm/ADT/DenseMapInfo.h
M llvm/include/llvm/ADT/DenseMapInfoVariant.h
M llvm/include/llvm/ADT/DenseSet.h
M llvm/include/llvm/ADT/Hashing.h
M llvm/include/llvm/ADT/ImmutableList.h
M llvm/include/llvm/ADT/PointerEmbeddedInt.h
M llvm/include/llvm/ADT/PointerIntPair.h
M llvm/include/llvm/ADT/PointerSumType.h
M llvm/include/llvm/ADT/PointerUnion.h
M llvm/include/llvm/ADT/SmallBitVector.h
M llvm/include/llvm/ADT/SmallVector.h
M llvm/include/llvm/ADT/StringRef.h
M llvm/include/llvm/Analysis/AliasAnalysis.h
M llvm/include/llvm/Analysis/AssumeBundleQueries.h
M llvm/include/llvm/Analysis/AssumptionCache.h
M llvm/include/llvm/Analysis/BlockFrequencyInfoImpl.h
M llvm/include/llvm/Analysis/CFGSCCPrinter.h
M llvm/include/llvm/Analysis/CmpInstAnalysis.h
M llvm/include/llvm/Analysis/ConstantFolding.h
M llvm/include/llvm/Analysis/CostModel.h
M llvm/include/llvm/Analysis/CtxProfAnalysis.h
M llvm/include/llvm/Analysis/CycleAnalysis.h
M llvm/include/llvm/Analysis/DDGPrinter.h
M llvm/include/llvm/Analysis/DXILMetadataAnalysis.h
M llvm/include/llvm/Analysis/Delinearization.h
M llvm/include/llvm/Analysis/DependenceAnalysis.h
M llvm/include/llvm/Analysis/DomConditionCache.h
M llvm/include/llvm/Analysis/DominanceFrontier.h
M llvm/include/llvm/Analysis/FunctionPropertiesAnalysis.h
M llvm/include/llvm/Analysis/GuardUtils.h
M llvm/include/llvm/Analysis/HashRecognize.h
M llvm/include/llvm/Analysis/IR2Vec.h
M llvm/include/llvm/Analysis/IRSimilarityIdentifier.h
M llvm/include/llvm/Analysis/IVDescriptors.h
M llvm/include/llvm/Analysis/IVUsers.h
M llvm/include/llvm/Analysis/IndirectCallPromotionAnalysis.h
M llvm/include/llvm/Analysis/InstCount.h
M llvm/include/llvm/Analysis/InstSimplifyFolder.h
M llvm/include/llvm/Analysis/InstructionSimplify.h
M llvm/include/llvm/Analysis/KernelInfo.h
M llvm/include/llvm/Analysis/LazyBlockFrequencyInfo.h
M llvm/include/llvm/Analysis/LazyBranchProbabilityInfo.h
M llvm/include/llvm/Analysis/LazyValueInfo.h
M llvm/include/llvm/Analysis/Lint.h
M llvm/include/llvm/Analysis/LoopCacheAnalysis.h
M llvm/include/llvm/Analysis/LoopIterator.h
M llvm/include/llvm/Analysis/MLInlineAdvisor.h
M llvm/include/llvm/Analysis/MemDerefPrinter.h
M llvm/include/llvm/Analysis/MemoryDependenceAnalysis.h
M llvm/include/llvm/Analysis/MemoryLocation.h
M llvm/include/llvm/Analysis/MemorySSA.h
M llvm/include/llvm/Analysis/ModuleDebugInfoPrinter.h
M llvm/include/llvm/Analysis/ObjCARCAliasAnalysis.h
M llvm/include/llvm/Analysis/ObjCARCAnalysisUtils.h
M llvm/include/llvm/Analysis/ObjCARCInstKind.h
M llvm/include/llvm/Analysis/OverflowInstAnalysis.h
M llvm/include/llvm/Analysis/PtrUseVisitor.h
M llvm/include/llvm/Analysis/RegionInfo.h
M llvm/include/llvm/Analysis/ReplayInlineAdvisor.h
M llvm/include/llvm/Analysis/ScalarEvolution.h
M llvm/include/llvm/Analysis/ScalarEvolutionDivision.h
M llvm/include/llvm/Analysis/StackLifetime.h
M llvm/include/llvm/Analysis/StackSafetyAnalysis.h
M llvm/include/llvm/Analysis/StaticDataProfileInfo.h
M llvm/include/llvm/Analysis/StructuralHash.h
M llvm/include/llvm/Analysis/TargetFolder.h
M llvm/include/llvm/Analysis/TargetTransformInfo.h
M llvm/include/llvm/Analysis/TargetTransformInfoImpl.h
M llvm/include/llvm/Analysis/Trace.h
M llvm/include/llvm/Analysis/TypeMetadataUtils.h
M llvm/include/llvm/Analysis/UniformityAnalysis.h
M llvm/include/llvm/Analysis/ValueLatticeUtils.h
M llvm/include/llvm/Analysis/ValueTracking.h
M llvm/include/llvm/Analysis/VectorUtils.h
M llvm/include/llvm/AsmParser/LLParser.h
M llvm/include/llvm/AsmParser/LLToken.h
M llvm/include/llvm/BinaryFormat/Dwarf.def
M llvm/include/llvm/BinaryFormat/Dwarf.h
M llvm/include/llvm/BinaryFormat/Minidump.h
M llvm/include/llvm/BinaryFormat/Wasm.h
M llvm/include/llvm/BinaryFormat/WasmTraits.h
M llvm/include/llvm/Bitcode/BitcodeReader.h
M llvm/include/llvm/Bitcode/LLVMBitCodes.h
M llvm/include/llvm/CAS/CASID.h
M llvm/include/llvm/CAS/CASReference.h
M llvm/include/llvm/CMakeLists.txt
M llvm/include/llvm/CodeGen/AccelTable.h
M llvm/include/llvm/CodeGen/Analysis.h
M llvm/include/llvm/CodeGen/AntiDepBreaker.h
M llvm/include/llvm/CodeGen/AsmPrinter.h
M llvm/include/llvm/CodeGen/AsmPrinterAnalysis.h
M llvm/include/llvm/CodeGen/AssignmentTrackingAnalysis.h
M llvm/include/llvm/CodeGen/AtomicExpand.h
M llvm/include/llvm/CodeGen/BasicBlockMatchingAndInference.h
M llvm/include/llvm/CodeGen/BasicBlockSectionUtils.h
M llvm/include/llvm/CodeGen/BasicBlockSectionsProfileReader.h
M llvm/include/llvm/CodeGen/BasicTTIImpl.h
M llvm/include/llvm/CodeGen/BranchFoldingPass.h
M llvm/include/llvm/CodeGen/BranchRelaxation.h
A llvm/include/llvm/CodeGen/BreakFalseDeps.h
M llvm/include/llvm/CodeGen/CFIFixup.h
M llvm/include/llvm/CodeGen/CalcSpillWeights.h
M llvm/include/llvm/CodeGen/CodeGenCommonISel.h
M llvm/include/llvm/CodeGen/CodeGenPrepare.h
M llvm/include/llvm/CodeGen/ComplexDeinterleavingPass.h
M llvm/include/llvm/CodeGen/DFAPacketizer.h
M llvm/include/llvm/CodeGen/DbgEntityHistoryCalculator.h
M llvm/include/llvm/CodeGen/DeadMachineInstructionElim.h
M llvm/include/llvm/CodeGen/DebugHandlerBase.h
M llvm/include/llvm/CodeGen/DetectDeadLanes.h
M llvm/include/llvm/CodeGen/DwarfEHPrepare.h
M llvm/include/llvm/CodeGen/EarlyIfConversion.h
M llvm/include/llvm/CodeGen/EdgeBundles.h
M llvm/include/llvm/CodeGen/ExecutionDomainFix.h
M llvm/include/llvm/CodeGen/ExpandIRInsts.h
M llvm/include/llvm/CodeGen/ExpandPostRAPseudos.h
M llvm/include/llvm/CodeGen/ExpandReductions.h
M llvm/include/llvm/CodeGen/ExpandVectorPredication.h
M llvm/include/llvm/CodeGen/FEntryInserter.h
M llvm/include/llvm/CodeGen/FastISel.h
M llvm/include/llvm/CodeGen/FaultMaps.h
M llvm/include/llvm/CodeGen/FinalizeISel.h
M llvm/include/llvm/CodeGen/FixupStatepointCallerSaved.h
M llvm/include/llvm/CodeGen/FunctionLoweringInfo.h
M llvm/include/llvm/CodeGen/GCEmptyBasicBlocks.h
M llvm/include/llvm/CodeGen/GCMetadataPrinter.h
M llvm/include/llvm/CodeGen/GlobalISel/CSEInfo.h
M llvm/include/llvm/CodeGen/GlobalISel/Combiner.h
M llvm/include/llvm/CodeGen/GlobalISel/CombinerHelper.h
M llvm/include/llvm/CodeGen/GlobalISel/GIMatchTableExecutor.h
M llvm/include/llvm/CodeGen/GlobalISel/GIMatchTableExecutorImpl.h
M llvm/include/llvm/CodeGen/GlobalISel/IRTranslator.h
M llvm/include/llvm/CodeGen/GlobalISel/InlineAsmLowering.h
M llvm/include/llvm/CodeGen/GlobalISel/LegalizerHelper.h
M llvm/include/llvm/CodeGen/GlobalISel/Localizer.h
M llvm/include/llvm/CodeGen/GlobalISel/RegBankSelect.h
M llvm/include/llvm/CodeGen/GlobalMerge.h
M llvm/include/llvm/CodeGen/GlobalMergeFunctions.h
M llvm/include/llvm/CodeGen/HardwareLoops.h
M llvm/include/llvm/CodeGen/IndirectBrExpand.h
M llvm/include/llvm/CodeGen/InitUndef.h
M llvm/include/llvm/CodeGen/InlineAsmPrepare.h
M llvm/include/llvm/CodeGen/InsertCodePrefetch.h
M llvm/include/llvm/CodeGen/InterleavedAccess.h
M llvm/include/llvm/CodeGen/InterleavedLoadCombine.h
M llvm/include/llvm/CodeGen/IntrinsicLowering.h
M llvm/include/llvm/CodeGen/JMCInstrumenter.h
M llvm/include/llvm/CodeGen/KCFI.h
M llvm/include/llvm/CodeGen/LatencyPriorityQueue.h
M llvm/include/llvm/CodeGen/LazyMachineBlockFrequencyInfo.h
M llvm/include/llvm/CodeGen/LexicalScopes.h
M llvm/include/llvm/CodeGen/LibcallLoweringInfo.h
M llvm/include/llvm/CodeGen/LiveDebugValuesPass.h
M llvm/include/llvm/CodeGen/LiveDebugVariables.h
M llvm/include/llvm/CodeGen/LiveIntervalUnion.h
M llvm/include/llvm/CodeGen/LivePhysRegs.h
M llvm/include/llvm/CodeGen/LiveRangeEdit.h
M llvm/include/llvm/CodeGen/LiveRegMatrix.h
M llvm/include/llvm/CodeGen/LiveStacks.h
M llvm/include/llvm/CodeGen/LocalStackSlotAllocation.h
M llvm/include/llvm/CodeGen/LoopTraversal.h
M llvm/include/llvm/CodeGen/LowerEmuTLS.h
M llvm/include/llvm/CodeGen/MBFIWrapper.h
M llvm/include/llvm/CodeGen/MIR2Vec.h
M llvm/include/llvm/CodeGen/MIRFSDiscriminator.h
M llvm/include/llvm/CodeGen/MIRFSDiscriminatorOptions.h
M llvm/include/llvm/CodeGen/MIRParser/MIParser.h
M llvm/include/llvm/CodeGen/MIRSampleProfile.h
M llvm/include/llvm/CodeGen/MIRYamlMapping.h
M llvm/include/llvm/CodeGen/MachineBasicBlock.h
M llvm/include/llvm/CodeGen/MachineBlockHashInfo.h
M llvm/include/llvm/CodeGen/MachineBlockPlacement.h
M llvm/include/llvm/CodeGen/MachineBranchProbabilityInfo.h
M llvm/include/llvm/CodeGen/MachineCSE.h
M llvm/include/llvm/CodeGen/MachineConstantPool.h
M llvm/include/llvm/CodeGen/MachineCopyPropagation.h
M llvm/include/llvm/CodeGen/MachineDominanceFrontier.h
M llvm/include/llvm/CodeGen/MachineFunction.h
M llvm/include/llvm/CodeGen/MachineFunctionAnalysis.h
M llvm/include/llvm/CodeGen/MachineIDFSSAUpdater.h
M llvm/include/llvm/CodeGen/MachineInstr.h
M llvm/include/llvm/CodeGen/MachineLateInstrsCleanup.h
M llvm/include/llvm/CodeGen/MachineLoopUtils.h
M llvm/include/llvm/CodeGen/MachineMemOperand.h
M llvm/include/llvm/CodeGen/MachineModuleInfoImpls.h
M llvm/include/llvm/CodeGen/MachineOperand.h
M llvm/include/llvm/CodeGen/MachinePipeliner.h
M llvm/include/llvm/CodeGen/MachineRegionInfo.h
M llvm/include/llvm/CodeGen/MachineSSAUpdater.h
M llvm/include/llvm/CodeGen/MachineSink.h
M llvm/include/llvm/CodeGen/MachineTraceMetrics.h
M llvm/include/llvm/CodeGen/MachineUniformityAnalysis.h
M llvm/include/llvm/CodeGen/ModuloSchedule.h
M llvm/include/llvm/CodeGen/MultiHazardRecognizer.h
M llvm/include/llvm/CodeGen/OptimizePHIs.h
M llvm/include/llvm/CodeGen/PBQP/CostAllocator.h
M llvm/include/llvm/CodeGen/PEI.h
M llvm/include/llvm/CodeGen/PHIElimination.h
M llvm/include/llvm/CodeGen/Passes.h
M llvm/include/llvm/CodeGen/PatchableFunction.h
M llvm/include/llvm/CodeGen/PeepholeOptimizer.h
M llvm/include/llvm/CodeGen/PostRAHazardRecognizer.h
M llvm/include/llvm/CodeGen/PostRAMachineSink.h
M llvm/include/llvm/CodeGen/PostRASchedulerList.h
M llvm/include/llvm/CodeGen/PreISelIntrinsicLowering.h
M llvm/include/llvm/CodeGen/ProcessImplicitDefs.h
M llvm/include/llvm/CodeGen/RDFGraph.h
M llvm/include/llvm/CodeGen/RDFLiveness.h
M llvm/include/llvm/CodeGen/RDFRegisters.h
M llvm/include/llvm/CodeGen/ReachingDefAnalysis.h
M llvm/include/llvm/CodeGen/RegAllocEvictionAdvisor.h
M llvm/include/llvm/CodeGen/RegAllocFast.h
M llvm/include/llvm/CodeGen/RegAllocGreedyPass.h
M llvm/include/llvm/CodeGen/RegAllocPBQP.h
M llvm/include/llvm/CodeGen/RegAllocPriorityAdvisor.h
M llvm/include/llvm/CodeGen/RegUsageInfoCollector.h
M llvm/include/llvm/CodeGen/RegUsageInfoPropagate.h
M llvm/include/llvm/CodeGen/Register.h
M llvm/include/llvm/CodeGen/RegisterBankInfo.h
M llvm/include/llvm/CodeGen/RegisterCoalescerPass.h
M llvm/include/llvm/CodeGen/RegisterScavenging.h
M llvm/include/llvm/CodeGen/RegisterUsageInfo.h
M llvm/include/llvm/CodeGen/Rematerializer.h
M llvm/include/llvm/CodeGen/RemoveLoadsIntoFakeUses.h
M llvm/include/llvm/CodeGen/RemoveRedundantDebugValues.h
M llvm/include/llvm/CodeGen/RenameIndependentSubregs.h
M llvm/include/llvm/CodeGen/ResourcePriorityQueue.h
M llvm/include/llvm/CodeGen/SDNodeInfo.h
M llvm/include/llvm/CodeGen/SDPatternMatch.h
M llvm/include/llvm/CodeGen/SafeStack.h
M llvm/include/llvm/CodeGen/SanitizerBinaryMetadata.h
M llvm/include/llvm/CodeGen/ScheduleDAG.h
M llvm/include/llvm/CodeGen/ScheduleDFS.h
M llvm/include/llvm/CodeGen/ScheduleHazardRecognizer.h
M llvm/include/llvm/CodeGen/ScoreboardHazardRecognizer.h
M llvm/include/llvm/CodeGen/SelectOptimize.h
M llvm/include/llvm/CodeGen/SelectionDAG.h
M llvm/include/llvm/CodeGen/SelectionDAGISel.h
M llvm/include/llvm/CodeGen/SelectionDAGNodes.h
M llvm/include/llvm/CodeGen/SelectionDAGTargetInfo.h
M llvm/include/llvm/CodeGen/ShadowStackGCLowering.h
M llvm/include/llvm/CodeGen/ShrinkWrap.h
M llvm/include/llvm/CodeGen/SjLjEHPrepare.h
M llvm/include/llvm/CodeGen/SpillPlacement.h
M llvm/include/llvm/CodeGen/Spiller.h
M llvm/include/llvm/CodeGen/StackColoring.h
M llvm/include/llvm/CodeGen/StackFrameLayoutAnalysisPass.h
M llvm/include/llvm/CodeGen/StackProtector.h
M llvm/include/llvm/CodeGen/StackSlotColoring.h
M llvm/include/llvm/CodeGen/SwiftErrorValueTracking.h
M llvm/include/llvm/CodeGen/SwitchLoweringUtils.h
M llvm/include/llvm/CodeGen/TailDuplicator.h
M llvm/include/llvm/CodeGen/TargetInstrInfo.h
M llvm/include/llvm/CodeGen/TargetLoweringObjectFileImpl.h
M llvm/include/llvm/CodeGen/TargetRegisterInfo.h
M llvm/include/llvm/CodeGen/TwoAddressInstructionPass.h
M llvm/include/llvm/CodeGen/TypePromotion.h
M llvm/include/llvm/CodeGen/UnreachableBlockElim.h
M llvm/include/llvm/CodeGen/VLIWMachineScheduler.h
M llvm/include/llvm/CodeGen/ValueTypes.h
M llvm/include/llvm/CodeGen/WasmEHPrepare.h
M llvm/include/llvm/CodeGen/WinEHFuncInfo.h
M llvm/include/llvm/CodeGen/WinEHPrepare.h
M llvm/include/llvm/CodeGen/WindowScheduler.h
M llvm/include/llvm/CodeGen/XRayInstrumentation.h
M llvm/include/llvm/CodeGenTypes/LowLevelType.h
M llvm/include/llvm/CodeGenTypes/MachineValueType.h
M llvm/include/llvm/DWARFLinker/AddressesMap.h
M llvm/include/llvm/DWARFLinker/Classic/DWARFLinkerDeclContext.h
M llvm/include/llvm/DebugInfo/CodeView/CodeViewRegisters.def
M llvm/include/llvm/DebugInfo/CodeView/TypeHashing.h
M llvm/include/llvm/DebugInfo/CodeView/TypeIndex.h
M llvm/include/llvm/DebugInfo/DWARF/DWARFAcceleratorTable.h
M llvm/include/llvm/DebugInfo/GSYM/FileEntry.h
M llvm/include/llvm/DebugInfo/PDB/Native/PDBFile.h
M llvm/include/llvm/DebugInfo/PDB/Native/PDBFileBuilder.h
M llvm/include/llvm/DebugInfo/PDB/Native/PDBStringTableBuilder.h
M llvm/include/llvm/DebugInfo/PDB/Native/RawConstants.h
M llvm/include/llvm/ExecutionEngine/Orc/ExecutorResolutionGenerator.h
M llvm/include/llvm/ExecutionEngine/Orc/Shared/ExecutorAddress.h
M llvm/include/llvm/ExecutionEngine/Orc/Shared/MemoryFlags.h
M llvm/include/llvm/ExecutionEngine/Orc/SymbolStringPool.h
M llvm/include/llvm/Frontend/Offloading/Utility.h
M llvm/include/llvm/Frontend/OpenMP/ClauseT.h
M llvm/include/llvm/Frontend/OpenMP/ConstructDecompositionT.h
M llvm/include/llvm/Frontend/OpenMP/OMPContext.h
M llvm/include/llvm/Frontend/OpenMP/OMPIRBuilder.h
M llvm/include/llvm/IR/Attributes.h
M llvm/include/llvm/IR/BasicBlock.h
M llvm/include/llvm/IR/CFG.h
M llvm/include/llvm/IR/Constant.h
M llvm/include/llvm/IR/ConstantFolder.h
M llvm/include/llvm/IR/Constants.h
M llvm/include/llvm/IR/DIBuilder.h
M llvm/include/llvm/IR/DebugInfo.h
M llvm/include/llvm/IR/DebugInfoMetadata.h
M llvm/include/llvm/IR/DebugLoc.h
M llvm/include/llvm/IR/DebugProgramInstruction.h
M llvm/include/llvm/IR/DerivedTypes.h
M llvm/include/llvm/IR/Dominators.h
M llvm/include/llvm/IR/FMF.h
M llvm/include/llvm/IR/FixedMetadataKinds.def
M llvm/include/llvm/IR/FunctionProperties.def
M llvm/include/llvm/IR/GlobalObject.h
M llvm/include/llvm/IR/GlobalValue.h
M llvm/include/llvm/IR/IRBuilder.h
M llvm/include/llvm/IR/IRBuilderFolder.h
M llvm/include/llvm/IR/InstrTypes.h
M llvm/include/llvm/IR/Instruction.h
M llvm/include/llvm/IR/Intrinsics.td
M llvm/include/llvm/IR/IntrinsicsAArch64.td
M llvm/include/llvm/IR/IntrinsicsNVVM.td
M llvm/include/llvm/IR/IntrinsicsSPIRV.td
M llvm/include/llvm/IR/MemoryModelRelaxationAnnotations.h
M llvm/include/llvm/IR/Metadata.h
M llvm/include/llvm/IR/Module.h
M llvm/include/llvm/IR/ModuleSummaryIndex.h
M llvm/include/llvm/IR/NoFolder.h
M llvm/include/llvm/IR/Operator.h
M llvm/include/llvm/IR/PatternMatch.h
M llvm/include/llvm/IR/RuntimeLibcalls.td
M llvm/include/llvm/IR/TrackingMDRef.h
M llvm/include/llvm/IR/Type.h
M llvm/include/llvm/IR/Value.h
M llvm/include/llvm/IR/ValueHandle.h
M llvm/include/llvm/IR/ValueMap.h
M llvm/include/llvm/InitializePasses.h
M llvm/include/llvm/LTO/LTO.h
M llvm/include/llvm/Linker/IRMover.h
M llvm/include/llvm/MC/MCAsmInfo.h
M llvm/include/llvm/MC/MCContext.h
M llvm/include/llvm/MC/MCDwarf.h
M llvm/include/llvm/MC/MCRegister.h
M llvm/include/llvm/MC/MCSchedule.h
A llvm/include/llvm/Object/BBAddrMap.def
M llvm/include/llvm/Object/BBAddrMap.h
M llvm/include/llvm/Object/ELF.h
M llvm/include/llvm/Object/ObjectFile.h
M llvm/include/llvm/Passes/MachinePassRegistry.def
M llvm/include/llvm/ProfileData/Coverage/CoverageMapping.h
M llvm/include/llvm/ProfileData/FunctionId.h
M llvm/include/llvm/ProfileData/GCOV.h
M llvm/include/llvm/ProfileData/InstrProf.h
M llvm/include/llvm/ProfileData/SampleProf.h
M llvm/include/llvm/SandboxIR/Context.h
M llvm/include/llvm/SandboxIR/Tracker.h
M llvm/include/llvm/Support/ConvertUTF.h
M llvm/include/llvm/Support/ELFAttrParserCompact.h
M llvm/include/llvm/Support/ELFAttrParserExtended.h
M llvm/include/llvm/Support/FileSystem.h
M llvm/include/llvm/Support/FileSystem/UniqueID.h
M llvm/include/llvm/Support/MemoryBuffer.h
M llvm/include/llvm/Support/TargetOpcodes.def
M llvm/include/llvm/Support/TypeSize.h
M llvm/include/llvm/Support/UniqueBBID.h
M llvm/include/llvm/Support/VersionTuple.h
M llvm/include/llvm/Support/Win64EH.h
M llvm/include/llvm/Target/GenericOpcodes.td
M llvm/include/llvm/Target/GlobalISel/SelectionDAGCompat.td
M llvm/include/llvm/Target/TargetSelectionDAG.td
M llvm/include/llvm/Testing/Annotations/Annotations.h
M llvm/include/llvm/TextAPI/SymbolSet.h
M llvm/include/llvm/Transforms/AggressiveInstCombine/AggressiveInstCombine.h
M llvm/include/llvm/Transforms/Coroutines/CoroAnnotationElide.h
M llvm/include/llvm/Transforms/Coroutines/CoroCleanup.h
M llvm/include/llvm/Transforms/Coroutines/CoroConditionalWrapper.h
M llvm/include/llvm/Transforms/Coroutines/CoroEarly.h
M llvm/include/llvm/Transforms/Coroutines/CoroElide.h
M llvm/include/llvm/Transforms/Coroutines/CoroShape.h
M llvm/include/llvm/Transforms/Coroutines/SpillUtils.h
M llvm/include/llvm/Transforms/Coroutines/SuspendCrossingInfo.h
M llvm/include/llvm/Transforms/IPO/Annotation2Metadata.h
M llvm/include/llvm/Transforms/IPO/ArgumentPromotion.h
M llvm/include/llvm/Transforms/IPO/Attributor.h
M llvm/include/llvm/Transforms/IPO/CalledValuePropagation.h
M llvm/include/llvm/Transforms/IPO/ConstantMerge.h
M llvm/include/llvm/Transforms/IPO/CrossDSOCFI.h
M llvm/include/llvm/Transforms/IPO/DeadArgumentElimination.h
M llvm/include/llvm/Transforms/IPO/ElimAvailExtern.h
M llvm/include/llvm/Transforms/IPO/ExpandVariadics.h
M llvm/include/llvm/Transforms/IPO/FatLTOCleanup.h
M llvm/include/llvm/Transforms/IPO/ForceFunctionAttrs.h
M llvm/include/llvm/Transforms/IPO/FunctionSpecialization.h
M llvm/include/llvm/Transforms/IPO/GlobalOpt.h
M llvm/include/llvm/Transforms/IPO/GlobalSplit.h
M llvm/include/llvm/Transforms/IPO/HotColdSplitting.h
M llvm/include/llvm/Transforms/IPO/IROutliner.h
M llvm/include/llvm/Transforms/IPO/Instrumentor.h
A llvm/include/llvm/Transforms/IPO/InstrumentorRuntimeHelper.h
M llvm/include/llvm/Transforms/IPO/InstrumentorStubPrinter.h
M llvm/include/llvm/Transforms/IPO/InstrumentorUtils.h
A llvm/include/llvm/Transforms/IPO/InstrumentorVariables.inc.in
M llvm/include/llvm/Transforms/IPO/LoopExtractor.h
M llvm/include/llvm/Transforms/IPO/MemProfContextDisambiguation.h
M llvm/include/llvm/Transforms/IPO/OpenMPOpt.h
M llvm/include/llvm/Transforms/IPO/PartialInlining.h
M llvm/include/llvm/Transforms/IPO/SCCP.h
M llvm/include/llvm/Transforms/IPO/SampleProfileMatcher.h
M llvm/include/llvm/Transforms/InstCombine/InstCombiner.h
M llvm/include/llvm/Transforms/Instrumentation/AddressSanitizerCommon.h
M llvm/include/llvm/Transforms/Instrumentation/BlockCoverageInference.h
M llvm/include/llvm/Transforms/Instrumentation/CGProfile.h
M llvm/include/llvm/Transforms/Instrumentation/ControlHeightReduction.h
M llvm/include/llvm/Transforms/Instrumentation/PGOCtxProfFlattening.h
M llvm/include/llvm/Transforms/Instrumentation/PGOCtxProfLowering.h
M llvm/include/llvm/Transforms/Instrumentation/PGOForceFunctionAttrs.h
M llvm/include/llvm/Transforms/Scalar.h
M llvm/include/llvm/Transforms/Scalar/ADCE.h
M llvm/include/llvm/Transforms/Scalar/AlignmentFromAssumptions.h
M llvm/include/llvm/Transforms/Scalar/AnnotationRemarks.h
M llvm/include/llvm/Transforms/Scalar/BDCE.h
M llvm/include/llvm/Transforms/Scalar/CallSiteSplitting.h
M llvm/include/llvm/Transforms/Scalar/ConstantHoisting.h
M llvm/include/llvm/Transforms/Scalar/ConstraintElimination.h
M llvm/include/llvm/Transforms/Scalar/CorrelatedValuePropagation.h
M llvm/include/llvm/Transforms/Scalar/DCE.h
M llvm/include/llvm/Transforms/Scalar/DFAJumpThreading.h
M llvm/include/llvm/Transforms/Scalar/DeadStoreElimination.h
M llvm/include/llvm/Transforms/Scalar/DivRemPairs.h
M llvm/include/llvm/Transforms/Scalar/DropUnnecessaryAssumes.h
M llvm/include/llvm/Transforms/Scalar/ExpandMemCmp.h
M llvm/include/llvm/Transforms/Scalar/FlattenCFG.h
M llvm/include/llvm/Transforms/Scalar/Float2Int.h
M llvm/include/llvm/Transforms/Scalar/GVN.h
M llvm/include/llvm/Transforms/Scalar/GVNExpression.h
M llvm/include/llvm/Transforms/Scalar/GuardWidening.h
M llvm/include/llvm/Transforms/Scalar/IVUsersPrinter.h
M llvm/include/llvm/Transforms/Scalar/IndVarSimplify.h
M llvm/include/llvm/Transforms/Scalar/InductiveRangeCheckElimination.h
M llvm/include/llvm/Transforms/Scalar/InferAddressSpaces.h
M llvm/include/llvm/Transforms/Scalar/InferAlignment.h
M llvm/include/llvm/Transforms/Scalar/InstSimplifyPass.h
M llvm/include/llvm/Transforms/Scalar/JumpTableToSwitch.h
M llvm/include/llvm/Transforms/Scalar/LICM.h
M llvm/include/llvm/Transforms/Scalar/LoopAccessAnalysisPrinter.h
M llvm/include/llvm/Transforms/Scalar/LoopBoundSplit.h
M llvm/include/llvm/Transforms/Scalar/LoopDataPrefetch.h
M llvm/include/llvm/Transforms/Scalar/LoopDeletion.h
M llvm/include/llvm/Transforms/Scalar/LoopDistribute.h
M llvm/include/llvm/Transforms/Scalar/LoopFlatten.h
M llvm/include/llvm/Transforms/Scalar/LoopFuse.h
M llvm/include/llvm/Transforms/Scalar/LoopIdiomRecognize.h
M llvm/include/llvm/Transforms/Scalar/LoopInstSimplify.h
M llvm/include/llvm/Transforms/Scalar/LoopInterchange.h
M llvm/include/llvm/Transforms/Scalar/LoopLoadElimination.h
M llvm/include/llvm/Transforms/Scalar/LoopPredication.h
M llvm/include/llvm/Transforms/Scalar/LoopRotation.h
M llvm/include/llvm/Transforms/Scalar/LoopSimplifyCFG.h
M llvm/include/llvm/Transforms/Scalar/LoopSink.h
M llvm/include/llvm/Transforms/Scalar/LoopStrengthReduce.h
M llvm/include/llvm/Transforms/Scalar/LoopTermFold.h
M llvm/include/llvm/Transforms/Scalar/LoopUnrollAndJamPass.h
M llvm/include/llvm/Transforms/Scalar/LoopUnrollPass.h
M llvm/include/llvm/Transforms/Scalar/LoopVersioningLICM.h
M llvm/include/llvm/Transforms/Scalar/LowerAtomicPass.h
M llvm/include/llvm/Transforms/Scalar/LowerConstantIntrinsics.h
M llvm/include/llvm/Transforms/Scalar/LowerGuardIntrinsic.h
M llvm/include/llvm/Transforms/Scalar/LowerMatrixIntrinsics.h
M llvm/include/llvm/Transforms/Scalar/LowerWidenableCondition.h
M llvm/include/llvm/Transforms/Scalar/MakeGuardsExplicit.h
M llvm/include/llvm/Transforms/Scalar/MergeICmps.h
M llvm/include/llvm/Transforms/Scalar/MergedLoadStoreMotion.h
M llvm/include/llvm/Transforms/Scalar/NaryReassociate.h
M llvm/include/llvm/Transforms/Scalar/NewGVN.h
M llvm/include/llvm/Transforms/Scalar/PartiallyInlineLibCalls.h
M llvm/include/llvm/Transforms/Scalar/PlaceSafepoints.h
M llvm/include/llvm/Transforms/Scalar/Reg2Mem.h
M llvm/include/llvm/Transforms/Scalar/RewriteStatepointsForGC.h
M llvm/include/llvm/Transforms/Scalar/SROA.h
M llvm/include/llvm/Transforms/Scalar/ScalarizeMaskedMemIntrin.h
M llvm/include/llvm/Transforms/Scalar/SeparateConstOffsetFromGEP.h
M llvm/include/llvm/Transforms/Scalar/SimpleLoopUnswitch.h
M llvm/include/llvm/Transforms/Scalar/Sink.h
M llvm/include/llvm/Transforms/Scalar/SpeculativeExecution.h
M llvm/include/llvm/Transforms/Scalar/StraightLineStrengthReduce.h
M llvm/include/llvm/Transforms/Scalar/StructurizeCFG.h
M llvm/include/llvm/Transforms/Scalar/TailRecursionElimination.h
M llvm/include/llvm/Transforms/Scalar/WarnMissedTransforms.h
M llvm/include/llvm/Transforms/Utils/AddDiscriminators.h
A llvm/include/llvm/Transforms/Utils/AssignGUID.h
M llvm/include/llvm/Transforms/Utils/BreakCriticalEdges.h
M llvm/include/llvm/Transforms/Utils/BypassSlowDivision.h
M llvm/include/llvm/Transforms/Utils/CanonicalizeAliases.h
M llvm/include/llvm/Transforms/Utils/CanonicalizeFreezeInLoops.h
M llvm/include/llvm/Transforms/Utils/ControlFlowUtils.h
M llvm/include/llvm/Transforms/Utils/CountVisits.h
M llvm/include/llvm/Transforms/Utils/CtorUtils.h
M llvm/include/llvm/Transforms/Utils/DXILUpgrade.h
M llvm/include/llvm/Transforms/Utils/DebugSSAUpdater.h
M llvm/include/llvm/Transforms/Utils/DeclareRuntimeLibcalls.h
M llvm/include/llvm/Transforms/Utils/EntryExitInstrumenter.h
M llvm/include/llvm/Transforms/Utils/EscapeEnumerator.h
M llvm/include/llvm/Transforms/Utils/Evaluator.h
M llvm/include/llvm/Transforms/Utils/FixIrreducible.h
M llvm/include/llvm/Transforms/Utils/GlobalStatus.h
M llvm/include/llvm/Transforms/Utils/GuardUtils.h
M llvm/include/llvm/Transforms/Utils/HelloWorld.h
M llvm/include/llvm/Transforms/Utils/IRNormalizer.h
M llvm/include/llvm/Transforms/Utils/InjectTLIMappings.h
M llvm/include/llvm/Transforms/Utils/InstructionNamer.h
M llvm/include/llvm/Transforms/Utils/LibCallsShrinkWrap.h
M llvm/include/llvm/Transforms/Utils/LoopConstrainer.h
M llvm/include/llvm/Transforms/Utils/LoopPeel.h
M llvm/include/llvm/Transforms/Utils/LoopUtils.h
M llvm/include/llvm/Transforms/Utils/LoopVersioning.h
M llvm/include/llvm/Transforms/Utils/LowerAtomic.h
M llvm/include/llvm/Transforms/Utils/LowerGlobalDtors.h
M llvm/include/llvm/Transforms/Utils/LowerIFunc.h
M llvm/include/llvm/Transforms/Utils/LowerInvoke.h
M llvm/include/llvm/Transforms/Utils/LowerSwitch.h
M llvm/include/llvm/Transforms/Utils/LowerVectorIntrinsics.h
M llvm/include/llvm/Transforms/Utils/MatrixUtils.h
M llvm/include/llvm/Transforms/Utils/MemoryOpRemark.h
M llvm/include/llvm/Transforms/Utils/MemoryTaggingSupport.h
M llvm/include/llvm/Transforms/Utils/MetaRenamer.h
M llvm/include/llvm/Transforms/Utils/MisExpect.h
M llvm/include/llvm/Transforms/Utils/MoveAutoInit.h
M llvm/include/llvm/Transforms/Utils/NameAnonGlobals.h
M llvm/include/llvm/Transforms/Utils/RelLookupTableConverter.h
M llvm/include/llvm/Transforms/Utils/SSAUpdater.h
M llvm/include/llvm/Transforms/Utils/SampleProfileInference.h
M llvm/include/llvm/Transforms/Utils/SampleProfileLoaderBaseImpl.h
M llvm/include/llvm/Transforms/Utils/SampleProfileLoaderBaseUtil.h
M llvm/include/llvm/Transforms/Utils/ScalarEvolutionExpander.h
M llvm/include/llvm/Transforms/Utils/SimplifyIndVar.h
M llvm/include/llvm/Transforms/Utils/SimplifyLibCalls.h
M llvm/include/llvm/Transforms/Utils/StripConvergenceIntrinsics.h
M llvm/include/llvm/Transforms/Utils/StripGCRelocates.h
M llvm/include/llvm/Transforms/Utils/StripNonLineTableDebugInfo.h
A llvm/include/llvm/Transforms/Utils/TriggerCrashPass.h
M llvm/include/llvm/Transforms/Utils/UnifyFunctionExitNodes.h
M llvm/include/llvm/Transforms/Utils/UnifyLoopExits.h
M llvm/include/llvm/Transforms/Utils/UnrollLoop.h
M llvm/include/llvm/Transforms/Utils/VNCoercion.h
M llvm/include/llvm/Transforms/Vectorize/LoopIdiomVectorize.h
M llvm/include/llvm/Transforms/Vectorize/LoopVectorizationLegality.h
M llvm/include/llvm/Transforms/Vectorize/LoopVectorize.h
M llvm/include/llvm/Transforms/Vectorize/SLPVectorizer.h
M llvm/include/llvm/Transforms/Vectorize/SandboxVectorizer/DependencyGraph.h
M llvm/include/llvm/Transforms/Vectorize/SandboxVectorizer/Passes/BottomUpVec.h
M llvm/include/llvm/Transforms/Vectorize/SandboxVectorizer/Passes/LoadStoreVec.h
M llvm/include/llvm/Transforms/Vectorize/SandboxVectorizer/Passes/PackReuse.h
M llvm/include/llvm/Transforms/Vectorize/SandboxVectorizer/Passes/RegionsFromBBs.h
M llvm/include/llvm/Transforms/Vectorize/SandboxVectorizer/Passes/RegionsFromMetadata.h
M llvm/include/llvm/Transforms/Vectorize/SandboxVectorizer/Passes/SeedCollection.h
M llvm/include/llvm/Transforms/Vectorize/SandboxVectorizer/Passes/TransactionAcceptOrRevert.h
M llvm/include/llvm/Transforms/Vectorize/SandboxVectorizer/Passes/TransactionSave.h
M llvm/include/llvm/Transforms/Vectorize/SandboxVectorizer/RegionWithScore.h
M llvm/include/llvm/Transforms/Vectorize/SandboxVectorizer/SandboxVectorizerPassBuilder.h
M llvm/include/llvm/Transforms/Vectorize/SandboxVectorizer/VecUtils.h
M llvm/include/llvm/Transforms/Vectorize/VectorCombine.h
M llvm/include/module.modulemap
M llvm/lib/Analysis/AliasAnalysis.cpp
M llvm/lib/Analysis/CallGraphSCCPass.cpp
M llvm/lib/Analysis/CaptureTracking.cpp
M llvm/lib/Analysis/ConstantFolding.cpp
M llvm/lib/Analysis/CtxProfAnalysis.cpp
M llvm/lib/Analysis/DependenceAnalysis.cpp
M llvm/lib/Analysis/DominanceFrontier.cpp
M llvm/lib/Analysis/FunctionPropertiesAnalysis.cpp
M llvm/lib/Analysis/GlobalsModRef.cpp
M llvm/lib/Analysis/IRSimilarityIdentifier.cpp
M llvm/lib/Analysis/IVDescriptors.cpp
M llvm/lib/Analysis/InstructionSimplify.cpp
M llvm/lib/Analysis/LoopAccessAnalysis.cpp
M llvm/lib/Analysis/MemorySSA.cpp
M llvm/lib/Analysis/RegionInfo.cpp
M llvm/lib/Analysis/ScalarEvolution.cpp
M llvm/lib/Analysis/TargetTransformInfo.cpp
M llvm/lib/Analysis/TypeBasedAliasAnalysis.cpp
M llvm/lib/Analysis/ValueTracking.cpp
M llvm/lib/Analysis/VectorUtils.cpp
M llvm/lib/AsmParser/LLLexer.cpp
M llvm/lib/AsmParser/LLParser.cpp
M llvm/lib/BinaryFormat/Dwarf.cpp
M llvm/lib/Bitcode/Reader/BitcodeAnalyzer.cpp
M llvm/lib/Bitcode/Reader/BitcodeReader.cpp
M llvm/lib/Bitcode/Reader/MetadataLoader.cpp
M llvm/lib/Bitcode/Writer/BitcodeWriter.cpp
M llvm/lib/CodeGen/AggressiveAntiDepBreaker.cpp
M llvm/lib/CodeGen/AsmPrinter/CodeViewDebug.h
M llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp
M llvm/lib/CodeGen/AsmPrinter/DwarfDebug.h
M llvm/lib/CodeGen/AssignmentTrackingAnalysis.cpp
M llvm/lib/CodeGen/AtomicExpandPass.cpp
M llvm/lib/CodeGen/BreakFalseDeps.cpp
M llvm/lib/CodeGen/CodeGen.cpp
M llvm/lib/CodeGen/CodeGenPrepare.cpp
M llvm/lib/CodeGen/ComplexDeinterleavingPass.cpp
M llvm/lib/CodeGen/ExpandIRInsts.cpp
M llvm/lib/CodeGen/ExpandReductions.cpp
M llvm/lib/CodeGen/ExpandVectorPredication.cpp
M llvm/lib/CodeGen/GCRootLowering.cpp
M llvm/lib/CodeGen/GlobalISel/CSEMIRBuilder.cpp
M llvm/lib/CodeGen/GlobalISel/CallLowering.cpp
M llvm/lib/CodeGen/GlobalMerge.cpp
M llvm/lib/CodeGen/IndirectBrExpandPass.cpp
M llvm/lib/CodeGen/InlineSpiller.cpp
M llvm/lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.cpp
M llvm/lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.h
M llvm/lib/CodeGen/LiveRangeEdit.cpp
M llvm/lib/CodeGen/MIRParser/MIParser.cpp
M llvm/lib/CodeGen/MachineCopyPropagation.cpp
M llvm/lib/CodeGen/MachineFunction.cpp
M llvm/lib/CodeGen/MachineInstr.cpp
M llvm/lib/CodeGen/MachineLateInstrsCleanup.cpp
M llvm/lib/CodeGen/MachineOutliner.cpp
M llvm/lib/CodeGen/MachineVerifier.cpp
M llvm/lib/CodeGen/PeepholeOptimizer.cpp
M llvm/lib/CodeGen/PseudoProbeInserter.cpp
M llvm/lib/CodeGen/RegisterBankInfo.cpp
M llvm/lib/CodeGen/RemoveRedundantDebugValues.cpp
M llvm/lib/CodeGen/SelectOptimize.cpp
M llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
M llvm/lib/CodeGen/SelectionDAG/InstrEmitter.cpp
M llvm/lib/CodeGen/SelectionDAG/LegalizeIntegerTypes.cpp
M llvm/lib/CodeGen/SelectionDAG/LegalizeTypes.h
M llvm/lib/CodeGen/SelectionDAG/LegalizeVectorOps.cpp
M llvm/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp
M llvm/lib/CodeGen/SelectionDAG/ScheduleDAGFast.cpp
M llvm/lib/CodeGen/SelectionDAG/ScheduleDAGRRList.cpp
M llvm/lib/CodeGen/SelectionDAG/ScheduleDAGSDNodes.cpp
M llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
M llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
M llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp
M llvm/lib/CodeGen/StackMaps.cpp
M llvm/lib/CodeGen/TargetPassConfig.cpp
M llvm/lib/CodeGen/TargetRegisterInfo.cpp
M llvm/lib/DWARFLinker/Classic/DWARFLinker.cpp
M llvm/lib/DWARFLinker/Classic/DWARFLinkerCompileUnit.cpp
M llvm/lib/DWARFLinker/Parallel/DIEAttributeCloner.cpp
M llvm/lib/DWARFLinker/Parallel/DWARFLinkerCompileUnit.cpp
M llvm/lib/DWARFLinker/Parallel/DWARFLinkerImpl.cpp
M llvm/lib/DebugInfo/CodeView/CodeViewRecordIO.cpp
M llvm/lib/DebugInfo/CodeView/TypeHashing.cpp
M llvm/lib/DebugInfo/DWARF/DWARFAcceleratorTable.cpp
M llvm/lib/DebugInfo/DWARF/DWARFVerifier.cpp
M llvm/lib/DebugInfo/GSYM/GsymReader.cpp
M llvm/lib/DebugInfo/PDB/Native/GSIStreamBuilder.cpp
M llvm/lib/DebugInfo/PDB/Native/PDBFile.cpp
M llvm/lib/DebugInfo/PDB/Native/PDBFileBuilder.cpp
M llvm/lib/ExecutionEngine/Orc/Core.cpp
M llvm/lib/ExecutionEngine/Orc/MachOPlatform.cpp
M llvm/lib/ExecutionEngine/Orc/Shared/SimpleRemoteEPCUtils.cpp
M llvm/lib/ExecutionEngine/Orc/TargetProcess/CMakeLists.txt
M llvm/lib/Frontend/Offloading/Utility.cpp
M llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp
M llvm/lib/IR/AsmWriter.cpp
M llvm/lib/IR/AutoUpgrade.cpp
M llvm/lib/IR/BasicBlock.cpp
M llvm/lib/IR/Constants.cpp
M llvm/lib/IR/ConstantsContext.h
M llvm/lib/IR/Core.cpp
M llvm/lib/IR/DIBuilder.cpp
M llvm/lib/IR/DebugInfo.cpp
M llvm/lib/IR/DebugLoc.cpp
M llvm/lib/IR/DebugProgramInstruction.cpp
M llvm/lib/IR/Globals.cpp
M llvm/lib/IR/IRBuilder.cpp
M llvm/lib/IR/Instruction.cpp
M llvm/lib/IR/Instructions.cpp
M llvm/lib/IR/Intrinsics.cpp
M llvm/lib/IR/LLVMContextImpl.h
M llvm/lib/IR/LegacyPassManager.cpp
M llvm/lib/IR/MemoryModelRelaxationAnnotations.cpp
M llvm/lib/IR/Metadata.cpp
M llvm/lib/IR/Module.cpp
M llvm/lib/IR/Type.cpp
M llvm/lib/IR/Use.cpp
M llvm/lib/IR/Value.cpp
M llvm/lib/IR/Verifier.cpp
M llvm/lib/LTO/LTO.cpp
M llvm/lib/LTO/LTOBackend.cpp
M llvm/lib/Linker/IRMover.cpp
M llvm/lib/MC/CMakeLists.txt
M llvm/lib/MC/MCAsmInfoELF.cpp
M llvm/lib/MC/MCAsmInfoGOFF.cpp
M llvm/lib/MC/MCAsmInfoWasm.cpp
M llvm/lib/MC/MCAsmInfoXCOFF.cpp
M llvm/lib/MC/MCContext.cpp
M llvm/lib/MC/MCDwarf.cpp
M llvm/lib/MC/MCObjectFileInfo.cpp
M llvm/lib/MC/MCObjectStreamer.cpp
M llvm/lib/MC/MCParser/AsmParser.cpp
M llvm/lib/MC/MCParser/MasmParser.cpp
M llvm/lib/MC/MCSchedule.cpp
M llvm/lib/MC/MCStreamer.cpp
M llvm/lib/ObjCopy/DXContainer/DXContainerObjcopy.cpp
M llvm/lib/Object/DXContainer.cpp
M llvm/lib/Object/Decompressor.cpp
M llvm/lib/Object/ELF.cpp
M llvm/lib/Object/MachOObjectFile.cpp
M llvm/lib/Object/Minidump.cpp
M llvm/lib/Object/OffloadBundle.cpp
M llvm/lib/Object/XCOFFObjectFile.cpp
M llvm/lib/ObjectYAML/DXContainerYAML.cpp
M llvm/lib/Passes/PassBuilder.cpp
M llvm/lib/Passes/PassBuilderPipelines.cpp
M llvm/lib/Passes/PassRegistry.def
M llvm/lib/ProfileData/InstrProf.cpp
M llvm/lib/ProfileData/InstrProfCorrelator.cpp
M llvm/lib/SandboxIR/Tracker.cpp
M llvm/lib/Support/APFloat.cpp
M llvm/lib/Support/APInt.cpp
M llvm/lib/Support/CMakeLists.txt
M llvm/lib/Support/CommandLine.cpp
M llvm/lib/Support/ConvertUTFWrapper.cpp
M llvm/lib/Support/ELFAttrParserCompact.cpp
M llvm/lib/Support/ELFAttrParserExtended.cpp
M llvm/lib/Support/MemoryBuffer.cpp
M llvm/lib/Support/Path.cpp
M llvm/lib/Support/StringRef.cpp
M llvm/lib/Support/Unix/Path.inc
A llvm/lib/Support/Win64EH.cpp
M llvm/lib/Support/Windows/Path.inc
M llvm/lib/TableGen/TGLexer.cpp
M llvm/lib/TableGen/TGLexer.h
M llvm/lib/TableGen/TGParser.cpp
M llvm/lib/TableGen/TGParser.h
M llvm/lib/Target/AArch64/AArch64Combine.td
M llvm/lib/Target/AArch64/AArch64ConditionOptimizer.cpp
M llvm/lib/Target/AArch64/AArch64ISelDAGToDAG.cpp
M llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
M llvm/lib/Target/AArch64/AArch64InstrFormats.td
M llvm/lib/Target/AArch64/AArch64InstrInfo.cpp
M llvm/lib/Target/AArch64/AArch64InstrInfo.td
M llvm/lib/Target/AArch64/AArch64LoadStoreOptimizer.cpp
M llvm/lib/Target/AArch64/AArch64Processors.td
M llvm/lib/Target/AArch64/AArch64SVEInstrInfo.td
M llvm/lib/Target/AArch64/AArch64SchedCyclone.td
M llvm/lib/Target/AArch64/AArch64StackTaggingPreRA.cpp
M llvm/lib/Target/AArch64/AArch64TargetTransformInfo.cpp
M llvm/lib/Target/AArch64/AArch64TargetTransformInfo.h
M llvm/lib/Target/AArch64/GISel/AArch64LegalizerInfo.cpp
M llvm/lib/Target/AArch64/GISel/AArch64PreLegalizerCombiner.cpp
M llvm/lib/Target/AArch64/GISel/AArch64RegisterBankInfo.cpp
M llvm/lib/Target/AArch64/MCTargetDesc/AArch64MCAsmInfo.cpp
M llvm/lib/Target/AArch64/MCTargetDesc/AArch64MCLFIRewriter.cpp
M llvm/lib/Target/AArch64/MCTargetDesc/AArch64MCLFIRewriter.h
M llvm/lib/Target/AArch64/SVEInstrFormats.td
M llvm/lib/Target/AMDGPU/AMDGPU.td
M llvm/lib/Target/AMDGPU/AMDGPUAsmPrinter.cpp
M llvm/lib/Target/AMDGPU/AMDGPUCoExecSchedStrategy.cpp
M llvm/lib/Target/AMDGPU/AMDGPUCoExecSchedStrategy.h
M llvm/lib/Target/AMDGPU/AMDGPUCodeGenPrepare.cpp
M llvm/lib/Target/AMDGPU/AMDGPUInsertDelayAlu.cpp
M llvm/lib/Target/AMDGPU/AMDGPUInstructionSelector.cpp
M llvm/lib/Target/AMDGPU/AMDGPUInstructionSelector.h
M llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp
M llvm/lib/Target/AMDGPU/AMDGPULibCalls.cpp
M llvm/lib/Target/AMDGPU/AMDGPULowerExecSync.cpp
M llvm/lib/Target/AMDGPU/AMDGPUMCResourceInfo.cpp
M llvm/lib/Target/AMDGPU/AMDGPUMIRFormatter.cpp
M llvm/lib/Target/AMDGPU/AMDGPUMIRFormatter.h
M llvm/lib/Target/AMDGPU/AMDGPUPrintfRuntimeBinding.cpp
M llvm/lib/Target/AMDGPU/AMDGPURegBankCombiner.cpp
M llvm/lib/Target/AMDGPU/AMDGPURegBankLegalizeHelper.cpp
M llvm/lib/Target/AMDGPU/AMDGPURegBankLegalizeRules.cpp
M llvm/lib/Target/AMDGPU/AMDGPUResourceUsageAnalysis.cpp
M llvm/lib/Target/AMDGPU/AMDGPUResourceUsageAnalysis.h
M llvm/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp
M llvm/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.cpp
M llvm/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.h
M llvm/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp
M llvm/lib/Target/AMDGPU/Disassembler/AMDGPUDisassembler.cpp
M llvm/lib/Target/AMDGPU/GCNHazardRecognizer.cpp
M llvm/lib/Target/AMDGPU/GCNSchedStrategy.cpp
M llvm/lib/Target/AMDGPU/GCNSchedStrategy.h
M llvm/lib/Target/AMDGPU/GCNSubtarget.cpp
M llvm/lib/Target/AMDGPU/GCNSubtarget.h
M llvm/lib/Target/AMDGPU/GCNVOPDUtils.cpp
M llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUTargetStreamer.cpp
M llvm/lib/Target/AMDGPU/SIFixSGPRCopies.cpp
M llvm/lib/Target/AMDGPU/SIFoldOperands.cpp
M llvm/lib/Target/AMDGPU/SIFrameLowering.cpp
M llvm/lib/Target/AMDGPU/SIFrameLowering.h
M llvm/lib/Target/AMDGPU/SIISelLowering.cpp
M llvm/lib/Target/AMDGPU/SIInsertWaitcnts.cpp
M llvm/lib/Target/AMDGPU/SIInstrInfo.cpp
M llvm/lib/Target/AMDGPU/SIInstrInfo.h
M llvm/lib/Target/AMDGPU/SIInstrInfo.td
M llvm/lib/Target/AMDGPU/SIInstructions.td
M llvm/lib/Target/AMDGPU/SILowerSGPRSpills.cpp
M llvm/lib/Target/AMDGPU/SIMachineFunctionInfo.cpp
M llvm/lib/Target/AMDGPU/SIMachineFunctionInfo.h
M llvm/lib/Target/AMDGPU/SIMemoryLegalizer.cpp
M llvm/lib/Target/AMDGPU/SIPeepholeSDWA.cpp
M llvm/lib/Target/AMDGPU/SIRegisterInfo.cpp
M llvm/lib/Target/AMDGPU/SIRegisterInfo.h
M llvm/lib/Target/AMDGPU/SIRegisterInfo.td
M llvm/lib/Target/AMDGPU/SIWholeQuadMode.cpp
M llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.cpp
M llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.h
M llvm/lib/Target/AMDGPU/VOP2Instructions.td
M llvm/lib/Target/AMDGPU/VOP3Instructions.td
M llvm/lib/Target/AMDGPU/VOP3PInstructions.td
Log Message:
-----------
Merge branch 'main' into users/aokblast/moneypunct_fbsd_test
Compare: https://github.com/llvm/llvm-project/compare/88f72dbad8fa...4e3dd548ac39
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