LLVM/project f920192 — llvm/lib/DWARFLinker/Parallel ArrayList.h SyntheticTypeNameBuilder.cpp, llvm/unittests/DWARFLinkerParallel TypePoolTest.cpp

[DWARFLinker] Intern referenced types in synthetic names (NFC) (#237080)

The parallel linker keys each type by a synthetic name that embeds the
full names of its parent and of every type it refers to. When linking
dsymutil, 77% of the 33.8 GB of keys inserted into the type pool are
copies of parent names.

Refer to a parent or referenced type by a NUL byte followed by its
interned TypeEntry pointer instead. Keys are interned, so equal pointers
mean equal keys. Unassigned names are interned too, so they can be
referred to. This cuts the key bytes hashed and compared from 33.8 GB to
7.0 GB.

A new TypeKey class owns the encoding. The name builder appends text and
references to it, and the comparator reads keys back as text runs and
references.

The type compile unit is sorted by key, so compare keys as if every
reference were expanded, which preserves the output order. That

    [9 lines not shown]
DeltaFile
+335-0llvm/unittests/DWARFLinkerParallel/TypePoolTest.cpp
+157-0llvm/lib/DWARFLinker/Parallel/TypePool.cpp
+60-7llvm/lib/DWARFLinker/Parallel/TypePool.h
+20-18llvm/lib/DWARFLinker/Parallel/OutputSections.cpp
+19-18llvm/lib/DWARFLinker/Parallel/SyntheticTypeNameBuilder.cpp
+7-2llvm/lib/DWARFLinker/Parallel/ArrayList.h
+598-454 files not shown
+607-5310 files

LLVM/project d7b1791 — llvm/lib/Transforms/IPO AttributorAttributes.cpp

Attributor: Reach fixpoint in AACallEdges if there are only direct calls (#232617)

The callees when there are only direct, live calls will not change.
No other attributes matter, but this ran the update a second time to
find out.

Instructions spent in amdgpu-attributor:
  rocPRIM test_device_scan, gfx942:          1265M -> 1263M (-0.2%)
  Blender Cycles HIP kernel, gfx1100:        488M -> 487M (-0.2%)
  rocPRIM 16 tests, full LTO, closed world:  4381M -> 4359M (-0.5%)

Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
DeltaFile
+6-0llvm/lib/Transforms/IPO/AttributorAttributes.cpp
+6-01 files

LLVM/project 53530a9 — llvm/lib/Transforms/IPO AttributorAttributes.cpp

Attributor: Don't create call site AACallEdges for direct calls (#232616)

AACallEdgesFunction created an AACallEdges for every call-like
instruction in the function including intrinsics. For a direct call
without callback metadata, the call site attribute only ever adds the
callee, so add it directly.

Instructions spent in amdgpu-attributor:
  rocPRIM test_device_scan, gfx942:          1963M -> 1768M (-9.9%)
  Blender Cycles HIP kernel, gfx1100:        636M -> 622M (-2.2%)
  rocPRIM 16 tests, full LTO, closed world:  7415M -> 6511M (-12.2%)

Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
DeltaFile
+8-0llvm/lib/Transforms/IPO/AttributorAttributes.cpp
+8-01 files

LLVM/project 069afc1 — llvm/include/llvm/IR RuntimeLibcallsImpl.td

RuntimeLibcalls: Describe vector FuncArgTypes by element type and count

Define the vector libcall argument types from an element type and
count. Derive the matching integer and mask vector types from them
instead of spelling each one out.

Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
DeltaFile
+18-12llvm/include/llvm/IR/RuntimeLibcallsImpl.td
+18-121 files

LLVM/project 04ef312 — llvm/lib/IR RuntimeLibcalls.cpp, llvm/test/Transforms/Util/DeclareRuntimeLibcalls amdlibm.ll

Use vector alignment for AMDLIBM sincos out pointers
DeltaFile
+15-1llvm/lib/IR/RuntimeLibcalls.cpp
+6-6llvm/test/Transforms/Util/DeclareRuntimeLibcalls/amdlibm.ll
+21-72 files

LLVM/project 862e7a5 — llvm/lib/IR RuntimeLibcalls.cpp, llvm/test/Transforms/Util/DeclareRuntimeLibcalls sleef-riscv.ll amdlibm.ll

RuntimeLibcalls: Use element alignment for vector libcall out pointers

The pointer arguments of the vector modf, sincos and sincospi functions
are linear pointers to the scalar element type (e.g. the l4 in
_ZGVnN4vl4l4_sincosf), not pointers to the vector type. Only the element
alignment is guaranteed, so stop declaring them with the ABI alignment
of the vector.

Co-Authored-By: Claude Opus 5.5 <noreply at anthropic.com>
DeltaFile
+12-12llvm/test/Transforms/Util/DeclareRuntimeLibcalls/sleef.ll
+12-12llvm/test/Transforms/Util/DeclareRuntimeLibcalls/armpl.ll
+6-6llvm/test/Transforms/Util/DeclareRuntimeLibcalls/sleef-riscv.ll
+6-6llvm/test/Transforms/Util/DeclareRuntimeLibcalls/amdlibm.ll
+1-1llvm/lib/IR/RuntimeLibcalls.cpp
+37-375 files

LLVM/project dfaad56 — llvm/include/llvm/IR RuntimeLibcalls.td, llvm/test/Transforms/Util/DeclareRuntimeLibcalls sparc.ll systemz.ll

Use unsigned argument types for ctlz/ctpop
DeltaFile
+4-4llvm/test/Transforms/Util/DeclareRuntimeLibcalls/systemz.ll
+4-4llvm/test/Transforms/Util/DeclareRuntimeLibcalls/ppc.ll
+2-2llvm/test/Transforms/Util/DeclareRuntimeLibcalls/sparc.ll
+2-2llvm/include/llvm/IR/RuntimeLibcalls.td
+12-124 files

LLVM/project 501ce16 — llvm/include/llvm/IR RuntimeLibcalls.td, llvm/lib/IR RuntimeLibcalls.cpp

RuntimeLibcalls: Use the correct target C long width for Long

Long and ULong were mapped to the int width, which is wrong on LP64
targets (e.g. scalbln was declared taking i32 on x86_64 linux) and on
16-bit targets where long is 32 bits.

Also fix strtoul, strtoull, and the unsigned long operator new/delete
variants to use the unsigned types.

Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
DeltaFile
+21-21llvm/include/llvm/IR/RuntimeLibcalls.td
+14-7llvm/lib/IR/RuntimeLibcalls.cpp
+9-9llvm/test/Transforms/Util/DeclareRuntimeLibcalls/bsd.ll
+8-8llvm/test/Transforms/Util/DeclareRuntimeLibcalls/aarch64.ll
+6-6llvm/test/Transforms/Util/DeclareRuntimeLibcalls/systemz.ll
+6-6llvm/test/Transforms/Util/DeclareRuntimeLibcalls/ppc.ll
+64-577 files not shown
+83-7613 files

LLVM/project b09b8d5 — llvm/test/Transforms/Util/DeclareRuntimeLibcalls arm.ll systemz.ll

RuntimeLibcalls: Add signatures for more runtime functions

Add type missing signatures for assorted functions which were missing
type information.

Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
DeltaFile
+474-474llvm/test/Transforms/Util/DeclareRuntimeLibcalls/aarch64.ll
+305-305llvm/test/Transforms/Util/DeclareRuntimeLibcalls/ppc.ll
+279-279llvm/test/Transforms/Util/DeclareRuntimeLibcalls/bsd.ll
+276-276llvm/test/Transforms/Util/DeclareRuntimeLibcalls/windows.ll
+198-198llvm/test/Transforms/Util/DeclareRuntimeLibcalls/systemz.ll
+192-192llvm/test/Transforms/Util/DeclareRuntimeLibcalls/arm.ll
+1,724-1,72411 files not shown
+2,947-2,93317 files

LLVM/project 3731354 — llvm/include/llvm/IR RuntimeLibcalls.td

Use ULLong for MSVC new/delete and strtoull
DeltaFile
+7-7llvm/include/llvm/IR/RuntimeLibcalls.td
+7-71 files

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

RuntimeLibcalls: Add signext/zeroext attributes to libcall signatures

Try to match TargetLibraryInfo's behavior. Integer types narrower than
int are extended according to their signedness.

Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
DeltaFile
+460-460llvm/test/Transforms/Util/DeclareRuntimeLibcalls/aarch64.ll
+292-292llvm/test/Transforms/Util/DeclareRuntimeLibcalls/ppc.ll
+235-235llvm/test/Transforms/Util/DeclareRuntimeLibcalls/systemz.ll
+221-221llvm/test/Transforms/Util/DeclareRuntimeLibcalls/mips.ll
+160-160llvm/test/Transforms/Util/DeclareRuntimeLibcalls/sparc.ll
+160-160llvm/test/Transforms/Util/DeclareRuntimeLibcalls/riscv.ll
+1,528-1,52812 files not shown
+2,296-2,23718 files

LLVM/project f2f65ac — mlir/lib/Bindings/Python IRInterfaces.cpp Pass.cpp, mlir/test/python pass_manager_concurrency.py

[MLIR][Python] Release GIL during long-running operations. (#236861)

Made changes to release the GIL during some potentially long-running
operations. These are running a pass manager and creating an execution
engine. Because these may call back to Python, several changes had to be
made to re-acquire the GIL at certain points.

Fixes https://github.com/llvm/llvm-project/issues/236564.

These changes were made with the help of AI. I used it to help analyze
the code for thread safety issues and to help find where the GIL would
need to be re-acquired. I also used it to help write the code.

Co-authored-by: Maksim Levental <maksim.levental at gmail.com>
DeltaFile
+126-0mlir/test/python/pass_manager_concurrency.py
+124-0mlir/test/python/lib/TestConcurrencyPasses.cpp
+14-11mlir/lib/Bindings/Python/IRCore.cpp
+11-3mlir/lib/Bindings/Python/ExecutionEngineModule.cpp
+10-2mlir/lib/Bindings/Python/Pass.cpp
+10-0mlir/lib/Bindings/Python/IRInterfaces.cpp
+295-164 files not shown
+313-1610 files

LLVM/project 21aeca4 — llvm/lib/Target/SPIRV SPIRVSymbolicOperands.td

SPIRV: Don't define named AccessQualifier records

The AccessQualifier records ReadOnly and WriteOnly were never
referenced by name and collide with the attribute names in
Attributes.td. It happens the backend doesn't include that today but
I'm planning on changing that.

Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
DeltaFile
+1-1llvm/lib/Target/SPIRV/SPIRVSymbolicOperands.td
+1-11 files

LLVM/project f6e58c3 — llvm/lib/Target/DirectX DXIL.td, llvm/utils/TableGen DXILEmitter.cpp

DirectX: Avoid DXIL op attribute record name collision (#237585)

The DXIL attributes were defined with names colliding with the normal
definitions in Attributes.td. It just happens that isn't included by
the backend today, but I am planning on changing that. Add a prefix
and add an explicit name field so the generated names don't change.
Alternatively it might be possible to specify these directly with the
attribute intrinsic properties.

Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
DeltaFile
+80-78llvm/lib/Target/DirectX/DXIL.td
+1-1llvm/utils/TableGen/DXILEmitter.cpp
+81-792 files

LLVM/project 7efb163 — libcxx/include/__numeric pstl.h, libcxx/test/std/numerics/numeric.ops/inclusive.scan pstl.inclusive_scan.pass.cpp pstl.inclusive_scan_op.pass.cpp

[libc++][pstl] Add serial implementations of std::inclusive_scan and std::transform_inclusive_scan (#236219)

This PR adds serial implementations of the inclusive scan operations to
PSTL.
Within this patch they are added only to the serial backend, such that
any other backend can fall back to these implementations.
A real parallel implementation is intended to land within the `statpart`
backend later, which will be a purely additive change, it will not touch
the code in this PR.

These are the added scan operations:
- `std::inclusive_scan` (3 variants)
- `std::transform_inclusive_scan` (2 variants)

Part of #99938.

---------

Co-authored-by: PaulXiCao <paulxicao7 at gmail.com>
DeltaFile
+323-0libcxx/test/std/numerics/numeric.ops/transform.inclusive.scan/pstl.transform_inclusive_scan_bop_uop_init.pass.cpp
+241-0libcxx/test/std/numerics/numeric.ops/transform.inclusive.scan/pstl.transform_inclusive_scan_bop_uop.pass.cpp
+196-0libcxx/test/std/numerics/numeric.ops/inclusive.scan/pstl.inclusive_scan_op_init.pass.cpp
+168-0libcxx/test/std/numerics/numeric.ops/inclusive.scan/pstl.inclusive_scan_op.pass.cpp
+157-0libcxx/test/std/numerics/numeric.ops/inclusive.scan/pstl.inclusive_scan.pass.cpp
+121-0libcxx/include/__numeric/pstl.h
+1,206-05 files not shown
+1,434-011 files

LLVM/project 8059cc3 — llvm/lib/Target/X86 X86ISelLowering.cpp

[X86] LowerRotate - remove unnecessary bitwidth checks from splat amount case. NFC. (#237583)

We only accept vXi8/vXi16/vXi32 types at this point so this check is redundant.
DeltaFile
+13-15llvm/lib/Target/X86/X86ISelLowering.cpp
+13-151 files

LLVM/project 2ad5ff2 — offload/plugins-nextgen/amdgpu/src rtl.cpp

[Offload][AMDGPU] Roll back failed stream operations

If an HSA operation fails, rollback and release the signal to avoid the
situation where something is waiting on the completion signal forever.

Claude assisted with this patch.
DeltaFile
+119-38offload/plugins-nextgen/amdgpu/src/rtl.cpp
+119-381 files

LLVM/project 12f2c46 — libcxx/docs/Status Cxx26Issues.csv, libcxx/include/__ranges elements_view.h

[libc++][ranges] Implement LWG3797: `elements_view` insufficiently constrained (#236930)

Require `std::get<N>(t)` to be valid in `has-tuple-element`. Previously,
a range of `subrange`s over a move-only iterator satisfied the
constraints of `elements_view<V, 0>` and then failed with a hard error,
because `subrange`'s lvalue `get<0>` requires `copyable<I>`.

Fixes #189811
DeltaFile
+12-1libcxx/test/std/ranges/range.adaptors/range.elements/range.concept.compile.pass.cpp
+3-1libcxx/include/__ranges/elements_view.h
+1-1libcxx/docs/Status/Cxx26Issues.csv
+16-33 files

LLVM/project b727a62 — llvm/lib/Target/DirectX DXIL.td, llvm/utils/TableGen DXILEmitter.cpp

DirectX: Give DXIL op attribute records a Name field

The DXIL attributes were defined with names colliding with the normal
definitions in Attributes.td. It just happens that isn't included by
the backend today, but I am planning on changing that. Add a prefix
and add an explicit name field so the generated names don't change.
Alternatively it might be possible to specify these directly with the
attribute intrinsic properties.

Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
DeltaFile
+80-78llvm/lib/Target/DirectX/DXIL.td
+1-1llvm/utils/TableGen/DXILEmitter.cpp
+81-792 files

LLVM/project b135826 — .github/workflows lnt-submit.yml

[ci] Fix LNT submission when a single artifact is downloaded (#237584)

When the artifact pattern matches a single artifact, download-artifact
extracts it directly into the target directory instead of a subdirectory.
This means a glob like `reports/*/*.json` doesn't match. To fix this,
use a glob for both `reports/*/*.json` and `reports/*.json`.
DeltaFile
+3-1.github/workflows/lnt-submit.yml
+3-11 files

LLVM/project 659a52c — llvm/test/TableGen intrinsic-attrs.td, llvm/utils/TableGen/Basic IntrinsicEmitter.cpp

TableGen: Don't distinguish intrinsic function attribute sets by hasSideEffects (#237501)

hasSideEffects does not contribute to the emitted function attributes,
so including it in the uniquing key emitted duplicate attribute sets.
This removes 17 redundant function attribute sets, which also shrinks
the function attribute set ID from 8 to 7 bits.

Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
DeltaFile
+1-2llvm/utils/TableGen/Basic/IntrinsicEmitter.cpp
+1-1llvm/test/TableGen/intrinsic-attrs.td
+2-32 files

LLVM/project 3329ff7 — llvm/include/llvm/Support SourceMgrDiagnosticVerifier.h

[Support] Delete copy constructor in SourceMgrDiagnosticVerifier (#236962)

When building LLVM as a DLL on Windows, MSVC attempts to instantiate
implicit members such as the copy constructor. This class is already not
copyable due to having a `unique_ptr` member, so explicitly mark the
copy constructor and copy assignment operator as deleted.

The effort to build LLVM as a dylib is tracked in #109483.
DeltaFile
+4-0llvm/include/llvm/Support/SourceMgrDiagnosticVerifier.h
+4-01 files

LLVM/project d2f6dce — llvm/lib/Target/X86 X86ISelLowering.cpp

[X86] LowerRotate - pull out repeated checks. NFC. (#237576)
DeltaFile
+17-17llvm/lib/Target/X86/X86ISelLowering.cpp
+17-171 files

LLVM/project 92c1051 — .github/workflows llvm-test-suite-run.yml

[ci] Fix the LLVM test-suite run on macOS (#237582)

perf isn't available on macOS, so `which perf` returned non-zero and
failed the whole step.
DeltaFile
+1-1.github/workflows/llvm-test-suite-run.yml
+1-11 files

LLVM/project f115224 — llvm/include/llvm/Analysis AssumeBundleQueries.h, llvm/lib/Analysis AssumeBundleQueries.cpp

[AssumeBundleQueries] Remove getKnowledgeFromUse (#237174)

The function is used only in a single place, where inlining the function
allows simplifying the code quite a bit.
DeltaFile
+0-23llvm/lib/Analysis/AssumeBundleQueries.cpp
+14-5llvm/lib/Transforms/IPO/AttributorAttributes.cpp
+0-5llvm/include/llvm/Analysis/AssumeBundleQueries.h
+14-333 files

LLVM/project 82b78f9 — llvm/test/CodeGen/RISCV rvp-simd-32.ll

[RISCV] Regenerate rvp-simd-32.ll checks after concat_vectors fold

Co-authored-by: lialan <450283+lialan at users.noreply.github.com>
DeltaFile
+119-47llvm/test/CodeGen/RISCV/rvp-simd-32.ll
+119-471 files

LLVM/project f9f79d1 — .github/workflows libcxx-benchmark-cron.yml libcxx-lnt-refine-commits.yml

[libc++] Download LNT series incrementally when selecting refinement commits (#237566)

Selecting refinement commits requires downloading a large amount of data
from LNT (the time series for all tests). When done repeatedly, this
drains the credits we have for the datanase's IO. Instead, cache the
data we've already downloaded and download only what's missing.

Assisted by Claude
DeltaFile
+61-13.github/workflows/libcxx-lnt-refine-commits.yml
+1-0.github/workflows/libcxx-benchmark-cron.yml
+62-132 files

LLVM/project 8e92c09 — llvm/lib/CodeGen TargetInstrInfo.cpp, llvm/test/CodeGen/AArch64 machine-outliner-patchable.mir

[CodeGen][MachineOutliner] Ignore debug instructions when checking pa… (#227971)

…tchable exits

isMBBSafeToOutlineFrom checks the instruction before a return for
PATCHABLE_FUNCTION_EXIT and PATCHABLE_TAIL_CALL. A debug instruction
between the patchable instruction and the return currently hides it and
allows the block to be outlined.

Use prev_nodbg for the backward check while preserving the existing
treatment of pseudo probes. Retain the direct-adjacency coverage and add
a regression with a DBG_VALUE between PATCHABLE_FUNCTION_EXIT and RET.

Fixes #227922

Assisted-by: OpenAI Codex 5.6 Sol
Assisted-by: Claude (review)
DeltaFile
+87-0llvm/test/CodeGen/AArch64/machine-outliner-patchable.mir
+1-1llvm/lib/CodeGen/TargetInstrInfo.cpp
+88-12 files

LLVM/project e33fb95 — llvm/test/CodeGen/AMDGPU bfi_int.ll div_i128.ll, llvm/test/CodeGen/AMDGPU/GlobalISel cvt_f32_ubyte.ll xnor.ll

[GlobalISel] Fixup commuted combine matching

Match the subtraction on either side of (A-C1)+C2. Check constants and
use counts through the matched operands.

Look through single-use copies when unmerging constants to avoid extra
AMDGPU materializations. Preserve shared constants and copies, physical
register copies, and constant-fold barriers.

Cover commuted subtraction and copied constants in MIR tests, and update
affected AMDGPU assembly checks.
DeltaFile
+142-0llvm/test/CodeGen/AMDGPU/GlobalISel/regbankcombiner-unmerge-constant.mir
+61-66llvm/test/CodeGen/AMDGPU/fptoi.i128.ll
+55-34llvm/test/CodeGen/AMDGPU/GlobalISel/xnor.ll
+34-42llvm/test/CodeGen/AMDGPU/div_i128.ll
+18-56llvm/test/CodeGen/AMDGPU/bfi_int.ll
+26-30llvm/test/CodeGen/AMDGPU/GlobalISel/cvt_f32_ubyte.ll
+336-22814 files not shown
+463-37620 files

LLVM/project 46be2fa — libc/docs/headers/math index.md

[libc][docs] Update `index.md` for float80 and double_double functions (#236675)

This removed the long_double column, replacing it with the float80 and
double_double functions.
( Assisted using : Gemini )
DeltaFile
+129-128libc/docs/headers/math/index.md
+129-1281 files