LLVM/project ed5c830 — llvm/lib/Passes PassBuilderPipelines.cpp, llvm/test/ThinLTO/X86 pass-pipeline.ll cfi-icall-pgo-icp.ll

[ThinLTO] Run LowerTypeTests after indirect call promotion (#241582)

In ThinLTO backends, `LowerTypeTestsPass` ran before
`SampleProfileLoaderPass`
and `PGOIndirectCallPromotion`, renaming each CFI jump-table member
`foo` to
`foo.cfi` and leaving a `foo` declaration for the jump-table entry:

* `SampleProfileLoader` canonicalizes `foo.cfi` to `foo`, colliding with
the
`foo` declaration in `SymbolMap` and skipping sample annotation and ICP.
* Running ICP first lets it promote calls to `foo` under its original
name;
`LowerTypeTestsPass` then keeps direct calls to `foo.cfi` and redirects
the
  promoted pointer comparison to `foo`.

Move `LowerTypeTestsPass` after ICP in
`buildModuleSimplificationPipeline`,

    [4 lines not shown]
DeltaFile
+23-11llvm/lib/Passes/PassBuilderPipelines.cpp
+12-10llvm/test/ThinLTO/X86/cfi-icall-samplepgo-icp.ll
+5-5llvm/test/ThinLTO/X86/cfi-icall-pgo-icp.ll
+2-2llvm/test/ThinLTO/X86/pass-pipeline.ll
+42-284 files

LLVM/project 90b8379 — llvm/include/llvm/Analysis ObjCARCInstKind.h ObjCARCUtil.h, llvm/lib/Analysis ObjCARCInstKind.cpp

[ObjCARC] Treat objc_claimAutoreleasedReturnValue as RetainRV (#241436)

In spite of the names, claimRV really has much more in common with
retainRV than with unsafeClaimRV. Semantically claimRV is just retainRV
without the marker nop.

Currently GetFunctionClass doesn't handle claimRV at all, and it
defaults to CallOrUser. In well-behaved pass pipelines this omission
shouldn't be observable, but in the face of unusual pass ordering we
could have e.g. a situation where inlining happens after contraction,
and then the inliner gets confused and sends the claimRV down the
unsafeClaimRV +0 path, resulting in an over-release.

As a hardening against such situations, this patch classifies claimRV as
kind RetainRV. The additional changes in InlineFunction.cpp are just NFC
clarifications. Some of its mentions of "claimRV" are a bit too loose
when they actually mean unsafeClaimRV specifically.

Assisted-by: claude

rdar://191370661
DeltaFile
+99-0llvm/test/Transforms/ObjCARC/claim-rv.ll
+32-0llvm/test/Transforms/Inline/inline-retainRV-call.ll
+12-12llvm/lib/Transforms/Utils/InlineFunction.cpp
+2-2llvm/include/llvm/Analysis/ObjCARCUtil.h
+4-0llvm/lib/Analysis/ObjCARCInstKind.cpp
+2-1llvm/include/llvm/Analysis/ObjCARCInstKind.h
+151-156 files

LLVM/project 1deca0d — libc/include/llvm-libc-macros/linux time-macros.h

[libc] Add CLOCK_TAI (#241692)

`CLOCK_TAI` is the kernel's clock for International Atomic Time, number
11. It was missing from the Linux time macros

AI disclosure: this patch was written with Claude Code. I reviewed the
change and built and ran the new test in a full build; it does not build
without the change

Assisted-by: Claude
DeltaFile
+1-0libc/include/llvm-libc-macros/linux/time-macros.h
+1-01 files

LLVM/project dc13a07 — .github CODEOWNERS

[CODEOWNERS] Add myself as codeowner for things I maintain (#241623)

- I'm the maintainer of clang-doc
- I'm the original author of MisExpect, ProfDataUtils,
StackFrameLayoutAnalysisPass, and FatLTO
- I'm a maintainer of Fuchsia's toolchain

This should help me avoid missing reviews for things I care about.
DeltaFile
+30-0.github/CODEOWNERS
+30-01 files

LLVM/project cdec610 — llvm/include/llvm/Analysis MemorySSA.h, llvm/lib/Analysis MemorySSA.cpp

[MemorySSA] Allocate access lists with the bump allocator (NFC) (#241804)

Follow-up to https://github.com/llvm/llvm-project/pull/236419 to also
allocate the per-block AccessList and DefsList with UseOrDefAllocator.

UseOrDefAllocator should be renamed to something more generic, like
Allocator, but I left this out as it would add a bunch of unrelated
renaming edits.

stage1-O3: -0.08%
stage1-ReleaseThinLTO: -0.11%
stage1-ReleaseLTO-g: -0.06%
stage1-aarch64-O3: -0.07%
stage2-O3: -0.06%
stage2-clang: -0.08%


https://llvm-compile-time-tracker.com/compare.php?from=f9ea44545a3bc51171ca487059087dc6e16560d3&to=54ffa22b93d74aa1cde869ae4e3a1725ed40ea27&stat=instructions:u


    [2 lines not shown]
DeltaFile
+9-9llvm/lib/Analysis/MemorySSA.cpp
+8-3llvm/include/llvm/Analysis/MemorySSA.h
+17-122 files

LLVM/project e003b91 — libc/docs conf.py CMakeLists.txt, libc/docs/_static status.css status.js

[libc][docs] Add search, filters, and drawers to dashboard (#241976)

With 82 headers on headers/index.html, finding a specific symbol or
inspecting which functions, macros, types, or global variables remain
unimplemented requires opening individual header pages one by one.

Add expandable detail drawers to each header row with category and
precision breakdowns plus clickable missing and implemented symbol chips
linked to cppreference.com and Open Group specifications, and add
client-side search, standard/status filtering, sorting, and
expand/collapse controls in status.js.

Assisted-by: Automated tooling, human reviewed.
DeltaFile
+156-6libc/utils/docgen/docgen.py
+78-0libc/docs/_static/status.js
+35-2libc/docs/_static/status.css
+6-0libc/utils/docgen/docgen_test.py
+2-2libc/docs/CMakeLists.txt
+1-0libc/docs/conf.py
+278-106 files

LLVM/project 59d67b3 — utils/bazel/llvm-project-overlay/mlir/test BUILD.bazel

[Bazel][mlir] Fix TestDialect after commit 377564c29af5 (#241990)

Add partition defs/decls to TestOpsIncGen, remove gentbl_sharded_ops
DeltaFile
+58-15utils/bazel/llvm-project-overlay/mlir/test/BUILD.bazel
+58-151 files

LLVM/project d0fb0f4 — llvm/include/llvm/CodeGen BasicTTIImpl.h, llvm/lib/Target/X86 X86TargetTransformInfo.cpp

[X86] Update mask.beforefirst cost (#241746)

After #232262 we lower mask.beforefirst as (x - 1) & ~x in a GPR, this
updates the cost model to match.

Opus 5.5 was used to work out the costs for the table.
DeltaFile
+97-0llvm/test/Analysis/CostModel/X86/mask-beforefirst.ll
+26-1llvm/lib/Target/X86/X86TargetTransformInfo.cpp
+1-1llvm/include/llvm/CodeGen/BasicTTIImpl.h
+124-23 files

LLVM/project e65a864 — lldb/source/Core FormatEntity.cpp, lldb/test/API/functionalities/return-value-synthetic Makefile synthetic.py

Revert "[lldb] Show synthetic children in the return value of the thr… (#241947)

…ead desc…"

This reverts commit fd5f0a88dad6b034763b75bdc9e0021afc6634ab.

The test is failing on aarch64 ubuntu.
DeltaFile
+0-26lldb/test/API/functionalities/return-value-synthetic/TestReturnValueSynthetic.py
+0-14lldb/test/API/functionalities/return-value-synthetic/main.c
+0-9lldb/test/API/functionalities/return-value-synthetic/synthetic.py
+1-7lldb/source/Core/FormatEntity.cpp
+0-3lldb/test/API/functionalities/return-value-synthetic/Makefile
+1-595 files

FreeBSD/src d40890f — sys/netinet/tcp_stacks rack.c

TCP RACK: fix RSM computation for TCP fast open

When spitting an RSM containing the SYN and data, honor the
sequence number used by the SYN flag when computing the offset
in the socket buffer.

PR:                     297006
Reviewed by:            rrs, Peter Lei
Sponsored by:           Netflix, Inc.
Differential Revision:  https://reviews.freebsd.org/D61149

(cherry picked from commit ff066579fd7719a6361e7ce8cc9ade47517d242d)
DeltaFile
+13-2sys/netinet/tcp_stacks/rack.c
+13-21 files

LLVM/project 2fab133 — lld/MachO Options.td Driver.cpp, lld/docs ReleaseNotes.md

[lld][MachO] -objc_category_merging implies --check-category-conflicts
DeltaFile
+6-3lld/MachO/Driver.cpp
+8-0lld/test/MachO/objc-category-conflicts.s
+3-3lld/MachO/Options.td
+2-0lld/docs/ReleaseNotes.md
+19-64 files

LLVM/project d42fb58 — llvm/lib/Target/Sparc SparcInstrInfo.td SparcISelLowering.cpp, llvm/test/CodeGen/SPARC readcycle.ll

[SPARC] Read full LEON cycle counter (#240367)

Read the two cycle counter registers using a rollover-safe retry loop,
in a similar way to how it is done in RISC-V for cycleh/cycle on RV32.

The counter runs at a fixed CPU clock so llvm.readsteadycounter can use
the same counter.

Assisted-by: Claude
DeltaFile
+48-9llvm/lib/Target/Sparc/SparcISelLowering.cpp
+33-4llvm/test/CodeGen/SPARC/readcycle.ll
+10-0llvm/lib/Target/Sparc/SparcInstrInfo.td
+91-133 files

LLVM/project 27a633b — libc/src/__support/fixed_point fx_bits.h, libc/test/src/stdfix FxDiviTest.h

[libc][stdfix] Fix lrdivi saturation for huge quotients (#241213)

Issue #241209

`fixed_point::fxdivi` only did its early saturation check when
`OutRep::INTEGRAL_LEN > 0`. `long fract` has no integral bits, so it
went to
the `WF <= F` branch, where the 128-bit quotient is cast to the 64-bit
`WideStorage` before it is compared with MAX/MIN. For a huge quotient
the sign
of the saturated result then depended on the truncated bits, e.g.
`lrdivi(1L << 62, 3)` returned MIN instead of MAX.

Do the early saturation check for all output types `MAX_UNITS` is 1 for
types
without integral bits.

Add checks to `FxDiviTest.h` for 64-bit operands a huge numerator must
saturate according to the sign of the quotient.
AI usage for formatting the PR description.
DeltaFile
+12-0libc/test/src/stdfix/FxDiviTest.h
+4-7libc/src/__support/fixed_point/fx_bits.h
+16-72 files

LLVM/project 297f8b7 — llvm/test/tools/llubi metadata_phi.ll metadata_phi_ub.ll, llvm/tools/llubi/lib Interpreter.cpp

[llubi] Support metadata on phi nodes (#241949)

This is to support deb738d in llubi.

Assisted-By: LLM
DeltaFile
+50-0llvm/test/tools/llubi/metadata_phi_ub.ll
+37-0llvm/test/tools/llubi/metadata_phi.ll
+4-0llvm/tools/llubi/lib/Interpreter.cpp
+91-03 files

HardenedBSD/src f00d214 — sys/dev/hwpmc hwpmc_mod.c, sys/dev/sound/midi mpu401.c midiq.h

Merge branch 'freebsd/current/main' into hardened/current/master
DeltaFile
+121-96sys/dev/sound/midi/midi.c
+92-3sys/dev/tpm/tpm_crb.c
+0-87sys/dev/sound/midi/midiq.h
+17-59sys/dev/sound/midi/mpu401.c
+36-1sys/dev/hwpmc/hwpmc_mod.c
+30-6sys/netipsec/ipsec.c
+296-25218 files not shown
+373-31024 files

HardenedBSD/src 879a6b2 — share/man/man4 aq.4, sys/amd64/vmm/intel vmx.c

Merge branch 'freebsd/15-stable/main' into hardened/15-stable/main
DeltaFile
+34-1sys/dev/aq/aq2_fw.c
+30-0sys/dev/aq/aq_irq.c
+14-10sys/dev/aq/aq_main.c
+16-6sys/dev/aq/aq_fw2x.c
+20-1share/man/man4/aq.4
+21-0sys/amd64/vmm/intel/vmx.c
+135-1810 files not shown
+179-2716 files

LLVM/project e526689 — llvm/lib/Transforms/Scalar ConstraintElimination.cpp, llvm/test/Transforms/ConstraintElimination minmax.ll

[ConstraintElim] Split signed min/max across their operands when checking a compare

The existing constraint systems only record the bounds that hold for both
operands of a min/max (smax(a, b) >= a and >= b, smin(a, b) <= a and <= b). The
other direction is a disjunction, which cannot be recorded as a fact. When a
compare of signed decompositions involves a min/max result, split it into its
operands: the decomposition is monotonic in that result, so it is the max or min
of its values on each side, and the relation holds for all or for either side
respectively.

https://alive2.llvm.org/ce/z/zsGkJ-
DeltaFile
+366-3llvm/test/Transforms/ConstraintElimination/minmax.ll
+155-0llvm/lib/Transforms/Scalar/ConstraintElimination.cpp
+521-32 files

LLVM/project ee50fc5 — llvm/test/MC/ELF dwarf5-duplicate-file-directive.s

[NVPTX][tests] Fix llvm/test/MC/ELF/dwarf5-duplicate-file-directive.s (#241775)

NVPTX does not support generating binary files, so require
object-emission in the test.
DeltaFile
+1-0llvm/test/MC/ELF/dwarf5-duplicate-file-directive.s
+1-01 files

LLVM/project 5c3918c — clang/lib/Headers riscv_packed_simd.h, clang/test/CodeGen/RISCV rvp-intrinsics.c

[RISCV][P-ext] Add Scalar Zip/UnZip Intrinsics (#241430)

This patch adds scalar zip/unzip intrinsics for P-ext. Also, it supports
missing codegen for zip*hp.
DeltaFile
+104-0clang/test/CodeGen/RISCV/rvp-intrinsics.c
+55-0clang/lib/Headers/riscv_packed_simd.h
+48-0cross-project-tests/intrinsic-header-tests/riscv_packed_simd.c
+42-0llvm/test/CodeGen/RISCV/rvp-zip.ll
+8-0llvm/lib/Target/RISCV/RISCVISelLowering.cpp
+3-0llvm/lib/Target/RISCV/RISCVInstrInfoP.td
+260-06 files

LLVM/project 6b90c7e — clang/test/CodeGenHLSL/builtins f16tof32.hlsl f16tof32-builtin.hlsl, clang/test/SemaHLSL TruncationOverloadResolution.hlsl

[HLSL][NFC] Fix fragile tests (#241625)

- Remove unstable attribute-group number
- Add anchor for function declaration to scope the checks to the
intended function.
DeltaFile
+1-1clang/test/CodeGenHLSL/builtins/f16tof32.hlsl
+1-1clang/test/CodeGenHLSL/builtins/f16tof32-builtin.hlsl
+2-0clang/test/SemaHLSL/TruncationOverloadResolution.hlsl
+4-23 files

LLVM/project 65754eb — lldb/test/API/commands/expression/diagnostics TestExprDiagnostics.py

[lldb][test] Run TestExprDiagnostics with PDB debug info (#240854)

`test_command_expr_sbdata` checks the note `"Ran expression as
'C++...'"`. With DWARF, it names the standard of the CU ("C++17").
CodeView's `S_COMPILE3` only records that the language is C++, so with
PDB the expression is displayed as `"ISO C++"`.

This patch expects that with PDB.

rdar://192360644
DeltaFile
+9-3lldb/test/API/commands/expression/diagnostics/TestExprDiagnostics.py
+9-31 files

LLVM/project 2c7c89d — clang/test CMakeLists.txt, clang/test/Unit/CIR lit.cfg.py lit.site.cfg.py.in

[CIR] Add CIR unit tests to check-clang-cir (#238102)

This change updates the CMake handling of the check-clang-cir and adds
lit config files to include CIR unit tests with the check-clang-cir
build target. This will ensure that these tests are run as part of the
mlir CI testing, which uses on check-clang-cir and not the full
check-clang target.

Assisted-by: Cursor / Grok 4.7
DeltaFile
+26-7clang/test/CMakeLists.txt
+18-0clang/test/Unit/CIR/lit.site.cfg.py.in
+12-0clang/test/Unit/CIR/lit.cfg.py
+56-73 files

LLVM/project f42f116 — lldb/source/Plugins/Process/elf-core ProcessElfCore.h ProcessElfCore.cpp

[lldb][ELF core] Store NT_FILE file offsets in bytes (#241003)

Linux `NT_FILE` notes encode each file offset as a page offset and
provide the page size separately. `ProcessElfCore` currently stores that
raw page offset in `NT_FILE_Entry::file_ofs`, even though the entry's
address ranges use bytes.

No existing consumer depends on `file_ofs` remaining in page units.
Convert it to bytes while parsing the note and document the field's unit
explicitly. This keeps the entry's offsets and addresses in consistent
units and makes it safe to use `file_ofs` directly in address
calculations.
DeltaFile
+3-2lldb/source/Plugins/Process/elf-core/ProcessElfCore.cpp
+3-1lldb/source/Plugins/Process/elf-core/ProcessElfCore.h
+6-32 files

LLVM/project 34f2fb6 — clang/test/Driver hexagon-hmx.c, llvm/lib/Target/Hexagon HexagonDepInstrInfo.td HexagonDepIICScalar.td

Hexagon hmx (#240595)

Add driver options and assembler-level support for Hexagon Matrix
eXtensions (HMX), implemented in Hexagon v68 and v73. HMX is an
accelerator for matmul and convolution machine learning workloads.

There are several classes of instructions:

- matrix multiply: activation and weight; these two instructions must be
  paired in one packet,
- bias load and store,
- convert transfer,
- write convert state,
- accumulator clear.

Only IEEE fp16 (hf) ISA variant is supported at this time.

The new target feature "hmx" is added to enable the HMX extensions.
In addition, new command line options are added: "-mhmx" in llvm-mc and

    [8 lines not shown]
DeltaFile
+296-0llvm/lib/Target/Hexagon/HexagonDepIICScalar.td
+111-0llvm/lib/Target/Hexagon/HexagonDepInstrInfo.td
+68-0llvm/test/MC/Hexagon/HexagonTestWriter/v73_hmx.s
+58-0llvm/test/MC/Hexagon/HexagonTestWriter/v68_hmx.s
+34-0clang/test/Driver/hexagon-hmx.c
+33-0llvm/test/MC/Hexagon/PacketRules/hmx_weight_act.s
+600-012 files not shown
+705-118 files

LLVM/project 8edf2ad — lld/test/ELF loongarch-relax-pcrel-stress.s loongarch-relax-call-stress.s

[ELF,test] Reduce the output size of some range extension tests (#241981)

For hexagon/loongarch/ppc64 tests, replace large .space fillers with
output section address (linker script), ensuring no test coverage loss
with mutation testing. Related to #202261
DeltaFile
+40-67lld/test/ELF/hexagon-thunks-packets.s
+56-50lld/test/ELF/hexagon-thunk-range-b22rel.s
+27-36lld/test/ELF/hexagon-thunk-range-plt.s
+23-18lld/test/ELF/hexagon-thunk-range-gdplt.s
+11-6lld/test/ELF/loongarch-relax-pcrel-stress.s
+11-6lld/test/ELF/loongarch-relax-call-stress.s
+168-1833 files not shown
+184-1999 files

FreeBSD/ports 177e404 — audio/fooyin Makefile distinfo

audio/fooyin: Update to 0.15.1

Changelog: https://github.com/fooyin/fooyin/releases/tag/v0.15.1
DeltaFile
+3-3audio/fooyin/distinfo
+2-2audio/fooyin/Makefile
+5-52 files

HardenedBSD/ports 177e404 — audio/fooyin Makefile distinfo

audio/fooyin: Update to 0.15.1

Changelog: https://github.com/fooyin/fooyin/releases/tag/v0.15.1
DeltaFile
+3-3audio/fooyin/distinfo
+2-2audio/fooyin/Makefile
+5-52 files

LLVM/project acd1c6c — clang/lib/Sema SemaHLSL.cpp, clang/test/CodeGenHLSL/resources resources-in-structs-this-access.hlsl

[HLSL] Handle `this` in dynamic resource indexing validation (#239876)

Fixes an `llvm_unreachable` assert in dynamic resource index validation
when a resource member is accessed in a member function using `this`.

Fixes #239858
DeltaFile
+30-0clang/test/CodeGenHLSL/resources/resources-in-structs-this-access.hlsl
+2-0clang/lib/Sema/SemaHLSL.cpp
+32-02 files

LLVM/project 7703770 — libc/config/linux/arm entrypoints.txt, libc/include CMakeLists.txt malloc.yaml

[libc] Add mallinfo2() as external entrypoint. (#241662)

`mallinfo2` is the newer interface (available since glibc 2.33) that
replaces
legacy/deprecated `mallinfo`, and uses `struct mallinfo2` with properly
sized struct fields.

Scudo allocator implements this interface, and some of the code on Linux
tests for / uses this functionality from `<malloc.h>` header, so let us
define
it as an external entrypoint in LLVM-libc as well. One of such users
is LLVM itself, in `Process::GetMallocUsage()`.

Assisted-by: automated tooling, human-reviewed.
DeltaFile
+32-0libc/include/llvm-libc-types/struct_mallinfo2.h
+10-0libc/include/malloc.yaml
+8-0libc/src/stdlib/CMakeLists.txt
+2-1libc/config/linux/arm/entrypoints.txt
+2-0libc/include/CMakeLists.txt
+1-0libc/include/llvm-libc-types/CMakeLists.txt
+55-13 files not shown
+58-19 files

LLVM/project dcc766a — libc/cmake/caches baremetal_common.cmake

[libc] Enable -Werror in baremetal_common.cmake cache file

After recent fixes, all the warnings are gone in baremetal builds.

Enable -Werror again so that we can catch warnings as they come.
DeltaFile
+1-2libc/cmake/caches/baremetal_common.cmake
+1-21 files