LLVM/project 5dbf1db — llvm/lib/Target/X86 X86TargetTransformInfo.cpp, llvm/lib/Transforms/Vectorize SLPVectorizer.cpp

[𝘀𝗽𝗿] initial version

Created using spr 1.3.7
DeltaFile
+24-11llvm/lib/Target/X86/X86TargetTransformInfo.cpp
+16-16llvm/test/Transforms/SLPVectorizer/X86/rsqrt-estimate-vector-users.ll
+2-1llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
+1-1llvm/test/Analysis/CostModel/X86/sqrt-rsqrt-estimate.ll
+43-294 files

LLVM/project de9186a — llvm/lib/Passes PassesOptions.td PassBuilderPipelines.cpp, llvm/test/Transforms/PGOProfile profcheck-integration-pipelines.ll

[ProfCheck] Add option to inject profcheck into pipelines

This allows setting an option in clang and verifying that all profile
information is preserved. This allows for more thorough testing of
profile preservation on real code rather than just in the LLVM tests.

Reviewers: aeubanks, mtrofin

Pull Request: https://github.com/llvm/llvm-project/pull/232052
DeltaFile
+22-15llvm/lib/Passes/PassBuilderPipelines.cpp
+11-0llvm/test/Transforms/PGOProfile/profcheck-integration-pipelines.ll
+2-0llvm/lib/Passes/PassesOptions.td
+35-153 files

LLVM/project 42e3185 — clang/include/clang/Basic DiagnosticSemaKinds.td, clang/lib/Sema SemaChecking.cpp

Use consistent language about the count field.
DeltaFile
+2-2clang/test/Sema/builtin-counted-by-ref.c
+2-2clang/include/clang/Basic/DiagnosticSemaKinds.td
+1-1clang/lib/Sema/SemaChecking.cpp
+5-53 files

LLVM/project 9bcbf5a — llvm/lib/Passes PassBuilderPipelines.cpp

[Passes] Add helpers for start/end passes

This refactors out instructionCounters into more generic start/end pass
blocks. This refactoring makes it easier to add ProfCheck passes at
these points without needing to manually add them at all the relevant
points in the various pipelines.

Reviewers: aeubanks, mtrofin

Pull Request: https://github.com/llvm/llvm-project/pull/232032
DeltaFile
+25-13llvm/lib/Passes/PassBuilderPipelines.cpp
+25-131 files

LLVM/project 047a072 — llvm/test/CodeGen/AArch64 minmax-of-minmax.ll, llvm/test/CodeGen/AMDGPU memory-legalizer-single-wave-workgroup-memops.ll

Merge branch 'scsiguy/main' into PR-231752
DeltaFile
+31,848-0llvm/test/CodeGen/NVPTX/atomicrmw-elementwise-sm60.ll
+31,310-0llvm/test/CodeGen/NVPTX/atomicrmw-elementwise-sm70.ll
+22,710-0llvm/test/CodeGen/NVPTX/atomicrmw-elementwise-sm90.ll
+3,996-0llvm/test/CodeGen/AMDGPU/memory-legalizer-single-wave-workgroup-memops.ll
+0-2,441llvm/test/CodeGen/AArch64/minmax-of-minmax.ll
+2,313-0llvm/test/Transforms/InstCombine/minmax-of-minmax-2.ll
+92,177-2,4411,236 files not shown
+127,223-16,3981,242 files

LLVM/project b23a674 — libc/src/__support/regex CMakeLists.txt regex_ast.h, libc/test/src/__support/regex CMakeLists.txt expr_test.cpp

[libc][regex] Switch ExprPool to 32-bit ExprId and 16B Expr (#230687)

Refactored the regex AST and ExprPool in libc/src/__support/regex/ to
reduce per-pool memory overhead:

* Replaced pointer-based AST references with 1-based 32-bit ExprId
indices (with singleton IDs EMPTY_SET_ID = 1 and EMPTY_STR_ID = 2).
* Compacted Expr to 16 bytes with a cached 32-bit hash and precomputed
nullability flag.
* Replaced the fixed 16,384-slot hash table and 256-node linked blocks
with a growable hash table starting at 64 slots (256 bytes) and 32-node
blocks (512 bytes), allocated lazily on first intern so a
default-constructed pool uses 0 heap bytes and initial allocation is 832
bytes.
* Migrated block and hash-table storage to cpp::array and cpp::span with
a BucketProber iterator range and centralized slot_at indexing.

Assisted-by: Automated tooling, human reviewed.
DeltaFile
+179-84libc/src/__support/regex/regex_expr_pool.cpp
+80-44libc/src/__support/regex/regex_expr_pool.h
+37-22libc/src/__support/regex/regex_ast.h
+26-3libc/test/src/__support/regex/expr_test.cpp
+11-5libc/src/__support/regex/CMakeLists.txt
+1-3libc/test/src/__support/regex/CMakeLists.txt
+334-1616 files

LLVM/project 29e484b — libc/config/baremetal/hexagon entrypoints.txt, llvm/test/CodeGen/AMDGPU memory-legalizer-single-wave-workgroup-memops.ll

Merge branch 'main' into main
DeltaFile
+31,848-0llvm/test/CodeGen/NVPTX/atomicrmw-elementwise-sm60.ll
+31,310-0llvm/test/CodeGen/NVPTX/atomicrmw-elementwise-sm70.ll
+22,710-0llvm/test/CodeGen/NVPTX/atomicrmw-elementwise-sm90.ll
+3,996-0llvm/test/CodeGen/AMDGPU/memory-legalizer-single-wave-workgroup-memops.ll
+1,198-0llvm/test/tools/dsymutil/AArch64/odr-unnamed-types-same-line.test
+998-0libc/config/baremetal/hexagon/entrypoints.txt
+92,060-0754 files not shown
+111,351-7,602760 files

LLVM/project fb3cebf — compiler-rt/lib/asan asan_new_delete.cpp

[asan] Mark nothrow operator new and delete noexcept (NFC) (#231994)

Add `NOEXCEPT` to nothrow forms of `operator new` and `operator delete`
definitions to make them standards compliant and compatible with
declarations provided by the, soon to be included in this context,
`<new>` header.
DeltaFile
+12-8compiler-rt/lib/asan/asan_new_delete.cpp
+12-81 files

LLVM/project 37bafa2 — llvm/include/llvm/IR IntrinsicsAMDGPU.td, llvm/lib/Target/AMDGPU AMDGPUSearchableTables.td

[NFC][AMDGPU] Create tables for LDSDMA-related intrinsics (#225488)
DeltaFile
+7-31llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.cpp
+15-10llvm/include/llvm/IR/IntrinsicsAMDGPU.td
+9-0llvm/lib/Target/AMDGPU/AMDGPUSearchableTables.td
+31-413 files

LLVM/project e4ef861 — llvm/docs AMDGPUUsage.rst, llvm/lib/Target/AMDGPU AMDGPUSubtarget.h AMDGPULowerIntrinsics.cpp

[AMDGPU][SIMemoryLegalizer] Lower single-wave workgroup scope to wavefront in absence of LDSDMA (#224065)

This patch lowers workgroup-scoped instructions to wavefront if the
kernel's maximum workgroup size is at most one wavefront, so long as the
kernel does not contain any LDS DMA operations, as these operations are
performed asynchronously relative to other LDS instructions. This is
just a partial reland of #187673 (which was originally reverted due to
this issue; see #207473) with an additional check for LDS DMA
instructions.
DeltaFile
+1,321-821llvm/test/CodeGen/AMDGPU/memory-legalizer-single-wave-workgroup-memops.ll
+29-24llvm/test/CodeGen/AMDGPU/memory-legalizer-single-wave-workgroup-lds-dma.ll
+20-7llvm/lib/Target/AMDGPU/SIMemoryLegalizer.cpp
+10-0llvm/docs/AMDGPUUsage.rst
+2-4llvm/lib/Target/AMDGPU/AMDGPULowerIntrinsics.cpp
+4-0llvm/lib/Target/AMDGPU/AMDGPUSubtarget.h
+1,386-8562 files not shown
+1,390-8588 files

LLVM/project 545f4fd — llvm/lib/Target/AMDGPU AMDGPUAttributor.cpp, llvm/lib/Target/AMDGPU/Utils AMDGPUBaseInfo.cpp

[AMDGPU][Attributor] Add attribute to track for LDSDMA invocations (#229133)

This patch adds the `amdgpu-no-lds-dma` attribute, which indicates that
the decorated function does not execute any LDSDMA operations.

This attribute is used in #224065 to enable demoting suitable workgroup
sync scopes to wavefront only when there are no LDSDMA operations
present.
DeltaFile
+240-0llvm/test/CodeGen/AMDGPU/amdgpu-attributor-no-lds-dma.ll
+90-88llvm/test/CodeGen/AMDGPU/amdgpu-attributor-min-agpr-alloc.ll
+97-1llvm/lib/Target/AMDGPU/AMDGPUAttributor.cpp
+31-30llvm/test/CodeGen/AMDGPU/annotate-kernel-features-hsa-call.ll
+21-21llvm/test/CodeGen/AMDGPU/propagate-waves-per-eu.ll
+34-0llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.cpp
+513-14032 files not shown
+643-25838 files

LLVM/project 5be457b — llvm/test/CodeGen/AMDGPU memory-legalizer-single-wave-workgroup-lds-dma-async.ll memory-legalizer-single-wave-workgroup-lds-dma.ll

[NFC][AMDGPU] Pre-commit tests for workgroup to wavefront demotion (#224064)
DeltaFile
+3,496-0llvm/test/CodeGen/AMDGPU/memory-legalizer-single-wave-workgroup-memops.ll
+216-0llvm/test/CodeGen/AMDGPU/memory-legalizer-single-wave-workgroup-lds-dma.ll
+62-0llvm/test/CodeGen/AMDGPU/memory-legalizer-single-wave-workgroup-lds-dma-async.ll
+3,774-03 files

LLVM/project 5465452 — clang/include/clang/Basic DiagnosticSemaKinds.td, clang/lib/Sema SemaBoundsSafety.cpp SemaChecking.cpp

Place error on the __builtin_counted_by_ref call.
DeltaFile
+0-9clang/lib/Sema/SemaBoundsSafety.cpp
+9-0clang/test/Sema/builtin-counted-by-ref.c
+9-0clang/lib/Sema/SemaChecking.cpp
+0-5clang/test/Sema/attr-counted-by-vla.c
+2-3clang/include/clang/Basic/DiagnosticSemaKinds.td
+20-175 files

LLVM/project f51034c — clang/include/clang/Basic DiagnosticSemaKinds.td, clang/lib/Sema SemaChecking.cpp

Update wording to be clearer.
DeltaFile
+3-3clang/lib/Sema/SemaChecking.cpp
+4-2clang/include/clang/Basic/DiagnosticSemaKinds.td
+2-2clang/test/Sema/builtin-counted-by-ref.c
+9-73 files

LLVM/project 8bc68f3 — clang/include/clang/Basic DiagnosticSemaKinds.td, clang/lib/Sema SemaBoundsSafety.cpp

[BoundsSafety][Sema] Disallow using a bitfield as the counter

A counter that's a pointer to a bitfield breaks assumptions that are
present in other features, like '__builtin_counted_by_ref', which
returns a pointer to the counter. A bitfield cannot have its address
taken causing an ICE.
DeltaFile
+9-0clang/lib/Sema/SemaBoundsSafety.cpp
+5-0clang/test/Sema/attr-counted-by-vla.c
+2-0clang/include/clang/Basic/DiagnosticSemaKinds.td
+16-03 files

FreeBSD/ports eaec401 — cad/PrusaSlicer Makefile

cad/PrusaSlicer: Fix building with CMake 4
DeltaFile
+1-0cad/PrusaSlicer/Makefile
+1-01 files

FreeBSD/src c30a321 — usr.bin/diff diff.h diff.1

diff: support -qq to output absolutely nothing

This is similar to `cmp -s`, but can be combined with:
-B --ignore-blank-lines
-b --ignore-space-change
-w --ignore-all-space

To only report a difference if it doesn't involve whitespace

Reviewed by:    des, bapt, markj (previous version), ziaee (man page)
MFC after:      1 week
Sponsored by:   Klara, Inc.
Differential Revision:  https://reviews.freebsd.org/D46717
DeltaFile
+10-3usr.bin/diff/diff.c
+5-2usr.bin/diff/diffreg.c
+4-1usr.bin/diff/diff.1
+1-0usr.bin/diff/diff.h
+20-64 files

LLVM/project d03adb4 — llvm/lib/Target/AMDGPU FLATInstructions.td, llvm/test/CodeGen/AMDGPU atomic-fp-rtn-agpr-encoding.mir

[AMDGPU] Fix sc1 encoding of gfx940 fp atomics with AGPR results

The *_F64 FLAT and GLOBAL atomics have separate VI and GFX940 reals,
because the VI reals are defined with has_sccb=0 and so do not encode
bit 25, which is SC1 on GFX940. However:

- #129668 removed the isGFX90AOnly predicate from the VI reals, so on
  GFX940+ both the VI and GFX940 reals matched in the assembler. The
  GFX940 ones happened to win because they were defined later.
- The GFX940 multiclasses did not define *_RTN_agpr reals, so the AGPR
  forms of the returning atomics always used the VI reals on GFX940+.
  The assembler silently dropped sc1 for these, the disassembler could
  not decode them with sc1 set, and codegen dropped sc1 from the
  *_RTN_agpr pseudos.

Fix this by adding *_RTN_agpr (and *_SADDR_RTN_agpr) reals to the GFX940
atomic multiclasses, and restricting the VI f64 reals to
isGFX8GFX9NotGFX940, like the neighbouring f32 and pk_f16 ones.


    [6 lines not shown]
DeltaFile
+13-13llvm/test/CodeGen/AMDGPU/atomic-fp-rtn-agpr-encoding.mir
+10-10llvm/test/MC/AMDGPU/gfx942_global_atomic_fadd_acc.s
+9-9llvm/test/MC/Disassembler/AMDGPU/gfx942_atomic_f64.txt
+9-9llvm/test/MC/AMDGPU/gfx942_atomic_f64.s
+11-7llvm/lib/Target/AMDGPU/FLATInstructions.td
+8-8llvm/test/MC/Disassembler/AMDGPU/gfx942_global_atomic_fadd_acc.txt
+60-566 files

LLVM/project 2305327 — llvm/test/CodeGen/AMDGPU atomic-fp-rtn-agpr-encoding.mir, llvm/test/MC/AMDGPU gfx90a_atomic_f64.s gfx942_atomic_f64.s

[AMDGPU] Precommit tests for gfx942 fp atomics with AGPR results

Add MC, disassembler and codegen tests for FLAT and GLOBAL fp atomics on
gfx942 and gfx950, with more complete coverage of the f64 atomics on
gfx90a and gfx942.

The returning forms of {flat,global}_atomic_{add,min,max}_f64 with AGPR
operands currently use the *_RTN_agpr_vi reals on gfx942, which do not
encode bit 25 (SC1), so:

- the assembler silently drops sc1
- the disassembler fails to decode them with sc1 set
- codegen drops sc1 from the *_RTN_agpr pseudos

Similarly for global_atomic_add_f32 and global_atomic_pk_add_f16, where
codegen drops sc1 from the *_RTN_agpr pseudos, and the assembler and
disassembler reject the AGPR returning forms altogether.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply at anthropic.com>
DeltaFile
+148-0llvm/test/MC/AMDGPU/gfx942_atomic_f64.s
+148-0llvm/test/MC/Disassembler/AMDGPU/gfx942_atomic_f64.txt
+147-0llvm/test/MC/AMDGPU/gfx90a_atomic_f64.s
+147-0llvm/test/MC/Disassembler/AMDGPU/gfx90a_atomic_f64.txt
+79-0llvm/test/CodeGen/AMDGPU/atomic-fp-rtn-agpr-encoding.mir
+20-0llvm/test/MC/Disassembler/AMDGPU/gfx942_global_atomic_fadd_acc.txt
+689-01 files not shown
+709-07 files

LLVM/project 02c0b43 — llvm/lib/Target/AMDGPU AMDGPUAttributor.cpp

AMDGPU: Only add address space AAs for flat pointers

AMDGPUAttributor created AAAddressSpace and AANoAliasAddrSpace for the
pointer operand of every memory access. For a pointer that is not
flat, both are at an optimistic fixpoint after initialization and
manifest nothing, so only create them for flat pointers.

Instructions spent in amdgpu-attributor
  (opt, parse cost subtracted, median of 3 runs):
  rocPRIM test_device_scan, gfx942:          1963M -> 1404M (-28.5%)
  Blender Cycles HIP kernel, gfx1100:        636M -> 459M (-27.8%)
  rocPRIM 16 tests, full LTO, closed world:  7415M -> 5590M (-24.6%)

Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
DeltaFile
+6-2llvm/lib/Target/AMDGPU/AMDGPUAttributor.cpp
+6-21 files

FreeBSD/ports a13df10 — math/octave-forge-parts Makefile distinfo

math/octave-forge-parts: Update to 0.2.0.
DeltaFile
+3-3math/octave-forge-parts/distinfo
+1-1math/octave-forge-parts/Makefile
+4-42 files

FreeBSD/src 1da1ad3 — tests/sys/netpfil/common nat.sh utils.subr

tests/netpfil: reference manual pages in atf_skip statements

For those modules that don't have a manual page spell out full name of a
loadable module.
DeltaFile
+7-7tests/sys/netpfil/common/utils.subr
+1-1tests/sys/netpfil/common/nat.sh
+8-82 files

NetBSD/src o2jWX6t — sys/compat/netbsd32 netbsd32_signal.c

   compat32: Advertise true stack base to getcontext(2).

   Needs adjustment for PaX ASLR.

   This was missed as part of:

   > Module Name:    src
   > Committed By:   christos
   > Date:           Wed Dec 26 22:11:54 UTC 2007
   >
   > Modified Files:
   >         src/sys/conf: files
   >         src/sys/kern: exec_elf32.c exec_subr.c init_sysctl.c kern_exec.c
   >             kern_pax.c kern_sig.c
   >         src/sys/sys: exec.h exec_elf.h pax.h proc.h
   >         src/sys/uvm: uvm_extern.h uvm_mmap.c
   >
   > Log Message:
   > Add PaX ASLR (Address Space Layout Randomization) [from elad and myself]

    [5 lines not shown]
VersionDeltaFile
1.57+4-3sys/compat/netbsd32/netbsd32_signal.c
+4-31 files

LLVM/project 71c7667 — mlir/lib/AsmParser AttributeParser.cpp, mlir/test/IR invalid-builtin-attributes.mlir

[mlir] Fix abort on string token in integer dense tensor parsing (#231876)

`getIntAttrElements` asserted on `Token::string` because
`parseElement()`
accepts string tokens but the integer path only handled `floatliteral`
before asserting. Add an explicit emitError for string tokens, matching
the existing floatliteral handling pattern.

Fixes #228850.
DeltaFile
+7-0mlir/test/IR/invalid-builtin-attributes.mlir
+4-0mlir/lib/AsmParser/AttributeParser.cpp
+11-02 files

LLVM/project dd15604 — llvm/lib/Passes PassesOptions.td PassBuilderPipelines.cpp, llvm/test/Transforms/PGOProfile profcheck-integration-pipelines.ll

[𝘀𝗽𝗿] initial version

Created using spr 1.3.7
DeltaFile
+32-13llvm/lib/Passes/PassBuilderPipelines.cpp
+11-0llvm/test/Transforms/PGOProfile/profcheck-integration-pipelines.ll
+2-0llvm/lib/Passes/PassesOptions.td
+45-133 files

LLVM/project f38b75e — llvm/lib/Passes PassBuilderPipelines.cpp

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

Created using spr 1.3.7

[skip ci]
DeltaFile
+25-13llvm/lib/Passes/PassBuilderPipelines.cpp
+25-131 files

LLVM/project 70661dd — llvm/lib/Transforms/Utils SimplifyLibCalls.cpp, llvm/test/Transforms/InstCombine double-float-shrink-1.ll log-intrinsic-double-float-shrink.ll

[InstCombine] Shrink fast logarithm intrinsics to float (#228805)

Allow the existing unsafe double-to-float shrink for `llvm.log`,
`llvm.log2` and `llvm.log10`. The current libc availability check looks
for names such as `llvm.log10.f64f`, so it blocks intrinsic overloads.
Keep the existing fast-math, input-precision and result-use
requirements.

Motivated by LAME's `calc_noise`, where Clang calls double `log10` but
GCC calls `log10f`. On an M1 Pro, the actual LLVM patch reduces full
encoding from 5.965 s to 5.844 s (**2.0% less time**, five-round
medians), with byte-identical MP3 output in this benchmark.

Implemented with assistance from OpenAI Codex.
DeltaFile
+71-0llvm/test/Transforms/InstCombine/log-intrinsic-double-float-shrink.ll
+48-10llvm/test/Transforms/InstCombine/double-float-shrink-1.ll
+1-1llvm/lib/Transforms/Utils/SimplifyLibCalls.cpp
+120-113 files

LLVM/project e29e0e5 — clang/lib/StaticAnalyzer/Checkers/WebKit MemoryUnsafeCastChecker.cpp, clang/test/Analysis/Checkers/WebKit memory-unsafe-cast-redecl.cpp

[alpha.webkit.MemoryUnsafeCastChecker] Use canonical decl to check identity of types (#231833)

The checker used equalsBoundNode to relate the source and destination
classes of a cast, which compares declaration nodes by identity. When
the two types refer to different redeclarations of the same class (e.g.
one spelled before and one after a `class X;` redeclaration following
the definition), same-type casts such as `const_cast<X*>(p)` and upcasts
were reported as casts to an unrelated type, and downcasts were reported
as unrelated rather than as base-to-derived casts.
    
Add an hasSameCanonicalDeclAsBoundNode matcher that compares canonical
declarations and use it in place of equalsBoundNode. Also compare
canonical declarations in the CRTP exclusion.

Co-authored with Claude.
DeltaFile
+62-40clang/lib/StaticAnalyzer/Checkers/WebKit/MemoryUnsafeCastChecker.cpp
+45-0clang/test/Analysis/Checkers/WebKit/memory-unsafe-cast-redecl.cpp
+107-402 files

LLVM/project 0c2af7b — llvm/lib/Target/WebAssembly WebAssemblyTargetMachine.cpp WebAssemblyCodeGenPassBuilder.cpp, llvm/test/CodeGen/WebAssembly wasm-eh-prepare-exception-model.ll exception-model.ll

Address review comments
DeltaFile
+14-7llvm/lib/Target/WebAssembly/WebAssemblyLowerEmscriptenEHSjLj.cpp
+5-5llvm/test/CodeGen/WebAssembly/lower-em-ehsjlj-lower-invokes.ll
+4-4llvm/lib/Target/WebAssembly/WebAssemblyTargetMachine.cpp
+4-4llvm/lib/Target/WebAssembly/WebAssemblyCodeGenPassBuilder.cpp
+1-1llvm/test/CodeGen/WebAssembly/wasm-eh-prepare-exception-model.ll
+1-1llvm/test/CodeGen/WebAssembly/exception-model.ll
+29-226 files

LLVM/project 4f7b857 — llvm/test/CodeGen/WebAssembly lower-em-ehsjlj-lower-invokes.ll

Check the dead landing pad is removed after lowering invokes
DeltaFile
+6-1llvm/test/CodeGen/WebAssembly/lower-em-ehsjlj-lower-invokes.ll
+6-11 files