[DAG] isGuaranteedNotToBeUndefOrPoison - inspect load(constant_pool) constant data for undef/poison elements (#241972)
If we're loading a constant pool entry, and the constant contains no
undef/poison elements then assume the loaded value is safe
Fixes #149820
net/wireguard-tools: Add more variables to the rc.d script
Most importantly, this adds support for specifying a non-default routing
table with wireguard_fib.
PR: 269010
MFH: 2026Q4
(cherry picked from commit 3c1fb50dd7a543be4425be45bac79971504c1979)
net/wireguard-tools: Support more interface names in lite flavor
Currently the lite flavor is restricted to using wg<number> interface
names, while the default flavor with wg-quick can use more descriptive
names.
Using `ifconfig wg create name ${interface}` in the rc.d script for the
lite flavor instead of `ifconfig ${interface} create` brings the
flavors to parity here and works on all supported versions of FreeBSD.
While here, pet portfmt.
PR: 300146
MFH: 2026Q4
(cherry picked from commit 9449d6410daee106004facaa066dcb4916200d4e)
net/wireguard-tools: Add more variables to the rc.d script
Most importantly, this adds support for specifying a non-default routing
table with wireguard_fib.
PR: 269010
MFH: 2026Q4
net/wireguard-tools: Support more interface names in lite flavor
Currently the lite flavor is restricted to using wg<number> interface
names, while the default flavor with wg-quick can use more descriptive
names.
Using `ifconfig wg create name ${interface}` in the rc.d script for the
lite flavor instead of `ifconfig ${interface} create` brings the
flavors to parity here and works on all supported versions of FreeBSD.
While here, pet portfmt.
PR: 300146
MFH: 2026Q4
[clang-format] Ignore timestamps in clang-format-diff.py file headers (#240061)
The file name on `+++` lines now ends at the first tab, so headers from
`diff -u` and `svn diff` that carry a timestamp work. This adds a lit
test and a `%clang_format_diff` substitution.
Fixes #240059
Assisted-by: Claude Code (claude-opus-5-5). I reviewed the change. I ran
the new test locally: it fails before the change and passes after it.
Normal `git diff` input, including file names with spaces, still works.
syncache.4: Align lists
Normally I am against tabbing them over so far to align the list, but
in these lists actually the page is 862 lines rendered aligned or using
indent, so aligning it improves readability without scolling regression.
MFC after: 3 days
ioctl: Add a macro for extracting the ioctl number from a command
Sprinkle it in various drivers which hard-coded the command layout.
No functional change intended.
Reviewed by: dumbbell, emaste
MFC after: 1 week
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D61045
(cherry picked from commit 12b3c29a985d1753693d732372dafe915a890259)
[InstCombine] Keep call metadata when dropping the kcfi operand bundle (#242427)
InstCombine drops the `kcfi` operand bundle from calls that have become
direct but didn't copy over the metadata like `!prof`,
`!callsite`,`!memprof`.
This matters for calls that become direct after profile annotation. For
example, sample-PGO indirect call promotion attaches a call count to the
promoted direct call; once the count is dropped, the inliner treats the
call site as cold. Likewise a call made direct after MemProf annotation
loses its !callsite.
Copy the metadata to the new call, so that the result is the same as for
a direct call that never had the bundle.
Assisted by: Claude
[SystemZ][z/OS] Emit the tasking behaviour in HLASM (#242487)
The tasking behaviour belongs to the section definition, but in HLASM it
is emitted via the CATTR instruction, which is currently missing.
IR: Add getOrInsertFunction with a constructor callback (#242103)
This fixes an annoying asymmetry in the Module APIs. We already have
getOrInsertGlobal with a constructor callback, but did not have the
same for Functions. This allows inserting a declaration with a single
symbol table probe.
Inserting a missing function did a getNamedValue lookup, then a second
hash table probe when Function::Create added the name. Add
ValueSymbolTable::lookupOrInsert to do both with one try_emplace to
implement this. Intrinsic and unnamed functions keep the old path since
intrinsics are set up from their name on construction. A microbenchmark
inserting all of the runtime libcalls shows this is about 28% faster in
the miss / insertion case.
Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
vm_kern: wrap around in kmem_back() when the last domain is empty
kmem_back() picks the domain from the address and, when that domain has
no memory, steps forward until it finds one that does:
domain = (addr >> KVA_QUANTUM_SHIFT) % vm_ndomains;
while (VM_DOMAIN_EMPTY(domain))
domain++;
Nothing stops the walk at vm_ndomains. When the empty domain is the
last one, the loop runs through the unused tail of vm_dom[] (all empty)
and on into whatever follows vm_dom[MAXMEMDOM] in memory, until a word
there happens to look like a non-zero page count; kmem_back_domain()
then allocates from that garbage domain. Ordinary allocations never
get here, because the per-domain arenas and the domainset iterators
skip empty domains. Only the direct callers of kmem_back() do: kinst
(one trampoline per thread, allocated when the module loads) and
memguard.
[8 lines not shown]