[all-commits] [llvm/llvm-project] fd76c9: [WebAssembly] Fix nondeterminism by using MapVecto...
Aiden Grossman via All-commits
all-commits at lists.llvm.org
Mon Jun 29 08:15:36 PDT 2026
Branch: refs/heads/users/boomanaiden154/main.lanai-port-delayslotfiller-to-newpm
Home: https://github.com/llvm/llvm-project
Commit: fd76c9bdf10383ae536d8c504dafe3bd91947d83
https://github.com/llvm/llvm-project/commit/fd76c9bdf10383ae536d8c504dafe3bd91947d83
Author: Derek Schuff <dschuff at chromium.org>
Date: 2026-06-27 (Sat, 27 Jun 2026)
Changed paths:
M llvm/lib/Target/WebAssembly/WebAssemblyCFGStackify.cpp
M llvm/lib/Target/WebAssembly/WebAssemblyLateEHPrepare.cpp
M llvm/lib/Target/WebAssembly/WebAssemblyLowerEmscriptenEHSjLj.cpp
M llvm/test/CodeGen/WebAssembly/cfg-stackify-eh.ll
Log Message:
-----------
[WebAssembly] Fix nondeterminism by using MapVector for pointer-keyed maps [NFC] (#205184)
Several DenseMaps in the WebAssembly backend keyed by pointers were
being
iterated over, potentially leading to nondeterministic codegen
(differing
try/delegate nesting, virtual register allocation, or PHI node
insertion)
due to nondeterministsic pointer values.
This patch replaces these DenseMaps with MapVectors to guarantee
deterministic iteration order:
- UnwindDestToTryRanges in WebAssemblyCFGStackify.cpp
- EHPadToUnwindDest in WebAssemblyCFGStackify.cpp
- EHPadToRethrows in WebAssemblyLateEHPrepare.cpp
- UnwindDestToNewPreds in WebAssemblyLowerEmscriptenEHSjLj.cpp
Fixes: #204883
Co-authored-by: Ammar Askar <aaskar at google.com>
Assisted-by: Antigravity
Commit: d221c2db364d6288e4d96f7c3ebd3832707e2685
https://github.com/llvm/llvm-project/commit/d221c2db364d6288e4d96f7c3ebd3832707e2685
Author: Zhige Chen <zhige_chen at outlook.com>
Date: 2026-06-27 (Sat, 27 Jun 2026)
Changed paths:
M llvm/test/tools/llubi/intr_memory.ll
A llvm/test/tools/llubi/store_dead_gep.ll
M llvm/tools/llubi/lib/Context.h
M llvm/tools/llubi/lib/ExecutorBase.cpp
M llvm/tools/llubi/lib/Interpreter.cpp
Log Message:
-----------
[llubi] Poison object contents in `llvm.lifetime.end` (#206036)
Make `@llvm.lifetime.end` poison the object content. This removes the
need of special-casing for dead objects in `ExecutorBase::load()`, etc.
See also [#204932
(comment)](https://github.com/llvm/llvm-project/pull/204932#discussion_r3465364425).
Commit: 1d043ef3afe6d13d8db8fea8b01cc1d4dd3dbfd4
https://github.com/llvm/llvm-project/commit/1d043ef3afe6d13d8db8fea8b01cc1d4dd3dbfd4
Author: Prasoon <prasoonkumar054 at gmail.com>
Date: 2026-06-27 (Sat, 27 Jun 2026)
Changed paths:
M llvm/utils/lit/lit/main.py
M llvm/utils/lit/lit/run.py
Log Message:
-----------
Revert "[lit] Migrate lit to ProcessPoolExecutor (#202681)" (#206138)
This reverts the commit 1e2d1bbc12f6.
ProcessPoolExecutor.shutdown(wait=True) hangs on macOS 14 with Python 3.9: join_executor_internals() calls call_queue.join_thread() before p.join(), but macOS requires the inverse order. The feeder thread cannot drain until worker processes are joined, so join_thread() blocks forever. This is fixed upstream in CPython >= 3.12 but affects all earlier versions on macOS. Reverting to unblock the aarch64-darwin buildbot while a proper fix is worked out.
The original changes and context can be found in https://github.com/llvm/llvm-project/pull/202681
Commit: 2018896ecca76c712a8d6dbdc6ffe7843b030341
https://github.com/llvm/llvm-project/commit/2018896ecca76c712a8d6dbdc6ffe7843b030341
Author: Aiden Grossman <aidengrossman at google.com>
Date: 2026-06-27 (Sat, 27 Jun 2026)
Changed paths:
M llvm/test/Transforms/Attributor/depgraph.ll
M llvm/test/Transforms/Attributor/nofpclass-round.ll
M llvm/test/Transforms/Attributor/reduced/aa_execution_domain_wrong_fn.ll
M llvm/test/Transforms/Attributor/reduced/aapointer_info_map_invalidation.ll
M llvm/test/Transforms/Attributor/reduced/openmp_opt_constant_type_crash.ll
M llvm/test/Transforms/Attributor/reduced/openmp_opt_dont_follow_gep_without_value.ll
M llvm/test/Transforms/Attributor/reduced/openmp_opt_global_read.ll
M llvm/test/Transforms/Attributor/reduced/openmp_opt_global_synced.ll
M llvm/test/Transforms/CodeGenPrepare/RISCV/noop-copy-sink.ll
M llvm/test/Transforms/Coroutines/coro-async-addr-lifetime-infinite-loop-bug.ll
M llvm/test/Transforms/Coroutines/coro-async-addr-lifetime-start-bug.ll
M llvm/test/Transforms/Coroutines/coro-async-coro-id-async-bug.ll
M llvm/test/Transforms/Coroutines/coro-async-end-bug.ll
M llvm/test/Transforms/Coroutines/coro-async-no-cse-swift-async-context-addr.ll
M llvm/test/Transforms/Coroutines/coro-async-noduplicate.ll
M llvm/test/Transforms/Coroutines/coro-async-nomerge.ll
M llvm/test/Transforms/Coroutines/coro-async-phi.ll
M llvm/test/Transforms/Coroutines/coro-async-unreachable.ll
M llvm/test/Transforms/Coroutines/coro-async.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-musttail3.ll
M llvm/test/Transforms/DeadStoreElimination/combined-partial-overwrites.ll
M llvm/test/Transforms/DeadStoreElimination/multiblock-overlap.ll
M llvm/test/Transforms/ExpandIRInsts/AMDGPU/frem-inf.ll
M llvm/test/Transforms/ExpandVariadics/invoke.ll
M llvm/test/Transforms/GVN/PRE/no-scalar-pre.ll
M llvm/test/Transforms/LoopDeletion/assume.ll
M llvm/test/Transforms/LoopVectorize/AArch64/early_exit_costs.ll
M llvm/test/Transforms/LoopVectorize/AArch64/partial-reduce-fdot-product.ll
M llvm/test/Transforms/LoopVectorize/AArch64/simple_early_exit.ll
M llvm/test/Transforms/LoopVectorize/AArch64/transform-narrow-interleave-to-widen-memory-constant-ops.ll
M llvm/test/Transforms/LoopVectorize/AArch64/transform-narrow-interleave-to-widen-memory-scalable.ll
M llvm/test/Transforms/LoopVectorize/ARM/prefer-tail-loop-folding.ll
M llvm/test/Transforms/LoopVectorize/vector-loop-backedge-elimination-outside-iv-users.ll
M llvm/test/Transforms/OpenMP/spmdization_guarding_two_reaching_kernels.ll
M llvm/test/Transforms/OpenMP/spmdization_no_guarding_two_reaching_kernels.ll
M llvm/test/Transforms/SLPVectorizer/RISCV/load-binop-store.ll
M llvm/test/Transforms/SLPVectorizer/RISCV/load-store.ll
M llvm/test/Transforms/SROA/scalable-vector-struct.ll
M llvm/test/Transforms/SampleProfile/pseudo-probe-loop-deletion.ll
M llvm/test/Transforms/SimplifyCFG/return-merge.ll
M llvm/test/Transforms/VectorCombine/AArch64/narrow-phi-of-shuffles.ll
M llvm/test/Transforms/VectorCombine/AArch64/vscale-bitcast-shuffle-inseltpoison.ll
M llvm/test/Transforms/VectorCombine/AArch64/vscale-bitcast-shuffle.ll
M llvm/test/Transforms/VectorCombine/AMDGPU/as-transition-inseltpoison.ll
M llvm/test/Transforms/VectorCombine/AMDGPU/as-transition.ll
M llvm/test/Transforms/VectorCombine/AMDGPU/narrow-phi-of-shuffles.ll
M llvm/test/Transforms/VectorCombine/ARM/narrow-phi-of-shuffles.ll
M llvm/test/Transforms/VectorCombine/Hexagon/load-inseltpoison.ll
M llvm/test/Transforms/VectorCombine/Hexagon/load.ll
M llvm/test/Transforms/VectorCombine/Hexagon/narrow-phi-of-shuffles.ll
M llvm/test/Transforms/VectorCombine/RISCV/narrow-phi-of-shuffles.ll
M llvm/test/Transforms/VectorCombine/X86/scalarize-vector-gep.ll
M llvm/test/Transforms/VectorCombine/alias.ll
M llvm/test/Transforms/VectorCombine/arbitrary-precision-int.ll
M llvm/test/Transforms/VectorCombine/narrow-phi-of-shuffles.ll
M llvm/test/Transforms/WholeProgramDevirt/branch-funnel.ll
Log Message:
-----------
[Transforms] Remove redundant --check-prefix flags (#206211)
--check-prefix=CHECK is completely redundant, so remove it.
Change was generated by Gemini, I manually reviewed the entire diff.
Commit: 106644f6c835f9d2137aeb9cbfe1b9a60d03d17f
https://github.com/llvm/llvm-project/commit/106644f6c835f9d2137aeb9cbfe1b9a60d03d17f
Author: Minsoo Choo <minsoochoo0122 at proton.me>
Date: 2026-06-26 (Fri, 26 Jun 2026)
Changed paths:
M lldb/tools/driver/CMakeLists.txt
Log Message:
-----------
[lldb][driver] Fix ELF interposition of HostInfoBase symbols causing segfault (#204710)
Commit 67e571d (#179306) added lldbHost and lldbUtility to
`LLDB_DRIVER_LINK_LIBS` A side-effect is that HostInfoBase.cpp, which
contains the file-static `g_fields` pointer, is now compiled into both
the lldb binary and liblldb.so, giving each its own independent
`g_fields`.
On ELF platforms this creates an interposition hazard. When
`LLDB_ENABLE_DYNAMIC_SCRIPTINTERPRETERS` is set, AddLLDB.cmake switches
all LLDB libraries to `CXX_VISIBILITY_PRESET=default` so that the
version script can re-export private symbols needed by dynamically
loaded plugins. The Python plugin calls `HostInfo::GetShlibDir()`
directly, so extract-dynamic-script-interpreter-exports.py adds
`HostInfoBase::GetShlibDir` to liblldb.so's exports (global: in the
version script). `HostInfoBase::Initialize()` is not called by the
plugin and stays local:.
At runtime the dynamic linker resolves liblldb.so's PLT entry for
`GetShlibDir()` to lldb's copy (ELF interposition: executable symbols
win), which holds a never-initialized `g_fields == nullptr`.
`Initialize()` was already called, but it ran on liblldb.so's own copy
via the version-script-local binding. Dereferencing `nullptr + 0x108`
(offset of `m_lldb_so_dir_once`) crashes in `pthread_once`.
To fix this, pass `--exclude-libs,ALL` to the lldb executable on ELF
platforms. This keeps every archive-contributed symbol (lldbHost,
lldbUtility, LLVM libs) out of lldb's `.dynsym`, eliminating the
interposition. liblldb.so's PLT for `GetShlibDir()` then finds only
liblldb.so's own exported definition, so `Initialize()` and
`GetShlibDir()` consistently operate on the same `g_fields`.
The issue does not affect Darwin because Mach-O uses a two-level
namespace: symbol references in liblldb.dylib are bound to a specific
library at link time, so lldb's copy is never a candidate for resolution
regardless of visibility.
Tested-on: FreeBSD 15.1 arm64, Fedora 44 amd64
Closes: #204643
Assisted-by: Claude
Signed-off-by: Minsoo Choo <minsoo at minsoo.io>
Commit: 9f423a973b69b2f90075e8694457f6eca173162b
https://github.com/llvm/llvm-project/commit/9f423a973b69b2f90075e8694457f6eca173162b
Author: lianjinfeng2003 <101249452+mygitljf at users.noreply.github.com>
Date: 2026-06-27 (Sat, 27 Jun 2026)
Changed paths:
M mlir/include/mlir/Dialect/Linalg/IR/LinalgStructuredOps.td
M mlir/test/Dialect/Linalg/invalid.mlir
Log Message:
-----------
[mlir][linalg] Restrict linalg.contract results (#205988)
I tightened linalg.contract so buffer-style uses cannot produce memref
results. This keeps the op consistent with destination-style semantics
and turns the bad input into a verifier error instead of letting later
rewrites crash.
Fixes #205708
Commit: 212ae47b82424a3f6c8b453680337c63f9aed075
https://github.com/llvm/llvm-project/commit/212ae47b82424a3f6c8b453680337c63f9aed075
Author: Timm Baeder <tbaeder at redhat.com>
Date: 2026-06-27 (Sat, 27 Jun 2026)
Changed paths:
M clang/lib/AST/ByteCode/Compiler.cpp
M clang/test/AST/ByteCode/codegen.cpp
M clang/test/CodeGen/cfi-unchecked-callee-attribute.cpp
Log Message:
-----------
[clang][bytecode] Make more reinterpret_casts non-fatal (#206056)
Looks like we can handle more of them these days.
Commit: aab67db385c2f4b7ac93adf616a52dbd943cfae5
https://github.com/llvm/llvm-project/commit/aab67db385c2f4b7ac93adf616a52dbd943cfae5
Author: Nikolas Klauser <nikolasklauser at berlin.de>
Date: 2026-06-27 (Sat, 27 Jun 2026)
Changed paths:
M libcxx/include/__memory/shared_ptr.h
M libcxx/test/std/utilities/memory/util.smartptr/util.smartptr.shared/util.smartptr.shared.const/pointer_deleter_allocator.pass.cpp
M libcxx/test/std/utilities/memory/util.smartptr/util.smartptr.shared/util.smartptr.shared.create/allocate_shared.pass.cpp
M libcxx/test/std/utilities/memory/util.smartptr/util.smartptr.shared/util.smartptr.shared.create/allocate_shared_for_overwrite.pass.cpp
M libcxx/test/support/min_allocator.h
Log Message:
-----------
[libc++] Fix shared_ptr rebinding allocators to incomplete types (#206145)
https://github.com/llvm/llvm-project/pull/200401 caused various ways to
create a `shared_ptr` control block to reject any allocators which
required a complete type. This patch allows allocators to again require
a complete type.
Commit: 6101b0bf88b24f10e14cffb78539613a265557be
https://github.com/llvm/llvm-project/commit/6101b0bf88b24f10e14cffb78539613a265557be
Author: Alexis Engelke <engelke at in.tum.de>
Date: 2026-06-27 (Sat, 27 Jun 2026)
Changed paths:
M llvm/lib/TargetParser/X86TargetParser.cpp
Log Message:
-----------
[X86][NFC] Use compact enum in TargetParser (#206088)
ProcessorDefs and FeatureInfoDefs store strings together with constant
data. Use the compact enum tables to avoid dynamic relocations for the
strings.
Commit: b11727f2f1ce55c243817b5051d9345d85034070
https://github.com/llvm/llvm-project/commit/b11727f2f1ce55c243817b5051d9345d85034070
Author: Connector Switch <c8ef at outlook.com>
Date: 2026-06-27 (Sat, 27 Jun 2026)
Changed paths:
M libcxx/docs/Status/Cxx23Issues.csv
M libcxx/test/std/input.output/syncstream/syncbuf/syncstream.syncbuf.assign/assign.pass.cpp
M libcxx/test/std/input.output/syncstream/syncbuf/syncstream.syncbuf.assign/swap.pass.cpp
Log Message:
-----------
[libc++] Mark LWG3498 as resolved (#206078)
Closes https://github.com/llvm/llvm-project/issues/104375.
LWG3498 was implemented in LLVM 18 together with P0053R7 via
7cc72a0a2ec22855572d96411febd4f2c4ac5a49.
Commit: b2727090b2de181c00568c0324f04c3821ee996f
https://github.com/llvm/llvm-project/commit/b2727090b2de181c00568c0324f04c3821ee996f
Author: Longsheng Mou <longshengmou at gmail.com>
Date: 2026-06-27 (Sat, 27 Jun 2026)
Changed paths:
M mlir/include/mlir/Conversion/Passes.td
M mlir/test/Conversion/ArithAndMathToAPFloat/math-to-apfloat.mlir
Log Message:
-----------
[mlir][math] Add VectorDialect dependency to MathToAPFloatConversion (#206212)
Explicitly load VectorDialect as a dependent dialect in
MathToAPFloatConversionPass to avoid unregistered dialect errors when
generating vector ops. Fixes #206093.
Commit: 0b3d2ae22d4adbdb45a1ed0348ff574b8eeb80a4
https://github.com/llvm/llvm-project/commit/0b3d2ae22d4adbdb45a1ed0348ff574b8eeb80a4
Author: Alexis Engelke <engelke at in.tum.de>
Date: 2026-06-27 (Sat, 27 Jun 2026)
Changed paths:
M clang/tools/driver/cc1_main.cpp
M llvm/include/llvm/MC/MCSubtargetInfo.h
M llvm/lib/MC/MCSubtargetInfo.cpp
M llvm/lib/Target/AMDGPU/AMDGPURemoveIncompatibleFunctions.cpp
M llvm/lib/Target/RISCV/AsmParser/RISCVAsmParser.cpp
M llvm/lib/Target/RISCV/MCTargetDesc/RISCVBaseInfo.cpp
M llvm/lib/Target/RISCV/RISCVAsmPrinter.cpp
M llvm/lib/Target/WebAssembly/WebAssemblyAsmPrinter.cpp
M llvm/lib/Target/WebAssembly/WebAssemblyTargetMachine.cpp
M mlir/lib/Target/LLVMIR/Transforms/TargetToTargetFeatures.cpp
Log Message:
-----------
[MC][NFC] Make FeatureKV/SubtargetKV pointers private (#206178)
This is preliminary work for changing the representation of
FeatureKV/SubTypeKV to need less relocations. As a first step, avoid all
direct references to these pointers.
Commit: e44103c5d9feaaf914fdf1a6859d0fe91269fe46
https://github.com/llvm/llvm-project/commit/e44103c5d9feaaf914fdf1a6859d0fe91269fe46
Author: Alexis Engelke <engelke at in.tum.de>
Date: 2026-06-27 (Sat, 27 Jun 2026)
Changed paths:
M clang/tools/driver/cc1_main.cpp
M llvm/include/llvm/MC/MCSubtargetInfo.h
M llvm/lib/MC/MCSubtargetInfo.cpp
M llvm/lib/Target/AMDGPU/AMDGPURemoveIncompatibleFunctions.cpp
M llvm/lib/Target/RISCV/AsmParser/RISCVAsmParser.cpp
M llvm/lib/Target/RISCV/MCTargetDesc/RISCVBaseInfo.cpp
M llvm/lib/Target/RISCV/RISCVAsmPrinter.cpp
M llvm/lib/Target/WebAssembly/WebAssemblyAsmPrinter.cpp
M llvm/lib/Target/WebAssembly/WebAssemblyTargetMachine.cpp
M mlir/lib/Target/LLVMIR/Transforms/TargetToTargetFeatures.cpp
Log Message:
-----------
Revert "[MC][NFC] Make FeatureKV/SubtargetKV pointers private" (#206234)
Build failures in C++20 mode due to deleted constructor preventing brace
initialization.
Reverts llvm/llvm-project#206178
Commit: 55ddad13a6009ec61b91ae40df1dc78be9fb1c64
https://github.com/llvm/llvm-project/commit/55ddad13a6009ec61b91ae40df1dc78be9fb1c64
Author: Longsheng Mou <longshengmou at gmail.com>
Date: 2026-06-27 (Sat, 27 Jun 2026)
Changed paths:
M mlir/lib/Dialect/MemRef/Transforms/RuntimeOpVerification.cpp
M mlir/test/Dialect/MemRef/runtime-verification.mlir
A mlir/test/Integration/Dialect/MemRef/expand-shape-runtime-verification.mlir
Log Message:
-----------
[mlir][memref] Fix runtime verification of expand_shape (#206125)
The original runtime verification only multiplied static output
dimensions per reassociation group and checked `srcDim % staticProduct`
== 0, which failed to catch invalid dynamic dimension values.
The new verification uses getMixedOutputShape() to get all output
dimensions (static and dynamic), computes their product, and asserts
`product == srcDim`. Fixes #205981.
Assisted-by: MiMo-V2.5-Pro
Commit: 87166bfb4768036d4ba247e167cb649211908449
https://github.com/llvm/llvm-project/commit/87166bfb4768036d4ba247e167cb649211908449
Author: Andreas Jonson <andjo403 at hotmail.com>
Date: 2026-06-27 (Sat, 27 Jun 2026)
Changed paths:
M llvm/lib/Transforms/InstCombine/InstCombineSelect.cpp
M llvm/test/Transforms/InstCombine/fold-select-trunc.ll
Log Message:
-----------
[InstCombine] Handle logical and/or (trunc x), y -> and/or x, y IIF y in range [0,2) (#205579)
proof: https://alive2.llvm.org/ce/z/UURtdB
Commit: e7cd51b6587918c336e008289494cf0d3d3ba654
https://github.com/llvm/llvm-project/commit/e7cd51b6587918c336e008289494cf0d3d3ba654
Author: Alexis Engelke <engelke at in.tum.de>
Date: 2026-06-27 (Sat, 27 Jun 2026)
Changed paths:
M clang/tools/driver/cc1_main.cpp
M llvm/include/llvm/MC/MCSubtargetInfo.h
M llvm/lib/MC/MCSubtargetInfo.cpp
M llvm/lib/Target/AMDGPU/AMDGPURemoveIncompatibleFunctions.cpp
M llvm/lib/Target/RISCV/AsmParser/RISCVAsmParser.cpp
M llvm/lib/Target/RISCV/MCTargetDesc/RISCVBaseInfo.cpp
M llvm/lib/Target/RISCV/RISCVAsmPrinter.cpp
M llvm/lib/Target/WebAssembly/WebAssemblyAsmPrinter.cpp
M llvm/lib/Target/WebAssembly/WebAssemblyTargetMachine.cpp
M mlir/lib/Target/LLVMIR/Transforms/TargetToTargetFeatures.cpp
Log Message:
-----------
Reapply "[MC][NFC] Make FeatureKV/SubtargetKV pointers private" (#206234) (#206237)
Fix C++20 build by adding an explicit constructor. This also permits
making the fields private.
This reapplies #206178.
This reverts commit e44103c5d9feaaf914fdf1a6859d0fe91269fe46.
Commit: 05f69942c5025295a4ddcab2b06d50774ac8f625
https://github.com/llvm/llvm-project/commit/05f69942c5025295a4ddcab2b06d50774ac8f625
Author: Sean Clarke <sclarke at tenstorrent.com>
Date: 2026-06-27 (Sat, 27 Jun 2026)
Changed paths:
M llvm/include/llvm/IR/Constant.h
M llvm/include/llvm/IR/PatternMatch.h
M llvm/lib/Analysis/VectorUtils.cpp
M llvm/lib/IR/Constants.cpp
M llvm/lib/Transforms/InstCombine/InstCombineMulDivRem.cpp
M llvm/lib/Transforms/InstCombine/InstructionCombining.cpp
Log Message:
-----------
[IR][NFC] Introduce Constant::containsMatchingVectorElement and corresponding matcher (#200502)
A common pattern when dealing with vectors is to iterate over each
element and check whether any element satisfies a condition. Introduce
`Constant::containsMatchingVectorElement` to generalize this behavior
along with a corresponding matcher `m_ContainsMatchingVectorElement`
which checks whether any elements match the given subpattern.
Remove function `llvm::maskContainsAllOneOrUndef` in favor of using this
generalization instead.
Co-authored-by: Ramkumar Ramachandra <r at artagnon.com>
Commit: 7916ddc0da2d0f84f0a628321e04dcfa0d4cdfb3
https://github.com/llvm/llvm-project/commit/7916ddc0da2d0f84f0a628321e04dcfa0d4cdfb3
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2026-06-27 (Sat, 27 Jun 2026)
Changed paths:
R llvm/test/CodeGen/X86/horizontal-reduce-add.ll
R llvm/test/CodeGen/X86/horizontal-reduce-fadd.ll
Log Message:
-----------
[X86] Remove old horizontal-reduce-add/fadd tests (#206238)
These patterns are now handled in middle-end and tested for in
PhaseOrdering/X86
The vector.reduce.add/fadd patterns are tested in CodeGen/X86 in
vector-reduce-add.ll, vector-reduce-fadd.ll and
vector-reduce-fadd-fast.ll
Commit: a01500b62da4deaefcb8f6cbcdd1a4b3b69758b7
https://github.com/llvm/llvm-project/commit/a01500b62da4deaefcb8f6cbcdd1a4b3b69758b7
Author: Krishna Pandey <kpandey81930 at gmail.com>
Date: 2026-06-27 (Sat, 27 Jun 2026)
Changed paths:
M libc/config/baremetal/aarch64/entrypoints.txt
M libc/config/baremetal/arm/entrypoints.txt
M libc/config/baremetal/riscv/entrypoints.txt
M libc/config/darwin/aarch64/entrypoints.txt
M libc/config/darwin/x86_64/entrypoints.txt
M libc/config/freebsd/x86_64/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/arm/entrypoints.txt
M libc/config/linux/riscv/entrypoints.txt
M libc/config/linux/x86_64/entrypoints.txt
M libc/config/windows/entrypoints.txt
M libc/docs/headers/math/index.rst
M libc/shared/math.h
A libc/shared/math/expbf16.h
M libc/src/__support/math/CMakeLists.txt
A libc/src/__support/math/expbf16.h
M libc/src/math/CMakeLists.txt
A libc/src/math/expbf16.h
M libc/src/math/generic/CMakeLists.txt
A libc/src/math/generic/expbf16.cpp
M libc/test/shared/CMakeLists.txt
M libc/test/shared/shared_math_test.cpp
M libc/test/src/math/CMakeLists.txt
A libc/test/src/math/expbf16_test.cpp
M libc/test/src/math/smoke/CMakeLists.txt
A libc/test/src/math/smoke/expbf16_test.cpp
M utils/bazel/llvm-project-overlay/libc/BUILD.bazel
M utils/bazel/llvm-project-overlay/libc/test/src/math/BUILD.bazel
M utils/bazel/llvm-project-overlay/libc/test/src/math/smoke/BUILD.bazel
Log Message:
-----------
[libc][math][c++23] Add expbf16 math function (#161919)
This PR adds expbf16 higher math function for BFloat16 type along with
the tests.
---------
Signed-off-by: Krishna Pandey <kpandey81930 at gmail.com>
Commit: d9cb3e59555e3ab8460a0d4b31600d7b481e43ba
https://github.com/llvm/llvm-project/commit/d9cb3e59555e3ab8460a0d4b31600d7b481e43ba
Author: Amr Hesham <amr96 at programmer.net>
Date: 2026-06-27 (Sat, 27 Jun 2026)
Changed paths:
M clang/lib/CIR/CodeGen/CIRGenExprComplex.cpp
M clang/test/CIR/CodeGen/cxx-rewritten-binary-operator.cpp
Log Message:
-----------
[CIR] Implement CXXRewrittenBinaryOperator for ComplexExpr (#204670)
Implement CXXRewrittenBinaryOperator support for ComplexExpr
Issue #192331
Commit: 5d68f75b53458604b11efb66192840f1cecd8ffa
https://github.com/llvm/llvm-project/commit/5d68f75b53458604b11efb66192840f1cecd8ffa
Author: Jan Schultke <me at eisenwave.net>
Date: 2026-06-27 (Sat, 27 Jun 2026)
Changed paths:
M llvm/include/llvm/Support/KnownBits.h
M llvm/lib/Support/KnownBits.cpp
Log Message:
-----------
[Analysis] Improve readability of `KnownBits::pext` and `KnownBits::pdep` (#205176)
- Change the parameter names to `Val` and `Mask` to emphasize their semantics.
- Use `clearBits` instead of bitwise AND for increased expressiveness.
- Rewrite explanatory comments.
Commit: 3c1311e8f0985b6a399c92b6e4a4ebe7f07c4d8b
https://github.com/llvm/llvm-project/commit/3c1311e8f0985b6a399c92b6e4a4ebe7f07c4d8b
Author: Kazu Hirata <kazu at google.com>
Date: 2026-06-27 (Sat, 27 Jun 2026)
Changed paths:
M llvm/include/llvm/ProfileData/SampleProfReader.h
M llvm/lib/ProfileData/SampleProfReader.cpp
M llvm/unittests/ProfileData/SampleProfTest.cpp
Log Message:
-----------
[ProfileData] Introduce SampleProfileFuncOffsetTable (NFC) (#205045)
This patch introduces SampleProfileFuncOffsetTable, a unified wrapper
representing the function offset table.
Currently, the offset table is always a DenseMap. To support the
upcoming on-disk hash table (v104) for faster sample profile loading,
this patch abstracts the offset table representation. The new class
can delegate lookups to either the in-memory DenseMap or the on-disk
OnDiskIterableChainedHashTable.
This patch updates the reader to use the new wrapper's lookup and
insert interfaces. Since the on-disk path is not yet active, this
change is a non-functional change (NFC).
RFC:
https://discourse.llvm.org/t/rfc-faster-sample-profile-loading/90957/4
Commit: ffc6877d0294184fc6ccc44f698638a6d3636052
https://github.com/llvm/llvm-project/commit/ffc6877d0294184fc6ccc44f698638a6d3636052
Author: Amr Hesham <amr96 at programmer.net>
Date: 2026-06-27 (Sat, 27 Jun 2026)
Changed paths:
M clang/lib/CIR/CodeGen/CIRGenExprAggregate.cpp
M clang/test/CIR/CodeGen/cxx-rewritten-binary-operator.cpp
Log Message:
-----------
[CIR] Implement CXXRewrittenBinaryOperator for AggregateExpr (#204667)
Implement CXXRewrittenBinaryOperator support for AggregateExpr
Commit: 5e47ef456a7860e1fa12428f96ff072ff6c4f905
https://github.com/llvm/llvm-project/commit/5e47ef456a7860e1fa12428f96ff072ff6c4f905
Author: Utkarsh Saxena <usx at google.com>
Date: 2026-06-27 (Sat, 27 Jun 2026)
Changed paths:
M clang/include/clang/Analysis/Analyses/LifetimeSafety/Facts.h
M clang/include/clang/Analysis/Analyses/LifetimeSafety/FactsGenerator.h
M clang/lib/Analysis/LifetimeSafety/FactsGenerator.cpp
M clang/lib/Analysis/LifetimeSafety/LiveOrigins.cpp
M clang/test/Sema/LifetimeSafety/invalidations.cpp
M clang/test/Sema/LifetimeSafety/safety.cpp
Log Message:
-----------
[LifetimeSafety] Reapply liveness propagation and fix loop liveness leakage
(#205740)
Reapplies the liveness propagation fix (originally #205323, reverted in
#205687) and fixes a false positive involving conditional operators in
loops.
### Key Changes
* **Reapply**: Corrects liveness propagation through origin flows and
adds support for GNU statement expressions (`({ ... })`).
* **Loop Liveness Fix**: Resolves a false positive where temporary
origins leaked liveness across loop backedges via the conditional
operator's merge block. We now path-isolate these flows by generating
the `OriginFlowFact`s in their respective predecessor blocks (branches)
instead of the merge block.
Details about the old liveness leak. Consider this example
```cpp
for (int i = 0; i < 2; i++) {
int x, y;
consume(cond ? &x : &y); // no-warning
}
```
CFG:
```
[Loop Header / Cond]
/ \
[True Branch] [False Branch] <-- Arms of the ? :
(yields &x) (yields &y)
\ /
[Merge Block] <-- consume(CO) called here
|
[Loop Backedge / End] <-- x and y destroyed here
```
The thing that goes wrong is that origin of `&x` and `&y` ends up being
alive throughout the loop.
In the **old implementation**, the flow facts (`CO <- &x` and `CO <-
&y`) were generated in the **Merge Block** (where `consume(CO)` is
called). Because these flows occurred in the same block, they had to be
applied sequentially: one with `Kill=true` and the subsequent one with
`Merge=true` (no kill).
Going backward (as liveness analysis runs):
1. The use of `CO` in `consume(CO)` makes `CO` **live**.
2. This makes `&x` and `&y` alive at the beginning of "Merge Block".
3. This makes `&x` and `&y` alive in "True branch". In "True branch",
`&x` gets in a flow from `x` and is therefore killed. But that does not
happen to `&y`.
4. Same happens in "False branch", `&x` stays alive and only `&y` is
only killed.
5. This makes both `&x` and `&y` live at the "[Loop Header / Cond]" and
that spreads throughout the loop body.
6. This makes `&x` live at the end of loop body.
Pushing the flow back into the individual branches stops `&y` from being
live in "True branch" and vice versa.
AI usage: Antigravity for all parts of the PR
Commit: 7435ad31b5f4feba1a3d0f8928a5225e546f6ee2
https://github.com/llvm/llvm-project/commit/7435ad31b5f4feba1a3d0f8928a5225e546f6ee2
Author: Yingwei Zheng <dtcxzyw2333 at gmail.com>
Date: 2026-06-27 (Sat, 27 Jun 2026)
Changed paths:
M llvm/docs/LangRef.rst
Log Message:
-----------
[LangRef] Clarifying the copying behaviour of byval (#205576)
The hidden copy of a byval argument can only be treated as a continuous
memcpy with the allocation size. It is incorrect to interpret it as a
load-store forwarding in the specified type, since a padding between
struct fields may still be a part of an active member of a union type.
Commit: 50ba8b21ff6fd29888b2f1533ead082a93103ef2
https://github.com/llvm/llvm-project/commit/50ba8b21ff6fd29888b2f1533ead082a93103ef2
Author: Alexis Engelke <engelke at in.tum.de>
Date: 2026-06-27 (Sat, 27 Jun 2026)
Changed paths:
M llvm/lib/Target/RISCV/AsmParser/RISCVAsmParser.cpp
M llvm/lib/Target/RISCV/MCTargetDesc/RISCVBaseInfo.cpp
M llvm/lib/Target/RISCV/MCTargetDesc/RISCVBaseInfo.h
M llvm/lib/Target/RISCV/MCTargetDesc/RISCVELFStreamer.cpp
M llvm/lib/Target/RISCV/MCTargetDesc/RISCVTargetStreamer.cpp
M llvm/lib/Target/RISCV/RISCVAsmPrinter.cpp
M llvm/lib/Target/RISCV/RISCVSubtarget.cpp
Log Message:
-----------
[RISCV][NFC] Remove direct access to FeatureKV (#206233)
This is preparatory work for changing the representation of
FeatureKV/SubTypeKV, in which they will no longer be that easily
accessible as global variables. Therefore, get them from the subtarget
instead.
Commit: b23ba298af84d56be149350bf617dc869c1fb42c
https://github.com/llvm/llvm-project/commit/b23ba298af84d56be149350bf617dc869c1fb42c
Author: SUBASH BOOPATHI <98462377+SubashBoopathi1605 at users.noreply.github.com>
Date: 2026-06-27 (Sat, 27 Jun 2026)
Changed paths:
M llvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp
M llvm/test/Transforms/InstCombine/and-fcmp.ll
M llvm/test/Transforms/InstCombine/or-fcmp.ll
Log Message:
-----------
[InstCombine] Optimize fcmp ord/uno logical select operations using freeze (#205076)
This pull request optimizes logical select sequences checking ordered or
unordered floating point operations.
Currently, InstCombine canonicalizes:
fcmp ord x, 0.0 AND fcmp ord y, 0.0 to fcmp ord x, y
fcmp uno x, 0.0 OR fcmp uno y, 0.0 to fcmp uno x, y
However, this canonicalization is blocked for logical selects because it
is not poison safe if the second operand evaluates to poison when the
first evaluates to NaN.
This patch enables the transformation for logical selects by inserting a
freeze on the second evaluated operand to guarantee poison safety.
Fixes #49175
Commit: 44de29c6b94391626674b8b272f30a71575c28f4
https://github.com/llvm/llvm-project/commit/44de29c6b94391626674b8b272f30a71575c28f4
Author: Vitaly Buka <vitalybuka at google.com>
Date: 2026-06-27 (Sat, 27 Jun 2026)
Changed paths:
M llvm/include/llvm/Support/GlobPattern.h
M llvm/lib/Support/GlobPattern.cpp
M llvm/unittests/Support/GlobPatternTest.cpp
Log Message:
-----------
Reland: [NFC][Support] Implement slash-agnostic path matching in GlobPattern (#206251)
Add a SlashAgnostic option to GlobPattern to allow matching path
separators
(both forward slashes and backslashes) agnostically.
When enabled:
- We conservatively reduce the plain prefix and suffix by treating path
separators as metacharacters. This ensures that path separators are
matched via the slash-agnostic state machine rather than plain string
comparison.
- Brackets containing slashes are adjusted to match both separators.
- Character comparisons in the state machine (matchChar) treat '/' and
'\' as equivalent.
For #149886.
Reland of #202854 incorrectly reverted in #205409.
https://github.com/llvm/llvm-project/pull/202854#issuecomment-4813462549
Co-authored-by: Devon Loehr <DKLoehr at users.noreply.github.com>
Assisted-by: Gemini
Commit: 27c7a6bc15b3040fbb299aace2075251b157203d
https://github.com/llvm/llvm-project/commit/27c7a6bc15b3040fbb299aace2075251b157203d
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2026-06-27 (Sat, 27 Jun 2026)
Changed paths:
A llvm/test/CodeGen/X86/vector-reduce-add-subvector.ll
Log Message:
-----------
[X86] Add vector-reduce-add-subvector.ll - tests for partial reduction of single vector source (#206256)
Commit: ad35cfed2d2bd8a373ced8bd7d91e1505ba99d17
https://github.com/llvm/llvm-project/commit/ad35cfed2d2bd8a373ced8bd7d91e1505ba99d17
Author: Craig Topper <craig.topper at sifive.com>
Date: 2026-06-27 (Sat, 27 Jun 2026)
Changed paths:
M llvm/lib/Transforms/AggressiveInstCombine/AggressiveInstCombine.cpp
Log Message:
-----------
[AggressiveInstCombine] Factor out the beginning of foldSelectSplitCTTZ/CTLZ into common entry point. NFC (#206220)
Both start by matching a select and a eq/ne compare with 0.
Assisted-by: claude
Commit: 3992e3027a901fcbf75f466e2240df3335aa9831
https://github.com/llvm/llvm-project/commit/3992e3027a901fcbf75f466e2240df3335aa9831
Author: Nikolas Klauser <nikolasklauser at berlin.de>
Date: 2026-06-27 (Sat, 27 Jun 2026)
Changed paths:
M libcxx/include/__random/random_device.h
Log Message:
-----------
[libc++][NFC] Mark random_device::__padding_ as [[maybe_unused]] (#206248)
Instead of pushing and popping warnings we can just mark the offending
member as `[[maybe_unused]]`, improving compile times a bit and
simplifying the code.
Commit: d7b8c61aa065b8bd0902275b65acd7e0f4e99bae
https://github.com/llvm/llvm-project/commit/d7b8c61aa065b8bd0902275b65acd7e0f4e99bae
Author: Nico Weber <thakis at chromium.org>
Date: 2026-06-27 (Sat, 27 Jun 2026)
Changed paths:
M llvm/utils/gn/secondary/libcxx/include/BUILD.gn
Log Message:
-----------
[gn] use `sources` instead of `inputs` for libc++ header copy action (#206263)
`sources` and `inputs` have the same semantics for GN action targets,
but the sync script can only handle `sources`.
Follow-up to cd98648925531663.
Commit: f99a584a7c0f0475db7a9171f5acddf5dc6a2635
https://github.com/llvm/llvm-project/commit/f99a584a7c0f0475db7a9171f5acddf5dc6a2635
Author: aokblast <aokblast at FreeBSD.org>
Date: 2026-06-28 (Sun, 28 Jun 2026)
Changed paths:
M bolt/test/X86/infer_no_exits.test
Log Message:
-----------
[BOLT] Work around BSD sed's lack of in-place editing support (#206183)
BSD sed does not implement `-i` the same way as GNU sed. Use a
copy-and-replace approach instead of in-place editing to ensure
compatibility.
Commit: 3ad436e182e090d59eb7b22a8f760f3f847a62f2
https://github.com/llvm/llvm-project/commit/3ad436e182e090d59eb7b22a8f760f3f847a62f2
Author: Nico Weber <thakis at chromium.org>
Date: 2026-06-27 (Sat, 27 Jun 2026)
Changed paths:
M llvm/utils/gn/secondary/lldb/source/Host/BUILD.gn
Log Message:
-----------
[gn] port 049448403c7b (#206265)
Commit: e35ef5c53a4131ce028d87eaeb4ad2c973137833
https://github.com/llvm/llvm-project/commit/e35ef5c53a4131ce028d87eaeb4ad2c973137833
Author: Nico Weber <thakis at chromium.org>
Date: 2026-06-27 (Sat, 27 Jun 2026)
Changed paths:
M llvm/utils/gn/secondary/llvm/lib/Target/Hexagon/BUILD.gn
Log Message:
-----------
[gn build] Port 1485386b78dc (#206266)
Commit: cb962be242984d62d11d3e7aa02e452636160939
https://github.com/llvm/llvm-project/commit/cb962be242984d62d11d3e7aa02e452636160939
Author: Nico Weber <thakis at chromium.org>
Date: 2026-06-27 (Sat, 27 Jun 2026)
Changed paths:
M llvm/utils/gn/secondary/lldb/source/Core/BUILD.gn
M llvm/utils/gn/secondary/lldb/source/Utility/BUILD.gn
Log Message:
-----------
[gn build] Port 2ceab13545c2 (#206267)
Commit: d02dbaf508a86630dd438bf3b77b65316c2e7d31
https://github.com/llvm/llvm-project/commit/d02dbaf508a86630dd438bf3b77b65316c2e7d31
Author: Nico Weber <thakis at chromium.org>
Date: 2026-06-27 (Sat, 27 Jun 2026)
Changed paths:
M llvm/utils/gn/secondary/libcxx/include/BUILD.gn
Log Message:
-----------
[gn build] Port 78af5e2b68da (#206268)
Commit: c6b0a8d2f99aa81978ec12170e27ade8f138aebd
https://github.com/llvm/llvm-project/commit/c6b0a8d2f99aa81978ec12170e27ade8f138aebd
Author: aokblast <aokblast at FreeBSD.org>
Date: 2026-06-28 (Sun, 28 Jun 2026)
Changed paths:
M libcxx/test/std/localization/locale.categories/category.monetary/locale.money.get/locale.money.get.members/get_long_double_zh_CN.pass.cpp
M libcxx/test/std/localization/locale.categories/category.monetary/locale.money.put/locale.money.put.members/put_long_double_zh_CN.pass.cpp
M libcxx/test/std/localization/locale.categories/category.monetary/locale.moneypunct.byname/curr_symbol.pass.cpp
M libcxx/test/std/localization/locale.categories/category.monetary/locale.moneypunct.byname/neg_format.pass.cpp
M libcxx/test/std/localization/locale.categories/category.monetary/locale.moneypunct.byname/pos_format.pass.cpp
M libcxx/test/std/localization/locale.categories/category.time/locale.time.put.byname/put1.pass.cpp
M libcxx/test/std/localization/locale.categories/facet.numpunct/locale.numpunct.byname/grouping.pass.cpp
M libcxx/test/std/localization/locale.categories/facet.numpunct/locale.numpunct.byname/thousands_sep.pass.cpp
M libcxx/test/support/locale_helpers.h
Log Message:
-----------
[libc++][FreeBSD] Fix localization test on FreeBSD (#186066)
Some ifdefs are missing so that we try to add it back and allow test to
run.
Commit: fe1fc78c3e49eea31e4ba7647727680665923dd7
https://github.com/llvm/llvm-project/commit/fe1fc78c3e49eea31e4ba7647727680665923dd7
Author: Fangrui Song <i at maskray.me>
Date: 2026-06-27 (Sat, 27 Jun 2026)
Changed paths:
M llvm/include/llvm/ADT/SmallVector.h
Log Message:
-----------
[SmallVector] Out-of-line the trivially-copyable push_back grow path (#206213)
In the approximately trivially-copyable specialization, push_back's grow
path does not early return. Both Clang and GCC likely keep `this` and
`Elt` live across the out-of-line `grow_pod` call, saving and restoring
them in the prologue/epilogue. Shrink wrapping can't sink it (the saved
values are used in the store block the fast path also reaches).
Move the grow-and-store into a noinline `growAndPushBack` helper and
tail call it. The fast path needs no callee-saved registers.
`push_back(int)` drops from 14 to 7 instructions on x86-64.
```
// void vec_pb_int(llvm::SmallVectorImpl<int>&v, int x){ v.push_back(x); }
mov eax, dword ptr [rdi + 8]
cmp eax, dword ptr [rdi + 12]
jae _ZN4llvm23SmallVectorTemplateBaseIiLb1EE15growAndPushBackEi # TAILCALL
mov rcx, qword ptr [rdi]
mov dword ptr [rcx + 4*rax], esi
inc dword ptr [rdi + 8]
ret
```
`noinline` keeps the fast path frame-free and the cold grow path out of
every call site (with a single COMDAT copy). It is load-bearing, as GCC
and Clang otherwise inline it back for some code. However, the
out-of-line call makes the element's address escape, which defeats
construct-in-place for large element types.
`T Tmp = Elt` copy preserves the internal-reference-during-grow case and
is elided for by-value element types.
Commit: a02ef60ff46c1a9c99cce6ca159229dc2f6c5ff2
https://github.com/llvm/llvm-project/commit/a02ef60ff46c1a9c99cce6ca159229dc2f6c5ff2
Author: Yingwei Zheng <dtcxzyw2333 at gmail.com>
Date: 2026-06-28 (Sun, 28 Jun 2026)
Changed paths:
M llvm/include/llvm/Support/Allocator.h
A llvm/test/tools/llubi/undef.ll
R llvm/test/tools/llubi/unsupported_constant.ll
M llvm/tools/llubi/lib/Context.cpp
M llvm/tools/llubi/lib/Context.h
M llvm/tools/llubi/lib/Interpreter.cpp
Log Message:
-----------
[llubi] Add support for undef values (#205602)
Although we are planning to deprecate the undef value, it is still
widely used in the intermediate results of the pipeline, which blocks
the pass bisection. This patch uses `freeze poison` as a refinement of
undef.
Note that the undef value evaluates to different values each time the
user is executed. So it cannot be cached like other constants. A
temporary buffer is introduced to take ownership of these values and
avoid breaking the interface (although this is a bit ugly...). This will
also be used by a follow-up patch for ptrtoint/inttoptr.
>From my experience, it is enough for test case reduction of middle-end
miscompilation bugs (there are still counterexamples like
https://github.com/dtcxzyw/llvm-autoreduce/issues/61). However, when
processing backend miscompilation bugs, lli typically uses a garbage
value, so that llvm-reduce may produce an invalid result. I think we may
need to introduce two flags to migrate this issue: one for poisoning
uninitialized memory, and another for diagnosing immediately when
non-deterministic behaviour occurs. This would prevent llvm-reduce from
converting a deterministic repro into a non-deterministic one.
`llvm/test/tools/llubi/unsupported_constant.ll` is also dropped because
it is annoying to pick another unimplemented constant value...
Commit: b2fe1dab510c627163114d75bc368370da4effbd
https://github.com/llvm/llvm-project/commit/b2fe1dab510c627163114d75bc368370da4effbd
Author: Baranov Victor <bar.victor.2002 at gmail.com>
Date: 2026-06-27 (Sat, 27 Jun 2026)
Changed paths:
M clang/docs/LibASTMatchersReference.html
M clang/docs/tools/dump_ast_matchers.py
Log Message:
-----------
[ASTMatchers][Docs] make dump_ast_matchers.py read classes from sources (#203784)
With this change, `dump_ast_matchers.py` script no longer need to probe
network to search for classes.
This allows the script to run offline which is needed for
https://github.com/llvm/llvm-project/pull/165472.
The script now operates on assumption that all classes in AST/ will be
here: https://llvm.org/doxygen/ (which is true in general unless doxygen
page is down)
Commit: 5971a0de5f1ea0064c593a04d32fbfb000b7327e
https://github.com/llvm/llvm-project/commit/5971a0de5f1ea0064c593a04d32fbfb000b7327e
Author: Ilia Kuklin <ikuklin at accesssoftek.com>
Date: 2026-06-28 (Sun, 28 Jun 2026)
Changed paths:
A llvm/test/CodeGen/DirectX/strip-debug-info.ll
Log Message:
-----------
[DirectX] Test stripping debug info for DirectX (#206261)
Test that all debug info is stripped after changes in #201336.
Merging this PR to main instead of the stacked #204874.
Commit: 631cb35f6eefbea40b450ddeb480eb114dbc1b9e
https://github.com/llvm/llvm-project/commit/631cb35f6eefbea40b450ddeb480eb114dbc1b9e
Author: Tom Stellard <tstellar at redhat.com>
Date: 2026-06-27 (Sat, 27 Jun 2026)
Changed paths:
M .github/workflows/merged-prs.yml
Log Message:
-----------
workflows/merged-prs: Use github-automation container (#206151)
Commit: 7ee4111c94807b483a83e96b6cd24fddf31280ec
https://github.com/llvm/llvm-project/commit/7ee4111c94807b483a83e96b6cd24fddf31280ec
Author: Florian Hahn <flo at fhahn.com>
Date: 2026-06-27 (Sat, 27 Jun 2026)
Changed paths:
M llvm/test/Transforms/LoopVectorize/VPlan/X86/scalarize-wide-load-for-address-use.ll
Log Message:
-----------
[LV] Add test for over-eager load scalarization (NFC). (#206283)
Add test showing over-eager load scalarization after f2459f9e
(https://github.com/llvm/llvm-project/pull/196842), when a load is only
used as mask of another load.
Commit: ecc85477eb14378e2ffe700843cf8ab0e2b02047
https://github.com/llvm/llvm-project/commit/ecc85477eb14378e2ffe700843cf8ab0e2b02047
Author: Florian Hahn <flo at fhahn.com>
Date: 2026-06-27 (Sat, 27 Jun 2026)
Changed paths:
M llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
Log Message:
-----------
[VPlan] Drop dead CostCtx/Range arg sfrom getScaledReductions (NFC) (#206285)
Neither parameter is referenced; the cost-checking they described moved
to createPartialReductions. Also remove the stale comment.
Commit: 6568c9588fbadd1bc399841628ba5052c320df71
https://github.com/llvm/llvm-project/commit/6568c9588fbadd1bc399841628ba5052c320df71
Author: Florian Hahn <flo at fhahn.com>
Date: 2026-06-27 (Sat, 27 Jun 2026)
Changed paths:
M llvm/lib/Transforms/Vectorize/VPlanUtils.cpp
M llvm/test/Transforms/LoopVectorize/VPlan/X86/scalarize-wide-load-for-address-use.ll
Log Message:
-----------
[VPlan] Skip VPInst where mask is only operand in chain in isUsed (NFC) (#206286)
Update isUsedByLoadStoreAddress o skip VPInstruction where the operand
in the use chain is only used as mask. Those do not contribute to the
load address, so should not force scalarization.
Fixes a regression with f2459f9e
(https://github.com/llvm/llvm-project/pull/196842).
Commit: 2a811de5024c54b599c0e468b4b2d8d40da99929
https://github.com/llvm/llvm-project/commit/2a811de5024c54b599c0e468b4b2d8d40da99929
Author: Ramkumar Ramachandra <artagnon at tenstorrent.com>
Date: 2026-06-27 (Sat, 27 Jun 2026)
Changed paths:
M llvm/include/llvm/Analysis/HashRecognize.h
M llvm/lib/Analysis/HashRecognize.cpp
M llvm/lib/Transforms/Scalar/LoopIdiomRecognize.cpp
Log Message:
-----------
[HashRecognize] Rename ByteOrderSwapped to IsBigEndian (NFC) (#206243)
In order to avoid talking about bit-endianness versus byte-endianness,
rename ByteOrderSwapped to IsBigEndian, which is algorithm-agnostic. In
fact, CRC is a bitwise-algorithm, and hence the bit order is reversed.
Commit: 91cfa5786716e4908af9a36104ac425728d5aa83
https://github.com/llvm/llvm-project/commit/91cfa5786716e4908af9a36104ac425728d5aa83
Author: Vitaly Buka <vitalybuka at google.com>
Date: 2026-06-27 (Sat, 27 Jun 2026)
Changed paths:
M clang/docs/ReleaseNotes.rst
M clang/docs/SanitizerSpecialCaseList.rst
M clang/unittests/Basic/DiagnosticTest.cpp
M llvm/lib/Support/SpecialCaseList.cpp
M llvm/unittests/Support/SpecialCaseListTest.cpp
Log Message:
-----------
Reland "Make sanitizer special case list slash-agnostic" (#206250)
This changes the glob matcher for the sanitizer special case format so
that it treats `/` as matching both forward and back slashes.
When dealing with cross-compiles or build systems that don't normalize
slashes, it's possible to run into file paths with inconsistent
slashiness, e.g. `../..\v8/include\v8-internal.h` when [building
chromium](https://g-issues.chromium.org/issues/425364464).
We can match this using the current syntax using this ugly kludge:
`src:*{/,\\}v8{/,\\}*`. However, since the format is explicitly for
listing file paths, it makes sense to treat `/` as denoting a path
separator rather than a literal forward slash. This allows us to write
the much more natural form `src:*/v8/*` and have it work on any
platform.
This is technically a behavior change, but it seems very unlikely to
come up in practice. It will only make a difference if a user has a
system where they want to catch `a/b` but not `a\b`. Even in the worst
case, they can still regain the previous behavior by escaping the slash
character in their pattern: `src:a\/b`.
Note: this is not default behavior yet. To activate use
`#!special-case-list-v4` in the first line of the special case list
file.
Reverts llvm/llvm-project#205399
Relands https://github.com/llvm/llvm-project/pull/149886
Reason for the revert was incorrect
https://github.com/llvm/llvm-project/pull/202854#issuecomment-4813462549
Authored-by: Devon Loehr <DKLoehr at users.noreply.github.com>
Co-authored-by: Vitaly Buka <vitalybuka at google.com>
Commit: deb78093799999bee43408c26994eadfccac966a
https://github.com/llvm/llvm-project/commit/deb78093799999bee43408c26994eadfccac966a
Author: Vladislav Dzhidzhoev <vdzhidzhoev at accesssoftek.com>
Date: 2026-06-27 (Sat, 27 Jun 2026)
Changed paths:
M llvm/test/tools/obj2yaml/DXContainer/PRIVPart.yaml
Log Message:
-----------
[DirectX][ObjectYAML] Attempt to fix flaky PRIVPart.yaml (#206278)
This test was meant to round-trip YAML twice, to ensure correct
processing of non-4-byte-padded PRIV section.
However, second invocation of yaml2obj had wrong arguments (it was
reading from test file instead of stdin). Fix that.
Also, round-trips were split into several RUN lines, to make it clear on
which line an error occurs if the test is still flaky.
Commit: 115eae28058f0d322f1d7d3eab0ab8c13e95e463
https://github.com/llvm/llvm-project/commit/115eae28058f0d322f1d7d3eab0ab8c13e95e463
Author: Joel E. Denny <jdenny.ornl at gmail.com>
Date: 2026-06-27 (Sat, 27 Jun 2026)
Changed paths:
M llvm/include/llvm/Support/WithColor.h
M llvm/include/llvm/Support/raw_ostream.h
A llvm/test/FileCheck/dump-input/color.txt
M llvm/test/FileCheck/opt-color.txt
M llvm/test/lit.cfg.py
M llvm/utils/FileCheck/FileCheck.cpp
Log Message:
-----------
[FileCheck] Improve colors in input dumps (#204936)
This patch makes two improvements to colors used in FileCheck input
dumps:
1. Without this patch, input line numbers and ellipses have a foreground
color of black, which is hard to see in a terminal with a dark color
theme. This patch changes that to bright black (a grayish color), which
looks good to me for all terminal themes I have tried while remaining
distinct from the input text.
2. Without this patch, the input text is accidentally set to bold when
neither `-v` or `-vv` is specified. Perhaps I never noticed because I
tend to always use `-vv`. This patch changes that to use the terminal's
default color.
Case 2 exposes a problem with LLVM's color implementation. Without this
patch, the call to `WithColor`'s constructor actually specifies bold as
`false`, but `WithColor` ignores that when the color is `SAVEDCOLOR`.
While it seems like that should be fixed, I am concerned about the
impact of such a fix on other tools that might have come to
inadvertently depend on the old behavior. For now, this patch adds fixme
comments to the color APIs.
To facilitate testing, this patch adds a lit substitution with a sed
script that translates ANSI escape sequences into plain text format with
symbolic names. It also updates an existing FileCheck test to use it.
Commit: 9889e626983fe38aca09283e9092fd8cebdae8fa
https://github.com/llvm/llvm-project/commit/9889e626983fe38aca09283e9092fd8cebdae8fa
Author: Maksim Levental <maksim.levental at gmail.com>
Date: 2026-06-27 (Sat, 27 Jun 2026)
Changed paths:
M mlir/include/mlir-c/IR.h
M mlir/include/mlir-c/Rewrite.h
A mlir/include/mlir/CAPI/IRMapping.h
M mlir/lib/CAPI/IR/IR.cpp
M mlir/lib/CAPI/Transforms/Rewrite.cpp
M mlir/test/CAPI/ir.c
M mlir/test/CAPI/rewrite.c
Log Message:
-----------
[mlir-c] Add IRMapping C API bindings (#206146)
Expose IRMapping through the MLIR C API with full create/destroy/map, lookup, contains/erase, and clone-with-mapping functionality.
Assisted by: Claude
Commit: 10e7761cac92ee695d2a74a813ad3ebba4e649c0
https://github.com/llvm/llvm-project/commit/10e7761cac92ee695d2a74a813ad3ebba4e649c0
Author: hulxv <hulxxv at gmail.com>
Date: 2026-06-28 (Sun, 28 Jun 2026)
Changed paths:
M libc/shared/builtins.h
A libc/shared/builtins/subdf3.h
M libc/src/__support/builtins/CMakeLists.txt
A libc/src/__support/builtins/subdf3.h
M libc/test/shared/CMakeLists.txt
M libc/test/shared/shared_builtins_test.cpp
Log Message:
-----------
[libc] add shared subdf3 builtin (#205673)
Re-exposes LLVM-libc's `__subdf3` as `shared::subdf3` for reuse by
compiler-rt's builtins.
Stacked change - merge these first:
- #200094
- #205669
- #205670
- #205671
- #205672
Part of #197824
Commit: fc43f7d5d120c5eb5dda4baef42db41491f178dd
https://github.com/llvm/llvm-project/commit/fc43f7d5d120c5eb5dda4baef42db41491f178dd
Author: forking-google-bazel-bot[bot] <265904573+forking-google-bazel-bot[bot]@users.noreply.github.com>
Date: 2026-06-27 (Sat, 27 Jun 2026)
Changed paths:
M utils/bazel/llvm-project-overlay/mlir/BUILD.bazel
Log Message:
-----------
[Bazel] Fixes 9889e62 (#206294)
This fixes 9889e626983fe38aca09283e9092fd8cebdae8fa.
Co-authored-by: Google Bazel Bot <google-bazel-bot at google.com>
Commit: ca59c69132eef55cc42bf8854706590dfddf5584
https://github.com/llvm/llvm-project/commit/ca59c69132eef55cc42bf8854706590dfddf5584
Author: Fangrui Song <i at maskray.me>
Date: 2026-06-28 (Sun, 28 Jun 2026)
Changed paths:
M clang-tools-extra/clangd/CompileCommands.cpp
M clang/unittests/Lex/PPMemoryAllocationsTest.cpp
M lldb/include/lldb/Utility/ConstString.h
M lldb/source/Target/Statistics.cpp
M lldb/source/Utility/ConstString.cpp
M lldb/test/API/commands/statistics/basic/TestStats.py
M llvm/include/llvm/Support/Allocator.h
M llvm/include/llvm/Support/PerThreadBumpPtrAllocator.h
M llvm/lib/Support/Allocator.cpp
M llvm/lib/TableGen/Record.cpp
M llvm/tools/llubi/lib/Context.cpp
M llvm/tools/llubi/lib/Context.h
M llvm/unittests/ADT/ConcurrentHashtableTest.cpp
M llvm/unittests/DebugInfo/MSF/MappedBlockStreamTest.cpp
M llvm/unittests/Support/AllocatorTest.cpp
M llvm/unittests/Support/PerThreadBumpPtrAllocatorTest.cpp
M llvm/unittests/Support/ThreadSafeAllocatorTest.cpp
Log Message:
-----------
[Allocator] Drop RedZoneSize (non-sanitizer) and BytesAllocated members (#205711)
`RedZoneSize` is only read inside `#if LLVM_ADDRESS_SANITIZER_BUILD`.
Additionally gate it under `LLVM_ENABLE_ABI_BREAKING_CHECKS` so that
release-non-assertions builds don't incur the overhead. To support
non-asan build with asan library users, the variable is only omitted in
`!LLVM_ENABLE_ABI_BREAKING_CHECKS` builds.
`BytesAllocated` is incremented on every Allocate (a hot-path memory
read-modify-write) only to back `getBytesAllocated()`. Drop the member.
There is a measurable stage2 instruction-count reduction.
https://llvm-compile-time-tracker.com/compare.php?from=25a6b5be6853b2c493ef392d41e43dd35ad4839a&to=8ebc975635ad717deb392d20b50f1a1f6bb16054&stat=instructions:u
Migrate the in-tree consumers:
- TableGen dumpAllocationStats drops the line; the clangd debug log
reports
getTotalMemory().
- clang's PPMemoryAllocationsTest measures getTotalMemory()/#define;
over 1M
defines this is 120.06 B/define, matching the prior ~120 B, so the
existing
bound holds.
- lldb's ConstString MemoryStats (https://reviews.llvm.org/D117914)
drops bytes_used/bytes_unused
Aided by Claude Opus 4.8
Commit: 3717264cc34242cc9734d94ecd131f8af02c12a8
https://github.com/llvm/llvm-project/commit/3717264cc34242cc9734d94ecd131f8af02c12a8
Author: Zeyi Xu <mitchell.xu2 at gmail.com>
Date: 2026-06-28 (Sun, 28 Jun 2026)
Changed paths:
M clang-tools-extra/clang-tidy/modernize/AvoidCStyleCastCheck.cpp
M clang-tools-extra/docs/ReleaseNotes.rst
M clang-tools-extra/test/clang-tidy/checkers/modernize/avoid-c-style-cast.cpp
Log Message:
-----------
[clang-tidy] Fix invalid avoid-c-style-cast fix-it after keywords (#206239)
When a C-style cast immediately follows an identifier-like token, the
replacement could merge with the previous token, e.g. turning
`return(int)d` into `returnstatic_cast<int>(d)`. This patch fixes the
problem by adding a leading space to the replacement when needed.
Closes https://github.com/llvm/llvm-project/issues/97012
Commit: da4d6ca094763e1eacb3d9b1f0e108c8edcaf029
https://github.com/llvm/llvm-project/commit/da4d6ca094763e1eacb3d9b1f0e108c8edcaf029
Author: Alexis Engelke <engelke at in.tum.de>
Date: 2026-06-28 (Sun, 28 Jun 2026)
Changed paths:
M llvm/lib/Target/X86/MCTargetDesc/X86InstComments.cpp
Log Message:
-----------
[X86][NFC] Use compact enum to store ternlog comments (#206089)
Instead of storing a StringRef (StringLiteral is essentially a
StringRef) with 16 bytes and one dynamic relocation for each of the 256
entries (4kiB total) and, use the new compact enum tables to store each
entry with 4 bytes and without relocations.
Commit: 3655c98da1bbb15d5792a157f8137eab315eacc6
https://github.com/llvm/llvm-project/commit/3655c98da1bbb15d5792a157f8137eab315eacc6
Author: Alexis Engelke <engelke at in.tum.de>
Date: 2026-06-28 (Sun, 28 Jun 2026)
Changed paths:
M bolt/lib/Core/BinaryContext.cpp
M bolt/lib/Passes/BinaryPasses.cpp
M bolt/lib/Passes/CacheMetrics.cpp
M bolt/lib/Passes/ProfileQualityStats.cpp
M bolt/lib/Passes/RetpolineInsertion.cpp
M llvm/include/llvm/Object/ELFObjectFile.h
M llvm/lib/Object/ELFObjectFile.cpp
M llvm/lib/Support/ELFAttrParserCompact.cpp
M llvm/tools/llvm-dwarfutil/DebugInfoLinker.cpp
M llvm/tools/llvm-dwarfutil/llvm-dwarfutil.cpp
M llvm/tools/llvm-readobj/ELFDumper.cpp
Log Message:
-----------
[Support][Object/ELF][NFC] Use new enum table (#206068)
Straight forward replacement.
Commit: 1da59d8713add10b00f5c2c4c8bc2f2149c10c0d
https://github.com/llvm/llvm-project/commit/1da59d8713add10b00f5c2c4c8bc2f2149c10c0d
Author: Alexis Engelke <engelke at in.tum.de>
Date: 2026-06-28 (Sun, 28 Jun 2026)
Changed paths:
M llvm/include/llvm/BinaryFormat/DXContainer.h
M llvm/include/llvm/BinaryFormat/SFrame.h
M llvm/lib/BinaryFormat/DXContainer.cpp
M llvm/lib/BinaryFormat/SFrame.cpp
M llvm/lib/Frontend/HLSL/HLSLRootSignature.cpp
M llvm/lib/ObjectYAML/DXContainerYAML.cpp
M llvm/tools/llvm-objdump/DXContainerDump.cpp
Log Message:
-----------
[BinaryFormat][NFC] Use compact enums (#206074)
Straight-forward replacement.
Commit: 2567d2518dd2c55fd27b1618c65875e530842486
https://github.com/llvm/llvm-project/commit/2567d2518dd2c55fd27b1618c65875e530842486
Author: Alexis Engelke <engelke at in.tum.de>
Date: 2026-06-28 (Sun, 28 Jun 2026)
Changed paths:
M llvm/tools/llvm-objdump/COFFDump.cpp
M llvm/tools/llvm-readobj/COFFDumper.cpp
M llvm/tools/llvm-readobj/MachODumper.cpp
M llvm/tools/llvm-readobj/WasmDumper.cpp
M llvm/tools/llvm-readobj/Win64EHDumper.cpp
M llvm/tools/llvm-readobj/XCOFFDumper.cpp
M llvm/tools/llvm-readobj/llvm-readobj.h
Log Message:
-----------
[llvm-readobj][NFC] Use compact enums (except for ELF) (#206075)
In principle straight-forward replacement, but clang-format is
deliberately non-helpful here..
ELFDumper is a separate patch due to the size of the changes.
Commit: 3288c8f43dad7915cb5cb2e4dbf4c9ad7164b378
https://github.com/llvm/llvm-project/commit/3288c8f43dad7915cb5cb2e4dbf4c9ad7164b378
Author: Alexis Engelke <engelke at in.tum.de>
Date: 2026-06-28 (Sun, 28 Jun 2026)
Changed paths:
M lldb/source/Plugins/SymbolFile/NativePDB/PdbFPOProgramToDWARFExpression.cpp
M llvm/include/llvm/DebugInfo/CodeView/EnumTables.h
M llvm/include/llvm/DebugInfo/PDB/Native/EnumTables.h
M llvm/lib/CodeGen/AsmPrinter/CodeViewDebug.cpp
M llvm/lib/DebugInfo/CodeView/EnumTables.cpp
M llvm/lib/DebugInfo/CodeView/TypeRecordMapping.cpp
M llvm/lib/DebugInfo/LogicalView/Core/LVSourceLanguage.cpp
M llvm/lib/DebugInfo/LogicalView/Readers/LVCodeViewVisitor.cpp
M llvm/lib/DebugInfo/PDB/Native/EnumTables.cpp
M llvm/lib/Frontend/HLSL/HLSLRootSignature.cpp
M llvm/lib/ObjectYAML/CodeViewYAMLSymbols.cpp
Log Message:
-----------
[CodeView][NFC] Use compact enum tables. (#206071)
Largely a straight-forward replacement.
Commit: 374871dc5bf1d948f8e25eb96ddd12b8291e8885
https://github.com/llvm/llvm-project/commit/374871dc5bf1d948f8e25eb96ddd12b8291e8885
Author: Alexis Engelke <engelke at in.tum.de>
Date: 2026-06-28 (Sun, 28 Jun 2026)
Changed paths:
M llvm/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp
Log Message:
-----------
[AArch64][NFC] Use compact enum table for feature strings (#206084)
Although this is not exactly an enum, the same data structure can be
used to compactly store the feature strings without dynamic relactions.
As a side effect, this also slightly reduces the size of the table.
Commit: 92f01b267efe262a096baa433665c169cd53ff2c
https://github.com/llvm/llvm-project/commit/92f01b267efe262a096baa433665c169cd53ff2c
Author: Alexis Engelke <engelke at in.tum.de>
Date: 2026-06-28 (Sun, 28 Jun 2026)
Changed paths:
M llvm/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp
M llvm/lib/Target/AArch64/MCTargetDesc/AArch64InstPrinter.cpp
M llvm/lib/Target/AArch64/Utils/AArch64BaseInfo.h
M llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUInstPrinter.cpp
M llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.h
M llvm/lib/Target/ARM/MCTargetDesc/ARMInstPrinter.cpp
M llvm/lib/Target/ARM/Utils/ARMBaseInfo.h
M llvm/lib/Target/RISCV/AsmParser/RISCVAsmParser.cpp
M llvm/lib/Target/RISCV/MCTargetDesc/RISCVBaseInfo.h
M llvm/lib/Target/RISCV/MCTargetDesc/RISCVInstPrinter.cpp
M llvm/lib/Target/RISCV/RISCVSubtarget.h
M llvm/lib/Target/SPIRV/MCTargetDesc/SPIRVBaseInfo.cpp
M llvm/lib/Target/SPIRV/MCTargetDesc/SPIRVBaseInfo.h
M llvm/lib/Target/SPIRV/SPIRVBuiltins.cpp
M llvm/lib/Target/Sparc/MCTargetDesc/SparcInstPrinter.cpp
M llvm/lib/Target/Sparc/MCTargetDesc/SparcMCTargetDesc.h
M llvm/test/TableGen/generic-tables-return-range.td
M llvm/test/TableGen/generic-tables.td
M llvm/utils/TableGen/SearchableTableEmitter.cpp
Log Message:
-----------
[TableGen] Use StringTable for searchable tables (#206252)
LLVM has some large searchable tables containing string pointers. This
patch changes two things:
- String references in searchable tables are now always StringTable
offsets; and all code referencing these is updated accordingly. This
often avoids relocations in the data structures, permitting their
placement in .rodata instead of .data.rel.ro and avoids dynamic
relocations.
- The lookup indicies now reference the same string table instead of
storing string pointers, permitting deduplication and also avoids
dynamic relocations.
In an all-target assert build, this changes section sizes as follows:
- .data.rel.ro: -311920
- .rodata: +227712
- .rela.dyn: -308520 (-12855 entries)
Note that due to 32-bit string offsets, most structures also got
smaller. There is room for further size reductions by using 8/16 bit
integers for string offsets where applicable and by permitting
lower-case search indices when most entries are lower-case (avoids
storing all strings twice) -- both can be done in later changes.
Commit: f4fd007ea4bc3e09fa99e8a05fbe362af60adf67
https://github.com/llvm/llvm-project/commit/f4fd007ea4bc3e09fa99e8a05fbe362af60adf67
Author: Alexis Engelke <engelke at in.tum.de>
Date: 2026-06-28 (Sun, 28 Jun 2026)
Changed paths:
M clang/tools/libclang/CIndex.cpp
M clang/tools/libclang/CLog.h
M llvm/include/llvm/Support/Format.h
M llvm/include/llvm/Support/raw_ostream.h
M llvm/lib/Support/raw_ostream.cpp
Log Message:
-----------
[Support] Make format_object non-virtual (#206319)
Currently, format_object creates a 32B vtable for every instantiation.
This is costs space and dynamic relocations. Make format_object
non-virtual and adapt the two printing users to use a function_ref
instead.
Commit: e32776a129f5602f96e6823eaa86de67bfd7d640
https://github.com/llvm/llvm-project/commit/e32776a129f5602f96e6823eaa86de67bfd7d640
Author: Alexis Engelke <engelke at in.tum.de>
Date: 2026-06-28 (Sun, 28 Jun 2026)
Changed paths:
M llvm/tools/llvm-readobj/ELFDumper.cpp
Log Message:
-----------
[llvm-readobj][NFC] Use compact enum for ELFDumper (#206306)
This is the last user of EnumEntry. Migrate to compact enums to avoid
relocations for faster startup and reduced binary size.
Commit: a9a58990edcb9db16420b9e35429b9049523b4d7
https://github.com/llvm/llvm-project/commit/a9a58990edcb9db16420b9e35429b9049523b4d7
Author: Amina Chabane <amina.chabane at arm.com>
Date: 2026-06-28 (Sun, 28 Jun 2026)
Changed paths:
M bolt/docs/BAT.md
M bolt/docs/BinaryAnalysis.md
A bolt/docs/GettingStarted.rst
M bolt/docs/OptimizingClang.md
M bolt/docs/PointerAuthDesign.md
M bolt/docs/conf.py
M bolt/docs/index.rst
Log Message:
-----------
[BOLT][Documentation] Prepare documentation for hosting (#201378)
This PR aims to organise BOLT's docs in preparation for hosting.
- Added a landing page into `index.rst`, much like
[clang.llvm.org](https://clang.llvm.org/docs/index.html).
- Moved Getting Started content from `index.rst` into its own
`GettingStarted.rst`.
- Enables Markdown content to be rendered. A current
[discussion](https://discourse.llvm.org/t/rfc-make-myst-markdown-the-llvm-docs-format-rip-rest/90840)
is being had about MD/RST on discourse, but for now I have decided to
support the mix of formats currently in BOLT.
- Included AArch64 optimization status page.
- Fixes some links/anchors.
**Landing Page**
<img width="531" height="311" alt="image"
src="https://github.com/user-attachments/assets/4fa376bf-cdf1-4ad1-8be5-1de57597ac10"
/>
**Build with Sphinx**
`sphinx-build -b html bolt/docs bolt-docs-html`
Requires Sphinx and myst_parser.
Commit: 9b8a0c3e4f098199d41e4c7c10ac665503fbeb33
https://github.com/llvm/llvm-project/commit/9b8a0c3e4f098199d41e4c7c10ac665503fbeb33
Author: benscharl <ben.scharlemann at gmail.com>
Date: 2026-06-28 (Sun, 28 Jun 2026)
Changed paths:
M llvm/lib/Analysis/InstructionSimplify.cpp
M llvm/test/Transforms/InstSimplify/vector-splice.ll
Log Message:
-----------
[InstSimplify] Fold splice.right(splice.left(poison, x, offset), poison, offset) -> x (#204256)
Fixes #203027
Adds an InstSimplify fold for
llvm.vector.splice.left/m.vector.splice.right roundtrip. The values in a
vector are first shifted to the right and then to the left, filling the
clipped off values with poison. In this scenario, the shift operations
get simplified to just x.
Commit: c878f0a27d0855c4615d5422189db81658b8d620
https://github.com/llvm/llvm-project/commit/c878f0a27d0855c4615d5422189db81658b8d620
Author: Jakob Linke <jakob at linke.cx>
Date: 2026-06-28 (Sun, 28 Jun 2026)
Changed paths:
M clang/include/clang/AST/Expr.h
M clang/include/clang/Sema/Designator.h
M clang/include/clang/Sema/Sema.h
M clang/lib/AST/Expr.cpp
M clang/lib/Parse/ParseExpr.cpp
M clang/lib/Sema/SemaExpr.cpp
M clang/lib/Sema/TreeTransform.h
Log Message:
-----------
[clang] Replace Sema::OffsetOfComponent with Designation (#199097)
The parser previously fed __builtin_offsetof through a small ad-hoc
struct (Sema::OffsetOfComponent) that mirrors the same path data already
modeled by Designation/Designator. With the recent code-completion work,
the parser was building both shapes side by side.
Drop OffsetOfComponent. ActOnBuiltinOffsetOf, BuildBuiltinOffsetOf, and
TreeTransform::RebuildOffsetOfExpr now take a const Designation &.
- Parser: stops maintaining the parallel Comps vector and feeds the
Designation it already collected for completion straight to Sema.
- BuildBuiltinOffsetOf: iterates over the Designation.
- TreeTransform: rebuilds a Designation from each OffsetOfNode. The AST
node already encodes "leading-dot collapsed to name location" via its
Range constructor, so we mirror that by passing an empty DotLoc whenever
the new Designation is still empty.
- OffsetOfNode: tighten the identifier constructor and getFieldName
accessor to const IdentifierInfo*, matching Designator's accessor and
letting BuildBuiltinOffsetOf drop the lingering const_cast.
No functional change intended; existing offsetof tests cover dependent
types, dependent bases, anonymous unions, indirect fields, base-class
indirections, and the non-POD diagnostic source range.
Context: https://github.com/llvm/llvm-project/pull/195126,
https://github.com/llvm/llvm-project/pull/194407
This work was AI assisted, human-reviewed.
Commit: 5e4ac011bdd7c7bc8010ea463157eda46bff8f74
https://github.com/llvm/llvm-project/commit/5e4ac011bdd7c7bc8010ea463157eda46bff8f74
Author: Yanzuo Liu <zwuis at outlook.com>
Date: 2026-06-28 (Sun, 28 Jun 2026)
Changed paths:
M clang-tools-extra/clang-tidy/bugprone/UnhandledCodePathsCheck.cpp
M clang-tools-extra/clang-tidy/bugprone/UnhandledCodePathsCheck.h
M clang-tools-extra/clang-tidy/readability/CMakeLists.txt
M clang-tools-extra/clang-tidy/readability/ReadabilityTidyModule.cpp
A clang-tools-extra/clang-tidy/readability/TrivialSwitchCheck.cpp
A clang-tools-extra/clang-tidy/readability/TrivialSwitchCheck.h
M clang-tools-extra/docs/ReleaseNotes.rst
M clang-tools-extra/docs/clang-tidy/checks/bugprone/unhandled-code-paths.rst
M clang-tools-extra/docs/clang-tidy/checks/list.rst
A clang-tools-extra/docs/clang-tidy/checks/readability/trivial-switch.rst
M clang-tools-extra/test/clang-tidy/checkers/bugprone/unhandled-code-paths.cpp
A clang-tools-extra/test/clang-tidy/checkers/readability/trivial-switch.cpp
Log Message:
-----------
[clang-tidy] Move part of bugprone-unhandled-code-paths to a new check readability-trivial-switch (#198237)
The moved part detects trivial `switch` statement which can be removed
or rewritted as `if` statement.
hicpp-multiway-paths-covered was removed without keeping its name as
alias, so we don't need to update infrastructore to support one-to-many
aliases.
Changes were generated by AI, and reviewed and modified by me
afterwards.
Assisted-by: GPT-5.5
Commit: 756884ca8a90b4dfbfb71f715198ddf70cbcd819
https://github.com/llvm/llvm-project/commit/756884ca8a90b4dfbfb71f715198ddf70cbcd819
Author: Xavier Roche <xavier.roche at algolia.com>
Date: 2026-06-28 (Sun, 28 Jun 2026)
Changed paths:
M libcxx/test/std/numerics/bit/byteswap.verify.cpp
Log Message:
-----------
[libc++][test] Drop _BitInt(96) byteswap padding check on 32-bit x86 (#205295)
`byteswap.verify.cpp` (added in #203876) expects `std::byteswap(unsigned
_BitInt(96))` to be rejected for having padding bits. That holds on
x86_64, where the type is 16 bytes with 32 padding bits, but not on
32-bit x86: the i386 psABI aligns `_BitInt` to 4 bytes and packs
`_BitInt(96)` into 12 bytes with no padding, so the call is well-formed
and the expected diagnostic never fires. The Android i386 builder caught
this.
Gate `test_unsigned_96` on `!defined(__i386__)`. Every other target,
including 32-bit arm, riscv32, ppc32, mips32 and sparc32, gives
`_BitInt(96)` 16 bytes with padding, so the case still exercises the
padding-bit Mandate everywhere except 32-bit x86. `sizeof` is not
available to the preprocessor, so the guard is a target check rather
than a direct has-padding predicate.
Assisted-by: Claude (Anthropic)
---------
Co-authored-by: Claude Opus 4.6 <noreply at anthropic.com>
Commit: 5f3462d9aa5dce3314738b892f14a78dced93d25
https://github.com/llvm/llvm-project/commit/5f3462d9aa5dce3314738b892f14a78dced93d25
Author: gonzalobg <65027571+gonzalobg at users.noreply.github.com>
Date: 2026-06-28 (Sun, 28 Jun 2026)
Changed paths:
M clang/include/clang/Basic/Builtins.td
M clang/include/clang/Basic/DiagnosticSemaKinds.td
M clang/lib/AST/Expr.cpp
M clang/lib/CodeGen/CGAtomic.cpp
M clang/lib/Sema/SemaChecking.cpp
M clang/test/CodeGen/AArch64/atomic-ops-float-check-minmax.c
M clang/test/Sema/atomic-ops.c
M clang/test/Sema/scoped-atomic-ops.c
Log Message:
-----------
[clang] builtins for atomicrmw fminmax/_num (#187139)
Adds compiler builtins for `atomicrmw`: `fminimum`, `fmaximum`,
`fminimum_num`, `fmaximum_num`.
These will be used by the corresponding libc++ atomic apis (see #186716).
Commit: 0094e38ff51e242394506fed29aa9561934604f5
https://github.com/llvm/llvm-project/commit/0094e38ff51e242394506fed29aa9561934604f5
Author: Florian Hahn <flo at fhahn.com>
Date: 2026-06-28 (Sun, 28 Jun 2026)
Changed paths:
A llvm/test/Transforms/LoopIdiom/memset-multiple-accesses.ll
Log Message:
-----------
[LoopIdiom] Add tests with loops writing to fields at different offsets. (#206343)
Add loops with writes at multiple offsets and runtime trip counts.
Commit: 07a8a5e4da7ac42fe492dc8016cddea2c93ffa2b
https://github.com/llvm/llvm-project/commit/07a8a5e4da7ac42fe492dc8016cddea2c93ffa2b
Author: Harrison Hao <57025411+harrisonGPU at users.noreply.github.com>
Date: 2026-06-29 (Mon, 29 Jun 2026)
Changed paths:
M llvm/test/Transforms/SLPVectorizer/X86/odd_store.ll
Log Message:
-----------
[SLP][NFC] Avoid undef usage in odd_store.ll (#206333)
Replace `ret i32 undef` with void return type to avoid CI undef
deprecator failures.
For this PR: https://github.com/llvm/llvm-project/pull/206259
Commit: 2959bfa4665a8b63ac079f756cd4cc2fe73f4d49
https://github.com/llvm/llvm-project/commit/2959bfa4665a8b63ac079f756cd4cc2fe73f4d49
Author: Florian Hahn <flo at fhahn.com>
Date: 2026-06-28 (Sun, 28 Jun 2026)
Changed paths:
M llvm/test/Transforms/LoopVectorize/hoist-predicated-loads-with-predicated-stores.ll
Log Message:
-----------
[LV] Add test with pointer based on SRem expression (NFC). (#206344)
Add a test with loads and stores with pointers based on a signed
remainder (srem) of a non-negative induction variable, mirroring the
existing urem test.
Commit: c03e4bd358920eae86370c60d8bb0f2ef478cf0d
https://github.com/llvm/llvm-project/commit/c03e4bd358920eae86370c60d8bb0f2ef478cf0d
Author: owenca <owenpiano at gmail.com>
Date: 2026-06-28 (Sun, 28 Jun 2026)
Changed paths:
M clang/lib/Format/TokenAnnotator.cpp
M clang/unittests/Format/FormatTest.cpp
M clang/unittests/Format/TokenAnnotatorTest.cpp
Log Message:
-----------
[clang-format] Set Context.IsExpression for C++ ternary operators (#206300)
This reverts e99e343dfdb2b1b490789a7bcba6d646a4824f15 (#199112).
Fixes #199027
Commit: 49de424f45389cb757c3cc8c50daf38d024e2314
https://github.com/llvm/llvm-project/commit/49de424f45389cb757c3cc8c50daf38d024e2314
Author: owenca <owenpiano at gmail.com>
Date: 2026-06-28 (Sun, 28 Jun 2026)
Changed paths:
M clang/lib/Format/CMakeLists.txt
Log Message:
-----------
[clang-format][NFC] Clean up clang/lib/Format/CMakeLists.txt (#206314)
Commit: e3ef2d9628c2de137a06e4757ab43629f09a68d1
https://github.com/llvm/llvm-project/commit/e3ef2d9628c2de137a06e4757ab43629f09a68d1
Author: Fangrui Song <i at maskray.me>
Date: 2026-06-28 (Sun, 28 Jun 2026)
Changed paths:
M llvm/include/llvm/ADT/SmallPtrSet.h
M llvm/lib/Support/SmallPtrSet.cpp
Log Message:
-----------
[SmallPtrSet] Optimize Grow and inline FindBucketFor. NFC (#206304)
During rehashing every key is known absent, so skip the equal-key
comparison.
DenseMap got a similar optimization in #200595
FindBucketFor is then only used by insert_imp_big; inline its probe loop
there. The loop takes 7 inst instead of 9 in the clang-generated
assembly after removing the two `LLVM_LIKELY`.
Commit: 905cccb31453dc21a7322aba6f20d36abe689e82
https://github.com/llvm/llvm-project/commit/905cccb31453dc21a7322aba6f20d36abe689e82
Author: Alexey Bataev <a.bataev at outlook.com>
Date: 2026-06-28 (Sun, 28 Jun 2026)
Changed paths:
A llvm/test/Transforms/SLPVectorizer/X86/poor-throughput-seeds.ll
Log Message:
-----------
[SLP][NFC]Add a test with the poor cost seed instructions, NFC
Reviewers:
Pull Request: https://github.com/llvm/llvm-project/pull/206352
Commit: cef5569d347e9676e45076f245c96043c4bf613c
https://github.com/llvm/llvm-project/commit/cef5569d347e9676e45076f245c96043c4bf613c
Author: Alexis Engelke <engelke at in.tum.de>
Date: 2026-06-28 (Sun, 28 Jun 2026)
Changed paths:
M llvm/include/llvm/Support/ScopedPrinter.h
M llvm/unittests/Support/ScopedPrinterTest.cpp
Log Message:
-----------
[Support] Remove the now-unused EnumEntry (#206330)
Commit: 8eb0c59b9edc8f1d107996576bdd59d7e899f58f
https://github.com/llvm/llvm-project/commit/8eb0c59b9edc8f1d107996576bdd59d7e899f58f
Author: Florian Hahn <flo at fhahn.com>
Date: 2026-06-28 (Sun, 28 Jun 2026)
Changed paths:
A llvm/test/Transforms/LoopVectorize/VPlan/RISCV/expand-scev.ll
M llvm/test/Transforms/LoopVectorize/VPlan/expand-scev.ll
Log Message:
-----------
[VPlan] Add printing tests for various SCEV expressions. (NFC) (#206351)
Add tests currently not yet expanded to VPInstruction.
Commit: 27e3251a03e61483bf653b7c2bf90898745952f2
https://github.com/llvm/llvm-project/commit/27e3251a03e61483bf653b7c2bf90898745952f2
Author: Yingwei Zheng <dtcxzyw2333 at gmail.com>
Date: 2026-06-29 (Mon, 29 Jun 2026)
Changed paths:
M llvm/include/llvm/IR/Attributes.h
M llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp
M llvm/test/Transforms/InstCombine/abs-intrinsic.ll
M llvm/test/Transforms/InstCombine/bit_ceil.ll
M llvm/test/Transforms/InstCombine/ctpop-bswap-bitreverse.ll
M llvm/test/Transforms/InstCombine/ctpop.ll
M llvm/test/Transforms/InstCombine/cttz-abs.ll
M llvm/test/Transforms/InstCombine/cttz-negative.ll
M llvm/test/Transforms/InstCombine/hyperbolic-functions.ll
M llvm/test/Transforms/InstCombine/intrinsics.ll
M llvm/test/Transforms/InstCombine/is_fpclass.ll
M llvm/test/Transforms/InstCombine/minmax-fold.ll
M llvm/test/Transforms/InstCombine/minmax-of-minmax.ll
M llvm/test/Transforms/InstCombine/powi.ll
Log Message:
-----------
[InstCombine] Create new instructions instead of in-place operand replacement (#115988)
Fixes https://github.com/llvm/llvm-project/issues/115890.
Currently it doesn't affect final codegen. But we may suffer from this
problem when we utilize these attributes for further optimization (e.g.,
https://github.com/llvm/llvm-project/pull/111284). This test case is
reduced from a csmith-generated C program. And I believe this problem
also exists in real-world programs.
Commit: 679ed0b5276fe48b561cf821103cff28baa6a327
https://github.com/llvm/llvm-project/commit/679ed0b5276fe48b561cf821103cff28baa6a327
Author: juan.vazquez <juvazq at google.com>
Date: 2026-06-28 (Sun, 28 Jun 2026)
Changed paths:
A llvm/include/llvm/CodeGen/MachineCheckDebugify.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/CodeGen.cpp
M llvm/lib/CodeGen/MachineCheckDebugify.cpp
M llvm/lib/CodeGen/TargetPassConfig.cpp
M llvm/lib/Passes/PassBuilder.cpp
M llvm/lib/Passes/PassRegistry.def
M llvm/test/CodeGen/Generic/MIRDebugify/check-line-and-variables-x.mir
M llvm/test/CodeGen/Generic/MIRDebugify/check-line-and-variables.mir
M llvm/test/CodeGen/Generic/MIRDebugify/multifunction-module.mir
Log Message:
-----------
[CodeGen] Port mir-check-debugify to new pass manager (#199280)
Commit: e74cc18ef633badc994cd85109049c0e93976066
https://github.com/llvm/llvm-project/commit/e74cc18ef633badc994cd85109049c0e93976066
Author: Yingwei Zheng <dtcxzyw2333 at gmail.com>
Date: 2026-06-28 (Sun, 28 Jun 2026)
Changed paths:
A llvm/test/tools/llubi/noalias_scope.ll
M llvm/tools/llubi/lib/Interpreter.cpp
Log Message:
-----------
[llubi] Treat `llvm.experimental.noalias.scope.decl` as a noop (#206357)
The noalias support is still work in progress:
https://github.com/llvm/llvm-project/pull/195808
`llvm.experimental.noalias.scope.decl` is emitted by the inliner. We may
need more time to clarify the semantics.
This patch treats the intrinsic as a noop to avoid crashes (metadata
arguments are not supported before this patch).
Commit: 6d1fbb5e144085cc25f19f9f8e5acdfdd7ecdd8d
https://github.com/llvm/llvm-project/commit/6d1fbb5e144085cc25f19f9f8e5acdfdd7ecdd8d
Author: Baranov Victor <bar.victor.2002 at gmail.com>
Date: 2026-06-28 (Sun, 28 Jun 2026)
Changed paths:
M .github/CODEOWNERS
Log Message:
-----------
[Github] Add myself to clang-tidy codeowners (#206365)
Commit: 52ffd2056a0add0ee47929ccfe841ba4c99ebcd5
https://github.com/llvm/llvm-project/commit/52ffd2056a0add0ee47929ccfe841ba4c99ebcd5
Author: Florian Hahn <flo at fhahn.com>
Date: 2026-06-28 (Sun, 28 Jun 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 SRem in getSCEVExprForVPValue. (#206361)
Extend vputils::getSCEVExprForVPValue to construct SCEV expressions for
SRem recipes. A SRem of non-negative operands is equivalent to URem.
Enables SCEV-based no-alias reasoning for stores derived from SRem GEPs.
Commit: 20b599368050a3a433abe89aa4141ac0c229b3ce
https://github.com/llvm/llvm-project/commit/20b599368050a3a433abe89aa4141ac0c229b3ce
Author: Zeyi Xu <mitchell.xu2 at gmail.com>
Date: 2026-06-28 (Sun, 28 Jun 2026)
Changed paths:
M .github/CODEOWNERS
Log Message:
-----------
[Github] Add zeyi2 to clang-tidy codeowners (#206368)
Commit: ffe61fab2c96e123f80627f6e87fa812788fb4a8
https://github.com/llvm/llvm-project/commit/ffe61fab2c96e123f80627f6e87fa812788fb4a8
Author: Kevin Sala Penades <salapenades1 at llnl.gov>
Date: 2026-06-28 (Sun, 28 Jun 2026)
Changed paths:
M clang/include/clang/AST/OpenMPClause.h
M clang/include/clang/AST/RecursiveASTVisitor.h
M clang/include/clang/Basic/DiagnosticSemaKinds.td
M clang/include/clang/Basic/OpenMPKinds.def
M clang/include/clang/Basic/OpenMPKinds.h
M clang/include/clang/Sema/SemaOpenMP.h
M clang/lib/AST/OpenMPClause.cpp
M clang/lib/AST/StmtProfile.cpp
M clang/lib/Basic/OpenMPKinds.cpp
M clang/lib/Parse/ParseOpenMP.cpp
M clang/lib/Sema/SemaOpenMP.cpp
M clang/lib/Sema/TreeTransform.h
M clang/lib/Serialization/ASTReader.cpp
M clang/lib/Serialization/ASTWriter.cpp
M clang/test/OpenMP/target_teams_ast_print.cpp
M clang/test/OpenMP/target_teams_distribute_num_teams_messages.cpp
M clang/test/OpenMP/target_teams_distribute_parallel_for_num_teams_messages.cpp
M clang/test/OpenMP/teams_num_teams_messages.cpp
M clang/tools/libclang/CIndex.cpp
Log Message:
-----------
[OpenMP][Clang] Fix parsing of num_teams lower-bound modifier (#205700)
PR #180608 added parsing for the `lower-bound` modifier in the
`num_teams` clause. However, the lower bound expression is handled by
adding it to the first position of the clause's varlist, which is the
list that holds the number of teams for each dimension when `ompx_bare`
is specified. Given that the interpretation of the varlist depends on
its length, the following `ompx_bare` cases are broken:
- `#pragma omp target teams ompx_bare num_teams(11,10)` is interpreted
as a lower-bound and upper-bound, triggering the error "_lower bound is
greater than upper bound in 'num_teams' clause_".
- `#pragma omp target teams ompx_bare num_teams(1,2)` is interpreted as
`num_teams(1:2)` when printing the AST.
This commit fixes the collision by storing the lower bound separated from
the list of upper-bounds. This change is necessary for landing the
upcoming support for multidimensional team spaces (OpenMP 6.1) through
the `dims` modifier.
Commit: 7abad0faf4bfe1cb674d7fd362cc31edb1d0c460
https://github.com/llvm/llvm-project/commit/7abad0faf4bfe1cb674d7fd362cc31edb1d0c460
Author: Florian Hahn <flo at fhahn.com>
Date: 2026-06-28 (Sun, 28 Jun 2026)
Changed paths:
M llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
M llvm/test/Transforms/LoopVectorize/AArch64/transform-narrow-interleave-to-widen-memory-constant-ops.ll
Log Message:
-----------
[VPlan] Support different loop-invariant ops in narrowIG. (#203785)
Generalize the distinct per-field operand narrowing in
narrowInterleaveGroups from plain live-ins to any value defined outside
the vector loop region.
Depends on https://github.com/llvm/llvm-project/pull/203778.
PR: https://github.com/llvm/llvm-project/pull/203785
Commit: 8cdf6346f46c505928a9fb9d3ef9e8ce125a2108
https://github.com/llvm/llvm-project/commit/8cdf6346f46c505928a9fb9d3ef9e8ce125a2108
Author: Jan Schultke <me at eisenwave.net>
Date: 2026-06-29 (Mon, 29 Jun 2026)
Changed paths:
M clang/test/CXX/drs/cwg31xx.cpp
M clang/www/cxx_dr_status.html
Log Message:
-----------
[clang] Add test for CWG3129 (#206335)
Adds a test for [CWG3129](https://wg21.link/CWG3129) "Clarify which floating-point-literals are valid".
Clang has supported floating-point literals with overly tiny or huge
exponents since 3.0, with only a warning emitted.
Commit: 3a1eaf167e1dd9fb518a1a2d4a3838d159ea8f9f
https://github.com/llvm/llvm-project/commit/3a1eaf167e1dd9fb518a1a2d4a3838d159ea8f9f
Author: Aiden Grossman <aidengrossman at google.com>
Date: 2026-06-28 (Sun, 28 Jun 2026)
Changed paths:
M llvm/test/CodeGen/Generic/MIRDebugify/check-line-and-variables.mir
Log Message:
-----------
[MIR] Fix check-line-and-variables.mir test for external shell (#206364)
Commit: 3a7d64a882421052101899d7d9c23685db5fd355
https://github.com/llvm/llvm-project/commit/3a7d64a882421052101899d7d9c23685db5fd355
Author: Fangrui Song <i at maskray.me>
Date: 2026-06-28 (Sun, 28 Jun 2026)
Changed paths:
M llvm/lib/Target/DirectX/DXILRootSignature.cpp
Log Message:
-----------
[DirectX] Fix build after #206330 (#206376)
Commit: f3a69752ac184360afeb921d157ae08b89c2c091
https://github.com/llvm/llvm-project/commit/f3a69752ac184360afeb921d157ae08b89c2c091
Author: Benedek Kaibas <82393336+benedekaibas at users.noreply.github.com>
Date: 2026-06-29 (Mon, 29 Jun 2026)
Changed paths:
M clang/include/clang/StaticAnalyzer/Checkers/Checkers.td
M clang/lib/StaticAnalyzer/Checkers/CMakeLists.txt
A clang/lib/StaticAnalyzer/Checkers/UseAfterLifetimeEnd.cpp
A clang/test/Analysis/debug-lifetime-bound.cpp
A clang/test/Analysis/lifetime-bound.cpp
Log Message:
-----------
[analyzer] Implement UseAfterLifetimeEnd checker (#205521)
Implemented the UseAfterLifetimEnd checker which is responsible for detecting lifetime safety violations involving the [[clang::lifetimebound]] annotation. This checker can catch violations in annotated code such as dangling pointer/reference bound to local variables that go out of scope. This checker is one of the reporting checkers that depend on the LifetimeModeling checker #205951. To detect dangling sources the checker queries the state at function exit points through the checkEndFunction callback. This checker does not handle lifetime issues where the code is unannotated.
Detailed work history of this checker can be found here: #200145
Co-authored-by: Balázs Benics <benicsbalazs at gmail.com>
Commit: 92f8ff1dcfdba9d9ea5d31178b92a09abb8cad2f
https://github.com/llvm/llvm-project/commit/92f8ff1dcfdba9d9ea5d31178b92a09abb8cad2f
Author: Peter Mackay <petmac at users.noreply.github.com>
Date: 2026-06-28 (Sun, 28 Jun 2026)
Changed paths:
M llvm/test/MC/M68k/Data/Classes/MxMove_MM.s
M llvm/test/MC/M68k/Data/Classes/MxMove_MR.s
M llvm/test/MC/M68k/Data/Classes/MxMove_RM.s
R llvm/test/MC/M68k/Data/Classes/MxMove_RR.s
A llvm/test/MC/M68k/MOVE.s
A llvm/test/MC/M68k/generate_tests.py
Log Message:
-----------
[M68k][MC] Generate some encoding tests for MOVE (#194269)
# Problem statement
Instruction encoding needs to be solid, as it's one of the foundations
that a target backend is built upon.
It's error-prone work, and tedious to write tests for.
Test coverage for M68k instruction encoding isn't exhaustive, and we've
had bugs in the past where instructions have not been encoded correctly.
# Proposed solution
Using the documentation at https://m680x0.github.io/doc/official-docs it
should be possible to write some scripts to generate encoding tests for
all the instructions.
# Description of this PR
I've written a Python script `llvm/test/MC/M68k/generate_tests.py` to
generate test cases for a single instruction (MOVE), including all
combinations of data sizes, and of some of its simpler addressing modes.
I then deleted the manually-written tests for the same addressing modes.
# Notes
This is an early PR, to get feedback and evaluate the approach.
I'm a novice Python programmer, so `llvm/test/MC/M68k/generate_tests.py`
is likely to have poor or weird code in it. Please feel free to comment
and request changes!
`llvm/test/MC/M68k/Generated/MOVE.s` is rather large. Perhaps a
"representative" set of permutations should be computed rather than an
exhaustive set?
# Next steps
- Generate disassembly tests too
- Add the rest of the MOVE addressing modes
- Do more instructions
- Test invalid/wrong permutations result in errors/warnings
Commit: 4050d7a96903eec615c57e1d3d6f3c824096244c
https://github.com/llvm/llvm-project/commit/4050d7a96903eec615c57e1d3d6f3c824096244c
Author: Harlen Batagelo <hbatagelo at gmail.com>
Date: 2026-06-29 (Mon, 29 Jun 2026)
Changed paths:
M clang/docs/ReleaseNotes.rst
M clang/lib/Parse/ParseCXXInlineMethods.cpp
A clang/test/CodeCompletion/GH200879.cpp
Log Message:
-----------
[clang] Fix assertion failures involving code completion with delayed default arguments and exception specifications (#203794)
Fixes #200879.
This patch fixes crashes when code completion is invoked immediately
after the declaration of a top-level class containing methods with
default arguments or exception specifications.
Default-argument case: https://godbolt.org/z/4G9nTfnGd
Exception-specification case: https://godbolt.org/z/8frEv8von
When code completion is triggered right after the class body, the
lookahead token is `tok::code_completion` when late parsing begins. The
token is saved to the cached token stream and `ConsumeAnyToken()` is
called to consume it, but `ConsumeAnyToken()` defaults to rejecting
completion tokens, which cuts off parsing. In the default-arguments path
(as reported in #200879), the assertion `Tok.is(tok::equal) && "Default
argument not starting with '='"` is triggered because `cutOffParsing()`
sets the current token to `eof`.
Fix by using `ConsumeAnyToken(/*ConsumeCodeCompletionTok=*/true)` when
consuming the pushed token.
Commit: 49cf5a7ba0ab76a1f700ce6407cea1713741bc01
https://github.com/llvm/llvm-project/commit/49cf5a7ba0ab76a1f700ce6407cea1713741bc01
Author: Aditya Medhane <sherlockedaditya at gmail.com>
Date: 2026-06-28 (Sun, 28 Jun 2026)
Changed paths:
M clang-tools-extra/clangd/CodeComplete.cpp
Log Message:
-----------
[clangd] Remove unused onlyValue<bool> overload (NFC) (#206312)
BundledEntry has three `std::string` members and no bool member, so the
bool overload of onlyValue can never be instantiated. It has been dead
since it was added and trips -Wunused-template.
NFC. Part of #202945.
Commit: 24fb629a8b43dd443a4d854d2ea18af786251df2
https://github.com/llvm/llvm-project/commit/24fb629a8b43dd443a4d854d2ea18af786251df2
Author: lrzlin <linrunze at loongson.cn>
Date: 2026-06-29 (Mon, 29 Jun 2026)
Changed paths:
M llvm/lib/Target/LoongArch/LoongArchISelLowering.cpp
M llvm/lib/Target/LoongArch/LoongArchLASXInstrInfo.td
A llvm/test/CodeGen/LoongArch/lasx/vec-trunc-combine.ll
M llvm/test/CodeGen/LoongArch/lasx/vxi1-masks.ll
M llvm/test/CodeGen/LoongArch/lasx/xvmskcond.ll
M llvm/test/CodeGen/LoongArch/pr177863.ll
Log Message:
-----------
[LoongArch] Legalize LASX truncate with XVPICKEV instruction (#202485)
Add LASX truncate patterns for wide truncates (e.g. `v8i64 trunc to
v8i8`) with `XVPICKEV` instructions.
To merge two registers into one, return concat_vectors as is while its
two operations are `ISD::TRUNCATE`, also dealing with illegal results in
`ReplaceNodeResults`.
Commit: 9fd6933cf03f7e46fd4b8ec579f7daa8ad26361d
https://github.com/llvm/llvm-project/commit/9fd6933cf03f7e46fd4b8ec579f7daa8ad26361d
Author: lrzlin <linrunze at loongson.cn>
Date: 2026-06-29 (Mon, 29 Jun 2026)
Changed paths:
M llvm/lib/Target/LoongArch/LoongArchISelLowering.cpp
M llvm/test/CodeGen/LoongArch/lasx/ir-instruction/sitofp.ll
M llvm/test/CodeGen/LoongArch/lasx/ir-instruction/uitofp.ll
M llvm/test/CodeGen/LoongArch/lsx/ir-instruction/sitofp.ll
M llvm/test/CodeGen/LoongArch/lsx/ir-instruction/uitofp.ll
Log Message:
-----------
[LoongArch] Use vector extend for sitofp/uitofp (#202496)
Called sign/zero extend first in `performS[U]INT_TO_FPCombine` before
doing vector sitofp/uitofp, which avoid inefficient scalarization.
Commit: e568ab3b0fceeeba1b43400b199ab07f719b1092
https://github.com/llvm/llvm-project/commit/e568ab3b0fceeeba1b43400b199ab07f719b1092
Author: Jinjie Huang <huangjinjie at bytedance.com>
Date: 2026-06-29 (Mon, 29 Jun 2026)
Changed paths:
M llvm/lib/CodeGen/MachineBasicBlock.cpp
Log Message:
-----------
[CodeGen] Search predecessors from the back in removePredecessor() (#206070)
In many passes involving CFG updates, it is a common pattern to process
the Predecessors vector from back to front for efficiency. However, the
current forward search in removePredecessor often results in an O(N)
complexity.
So this patch tries to change the search logic to a reverse search to
better align with the majority of actual CFG manipulation scenarios.
And in a real-world case (with ~16k predecessors), this modification can
help to reduce the execution time of the BranchFolder pass from
166.4951s to 6.0717s.
---------
Co-authored-by: Reid Kleckner <rkleckner at nvidia.com>
Commit: f042cf49fa5f17b060bff2cd5122f56ea5c4c752
https://github.com/llvm/llvm-project/commit/f042cf49fa5f17b060bff2cd5122f56ea5c4c752
Author: Valentin Clement (バレンタイン クレメン) <clementval at gmail.com>
Date: 2026-06-28 (Sun, 28 Jun 2026)
Changed paths:
M flang/lib/Optimizer/Transforms/CUDA/CUFPredefinedVarToGPU.cpp
M flang/test/Fir/CUDA/predefined-variables.mlir
Log Message:
-----------
[flang][cuda] Rewrite predefined variable in acc compute ops with inlined cuf function (#206205)
Commit: de2ba06fbde809e2e121d4ea63161f05a5bb56ba
https://github.com/llvm/llvm-project/commit/de2ba06fbde809e2e121d4ea63161f05a5bb56ba
Author: Maksim Levental <maksim.levental at gmail.com>
Date: 2026-06-28 (Sun, 28 Jun 2026)
Changed paths:
A mlir/include/mlir-c/Dominance.h
A mlir/include/mlir/CAPI/Dominance.h
M mlir/lib/CAPI/IR/CMakeLists.txt
A mlir/lib/CAPI/IR/Dominance.cpp
M mlir/test/CAPI/ir.c
Log Message:
-----------
[mlir-c] Add DominanceInfo and PostDominanceInfo C API bindings (#206156)
Expose DominanceInfo and PostDominanceInfo through the MLIR C API with
operation/block/value dominance queries, nearest common dominator,
reachability, and invalidation.
Assisted by: Claude
Commit: 6a12b7c74b179fbd1b40466f57d94dd8ed53cf16
https://github.com/llvm/llvm-project/commit/6a12b7c74b179fbd1b40466f57d94dd8ed53cf16
Author: Maksim Levental <maksim.levental at gmail.com>
Date: 2026-06-28 (Sun, 28 Jun 2026)
Changed paths:
M mlir/include/mlir/Bindings/Python/IRAttributes.h
M mlir/lib/Bindings/Python/IRAffine.cpp
M mlir/lib/Bindings/Python/IRCore.cpp
Log Message:
-----------
[mlir][python] Fix Python binding cast diagnostics for nanobind 2.13 (#206391)
nanobind 2.13.0 changed failing `nb::cast<T>()` to raise `cast_error`
(an alias for `std::bad_cast`) for all failures, including `None`,
instead of the previous distinct exception types. The bindings relied on
catching `std::runtime_error` separately from `cast_error` to emit a
helpful "(None?)" hint, so that branch became dead code and the `None`
diagnostics regressed (e.g. "(std::bad_cast)" instead of "(None?)"),
breaking check-mlir Python tests.
Fix: Decide the `None` hint from the value via `is_none()` rather than
the exception type. This is robust across nanobind versions (2.10-2.13).
Fixes #205329
Assisted by: Claude
Commit: bac7ca5f170f25517870e0876d710cc4226c3602
https://github.com/llvm/llvm-project/commit/bac7ca5f170f25517870e0876d710cc4226c3602
Author: Nikita Popov <npopov at redhat.com>
Date: 2026-06-29 (Mon, 29 Jun 2026)
Changed paths:
M llvm/test/tools/llvm-objdump/Offloading/fatbin-magic-collision.test
Log Message:
-----------
[Offload] Skip test on big endian host (#206405)
Commit: 2bd8d73902bacaa8b8540bc0eb7a6604d6b5f1ed
https://github.com/llvm/llvm-project/commit/2bd8d73902bacaa8b8540bc0eb7a6604d6b5f1ed
Author: Pavel Labath <pavel at labath.sk>
Date: 2026-06-29 (Mon, 29 Jun 2026)
Changed paths:
M libc/include/CMakeLists.txt
M libc/include/arpa/inet.yaml
M libc/include/netinet/in.yaml
M libc/utils/hdrgen/hdrgen/header.py
M libc/utils/hdrgen/hdrgen/yaml_to_classes.py
M libc/utils/hdrgen/tests/expected_output/custom.h
M libc/utils/hdrgen/tests/input/custom.yaml
Log Message:
-----------
[libc] Add public_includes stanza to hdrgen and use it in socket headers (#205543)
This patch adds support for a public_includes stanza in header YAML
files, allowing generated public headers to include other public
headers.
I use this to make arpa/inet.h include netinet/in.h, and netinet/in.h
include sys/socket.h. While POSIX doesn't strictly require these headers
to include each other, it permits it, and many real-world applications
depend on this behavior.
To make this work, I also needed to reorder the header targets in
include/CMakeLists.txt so that targets sys_socket and netinet_in are
defined before targets declare dependencies on them.
There are a couple of other files that could use this feature (right now
they handle it through the header template), but I'll do that as a
separate patch.
Assisted by Gemini.
Commit: acf21896447b2eaecb8f62d94d8dbec1f2860ad3
https://github.com/llvm/llvm-project/commit/acf21896447b2eaecb8f62d94d8dbec1f2860ad3
Author: Nikita Popov <npopov at redhat.com>
Date: 2026-06-29 (Mon, 29 Jun 2026)
Changed paths:
M llvm/lib/Target/AArch64/AArch64Features.td
Log Message:
-----------
[AArch64] Ignore tuning features for inlining (#205750)
Tuning features are not correctness relevant, so differences in tuning
features should not prevent inlining.
Commit: eb29d7f2773b64e3bc8a6804db44bc45dfecb032
https://github.com/llvm/llvm-project/commit/eb29d7f2773b64e3bc8a6804db44bc45dfecb032
Author: SiHuaN <liyongtai at iscas.ac.cn>
Date: 2026-06-29 (Mon, 29 Jun 2026)
Changed paths:
M llvm/include/llvm/IR/IntrinsicsRISCV.td
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] Add codegen for packed reduction sum (#206004)
The predsum/predsumu instructions reduce a packed vector to a scalar:
each element is sign- or zero-extended to the accumulator width and
added to the scalar accumulator rs2.
This patch adds the llvm.riscv.predsum and predsumu intrinsics along
with isel patterns for target-legal results (predsum.bs/hs/ws, plus
the paired predsum.dbs/dhs for a GPRPair source on RV32).
The remaining combinations have a target-illegal result and are split
in ReplaceNodeResults:
* On RV64: An i32 accumulator reduces at i64 and is then truncated
(the 32-bit source is zero-extended first).
* On RV32: An i64 accumulator reduces to a 32-bit partial sum and is
widening-accumulated via wadda/waddau.
Commit: 268d7517922f6a22519c13cf6c138f67c5816ff9
https://github.com/llvm/llvm-project/commit/268d7517922f6a22519c13cf6c138f67c5816ff9
Author: nirhersh <77844231+nirhersh at users.noreply.github.com>
Date: 2026-06-29 (Mon, 29 Jun 2026)
Changed paths:
M mlir/include/mlir/Interfaces/ValueBoundsOpInterface.h
M mlir/lib/Dialect/Arith/IR/ArithDialect.cpp
M mlir/lib/Dialect/Arith/IR/ValueBoundsOpInterfaceImpl.cpp
M mlir/lib/Interfaces/ValueBoundsOpInterface.cpp
M mlir/test/Dialect/Arith/value-bounds-op-interface-impl.mlir
Log Message:
-----------
[mlir][arith] Add ValueBoundsOpInterface external models for the arith integer CeilDiv, RemSI, RemUI, MaxUI, MinUI. (#204966)
Add ValueBoundsOpInterface external models for the arith integer
CeilDiv, RemSI, RemUI, MaxUI, MinUI.
Since the ValueBoundsConstraintSet infrastructure interprets unsigned
integers as signed, unsigned ops needed special handling.
In the unsigned ops we first verify that the integers can be proven as
positive, and if yes we add the appropriate constraints to the set.
The only exception for that is the RemUI, since the bound is only
dependent on the divider we don't care what's the sign of the lhs.
---------
Co-authored-by: Nir Herscovici <nir.herscovici at mobileye.com>
Commit: 14da8682e61c45ba24c9e3baf530c975798bc5e4
https://github.com/llvm/llvm-project/commit/14da8682e61c45ba24c9e3baf530c975798bc5e4
Author: David Green <david.green at arm.com>
Date: 2026-06-29 (Mon, 29 Jun 2026)
Changed paths:
M llvm/lib/Target/ARM/ARMISelLowering.cpp
M llvm/lib/Target/ARM/ARMInstrVFP.td
M llvm/test/CodeGen/ARM/bf16-instructions.ll
Log Message:
-----------
[ARM] Add basic bf16 fpround support (#206415)
This adds basic bf16 fpround support, custom lowering f32 operations to
vcvtb
instructions.
Commit: 90c94584c6758f64a71b31509b91c7a70ff17380
https://github.com/llvm/llvm-project/commit/90c94584c6758f64a71b31509b91c7a70ff17380
Author: lonely eagle <2020382038 at qq.com>
Date: 2026-06-29 (Mon, 29 Jun 2026)
Changed paths:
M mlir/lib/Dialect/Affine/Transforms/AffineDataCopyGeneration.cpp
Log Message:
-----------
[mlir][affine] Remove redundant copyNests.clear() after declaration (NFC) (#206348)
The clear() call immediately following the declaration of copyNests is
redundant since a default-constructed DenseSet is already empty. Remove
it.
Commit: ece2342812b53cb6fe2121198df21e02f3641047
https://github.com/llvm/llvm-project/commit/ece2342812b53cb6fe2121198df21e02f3641047
Author: Ying Chen <chenying at inchitech.com>
Date: 2026-06-29 (Mon, 29 Jun 2026)
Changed paths:
M llvm/test/CodeGen/RISCV/rvv/vp-combine-store-reverse.ll
Log Message:
-----------
[RISCV] Convert opaque pointers in vp-combine-store-reverse.ll. NFC (#206411)
Commit: ad30b9a1573f9c8ad2650a19e2bbef28759f0841
https://github.com/llvm/llvm-project/commit/ad30b9a1573f9c8ad2650a19e2bbef28759f0841
Author: Andrzej Warzyński <andrzej.warzynski at arm.com>
Date: 2026-06-29 (Mon, 29 Jun 2026)
Changed paths:
M clang/lib/CodeGen/TargetBuiltins/ARM.cpp
Log Message:
-----------
[clang][AArch64] Remove dead code-gen code (#205153)
Commit: 0b542f01dfc0dee39fda8be1a63995d783a5606b
https://github.com/llvm/llvm-project/commit/0b542f01dfc0dee39fda8be1a63995d783a5606b
Author: David Green <david.green at arm.com>
Date: 2026-06-29 (Mon, 29 Jun 2026)
Changed paths:
M llvm/lib/Target/ARM/ARMISelLowering.cpp
Log Message:
-----------
[ARM] Cleanup for performSTORECombine. NFC (#206420)
Commit: bbaa04b4ba4c9a6049e0618e97d7d1db85a8a06c
https://github.com/llvm/llvm-project/commit/bbaa04b4ba4c9a6049e0618e97d7d1db85a8a06c
Author: Ömer Sinan Ağacan <omeragacan at gmail.com>
Date: 2026-06-29 (Mon, 29 Jun 2026)
Changed paths:
M llvm/lib/CodeGen/GlobalISel/CombinerHelper.cpp
M llvm/lib/Target/AArch64/GISel/AArch64LegalizerInfo.cpp
A llvm/test/CodeGen/AArch64/GlobalISel/freeze-push.mir
M llvm/test/CodeGen/AArch64/GlobalISel/legalize-undef.mir
Log Message:
-----------
[GlobalISel][AArch64] Tweak `G_FREEZE` legalization, don't push it when that makes code illegal (#204785)
In the combine rule
// Convert freeze(Op(Op0, NonPoisonOps...)) to Op(freeze(Op0), NonPoisonOps...)
// when Op0 is not guaranteed non-poison
def push_freeze_to_prevent_poison_from_propagating ...
Don't push the `freeze` if `freeze(Op0)` is illegal and we've already
run the legalizer.
Also make `G_FREEZE`, `G_IMPLICIT_DEF`, `G_CONSTANT_FOLD_BARRIER` legal for
`s128` operands.
Two new tests added:
- `free-push-legal.mir` checks that we don't push `freeze` towards operands
post-legalization when doing so makes the code illegal.
We use an instruction here that's unlikely to be made legal for `G_FREEZE`
(variable sized vector load).
- `freeze-push-legal.mir` checks the opposite on `s128` values.
Fixes the crashes like:
LLVM ERROR: instruction is not legal: %8:_(i128) = G_FREEZE %0:_ (in function: _0)
Commit: 7dfb414f0c2377d0a6f814e0d3af0cea1e6f3daf
https://github.com/llvm/llvm-project/commit/7dfb414f0c2377d0a6f814e0d3af0cea1e6f3daf
Author: Ingo Müller <ingomueller at google.com>
Date: 2026-06-29 (Mon, 29 Jun 2026)
Changed paths:
M utils/bazel/llvm-project-overlay/mlir/BUILD.bazel
Log Message:
-----------
Bazel fix for #206156 (#206419)
Signed-off-by: Ingo Müller <ingomueller at google.com>
Commit: 2d2a9815933dfa422c2858786f5ad76d1802c25c
https://github.com/llvm/llvm-project/commit/2d2a9815933dfa422c2858786f5ad76d1802c25c
Author: Madhur Amilkanthwar <madhura at nvidia.com>
Date: 2026-06-29 (Mon, 29 Jun 2026)
Changed paths:
A llvm/test/Transforms/GVN/rle-coerced-noalias.ll
Log Message:
-----------
[GVN] Add test for scoped-alias metadata dropped on coerced loads (NFC) (#206416)
Precommit test capturing current behavior: when GVN forwards a wider
load to a narrower load at an offset, dropUnknownNonDebugMetadata
strips !noalias and !alias.scope from the surviving wider load even
though that load is unchanged and the metadata stays valid.
Commit: b426dd530b44bb92eaf95777f9401b7fe66a531a
https://github.com/llvm/llvm-project/commit/b426dd530b44bb92eaf95777f9401b7fe66a531a
Author: Hardik Kumar <hardikxk at gmail.com>
Date: 2026-06-29 (Mon, 29 Jun 2026)
Changed paths:
M clang/lib/Lex/Preprocessor.cpp
Log Message:
-----------
[clang][Lex] Optimize the FileCheckPoints search in Preprocessor (#206356)
Resolves a FIXME and improved linear search by replacing with a binary
search on the FileCheckPoints SmallVector in Lex/Preprocessor.
- used std::upper_bound to find the upper bound of the Start position.
- handle special case if the Start is less than all elements in
FileCheckPoints so returns a nullptr;
- else return the dereferenced value of the CheckPoint just before Start
point.
Commit: 114730b54371bf1dfb09a437564207185128665b
https://github.com/llvm/llvm-project/commit/114730b54371bf1dfb09a437564207185128665b
Author: mkovacevic99 <mkovacevic at baylibre.com>
Date: 2026-06-29 (Mon, 29 Jun 2026)
Changed paths:
M clang/docs/ReleaseNotes.rst
M clang/lib/AST/Type.cpp
M clang/lib/Sema/SemaTemplateDeduction.cpp
A clang/test/CodeGen/atomic-auto-type.c
A clang/test/Sema/atomic-auto-type.c
Log Message:
-----------
[Clang] Handle deduced auto types within AtomicType (#197874)
This patch fixes handling of deduced types nested inside AtomicType.
Previously, GetContainedDeducedTypeVisitor did not recurse through
AtomicType nodes, causing getContainedDeducedType() to incorrectly
return null for types such as:
**_Atomic(__auto_type)**
As a result, undeduced AutoType instances could bypass semantic checks
and later reach codegen/type layout paths, eventually triggering
assertions such as:
_!A->getDeducedType().isNull() && "cannot request the size of an
undeduced or dependent auto type_
This patch adds AtomicType traversal support to
GetContainedDeducedTypeVisitor so contained deduced types are properly
discovered.
Additionally, template deduction logic for AtomicType is extended to
allow deduction from the atomic value type when the pattern contains an
auto type.
CheckOriginalCallArgDeduction is also adjusted to handle atomic wrappers
around deduced types correctly.
This brings Clang behavior closer to GCC for combinations involving
_Atomic and __auto_type and prevents undeduced auto types from escaping
into later compilation stages.
---------
Fixes #118058
Commit: 4eb7340fcb8e644883826335955282dff42fa7ef
https://github.com/llvm/llvm-project/commit/4eb7340fcb8e644883826335955282dff42fa7ef
Author: Yuli Fiterman <fiterman at gmail.com>
Date: 2026-06-29 (Mon, 29 Jun 2026)
Changed paths:
M clang/docs/ReleaseNotes.rst
M clang/lib/Sema/SemaInit.cpp
A clang/test/SemaCXX/init-list-incomplete-dtor-crash.cpp
Log Message:
-----------
[Clang][Sema] Fix crash on init-list of array with incomplete element type (#205973)
## Summary
Fixes #140685.
clangd (and clang itself, with assertions enabled) crashes on:
```cpp
struct MoveOnly;
void test() {
MoveOnly (&&list)[1] = {};
}
```
with
```
Assertion failed: (CanDeclareSpecialMemberFunction(RD) && "doing special member lookup into record that isn't fully complete"), function LookupSpecialMember, file SemaLookup.cpp
```
The path is `InitListChecker::CheckArrayType` →
`checkDestructorReference` → `LookupDestructor` → `LookupSpecialMember`.
`LookupSpecialMember` asserts that the record is fully defined;
`checkDestructorReference` was not guarding against incomplete records
before calling. Error recovery for init-lists of incomplete element
types reaches this point even after the parser has already diagnosed the
incompleteness, so we hit the assert in any `+asserts` build.
## Fix
One-line guard in `checkDestructorReference`: bail when the record has
no definition. This matches the contract `LookupSpecialMember`'s
assertion enforces (via the static `CanDeclareSpecialMemberFunction`)
and is consistent with how other call sites guard their lookups.
```diff
auto *CXXRD = ElementType->getAsCXXRecordDecl();
- if (!CXXRD)
+ if (!CXXRD || !CXXRD->hasDefinition())
return false;
```
## Test
`clang/test/SemaCXX/init-list-incomplete-dtor-crash.cpp` — minimal
`-verify` test that crashed before, now compiles to the expected
diagnostics. Confirmed it fails (assertion crash) without the fix and
passes with it.
No other regressions in `clang/test/SemaCXX`,
`clang/test/CXX/dcl.decl/dcl.init`, `clang/test/CXX/special`
(pre-existing platform-specific failures unchanged).
## Release note
Added under "Bug Fixes to C++ Support" in `clang/docs/ReleaseNotes.rst`.
---------
Co-authored-by: Corentin Jabot <corentinjabot at gmail.com>
Commit: eda0b7e3b17ca04dd3a7d36ded3e9934ed08c58f
https://github.com/llvm/llvm-project/commit/eda0b7e3b17ca04dd3a7d36ded3e9934ed08c58f
Author: Aditya Medhane <sherlockedaditya at gmail.com>
Date: 2026-06-29 (Mon, 29 Jun 2026)
Changed paths:
M llvm/include/llvm/Object/ELF.h
Log Message:
-----------
[Object][ELF] Remove internal linkage from header function templates (NFC) (#202969)
These `static` function templates live in a header, so every translation
unit that includes it gets its own internal-linkage copy. That's a
latent ODR hazard, and it trips `-Wunused-template` in every TU that
doesn't instantiate them. Dropping `static` gives them external linkage
(templates are implicitly inline, so nothing else changes). This matches
`getElfArchType` in the same file, which is already a plain `inline`
helper.
NFC: linkage-only change.
Part of #202945
Commit: 9cc5827882e6f432d21b7345484dffe008b6ccc5
https://github.com/llvm/llvm-project/commit/9cc5827882e6f432d21b7345484dffe008b6ccc5
Author: Aditya Medhane <sherlockedaditya at gmail.com>
Date: 2026-06-29 (Mon, 29 Jun 2026)
Changed paths:
M llvm/lib/Target/Mips/Disassembler/MipsDisassembler.cpp
M llvm/lib/Target/Mips/MCTargetDesc/MipsELFObjectWriter.cpp
Log Message:
-----------
[Mips] Remove unused function templates (NFC) (#202971)
A few function templates in the Mips MC layer have no callers anywhere,
so they never get instantiated and trip `-Wunused-template`. They all
live in `.cpp` files, so this is plain dead-code removal.
`MipsELFObjectWriter.cpp`: `copy_if_else` and `find_best` lost their
only user when `sortRelocs` was rewritten in #104723. The
`FindBestPredicateResult` enum existed only for `find_best`, so it goes
too.
`MipsDisassembler.cpp`: `DecodeDAHIDATIMMR6` isn't referenced by any
`DecoderMethod`. The r6 DAHI/DATI instructions decode through its
sibling `DecodeDAHIDATI`, which is what the generated tables actually
call.
NFC: removes uninstantiated templates only.
Part of #202945.
Commit: d98f750541e46a3bb3000d302542db781d03e7ef
https://github.com/llvm/llvm-project/commit/d98f750541e46a3bb3000d302542db781d03e7ef
Author: Aditya Medhane <sherlockedaditya at gmail.com>
Date: 2026-06-29 (Mon, 29 Jun 2026)
Changed paths:
M llvm/lib/ExecutionEngine/JITLink/aarch32.cpp
M llvm/lib/ExecutionEngine/Orc/OrcABISupport.cpp
Log Message:
-----------
[JITLink][ORC] Clean up unused and assert-only function templates (NFC) (#202973)
These function templates trip `-Wunused-template`.
In `aarch32.cpp`, `writeRegister` has no callers, so it's removed.
`checkRegister` is only used inside `assert`, so it gets compiled out in
release builds (`-DNDEBUG`) and never instantiates; it's marked
`[[maybe_unused]]`. Same story for `stubAndPointerRangesOk` in
`OrcABISupport.cpp`, which is only used in asserts.
NFC.
Part of #202945.
Commit: 0cc3ada2248220b35b6f86cde3824970a289e1a9
https://github.com/llvm/llvm-project/commit/0cc3ada2248220b35b6f86cde3824970a289e1a9
Author: Igor Wodiany <igor.wodiany at amd.com>
Date: 2026-06-29 (Mon, 29 Jun 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPUISelLowering.cpp
Log Message:
-----------
[AMDGPU] Clean up `LowerFP_TO_INT_SAT` (NFC) (#206118)
This is a follow-up to #202680.
Commit: e13beaed5538d464865b20d6f4d4ddcf015bf4c0
https://github.com/llvm/llvm-project/commit/e13beaed5538d464865b20d6f4d4ddcf015bf4c0
Author: Aditya Medhane <sherlockedaditya at gmail.com>
Date: 2026-06-29 (Mon, 29 Jun 2026)
Changed paths:
M llvm/lib/Transforms/Vectorize/VPlanPatternMatch.h
Log Message:
-----------
[VPlan] Remove internal linkage from findUserOf templates (NFC) (#202974)
The `findUserOf` function templates are `static` in a header, so every
translation unit that includes it gets its own internal-linkage copy.
That's a latent ODR hazard, and it trips `-Wunused-template` in TUs that
don't instantiate them. Dropping `static` gives them external linkage
(templates are implicitly inline, so nothing else changes).
NFC: linkage-only change.
Part of #202945.
Commit: df4f24741307ce8b7390f44bf45f844b8e124640
https://github.com/llvm/llvm-project/commit/df4f24741307ce8b7390f44bf45f844b8e124640
Author: Aditya Medhane <sherlockedaditya at gmail.com>
Date: 2026-06-29 (Mon, 29 Jun 2026)
Changed paths:
M clang-tools-extra/clang-doc/YAMLGenerator.cpp
Log Message:
-----------
[clang-doc] Remove unused simple_ilist comparison operators (NFC) (#206309)
These operator== and operator!= templates in YAMLGenerator.cpp were
never called. They went in as infrastructure that never got wired up,
and now a cleanup exposed them under -Wunused-template. Remove the dead
code.
NFC. Part of #202945.
Commit: 41ef9d77f7826ec45e83ab4c6b83a96d735830c6
https://github.com/llvm/llvm-project/commit/41ef9d77f7826ec45e83ab4c6b83a96d735830c6
Author: Raphael Isemann <rise at apple.com>
Date: 2026-06-29 (Mon, 29 Jun 2026)
Changed paths:
M lldb/include/lldb/Utility/Log.h
M lldb/source/Commands/CommandObjectLog.cpp
M lldb/source/Commands/Options.td
M lldb/source/Utility/Log.cpp
M lldb/test/API/commands/log/basic/TestLogging.py
M lldb/unittests/Utility/LogTest.cpp
Log Message:
-----------
[lldb] Add option to log in JSONL format (#205758)
This patch adds a -j option to the log command that prints all log
messages as their own single-line JSON objects. The resulting output log
file is then a valid JSONL file with the message and metadata as their
own fields.
The motivation for this change is that writing any tooling that
analyzses LLDB logs is currently very difficult to get right. Our
current log messages often span multiple lines, and even the metadata
(e.g., stacktraces) span multiple lines. Even worse, the message content
is effectively arbitrary bytes (such as memory values) that need can
only be parsed back into a series of log messages via several
heuristics.
assisted-by: claude
Commit: 75dcaa157652a0911a31ef6143feffcfa4a2aea5
https://github.com/llvm/llvm-project/commit/75dcaa157652a0911a31ef6143feffcfa4a2aea5
Author: Nico Weber <thakis at chromium.org>
Date: 2026-06-29 (Mon, 29 Jun 2026)
Changed paths:
M llvm/utils/gn/secondary/clang-tools-extra/clang-tidy/readability/BUILD.gn
Log Message:
-----------
[gn build] Port 5e4ac011bdd7 (#206431)
Commit: 2fcfef41c138b17ec32472b4e59bc48d9589d334
https://github.com/llvm/llvm-project/commit/2fcfef41c138b17ec32472b4e59bc48d9589d334
Author: Nico Weber <thakis at chromium.org>
Date: 2026-06-29 (Mon, 29 Jun 2026)
Changed paths:
M llvm/utils/gn/secondary/clang/lib/StaticAnalyzer/Checkers/BUILD.gn
Log Message:
-----------
[gn build] Port f3a69752ac18 (#206432)
Commit: f108671fa451e5ea66e7600141c4876b6e5ee34a
https://github.com/llvm/llvm-project/commit/f108671fa451e5ea66e7600141c4876b6e5ee34a
Author: Tim Hutt <tdhutt at gmail.com>
Date: 2026-06-29 (Mon, 29 Jun 2026)
Changed paths:
M lldb/packages/Python/lldbsuite/test/gdbclientutils.py
M lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunication.cpp
M lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunication.h
A lldb/test/API/functionalities/gdb_remote_client/TestIgnoringNotifications.py
Log Message:
-----------
[lldb] Ignore notification packets (#204788)
The gdb-protocol spec says
> Recipients should silently ignore corrupted notifications and
notifications they do not understand.
This changes `WaitForPacketNoLock` so that it ignores all notifications
(I'm not sure about corrupted ones).
An example of a notification that causes issues without this change is
that OpenOCD sends `%ookeepalive:00` notifications during memory
accesses.
Fixes #197944
Commit: 1229188d8cde89c68d29734842c82e5799582dc8
https://github.com/llvm/llvm-project/commit/1229188d8cde89c68d29734842c82e5799582dc8
Author: David Spickett <david.spickett at arm.com>
Date: 2026-06-29 (Mon, 29 Jun 2026)
Changed paths:
M lldb/test/API/functionalities/breakpoint/breakpoint_conditions/TestBreakpointConditions.py
Log Message:
-----------
[lldb][test] Skip TestBreakpointConditions.py on Windows on Arm (#206433)
Has been failing a lot lately on the buildbot, see #206141.
Which part fails seems to vary so I'm disabling all of it.
Commit: 9c1161cd0d1bf53aeab8fe558b7b7c026f1f2a73
https://github.com/llvm/llvm-project/commit/9c1161cd0d1bf53aeab8fe558b7b7c026f1f2a73
Author: Utkarsh Saxena <usx at google.com>
Date: 2026-06-29 (Mon, 29 Jun 2026)
Changed paths:
M clang/docs/LifetimeSafety.rst
M clang/include/clang/Basic/DiagnosticGroups.td
M clang/include/clang/Basic/DiagnosticSemaKinds.td
M clang/lib/Sema/SemaLifetimeSafety.h
M clang/test/Sema/LifetimeSafety/annotation-suggestions.cpp
Log Message:
-----------
[LifetimeSafety] Add separate diagnostic groups for constructor annotation suggestions (#206254)
Reason:
* Better selective enablement.
* In experience, constructor annotations are the most useful and
improves detection by manifolds.
Commit: 33675994823e45fc1cf6e66fec60556970ee8cb7
https://github.com/llvm/llvm-project/commit/33675994823e45fc1cf6e66fec60556970ee8cb7
Author: Weibo He <NewSigma at 163.com>
Date: 2026-06-29 (Mon, 29 Jun 2026)
Changed paths:
M clang/lib/CodeGen/CGCoroutine.cpp
R clang/test/CodeGenCoroutines/coro-cwg2935.cpp
M clang/test/CodeGenCoroutines/coro-gro.cpp
Log Message:
-----------
[clang][CodeGen][Coro] Fix missing EHCleanup for eagerly returned GRO (#206392)
When the GRO is returned eagerly, its value is emitted directly to the
return-value slot. However, we failed to emit EHCleanup for it, leading
to resource leaks if an exception was thrown inside the ramp function.
#202279 fixed this for the period before `initial-await-resume-called`
is set to `true`. This patch extends that fix to cover the entire ramp
function.
Close #199627
Commit: 2407f6d0b517a44916e99dc957a3388a434864e2
https://github.com/llvm/llvm-project/commit/2407f6d0b517a44916e99dc957a3388a434864e2
Author: Jan Schultke <me at eisenwave.net>
Date: 2026-06-29 (Mon, 29 Jun 2026)
Changed paths:
M llvm/utils/UnicodeData/UnicodeNameMappingGenerator.cpp
Log Message:
-----------
Update UnicodeNameToCodepointGenerator.cpp to refer to Unicode 18 (#206315)
#198255 updated our generated Unicode tables to Unicode 18, but didn't
update any of the string literals or comments that still refer to
Unicode 15.
Commit: 034c462848ebd6a3e5eeb9d6a519656b6ff8445e
https://github.com/llvm/llvm-project/commit/034c462848ebd6a3e5eeb9d6a519656b6ff8445e
Author: Stephen Tozer <stephen.tozer at sony.com>
Date: 2026-06-29 (Mon, 29 Jun 2026)
Changed paths:
M llvm/docs/HowToUpdateDebugInfo.rst
M llvm/include/llvm/IR/DebugLoc.h
M llvm/lib/IR/DebugLoc.cpp
M llvm/lib/Transforms/Utils/Debugify.cpp
Log Message:
-----------
[Debugify] Add finer control over origin stacktrace collection (#206128)
As part of an attempt to streamline DebugLoc coverage/origin tracking
using debugify, this patch adds a command-line flag that is used to
explicitly enable origin-tracking, instead of being always-enabled if
built with the feature. This flag also allows us to specify a list of
passes to enable origin-tracking for, instead of having it enabled
across all passes.
Disabling origin-tracking still incurs the cost of storing a SmallVector
with small size=0 (i.e. 3*sizeof(void*)) in each DebugLoc, but avoids
the tremendous cost of collecting stacktraces at every empty DebugLoc
construction - which occurs very frequently even in builds without
missing coverage.
The motivation for adding this flag is that it allows a Clang built with
origin-tracking enabled to still be used in coverage-tracking mode with
a relatively low cost; since origin-tracking only adds details to the
errors that coverage-tracking detects, this allows a workflow where we
use Clang with coverage-tracking enabled for all compile commands in a
project, and for any compiles that detect missing coverage, the command
is re-run with origin-tracking enabled for all the passes where missing
locations were detected. This ensures we only pay for the very costly
origin-tracking step when it is actually used, making origin-tracking
more efficient in CI and practical in local builds.
Commit: 487a64ad9271591e6e89a5dae35c54ee90bcc931
https://github.com/llvm/llvm-project/commit/487a64ad9271591e6e89a5dae35c54ee90bcc931
Author: Naaz30 <75685808+Naaz30 at users.noreply.github.com>
Date: 2026-06-29 (Mon, 29 Jun 2026)
Changed paths:
M mlir/lib/Dialect/NVGPU/IR/NVGPUDialect.cpp
M mlir/test/Dialect/NVGPU/optimize-shared-memory.mlir
Log Message:
-----------
[NVGPU] Fix crash on ui64 memory space attributes (#204580) (#204676)
Replaced getInt() with getValue() to fix crash on ui64 memory space
attributes.
---------
Co-authored-by: Naazni Yahya <naazniyahya at Naaznis-MacBook-Air.local>
Commit: 27f0f834f0c1136a81452ca0f171352117ba8198
https://github.com/llvm/llvm-project/commit/27f0f834f0c1136a81452ca0f171352117ba8198
Author: Madhur Amilkanthwar <madhura at nvidia.com>
Date: 2026-06-29 (Mon, 29 Jun 2026)
Changed paths:
M llvm/lib/Transforms/Scalar/GVN.cpp
M llvm/test/Transforms/GVN/rle-coerced-noalias.ll
Log Message:
-----------
[GVN] Preserve scoped-alias metadata on coerced loads (#206417)
When forwarding a wider load to a narrower load at an offset, GVN drops
the wider load's metadata. !noalias and !alias.scope are independent of
the load type and offset, and the wider load is not moved and still
accesses the same memory, so they remain valid and are now kept instead
of dropped.
Commit: 2454e575f94955aca9d7f627f24e56d1611f8baa
https://github.com/llvm/llvm-project/commit/2454e575f94955aca9d7f627f24e56d1611f8baa
Author: Timm Baeder <tbaeder at redhat.com>
Date: 2026-06-29 (Mon, 29 Jun 2026)
Changed paths:
M clang/lib/AST/ByteCode/Context.cpp
M clang/lib/AST/ByteCode/EvalEmitter.cpp
M clang/lib/AST/ByteCode/EvalEmitter.h
M clang/test/SemaCXX/static-assert-cxx26.cpp
Log Message:
-----------
[clang][bytecode] Handle null data() ptr in static_assert messages (#206413)
Diagnose the read from a null pointer.
Commit: 40977001fcb190a509897aee592819cdd7e83740
https://github.com/llvm/llvm-project/commit/40977001fcb190a509897aee592819cdd7e83740
Author: David Spickett <david.spickett at arm.com>
Date: 2026-06-29 (Mon, 29 Jun 2026)
Changed paths:
M lldb/docs/resources/lldbgdbremote.md
Log Message:
-----------
[lldb][docs] Note more hex encoded strings in qHostInfo (#202565)
We recently updated this to say triple is hex encoded, so are a few
others.
Commit: 0155172db818f7c3592b96bfc75cb61ae3fd57c0
https://github.com/llvm/llvm-project/commit/0155172db818f7c3592b96bfc75cb61ae3fd57c0
Author: Timm Baeder <tbaeder at redhat.com>
Date: 2026-06-29 (Mon, 29 Jun 2026)
Changed paths:
M clang/lib/AST/ByteCode/Compiler.cpp
M clang/test/AST/ByteCode/cxx17.cpp
Log Message:
-----------
[clang][bytecode] Fix initializing record bases from init lists (#206408)
Differentiating the base initializers from the field initializers just
by their type is obviously nonsense.
Commit: 985bb1a0597959bdc82aae3e16fc8812159ab5e0
https://github.com/llvm/llvm-project/commit/985bb1a0597959bdc82aae3e16fc8812159ab5e0
Author: ioana ghiban <ioana.ghiban at arm.com>
Date: 2026-06-29 (Mon, 29 Jun 2026)
Changed paths:
M mlir/lib/Dialect/MemRef/Transforms/ElideReinterpretCast.cpp
M mlir/test/Dialect/MemRef/elide-reinterpret-cast.mlir
Log Message:
-----------
[memref] Simplify loads from `reinterpret_casts` preserving non-unit dims (#202683)
Extend `memref.load` rewriting from `memref.reinterpret_cast` introduced
in [#188459](https://github.com/llvm/llvm-project/pull/188459) to handle
unit-dimension insertion/removal with multiple preserved non-unit
dimensions. This generalization addresses patterns in the MLGO regalloc
model.
## Example
Before:
```mlir
%view = memref.reinterpret_cast %src
to offset: [0], sizes: [33, 1, 1, 40], strides: [40, 40, 40, 1]
: memref<1x33x40xf32> to memref<33x1x1x40xf32,
strided<[40, 40, 40, 1]>>
%v = memref.load %view[%i, %c0, %c0, %j]
: memref<33x1x1x40xf32, strided<[40, 40, 40, 1]>>
```
After:
```mlir
%v = memref.load %src[%c0, %i, %j] : memref<1x33x40xf32>
```
## Scope
- Requires zero reinterpret-cast offset.
- Requires fully static sizes and strides.
- Preserved non-unit dimensions must have the same static sizes and
appear in the same order.
- Dropped/inserted dimensions must be unit dimensions, so their indices
are known to be zero for in-bounds loads.
This does not try to handle general `memref.reinterpret_cast` operations
with arbitrary offsets, arbitrary stride remapping, or cases where
dropping an index could change semantics.
Correctness is preserved by matching non-unit dimensions between source
and result in order. The rewritten load maps each preserved non-unit
result index back to its corresponding source dimension, and fills
source unit dimensions with zero indices. Constant out-of-bounds indices
are still rejected by the existing debug assertion path.
This PR aims to address part of the patterns raised in
https://github.com/llvm/llvm-project/issues/202536
Assisted-by: Codex (refine implementation + tests). I reviewed all code
and tests before submission.
Commit: 56385af687c3a7a1f67716fb3f819336789a8cab
https://github.com/llvm/llvm-project/commit/56385af687c3a7a1f67716fb3f819336789a8cab
Author: Nikita Popov <npopov at redhat.com>
Date: 2026-06-29 (Mon, 29 Jun 2026)
Changed paths:
M llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp
M llvm/test/CodeGen/AArch64/fmaximum-legalization.ll
A llvm/test/CodeGen/ARM/fp-maximum-legalization.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/bf16-instructions.ll
M llvm/test/CodeGen/NVPTX/math-intrins.ll
M llvm/test/CodeGen/PowerPC/fminimum-fmaximum-f128.ll
M llvm/test/CodeGen/PowerPC/fminimum-fmaximum.ll
A llvm/test/CodeGen/X86/fminimum-fmaximum-i686.ll
M llvm/test/CodeGen/X86/fminimum-fmaximum.ll
Log Message:
-----------
[CodeGen] Fix legalization of minimum/maximum (#206097)
FMINIMUM/FMAXIMUM legalization uses IS_FPCLASS for the signed zero
fixup. However, if IS_FPCLASS needs to be expanded, this requires the
corresponding integer type to be legal, which it often isn't.
Fix this in the same way as FMINIMUMNUM/FMAXIMUMNUM expansion does, by
rounding to float before performing the IS_FPCLASS if necessary.
However, the way the check is performed is a bit different: Here we use
`LHS == RHS ? (isPosZero(LHS) ? LHS : RHS) : Max` for the Max case,
while FMAXIMUMNUM uses `Max == 0.0 ? (isPosZero(LHS) ? LHS : Max) :
Max`.
The reason for the difference is that the variant based on equality is
correct without any additional pre-conditions, while the one based on
the zero check requires equal values to be handled in a specific way
before reaching the zero fixup. (It might make sense to always use the
approach using equality, but that results in a massive additional test
diff, so I omitted it.)
One thing worth pointing out is that if the values are equal but not
signed zeros, picking any value is correct. As such, cases where we only
get a signed zero after rounding are handled correctly.
Fixes https://github.com/llvm/llvm-project/issues/139380.
Fixes https://github.com/llvm/llvm-project/issues/139381.
Fixes https://github.com/llvm/llvm-project/issues/140445.
Previously attempted in https://github.com/llvm/llvm-project/pull/142170
with a different implementation that turned out to be wrong.
Commit: 69d00a89ee9445d693d5294c85c16ae80f558a06
https://github.com/llvm/llvm-project/commit/69d00a89ee9445d693d5294c85c16ae80f558a06
Author: Aiden Grossman <aidengrossman at google.com>
Date: 2026-06-29 (Mon, 29 Jun 2026)
Changed paths:
M llvm/lib/Target/X86/X86.h
M llvm/lib/Target/X86/X86CodeGenPassBuilder.cpp
M llvm/lib/Target/X86/X86ISelDAGToDAG.cpp
R llvm/lib/Target/X86/X86ISelDAGToDAG.h
Log Message:
-----------
[X86][NFC] Remove X86ISelDAGToDAG.h (#206372)
For all the other passes, we have just been putting them inside X86.h,
and this is also what I plan to do for other targets. A separate header
does not make much sense.
Commit: bb6551e28107616882fcf8dd57bd657727abe890
https://github.com/llvm/llvm-project/commit/bb6551e28107616882fcf8dd57bd657727abe890
Author: Kane Wang <wangqiang1 at kylinos.cn>
Date: 2026-06-29 (Mon, 29 Jun 2026)
Changed paths:
M llvm/lib/Target/RISCV/GISel/RISCVLegalizerInfo.cpp
A llvm/test/CodeGen/RISCV/GlobalISel/atomicrmw-and-or-xor.ll
M llvm/test/CodeGen/RISCV/GlobalISel/legalizer-info-validation.mir
A llvm/test/CodeGen/RISCV/GlobalISel/legalizer/legalize-atomicrmw-and-or-xor-rv32.mir
A llvm/test/CodeGen/RISCV/GlobalISel/legalizer/legalize-atomicrmw-and-or-xor-rv64.mir
Log Message:
-----------
[RISCV][GlobalISel] Legalize G_ATOMICRMW_AND/OR/XOR (#205540)
Add legalization support for G_ATOMICRMW_AND, G_ATOMICRMW_OR, and
G_ATOMICRMW_XOR in the RISC-V GlobalISel legalizer. These operations are
grouped with G_ATOMIC_CMPXCHG and G_ATOMICRMW_ADD since they share the
same type signature and legalization behavior:
- With the A extension, the operations are legal at XLEN width.
- Without the A extension, they are lowered to the appropriate
__atomic_fetch_{and,or,xor}_N libcalls.
- Sub-XLEN operations are clamped to XLEN before instruction selection;
the actual memory access size is preserved in the MMO so that
Zabha-enabled targets can select byte/halfword AMO instructions (e.g.
amoand.b, amoor.h).
Tests are added for the legalizer, instruction selection, and end-to-end
assembly output for both RV32 and RV64.
Commit: eacdbf911875988d09e01c37a41018083c845eb9
https://github.com/llvm/llvm-project/commit/eacdbf911875988d09e01c37a41018083c845eb9
Author: David Green <david.green at arm.com>
Date: 2026-06-29 (Mon, 29 Jun 2026)
Changed paths:
M llvm/lib/Target/AArch64/AArch64Processors.td
M llvm/lib/Target/AArch64/AArch64Subtarget.cpp
M llvm/test/Transforms/LoopVectorize/AArch64/interleaving-load-store.ll
Log Message:
-----------
[AArch64] Remove FeatureMaxInterleaveFactor4 from neoverse-v3ae (#190166)
This CPU has 2 vector pipelines, and even though unrolling can sometimes
be beneficial on its own, we usually set the interleaving factor to the
number of vector pipelines. Remove FeatureMaxInterleaveFactor4 so that
the default of 2 is used.
Commit: 3493adc876b18c7c1895bbc09b6a9a26f2710a91
https://github.com/llvm/llvm-project/commit/3493adc876b18c7c1895bbc09b6a9a26f2710a91
Author: Felipe de Azevedo Piovezan <fpiovezan at apple.com>
Date: 2026-06-29 (Mon, 29 Jun 2026)
Changed paths:
M lldb/test/API/functionalities/data-formatter/data-formatter-stl/generic/vbool/TestDataFormatterStdVBool.py
Log Message:
-----------
[lldb] Reduce output of TestDataFormatterStdVBool (#206444)
Tests should not be printing an unbounded amount of data, especially
when said data is the subject of corruption or misinterpretation by the
printer (the formatter, in this case).
This test is currently failing on the matrix bots, with the result that
close to 3GB of text is produced.
Commit: 63d4b487846d2bcd044636bdf905f291d5daf450
https://github.com/llvm/llvm-project/commit/63d4b487846d2bcd044636bdf905f291d5daf450
Author: Gábor Horváth <xazax.hun at gmail.com>
Date: 2026-06-29 (Mon, 29 Jun 2026)
Changed paths:
M clang/include/clang/Sema/AnalysisBasedWarnings.h
M clang/lib/Sema/AnalysisBasedWarnings.cpp
M clang/lib/Sema/SemaDeclCXX.cpp
A clang/test/Sema/LifetimeSafety/dangling-field-implicit-ctor.cpp
Log Message:
-----------
[LifetimeSafety] Analyze synthesized constructors for dangling NSDMIs (#206375)
A default member initializer can bind a view/pointer member to a
temporary that dies at the end of construction. This dangling field was
caught for user-written constructors but silently missed for implicit,
defaulted, and inheriting constructors, whose synthesized bodies never
reach IssueWarnings.
Add IssueLifetimeSafetyWarningsForImplicitFunction, called from
DefineImplicitDefaultConstructor and DefineInheritingConstructor, to run
the lifetime safety analysis on these synthesized bodies. Extract the
shared CFG build options into setLifetimeSafetyCFGBuildOptions, reused
by the TU-end analysis.
Assisted-by: Claude Opus 4.8
Commit: 2cf48dca3338951a7fbe83fecc9e6d35caaa9b11
https://github.com/llvm/llvm-project/commit/2cf48dca3338951a7fbe83fecc9e6d35caaa9b11
Author: Stephen Tozer <stephen.tozer at sony.com>
Date: 2026-06-29 (Mon, 29 Jun 2026)
Changed paths:
M cross-project-tests/debuginfo-tests/dexter/dex/debugger/lldb/LLDB.py
M cross-project-tests/debuginfo-tests/dexter/dex/evaluation/ExpectRewriter.py
A cross-project-tests/debuginfo-tests/dexter/feature_tests/scripts/rewriting/Inputs/rewrite_aggregates_expected.cpp
A cross-project-tests/debuginfo-tests/dexter/feature_tests/scripts/rewriting/Inputs/rewrite_list_aggregates_expected.cpp
A cross-project-tests/debuginfo-tests/dexter/feature_tests/scripts/rewriting/rewrite_aggregates.cpp
A cross-project-tests/debuginfo-tests/dexter/feature_tests/scripts/rewriting/rewrite_list_aggregates.cpp
Log Message:
-----------
[Dexter] Add rewriting for aggregate variables (#202800)
Following on from the previous patch, this patch allows Dexter to write
disaggregated expected values for aggregate variables. Dexter eagerly
tries to disaggregate whenever subvalues are available, but will
fallback to the root/parent value if all available subvalues are
unavailable.
NB: Each test in this patch has a corresponding "expected" file, which
is almost identical (including the `RUN` lines), and exists to be
`diff`'d against the output of Dexter's script generation.
Commit: 8794091ba9b4a31e4c5c8e563418264db588f4bb
https://github.com/llvm/llvm-project/commit/8794091ba9b4a31e4c5c8e563418264db588f4bb
Author: Fangrui Song <i at maskray.me>
Date: 2026-06-29 (Mon, 29 Jun 2026)
Changed paths:
M llvm/include/llvm/Support/Format.h
M llvm/include/llvm/Support/raw_ostream.h
M llvm/lib/Support/raw_ostream.cpp
M llvm/lib/Target/X86/MCTargetDesc/X86MachObjectWriter.cpp
M llvm/tools/llvm-nm/llvm-nm.cpp
Log Message:
-----------
[raw_ostream,Format] Shrink format() callback thunks (#206374)
Follow-up to #206319: `operator<<(raw_ostream &OS, format_object<Ts...>
Fmt)` calls `snprintf` and then normalizes the result. Move the
renormalization into `raw_ostream::operator<<`, shrinking each
per-signature callback thunk to a bare snprintf tail call.
`snprintf` is C99-conformant everywhere (glibc<2.1, which was
non-conformant, is unsupported; On Windows, the minimum requirement,
Visual Studio 2019 16.8, provides `snprintf`). Drop the `_snprintf`
path, size the retry buffer to the exact N + 1 it reports, and bail on a
negative (genuine error) result instead of doubling forever.
Commit: 2d06fcc078dd2f382becbf88416a2f6fbe36296a
https://github.com/llvm/llvm-project/commit/2d06fcc078dd2f382becbf88416a2f6fbe36296a
Author: Timm Baeder <tbaeder at redhat.com>
Date: 2026-06-29 (Mon, 29 Jun 2026)
Changed paths:
M clang/lib/AST/ByteCode/DynamicAllocator.cpp
M clang/lib/AST/ByteCode/DynamicAllocator.h
M clang/lib/AST/ByteCode/Interp.cpp
M clang/lib/AST/ByteCode/InterpBuiltin.cpp
M clang/test/AST/ByteCode/new-delete.cpp
Log Message:
-----------
[clang][bytecode] Fix an assertion failure with double deletions (#206424)
See the comment.
Commit: e04f5dd223c9e69c339f87c0af04e7fb4c77ebdc
https://github.com/llvm/llvm-project/commit/e04f5dd223c9e69c339f87c0af04e7fb4c77ebdc
Author: Timur Golubovich <timur.golubovich at intel.com>
Date: 2026-06-29 (Mon, 29 Jun 2026)
Changed paths:
M llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp
A llvm/test/Transforms/LoopStrengthReduce/AMDGPU/lsr-icmpzero-mixed-ptr-width.ll
Log Message:
-----------
[LSR] Fix ICmpZero type mismatch with mixed-width pointers (#206193)
Fix regression from 85ed098a6d5d where ICmpZero produced a
type-mismatched icmp (i64 vs i32) when the loop has pointer IVs of
different widths. Move the pointer-to-integer override after IntTy is
computed so both icmp operands match the IV.
Commit: ea595ebdf2bd7098dc32b1b5bc74479317520601
https://github.com/llvm/llvm-project/commit/ea595ebdf2bd7098dc32b1b5bc74479317520601
Author: Luke Lau <luke at igalia.com>
Date: 2026-06-29 (Mon, 29 Jun 2026)
Changed paths:
M llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
M llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
M llvm/test/Transforms/LoopVectorize/VPlan/vplan-print-before-after-all.ll
Log Message:
-----------
[VPlan] Run addMiddleCheck before early exit handling. NFC (#206244)
Early exits with stores need to touch up the vector trip count used in
the middle block terminator. Currently we eagerly create the branch in
handlEarlyExits, but that means we need to avoid addMiddleCheck
afterwards since we'll already have a branch.
We can move addMiddleCheck before handlEarlyExits to create the branch
up front and then modify it for early exits with stores. This avoids the
need to conditionally run addMiddleCheck based on the
UncountableExitStyle, which makes it easier to compute the style purely
in VPlan later.
Commit: 5d24d4fe0031f026856e70e0b33687c13b7d277c
https://github.com/llvm/llvm-project/commit/5d24d4fe0031f026856e70e0b33687c13b7d277c
Author: Pierre van Houtryve <pierre.vanhoutryve at amd.com>
Date: 2026-06-29 (Mon, 29 Jun 2026)
Changed paths:
M llvm/test/CodeGen/AMDGPU/mixed-vmem-types.ll
M llvm/test/CodeGen/AMDGPU/waitcnt-bvh.mir
Log Message:
-----------
[AMDGPU][InsertWaitCnts] Improve testing coverage for VMemTypes (#206439)
The next patch will get rid of VMEMTypes, but some of its functionality
was not tested well. This patch adds more tests to fix gaps in testing
so that the next patch in the stack can be shown to have no impact
on codegen.
The 2 issues I had noticed was that we didn't have a test for mixed
vmem types w/ BVH, only for sampler; we also did not have a test
that was affected by `clearVmemTypes`, so removing that call
had no effect.
This patch adds tests for both cases.
Commit: acd0f6fa1eb5b5cf78ddbd3281cdcf2e1e9587d3
https://github.com/llvm/llvm-project/commit/acd0f6fa1eb5b5cf78ddbd3281cdcf2e1e9587d3
Author: Jakob Koschel <jakobkoschel at google.com>
Date: 2026-06-29 (Mon, 29 Jun 2026)
Changed paths:
M compiler-rt/include/sanitizer/safestack_interface.h
M compiler-rt/lib/safestack/safestack.cpp
M compiler-rt/test/safestack/sigaltstack.c
Log Message:
-----------
[SafeStack] Allocate unsafe sigaltstack (#206463)
PR https://github.com/llvm/llvm-project/pull/196969 was approved and
merged but with `spr` the wrong base branch was set.
This merges the approved changes into `main`
---------
Co-authored-by: Paul Walker <paul.walker at arm.com>
Co-authored-by: Arseniy Obolenskiy <arseniy.obolenskiy at amd.com>
Commit: cf1f0e9d82abeb5b2283aee1614d98288403f4fe
https://github.com/llvm/llvm-project/commit/cf1f0e9d82abeb5b2283aee1614d98288403f4fe
Author: Lucas Mellone <github.snugness349 at passinbox.com>
Date: 2026-06-29 (Mon, 29 Jun 2026)
Changed paths:
M libcxx/include/__ranges/adjacent_view.h
A libcxx/test/libcxx/ranges/range.adaptors/range.adjacent/nodiscard.verify.cpp
Log Message:
-----------
[libc++][ranges] Applied [[nodiscard]] to `adjacent_view` (#205206)
[[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/range.adjacent
Towards https://github.com/llvm/llvm-project/issues/172124
---------
Co-authored-by: A. Jiang <de34 at live.cn>
Co-authored-by: Hristo Hristov <zingam at outlook.com>
Commit: 787619a4072e0eb7887357d5d284e86c17548aed
https://github.com/llvm/llvm-project/commit/787619a4072e0eb7887357d5d284e86c17548aed
Author: Steffen Larsen <sholstla at amd.com>
Date: 2026-06-29 (Mon, 29 Jun 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPULateCodeGenPrepare.cpp
A llvm/test/CodeGen/AMDGPU/issue196582-late-codegenprepare-crash-non-po2.ll
Log Message:
-----------
[AMDGPU] Fix bit-packing condition in LiveRegOptimizer (#201520)
This commit changes the condition for determining the eligibility for
bit-packing in LiveRegOptimizer from requiring that the scalar target
type is larger than the source type to instead require that the target
is a multiple of it.
Fixes https://github.com/llvm/llvm-project/issues/196582.
---------
Signed-off-by: Steffen Holst Larsen <sholstla at amd.com>
Commit: e60b4b69dc72b1f7d9faa2e811ae161e9aef78e4
https://github.com/llvm/llvm-project/commit/e60b4b69dc72b1f7d9faa2e811ae161e9aef78e4
Author: Timm Baeder <tbaeder at redhat.com>
Date: 2026-06-29 (Mon, 29 Jun 2026)
Changed paths:
M clang/lib/AST/ByteCode/Interp.cpp
M clang/test/AST/ByteCode/dynamic-cast.cpp
Log Message:
-----------
[clang][bytecode] Fix an assertion failure in dynamic_cast handling (#206447)
If `Ptr` is already a root pointer, the `getBase()` call ran into an
assertion. Fix this by moving the check to the start of the loop.
Commit: f1caacf406bbbf26a184e1c08f7cd716a5898d61
https://github.com/llvm/llvm-project/commit/f1caacf406bbbf26a184e1c08f7cd716a5898d61
Author: Arseniy Obolenskiy <arseniy.obolenskiy at amd.com>
Date: 2026-06-29 (Mon, 29 Jun 2026)
Changed paths:
M llvm/lib/Target/SPIRV/SPIRVBuiltins.cpp
Log Message:
-----------
[SPIR-V] Reuse getIConstVal instead of custom one where applicable (NFC) (#206131)
Commit: 5c158012815d6f5d9ac5ec71a1273773ca5d070b
https://github.com/llvm/llvm-project/commit/5c158012815d6f5d9ac5ec71a1273773ca5d070b
Author: Raphael Isemann <rise at apple.com>
Date: 2026-06-29 (Mon, 29 Jun 2026)
Changed paths:
M lldb/source/Commands/CommandCompletions.cpp
M lldb/test/API/functionalities/completion/TestCompletion.py
Log Message:
-----------
[lldb] Show descriptions for settings (#206044)
This patch shows a description next to each settings completion.
Commit: 163653052803b8fd9d9f5fb2eeeaceddbae1fb1f
https://github.com/llvm/llvm-project/commit/163653052803b8fd9d9f5fb2eeeaceddbae1fb1f
Author: Mirko Brkušanin <Mirko.Brkusanin at amd.com>
Date: 2026-06-29 (Mon, 29 Jun 2026)
Changed paths:
M clang/include/clang/Basic/OffloadArch.h
M clang/lib/Basic/OffloadArch.cpp
M clang/lib/CodeGen/CGOpenMPRuntimeGPU.cpp
M clang/test/Driver/amdgpu-macros.cl
M clang/test/Driver/amdgpu-mcpu.cl
M clang/test/Driver/offload-arch-translation-amdgpu.cu
M clang/test/Misc/target-invalid-cpu-note/amdgcn.c
M clang/test/Misc/target-invalid-cpu-note/nvptx.c
M llvm/docs/AMDGPUUsage.rst
M llvm/include/llvm/BinaryFormat/ELF.h
M llvm/include/llvm/TargetParser/AMDGPUTargetParser.def
M llvm/include/llvm/TargetParser/AMDGPUTargetParser.h
M llvm/lib/Target/AMDGPU/AMDGPU.td
M llvm/lib/Target/AMDGPU/GCNProcessors.td
M llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUTargetStreamer.cpp
M llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.h
M llvm/lib/TargetParser/AMDGPUTargetParser.cpp
M llvm/test/CodeGen/AMDGPU/directive-amdgcn-target.ll
M llvm/test/CodeGen/AMDGPU/elf-header-flags-mach.ll
M llvm/test/CodeGen/AMDGPU/generic-targets-require-v6.ll
M llvm/test/CodeGen/AMDGPU/hsa-generic-target-features.ll
M llvm/test/Object/AMDGPU/elf-header-flags-mach.yaml
M llvm/test/tools/llvm-objdump/ELF/AMDGPU/subtarget.ll
M llvm/test/tools/llvm-readobj/ELF/AMDGPU/elf-headers.test
M offload/plugins-nextgen/common/src/Utils/ELF.cpp
Log Message:
-----------
[AMDGPU] Add more generic targets (#205363)
gfx11-7-generic = 0x062
gfx13-generic = 0x063
Co-Authored-By: Claude noreply at anthropic.com
Commit: f8132d8a033ee1e0ff9a2d3cf4d2da04cd63e5e8
https://github.com/llvm/llvm-project/commit/f8132d8a033ee1e0ff9a2d3cf4d2da04cd63e5e8
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2026-06-29 (Mon, 29 Jun 2026)
Changed paths:
M llvm/lib/Target/X86/X86ISelLowering.cpp
M llvm/test/CodeGen/X86/combine-reductions.ll
Log Message:
-----------
[X86] Fold broadcast(truncate(extract_vector_elt(x, 0))) -> bitcast(broadcast(x)) (#206461)
Fixes regressions in #205098
Commit: 2fbe136ff25870ce61af0331704409e8c69a3ce9
https://github.com/llvm/llvm-project/commit/2fbe136ff25870ce61af0331704409e8c69a3ce9
Author: Abhina Sree <Abhina.Sreeskantharajan at ibm.com>
Date: 2026-06-29 (Mon, 29 Jun 2026)
Changed paths:
M clang/docs/ReleaseNotes.rst
M clang/lib/Frontend/FrontendAction.cpp
M clang/lib/Lex/PPDirectives.cpp
M clang/lib/Lex/Pragma.cpp
A clang/test/Frontend/linemarker-invalid-escape.c
M clang/test/Preprocessor/line-directive-output.c
M clang/test/Preprocessor/line-directive.c
M clang/test/Preprocessor/pragma_module.c
Log Message:
-----------
Line and digit directives, OriginalFileName, ModuleName should be unevaluated strings (#201413)
Based on
https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2023/p2361r6.pdf,
line and digit directives should be unevaluated strings. This patch
changes the HandleLineDirective and HandleDigitDirective to parse
strings as unevaluated string literals and fixes the testcase to not
have escape sequences.
Commit: c06d04719cd6d127db25cf38c328cda2aa27f8a2
https://github.com/llvm/llvm-project/commit/c06d04719cd6d127db25cf38c328cda2aa27f8a2
Author: Aaron Ballman <aaron at aaronballman.com>
Date: 2026-06-29 (Mon, 29 Jun 2026)
Changed paths:
M clang/docs/ReleaseNotes.rst
M clang/include/clang/Basic/DiagnosticSemaKinds.td
M clang/lib/Sema/SemaChecking.cpp
M clang/test/Sema/attr-const-pure.c
Log Message:
-----------
Diagnose noreturn calls from a const or pure function (#206134)
The const and pure functions add the WillReturn LLVM IR attribute which
require the function to return. Calling a noreturn function is UB, so it
is now being diagnosed unless the call is known to be unevaluated.
This diagnostic is enabled by default.
Fixes #129022
Commit: bb9f0817a9c58f715ac0b0d615860c408eb78236
https://github.com/llvm/llvm-project/commit/bb9f0817a9c58f715ac0b0d615860c408eb78236
Author: Stephen Tozer <stephen.tozer at sony.com>
Date: 2026-06-29 (Mon, 29 Jun 2026)
Changed paths:
M cross-project-tests/debuginfo-tests/dexter/dex/evaluation/ExpectMatch.py
M cross-project-tests/debuginfo-tests/dexter/dex/evaluation/RunMatch.py
M cross-project-tests/debuginfo-tests/dexter/dex/test_script/Nodes.py
A cross-project-tests/debuginfo-tests/dexter/feature_tests/scripts/evaluation/eval_address.cpp
A cross-project-tests/debuginfo-tests/dexter/feature_tests/scripts/parser/invalid-address.test
A cross-project-tests/debuginfo-tests/dexter/feature_tests/scripts/parser/parse-address.test
Log Message:
-----------
[Dexter] Add !address node (#202801)
Adds a node type for Dexter that allows checking abstract labels instead
of concrete addresses. Each address node has a label and optional
offset, and the first time during evaluation that a given address label
is matched against a valid pointer value, the address label will be
assigned a value that matches the seen address (adjusting for any
offset). From that point, the resolved address value will be used for
the remainder of the test evaluation.
Commit: 2852b8beb9a87e72f6eccb297bbe1f0c8fcf7083
https://github.com/llvm/llvm-project/commit/2852b8beb9a87e72f6eccb297bbe1f0c8fcf7083
Author: Arseniy Obolenskiy <arseniy.obolenskiy at amd.com>
Date: 2026-06-29 (Mon, 29 Jun 2026)
Changed paths:
M llvm/lib/Target/SPIRV/SPIRVRegularizer.cpp
M llvm/test/CodeGen/SPIRV/passes/SPIRVRegularizer-i1-icmp.ll
Log Message:
-----------
[SPIR-V] Extend runLowerI1Comparisons to cover vector i1 types (#206409)
Commit: c4dafb0c3bda13f40ded1e0f3f018dd5ec529fbb
https://github.com/llvm/llvm-project/commit/c4dafb0c3bda13f40ded1e0f3f018dd5ec529fbb
Author: Connector Switch <c8ef at outlook.com>
Date: 2026-06-29 (Mon, 29 Jun 2026)
Changed paths:
M libcxx/docs/Status/Cxx26Issues.csv
M libcxx/test/std/localization/locale.categories/category.numeric/locale.nm.put/facet.num.put.members/put_double.pass.cpp
M libcxx/test/std/localization/locale.categories/category.numeric/locale.nm.put/facet.num.put.members/put_long_double.pass.cpp
Log Message:
-----------
[libc++] Mark LWG4084 as resolved (#206224)
Closes https://github.com/llvm/llvm-project/issues/118346
Commit: 09d1b945b52e9cdb318842a051bab8fbc3d83d9f
https://github.com/llvm/llvm-project/commit/09d1b945b52e9cdb318842a051bab8fbc3d83d9f
Author: Nikita Popov <npopov at redhat.com>
Date: 2026-06-29 (Mon, 29 Jun 2026)
Changed paths:
M llvm/lib/Transforms/Scalar/MemCpyOptimizer.cpp
M llvm/test/Transforms/MemCpyOpt/memset-memmove-redundant-memmove.ll
Log Message:
-----------
[MemCpyOpt] Fix incorrect size check in memmove of memset opt (#206451)
We were only checking that the memset is at least as large as the
memmove size, but not accounting for the fact that the memmove occurs at
an offset.
Commit: ad2fbea7979a768b7525a895152322460cad8114
https://github.com/llvm/llvm-project/commit/ad2fbea7979a768b7525a895152322460cad8114
Author: Nikolas Klauser <nikolasklauser at berlin.de>
Date: 2026-06-29 (Mon, 29 Jun 2026)
Changed paths:
M libcxx/include/__algorithm/clamp.h
M libcxx/include/__algorithm/lexicographical_compare_three_way.h
M libcxx/include/__algorithm/out_value_result.h
M libcxx/include/__algorithm/radix_sort.h
M libcxx/include/__algorithm/ranges_copy_n.h
M libcxx/include/__algorithm/three_way_comp_ref_type.h
M libcxx/include/__atomic/atomic_sync.h
M libcxx/include/__atomic/atomic_sync_timed.h
M libcxx/include/__atomic/atomic_waitable_traits.h
M libcxx/include/__atomic/floating_point_helper.h
M libcxx/include/__bit/bit_cast.h
M libcxx/include/__bit/bit_ceil.h
M libcxx/include/__charconv/to_chars.h
M libcxx/include/__chrono/gps_clock.h
M libcxx/include/__chrono/steady_clock.h
M libcxx/include/__chrono/tai_clock.h
M libcxx/include/__chrono/time_zone.h
M libcxx/include/__chrono/time_zone_link.h
M libcxx/include/__chrono/tzdb.h
M libcxx/include/__chrono/tzdb_list.h
M libcxx/include/__chrono/utc_clock.h
M libcxx/include/__chrono/zoned_time.h
M libcxx/include/__compare/common_comparison_category.h
M libcxx/include/__compare/compare_three_way.h
M libcxx/include/__compare/compare_three_way_result.h
M libcxx/include/__compare/ordering.h
M libcxx/include/__compare/synth_three_way.h
M libcxx/include/__compare/three_way_comparable.h
M libcxx/include/__concepts/arithmetic.h
M libcxx/include/__concepts/assignable.h
M libcxx/include/__concepts/boolean_testable.h
M libcxx/include/__concepts/class_or_enum.h
M libcxx/include/__concepts/common_reference_with.h
M libcxx/include/__concepts/comparison_common_type.h
M libcxx/include/__concepts/constructible.h
M libcxx/include/__concepts/convertible_to.h
M libcxx/include/__concepts/copyable.h
M libcxx/include/__concepts/derived_from.h
M libcxx/include/__concepts/destructible.h
M libcxx/include/__concepts/different_from.h
M libcxx/include/__concepts/equality_comparable.h
M libcxx/include/__concepts/invocable.h
M libcxx/include/__concepts/movable.h
M libcxx/include/__concepts/predicate.h
M libcxx/include/__concepts/regular.h
M libcxx/include/__concepts/relation.h
M libcxx/include/__concepts/same_as.h
M libcxx/include/__concepts/semiregular.h
M libcxx/include/__concepts/swappable.h
M libcxx/include/__concepts/totally_ordered.h
M libcxx/include/__condition_variable/condition_variable.h
M libcxx/include/__cstddef/max_align_t.h
M libcxx/include/__format/container_adaptor.h
M libcxx/include/__format/enable_insertable.h
M libcxx/include/__format/escaped_output_table.h
M libcxx/include/__format/fmt_pair_like.h
M libcxx/include/__format/formatter_tuple.h
M libcxx/include/__format/range_default_formatter.h
M libcxx/include/__format/range_format.h
M libcxx/include/__format/range_formatter.h
M libcxx/include/__functional/binary_negate.h
M libcxx/include/__functional/binder1st.h
M libcxx/include/__functional/binder2nd.h
M libcxx/include/__functional/compose.h
M libcxx/include/__functional/invoke.h
M libcxx/include/__functional/mem_fun_ref.h
M libcxx/include/__functional/perfect_forward.h
M libcxx/include/__functional/pointer_to_binary_function.h
M libcxx/include/__functional/pointer_to_unary_function.h
M libcxx/include/__functional/ranges_operations.h
M libcxx/include/__functional/unary_negate.h
M libcxx/include/__fwd/format.h
M libcxx/include/__fwd/span.h
M libcxx/include/__fwd/variant.h
M libcxx/include/__iterator/data.h
M libcxx/include/__iterator/default_sentinel.h
M libcxx/include/__iterator/empty.h
M libcxx/include/__iterator/incrementable_traits.h
M libcxx/include/__iterator/iter_move.h
M libcxx/include/__iterator/iter_swap.h
M libcxx/include/__iterator/move_sentinel.h
M libcxx/include/__iterator/ranges_iterator_traits.h
M libcxx/include/__iterator/readable_traits.h
M libcxx/include/__iterator/reverse_access.h
M libcxx/include/__iterator/size.h
M libcxx/include/__math/special_functions.h
M libcxx/include/__mdspan/aligned_accessor.h
M libcxx/include/__memory/compressed_pair.h
M libcxx/include/__memory/inout_ptr.h
M libcxx/include/__memory/out_ptr.h
M libcxx/include/__memory/raw_storage_iterator.h
M libcxx/include/__memory/uses_allocator_construction.h
M libcxx/include/__node_handle
M libcxx/include/__numeric/ranges_iota.h
M libcxx/include/__numeric/reduce.h
M libcxx/include/__numeric/transform_reduce.h
M libcxx/include/__random/random_device.h
M libcxx/include/__random/uniform_random_bit_generator.h
M libcxx/include/__ranges/access.h
M libcxx/include/__ranges/all.h
M libcxx/include/__ranges/concepts.h
M libcxx/include/__ranges/container_compatible_range.h
M libcxx/include/__ranges/dangling.h
M libcxx/include/__ranges/data.h
M libcxx/include/__ranges/elements_of.h
M libcxx/include/__ranges/empty.h
M libcxx/include/__ranges/enable_borrowed_range.h
M libcxx/include/__ranges/enable_view.h
M libcxx/include/__ranges/from_range.h
M libcxx/include/__ranges/owning_view.h
M libcxx/include/__ranges/range_adaptor.h
M libcxx/include/__ranges/ref_view.h
M libcxx/include/__ranges/repeat_view.h
M libcxx/include/__ranges/size.h
M libcxx/include/__ranges/subrange.h
M libcxx/include/__ranges/view_interface.h
M libcxx/include/__ranges/views.h
M libcxx/include/__stop_token/atomic_unique_lock.h
M libcxx/include/__stop_token/intrusive_list_view.h
M libcxx/include/__stop_token/intrusive_shared_ptr.h
M libcxx/include/__stop_token/stop_callback.h
M libcxx/include/__stop_token/stop_state.h
M libcxx/include/__stop_token/stop_token.h
M libcxx/include/__thread/id.h
M libcxx/include/__tuple/sfinae_helpers.h
M libcxx/include/__tuple/tuple_like.h
M libcxx/include/__tuple/tuple_like_no_subrange.h
M libcxx/include/__type_traits/common_reference.h
M libcxx/include/__type_traits/has_unique_object_representation.h
M libcxx/include/__type_traits/is_implicit_lifetime.h
M libcxx/include/__type_traits/is_implicitly_default_constructible.h
M libcxx/include/__type_traits/is_literal_type.h
M libcxx/include/__type_traits/reference_converts_from_temporary.h
M libcxx/include/__type_traits/result_of.h
M libcxx/include/__utility/as_const.h
M libcxx/include/__utility/forward_like.h
M libcxx/include/__utility/in_place.h
M libcxx/include/__variant/monostate.h
M libcxx/include/__verbose_trap
M libcxx/include/any
M libcxx/include/charconv
M libcxx/include/cuchar
M libcxx/include/experimental/memory
M libcxx/include/initializer_list
M libcxx/include/mutex
M libcxx/include/print
M libcxx/include/scoped_allocator
M libcxx/include/source_location
M libcxx/include/span
M libcxx/include/syncstream
M libcxx/include/tuple
M libcxx/include/variant
M libcxx/test/tools/clang_tidy_checks/CMakeLists.txt
A libcxx/test/tools/clang_tidy_checks/empty_namespaces.cpp
A libcxx/test/tools/clang_tidy_checks/empty_namespaces.hpp
M libcxx/test/tools/clang_tidy_checks/libcpp_module.cpp
M libcxx/utils/generate_escaped_output_table.py
Log Message:
-----------
[libc++] Consistently use version guards outside namespace macros (#181136)
This has the benefit of consistent placement for these macros (outside
the namespace, not inside it). This, in turn, makes it more obvious that
the condition applies to the entire namespace scope. Compile times are
also reduced a bit, since the compiler doesn't have to open a namespace
just to close it again.
This is enforced with a clang-tidy check.
As a drive-by this also fixes a few macro comments.
Commit: 195ca1f266d88b5f49fbb5a4612214a20b48886b
https://github.com/llvm/llvm-project/commit/195ca1f266d88b5f49fbb5a4612214a20b48886b
Author: Jonas Paulsson <paulson1 at linux.ibm.com>
Date: 2026-06-29 (Mon, 29 Jun 2026)
Changed paths:
M llvm/lib/Target/SystemZ/SystemZMachineScheduler.cpp
M llvm/test/CodeGen/SystemZ/args-22.ll
M llvm/test/CodeGen/SystemZ/atomicrmw-ops-i128.ll
M llvm/test/CodeGen/SystemZ/bswap-09.ll
M llvm/test/CodeGen/SystemZ/bswap-10.ll
M llvm/test/CodeGen/SystemZ/call-zos-vec.ll
M llvm/test/CodeGen/SystemZ/canonicalize-vars.ll
M llvm/test/CodeGen/SystemZ/codegenprepare-sink-and-for-tm.ll
M llvm/test/CodeGen/SystemZ/dag-combine-05.ll
M llvm/test/CodeGen/SystemZ/dag-combine-07.ll
M llvm/test/CodeGen/SystemZ/fold-masked-merge.ll
M llvm/test/CodeGen/SystemZ/fp-copysign-03.ll
M llvm/test/CodeGen/SystemZ/fp-half-vector-binops.ll
M llvm/test/CodeGen/SystemZ/fp-half-vector-fcmp-select.ll
M llvm/test/CodeGen/SystemZ/fp-half.ll
M llvm/test/CodeGen/SystemZ/inline-asm-fp-int-casting-explicit-regs-zEC12.ll
M llvm/test/CodeGen/SystemZ/inline-asm-fp-int-casting-zEC12.ll
M llvm/test/CodeGen/SystemZ/int-cmp-65.ll
M llvm/test/CodeGen/SystemZ/int-conv-14.ll
M llvm/test/CodeGen/SystemZ/int-conv-15.ll
M llvm/test/CodeGen/SystemZ/int-mul-13.ll
M llvm/test/CodeGen/SystemZ/int-uadd-14.ll
M llvm/test/CodeGen/SystemZ/int-usub-13.ll
M llvm/test/CodeGen/SystemZ/knownbits-intrinsics-binop.ll
M llvm/test/CodeGen/SystemZ/misched-prera-cmp-elim.mir
M llvm/test/CodeGen/SystemZ/misched-prera-latencies.mir
M llvm/test/CodeGen/SystemZ/misched-prera-loads.mir
M llvm/test/CodeGen/SystemZ/regcoal-subranges-update.mir
M llvm/test/CodeGen/SystemZ/regcoal_remat_empty_subrange.ll
M llvm/test/CodeGen/SystemZ/risbg-04.ll
M llvm/test/CodeGen/SystemZ/rot-03.ll
M llvm/test/CodeGen/SystemZ/shift-12.ll
M llvm/test/CodeGen/SystemZ/shift-13.ll
M llvm/test/CodeGen/SystemZ/shift-14.ll
M llvm/test/CodeGen/SystemZ/shift-15.ll
M llvm/test/CodeGen/SystemZ/shift-16.ll
M llvm/test/CodeGen/SystemZ/shift-17.ll
M llvm/test/CodeGen/SystemZ/signbits-intrinsics-binop.ll
M llvm/test/CodeGen/SystemZ/soft-float-args.ll
M llvm/test/CodeGen/SystemZ/store_nonbytesized_vecs.ll
M llvm/test/CodeGen/SystemZ/vec-args-04.ll
M llvm/test/CodeGen/SystemZ/vec-cmp-cmp-logic-select.ll
M llvm/test/CodeGen/SystemZ/vec-cmpsel-01.ll
M llvm/test/CodeGen/SystemZ/vec-eval.ll
M llvm/test/CodeGen/SystemZ/vec-perm-12.ll
M llvm/test/CodeGen/SystemZ/vec-trunc-to-i16.ll
M llvm/test/CodeGen/SystemZ/vector-constrained-fp-intrinsics.ll
Log Message:
-----------
[SystemZ] Limit latency scheduling to SUs with latency of at least 5. (#206459)
The latency reduction heuristic is highly effective, but it seems preferred
to not "move everything around", but rather focus on instructions that have
somewhat longer latencies. The basic idea behind this is that the input
order is fairly good to begin with and not just "any random order", so it
should not be disturbed unnecessarily.
Commit: 12b20b36737094b1c521adff0c8f58aaaf2f41fb
https://github.com/llvm/llvm-project/commit/12b20b36737094b1c521adff0c8f58aaaf2f41fb
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2026-06-29 (Mon, 29 Jun 2026)
Changed paths:
M llvm/test/CodeGen/X86/phaddsub-extract.ll
M llvm/test/Transforms/PhaseOrdering/X86/horizontal-reduce-add.ll
Log Message:
-----------
[X86] Move more vector.reduce.add subvector pattern tests to PhaseOrdering/X86/horizontal-reduce-add.ll (#206467)
CodeGen test coverage is already in vector-reduce-add-subvector.ll
Commit: 531b3bdd03977db8a67a87484ff2051a87744160
https://github.com/llvm/llvm-project/commit/531b3bdd03977db8a67a87484ff2051a87744160
Author: Rahul Joshi <rjoshi at nvidia.com>
Date: 2026-06-29 (Mon, 29 Jun 2026)
Changed paths:
M llvm/lib/Bitcode/Reader/BitcodeReader.cpp
Log Message:
-----------
[NFC][LLVM] Minor code cleanup in BitcodeReader (#206105)
Use structured binding in the range for loop for iterating over upgraded
intrinsics. Also `UpdatedIntrinsicMap` type alias is used just once, so
eliminate it.
Commit: 829440b9e63eb3127e2af595aa45fa4b28b7a49a
https://github.com/llvm/llvm-project/commit/829440b9e63eb3127e2af595aa45fa4b28b7a49a
Author: Tim Corringham <timothy.corringham at amd.com>
Date: 2026-06-29 (Mon, 29 Jun 2026)
Changed paths:
M clang/lib/CodeGen/Targets/DirectX.cpp
M clang/lib/CodeGen/Targets/SPIR.cpp
M clang/lib/Sema/HLSLBuiltinTypeDeclBuilder.cpp
M clang/lib/Sema/HLSLBuiltinTypeDeclBuilder.h
M clang/lib/Sema/HLSLExternalSemaSource.cpp
M clang/lib/Sema/SemaHLSL.cpp
A clang/test/AST/HLSL/Texture2DArray-scalar-AST.hlsl
A clang/test/AST/HLSL/Texture2DArray-shorthand-AST.hlsl
A clang/test/AST/HLSL/Texture2DArray-vector-AST.hlsl
A clang/test/CodeGenHLSL/resources/Texture2DArray-CalculateLevelOfDetail.hlsl
A clang/test/CodeGenHLSL/resources/Texture2DArray-Gather.hlsl
A clang/test/CodeGenHLSL/resources/Texture2DArray-GetDimensions.hlsl
A clang/test/CodeGenHLSL/resources/Texture2DArray-Load.hlsl
A clang/test/CodeGenHLSL/resources/Texture2DArray-Mips.hlsl
A clang/test/CodeGenHLSL/resources/Texture2DArray-Sample.hlsl
A clang/test/CodeGenHLSL/resources/Texture2DArray-SampleBias.hlsl
A clang/test/CodeGenHLSL/resources/Texture2DArray-SampleCmp.hlsl
A clang/test/CodeGenHLSL/resources/Texture2DArray-SampleCmpLevelZero.hlsl
A clang/test/CodeGenHLSL/resources/Texture2DArray-SampleGrad.hlsl
A clang/test/CodeGenHLSL/resources/Texture2DArray-SampleLevel.hlsl
A clang/test/CodeGenHLSL/resources/Texture2DArray-Subscript.hlsl
A clang/test/CodeGenHLSL/resources/Texture2DArray-default-explicit-binding.hlsl
A clang/test/CodeGenHLSL/resources/Texture2DArray-default.hlsl
A clang/test/CodeGenHLSL/resources/Texture2DArray-shorthand-contexts.hlsl
A clang/test/SemaHLSL/Resources/Texture2DArray-CalculateLevelOfDetail.hlsl
A clang/test/SemaHLSL/Resources/Texture2DArray-GetDimensions.hlsl
A clang/test/SemaHLSL/Resources/Texture2DArray-SampleBias.hlsl
A clang/test/SemaHLSL/Resources/Texture2DArray-SampleCmp.hlsl
A clang/test/SemaHLSL/Resources/Texture2DArray-SampleCmpLevelZero.hlsl
A clang/test/SemaHLSL/Resources/Texture2DArray-SampleGrad.hlsl
A clang/test/SemaHLSL/Resources/Texture2DArray-SampleLevel.hlsl
A clang/test/SemaHLSL/Resources/Texture2DArray-Sema.hlsl
A clang/test/SemaHLSL/Resources/Texture2DArray-Subscript.hlsl
A clang/test/SemaHLSL/Texture2DArray-Gather.hlsl
A clang/test/SemaHLSL/Texture2DArray-GatherCmp-Vulkan.hlsl
A clang/test/SemaHLSL/Texture2DArray-Load-errors.hlsl
A clang/test/SemaHLSL/Texture2DArray-mips-errors.hlsl
A llvm/test/CodeGen/DirectX/Texture2DArray-SampleBias.ll
A llvm/test/CodeGen/DirectX/Texture2DArray-SampleGrad.ll
A llvm/test/CodeGen/DirectX/Texture2DArray-annotateHandle.ll
A llvm/test/CodeGen/SPIRV/hlsl-resources/Gather2DArray.ll
A llvm/test/CodeGen/SPIRV/hlsl-resources/LoadLevel2DArray.ll
A llvm/test/CodeGen/SPIRV/hlsl-resources/Sample2DArray.ll
A llvm/test/CodeGen/SPIRV/hlsl-resources/SampleGrad2DArray.ll
Log Message:
-----------
[HLSL] Implement Texture2DArray for HLSL (#203951)
Add support for the Texture2DArray type, builtin argument checking,
codegen, and associated tests.
This change also implements the parts of #194910 which could not be
tested without a HLSL texture array type.
Assisted by Cursor
Fixes #194944
---------
Co-authored-by: Tim Corringham <tcorring at amd.com>
Commit: cdef97000c16bcac9803795ce65396d77c7a1b2e
https://github.com/llvm/llvm-project/commit/cdef97000c16bcac9803795ce65396d77c7a1b2e
Author: Stephen Tozer <stephen.tozer at sony.com>
Date: 2026-06-29 (Mon, 29 Jun 2026)
Changed paths:
M cross-project-tests/debuginfo-tests/dexter/dex/debugger/lldb/LLDB.py
M cross-project-tests/debuginfo-tests/dexter/dex/evaluation/ExpectRewriter.py
R cross-project-tests/debuginfo-tests/dexter/feature_tests/scripts/rewriting/Inputs/rewrite_aggregates_expected.cpp
R cross-project-tests/debuginfo-tests/dexter/feature_tests/scripts/rewriting/Inputs/rewrite_list_aggregates_expected.cpp
R cross-project-tests/debuginfo-tests/dexter/feature_tests/scripts/rewriting/rewrite_aggregates.cpp
R cross-project-tests/debuginfo-tests/dexter/feature_tests/scripts/rewriting/rewrite_list_aggregates.cpp
Log Message:
-----------
Revert "[Dexter] Add rewriting for aggregate variables (#202800)" (#206495)
This reverts commit 2cf48dca3338951a7fbe83fecc9e6d35caaa9b11.
The original commit is failing sometimes in pre-commit CI for linux
builds, possibly due to some unspecified environmental dependency.
Commit: d5c982fb0ead0c8c9b8ac4bdf332a6084465a632
https://github.com/llvm/llvm-project/commit/d5c982fb0ead0c8c9b8ac4bdf332a6084465a632
Author: Rahul Joshi <rjoshi at nvidia.com>
Date: 2026-06-29 (Mon, 29 Jun 2026)
Changed paths:
M llvm/lib/IR/Verifier.cpp
M llvm/lib/IR/VerifierInternal.h
M llvm/test/Assembler/autoupgrade-invalid-mem-intrinsics.ll
M llvm/test/Assembler/invalid-vecreduce.ll
M llvm/test/CodeGen/AArch64/sme2p1-intrinsics-movaz.ll
M llvm/test/CodeGen/AArch64/sve-bad-intrinsics.ll
M llvm/test/CodeGen/AArch64/sve-ptest.ll
M llvm/test/CodeGen/AArch64/sve2-intrinsics-nt-gather-loads-32bit-unscaled-offset.ll
M llvm/test/CodeGen/AArch64/sve2-intrinsics-nt-scatter-stores-32bit-unscaled-offset.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.addrspacecast.nonnull.ll
M llvm/test/CodeGen/AMDGPU/memory-legalizer-multiple-mem-operands-nontemporal-1.mir
M llvm/test/CodeGen/MIR/AMDGPU/syncscopes.mir
M llvm/test/CodeGen/NVPTX/shfl-sync.ll
M llvm/test/CodeGen/SPIRV/hlsl-intrinsics/refract.ll
M llvm/test/Transforms/Coroutines/coro-heap-elide.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-final-suspend.ll
M llvm/test/Transforms/Coroutines/ex0.ll
M llvm/test/Transforms/Coroutines/phi-coro-end.ll
M llvm/test/Transforms/InstCombine/vector-reductions.ll
M llvm/test/Transforms/MergeFunc/vector.ll
M llvm/test/Transforms/ObjCARC/rv.ll
M llvm/test/Verifier/anyptr-bad.ll
M llvm/test/Verifier/callbr.ll
M llvm/test/Verifier/get-active-lane-mask.ll
M llvm/test/Verifier/intrinsic-bad-arg-type1.ll
M llvm/test/Verifier/masked-load-store.ll
M llvm/test/Verifier/matrix-intrinsics.ll
M llvm/test/Verifier/reduction-intrinsics.ll
M llvm/test/Verifier/scatter_gather.ll
M llvm/test/Verifier/stepvector-intrinsic.ll
M llvm/unittests/IR/VerifierTest.cpp
Log Message:
-----------
[LLVM][Verifier] Move intrinsic signature verification to declarations (#204478)
Commit: 0fc661dead4e9f76c0e91606c80839044bfc2296
https://github.com/llvm/llvm-project/commit/0fc661dead4e9f76c0e91606c80839044bfc2296
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2026-06-29 (Mon, 29 Jun 2026)
Changed paths:
M llvm/test/CodeGen/X86/phaddsub-extract.ll
A llvm/test/CodeGen/X86/vector-reduce-add-codesize.ll
Log Message:
-----------
[X86] phaddsub-extract.ll - pull out optsize / pgso tests and move to vector-reduce-add-codesize.ll test file (#206492)
We already have PhaseOrdering middle-end tests for the @llvm.vector.reduce.add pattern matching
Commit: dde20e52ed9b96f4515bc368b2a3281afe87d1be
https://github.com/llvm/llvm-project/commit/dde20e52ed9b96f4515bc368b2a3281afe87d1be
Author: Charles Zablit <c_zablit at apple.com>
Date: 2026-06-29 (Mon, 29 Jun 2026)
Changed paths:
M lldb/packages/Python/lldbsuite/test/tools/lldb-server/gdbremote_testcase.py
M lldb/test/API/tools/lldb-server/main.cpp
Log Message:
-----------
[lldb][windows] fix always falsy comparison (#206179)
This is a follow up to https://github.com/llvm/llvm-project/pull/206107,
which introduced a comparison that is always falsy. `os.environ.get`
returns a string and `('1' == 1) == False` in Python.
Compare to a string and return a string as a default value.
Commit: 5c57289bf017f7aa216f242080b7244e4cea88b7
https://github.com/llvm/llvm-project/commit/5c57289bf017f7aa216f242080b7244e4cea88b7
Author: Gábor Horváth <xazax.hun at gmail.com>
Date: 2026-06-29 (Mon, 29 Jun 2026)
Changed paths:
M clang/include/clang/Analysis/CallGraph.h
M clang/lib/Analysis/CallGraph.cpp
M clang/test/Sema/LifetimeSafety/safety.cpp
Log Message:
-----------
[CallGraph] Collect callables from global variable initializers (#206458)
CallGraph::TraverseStmt is a no-op, so declaration traversal never
descends into a variable initializer. A lambda or block defined in a
global-storage variable's initializer was therefore never added to the
graph. TU-end lifetime safety analysis walks the call graph to find
functions to analyze, so such a lambda was silently skipped and a real
lifetime bug in it went unreported, while the default per-function mode
caught it.
Walk the initializer of every global-storage variable during declaration
visitation and add any callables defined within it. The hasGlobalStorage
guard excludes parameter default arguments, which CGBuilder already
handles at call sites.
Assisted-by: Claude Opus 4.8
Commit: 72c5132a2e52e816f67b342d101d0e6b1e081448
https://github.com/llvm/llvm-project/commit/72c5132a2e52e816f67b342d101d0e6b1e081448
Author: Konrad Kreczko <konradkreczko at gmail.com>
Date: 2026-06-29 (Mon, 29 Jun 2026)
Changed paths:
M llvm/include/llvm/IR/DebugProgramInstruction.h
M llvm/lib/IR/DebugProgramInstruction.cpp
Log Message:
-----------
[IR] Add non-const DbgRecord::getInstruction() overload (#206059)
DbgRecord exposes const+non-const overload pairs for getParent(),
getModule() and getContext(), but getInstruction() was const-only and
returned a const Instruction*. Code holding a non-const DbgRecord that
needs a mutable host instruction, for example to use as a DIBuilder
insert position, was therefore forced to const_cast the result.
Add a non-const getInstruction() overload returning a mutable
Instruction*, matching the existing accessor pairs and removing the need
for those casts. The const overload is unchanged.
AI tools were used to write this description.
Commit: 98954ef689b4dd4c37092be7d4112a8f69c18dc8
https://github.com/llvm/llvm-project/commit/98954ef689b4dd4c37092be7d4112a8f69c18dc8
Author: Ivan Kosarev <ivan.kosarev at amd.com>
Date: 2026-06-29 (Mon, 29 Jun 2026)
Changed paths:
M llvm/test/MC/AMDGPU/gfx11_asm_vopc.s
A llvm/test/MC/Disassembler/AMDGPU/gfx11_dasm_vopc-fake16.txt
R llvm/test/MC/Disassembler/AMDGPU/gfx11_dasm_vopc.txt
Log Message:
-----------
[AMDGPU][NFC] Templatise and roundtrip gfx11_asm_vopc.s (#206127)
Resolves another portion of differences vs the downstream True16 branch.
Commit: 855b6375859d4793454d653db7db55b05487a7fd
https://github.com/llvm/llvm-project/commit/855b6375859d4793454d653db7db55b05487a7fd
Author: Matheus Izvekov <mizvekov at gmail.com>
Date: 2026-06-29 (Mon, 29 Jun 2026)
Changed paths:
M clang/docs/ReleaseNotes.rst
M clang/lib/Sema/SemaTemplate.cpp
M clang/test/Parser/cxx1z-class-template-argument-deduction.cpp
M clang/test/SemaCXX/typo-correction.cpp
Log Message:
-----------
[clang] use typo-corrected name qualifier for template names (#206180)
This also prevents error-recovery from forming a member specialization
which is not a class member, which leads to crashes-on-invalid.
Fixes #204561
Commit: 4ab0976b85e3e9a9fe77fc0b01cb49c1d5542454
https://github.com/llvm/llvm-project/commit/4ab0976b85e3e9a9fe77fc0b01cb49c1d5542454
Author: Nikita Popov <npopov at redhat.com>
Date: 2026-06-29 (Mon, 29 Jun 2026)
Changed paths:
M llvm/lib/Transforms/Scalar/EarlyCSE.cpp
M llvm/test/Transforms/EarlyCSE/memset-load.ll
Log Message:
-----------
[EarlyCSE] Do not forward memset zero to intrinsic (#206452)
We can do this in principle, but it would require more precise handling.
E.g. for masked.load we'd have to respect the passthru argument for
masked out lanes. I don't think this is worthwhile, so just bail out.
Commit: 2f8525c57cb134afb43143d2a3db83088a42d387
https://github.com/llvm/llvm-project/commit/2f8525c57cb134afb43143d2a3db83088a42d387
Author: Timm Baeder <tbaeder at redhat.com>
Date: 2026-06-29 (Mon, 29 Jun 2026)
Changed paths:
M clang/lib/AST/ByteCode/Interp.cpp
M clang/test/AST/ByteCode/dynamic-cast.cpp
Log Message:
-----------
[clang][bytecode] Ignore irrelevant InitializingPtrs in dynamic_cast (#206468)
If the initializing pointer is unrealted to the one we're operating on,
ignore it.
Commit: 27c707d19a2fc9c5043c8ae1ba1fd9b92ea799c8
https://github.com/llvm/llvm-project/commit/27c707d19a2fc9c5043c8ae1ba1fd9b92ea799c8
Author: Nikita Popov <npopov at redhat.com>
Date: 2026-06-29 (Mon, 29 Jun 2026)
Changed paths:
M llvm/lib/Target/X86/X86ISelLowering.cpp
M llvm/test/CodeGen/X86/madd.ll
Log Message:
-----------
[X86] Don't form pmaddwd for shift by 15 (#206473)
I believe the transform is not correct for shifts by 15, because the
multiplier gets sign extended, turning a multiply by 2^15 into one by
-2^15.
Commit: 06724d07f46d77ed8724809fff525da15eedbb13
https://github.com/llvm/llvm-project/commit/06724d07f46d77ed8724809fff525da15eedbb13
Author: Nikita Popov <npopov at redhat.com>
Date: 2026-06-29 (Mon, 29 Jun 2026)
Changed paths:
M llvm/lib/Transforms/Vectorize/VectorCombine.cpp
M llvm/test/Transforms/VectorCombine/X86/extract-cmp-binop.ll
Log Message:
-----------
[VectorCombine] Fix assertion failure with out of bounds extractelement (#206489)
Bail out if the extractelement index is out of bounds, otherwise we'll
assert when trying to create the shuffle mask.
Commit: 88b394d75a2643ca6c17bacd870c74b3b30d175d
https://github.com/llvm/llvm-project/commit/88b394d75a2643ca6c17bacd870c74b3b30d175d
Author: Maksim Levental <maksim.levental at gmail.com>
Date: 2026-06-29 (Mon, 29 Jun 2026)
Changed paths:
M mlir/include/mlir-c/Rewrite.h
M mlir/lib/CAPI/Transforms/Rewrite.cpp
M mlir/test/CAPI/rewrite.c
Log Message:
-----------
[mlir-c] Add ConversionTarget dynamic legality C API (#206161)
Add `mlirConversionTargetAddDynamicallyLegalOp`,
`mlirConversionTargetAddDynamicallyLegalDialect`,
`mlirConversionTargetMarkOpRecursivelyLegal`, and
`mlirConversionTargetMarkUnknownOpDynamicallyLegal` to enable
per-instance legality callbacks from C.
Assisted by: Claude
Commit: 81a2ac204aea4281c8ed9162db5d4ed491cb2cfa
https://github.com/llvm/llvm-project/commit/81a2ac204aea4281c8ed9162db5d4ed491cb2cfa
Author: Aiden Grossman <aidengrossman at google.com>
Date: 2026-06-29 (Mon, 29 Jun 2026)
Changed paths:
M llvm/lib/Target/Lanai/Lanai.h
M llvm/lib/Target/Lanai/LanaiISelDAGToDAG.cpp
M llvm/lib/Target/Lanai/LanaiTargetMachine.cpp
Log Message:
-----------
[Lanai] Port SelectionDAGISel to NewPM
Similar to what was done for X86 in
7652a59407018c057cdc1163c9f64b5b6f0954eb.
Reviewers: jpienaar
Pull Request: https://github.com/llvm/llvm-project/pull/205997
Commit: 016954e1489dbd8daf94baf3372dae2b7f2684e3
https://github.com/llvm/llvm-project/commit/016954e1489dbd8daf94baf3372dae2b7f2684e3
Author: Aiden Grossman <aidengrossman at google.com>
Date: 2026-06-29 (Mon, 29 Jun 2026)
Changed paths:
M llvm/lib/Target/Lanai/CMakeLists.txt
A llvm/lib/Target/Lanai/LanaiCodeGenPassBuilder.cpp
A llvm/lib/Target/Lanai/LanaiPassRegistry.def
M llvm/lib/Target/Lanai/LanaiTargetMachine.h
Log Message:
-----------
[Lanai] Add LanaiCodeGenPassBuilder
This is the basic skeleton that is needed for the new pass manager.
Reviewers: jpienaar
Pull Request: https://github.com/llvm/llvm-project/pull/205998
Commit: fe4c00e0b1ee44028a5e793c11b29cbf36f3b95b
https://github.com/llvm/llvm-project/commit/fe4c00e0b1ee44028a5e793c11b29cbf36f3b95b
Author: Aiden Grossman <aidengrossman at google.com>
Date: 2026-06-29 (Mon, 29 Jun 2026)
Changed paths:
M .github/CODEOWNERS
M .github/workflows/merged-prs.yml
M bolt/docs/BAT.md
M bolt/docs/BinaryAnalysis.md
A bolt/docs/GettingStarted.rst
M bolt/docs/OptimizingClang.md
M bolt/docs/PointerAuthDesign.md
M bolt/docs/conf.py
M bolt/docs/index.rst
M bolt/lib/Core/BinaryContext.cpp
M bolt/lib/Passes/BinaryPasses.cpp
M bolt/lib/Passes/CacheMetrics.cpp
M bolt/lib/Passes/ProfileQualityStats.cpp
M bolt/lib/Passes/RetpolineInsertion.cpp
M bolt/test/X86/infer_no_exits.test
M clang-tools-extra/clang-doc/YAMLGenerator.cpp
M clang-tools-extra/clang-tidy/bugprone/UnhandledCodePathsCheck.cpp
M clang-tools-extra/clang-tidy/bugprone/UnhandledCodePathsCheck.h
M clang-tools-extra/clang-tidy/modernize/AvoidCStyleCastCheck.cpp
M clang-tools-extra/clang-tidy/readability/CMakeLists.txt
M clang-tools-extra/clang-tidy/readability/ReadabilityTidyModule.cpp
A clang-tools-extra/clang-tidy/readability/TrivialSwitchCheck.cpp
A clang-tools-extra/clang-tidy/readability/TrivialSwitchCheck.h
M clang-tools-extra/clangd/CodeComplete.cpp
M clang-tools-extra/clangd/CompileCommands.cpp
M clang-tools-extra/docs/ReleaseNotes.rst
M clang-tools-extra/docs/clang-tidy/checks/bugprone/unhandled-code-paths.rst
M clang-tools-extra/docs/clang-tidy/checks/list.rst
A clang-tools-extra/docs/clang-tidy/checks/readability/trivial-switch.rst
M clang-tools-extra/test/clang-tidy/checkers/bugprone/unhandled-code-paths.cpp
M clang-tools-extra/test/clang-tidy/checkers/modernize/avoid-c-style-cast.cpp
A clang-tools-extra/test/clang-tidy/checkers/readability/trivial-switch.cpp
M clang/docs/LibASTMatchersReference.html
M clang/docs/LifetimeSafety.rst
M clang/docs/ReleaseNotes.rst
M clang/docs/SanitizerSpecialCaseList.rst
M clang/docs/tools/dump_ast_matchers.py
M clang/include/clang/AST/Expr.h
M clang/include/clang/AST/OpenMPClause.h
M clang/include/clang/AST/RecursiveASTVisitor.h
M clang/include/clang/Analysis/Analyses/LifetimeSafety/Facts.h
M clang/include/clang/Analysis/Analyses/LifetimeSafety/FactsGenerator.h
M clang/include/clang/Analysis/CallGraph.h
M clang/include/clang/Basic/Builtins.td
M clang/include/clang/Basic/DiagnosticGroups.td
M clang/include/clang/Basic/DiagnosticSemaKinds.td
M clang/include/clang/Basic/OffloadArch.h
M clang/include/clang/Basic/OpenMPKinds.def
M clang/include/clang/Basic/OpenMPKinds.h
M clang/include/clang/Sema/AnalysisBasedWarnings.h
M clang/include/clang/Sema/Designator.h
M clang/include/clang/Sema/Sema.h
M clang/include/clang/Sema/SemaOpenMP.h
M clang/include/clang/StaticAnalyzer/Checkers/Checkers.td
M clang/lib/AST/ByteCode/Compiler.cpp
M clang/lib/AST/ByteCode/Context.cpp
M clang/lib/AST/ByteCode/DynamicAllocator.cpp
M clang/lib/AST/ByteCode/DynamicAllocator.h
M clang/lib/AST/ByteCode/EvalEmitter.cpp
M clang/lib/AST/ByteCode/EvalEmitter.h
M clang/lib/AST/ByteCode/Interp.cpp
M clang/lib/AST/ByteCode/InterpBuiltin.cpp
M clang/lib/AST/Expr.cpp
M clang/lib/AST/OpenMPClause.cpp
M clang/lib/AST/StmtProfile.cpp
M clang/lib/AST/Type.cpp
M clang/lib/Analysis/CallGraph.cpp
M clang/lib/Analysis/LifetimeSafety/FactsGenerator.cpp
M clang/lib/Analysis/LifetimeSafety/LiveOrigins.cpp
M clang/lib/Basic/OffloadArch.cpp
M clang/lib/Basic/OpenMPKinds.cpp
M clang/lib/CIR/CodeGen/CIRGenExprAggregate.cpp
M clang/lib/CIR/CodeGen/CIRGenExprComplex.cpp
M clang/lib/CodeGen/CGAtomic.cpp
M clang/lib/CodeGen/CGCoroutine.cpp
M clang/lib/CodeGen/CGOpenMPRuntimeGPU.cpp
M clang/lib/CodeGen/TargetBuiltins/ARM.cpp
M clang/lib/CodeGen/Targets/DirectX.cpp
M clang/lib/CodeGen/Targets/SPIR.cpp
M clang/lib/Format/CMakeLists.txt
M clang/lib/Format/TokenAnnotator.cpp
M clang/lib/Frontend/FrontendAction.cpp
M clang/lib/Lex/PPDirectives.cpp
M clang/lib/Lex/Pragma.cpp
M clang/lib/Lex/Preprocessor.cpp
M clang/lib/Parse/ParseCXXInlineMethods.cpp
M clang/lib/Parse/ParseExpr.cpp
M clang/lib/Parse/ParseOpenMP.cpp
M clang/lib/Sema/AnalysisBasedWarnings.cpp
M clang/lib/Sema/HLSLBuiltinTypeDeclBuilder.cpp
M clang/lib/Sema/HLSLBuiltinTypeDeclBuilder.h
M clang/lib/Sema/HLSLExternalSemaSource.cpp
M clang/lib/Sema/SemaChecking.cpp
M clang/lib/Sema/SemaDeclCXX.cpp
M clang/lib/Sema/SemaExpr.cpp
M clang/lib/Sema/SemaHLSL.cpp
M clang/lib/Sema/SemaInit.cpp
M clang/lib/Sema/SemaLifetimeSafety.h
M clang/lib/Sema/SemaOpenMP.cpp
M clang/lib/Sema/SemaTemplate.cpp
M clang/lib/Sema/SemaTemplateDeduction.cpp
M clang/lib/Sema/TreeTransform.h
M clang/lib/Serialization/ASTReader.cpp
M clang/lib/Serialization/ASTWriter.cpp
M clang/lib/StaticAnalyzer/Checkers/CMakeLists.txt
A clang/lib/StaticAnalyzer/Checkers/UseAfterLifetimeEnd.cpp
M clang/test/AST/ByteCode/codegen.cpp
M clang/test/AST/ByteCode/cxx17.cpp
M clang/test/AST/ByteCode/dynamic-cast.cpp
M clang/test/AST/ByteCode/new-delete.cpp
A clang/test/AST/HLSL/Texture2DArray-scalar-AST.hlsl
A clang/test/AST/HLSL/Texture2DArray-shorthand-AST.hlsl
A clang/test/AST/HLSL/Texture2DArray-vector-AST.hlsl
A clang/test/Analysis/debug-lifetime-bound.cpp
A clang/test/Analysis/lifetime-bound.cpp
M clang/test/CIR/CodeGen/cxx-rewritten-binary-operator.cpp
M clang/test/CXX/drs/cwg31xx.cpp
A clang/test/CodeCompletion/GH200879.cpp
M clang/test/CodeGen/AArch64/atomic-ops-float-check-minmax.c
A clang/test/CodeGen/atomic-auto-type.c
M clang/test/CodeGen/cfi-unchecked-callee-attribute.cpp
R clang/test/CodeGenCoroutines/coro-cwg2935.cpp
M clang/test/CodeGenCoroutines/coro-gro.cpp
A clang/test/CodeGenHLSL/resources/Texture2DArray-CalculateLevelOfDetail.hlsl
A clang/test/CodeGenHLSL/resources/Texture2DArray-Gather.hlsl
A clang/test/CodeGenHLSL/resources/Texture2DArray-GetDimensions.hlsl
A clang/test/CodeGenHLSL/resources/Texture2DArray-Load.hlsl
A clang/test/CodeGenHLSL/resources/Texture2DArray-Mips.hlsl
A clang/test/CodeGenHLSL/resources/Texture2DArray-Sample.hlsl
A clang/test/CodeGenHLSL/resources/Texture2DArray-SampleBias.hlsl
A clang/test/CodeGenHLSL/resources/Texture2DArray-SampleCmp.hlsl
A clang/test/CodeGenHLSL/resources/Texture2DArray-SampleCmpLevelZero.hlsl
A clang/test/CodeGenHLSL/resources/Texture2DArray-SampleGrad.hlsl
A clang/test/CodeGenHLSL/resources/Texture2DArray-SampleLevel.hlsl
A clang/test/CodeGenHLSL/resources/Texture2DArray-Subscript.hlsl
A clang/test/CodeGenHLSL/resources/Texture2DArray-default-explicit-binding.hlsl
A clang/test/CodeGenHLSL/resources/Texture2DArray-default.hlsl
A clang/test/CodeGenHLSL/resources/Texture2DArray-shorthand-contexts.hlsl
M clang/test/Driver/amdgpu-macros.cl
M clang/test/Driver/amdgpu-mcpu.cl
M clang/test/Driver/offload-arch-translation-amdgpu.cu
A clang/test/Frontend/linemarker-invalid-escape.c
M clang/test/Misc/target-invalid-cpu-note/amdgcn.c
M clang/test/Misc/target-invalid-cpu-note/nvptx.c
M clang/test/OpenMP/target_teams_ast_print.cpp
M clang/test/OpenMP/target_teams_distribute_num_teams_messages.cpp
M clang/test/OpenMP/target_teams_distribute_parallel_for_num_teams_messages.cpp
M clang/test/OpenMP/teams_num_teams_messages.cpp
M clang/test/Parser/cxx1z-class-template-argument-deduction.cpp
M clang/test/Preprocessor/line-directive-output.c
M clang/test/Preprocessor/line-directive.c
M clang/test/Preprocessor/pragma_module.c
M clang/test/Sema/LifetimeSafety/annotation-suggestions.cpp
A clang/test/Sema/LifetimeSafety/dangling-field-implicit-ctor.cpp
M clang/test/Sema/LifetimeSafety/invalidations.cpp
M clang/test/Sema/LifetimeSafety/safety.cpp
A clang/test/Sema/atomic-auto-type.c
M clang/test/Sema/atomic-ops.c
M clang/test/Sema/attr-const-pure.c
M clang/test/Sema/scoped-atomic-ops.c
A clang/test/SemaCXX/init-list-incomplete-dtor-crash.cpp
M clang/test/SemaCXX/static-assert-cxx26.cpp
M clang/test/SemaCXX/typo-correction.cpp
A clang/test/SemaHLSL/Resources/Texture2DArray-CalculateLevelOfDetail.hlsl
A clang/test/SemaHLSL/Resources/Texture2DArray-GetDimensions.hlsl
A clang/test/SemaHLSL/Resources/Texture2DArray-SampleBias.hlsl
A clang/test/SemaHLSL/Resources/Texture2DArray-SampleCmp.hlsl
A clang/test/SemaHLSL/Resources/Texture2DArray-SampleCmpLevelZero.hlsl
A clang/test/SemaHLSL/Resources/Texture2DArray-SampleGrad.hlsl
A clang/test/SemaHLSL/Resources/Texture2DArray-SampleLevel.hlsl
A clang/test/SemaHLSL/Resources/Texture2DArray-Sema.hlsl
A clang/test/SemaHLSL/Resources/Texture2DArray-Subscript.hlsl
A clang/test/SemaHLSL/Texture2DArray-Gather.hlsl
A clang/test/SemaHLSL/Texture2DArray-GatherCmp-Vulkan.hlsl
A clang/test/SemaHLSL/Texture2DArray-Load-errors.hlsl
A clang/test/SemaHLSL/Texture2DArray-mips-errors.hlsl
M clang/tools/driver/cc1_main.cpp
M clang/tools/libclang/CIndex.cpp
M clang/tools/libclang/CLog.h
M clang/unittests/Basic/DiagnosticTest.cpp
M clang/unittests/Format/FormatTest.cpp
M clang/unittests/Format/TokenAnnotatorTest.cpp
M clang/unittests/Lex/PPMemoryAllocationsTest.cpp
M clang/www/cxx_dr_status.html
M compiler-rt/include/sanitizer/safestack_interface.h
M compiler-rt/lib/safestack/safestack.cpp
M compiler-rt/test/safestack/sigaltstack.c
M cross-project-tests/debuginfo-tests/dexter/dex/evaluation/ExpectMatch.py
M cross-project-tests/debuginfo-tests/dexter/dex/evaluation/RunMatch.py
M cross-project-tests/debuginfo-tests/dexter/dex/test_script/Nodes.py
A cross-project-tests/debuginfo-tests/dexter/feature_tests/scripts/evaluation/eval_address.cpp
A cross-project-tests/debuginfo-tests/dexter/feature_tests/scripts/parser/invalid-address.test
A cross-project-tests/debuginfo-tests/dexter/feature_tests/scripts/parser/parse-address.test
M flang/lib/Optimizer/Transforms/CUDA/CUFPredefinedVarToGPU.cpp
M flang/test/Fir/CUDA/predefined-variables.mlir
M libc/config/baremetal/aarch64/entrypoints.txt
M libc/config/baremetal/arm/entrypoints.txt
M libc/config/baremetal/riscv/entrypoints.txt
M libc/config/darwin/aarch64/entrypoints.txt
M libc/config/darwin/x86_64/entrypoints.txt
M libc/config/freebsd/x86_64/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/arm/entrypoints.txt
M libc/config/linux/riscv/entrypoints.txt
M libc/config/linux/x86_64/entrypoints.txt
M libc/config/windows/entrypoints.txt
M libc/docs/headers/math/index.rst
M libc/include/CMakeLists.txt
M libc/include/arpa/inet.yaml
M libc/include/netinet/in.yaml
M libc/shared/builtins.h
A libc/shared/builtins/subdf3.h
M libc/shared/math.h
A libc/shared/math/expbf16.h
M libc/src/__support/builtins/CMakeLists.txt
A libc/src/__support/builtins/subdf3.h
M libc/src/__support/math/CMakeLists.txt
A libc/src/__support/math/expbf16.h
M libc/src/math/CMakeLists.txt
A libc/src/math/expbf16.h
M libc/src/math/generic/CMakeLists.txt
A libc/src/math/generic/expbf16.cpp
M libc/test/shared/CMakeLists.txt
M libc/test/shared/shared_builtins_test.cpp
M libc/test/shared/shared_math_test.cpp
M libc/test/src/math/CMakeLists.txt
A libc/test/src/math/expbf16_test.cpp
M libc/test/src/math/smoke/CMakeLists.txt
A libc/test/src/math/smoke/expbf16_test.cpp
M libc/utils/hdrgen/hdrgen/header.py
M libc/utils/hdrgen/hdrgen/yaml_to_classes.py
M libc/utils/hdrgen/tests/expected_output/custom.h
M libc/utils/hdrgen/tests/input/custom.yaml
M libcxx/docs/Status/Cxx23Issues.csv
M libcxx/docs/Status/Cxx26Issues.csv
M libcxx/include/__algorithm/clamp.h
M libcxx/include/__algorithm/lexicographical_compare_three_way.h
M libcxx/include/__algorithm/out_value_result.h
M libcxx/include/__algorithm/radix_sort.h
M libcxx/include/__algorithm/ranges_copy_n.h
M libcxx/include/__algorithm/three_way_comp_ref_type.h
M libcxx/include/__atomic/atomic_sync.h
M libcxx/include/__atomic/atomic_sync_timed.h
M libcxx/include/__atomic/atomic_waitable_traits.h
M libcxx/include/__atomic/floating_point_helper.h
M libcxx/include/__bit/bit_cast.h
M libcxx/include/__bit/bit_ceil.h
M libcxx/include/__charconv/to_chars.h
M libcxx/include/__chrono/gps_clock.h
M libcxx/include/__chrono/steady_clock.h
M libcxx/include/__chrono/tai_clock.h
M libcxx/include/__chrono/time_zone.h
M libcxx/include/__chrono/time_zone_link.h
M libcxx/include/__chrono/tzdb.h
M libcxx/include/__chrono/tzdb_list.h
M libcxx/include/__chrono/utc_clock.h
M libcxx/include/__chrono/zoned_time.h
M libcxx/include/__compare/common_comparison_category.h
M libcxx/include/__compare/compare_three_way.h
M libcxx/include/__compare/compare_three_way_result.h
M libcxx/include/__compare/ordering.h
M libcxx/include/__compare/synth_three_way.h
M libcxx/include/__compare/three_way_comparable.h
M libcxx/include/__concepts/arithmetic.h
M libcxx/include/__concepts/assignable.h
M libcxx/include/__concepts/boolean_testable.h
M libcxx/include/__concepts/class_or_enum.h
M libcxx/include/__concepts/common_reference_with.h
M libcxx/include/__concepts/comparison_common_type.h
M libcxx/include/__concepts/constructible.h
M libcxx/include/__concepts/convertible_to.h
M libcxx/include/__concepts/copyable.h
M libcxx/include/__concepts/derived_from.h
M libcxx/include/__concepts/destructible.h
M libcxx/include/__concepts/different_from.h
M libcxx/include/__concepts/equality_comparable.h
M libcxx/include/__concepts/invocable.h
M libcxx/include/__concepts/movable.h
M libcxx/include/__concepts/predicate.h
M libcxx/include/__concepts/regular.h
M libcxx/include/__concepts/relation.h
M libcxx/include/__concepts/same_as.h
M libcxx/include/__concepts/semiregular.h
M libcxx/include/__concepts/swappable.h
M libcxx/include/__concepts/totally_ordered.h
M libcxx/include/__condition_variable/condition_variable.h
M libcxx/include/__cstddef/max_align_t.h
M libcxx/include/__format/container_adaptor.h
M libcxx/include/__format/enable_insertable.h
M libcxx/include/__format/escaped_output_table.h
M libcxx/include/__format/fmt_pair_like.h
M libcxx/include/__format/formatter_tuple.h
M libcxx/include/__format/range_default_formatter.h
M libcxx/include/__format/range_format.h
M libcxx/include/__format/range_formatter.h
M libcxx/include/__functional/binary_negate.h
M libcxx/include/__functional/binder1st.h
M libcxx/include/__functional/binder2nd.h
M libcxx/include/__functional/compose.h
M libcxx/include/__functional/invoke.h
M libcxx/include/__functional/mem_fun_ref.h
M libcxx/include/__functional/perfect_forward.h
M libcxx/include/__functional/pointer_to_binary_function.h
M libcxx/include/__functional/pointer_to_unary_function.h
M libcxx/include/__functional/ranges_operations.h
M libcxx/include/__functional/unary_negate.h
M libcxx/include/__fwd/format.h
M libcxx/include/__fwd/span.h
M libcxx/include/__fwd/variant.h
M libcxx/include/__iterator/data.h
M libcxx/include/__iterator/default_sentinel.h
M libcxx/include/__iterator/empty.h
M libcxx/include/__iterator/incrementable_traits.h
M libcxx/include/__iterator/iter_move.h
M libcxx/include/__iterator/iter_swap.h
M libcxx/include/__iterator/move_sentinel.h
M libcxx/include/__iterator/ranges_iterator_traits.h
M libcxx/include/__iterator/readable_traits.h
M libcxx/include/__iterator/reverse_access.h
M libcxx/include/__iterator/size.h
M libcxx/include/__math/special_functions.h
M libcxx/include/__mdspan/aligned_accessor.h
M libcxx/include/__memory/compressed_pair.h
M libcxx/include/__memory/inout_ptr.h
M libcxx/include/__memory/out_ptr.h
M libcxx/include/__memory/raw_storage_iterator.h
M libcxx/include/__memory/shared_ptr.h
M libcxx/include/__memory/uses_allocator_construction.h
M libcxx/include/__node_handle
M libcxx/include/__numeric/ranges_iota.h
M libcxx/include/__numeric/reduce.h
M libcxx/include/__numeric/transform_reduce.h
M libcxx/include/__random/random_device.h
M libcxx/include/__random/uniform_random_bit_generator.h
M libcxx/include/__ranges/access.h
M libcxx/include/__ranges/adjacent_view.h
M libcxx/include/__ranges/all.h
M libcxx/include/__ranges/concepts.h
M libcxx/include/__ranges/container_compatible_range.h
M libcxx/include/__ranges/dangling.h
M libcxx/include/__ranges/data.h
M libcxx/include/__ranges/elements_of.h
M libcxx/include/__ranges/empty.h
M libcxx/include/__ranges/enable_borrowed_range.h
M libcxx/include/__ranges/enable_view.h
M libcxx/include/__ranges/from_range.h
M libcxx/include/__ranges/owning_view.h
M libcxx/include/__ranges/range_adaptor.h
M libcxx/include/__ranges/ref_view.h
M libcxx/include/__ranges/repeat_view.h
M libcxx/include/__ranges/size.h
M libcxx/include/__ranges/subrange.h
M libcxx/include/__ranges/view_interface.h
M libcxx/include/__ranges/views.h
M libcxx/include/__stop_token/atomic_unique_lock.h
M libcxx/include/__stop_token/intrusive_list_view.h
M libcxx/include/__stop_token/intrusive_shared_ptr.h
M libcxx/include/__stop_token/stop_callback.h
M libcxx/include/__stop_token/stop_state.h
M libcxx/include/__stop_token/stop_token.h
M libcxx/include/__thread/id.h
M libcxx/include/__tuple/sfinae_helpers.h
M libcxx/include/__tuple/tuple_like.h
M libcxx/include/__tuple/tuple_like_no_subrange.h
M libcxx/include/__type_traits/common_reference.h
M libcxx/include/__type_traits/has_unique_object_representation.h
M libcxx/include/__type_traits/is_implicit_lifetime.h
M libcxx/include/__type_traits/is_implicitly_default_constructible.h
M libcxx/include/__type_traits/is_literal_type.h
M libcxx/include/__type_traits/reference_converts_from_temporary.h
M libcxx/include/__type_traits/result_of.h
M libcxx/include/__utility/as_const.h
M libcxx/include/__utility/forward_like.h
M libcxx/include/__utility/in_place.h
M libcxx/include/__variant/monostate.h
M libcxx/include/__verbose_trap
M libcxx/include/any
M libcxx/include/charconv
M libcxx/include/cuchar
M libcxx/include/experimental/memory
M libcxx/include/initializer_list
M libcxx/include/mutex
M libcxx/include/print
M libcxx/include/scoped_allocator
M libcxx/include/source_location
M libcxx/include/span
M libcxx/include/syncstream
M libcxx/include/tuple
M libcxx/include/variant
A libcxx/test/libcxx/ranges/range.adaptors/range.adjacent/nodiscard.verify.cpp
M libcxx/test/std/input.output/syncstream/syncbuf/syncstream.syncbuf.assign/assign.pass.cpp
M libcxx/test/std/input.output/syncstream/syncbuf/syncstream.syncbuf.assign/swap.pass.cpp
M libcxx/test/std/localization/locale.categories/category.monetary/locale.money.get/locale.money.get.members/get_long_double_zh_CN.pass.cpp
M libcxx/test/std/localization/locale.categories/category.monetary/locale.money.put/locale.money.put.members/put_long_double_zh_CN.pass.cpp
M libcxx/test/std/localization/locale.categories/category.monetary/locale.moneypunct.byname/curr_symbol.pass.cpp
M libcxx/test/std/localization/locale.categories/category.monetary/locale.moneypunct.byname/neg_format.pass.cpp
M libcxx/test/std/localization/locale.categories/category.monetary/locale.moneypunct.byname/pos_format.pass.cpp
M libcxx/test/std/localization/locale.categories/category.numeric/locale.nm.put/facet.num.put.members/put_double.pass.cpp
M libcxx/test/std/localization/locale.categories/category.numeric/locale.nm.put/facet.num.put.members/put_long_double.pass.cpp
M libcxx/test/std/localization/locale.categories/category.time/locale.time.put.byname/put1.pass.cpp
M libcxx/test/std/localization/locale.categories/facet.numpunct/locale.numpunct.byname/grouping.pass.cpp
M libcxx/test/std/localization/locale.categories/facet.numpunct/locale.numpunct.byname/thousands_sep.pass.cpp
M libcxx/test/std/numerics/bit/byteswap.verify.cpp
M libcxx/test/std/utilities/memory/util.smartptr/util.smartptr.shared/util.smartptr.shared.const/pointer_deleter_allocator.pass.cpp
M libcxx/test/std/utilities/memory/util.smartptr/util.smartptr.shared/util.smartptr.shared.create/allocate_shared.pass.cpp
M libcxx/test/std/utilities/memory/util.smartptr/util.smartptr.shared/util.smartptr.shared.create/allocate_shared_for_overwrite.pass.cpp
M libcxx/test/support/locale_helpers.h
M libcxx/test/support/min_allocator.h
M libcxx/test/tools/clang_tidy_checks/CMakeLists.txt
A libcxx/test/tools/clang_tidy_checks/empty_namespaces.cpp
A libcxx/test/tools/clang_tidy_checks/empty_namespaces.hpp
M libcxx/test/tools/clang_tidy_checks/libcpp_module.cpp
M libcxx/utils/generate_escaped_output_table.py
M lldb/docs/resources/lldbgdbremote.md
M lldb/include/lldb/Utility/ConstString.h
M lldb/include/lldb/Utility/Log.h
M lldb/packages/Python/lldbsuite/test/gdbclientutils.py
M lldb/packages/Python/lldbsuite/test/tools/lldb-server/gdbremote_testcase.py
M lldb/source/Commands/CommandCompletions.cpp
M lldb/source/Commands/CommandObjectLog.cpp
M lldb/source/Commands/Options.td
M lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunication.cpp
M lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunication.h
M lldb/source/Plugins/SymbolFile/NativePDB/PdbFPOProgramToDWARFExpression.cpp
M lldb/source/Target/Statistics.cpp
M lldb/source/Utility/ConstString.cpp
M lldb/source/Utility/Log.cpp
M lldb/test/API/commands/log/basic/TestLogging.py
M lldb/test/API/commands/statistics/basic/TestStats.py
M lldb/test/API/functionalities/breakpoint/breakpoint_conditions/TestBreakpointConditions.py
M lldb/test/API/functionalities/completion/TestCompletion.py
M lldb/test/API/functionalities/data-formatter/data-formatter-stl/generic/vbool/TestDataFormatterStdVBool.py
A lldb/test/API/functionalities/gdb_remote_client/TestIgnoringNotifications.py
M lldb/test/API/tools/lldb-server/main.cpp
M lldb/tools/driver/CMakeLists.txt
M lldb/unittests/Utility/LogTest.cpp
M llvm/docs/AMDGPUUsage.rst
M llvm/docs/HowToUpdateDebugInfo.rst
M llvm/docs/LangRef.rst
M llvm/include/llvm/ADT/SmallPtrSet.h
M llvm/include/llvm/ADT/SmallVector.h
M llvm/include/llvm/Analysis/HashRecognize.h
M llvm/include/llvm/BinaryFormat/DXContainer.h
M llvm/include/llvm/BinaryFormat/ELF.h
M llvm/include/llvm/BinaryFormat/SFrame.h
A llvm/include/llvm/CodeGen/MachineCheckDebugify.h
M llvm/include/llvm/CodeGen/Passes.h
M llvm/include/llvm/DebugInfo/CodeView/EnumTables.h
M llvm/include/llvm/DebugInfo/PDB/Native/EnumTables.h
M llvm/include/llvm/IR/Attributes.h
M llvm/include/llvm/IR/Constant.h
M llvm/include/llvm/IR/DebugLoc.h
M llvm/include/llvm/IR/DebugProgramInstruction.h
M llvm/include/llvm/IR/IntrinsicsRISCV.td
M llvm/include/llvm/IR/PatternMatch.h
M llvm/include/llvm/InitializePasses.h
M llvm/include/llvm/MC/MCSubtargetInfo.h
M llvm/include/llvm/Object/ELF.h
M llvm/include/llvm/Object/ELFObjectFile.h
M llvm/include/llvm/Passes/MachinePassRegistry.def
M llvm/include/llvm/ProfileData/SampleProfReader.h
M llvm/include/llvm/Support/Allocator.h
M llvm/include/llvm/Support/Format.h
M llvm/include/llvm/Support/GlobPattern.h
M llvm/include/llvm/Support/KnownBits.h
M llvm/include/llvm/Support/PerThreadBumpPtrAllocator.h
M llvm/include/llvm/Support/ScopedPrinter.h
M llvm/include/llvm/Support/WithColor.h
M llvm/include/llvm/Support/raw_ostream.h
M llvm/include/llvm/TargetParser/AMDGPUTargetParser.def
M llvm/include/llvm/TargetParser/AMDGPUTargetParser.h
M llvm/lib/Analysis/HashRecognize.cpp
M llvm/lib/Analysis/InstructionSimplify.cpp
M llvm/lib/Analysis/VectorUtils.cpp
M llvm/lib/BinaryFormat/DXContainer.cpp
M llvm/lib/BinaryFormat/SFrame.cpp
M llvm/lib/Bitcode/Reader/BitcodeReader.cpp
M llvm/lib/CodeGen/AsmPrinter/CodeViewDebug.cpp
M llvm/lib/CodeGen/CodeGen.cpp
M llvm/lib/CodeGen/GlobalISel/CombinerHelper.cpp
M llvm/lib/CodeGen/MachineBasicBlock.cpp
M llvm/lib/CodeGen/MachineCheckDebugify.cpp
M llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp
M llvm/lib/CodeGen/TargetPassConfig.cpp
M llvm/lib/DebugInfo/CodeView/EnumTables.cpp
M llvm/lib/DebugInfo/CodeView/TypeRecordMapping.cpp
M llvm/lib/DebugInfo/LogicalView/Core/LVSourceLanguage.cpp
M llvm/lib/DebugInfo/LogicalView/Readers/LVCodeViewVisitor.cpp
M llvm/lib/DebugInfo/PDB/Native/EnumTables.cpp
M llvm/lib/ExecutionEngine/JITLink/aarch32.cpp
M llvm/lib/ExecutionEngine/Orc/OrcABISupport.cpp
M llvm/lib/Frontend/HLSL/HLSLRootSignature.cpp
M llvm/lib/IR/Constants.cpp
M llvm/lib/IR/DebugLoc.cpp
M llvm/lib/IR/DebugProgramInstruction.cpp
M llvm/lib/IR/Verifier.cpp
M llvm/lib/IR/VerifierInternal.h
M llvm/lib/MC/MCSubtargetInfo.cpp
M llvm/lib/Object/ELFObjectFile.cpp
M llvm/lib/ObjectYAML/CodeViewYAMLSymbols.cpp
M llvm/lib/ObjectYAML/DXContainerYAML.cpp
M llvm/lib/Passes/PassBuilder.cpp
M llvm/lib/Passes/PassRegistry.def
M llvm/lib/ProfileData/SampleProfReader.cpp
M llvm/lib/Support/Allocator.cpp
M llvm/lib/Support/ELFAttrParserCompact.cpp
M llvm/lib/Support/GlobPattern.cpp
M llvm/lib/Support/KnownBits.cpp
M llvm/lib/Support/SmallPtrSet.cpp
M llvm/lib/Support/SpecialCaseList.cpp
M llvm/lib/Support/raw_ostream.cpp
M llvm/lib/TableGen/Record.cpp
M llvm/lib/Target/AArch64/AArch64Features.td
M llvm/lib/Target/AArch64/AArch64Processors.td
M llvm/lib/Target/AArch64/AArch64Subtarget.cpp
M llvm/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp
M llvm/lib/Target/AArch64/GISel/AArch64LegalizerInfo.cpp
M llvm/lib/Target/AArch64/MCTargetDesc/AArch64InstPrinter.cpp
M llvm/lib/Target/AArch64/Utils/AArch64BaseInfo.h
M llvm/lib/Target/AMDGPU/AMDGPU.td
M llvm/lib/Target/AMDGPU/AMDGPUISelLowering.cpp
M llvm/lib/Target/AMDGPU/AMDGPULateCodeGenPrepare.cpp
M llvm/lib/Target/AMDGPU/AMDGPURemoveIncompatibleFunctions.cpp
M llvm/lib/Target/AMDGPU/GCNProcessors.td
M llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUInstPrinter.cpp
M llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUTargetStreamer.cpp
M llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.h
M llvm/lib/Target/ARM/ARMISelLowering.cpp
M llvm/lib/Target/ARM/ARMInstrVFP.td
M llvm/lib/Target/ARM/MCTargetDesc/ARMInstPrinter.cpp
M llvm/lib/Target/ARM/Utils/ARMBaseInfo.h
M llvm/lib/Target/DirectX/DXILRootSignature.cpp
M llvm/lib/Target/LoongArch/LoongArchISelLowering.cpp
M llvm/lib/Target/LoongArch/LoongArchLASXInstrInfo.td
M llvm/lib/Target/Mips/Disassembler/MipsDisassembler.cpp
M llvm/lib/Target/Mips/MCTargetDesc/MipsELFObjectWriter.cpp
M llvm/lib/Target/RISCV/AsmParser/RISCVAsmParser.cpp
M llvm/lib/Target/RISCV/GISel/RISCVLegalizerInfo.cpp
M llvm/lib/Target/RISCV/MCTargetDesc/RISCVBaseInfo.cpp
M llvm/lib/Target/RISCV/MCTargetDesc/RISCVBaseInfo.h
M llvm/lib/Target/RISCV/MCTargetDesc/RISCVELFStreamer.cpp
M llvm/lib/Target/RISCV/MCTargetDesc/RISCVInstPrinter.cpp
M llvm/lib/Target/RISCV/MCTargetDesc/RISCVTargetStreamer.cpp
M llvm/lib/Target/RISCV/RISCVAsmPrinter.cpp
M llvm/lib/Target/RISCV/RISCVISelLowering.cpp
M llvm/lib/Target/RISCV/RISCVInstrInfoP.td
M llvm/lib/Target/RISCV/RISCVSubtarget.cpp
M llvm/lib/Target/RISCV/RISCVSubtarget.h
M llvm/lib/Target/SPIRV/MCTargetDesc/SPIRVBaseInfo.cpp
M llvm/lib/Target/SPIRV/MCTargetDesc/SPIRVBaseInfo.h
M llvm/lib/Target/SPIRV/SPIRVBuiltins.cpp
M llvm/lib/Target/SPIRV/SPIRVRegularizer.cpp
M llvm/lib/Target/Sparc/MCTargetDesc/SparcInstPrinter.cpp
M llvm/lib/Target/Sparc/MCTargetDesc/SparcMCTargetDesc.h
M llvm/lib/Target/SystemZ/SystemZMachineScheduler.cpp
M llvm/lib/Target/WebAssembly/WebAssemblyAsmPrinter.cpp
M llvm/lib/Target/WebAssembly/WebAssemblyCFGStackify.cpp
M llvm/lib/Target/WebAssembly/WebAssemblyLateEHPrepare.cpp
M llvm/lib/Target/WebAssembly/WebAssemblyLowerEmscriptenEHSjLj.cpp
M llvm/lib/Target/WebAssembly/WebAssemblyTargetMachine.cpp
M llvm/lib/Target/X86/MCTargetDesc/X86InstComments.cpp
M llvm/lib/Target/X86/MCTargetDesc/X86MachObjectWriter.cpp
M llvm/lib/Target/X86/X86.h
M llvm/lib/Target/X86/X86CodeGenPassBuilder.cpp
M llvm/lib/Target/X86/X86ISelDAGToDAG.cpp
R llvm/lib/Target/X86/X86ISelDAGToDAG.h
M llvm/lib/Target/X86/X86ISelLowering.cpp
M llvm/lib/TargetParser/AMDGPUTargetParser.cpp
M llvm/lib/TargetParser/X86TargetParser.cpp
M llvm/lib/Transforms/AggressiveInstCombine/AggressiveInstCombine.cpp
M llvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp
M llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp
M llvm/lib/Transforms/InstCombine/InstCombineMulDivRem.cpp
M llvm/lib/Transforms/InstCombine/InstCombineSelect.cpp
M llvm/lib/Transforms/InstCombine/InstructionCombining.cpp
M llvm/lib/Transforms/Scalar/EarlyCSE.cpp
M llvm/lib/Transforms/Scalar/GVN.cpp
M llvm/lib/Transforms/Scalar/LoopIdiomRecognize.cpp
M llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp
M llvm/lib/Transforms/Scalar/MemCpyOptimizer.cpp
M llvm/lib/Transforms/Utils/Debugify.cpp
M llvm/lib/Transforms/Vectorize/LoopVectorize.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/VectorCombine.cpp
M llvm/test/Assembler/autoupgrade-invalid-mem-intrinsics.ll
M llvm/test/Assembler/invalid-vecreduce.ll
A llvm/test/CodeGen/AArch64/GlobalISel/freeze-push.mir
M llvm/test/CodeGen/AArch64/GlobalISel/legalize-undef.mir
M llvm/test/CodeGen/AArch64/fmaximum-legalization.ll
M llvm/test/CodeGen/AArch64/sme2p1-intrinsics-movaz.ll
M llvm/test/CodeGen/AArch64/sve-bad-intrinsics.ll
M llvm/test/CodeGen/AArch64/sve-ptest.ll
M llvm/test/CodeGen/AArch64/sve2-intrinsics-nt-gather-loads-32bit-unscaled-offset.ll
M llvm/test/CodeGen/AArch64/sve2-intrinsics-nt-scatter-stores-32bit-unscaled-offset.ll
M llvm/test/CodeGen/AMDGPU/directive-amdgcn-target.ll
M llvm/test/CodeGen/AMDGPU/elf-header-flags-mach.ll
M llvm/test/CodeGen/AMDGPU/generic-targets-require-v6.ll
M llvm/test/CodeGen/AMDGPU/hsa-generic-target-features.ll
A llvm/test/CodeGen/AMDGPU/issue196582-late-codegenprepare-crash-non-po2.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.addrspacecast.nonnull.ll
M llvm/test/CodeGen/AMDGPU/memory-legalizer-multiple-mem-operands-nontemporal-1.mir
M llvm/test/CodeGen/AMDGPU/mixed-vmem-types.ll
M llvm/test/CodeGen/AMDGPU/waitcnt-bvh.mir
M llvm/test/CodeGen/ARM/bf16-instructions.ll
A llvm/test/CodeGen/ARM/fp-maximum-legalization.ll
A llvm/test/CodeGen/DirectX/Texture2DArray-SampleBias.ll
A llvm/test/CodeGen/DirectX/Texture2DArray-SampleGrad.ll
A llvm/test/CodeGen/DirectX/Texture2DArray-annotateHandle.ll
A llvm/test/CodeGen/DirectX/strip-debug-info.ll
M llvm/test/CodeGen/Generic/MIRDebugify/check-line-and-variables-x.mir
M llvm/test/CodeGen/Generic/MIRDebugify/check-line-and-variables.mir
M llvm/test/CodeGen/Generic/MIRDebugify/multifunction-module.mir
M llvm/test/CodeGen/LoongArch/lasx/ir-instruction/sitofp.ll
M llvm/test/CodeGen/LoongArch/lasx/ir-instruction/uitofp.ll
A llvm/test/CodeGen/LoongArch/lasx/vec-trunc-combine.ll
M llvm/test/CodeGen/LoongArch/lasx/vxi1-masks.ll
M llvm/test/CodeGen/LoongArch/lasx/xvmskcond.ll
M llvm/test/CodeGen/LoongArch/lsx/ir-instruction/sitofp.ll
M llvm/test/CodeGen/LoongArch/lsx/ir-instruction/uitofp.ll
M llvm/test/CodeGen/LoongArch/pr177863.ll
M llvm/test/CodeGen/MIR/AMDGPU/syncscopes.mir
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/bf16-instructions.ll
M llvm/test/CodeGen/NVPTX/math-intrins.ll
M llvm/test/CodeGen/NVPTX/shfl-sync.ll
M llvm/test/CodeGen/PowerPC/fminimum-fmaximum-f128.ll
M llvm/test/CodeGen/PowerPC/fminimum-fmaximum.ll
A llvm/test/CodeGen/RISCV/GlobalISel/atomicrmw-and-or-xor.ll
M llvm/test/CodeGen/RISCV/GlobalISel/legalizer-info-validation.mir
A llvm/test/CodeGen/RISCV/GlobalISel/legalizer/legalize-atomicrmw-and-or-xor-rv32.mir
A llvm/test/CodeGen/RISCV/GlobalISel/legalizer/legalize-atomicrmw-and-or-xor-rv64.mir
M llvm/test/CodeGen/RISCV/rvp-simd-32.ll
M llvm/test/CodeGen/RISCV/rvp-simd-64.ll
M llvm/test/CodeGen/RISCV/rvv/vp-combine-store-reverse.ll
M llvm/test/CodeGen/SPIRV/hlsl-intrinsics/refract.ll
A llvm/test/CodeGen/SPIRV/hlsl-resources/Gather2DArray.ll
A llvm/test/CodeGen/SPIRV/hlsl-resources/LoadLevel2DArray.ll
A llvm/test/CodeGen/SPIRV/hlsl-resources/Sample2DArray.ll
A llvm/test/CodeGen/SPIRV/hlsl-resources/SampleGrad2DArray.ll
M llvm/test/CodeGen/SPIRV/passes/SPIRVRegularizer-i1-icmp.ll
M llvm/test/CodeGen/SystemZ/args-22.ll
M llvm/test/CodeGen/SystemZ/atomicrmw-ops-i128.ll
M llvm/test/CodeGen/SystemZ/bswap-09.ll
M llvm/test/CodeGen/SystemZ/bswap-10.ll
M llvm/test/CodeGen/SystemZ/call-zos-vec.ll
M llvm/test/CodeGen/SystemZ/canonicalize-vars.ll
M llvm/test/CodeGen/SystemZ/codegenprepare-sink-and-for-tm.ll
M llvm/test/CodeGen/SystemZ/dag-combine-05.ll
M llvm/test/CodeGen/SystemZ/dag-combine-07.ll
M llvm/test/CodeGen/SystemZ/fold-masked-merge.ll
M llvm/test/CodeGen/SystemZ/fp-copysign-03.ll
M llvm/test/CodeGen/SystemZ/fp-half-vector-binops.ll
M llvm/test/CodeGen/SystemZ/fp-half-vector-fcmp-select.ll
M llvm/test/CodeGen/SystemZ/fp-half.ll
M llvm/test/CodeGen/SystemZ/inline-asm-fp-int-casting-explicit-regs-zEC12.ll
M llvm/test/CodeGen/SystemZ/inline-asm-fp-int-casting-zEC12.ll
M llvm/test/CodeGen/SystemZ/int-cmp-65.ll
M llvm/test/CodeGen/SystemZ/int-conv-14.ll
M llvm/test/CodeGen/SystemZ/int-conv-15.ll
M llvm/test/CodeGen/SystemZ/int-mul-13.ll
M llvm/test/CodeGen/SystemZ/int-uadd-14.ll
M llvm/test/CodeGen/SystemZ/int-usub-13.ll
M llvm/test/CodeGen/SystemZ/knownbits-intrinsics-binop.ll
M llvm/test/CodeGen/SystemZ/misched-prera-cmp-elim.mir
M llvm/test/CodeGen/SystemZ/misched-prera-latencies.mir
M llvm/test/CodeGen/SystemZ/misched-prera-loads.mir
M llvm/test/CodeGen/SystemZ/regcoal-subranges-update.mir
M llvm/test/CodeGen/SystemZ/regcoal_remat_empty_subrange.ll
M llvm/test/CodeGen/SystemZ/risbg-04.ll
M llvm/test/CodeGen/SystemZ/rot-03.ll
M llvm/test/CodeGen/SystemZ/shift-12.ll
M llvm/test/CodeGen/SystemZ/shift-13.ll
M llvm/test/CodeGen/SystemZ/shift-14.ll
M llvm/test/CodeGen/SystemZ/shift-15.ll
M llvm/test/CodeGen/SystemZ/shift-16.ll
M llvm/test/CodeGen/SystemZ/shift-17.ll
M llvm/test/CodeGen/SystemZ/signbits-intrinsics-binop.ll
M llvm/test/CodeGen/SystemZ/soft-float-args.ll
M llvm/test/CodeGen/SystemZ/store_nonbytesized_vecs.ll
M llvm/test/CodeGen/SystemZ/vec-args-04.ll
M llvm/test/CodeGen/SystemZ/vec-cmp-cmp-logic-select.ll
M llvm/test/CodeGen/SystemZ/vec-cmpsel-01.ll
M llvm/test/CodeGen/SystemZ/vec-eval.ll
M llvm/test/CodeGen/SystemZ/vec-perm-12.ll
M llvm/test/CodeGen/SystemZ/vec-trunc-to-i16.ll
M llvm/test/CodeGen/SystemZ/vector-constrained-fp-intrinsics.ll
M llvm/test/CodeGen/WebAssembly/cfg-stackify-eh.ll
M llvm/test/CodeGen/X86/combine-reductions.ll
A llvm/test/CodeGen/X86/fminimum-fmaximum-i686.ll
M llvm/test/CodeGen/X86/fminimum-fmaximum.ll
R llvm/test/CodeGen/X86/horizontal-reduce-add.ll
R llvm/test/CodeGen/X86/horizontal-reduce-fadd.ll
M llvm/test/CodeGen/X86/madd.ll
M llvm/test/CodeGen/X86/phaddsub-extract.ll
A llvm/test/CodeGen/X86/vector-reduce-add-codesize.ll
A llvm/test/CodeGen/X86/vector-reduce-add-subvector.ll
A llvm/test/FileCheck/dump-input/color.txt
M llvm/test/FileCheck/opt-color.txt
M llvm/test/MC/AMDGPU/gfx11_asm_vopc.s
A llvm/test/MC/Disassembler/AMDGPU/gfx11_dasm_vopc-fake16.txt
R llvm/test/MC/Disassembler/AMDGPU/gfx11_dasm_vopc.txt
M llvm/test/MC/M68k/Data/Classes/MxMove_MM.s
M llvm/test/MC/M68k/Data/Classes/MxMove_MR.s
M llvm/test/MC/M68k/Data/Classes/MxMove_RM.s
R llvm/test/MC/M68k/Data/Classes/MxMove_RR.s
A llvm/test/MC/M68k/MOVE.s
A llvm/test/MC/M68k/generate_tests.py
M llvm/test/Object/AMDGPU/elf-header-flags-mach.yaml
M llvm/test/TableGen/generic-tables-return-range.td
M llvm/test/TableGen/generic-tables.td
M llvm/test/Transforms/Attributor/depgraph.ll
M llvm/test/Transforms/Attributor/nofpclass-round.ll
M llvm/test/Transforms/Attributor/reduced/aa_execution_domain_wrong_fn.ll
M llvm/test/Transforms/Attributor/reduced/aapointer_info_map_invalidation.ll
M llvm/test/Transforms/Attributor/reduced/openmp_opt_constant_type_crash.ll
M llvm/test/Transforms/Attributor/reduced/openmp_opt_dont_follow_gep_without_value.ll
M llvm/test/Transforms/Attributor/reduced/openmp_opt_global_read.ll
M llvm/test/Transforms/Attributor/reduced/openmp_opt_global_synced.ll
M llvm/test/Transforms/CodeGenPrepare/RISCV/noop-copy-sink.ll
M llvm/test/Transforms/Coroutines/coro-async-addr-lifetime-infinite-loop-bug.ll
M llvm/test/Transforms/Coroutines/coro-async-addr-lifetime-start-bug.ll
M llvm/test/Transforms/Coroutines/coro-async-coro-id-async-bug.ll
M llvm/test/Transforms/Coroutines/coro-async-end-bug.ll
M llvm/test/Transforms/Coroutines/coro-async-no-cse-swift-async-context-addr.ll
M llvm/test/Transforms/Coroutines/coro-async-noduplicate.ll
M llvm/test/Transforms/Coroutines/coro-async-nomerge.ll
M llvm/test/Transforms/Coroutines/coro-async-phi.ll
M llvm/test/Transforms/Coroutines/coro-async-unreachable.ll
M llvm/test/Transforms/Coroutines/coro-async.ll
M llvm/test/Transforms/Coroutines/coro-heap-elide.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-final-suspend.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-musttail3.ll
M llvm/test/Transforms/Coroutines/ex0.ll
M llvm/test/Transforms/Coroutines/phi-coro-end.ll
M llvm/test/Transforms/DeadStoreElimination/combined-partial-overwrites.ll
M llvm/test/Transforms/DeadStoreElimination/multiblock-overlap.ll
M llvm/test/Transforms/EarlyCSE/memset-load.ll
M llvm/test/Transforms/ExpandIRInsts/AMDGPU/frem-inf.ll
M llvm/test/Transforms/ExpandVariadics/invoke.ll
M llvm/test/Transforms/GVN/PRE/no-scalar-pre.ll
A llvm/test/Transforms/GVN/rle-coerced-noalias.ll
M llvm/test/Transforms/InstCombine/abs-intrinsic.ll
M llvm/test/Transforms/InstCombine/and-fcmp.ll
M llvm/test/Transforms/InstCombine/bit_ceil.ll
M llvm/test/Transforms/InstCombine/ctpop-bswap-bitreverse.ll
M llvm/test/Transforms/InstCombine/ctpop.ll
M llvm/test/Transforms/InstCombine/cttz-abs.ll
M llvm/test/Transforms/InstCombine/cttz-negative.ll
M llvm/test/Transforms/InstCombine/fold-select-trunc.ll
M llvm/test/Transforms/InstCombine/hyperbolic-functions.ll
M llvm/test/Transforms/InstCombine/intrinsics.ll
M llvm/test/Transforms/InstCombine/is_fpclass.ll
M llvm/test/Transforms/InstCombine/minmax-fold.ll
M llvm/test/Transforms/InstCombine/minmax-of-minmax.ll
M llvm/test/Transforms/InstCombine/or-fcmp.ll
M llvm/test/Transforms/InstCombine/powi.ll
M llvm/test/Transforms/InstCombine/vector-reductions.ll
M llvm/test/Transforms/InstSimplify/vector-splice.ll
M llvm/test/Transforms/LoopDeletion/assume.ll
A llvm/test/Transforms/LoopIdiom/memset-multiple-accesses.ll
A llvm/test/Transforms/LoopStrengthReduce/AMDGPU/lsr-icmpzero-mixed-ptr-width.ll
M llvm/test/Transforms/LoopVectorize/AArch64/early_exit_costs.ll
M llvm/test/Transforms/LoopVectorize/AArch64/interleaving-load-store.ll
M llvm/test/Transforms/LoopVectorize/AArch64/partial-reduce-fdot-product.ll
M llvm/test/Transforms/LoopVectorize/AArch64/simple_early_exit.ll
M llvm/test/Transforms/LoopVectorize/AArch64/transform-narrow-interleave-to-widen-memory-constant-ops.ll
M llvm/test/Transforms/LoopVectorize/AArch64/transform-narrow-interleave-to-widen-memory-scalable.ll
M llvm/test/Transforms/LoopVectorize/ARM/prefer-tail-loop-folding.ll
A llvm/test/Transforms/LoopVectorize/VPlan/RISCV/expand-scev.ll
M llvm/test/Transforms/LoopVectorize/VPlan/X86/scalarize-wide-load-for-address-use.ll
M llvm/test/Transforms/LoopVectorize/VPlan/expand-scev.ll
M llvm/test/Transforms/LoopVectorize/VPlan/vplan-print-before-after-all.ll
M llvm/test/Transforms/LoopVectorize/hoist-predicated-loads-with-predicated-stores.ll
M llvm/test/Transforms/LoopVectorize/vector-loop-backedge-elimination-outside-iv-users.ll
M llvm/test/Transforms/MemCpyOpt/memset-memmove-redundant-memmove.ll
M llvm/test/Transforms/MergeFunc/vector.ll
M llvm/test/Transforms/ObjCARC/rv.ll
M llvm/test/Transforms/OpenMP/spmdization_guarding_two_reaching_kernels.ll
M llvm/test/Transforms/OpenMP/spmdization_no_guarding_two_reaching_kernels.ll
M llvm/test/Transforms/PhaseOrdering/X86/horizontal-reduce-add.ll
M llvm/test/Transforms/SLPVectorizer/RISCV/load-binop-store.ll
M llvm/test/Transforms/SLPVectorizer/RISCV/load-store.ll
M llvm/test/Transforms/SLPVectorizer/X86/odd_store.ll
A llvm/test/Transforms/SLPVectorizer/X86/poor-throughput-seeds.ll
M llvm/test/Transforms/SROA/scalable-vector-struct.ll
M llvm/test/Transforms/SampleProfile/pseudo-probe-loop-deletion.ll
M llvm/test/Transforms/SimplifyCFG/return-merge.ll
M llvm/test/Transforms/VectorCombine/AArch64/narrow-phi-of-shuffles.ll
M llvm/test/Transforms/VectorCombine/AArch64/vscale-bitcast-shuffle-inseltpoison.ll
M llvm/test/Transforms/VectorCombine/AArch64/vscale-bitcast-shuffle.ll
M llvm/test/Transforms/VectorCombine/AMDGPU/as-transition-inseltpoison.ll
M llvm/test/Transforms/VectorCombine/AMDGPU/as-transition.ll
M llvm/test/Transforms/VectorCombine/AMDGPU/narrow-phi-of-shuffles.ll
M llvm/test/Transforms/VectorCombine/ARM/narrow-phi-of-shuffles.ll
M llvm/test/Transforms/VectorCombine/Hexagon/load-inseltpoison.ll
M llvm/test/Transforms/VectorCombine/Hexagon/load.ll
M llvm/test/Transforms/VectorCombine/Hexagon/narrow-phi-of-shuffles.ll
M llvm/test/Transforms/VectorCombine/RISCV/narrow-phi-of-shuffles.ll
M llvm/test/Transforms/VectorCombine/X86/extract-cmp-binop.ll
M llvm/test/Transforms/VectorCombine/X86/scalarize-vector-gep.ll
M llvm/test/Transforms/VectorCombine/alias.ll
M llvm/test/Transforms/VectorCombine/arbitrary-precision-int.ll
M llvm/test/Transforms/VectorCombine/narrow-phi-of-shuffles.ll
M llvm/test/Transforms/WholeProgramDevirt/branch-funnel.ll
M llvm/test/Verifier/anyptr-bad.ll
M llvm/test/Verifier/callbr.ll
M llvm/test/Verifier/get-active-lane-mask.ll
M llvm/test/Verifier/intrinsic-bad-arg-type1.ll
M llvm/test/Verifier/masked-load-store.ll
M llvm/test/Verifier/matrix-intrinsics.ll
M llvm/test/Verifier/reduction-intrinsics.ll
M llvm/test/Verifier/scatter_gather.ll
M llvm/test/Verifier/stepvector-intrinsic.ll
M llvm/test/lit.cfg.py
M llvm/test/tools/llubi/intr_memory.ll
A llvm/test/tools/llubi/noalias_scope.ll
A llvm/test/tools/llubi/store_dead_gep.ll
A llvm/test/tools/llubi/undef.ll
R llvm/test/tools/llubi/unsupported_constant.ll
M llvm/test/tools/llvm-objdump/ELF/AMDGPU/subtarget.ll
M llvm/test/tools/llvm-objdump/Offloading/fatbin-magic-collision.test
M llvm/test/tools/llvm-readobj/ELF/AMDGPU/elf-headers.test
M llvm/test/tools/obj2yaml/DXContainer/PRIVPart.yaml
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/llvm-dwarfutil/DebugInfoLinker.cpp
M llvm/tools/llvm-dwarfutil/llvm-dwarfutil.cpp
M llvm/tools/llvm-nm/llvm-nm.cpp
M llvm/tools/llvm-objdump/COFFDump.cpp
M llvm/tools/llvm-objdump/DXContainerDump.cpp
M llvm/tools/llvm-readobj/COFFDumper.cpp
M llvm/tools/llvm-readobj/ELFDumper.cpp
M llvm/tools/llvm-readobj/MachODumper.cpp
M llvm/tools/llvm-readobj/WasmDumper.cpp
M llvm/tools/llvm-readobj/Win64EHDumper.cpp
M llvm/tools/llvm-readobj/XCOFFDumper.cpp
M llvm/tools/llvm-readobj/llvm-readobj.h
M llvm/unittests/ADT/ConcurrentHashtableTest.cpp
M llvm/unittests/DebugInfo/MSF/MappedBlockStreamTest.cpp
M llvm/unittests/IR/VerifierTest.cpp
M llvm/unittests/ProfileData/SampleProfTest.cpp
M llvm/unittests/Support/AllocatorTest.cpp
M llvm/unittests/Support/GlobPatternTest.cpp
M llvm/unittests/Support/PerThreadBumpPtrAllocatorTest.cpp
M llvm/unittests/Support/ScopedPrinterTest.cpp
M llvm/unittests/Support/SpecialCaseListTest.cpp
M llvm/unittests/Support/ThreadSafeAllocatorTest.cpp
M llvm/utils/FileCheck/FileCheck.cpp
M llvm/utils/TableGen/SearchableTableEmitter.cpp
M llvm/utils/UnicodeData/UnicodeNameMappingGenerator.cpp
M llvm/utils/gn/secondary/clang-tools-extra/clang-tidy/readability/BUILD.gn
M llvm/utils/gn/secondary/clang/lib/StaticAnalyzer/Checkers/BUILD.gn
M llvm/utils/gn/secondary/libcxx/include/BUILD.gn
M llvm/utils/gn/secondary/lldb/source/Core/BUILD.gn
M llvm/utils/gn/secondary/lldb/source/Host/BUILD.gn
M llvm/utils/gn/secondary/lldb/source/Utility/BUILD.gn
M llvm/utils/gn/secondary/llvm/lib/Target/Hexagon/BUILD.gn
M llvm/utils/lit/lit/main.py
M llvm/utils/lit/lit/run.py
A mlir/include/mlir-c/Dominance.h
M mlir/include/mlir-c/IR.h
M mlir/include/mlir-c/Rewrite.h
M mlir/include/mlir/Bindings/Python/IRAttributes.h
A mlir/include/mlir/CAPI/Dominance.h
A mlir/include/mlir/CAPI/IRMapping.h
M mlir/include/mlir/Conversion/Passes.td
M mlir/include/mlir/Dialect/Linalg/IR/LinalgStructuredOps.td
M mlir/include/mlir/Interfaces/ValueBoundsOpInterface.h
M mlir/lib/Bindings/Python/IRAffine.cpp
M mlir/lib/Bindings/Python/IRCore.cpp
M mlir/lib/CAPI/IR/CMakeLists.txt
A mlir/lib/CAPI/IR/Dominance.cpp
M mlir/lib/CAPI/IR/IR.cpp
M mlir/lib/CAPI/Transforms/Rewrite.cpp
M mlir/lib/Dialect/Affine/Transforms/AffineDataCopyGeneration.cpp
M mlir/lib/Dialect/Arith/IR/ArithDialect.cpp
M mlir/lib/Dialect/Arith/IR/ValueBoundsOpInterfaceImpl.cpp
M mlir/lib/Dialect/MemRef/Transforms/ElideReinterpretCast.cpp
M mlir/lib/Dialect/MemRef/Transforms/RuntimeOpVerification.cpp
M mlir/lib/Dialect/NVGPU/IR/NVGPUDialect.cpp
M mlir/lib/Interfaces/ValueBoundsOpInterface.cpp
M mlir/lib/Target/LLVMIR/Transforms/TargetToTargetFeatures.cpp
M mlir/test/CAPI/ir.c
M mlir/test/CAPI/rewrite.c
M mlir/test/Conversion/ArithAndMathToAPFloat/math-to-apfloat.mlir
M mlir/test/Dialect/Arith/value-bounds-op-interface-impl.mlir
M mlir/test/Dialect/Linalg/invalid.mlir
M mlir/test/Dialect/MemRef/elide-reinterpret-cast.mlir
M mlir/test/Dialect/MemRef/runtime-verification.mlir
M mlir/test/Dialect/NVGPU/optimize-shared-memory.mlir
A mlir/test/Integration/Dialect/MemRef/expand-shape-runtime-verification.mlir
M offload/plugins-nextgen/common/src/Utils/ELF.cpp
M utils/bazel/llvm-project-overlay/libc/BUILD.bazel
M utils/bazel/llvm-project-overlay/libc/test/src/math/BUILD.bazel
M utils/bazel/llvm-project-overlay/libc/test/src/math/smoke/BUILD.bazel
M utils/bazel/llvm-project-overlay/mlir/BUILD.bazel
Log Message:
-----------
[𝘀𝗽𝗿] changes introduced through rebase
Created using spr 1.3.7
[skip ci]
Compare: https://github.com/llvm/llvm-project/compare/c16bb141bcde...fe4c00e0b1ee
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