LLVM/project fc082e1llvm/lib/CodeGen/GlobalISel CallLowering.cpp, llvm/lib/Target/RISCV/GISel RISCVCallLowering.cpp

[RISCV][GlobalISel]Implement support for vector calling convention with fixed length vectors (#199227)

Implementing IRTranslator support for fixed length vectors when the V
extension is used. This implementation works similar to SelecionDAGs. We
use insert and extract subvector OPs to get the fixed length vectors out
of the scalable length vectors.
DeltaFile
+607-0llvm/test/CodeGen/RISCV/GlobalISel/irtranslator/fixed-vectors-calling-conv.ll
+47-12llvm/lib/Target/RISCV/GISel/RISCVCallLowering.cpp
+1-0llvm/lib/CodeGen/GlobalISel/CallLowering.cpp
+655-123 files

LLVM/project 1d2c3a7llvm/test/Transforms/EarlyCSE/AArch64 intrinsics-1xN.ll

fixup! [AArch64][TTI][EarlyCSE] Add support for ld1xN and st1xN intrinsics
DeltaFile
+161-350llvm/test/Transforms/EarlyCSE/AArch64/intrinsics-1xN.ll
+161-3501 files

LLVM/project 94373a9libc/include math.yaml

[libc][math] Add iscanonical functions to math.yaml

Surface the existing iscanonical, iscanonicalf, iscanonicalf128, iscanonicalf16, and iscanonicall
implementations through the generated math.h.

To test:
`cmake -Bbuild -Sruntimes -GNinja -DLLVM_ENABLE_RUNTIMES=libc -DLLVM_LIBC_FULL_BUILD=ON`
`pip install pyyaml`
`ninja -C build libc.include.math.__generated_hdr__`
Then check `build/libc/include/math.h` for their signatures.

Add `-DLIBC_TYPES_HAS_FLOAT128=ON` to test for iscanonicalf128
in cmake invocation if host does not support it.
And `-DLIBC_TYPES_HAS_FLOAT16=ON` for iscanonicalf16.
DeltaFile
+32-0libc/include/math.yaml
+32-01 files

LLVM/project d27f84clibc/include math.yaml

[libc][math] Add iscanonical functions to math.yaml

Surface the existing iscanonical, iscanonicalf, iscanonicalf128, iscanonicalf16, and iscanonicall
implementations through the generated math.h.

To test:
`cmake -Bbuild -Sruntimes -GNinja -DLLVM_ENABLE_RUNTIMES=libc -DLLVM_LIBC_FULL_BUILD=ON`
`pip install pyyaml`
`ninja -C build libc.include.math.__generated_hdr__`
Then check `build/libc/include/math.h` for their signatures.

Add `-DLIBC_TYPES_HAS_FLOAT128=ON` to test for iscanonicalf128
in cmake invocation if host does not support it.
And `LIBC_TYPES_HAS_FLOAT16=ON` for iscanonicalf16.
DeltaFile
+32-0libc/include/math.yaml
+32-01 files

LLVM/project 44eca06libc/include math.yaml

[libc][math] Add iscanonical functions to math.yaml

Surface the existing iscanonical, iscanonicalbf16, iscanonicalf, iscanonicalf128, iscanonicalf16, and iscanonicall
implementations through the generated math.h.

To test:
`cmake -Bbuild -Sruntimes -GNinja -DLLVM_ENABLE_RUNTIMES=libc -DLLVM_LIBC_FULL_BUILD=ON`
`pip install pyyaml`
`ninja -C build libc.include.math.__generated_hdr__`
Then check `build/libc/include/math.h` for their signatures.

Add `-DLIBC_TYPES_HAS_FLOAT128=ON` to test for iscanonicalf128
in cmake invocation if host does not support it.
And `LIBC_TYPES_HAS_FLOAT16=ON` for iscanonicalf16.
DeltaFile
+38-0libc/include/math.yaml
+38-01 files

LLVM/project 5ecbf12bolt/lib/Rewrite RewriteInstance.cpp

format

Created using spr 1.3.4
DeltaFile
+2-1bolt/lib/Rewrite/RewriteInstance.cpp
+2-11 files

LLVM/project a8e5595llvm/lib/Target/RISCV RISCVTargetTransformInfo.cpp, llvm/test/Analysis/CostModel/RISCV shuffle-load.ll

[RISCV][TTI] Make getShuffleCost check we have a vector before querying getVectorElementCount (#199286)

Fixes the assert reported here:

<https://github.com/llvm/llvm-project/pull/198446#issuecomment-4522589671>

I believe this happens when the element type isn't a legal RVV element
type and so has been scalarised by type legalisation.

Adding this guard also matches the AArch64 implementation.

The test change is LLM generated.
DeltaFile
+13-0llvm/test/Analysis/CostModel/RISCV/shuffle-load.ll
+3-2llvm/lib/Target/RISCV/RISCVTargetTransformInfo.cpp
+16-22 files

LLVM/project d6be71fclang/lib/CodeGen CGCall.cpp, clang/test/CodeGenCXX noescape.cpp

[Clang][CodeGen] map `noescape` to capture(address) (was capture(none)) (#199281)

`capture(none)` has very restrictive semantics and an easy footgun to
accidentally fire some UB into your code with. Most significantly it
does not allow any visible side-effects of whether a pointer was null or
not to escape the function. This means that the function cannot perform
different side effects depending on whether a pointer marked `noescape`
is null. Relax this to `captures(address)`, which allows information
about the numerical address to escape the function, but no provenance
(i.e. nothing that could be dereferenced) may escape.

As discussed in
https://discourse.llvm.org/t/rfc-updating-the-semantics-of-the-noescape-attribute/90326.
DeltaFile
+15-15clang/test/CodeGenCXX/noescape.cpp
+13-13clang/test/CodeGenObjC/noescape.m
+2-1clang/lib/CodeGen/CGCall.cpp
+30-293 files

LLVM/project 37c7143bolt/include/bolt/Profile DataAggregator.h, bolt/lib/Profile DataAggregator.cpp

[𝘀𝗽𝗿] initial version

Created using spr 1.3.4
DeltaFile
+115-47bolt/lib/Profile/DataAggregator.cpp
+6-24bolt/tools/driver/llvm-bolt.cpp
+19-4bolt/include/bolt/Profile/DataAggregator.h
+21-2bolt/tools/merge-fdata/merge-fdata.cpp
+22-0bolt/test/merge-fdata-no-lbr-event-multi.test
+18-0bolt/test/merge-fdata-no-lbr-event.test
+201-776 files not shown
+234-8812 files

LLVM/project ff0a797bolt/include/bolt/Profile DataAggregator.h, bolt/lib/Profile DataAggregator.cpp

[𝘀𝗽𝗿] changes to main this commit is based on

Created using spr 1.3.4

[skip ci]
DeltaFile
+67-43bolt/lib/Profile/DataAggregator.cpp
+3-22bolt/tools/driver/llvm-bolt.cpp
+21-2bolt/tools/merge-fdata/merge-fdata.cpp
+22-0bolt/test/merge-fdata-no-lbr-event-multi.test
+18-0bolt/test/merge-fdata-no-lbr-event.test
+7-1bolt/include/bolt/Profile/DataAggregator.h
+138-686 files

LLVM/project 2464812bolt/include/bolt/Profile DataAggregator.h, bolt/lib/Profile DataAggregator.cpp

[𝘀𝗽𝗿] initial version

Created using spr 1.3.4
DeltaFile
+67-43bolt/lib/Profile/DataAggregator.cpp
+3-22bolt/tools/driver/llvm-bolt.cpp
+21-2bolt/tools/merge-fdata/merge-fdata.cpp
+22-0bolt/test/merge-fdata-no-lbr-event-multi.test
+18-0bolt/test/merge-fdata-no-lbr-event.test
+7-1bolt/include/bolt/Profile/DataAggregator.h
+138-686 files

LLVM/project bfd5335bolt/include/bolt/Profile DataAggregator.h, bolt/lib/Profile DataAggregator.cpp

[𝘀𝗽𝗿] changes to main this commit is based on

Created using spr 1.3.4

[skip ci]
DeltaFile
+67-43bolt/lib/Profile/DataAggregator.cpp
+3-22bolt/tools/driver/llvm-bolt.cpp
+7-1bolt/include/bolt/Profile/DataAggregator.h
+77-663 files

LLVM/project 30ed3e3bolt/include/bolt/Profile DataAggregator.h, bolt/lib/Profile DataAggregator.cpp

[𝘀𝗽𝗿] initial version

Created using spr 1.3.4
DeltaFile
+67-43bolt/lib/Profile/DataAggregator.cpp
+3-22bolt/tools/driver/llvm-bolt.cpp
+7-1bolt/include/bolt/Profile/DataAggregator.h
+77-663 files

LLVM/project 44df393bolt/include/bolt/Profile DataAggregator.h, bolt/lib/Profile DataAggregator.cpp

[𝘀𝗽𝗿] changes to main this commit is based on

Created using spr 1.3.4

[skip ci]
DeltaFile
+67-43bolt/lib/Profile/DataAggregator.cpp
+7-1bolt/include/bolt/Profile/DataAggregator.h
+74-442 files

LLVM/project 96a78debolt/include/bolt/Profile DataAggregator.h, bolt/lib/Profile DataAggregator.cpp

[𝘀𝗽𝗿] initial version

Created using spr 1.3.4
DeltaFile
+67-43bolt/lib/Profile/DataAggregator.cpp
+7-1bolt/include/bolt/Profile/DataAggregator.h
+74-442 files

LLVM/project b21348cbolt/include/bolt/Profile DataAggregator.h, bolt/lib/Profile DataAggregator.cpp

[𝘀𝗽𝗿] changes to main this commit is based on

Created using spr 1.3.4

[skip ci]
DeltaFile
+55-36bolt/lib/Profile/DataAggregator.cpp
+3-0bolt/include/bolt/Profile/DataAggregator.h
+58-362 files

LLVM/project 079db4dbolt/include/bolt/Profile DataAggregator.h, bolt/lib/Profile DataAggregator.cpp

[𝘀𝗽𝗿] initial version

Created using spr 1.3.4
DeltaFile
+55-36bolt/lib/Profile/DataAggregator.cpp
+3-0bolt/include/bolt/Profile/DataAggregator.h
+58-362 files

LLVM/project 456906fmlir/include/mlir/Dialect/XeGPU/IR XeGPUOps.td, mlir/lib/Dialect/XeGPU/IR XeGPUOps.cpp

[MLIR][XeGPU]Extend load_matrix/store_matrix to support 1D SLM access (#198652)

This PR extended xegpu.load_matrix and xegpu.store_matrix to support 1D
mem_desc for contiguous SLM access
  - Added unit tests for 1D load/store (valid ops and invalid cases)
- Added integration test verifying both 1D (<4096xbf16>) and 2D
(<64x128xbf16>), correctly lower through the full WG→SG→WI→XeVM pipeline

---------

Co-authored-by: Claude Opus 4.6 (1M context) <noreply at anthropic.com>
DeltaFile
+31-15mlir/include/mlir/Dialect/XeGPU/IR/XeGPUOps.td
+40-0mlir/test/Integration/Dialect/XeGPU/WG/load_store_matrix.mlir
+35-0mlir/test/Dialect/XeGPU/ops.mlir
+6-16mlir/lib/Dialect/XeGPU/IR/XeGPUOps.cpp
+6-6mlir/test/Dialect/XeGPU/invalid.mlir
+5-5mlir/lib/Dialect/XeGPU/Transforms/XeGPULayoutImpl.cpp
+123-421 files not shown
+123-437 files

LLVM/project a13a4eelibc/include math.yaml

[libc][math] Add iscanonical functions to math.yaml

Surface the existing iscanonical, iscanonicalbf16, fiscanonicalf, iscanonicalf128, iscanonicalf16, and iscanonicall
implementations through the generated math.h.

To test:
`cmake -Bbuild -Sruntimes -GNinja -DLLVM_ENABLE_RUNTIMES=libc -DLLVM_LIBC_FULL_BUILD=ON`
`pip install pyyaml`
`ninja -C build libc.include.math.__generated_hdr__`
Then check `build/libc/include/math.h` for their signatures.

Add `-DLIBC_TYPES_HAS_FLOAT128=ON` to test for iscanonicalf128
in cmake invocation if host does not support it.
DeltaFile
+38-0libc/include/math.yaml
+38-01 files

LLVM/project 65b5880llvm/unittests/Transforms/Vectorize VPlanTest.cpp

[VPlan][test] Fix use-after-free in dumpRecipeInPlan/dumpRecipeUnnamedVPValuesInPlan tests (#199275)

https://github.com/llvm/llvm-project/pull/195891 exposed a
use-after-free in the tests: `BinaryOperator *AI` [*] is deleted prior
to VPlan's destructor, which expects all the operands to still be alive.
This patch fixes the test (suggested by a Florian in
https://github.com/llvm/llvm-project/pull/199252#pullrequestreview-4348337988),
by preemptively detaching AI from the VPlan.

[*] No AI was harmed or used during the creation of this patch.
DeltaFile
+8-0llvm/unittests/Transforms/Vectorize/VPlanTest.cpp
+8-01 files

LLVM/project 971da15lld/ELF/Arch LoongArch.cpp, lld/test/ELF loongarch-debug-info-tls-64.s loongarch-debug-info-tls-32.s

[lld][LoongArch] Handle DTPREL relocations in debug sections

Teach the LoongArch lld backend to classify R_LARCH_TLS_DTPREL32
and R_LARCH_TLS_DTPREL64 as R_DTPREL.

This allows linker processing of TLS debug info references emitted
into .debug_info via .dtprelword/.dtpreldword. Add 32-bit and 64-bit
tests that assemble objects with DTPREL relocations in debug sections
and verify the linked .debug_info contents.
DeltaFile
+31-0lld/test/ELF/loongarch-debug-info-tls-64.s
+31-0lld/test/ELF/loongarch-debug-info-tls-32.s
+3-0lld/ELF/Arch/LoongArch.cpp
+65-03 files

LLVM/project 3e503e0llvm/include/llvm/Transforms/IPO Instrumentor.h, llvm/lib/Transforms/IPO Instrumentor.cpp

[Instrumentor] Add Cast instruction instrumentation support

We now allow to have instrumentation opportunities for many instructions
(=opcodes) to bundle common classes together. Users can use filters on
the opcode, type-id, and size to statically select what they are
interested in.
DeltaFile
+276-0llvm/test/Instrumentation/Instrumentor/cast.ll
+133-61llvm/include/llvm/Transforms/IPO/Instrumentor.h
+113-5llvm/lib/Transforms/IPO/Instrumentor.cpp
+117-0llvm/test/Instrumentation/Instrumentor/cast_filter.ll
+48-0llvm/test/Instrumentation/Instrumentor/cast_config.json
+41-0llvm/test/Instrumentation/Instrumentor/default_config.json
+728-661 files not shown
+763-667 files

LLVM/project 387a738libc/test/src/math SubTest.h FmaTest.h, libc/test/src/math/smoke ILogbTest.h

[libc][NFC] Reduce the test size for math functions by default. (#199308)
DeltaFile
+2-2libc/test/src/math/SubTest.h
+2-2libc/test/src/math/FmaTest.h
+2-2libc/test/src/math/DivTest.h
+2-2libc/test/src/math/MulTest.h
+2-2libc/test/src/math/NearbyIntTest.h
+2-2libc/test/src/math/smoke/ILogbTest.h
+12-1280 files not shown
+100-10086 files

LLVM/project cd1baf3libc/test/src/__support/wctype CMakeLists.txt

[libc][NFC][wctype] Fix test ci for old drivers (#199307)
DeltaFile
+17-2libc/test/src/__support/wctype/CMakeLists.txt
+17-21 files

LLVM/project d22dfb7llvm/docs LangRef.rst

mention pointer comparisons created by passes

Created using spr 1.3.6-beta.1
DeltaFile
+9-6llvm/docs/LangRef.rst
+9-61 files

LLVM/project 0bc7fb9libc/test/src/__support/wctype CMakeLists.txt

[libc][NFC][wctype] Fix test ci for old drivers
DeltaFile
+8-2libc/test/src/__support/wctype/CMakeLists.txt
+8-21 files

LLVM/project f76446bllvm/test/CodeGen/X86 ctselect.ll ctselect-vector.ll

[X86] Stop claiming f128 CT_SELECT Custom; regen ctselect tests

X86's LowerCT_SELECT falls through to X86ISD::CT_SELECT for any FP
type it claims Custom but doesn't special-case (only f80 has the
three-i32-chunk path, and scalar f32/f64 the SSE register path).
For f128 the fall-through produces an X86ISD::CT_SELECT with f128
result type, for which no isel pattern exists, and selection
ICEs with "Cannot select".

Drop f128 from the CT_SELECT Custom loop so the generic legalizer's
memory-blend path (recently added in the core PR) handles it.

Regenerate CHECK lines for all X86 ctselect tests to reflect the
expanded coverage (half/bfloat/fp80/fp128) introduced upstream.
DeltaFile
+1,107-1,533llvm/test/CodeGen/X86/ctselect.ll
+125-534llvm/test/CodeGen/X86/ctselect-vector.ll
+184-187llvm/test/CodeGen/X86/ctselect-i386-mmx.ll
+26-208llvm/test/CodeGen/X86/ctselect-i386-fp.ll
+8-63llvm/test/CodeGen/X86/ctselect-i386.ll
+3-24llvm/test/CodeGen/X86/ctselect-edge-cases.ll
+1,453-2,5491 files not shown
+1,459-2,5507 files

LLVM/project 88fff4bllvm/lib/Target/X86 X86ISelLowering.cpp

[X86] Restore combineSelect BLENDV sign-bit fold

The optimization that folds X86ISD::BLENDV away when the condition's
sign bit is statically known was inadvertently dropped during a prior
rebase conflict resolution. Its absence caused unrelated CHECK lines
in combine-sdiv.ll, vector-compress.ll, vector-idiv-{u,s}div-*.ll to
fail because main expects the post-optimization codegen.

Restores the block at llvm/lib/Target/X86/X86ISelLowering.cpp line
~49587 (after combineLogicBlendIntoConditionalNegate, before the
VSELECT/BLENDV shuffle handling), matching origin/main verbatim.
DeltaFile
+15-3llvm/lib/Target/X86/X86ISelLowering.cpp
+15-31 files

LLVM/project e785e33llvm/lib/Target/X86 X86InstrInfo.cpp X86ISelLowering.cpp, llvm/test/CodeGen/X86 ctselect-vector.ll ctselect-i386-mmx.ll

[LLVM][X86] Add f80 support for ct.select

Add special handling for x86_fp80 types in CTSELECT lowering by splitting
them into three 32-bit chunks, performing constant-time selection on each
chunk, and reassembling the result. This fixes crashes when compiling
tests with f80 types.

Also updated ctselect.ll to match current generic fallback implementation.
DeltaFile
+463-452llvm/lib/Target/X86/X86InstrInfo.cpp
+211-492llvm/test/CodeGen/X86/ctselect-vector.ll
+188-255llvm/test/CodeGen/X86/ctselect-i386-mmx.ll
+126-146llvm/test/CodeGen/X86/ctselect-i386-fp.ll
+69-6llvm/lib/Target/X86/X86ISelLowering.cpp
+3-6llvm/lib/Target/X86/X86InstrInfo.h
+1,060-1,3572 files not shown
+1,061-1,3608 files

LLVM/project e0c4d09clang/docs LanguageExtensions.rst, clang/include/clang/Basic Builtins.td

[ConstantTime][Clang] Add __builtin_ct_select for constant-time selection
DeltaFile
+683-0clang/test/Sema/builtin-ct-select.c
+373-0clang/test/Sema/builtin-ct-select-edge-cases.c
+64-0clang/lib/Sema/SemaChecking.cpp
+44-0clang/docs/LanguageExtensions.rst
+13-0clang/lib/CodeGen/CGBuiltin.cpp
+8-0clang/include/clang/Basic/Builtins.td
+1,185-06 files