LLVM/project 88c6744 — clang/lib/CodeGen/TargetBuiltins RISCV.cpp, clang/test/CodeGen/RISCV rvp-intrinsics.c

[RISCV][P-ext] Support Scalar Narrowing Clip (#241979)

This patch supports scalar narrowing clip intrinsics, see also
https://github.com/riscv/riscv-p-spec/blob/master/P-ext-intrinsics.adoc#narrowing-clip.
DeltaFile
+288-0llvm/test/CodeGen/RISCV/rvp-scalar.ll
+82-0clang/test/CodeGen/RISCV/rvp-intrinsics.c
+74-0llvm/lib/Target/RISCV/RISCVISelLowering.cpp
+39-0cross-project-tests/intrinsic-header-tests/riscv_packed_simd.c
+34-0llvm/lib/Target/RISCV/RISCVInstrInfoP.td
+17-0clang/lib/CodeGen/TargetBuiltins/RISCV.cpp
+534-03 files not shown
+563-09 files

LLVM/project 29bc101 — llvm/test/tools/llubi intr_vp_strided_store.ll intr_vp_strided_load.ll, llvm/tools/llubi/lib Context.h Interpreter.cpp

Address review comments
DeltaFile
+53-44llvm/tools/llubi/lib/Interpreter.cpp
+20-16llvm/test/tools/llubi/intr_vp_strided_load_ub.ll
+15-13llvm/test/tools/llubi/intr_vp_strided_store_ub.ll
+18-0llvm/test/tools/llubi/intr_vp_strided_load.ll
+13-0llvm/test/tools/llubi/intr_vp_strided_store.ll
+4-0llvm/tools/llubi/lib/Context.h
+123-731 files not shown
+125-757 files

LLVM/project 2ecca43 — llvm/lib/Target/LoongArch LoongArchISelLowering.cpp

Address zhaoqi's comments
DeltaFile
+1-2llvm/lib/Target/LoongArch/LoongArchISelLowering.cpp
+1-21 files

LLVM/project 5a8cc0c — lld/MachO MarkLive.cpp, lld/test/MachO dead-strip-parallel.s

[lld-macho] Collect markLive roots in parallel

With the traversal parallel, most of markLive's remaining time goes to
the serial loops around it: finding the GC roots, which visits every
global symbol, every object file's local symbols and every input
section, and the S_ATTR_LIVE_SUPPORT scan over every input section.

Run those loops on all threads. The type-erased MarkLive interface now
takes a shard index with each root: each thread adds the roots it finds
to its own shard, and moves them to nextLevel after every chunk, so with
one thread the order is unchanged. The live-support scan does the same
with the sections it marks live, reading the live bits of sections that
other threads may be marking at the same time through the thread-safe
isLive(). A live-support section that refers only to another one marked
by the same scan may be found by the next iteration of the loop around
it instead; the final live set is the same.

Co-Authored-By: Claude Opus 5.5 <noreply at anthropic.com>
DeltaFile
+136-77lld/MachO/MarkLive.cpp
+34-0lld/test/MachO/dead-strip-parallel.s
+170-772 files

FreeBSD/src 209af05 — sys/arm/allwinner/a33 a33_padconf.c

allwinner: a33: Fix the pin number of PE17

The PE17 entry of the pad table of the A33 had the pin number 16, the
one of PE16, so the pinctrl of PE17 configured PE16 and a <&pio 4 17>
specifier could not be mapped.

Reported by:    llm-postcr
Fixes:          cf72965fbf02 ("Allwinner: Add A33 support")
DeltaFile
+1-1sys/arm/allwinner/a33/a33_padconf.c
+1-11 files

FreeBSD/src 628d2bc — sys/dev/clk/allwinner ccu_h6_r.c

aw_ccu: h6: Allow the IR and W1 clocks to change their parent

The IR clock was defined without AW_CLK_REPARENT, so only the current
parent was used to find a rate.  The firmware leaves the mux on osc32k,
from which the best rate is 32768Hz, and aw_cir asks for exactly 3MHz,
which osc24M can give.  The request failed and r_ir did not attach.  Do
the same as the main CCU for the CIR-TX clock and let the clock use the
best parent, and do the same for the 1-wire clock which is the same.

Reported by:    llm-postcr
Fixes:          69919babdac7 ("aw_ccu: h6: Add the IR, W1, RSB and RTC clocks of the R CCU")
Tested on: H6
DeltaFile
+4-2sys/dev/clk/allwinner/ccu_h6_r.c
+4-21 files

FreeBSD/src 4866331 — sys/arm/allwinner axp81x.c

axp81x: Fix the number of steps of the first range of DCDC5

The voltage of DCDC5 goes from 800mV to 1120mV in 10mV steps with the
codes 0x00 to 0x20, then from 1140mV to 1840mV in 20mV steps with the
codes 0x21 to 0x44.  The first range has 32 steps and not 42, so every
code above 32 was decoded and encoded wrongly: the driver read 1160mV
for the 1.2V that the firmware sets for the DRAM, did not see it in the
range of the FDT and wrote a code that is really 1280mV.  The same
happens for the other voltages, 1.36V is set to 1.46V and 1.5V to 1.6V.
It also made the voltage reported for the regulator wrong.

Reported by:    llm-postcr
Fixes:          c175fd0fe8a3 ("axp81x: Add support for AXP803")
Tested on: A64
DeltaFile
+1-1sys/arm/allwinner/axp81x.c
+1-11 files

FreeBSD/src b1a3c09 — sys/dev/clk/allwinner ccu_h616.c

aw_ccu: h616: Set the lock enable bit of the PLLs

The lock status bit of a PLL is only updated when its lock enable bit,
bit 29, is set, and the firmware only sets it for the PLLs it uses.
Enabling another PLL, or changing the rate of an enabled one, then
waited for a lock that never came and ended after a second with an
error.  Set the bit on all the PLLs when attaching, like Linux does.

Reported by:    llm-postcr
Fixes:          92b59f3d010d ("aw_clk: Wait for the PLL to lock when enabling it")
DeltaFile
+36-1sys/dev/clk/allwinner/ccu_h616.c
+36-11 files

FreeBSD/src cffbc16 — sys/arm/allwinner axp209.c

axp209: Allow the interrupt handler to sleep

The interrupt handler reads and writes the registers of the PMU with
IIC_INTRWAIT, which can sleep when the bus is busy, and the I2C
controller the AXP209 is on in the A10 and A20 waits for the end of the
transfer.  The handler runs in an interrupt thread, which cannot sleep
unless the interrupt is marked as sleepable, so an interrupt of the PMU
would panic a kernel with INVARIANTS.  Mark it, the interrupt is not
shared, like it was done for the axp81x driver.

Reported by:    llm-postcr
Fixes:          30068a1de9e3 ("Add support for interrupts, sensors and GPIO for AXP209 PMIC")
DeltaFile
+2-1sys/arm/allwinner/axp209.c
+2-11 files

FreeBSD/src 0b6b389 — sys/arm/allwinner/a31 a31s_padconf.c

allwinner: a31s: Fix the pin number of PH28

The PH28 entry of the pad table of the A31s had the pin number 27, the
one of PH27, so the pinctrl of PH28 configured PH27 and a <&pio 7 28>
specifier could not be mapped.  This was fixed for the A31 in
222947a74223 but not in the copy for the A31s.

Reported by:    llm-postcr
Fixes:          ccf8caad1413 ("Add the Allwinner A31 and A31s padconf support. It's currently unused, but")
DeltaFile
+1-1sys/arm/allwinner/a31/a31s_padconf.c
+1-11 files

FreeBSD/src 50f0208 — sys/arm/allwinner aw_gpio.c

aw_gpio: Return the error when an interrupt cannot be mapped

aw_gpio_pic_map_intr() returned success without setting the interrupt
source when aw_gpio_pic_map_gpio() failed, which happens for a pin that
has no interrupt function or for an unsupported mode.  The caller then
went on with an uninitialized pointer.  Return the error.

Reported by:    llm-postcr
Fixes:          0fe5379c6a99 ("arm: allwinner: Add GPIO Interrupt support")
DeltaFile
+1-1sys/arm/allwinner/aw_gpio.c
+1-11 files

FreeBSD/src 770d272 — sys/arm/allwinner/h616 h616_padconf.c

allwinner: h616: Put the PI pins in bank 8

The PI0 to PI16 entries of the pad table had port 9 and interrupt bank 9
but the PI bank is the ninth one, bank 8, at offset 0x120.  Bank 9 is a
bank that does not exist, so the configuration, data, drive and pull of
these pins, and their interrupt registers, were accessed at the wrong
place and a <&pio 8 N> specifier, like the one of the card detect GPIO
of some boards, did not find its pin.

Use 8 for the port and the interrupt bank, like the other entries do
with the position of their letter.

Reported by:    llm-postcr
Fixes:          e506af08bb52 ("aw_gpio: Add support for H616")
DeltaFile
+17-17sys/arm/allwinner/h616/h616_padconf.c
+17-171 files

FreeBSD/src da4aca3 — sys/dev/clk/allwinner ccu_d1.c

aw_ccu: d1: Set the lock enable bit of the PLLs

The lock status bit of a PLL is only updated when its lock enable bit,
bit 29, is set, and the firmware only sets it for the PLLs it uses.
Enabling another PLL, or changing the rate of an enabled one, then
waited for a lock that never came and ended after a second with an
error.  Set the bit on all the PLLs when attaching, like Linux does.

Reported by:    llm-postcr
Fixes:          92b59f3d010d ("aw_clk: Wait for the PLL to lock when enabling it")
DeltaFile
+33-1sys/dev/clk/allwinner/ccu_d1.c
+33-11 files

LLVM/project c96ec73 — llvm/lib/Target/AArch64 AArch64RegisterBanks.td, llvm/lib/Target/AArch64/GISel AArch64RegisterBankInfo.cpp

add alt mapping support
DeltaFile
+7-59llvm/lib/Target/AArch64/GISel/AArch64RegisterBankInfo.cpp
+38-0llvm/lib/Target/AArch64/AArch64RegisterBanks.td
+45-592 files

LLVM/project 23da5a5 — llvm/lib/Target/AArch64 AArch64RegisterBanks.td, llvm/lib/Target/AArch64/GISel AArch64RegisterBankInfo.cpp

Remove unused CustomMappingID
DeltaFile
+1-1llvm/lib/Target/AArch64/AArch64RegisterBanks.td
+0-1llvm/lib/Target/AArch64/GISel/AArch64RegisterBankInfo.cpp
+1-22 files

LLVM/project b712741 — llvm/lib/Target/AArch64 AArch64RegisterBanks.td AArch64GenRegisterBankInfo.def, llvm/lib/Target/AArch64/GISel AArch64RegisterBankInfo.h AArch64RegisterBankInfo.cpp

[AArch64] Use generated instruction mappings
DeltaFile
+87-406llvm/lib/Target/AArch64/GISel/AArch64RegisterBankInfo.cpp
+0-278llvm/lib/Target/AArch64/AArch64GenRegisterBankInfo.def
+136-1llvm/lib/Target/AArch64/AArch64RegisterBanks.td
+2-79llvm/lib/Target/AArch64/GISel/AArch64RegisterBankInfo.h
+225-7644 files

LLVM/project 4a5a070 — llvm/utils/TableGen RegisterBankEmitter.cpp

emit static InstructionMapping
DeltaFile
+90-29llvm/utils/TableGen/RegisterBankEmitter.cpp
+90-291 files

LLVM/project eb02b79 — llvm/include/llvm/CodeGen RegisterBankInfo.h, llvm/lib/CodeGen RegisterBankInfo.cpp

make InstructionMapping constructor constexpr
DeltaFile
+6-6llvm/include/llvm/CodeGen/RegisterBankInfo.h
+0-3llvm/lib/CodeGen/RegisterBankInfo.cpp
+6-92 files

LLVM/project c62690f — lld/ELF ICF.cpp

[ELF] Simplify ICF. NFC (#242199)

content() comparison also tests the size, so the getSize() comparison is
redundant.
DeltaFile
+3-6lld/ELF/ICF.cpp
+3-61 files

LLVM/project edfa3d7 — lld/MachO MarkLive.cpp

Address review comments

Co-Authored-By: Claude Opus 5.5 <noreply at anthropic.com>
Claude-Session: https://claude.ai/code/session_0151E9ZpY6Krqg1C84uMobNg
DeltaFile
+9-12lld/MachO/MarkLive.cpp
+9-121 files

LLVM/project 05af93d — lld/MachO MarkLive.cpp

Reuse the level buffer across levels

Co-Authored-By: Claude Opus 5.5 <noreply at anthropic.com>
Claude-Session: https://claude.ai/code/session_0151E9ZpY6Krqg1C84uMobNg
DeltaFile
+5-2lld/MachO/MarkLive.cpp
+5-21 files

LLVM/project 6819772 — lld/MachO MarkLive.cpp

Reserve the level buffer so the first swap doesn't copy

Co-Authored-By: Claude Opus 5.5 <noreply at anthropic.com>
Claude-Session: https://claude.ai/code/session_0151E9ZpY6Krqg1C84uMobNg
DeltaFile
+1-2lld/MachO/MarkLive.cpp
+1-21 files

LLVM/project d55e0f6 — lld/MachO InputSection.h, lld/test/MachO why-live.s

Address review comments

Co-Authored-By: Claude Opus 5.5 <noreply at anthropic.com>
Claude-Session: https://claude.ai/code/session_0151E9ZpWv8G9QXmUg4V6AhM
DeltaFile
+1-1lld/test/MachO/why-live.s
+1-0lld/MachO/InputSection.h
+2-12 files

LLVM/project b824a58 — lld/ELF MarkLive.cpp, lld/MachO Symbols.h InputSection.h

Factor out atomicRef helper + add min-visit threshold
DeltaFile
+15-9lld/MachO/MarkLive.cpp
+18-0lld/include/lld/Common/Utils.h
+8-9lld/MachO/InputSection.h
+4-4lld/ELF/MarkLive.cpp
+2-2lld/MachO/Symbols.h
+47-245 files

LLVM/project 92cb740 — lld/MachO Options.td Symbols.h, lld/test/MachO why-live.s

[lld-macho] Mark live sections and symbols in parallel
DeltaFile
+122-59lld/MachO/MarkLive.cpp
+40-9lld/MachO/InputSection.h
+12-12lld/test/MachO/why-live.s
+8-5lld/MachO/InputSection.cpp
+7-2lld/MachO/Symbols.h
+2-1lld/MachO/Options.td
+191-886 files

LLVM/project 2f0902e — lld/MachO Driver.h DriverUtils.cpp, lld/test/MachO lto-object-path.ll

[lld][MachO] Skip relinking -object_path_lto files that already match the cache (#237099)

On an incremental ThinLTO link the object file from the previous link is
usually already a hardlink to the same cache entry. Compare the two
before touching anything, and take the modification time from the status
that is already at hand instead of stat'ing the result again. The output
path is also saved once up front and passed around as a StringRef
instead of being copied for each use.

On a 47k-module incremental ThinLTO link, saveOrHardlinkBuffer drops
from 5% of link time to 0.3%.

Also stop a link without -cache_path_lto from overwriting cache entries
through hardlinks left in -object_path_lto.
DeltaFile
+27-21lld/MachO/LTO.cpp
+28-0lld/test/MachO/lto-object-path.ll
+7-1lld/MachO/DriverUtils.cpp
+2-0lld/MachO/Driver.h
+64-224 files

DragonFlyBSD/src da35356 — sys/netinet6 nd6.c

nd6: keep foreign-CPU neighbors off the timer and purge list

Route requests create neighbor entries on each network CPU, but timers
and purge run on CPU 0. Purging a foreign-CPU entry deletes the matching
local route and can follow its freed neighbor entry. Link only CPU 0
entries into the list and unlink only linked entries; keep other CPUs
route-local neighbor data.

Bug: https://bugs.dragonflybsd.org/issues/3439
DeltaFile
+11-7sys/netinet6/nd6.c
+11-71 files

DragonFlyBSD/src eb24809 — share/man/man5 pf.conf.5

pf.conf.5: describe IPv6 fragment filtering without reassembly

IPv6 fragments are filtered as the Fragment header protocol, not blocked
unconditionally. State that port/type rules cannot pass them and that a
broad pass rule does not enforce those restrictions.

Bug: https://bugs.dragonflybsd.org/issues/3438
DeltaFile
+10-3share/man/man5/pf.conf.5
+10-31 files

DragonFlyBSD/src d6e46da — sys/netinet if_ether.c

netinet: fix ARP resolution during the first second of uptime

A cloned route created while time_uptime is zero passes a zero expiry
to its neighbors. Zero denotes a permanent entry, so unresolved dynamic
neighbors never send ARP requests.

Add the arp_expire_unresolved (= time_uptime + 1) to keep dynamic expiry
nonzero and track the last request time separately, using la_asked to
indicate whether that time is valid. This preserves same-second rate
limiting and permanent-entry semantics without changing the routing ABI.

While there, fix the code to add arpt_down to rt_expire only when it's a
cloned route.

Co-authored-by: Aaron LI <aly at aaronly.me>
GitHub-PR: https://github.com/DragonFlyBSD/DragonFlyBSD/pull/58
DeltaFile
+20-4sys/netinet/if_ether.c
+20-41 files

DragonFlyBSD/src 36cfac0 — usr.bin/dsynth mktemplate.sh

dsynth - Do not cross mount boundaries when making template's /etc

* When making the template's /etc, do not cross mount boundaries.

* This is a bit of a hack but /etc/namedb sometimes has a "dev"
  subdirectory for its chroot area that mounts devfs.  This kinda
  implodes when we later try to tmpfs it.
DeltaFile
+1-1usr.bin/dsynth/mktemplate.sh
+1-11 files