[LoopInterchange] Avoid overflow in the memory-instruction ratio check (#214920)
populateDependencyMatrix bails out if MaxMemInstrRatio * NumInsts is
less than NumMemInstr * NumMemInstr. Both products are computed in
32-bit unsigned arithmetic and can wrap, e.g., with
-loop-interchange-max-mem-instr-ratio=2147483648 and 20 instructions the
left product wraps to 0 and the pass rejects an otherwise eligible nest.
Compute both products in uint64_t instead, which cannot overflow as all
three operands are 32 bits wide.
Assisted-by: Claude Opus 5, GPT-5.6 Sol, GPT-6 Astra, Claude Fable 5.1.
Co-authored-by: Matt P. Dziubinski <matt-p.dziubinski at hpe.com>
[SandboxVec][LoadStoreVec] Support constant vectors of mixed types
createConstantVector() previously packed the constant store operands
as-is, which only worked when every store had the same element type.
Take the lane type from VecUtils::getCombinedVectorTypeFor() instead and
reinterpret each constant's bits as that type, going through an integer
of matching width via ptrtoint/inttoptr/bitcast. Constants wider than a
lane (e.g. an i64 in an <N x i32>) are split across several lanes in
memory order. Bail out when a constant cannot be reinterpreted, such as
a non-integral pointer or a relocatable address that needs splitting.
Also flatten vector-typed ConstantPointerNull into per-lane nulls, and
bail out on the remaining vector constants such as poison rather than
packing them into the result.
Co-Authored-By: Claude Opus 5 <noreply at anthropic.com>
[lldb] Implement the `__repr__` method for SBStringList. (#224134)
It was annoying to working with `SBStringList` from the lldb python
repl, because printing it out will produce something like.
`<lldb.SBStringList; proxy of <Swig Object of type 'lldb::SBStringList
*' at 0x10556a7b0> >`.
This also implicitly implements `str(SBStringList)`.
Extend the `__getitem__` behaviour to cover integer slices. Add test
cases.
[libc] Move File::close out of line to file.cpp (#224901)
Moved File::close from src/__support/File/file.h into
src/__support/File/file.cpp and removed #include
"src/__support/CPP/new.h" from file.h, matching Dir::close in
src/__support/File/dir.h.
src/__support/CPP/new.h renames global operator delete via __asm__ to
__llvm_libc_delete (which calls free) for the entire translation unit
without renaming operator new. Including new.h in file.h leaked this
replacement operator delete into unit test translation units that
include file.h, causing an AddressSanitizer alloc-dealloc-mismatch in
Test::createCallable during death tests.
Assisted-by: Automated tooling, human reviewed.
[LV] Add tests for early-exit loops with faulting loads (NFC). (#224762)
Pre-committing the tests for using @llvm.speculative.load intrinsic in
LoopVectorize.
Revert "Unlink multicast records when their interface is detached"
This reverts commit e7ea118a97a35e10ded68a7d07d4f39e3e7f57b4.
Opened a new problem instead of the old ones. Need a better fix.
bluhm@ asked for the revert which I take as implicit OK.
Reported-by: syzbot+68c8b44ea4717240232d at syzkaller.appspotmail.com
devel/py-python-box: new port
Box is a Python dictionary subclass that provides dot notation access to
its keys, while behaving like a standard dict in every other respect.
It supports conversion helpers for JSON, YAML, TOML and msgpack, along
with frozen, default and transformation box types.
Co-authored-by: Michael Osipov <michaelo at FreeBSD.org>
PR: 298696
[libc] Fix mlock, mlock2, and munlock signatures (#224905)
Updated libc/include/sys/mman.yaml so the first parameter of mlock,
mlock2, and munlock is const void * rather than void *.
Updated libc/src/sys/mman/mlock2.h and
libc/src/sys/mman/linux/mlock2.cpp so the flags parameter is unsigned
int rather than int.
Assisted-by: Automated tooling, human reviewed.
CodeGen: Move DataLayout computation to CodeGenTargetMachineImpl's ctor
Every target's TargetMachine constructor passed TT.computeDataLayout() as
the DL string argument to the base constructor, duplicating the same call
across all backends. Some backends just didn't bother passing in the ABI
name.
Co-Authored-By: Claude <noreply at anthropic.com> (Claude Opus 4.8)
textproc/py-toon-format: new port
TOON (Token-Oriented Object Notation) is a compact, human-readable
serialization format for handing structured data to large language models,
encoding the same content as JSON in markedly fewer tokens. It provides
encode and decode functions along with a toon command-line tool.
PR: 298712
[Support] Remove cl::multi_val (#224959)
Nothing uses it: the last user, llvm-nm, moved to OptTable. The feature
would block migration to TableGen based representation.
LLM-aided
Reject non-conformant certificate subject encodings
Background:
Even though RFC 6487 section 4 is clear: "The CommonName attribute MUST
be encoded using the ASN.1 type PrintableString", some large CAs for
many years incorrectly issued certificates with UTF8String encodings
owing to a documentation bug in OpenSSL:
https://github.com/openssl/openssl/pull/23699
AfriNIC recently announced the completion of a multi-year project to
reissue all non-conformant certificates, see their final update here:
https://lists.afrinic.net/pipermail/dbwg/2026-August/000582.html
This work cleared a major hurdle for RP implementations to impose
stricter validation, in turn positively impacting the overall ecosystem
because requirement baselining and adherence to standards leads to
improved interoperability.
[14 lines not shown]
gdu: Add gdu version 5.37.0.
Gdu is a disk usage analyzer similar to ncdu but parallelized.
This package installs the binary as 'gdu-go' to avoid potentially
conflicting with 'gdu' from systuils/coreutils.
add nprice to committers-src
Approved by: adrian (mentor)
Reviewed by: adrian
Differential Revision: https://reviews.freebsd.org/D59860
Signed-off-by: Nick Price <nprice at FreeBSD.org>