LLVM/project 09c7aaa — utils/bazel/llvm-project-overlay/clang BUILD.bazel

[Bazel] Fixes 16b31a8 (#236621)

This fixes 16b31a851f863dad2223e5146c238e33393ed239 (#235039).

Buildkite error link:
https://buildkite.com/llvm-project/upstream-bazel/builds?commit=16b31a851f863dad2223e5146c238e33393ed239

Co-authored-by: Google Bazel Bot <google-bazel-bot at google.com>
DeltaFile
+9-0utils/bazel/llvm-project-overlay/clang/BUILD.bazel
+9-01 files

LLVM/project ae66789 — lld/MachO ExportTrie.cpp

[lld-macho] Build the export trie by edges, not bytes (#234857)

Emit singleton suffixes directly and scan common prefixes in one pass,
avoiding repeated byte-wise partitioning. This speeds up builds that
emit large export tries.

Wall time with
[LinkerBench](https://github.com/int3/macho-linker-bench),
release build, assertions off. Median ± 95% CI over at least 20
interleaved
runs per side.

## M4 Mac mini (10 cores, 16 GB):

| Link | Exports | 10 threads | 1 thread |
| --- | ---: | ---: | ---: |
| rust-analyzer (debug) | 248,607 | 650.3 ± 1.2 → 625.4 ± 1.9 ms (−3.8%)
| 951.7 ± 0.9 → 870.3 ± 1.7 ms (−8.6%) |
| SourceKit-LSP | 105,359 | 604.2 ± 2.3 → 605.4 ± 1.6 ms | 774.5 ± 1.3 →

    [13 lines not shown]
DeltaFile
+28-0lld/MachO/ExportTrie.cpp
+28-01 files

FreeBSD/src 0f6f751 — sys/contrib/ena-com ena_plat.h ena_com.h, sys/contrib/ena-com/ena_defs ena_admin_defs.h

ena: Upgrade ena-com to freebsd v2.8.5

Merge commit 'c51345cf234c029abf8b5f1655f65f6c2ffaaec9'

Reviewed by: cperciva
MFC after: 3 days
Sponsored by: Amazon, Inc.
DeltaFile
+35-27sys/contrib/ena-com/ena_com.c
+3-2sys/contrib/ena-com/ena_com.h
+5-0sys/contrib/ena-com/ena_defs/ena_admin_defs.h
+1-1sys/contrib/ena-com/ena_plat.h
+44-304 files

LLVM/project 58c2417 — llvm/lib/Transforms/Vectorize SLPVectorizer.cpp, llvm/lib/Transforms/Vectorize/SLPVectorizer SLPUtils.h SLPUtils.cpp

[SLP]Extract vectorized pointers used by vector loads

Blended loads, loads of extracted aggregates and loads with leading
poison lanes use scalar pointers directly, which get erased if they
are vectorized. Register them as external uses to replace all their
uses with the extracts.

Fixes #236177

Assisted-by: Cursor

Reviewers: 

Pull Request: https://github.com/llvm/llvm-project/pull/236623
DeltaFile
+58-0llvm/test/Transforms/SLPVectorizer/X86/load-poison-lane-vectorized-ptr.ll
+52-0llvm/test/Transforms/SLPVectorizer/X86/blended-load-vectorized-bases.ll
+43-0llvm/test/Transforms/SLPVectorizer/X86/extractvalue-load-vectorized-ptr.ll
+28-10llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
+7-0llvm/lib/Transforms/Vectorize/SLPVectorizer/SLPUtils.cpp
+5-0llvm/lib/Transforms/Vectorize/SLPVectorizer/SLPUtils.h
+193-106 files

FreeBSD/ports 77623b0 — . MOVED

www/mod_sgi4: removed MOVED line now the port has been reintroduced

The port has been reintroduced, so this is no longer needed
and may break existing setups that have mod_wsgi4 installed.

Fixes: 0121f370d86ddea8411bacfb72961eecedbd163a
Approved by: clusteradm
DeltaFile
+0-1MOVED
+0-11 files

LLVM/project ad13d6f — llvm/lib/Target/LoongArch LoongArchISelLowering.h LoongArchISelLowering.cpp, llvm/test/CodeGen/LoongArch bstrins-bstrpick-known-bits.ll

[LoongArch] Compute known bits and sign bits for BSTRINS/BSTRPICK (#233738)

BSTRINS and BSTRPICK are formed early by DAG combines, so the generic
known-bits and sign-bits analyses see them as opaque target nodes. When
such a value is live out of a block, its LiveOutInfo is lost and PHIs
merging it can no longer prove that the value is already sign- or
zero-extended, leaving redundant addi.w/bstrpick.d behind.

This is common in Rust code decoding UTF-8, e.g. `str::chars().rev()`,
where the multi-byte path assembles the code point with bstrins.d and is
merged with the ASCII byte loaded by ld.b before an i32 compare.

rustc-perf svg-parse-1 on LA664: instructions -2.4%, cycles -1.7%.
DeltaFile
+41-0llvm/lib/Target/LoongArch/LoongArchISelLowering.cpp
+1-5llvm/test/CodeGen/LoongArch/bstrins-bstrpick-known-bits.ll
+4-0llvm/lib/Target/LoongArch/LoongArchISelLowering.h
+46-53 files

LLVM/project cb57046 — llvm/test/CodeGen/LoongArch bstrins-bstrpick-known-bits.ll

[LoongArch][NFC] Pre-commit tests for BSTRINS/BSTRPICK known bits (#233737)
DeltaFile
+140-0llvm/test/CodeGen/LoongArch/bstrins-bstrpick-known-bits.ll
+140-01 files

FreeBSD/ports 5e657d7 — net/onedrivegui Makefile pkg-plist, net/onedrivegui/files patch-src_onedrivegui_global__config.py patch-src_resources_OneDriveGUI.desktop

net/onedrivegui: Update to 2.4.0
DeltaFile
+100-39net/onedrivegui/pkg-plist
+19-14net/onedrivegui/Makefile
+30-0net/onedrivegui/files/patch-pyproject.toml
+16-0net/onedrivegui/files/patch-src_onedrivegui_resources_OneDriveGUI.desktop
+0-15net/onedrivegui/files/patch-src_resources_OneDriveGUI.desktop
+12-0net/onedrivegui/files/patch-src_onedrivegui_global__config.py
+177-683 files not shown
+181-849 files

FreeBSD/src c51345c — . ena_com.h ena_com.c, ena_defs ena_admin_defs.h

ena: Retrieve RSS indirection table size from the device in ena-com

This patch allows the driver to create RSS indirection table with the
size advertised by the device.

Reviewed by: cperciva
MFC after: 3 days
Sponsored by: Amazon, Inc.
DeltaFile
+35-27ena_com.c
+3-2ena_com.h
+5-0ena_defs/ena_admin_defs.h
+43-293 files

FreeBSD/src 092a543 — . ena_plat.h

ena: Fix ENA_MEM_FREE_COHERENT with an expression size argument

ENA_MEM_FREE_COHERENT() discards its size parameter with "(void)size".
A cast binds tighter than '*', so when the argument is an in-place
calculation the macro expands to ((void)(a)) * b, which fails to
compile with "void value not ignored as it ought to be".

Wrap the parameter in parentheses before casting it. No functional
change for existing callers, which all pass a plain variable.

Reviewed by: cperciva
MFC after: 3 days
Sponsored by: Amazon, Inc.
DeltaFile
+1-1ena_plat.h
+1-11 files

LLVM/project 16b31a8 — clang/include module.modulemap, clang/include/clang/Basic CMakeLists.txt TargetBuiltins.h

[clang][NFC] Migrate old AVR builtins to TableGen (#235039)
DeltaFile
+68-0clang/include/clang/Basic/BuiltinsAVR.td
+0-47clang/include/clang/Basic/BuiltinsAVR.def
+9-10clang/lib/Basic/Targets/AVR.cpp
+3-2clang/include/clang/Basic/TargetBuiltins.h
+4-0clang/include/clang/Basic/CMakeLists.txt
+0-1clang/include/module.modulemap
+84-606 files

LLVM/project 714ea7d — llvm/lib/Transforms/Instrumentation PGOInstrumentation.cpp, llvm/test/Transforms/PGOProfile dense-wave-cfg.ll wave-profile-use.ll

[PGO] Load GPU wave counts into IR metadata

GPU profiles contain wave counts alongside lane counts, but profile use
does not expose them to optimizations. Wave visits do not obey scalar
flow conservation, so unmeasured blocks cannot use counts reconstructed
from neighboring blocks or ordinary branch weights.

Map wave-counter indices to the blocks selected by PGO instrumentation,
after reproducing its critical-edge splits. For dense profiles, also map the
appended wave-only slots to eligible blocks in function order, after the
original block/select prefix. Select the layout from the profile flags.
Attach measured counts using wave.profile metadata, retaining measured
zeros and marking blocks without measurements unavailable. Require a
measured entry count for normalization and exclude select-counter slots
from the block mapping. Repeated instrumentation sites for the same block
represent one measurement and are not summed.

Validate the wave-counter layout against the accepted lane profile.
Clear old wave metadata when loading a replacement profile, including

    [14 lines not shown]
DeltaFile
+291-0llvm/test/Transforms/PGOProfile/wave-profile-use.ll
+56-0llvm/lib/Transforms/Instrumentation/PGOInstrumentation.cpp
+15-1llvm/test/Transforms/PGOProfile/dense-wave-cfg.ll
+362-13 files

OpenBSD/ports mIxfvof — games/openrct2 Makefile distinfo, games/openrct2/pkg PLIST

   games/openrct2: update to 0.5.6
VersionDeltaFile
1.19+11-4games/openrct2/pkg/PLIST
1.15+6-6games/openrct2/distinfo
1.33+4-4games/openrct2/Makefile
+21-143 files

FreeBSD/src 78962f9 — sys/amd64/amd64 machdep.c

amd64 FRED: normalize the user-provided 'fred' knob value

Assembler accesses 'fred' as byte, ensure that any non-zero
user-provided value works.  This is pure cosmetics.

Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
DeltaFile
+2-0sys/amd64/amd64/machdep.c
+2-01 files

FreeBSD/src 2fd12bf — sys/amd64/amd64 cpu_switch.S

amd64 resumectx(): restore FRED state before loading %cr4

%cr4 has the FRED enable bit. This only matters for NMI and #MC, and the
kernel is really not ready to handle them while in resumectx(), but do
it for formal correctness.

Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
DeltaFile
+19-16sys/amd64/amd64/cpu_switch.S
+19-161 files

FreeBSD/src 6105e85 — sys/amd64/amd64 exception.S

amd64 FRED: explain why %rax is saved early

Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
DeltaFile
+4-0sys/amd64/amd64/exception.S
+4-01 files

FreeBSD/src 837bb27 — sys/amd64/amd64 trap.c

amd64 FRED: clear %dr6 on #DB from kernel

Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
DeltaFile
+8-0sys/amd64/amd64/trap.c
+8-01 files

FreeBSD/src 1c25a7f — sys/amd64/amd64 trap.c

amd64 FRED: mark trap frame as initialized for KASAN/KMSAN

Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
DeltaFile
+6-0sys/amd64/amd64/trap.c
+6-01 files

FreeBSD/src 6ca6973 — sys/amd64/amd64 exception.S

amd64 FRED: no need to store fs/gsbase on user_fred_not_syscall path

The stores are only relevant for PCB_FULL_IRET return to userspace,
and setting the flag stores the bases into the pcb anyway.  Also, the
hidden issue is that FRED already did implicit SWAPGS on entry, so
stored gsbase was wrong anyway.

Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
DeltaFile
+0-6sys/amd64/amd64/exception.S
+0-61 files

FreeBSD/src efb0c54 — sys/amd64/amd64 trap.c

amd64 FRED: handle in-kernel faults same as IDT

Pass #MC and #DF directly to corresponding handlers, avoiding EFI
pcb_onfault case.

If a fault occurs while kdb/ddb is active, handler must call
kdb_reenter() and not do the normal processing, which typically ends up
in panic() for kernel-mode faults.  But #MC and #DF should be excluded
there as well.

NMI is not an exception, it is delivered as specific event.

Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
DeltaFile
+11-2sys/amd64/amd64/trap.c
+11-21 files

FreeBSD/src b2767c7 — sys/amd64/amd64 db_trace.c

amd64 db_nextframe(): classify user_fred_syscall frame as SYSCALL

Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
DeltaFile
+2-2sys/amd64/amd64/db_trace.c
+2-21 files

FreeBSD/src 0cfbb34 — sys/amd64/amd64 trap.c

amd64 FRED: add missed newline in the diagnostic

Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
DeltaFile
+1-1sys/amd64/amd64/trap.c
+1-11 files

LLVM/project a7e8295 — llvm/docs LangRef.md, llvm/include/llvm/IR ProfDataUtils.h

[IR] Define GPU wave-profile metadata

Existing offload GPU profile counters measure lane executions, while
GPU instructions execute at wave granularity under an active-lane
mask. A block visited by every wave can therefore look cold when only
a few lanes are active. Scalar branch weights also cannot represent a
divergent wave visiting both successors before reconverging. These
profiles are a poor fit for optimizations that estimate work performed
by a wave.

Lane counters remain useful for measuring per-lane branch selectivity
and estimating work that scales with the number of active lanes.
Wave counters cannot replace them: a visit with one active lane and a
visit with all lanes active both count as one. The two profiles provide
complementary information about instruction execution and lane activity.

Introduce wave.profile and wave.profile.block metadata to represent
measured wave visits to IR blocks. Each dynamic visit with at least one
active lane contributes one to the count. A measured zero is distinct

    [19 lines not shown]
DeltaFile
+880-0llvm/unittests/IR/ProfDataUtilsTest.cpp
+403-0llvm/lib/IR/ProfDataUtils.cpp
+91-0llvm/test/Verifier/wave-profile.ll
+79-0llvm/include/llvm/IR/ProfDataUtils.h
+47-0llvm/docs/LangRef.md
+40-0llvm/test/Bitcode/wave-profile.ll
+1,540-06 files not shown
+1,626-012 files

LLVM/project 51530e3 — llvm/lib/Target/RISCV RISCVInstrInfoP.td, llvm/test/CodeGen/RISCV rvp-scalar-rv64.ll

[RISCV][P-ext] Add isel pattern for mul.w01/mul.w11 (#236323)

`mul.w01` multiplies the sign-extended lower word of rs1 by the
 sign-extended upper word of rs2, and `mul.w11` multiplies the
 sign-extended upper words of both. Both produce a 64-bit result and
 are RV64 only.

 Previously, (sra X, 32) was selected as a separate srai feeding `mul`.
 Match it directly so the shift is folded.
DeltaFile
+46-2llvm/test/CodeGen/RISCV/rvp-scalar-rv64.ll
+4-0llvm/lib/Target/RISCV/RISCVInstrInfoP.td
+50-22 files

FreeBSD/src 66ecb41 — sys/dev/rtwn/rtl8188f r88f_chan.c

rtwn: fix 8188f channel offset / width programming

* rtwn_chan2centieee() already calculates the proper centre
  frequency, so it doesn't need to be further offset.
* Don't program R92C_RF_CHNLBW with further 20MHz wide bits;
  the rest of the programming works correctly for 20/40MHz
  operation.

Tested:

* Verified against the linux rtl8xxxu/8188f.c code.
* Tested w/ 20 and 40MHz 11n; 40MHz is now operating at higher
  speed.

Fixes: 2c38dc04d6f8bc84620bb3b67c8ccd9f910c4d03
DeltaFile
+0-5sys/dev/rtwn/rtl8188f/r88f_chan.c
+0-51 files

OpenBSD/ports UBNMAQA — audio/ncspot Makefile crates.inc

   audio/ncspot: update to 1.5.0
VersionDeltaFile
1.43+20-18audio/ncspot/distinfo
1.29+9-8audio/ncspot/crates.inc
1.60+1-1audio/ncspot/Makefile
+30-273 files

LLVM/project 1838cef — llvm/lib/Support regcomp.c

[Support] Add missing cast to uch (#236493)

In #174150, a call to `isdigit(PEEK())` was added, but `PEEK()` expands
to an expression of type `char` and `isdigit` requires its argument to
be `unsigned char`. Elsewhere in this file, this is done by just casting
the argument, `isalpha((uch)PEEK())`, so do the same here.
DeltaFile
+1-1llvm/lib/Support/regcomp.c
+1-11 files

LLVM/project 75be70a — compiler-rt/lib/asan asan_new_delete.cpp, compiler-rt/test/sanitizer_common/TestCases max_allocation_size.cpp throw_bad_alloc_oversize.cpp

Revert "[asan] Adopt sanitizer_common operator-new framework (#196388)" (#236607)

#196388 made ASan's throwing operator new throw std::bad_alloc when
allocator_may_return_null=1. That exception does not reach the caller in
two configurations:

- arm64 Darwin linked with ld64.lld. asan_win.cpp compiles to an empty
object that is linked right before asan_new_delete.cpp.o, and ld64.lld
writes an encoding-0 (no unwind information) compact unwind entry at
operator new's address (#224949). The unwinder cannot step out of
operator new, so the std::bad_alloc it throws terminates the program
instead of reaching the caller's handler. The linker fix is #225055.
- Android. Both libclang_rt.asan-\*-android.so and libc++_shared.so link
static libc++abi.a, so the two libraries have separate new-handler state
and std::bad_alloc type info (#235557).

This also reverts #235557, which marked tests XFAIL on Android only
because of #196388.


    [4 lines not shown]
DeltaFile
+45-12compiler-rt/lib/asan/asan_new_delete.cpp
+0-52compiler-rt/test/sanitizer_common/TestCases/new_handler_invocation.cpp
+0-51compiler-rt/test/sanitizer_common/TestCases/throw_bad_alloc_aligned.cpp
+0-45compiler-rt/test/sanitizer_common/TestCases/throw_bad_alloc_aligned_single.cpp
+0-44compiler-rt/test/sanitizer_common/TestCases/throw_bad_alloc_oversize.cpp
+7-31compiler-rt/test/sanitizer_common/TestCases/max_allocation_size.cpp
+52-23512 files not shown
+76-45218 files

OpenZFS/src 0606e0d — include/sys vdev.h, module/zfs spa_config.c vdev_label.c

Build the vdev config in place instead of copying it.

vdev_config_generate() built each child's nvlist on its own, copied it
into the parent and then freed it. The extended stats and the vdev
tree in spa_config_generate() were added the same way. In a config
with stats, the stats of a leaf under a raidz vdev were copied four
times.

Each nested nvlist is now added empty and filled where it lives. The
output is the same. vdev_config_generate() keeps its interface and
calls the new vdev_config_generate_impl().

On a pool with 1200 disks, building the config that
ZFS_IOC_POOL_STATS returns took about 287 ms before and about 80 ms
after. This was measured in userland with libzpool. In a perf profile
of that ioctl the copies were about 55% of the samples.

Signed-off-by: Caleb St. John <yocalebo at gmail.com>
Reviewed-by: Ameer Hamza <ameer.hamza at truenas.com>
Reviewed-by: Alexander Motin <alexander.motin at TrueNAS.com>
Closes #19355
DeltaFile
+34-19module/zfs/vdev_label.c
+4-1module/zfs/spa_config.c
+2-0include/sys/vdev.h
+40-203 files

LLVM/project 59ddb48 — lldb/source/Plugins/Language/CPlusPlus LibStdcpp.cpp LibStdcppAtomic.cpp, lldb/test/API/functionalities/data-formatter/data-formatter-stl/generic-simulators/libstdcpp-atomic TestDataFormatterLibstdcppAtomicSimulator.py main.cpp

[lldb] Add libstdcpp atomic data formatters (#174218)

This patch adds a new synthetic child provider and a summary formatter
for the libstdc++ implementation of std::atomic<>.
DeltaFile
+159-0lldb/test/API/functionalities/data-formatter/data-formatter-stl/generic-simulators/libstdcpp-atomic/main.cpp
+136-0lldb/source/Plugins/Language/CPlusPlus/LibStdcppAtomic.cpp
+81-0lldb/test/API/functionalities/data-formatter/data-formatter-stl/generic-simulators/libstdcpp-atomic/TestDataFormatterLibstdcppAtomicSimulator.py
+69-2lldb/test/API/functionalities/data-formatter/data-formatter-stl/generic/atomic/TestDataFormatterStdAtomic.py
+43-2lldb/source/Plugins/Language/CPlusPlus/LibStdcpp.cpp
+41-0lldb/test/API/functionalities/data-formatter/data-formatter-stl/generic/atomic/main.cpp
+529-45 files not shown
+569-1411 files