graphics/vulkan-headers: fix plist (+)
Vulkan-Headers 1.4.356 have added new C header, vulkan_ubm.h
Track it in plist
Reported by: bulk -t
Approved by: portmger blanket
[SimplifyCFG] Improve reduceSwitchRange to avoid unnecessary subtractions (#198374)
Dense switch cases can sometimes be achieved with only a shift, avoiding
a subtract. Change reduceSwitchRange to check for such cases before
falling back to using a subtract.
The changes to test9 demonstrates that for the purpose of lookup-table
lowering (triggered by the switch-to-lookup flag), the switch range
still ends up normalized to start at 0, the subtraction just happens
after the fshl.
test10 demonstrates where this change is useful, resulting in a dense
switch case with one less subtract.
test11 demonstrates cases where the subtract is still needed in order to
form a dense switch case.
[BOLT] Fix DW_FORM_implicit_const values lost during DWARF5 rewriting (#192166)
Summary:
Fix two bugs in DIEBuilder that caused DW_FORM_implicit_const values to
be zeroed out when rewriting DWARF5 debug sections
(--update-debug-sections).
1. In constructDIEFast(), DWARFFormValue was constructed with just the
form code, leaving the value at 0. For DW_FORM_implicit_const,
extractValue() is a no-op since the value is expected to be pre-set.
Fix: use AttrSpec.getFormValue() which initializes the value from the
abbreviation table.
2. In assignAbbrev(), AddAttribute(Attr.getAttribute(), Attr.getForm())
used the two-argument overload which discards the implicit_const value.
Fix: use AddAttribute(Attr) to copy the full DIEAbbrevData.
Fixes https://github.com/llvm/llvm-project/issues/192084
misc/cstream: Update to 4.0.0
Also take maintainership (with permission from previous maintainer).
Approved by: jbo (mentor)
Differential Revision: https://reviews.freebsd.org/D58097
[AArch64][PAC] Reset `killed` operand flag in custom inserter of PAC pseudo (#158699)
If custom inserter changes the `AddrDisc` operand of `AArch64::PAC`
pseudo instruction, conservatively reset its `killed` flag. Keeping this
flag without checking if it is still legal may result in code of the
form
%disc = MOVKXi %addr(tied-def 0), 1234, 48
%signed = PAC %ptr(tied-def 0), 2, 0, killed %disc
# %addr is used past this point and %disc is not
being turned into
%signed = PAC %ptr(tied-def 0), 2, 1234, killed %addr
# %addr is used past this point, but the operand of
# the above instruction has killed flag
[MachineCopyPropagation] Fix debug info referring to subregisters. (#207861)
When copy propagation removes a copy, it fixes debug info that refers to
the old register to instead refer to the new register. This logic didn't
really deal with subregisters; it took any DBG_VALUE that pointed to a
subregister of the old register, and replaced it with the full new
register.
This patch adds logic for subregisters: if a DBG_VALUE refers to a
subregister of the source register, find the corresponding subregister
of the destination register.
Fixes #207682
[ids-check] Add support for ignoring symbols (#208241)
`llvmGetPassPluginInfo()` is not exported from the LLVM dylib. It is
meant to be the entry point for a pass plugin in another dylib. As it
is, the ids-check workflow would automatically add the `LLVM_ABI`
annotation to it, which is incorrect.
This fixes the issue by explicitly marking the symbol as ignored.
The effort to build LLVM as a DLL is tracked in #109483.
[X86] combineArithReduction - truncate from v4iXX to v4i16 for PSADBW add reduction patterns (#208286)
Noticed while trying to make ISD::VECREDUCE_ADD legal - if we're using
PSADBW, we don't need to truncate down to v4i8 and then zero-padd the
lowest v8i8/64-bits, we can just use v4i16 and bitcast to v8i8 since we
know the upper 8-bits are zero.
ValueTracking: Fix off by one in known frexp exponent range
Also restrict the optimization to the exactly 1 case for now.
There was an additional bug for values less than 1 to be fixed
separately.
Fixes #208192
Co-authored-by: Claude (Opus 4.8) <noreply at anthropic.com>
Do not return ESTALE for open-unlinked files
When the Linux fh_to_dentry() export operation is called for an
open-unlinked file on a ZFS filesystem, an ESTALE error is returned.
This behavior differs from other filesystem implementations on Linux
(like eg. ext4, XFS), which grant access to inodes that are unlinked
but still referenced. Update both the Linux and FreeBSD code to
conform with the established Linux behavior.
Reviewed-by: Brian Behlendorf <behlendorf1 at llnl.gov>
Signed-off-by: tiehexue <tiehexue at hotmail.com>
Closes #18699
Closes #18718
18117 SCTP needs to better-check INIT ACK chunk parameters
Reviewed by: Andy Fiddaman <illumos at fiddaman.net>
Approved by: Robert Mustacchi <rm+illumos at fingolfin.org>
18020 Double copyin of dld_ioc consumers
Reviewed by: Andy Fiddaman <illumos at fiddaman.net>
Approved by: Robert Mustacchi <rm+illumos at fingolfin.org>
18003 poll(4D) needs to better-check numfds (CVE-2026-35384)
Reviewed by: Dan McDonald <danmcd at edgecast.io>
Approved by: Robert Mustacchi <rm+illumos at fingolfin.org>
[docs] Rename LangRef.{rst|md}
Tracking issue: #201242
This commit does not use valid markdown, so the docs will not build, but they will be fixed in an immediate follow-up commit that does the migration.
[RISCV] Use DCI.CombineTo instead of DAG.ReplaceAllUsesWith in performReverseEVLCombine. (#208275)
This makes sure the replaced node is deleted without relying on it still
being in the worklist, schedules its users for revisiting, and prints
the debug message for the replacement.
[SSAF][Extractor] Extract operator new/delete overload entities that shall retain their types (#206600)
This commit creates an extractor for operator new/delete overloads.
Overloads of operator new shall retain their void* return type,
regardless of whether they are propagated by unsafe buffers. The same
applies to the parameters of operator delete overloads.
Therefore, clang-reforge eventually need this information.
rdar://179151541
---------
Co-authored-by: Balázs Benics <benicsbalazs at gmail.com>
Use a single creation time for a recursive snapshot
All snapshots created by one "zfs snapshot -r" are taken atomically in a
single txg, but dsl_dataset_snapshot_sync_impl() sampled the wall clock
once per snapshot inside the per-dataset loop. If that loop crossed a
one-second boundary, snapshots of the same txg were stamped with
different "creation" times, which confuses tools that order snapshots by
creation time (createtxg was already coherent).
Sample the wall clock once in dsl_dataset_snapshot_sync(), before the
loop, and pass it to each dsl_dataset_snapshot_sync_impl() call. The
other callers (origin, temporary snapshot, and receive) each create a
single snapshot per sync task and keep their current behavior by passing
gethrestime_sec() directly.
Add a test that takes a recursive snapshot of a 50-child hierarchy and
verifies every snapshot shares one createtxg and one creation time. The
test locks the fixed invariant rather than reproducing the timing race,
which the fast in-kernel sync loop hit only rarely.
[4 lines not shown]
[docs] Rename LangRef.{rst|md}
Tracking issue: #201242
This commit does not use valid markdown, so the docs will not build, but they will be fixed in an immediate follow-up commit that does the migration.
[clang][NFC] Compute current instantiation less frequently in `lookupInBases` (#208139)
While benchmarking I noticed that #118003 causes a small compile-time
regression. Right now, it computes `isCurrentInstantiation` for every
base during name lookup.
We can easily avoid this overhead by only computing it when a dependent
base could actually be skipped.