LLVM/project 5833c47 — llvm/test/Transforms/Util/DeclareRuntimeLibcalls riscv.ll sparc.ll

RuntimeLibcalls: Use correct type for LDbl

Use the Module / Triple's correct long double type. Previously this
was hardcoded to assume double.

Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
DeltaFile
+181-181llvm/test/Transforms/Util/DeclareRuntimeLibcalls/bsd.ll
+134-134llvm/test/Transforms/Util/DeclareRuntimeLibcalls/windows.ll
+123-123llvm/test/Transforms/Util/DeclareRuntimeLibcalls/systemz.ll
+96-96llvm/test/Transforms/Util/DeclareRuntimeLibcalls/sparc.ll
+96-96llvm/test/Transforms/Util/DeclareRuntimeLibcalls/aarch64.ll
+94-94llvm/test/Transforms/Util/DeclareRuntimeLibcalls/riscv.ll
+724-7248 files not shown
+940-88914 files

LLVM/project faa61cd — llvm/test/CodeGen/AVR unaligned-atomic-ops.ll

AVR: Generate checks in unaligned-atomic-ops.ll (#233779)
DeltaFile
+18-2llvm/test/CodeGen/AVR/unaligned-atomic-ops.ll
+18-21 files

LLVM/project 9a028ba — clang/lib/CIR/Lowering/DirectToLLVM LowerToLLVM.cpp, clang/test/CIR/CodeGenHIP spirv-constant-addrspace.hip

[CIR][SPIR-V] Use the program address space for function aliases (#233720)

Alias initializer pointer was hardcoded to address space 0, which trips
an assertion on spirv64-amd-amdhsa where functions live in space 4
DeltaFile
+3-3clang/lib/CIR/Lowering/DirectToLLVM/LowerToLLVM.cpp
+5-0clang/test/CIR/CodeGenHIP/spirv-constant-addrspace.hip
+8-32 files

LLVM/project 8d8b25d — llvm/lib/CodeGen RegAllocBase.h RegAllocFast.cpp, llvm/test/CodeGen/ARM inlineasm-error-t-toofewregs.ll

RegAlloc: Fix dead flags of defs after failed allocation

After an allocation failure, the error register may be assigned to
multiple defs of the same instruction. If one of these is dead and
another live, the instruction fails the verifier check added in #233110.

In RegAllocBase, add the failed defs to the error register's regunit
live ranges so a later assignment cannot also def it, and make the dead
flags of the error defs agree with any def already assigned the
register. In RegAllocFast, clear the dead flags of registers with a
live def on instructions using an error assignment.

Co-Authored-By: Claude Opus 5.5 <noreply at anthropic.com>
DeltaFile
+44-0llvm/lib/CodeGen/RegAllocBase.cpp
+20-0llvm/lib/CodeGen/RegAllocFast.cpp
+6-0llvm/lib/CodeGen/RegAllocBase.h
+2-1llvm/test/CodeGen/Thumb2/inlineasm-error-t-toofewregs-mve.ll
+2-1llvm/test/CodeGen/ARM/inlineasm-error-t-toofewregs.ll
+74-25 files

LLVM/project 9c54b1f — lldb/source/Plugins/SymbolFile/DWARF DWARFASTParserFortran.h DWARFASTParserFortran.cpp, lldb/source/Plugins/TypeSystem/Fortran TypeSystemFortran.h TypeSystemFortran.cpp

[lldb][Fortran] Added support for base types to DWARFASTParserFortran (#223406)

This PR adds support for base types to DWARFASTParserFortran, introduces
a method to retrieve the parser from TypeSystemFortran, and adds unit
tests for type parsing.

Changes:

- Added DW_TAG_base_type handling to ParseType.

- Added scope resolution for parsed types.

- Added a method to return the parser from TypeSystemFortran.

- Added unit tests to verify that base types are parsed correctly.

Relates to #109119.
DeltaFile
+209-0lldb/unittests/SymbolFile/DWARF/DWARFASTParserFortranTests.cpp
+140-4lldb/source/Plugins/SymbolFile/DWARF/DWARFASTParserFortran.cpp
+17-1lldb/source/Plugins/SymbolFile/DWARF/DWARFASTParserFortran.h
+8-0lldb/source/Plugins/TypeSystem/Fortran/TypeSystemFortran.cpp
+3-0lldb/source/Plugins/TypeSystem/Fortran/TypeSystemFortran.h
+2-0lldb/unittests/SymbolFile/DWARF/CMakeLists.txt
+379-56 files

LLVM/project 840af7c — libc/src/__support/OSUtil/linux/syscall_wrappers CMakeLists.txt sched_get_priority_max.h, libc/src/sched/linux CMakeLists.txt sched_get_priority_max.cpp

[libc] Use a syscall wrapper for sched_get_priority_max
DeltaFile
+34-0libc/src/__support/OSUtil/linux/syscall_wrappers/sched_get_priority_max.h
+28-0utils/bazel/llvm-project-overlay/libc/BUILD.bazel
+5-8libc/src/sched/linux/sched_get_priority_max.cpp
+12-0libc/src/__support/OSUtil/linux/syscall_wrappers/CMakeLists.txt
+4-2libc/src/sched/linux/CMakeLists.txt
+83-105 files

LLVM/project 89e3afe — llvm/lib/Transforms/Vectorize VectorizeOptions.td SLPVectorizer.cpp, llvm/test/Transforms/SLPVectorizer/X86 reduction-width-budget.ll

[SLP]Limit rejected tree size for reductions

The overlapping windows of the same reduction rebuild almost the same
trees. Long reductions, like the runtime check chains, spend most of
the time on the rejected wide windows. Like the scheduling region, the
size of the next tree, estimated by the last rejected one, is limited
by -slp-reduction-budget (default is 65536 scalars), reduced by the
sizes of the rejected trees, but not below 2048 scalars, so the
smaller trees are still analyzed. The non-power-of-2 widths get only
2048 scalars for the rejected trees. The budget limits only the series
of the rejected trees, the vectorized tree starts a new series.

Fixes #229372

Assisted-by: Cursor

Reviewers: RKSimon, bababuck

Pull Request: https://github.com/llvm/llvm-project/pull/232884
DeltaFile
+71-0llvm/test/Transforms/SLPVectorizer/X86/reduction-width-budget.ll
+32-3llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
+2-0llvm/lib/Transforms/Vectorize/VectorizeOptions.td
+105-33 files

LLVM/project 980be58 — llvm/lib/Transforms/Vectorize SLPVectorizer.cpp, llvm/lib/Transforms/Vectorize/SLPVectorizer SLPUtils.cpp SLPCompatibilityAnalysis.h

[SLP]Treat trunc X to i1 as bit test (and X, 1) != 0

InstCombine canonicalizes icmp ne (and X, 1), 0 to trunc X to i1,
which blocked bundling it with the other bit tests. Model it as icmp
eq/ne.

Fixes #230768

Assisted-by: Cursor

Reviewers: bababuck, RKSimon

Pull Request: https://github.com/llvm/llvm-project/pull/233124
DeltaFile
+81-28llvm/lib/Transforms/Vectorize/SLPVectorizer/SLPCompatibilityAnalysis.cpp
+67-14llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
+25-54llvm/test/Transforms/SLPVectorizer/X86/interchangeable-cmp-predicates.ll
+23-13llvm/test/Transforms/SLPVectorizer/revec.ll
+21-11llvm/lib/Transforms/Vectorize/SLPVectorizer/SLPCompatibilityAnalysis.h
+2-1llvm/lib/Transforms/Vectorize/SLPVectorizer/SLPUtils.cpp
+219-1216 files

LLVM/project 6db81df — lldb/source/Plugins/SymbolFile/DWARF DWARFASTParserFortran.cpp

[lldb][Fortran] Removed space between if-else, changed sentinel value comment and used divideCeil for bit to byte conversion
DeltaFile
+5-5lldb/source/Plugins/SymbolFile/DWARF/DWARFASTParserFortran.cpp
+5-51 files

LLVM/project e73e138 — lldb/source/Plugins/SymbolFile/DWARF DWARFASTParserFortran.cpp

[lldb][Fortran] Changed encoding sentinel value to 0x00, removed redundant comment and changed formatting on type name checks
DeltaFile
+5-5lldb/source/Plugins/SymbolFile/DWARF/DWARFASTParserFortran.cpp
+5-51 files

LLVM/project 752ded6 — lldb/source/Plugins/SymbolFile/DWARF DWARFASTParserFortran.cpp, lldb/unittests/SymbolFile/DWARF DWARFASTParserFortranTests.cpp

[lldb][Fortran] Moved break in case and fixed failing test
DeltaFile
+7-3lldb/source/Plugins/SymbolFile/DWARF/DWARFASTParserFortran.cpp
+4-4lldb/unittests/SymbolFile/DWARF/DWARFASTParserFortranTests.cpp
+11-72 files

LLVM/project ed4acb5 — lldb/source/Plugins/SymbolFile/DWARF DWARFASTParserFortran.cpp, lldb/unittests/SymbolFile/DWARF DWARFASTParserFortranTests.cpp

[lldb][Fortran] Addressed feedback, including early exits throughout ParseTypeFromDWARF and not treating DW_ATE_unsigned as a sentinel value
DeltaFile
+86-77lldb/source/Plugins/SymbolFile/DWARF/DWARFASTParserFortran.cpp
+4-4lldb/unittests/SymbolFile/DWARF/DWARFASTParserFortranTests.cpp
+90-812 files

LLVM/project 6b417c5 — lldb/source/Plugins/SymbolFile/DWARF DWARFASTParserFortran.h DWARFASTParserFortran.cpp, lldb/source/Plugins/TypeSystem/Fortran TypeSystemFortran.h TypeSystemFortran.cpp

[lldb][Fortran] Added support for base types to DWARFASTParserFortran, tests for DWARFASTParserFortran and a method to get the parser from TypeSystemFortran
DeltaFile
+209-0lldb/unittests/SymbolFile/DWARF/DWARFASTParserFortranTests.cpp
+127-4lldb/source/Plugins/SymbolFile/DWARF/DWARFASTParserFortran.cpp
+17-1lldb/source/Plugins/SymbolFile/DWARF/DWARFASTParserFortran.h
+8-0lldb/source/Plugins/TypeSystem/Fortran/TypeSystemFortran.cpp
+3-0lldb/source/Plugins/TypeSystem/Fortran/TypeSystemFortran.h
+2-0lldb/unittests/SymbolFile/DWARF/CMakeLists.txt
+366-56 files

LLVM/project cbbb5ac — lldb/source/Plugins/TypeSystem/Fortran FortranTypes.cpp TypeSystemFortran.h, lldb/unittests/Symbol CMakeLists.txt TestTypeSystemFortran.cpp

[lldb][Fortran] Added support for basic types in TypeSystemFortran (#223380)

This PR adds support for Base Types (INTEGER, LOGICAL, COMPLEX, REAL).

Changes:

- Adds methods to create types through the FortranType class.
- Manages type lifetimes using a SmallVector.
- Prevents duplicates using a FoldingSet.
- Allows retrieving information about the size, name, and kind of base
type.

Testing is done through TestTypeSystemFortran, which will have all tests
relating to the Type System.

 
Part of the Add Fortran support to LLDB GSoC 2026 project.

Relates to #109119.
DeltaFile
+291-0lldb/unittests/Symbol/TestTypeSystemFortran.cpp
+249-0lldb/source/Plugins/TypeSystem/Fortran/TypeSystemFortran.cpp
+77-0lldb/source/Plugins/TypeSystem/Fortran/FortranTypes.h
+32-35lldb/source/Plugins/TypeSystem/Fortran/TypeSystemFortran.h
+16-0lldb/source/Plugins/TypeSystem/Fortran/FortranTypes.cpp
+2-0lldb/unittests/Symbol/CMakeLists.txt
+667-351 files not shown
+668-357 files

LLVM/project 1820134 — llvm/test/DebugInfo/MIR/AArch64 live-debug-vars-stale-slotindexes.mir, llvm/test/DebugInfo/MIR/X86 live-debug-vars-stale-slotindexes.mir

[LiveDebugVariables] Add tests for canonicalizeIndexes (#225375)

Test various paths that leave stale SlotIndexes that reach
canonicalizeIndexes.

Co-authored-by: Claude Opus 5 (1M context) <noreply at anthropic.com>
DeltaFile
+348-0llvm/test/DebugInfo/MIR/X86/live-debug-vars-stale-slotindexes.mir
+335-0llvm/test/DebugInfo/MIR/AArch64/live-debug-vars-stale-slotindexes.mir
+683-02 files

LLVM/project 225b373 — llvm/test/Transforms/SLPVectorizer revec.ll, llvm/test/Transforms/SLPVectorizer/X86 interchangeable-cmp-predicates.ll

[SLP][NFC]Add extra tests for trunc/icmp conversion, NFC



Reviewers: 

Pull Request: https://github.com/llvm/llvm-project/pull/233781
DeltaFile
+30-0llvm/test/Transforms/SLPVectorizer/X86/interchangeable-cmp-predicates.ll
+23-0llvm/test/Transforms/SLPVectorizer/revec.ll
+53-02 files

LLVM/project e032dbe — clang/include/clang/AST StmtOpenMP.h, clang/lib/AST StmtOpenMP.cpp

[clang][OpenMP] Extend no-loop promotion to the split teams loop

Widen the no-loop promotion to apply not only to the fused target teams
distribute parallel for but include the same region written as separate
directives, other directives promotable to parallel for, and regions
carrying a schedule clause that asks for a mapping a no-loop kernel
already provides.

Use the SPMD_NO_LOOP kernel tag to carry the promotion decision, based
on whether the kernel can get fully promoted to a no-loop kernel. This
eliminates the previous discrepancy where a clause got the tag but not
the promotion.
DeltaFile
+95-24clang/test/OpenMP/target_no_loop.cpp
+63-13clang/lib/CodeGen/CGOpenMPRuntimeGPU.cpp
+39-28clang/lib/CodeGen/CGStmtOpenMP.cpp
+10-1clang/include/clang/AST/StmtOpenMP.h
+2-1clang/lib/Sema/SemaOpenMP.cpp
+2-1clang/lib/AST/StmtOpenMP.cpp
+211-682 files not shown
+213-688 files

LLVM/project 6cccea9 — llvm/include/llvm/CodeGen SlotIndexes.h, llvm/test/CodeGen/AMDGPU wqm-demote-split-debug.mir

[CodeGen] Allow inserting a block that starts with debug instructions in SlotIndexes (#233453)

SlotIndexes::insertMBBInMaps used the index of the new block's first
instruction to decide where to insert the block's start entry. Debug and
pseudo probe instructions have no index, so splitting a block with
LiveIntervals available crashed if the new block started with one. For
example, SIWholeQuadMode splits a block after a lowered demote, and a
DBG_VALUE following the demote made llc crash with -g.

Use the first instruction that has an index instead, or the end of the
previous block if there is none.

Co-Authored-By: Claude Opus 5.5 <noreply at anthropic.com>
DeltaFile
+162-0llvm/test/CodeGen/AMDGPU/wqm-demote-split-debug.mir
+5-2llvm/include/llvm/CodeGen/SlotIndexes.h
+167-22 files

LLVM/project ddfad28 — llvm/test/CodeGen/AVR unaligned-atomic-ops.ll

AVR: Generate checks in unaligned-atomic-ops.ll
DeltaFile
+18-2llvm/test/CodeGen/AVR/unaligned-atomic-ops.ll
+18-21 files

LLVM/project 2b83d6a — libcxx/test/extensions/posix xopen_source.gen.py

[libc++] Mark xopen_source test unsupported on OpenBSD (#233710)

OpenBSD's headers strictly honor _XOPEN_SOURCE. With 500 and 600 the
POSIX.1-2008 locale API (locale_t, uselocale(), LC_*_MASK) is hidden,
and with any value below 800 asprintf() is hidden since it is only
exposed for POSIX.1-2024 or the BSD namespace. libc++'s OpenBSD locale
support relies on these from public headers, so every generated test
fails.

Mark the test unsupported on OpenBSD targets, as is already done for
FreeBSD.
DeltaFile
+6-0libcxx/test/extensions/posix/xopen_source.gen.py
+6-01 files

LLVM/project 6b81bfe — llvm/lib/Target/AMDGPU VOP3PInstructions.td

[AMDGPU] Restrict VI VOP3P reals to GFX9. NFCI. (#232069)

VOP3P_Real_vi used HasVOP3PInsts as its AssemblerPredicate, which was
equivalent to GFX9 when VOP3P was introduced, but GFX10+ also have
FeatureVOP3PInsts. This meant that on GFX10+ the asm matcher could
match both the VI real and the real for the current generation, which
have different encodings. It only selected the right one because the VI
reals are defined later.

Use isGFX9Only instead. All GFX9 targets have FeatureVOP3PInsts, and
GFX8 does not have FeatureGFX9Insts, so this does not change which
targets the VI reals are available on, apart from excluding GFX10+.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply at anthropic.com>
Co-Authored-By: Ivan Kosarev <ivan.kosarev at amd.com>
DeltaFile
+4-1llvm/lib/Target/AMDGPU/VOP3PInstructions.td
+4-11 files

LLVM/project fe882c6 — llvm/include/llvm/CodeGen BasicTTIImpl.h, llvm/test/Analysis/CostModel/AArch64 partial-reductions.ll

[CostModel] Generic equal type cost model partial reduce (#229426)

When trying to enable partial reductions as a default reduction step in
#228481, a regression was found where a loop that would have been
unrolled if the steps were plain add instructions no longer unrolled.
This is due to inaccurate costs in the default path, especially for code
size.

This updates the basic TTI cost functions to return the cost of the
equivalent arithmetic instruction in the case the input and accumulator
types are the same, otherwise falls back to querying the backend with an
ISD opcode.
DeltaFile
+291-0llvm/test/Analysis/CostModel/X86/partial-reductions.ll
+250-0llvm/test/Transforms/LoopUnroll/AArch64/partial-reductions.ll
+156-0llvm/test/Transforms/LoopUnroll/X86/partial-reductions.ll
+79-0llvm/test/Analysis/CostModel/AArch64/partial-reductions.ll
+31-0llvm/include/llvm/CodeGen/BasicTTIImpl.h
+807-05 files

LLVM/project c18b0dc — llvm/test/CodeGen/AMDGPU inline-asm-clobber-partial-overlap-output.ll

Add test with clobber partially overlapping an output def

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply at anthropic.com>
DeltaFile
+17-0llvm/test/CodeGen/AMDGPU/inline-asm-clobber-partial-overlap-output.ll
+17-01 files

LLVM/project fe27f36 — mlir/lib/Interfaces ControlFlowInterfaces.cpp, mlir/unittests/Interfaces ControlFlowInterfacesTest.cpp

[mlir] Fix false positive loops in RegionBranchOpInterface::hasLoop

hasLoop traversed the region graph from each entry region and reported
a loop as soon as it popped an already visited region. The worklist
gets one entry per successor of each terminator, so a region reached
along two paths was popped twice even without a cycle, e.g. when a
region has two terminators that both branch to the same successor
region. hasLoop now reports a loop only if some region reachable from
the parent op can reach itself, using the same check as
isRepetitiveRegion. The visited argument of the traversal stop
condition is no longer used and is removed.

Assisted-by: Claude Code (Claude Opus 5.5)
DeltaFile
+85-1mlir/unittests/Interfaces/ControlFlowInterfacesTest.cpp
+16-37mlir/lib/Interfaces/ControlFlowInterfaces.cpp
+101-382 files

LLVM/project b19a6a9 — llvm/lib/CodeGen/SelectionDAG InstrEmitter.cpp, llvm/test/CodeGen/X86 inline-asm-default-clobbers.ll

Keep inline asm clobbers live when they are the same register as an output
DeltaFile
+9-0llvm/test/CodeGen/X86/inline-asm-default-clobbers.ll
+4-4llvm/lib/CodeGen/SelectionDAG/InstrEmitter.cpp
+13-42 files

LLVM/project 922869f — lldb/test/API/functionalities/gdb_remote_client TestXMLRegisterUnion.py

[lldb][test] Accept legacy register index overflow diagnostic (#233764)

[ARM builder was failing
](https://lab.llvm.org/buildbot/#/builders/18/builds/27896)after I
merged https://github.com/llvm/llvm-project/pull/224147

because `TestXMLRegisterUnion.py` expected the legacy expression parser
to report oversized vector indexes with array index, but on 32-bit ARM
the index `4294967296` overflows long during parsing first, so LLDB
reports invalid index expression `""` instead. The command still fails
correctly; only the test’s expected diagnostic was too specific.

Co-authored-by: Bar Soloveychik <barsolo at fb.com>
DeltaFile
+12-2lldb/test/API/functionalities/gdb_remote_client/TestXMLRegisterUnion.py
+12-21 files

LLVM/project b9c0e9b — clang/lib/CodeGen CGStmtOpenMP.cpp

Add braces around loop body with nested if
DeltaFile
+3-2clang/lib/CodeGen/CGStmtOpenMP.cpp
+3-21 files

LLVM/project 7636b88 — clang/lib/CodeGen CGOpenMPRuntimeGPU.cpp CGStmtOpenMP.cpp, clang/test/OpenMP target_no_loop.cpp

[clang][OpenMP] Emit lastprivate final copies in no-loop kernels

Promotion rejected lastprivate because the no-loop branch leaves the
worksharing path before it privatizes or copies out, so the clause would
have been silently dropped.

Privatize the non-counter variables in the parallel region and copy them
out under the last iteration that applyWorkshareLoop publishes, forcing
the exit barrier the copy reads through. Loop counters stay at the
distribute level and reach EmitOMPSimdFinal.
DeltaFile
+76-20clang/test/OpenMP/target_no_loop.cpp
+52-4clang/lib/CodeGen/CGStmtOpenMP.cpp
+48-0offload/test/offloading/target-no-loop.c
+0-2clang/lib/CodeGen/CGOpenMPRuntimeGPU.cpp
+176-264 files

LLVM/project 0d91720 — llvm/lib/Target/AArch64 AArch64FrameLowering.cpp, llvm/test/CodeGen/AArch64 sve-callee-save-restore-groups-frame-layout.ll

[NFC][AArch64][FrameLowering] Refactor handling of Callee-Saved spill pairs (#233405)

This PR is preparation for a subsequent PR that will enable quad spills.

The main refactor is adding functions to RegGroupInfo that are dynamic
to the number of registers in a RegGroup.
The subsequent PR will expand these functions for Quad ZPR spills.

A test was also added to show the before/after of this refactor and to
catch any errors in MIR after frame lowering.
DeltaFile
+112-116llvm/lib/Target/AArch64/AArch64FrameLowering.cpp
+89-0llvm/test/CodeGen/AArch64/sve-callee-save-restore-groups-frame-layout.ll
+201-1162 files

LLVM/project 51ec779 — clang/lib/Analysis ThreadSafetyCommon.cpp, clang/lib/Sema SemaDeclAttr.cpp

Revert "[clang][ThreadSafety] Do not read a C field's address as a pointer to member (#231604) (#233614)

This reverts commit 217e229a1f32785fccdd3b3f51429f0d309dea45.

It causes false positives in code that previously compiled:

- https://github.com/ClangBuiltLinux/linux/issues/2187
- https://github.com/llvm/llvm-project/pull/231604#issuecomment-6278791594

In general the old behaviour still should be fixed, but let's give us
some time to work out the corner cases.
DeltaFile
+2-28clang/test/Sema/warn-thread-safety-analysis.c
+0-20clang/test/SemaCXX/warn-thread-safety-analysis.cpp
+5-5clang/lib/Sema/SemaDeclAttr.cpp
+6-3clang/lib/Analysis/ThreadSafetyCommon.cpp
+13-564 files