Merge remote-tracking branch 'freebsd/main'
Resolve the devel/opencl-clang conflict by keeping the GhostBSD
llvmNN-libs dependency and taking upstream's DEPRECATED/EXPIRATION.
Complete the llvm23 split: add the missing llvm23-libs distinfo and
pkg-plist, and comment out the shared libs in llvm23's pkg-plist now
that llvm23-libs provides them. LLVM 23's new lldb Python plugin goes
to llvm23-libs.
Package LLVMgold.so in llvm20-libs, llvm21-libs and llvm22-libs. It
was built but listed in no plist, so it shipped nowhere.
[IR] Add llvm.raw.sections named metadata (#226954)
Add a module-level `!llvm.raw.sections` named metadata node for
embedding arbitrary binary data into named sections of the output object
file. Each entry is a tuple of {section name, alignment, flags, data}.
The flag field is currently limited to the value `0`, specifying a
section not manifested in memory.
The AsmPrinter lowers the entries directly at the MC layer through a new
TargetLoweringObjectFile::getNamedSection hook, implemented for ELF,
Mach-O, COFF and Wasm. Formats without the hook skip the entries. Unlike
a GlobalVariable, the data is not subject to the size limits of the
target's address spaces.
The verifier checks the shape of each entry and rejects invalid flag
combinations.
Splitting #214135, this is the first half.
[4 lines not shown]
[Orc] Link OrcJITTests against LLVMAnalysis (#237156)
PR #236988 moved TargetLibraryInfo::initExtensionsForTriple into
LLVMAnalysis. OrcCAPITest calls it, so add Analysis to the test target's
link components.
Assisted by: codex
www/code-server: Update to 4.144.0
The --socket-fd option works again, the inherited socket is passed on to
the process that listens.
Changelog: https://github.com/coder/code-server/releases
Sponsored by: Netzkommune GmbH
www/{nginx,nginx-devel,freenginx}: 3rd-party modules management
Bump PORTREVISION for the array-var and encrypted-session updates. Both
modules are built into these ports, and a BUILD_DEPENDS does not rebuild
them by itself.
Sponsored by: Netzkommune GmbH
www/nginx-module-encrypted-session: Update to 0.11
A session token is now versioned and carries a random IV and an
HMAC-SHA256 tag instead of a public MD5 prefix and a fixed CBC IV, and
header and ciphertext are authenticated before the token is decrypted.
The tag is compared with CRYPTO_memcmp, which closes a timing oracle over
an attacker controlled plaintext prefix. Tokens written by earlier
versions no longer decrypt.
Changelog: https://github.com/openresty/encrypted-session-nginx-module/compare/v0.10...v0.11
Sponsored by: Netzkommune GmbH
www/nginx-module-array-var: Update to 0.07
An array value is now a reference carrying a module tag and an array
pointer, and both the reference size and the tag are checked before the
value is mapped or joined.
Changelog: https://github.com/openresty/array-var-nginx-module/compare/v0.06...v0.07
Sponsored by: Netzkommune GmbH
Reland "[DAGCombiner] Don't always spill widened dynamic insertelt chains via stack." (#237162)
This relands 7b787096826c (#232086), reverted in 3558b25362d3 (#237145)
because insertelt-dynamic-chain-widen.ll failed on buildbots.
`visitINSERT_VECTOR_ELT` folds a chain of runtime-index inserts into one
stack temporary when `isOperationExpand` says each insert would spill.
That check is true for every illegal type, including TypeWidenVector, so
a short vector was spilled even though widening redoes the insert on the
widened type. The predicate now follows widening and keeps the chain in
registers when that insert is Legal or Promote. Custom action still uses
stack, because that lowering can fall back to a temporary.
On `gfx942`, the <9 x double> tests no longer use scratch. A per-lane
index is lowered with v_cndmask, and an index shared by the wave uses
s_set_gpr_idx.
Co-authored-by: Cursor <cursoragent at cursor.com>
lang/nawk: Update to 20260426
Take maintainership.
PR: 300135
Approved by: Chris Hutchinson <portmaster at BSDforge.com> (former maintainer)
Approved by: osa, fluffy (mentors, implicit)
lang/nawk: Update to 20260426
Take maintainership.
PR: 300135
Approved by: Chris Hutchinson <portmaster at BSDforge.com> (former maintainer)
Approved by: osa, fluffy (mentors, implicit)
[VPlan] Preserve SSA in early exit loops
MaskedCond is used to logically-and the condition to early exit with the current block in-mask. However because we use it in the latch block where the condition isn't defined on all paths, we have to workaround it not being in SSA in the verifier.
This fixes this by using reconstructSSA added in #212209 to preserve SSA in both the exit conditions and live outs in the exit blocks. It also means we get the right exit condition without MaskedCond and allows us to remove the MaskedCond exceptions in the verifier. MaskedCond is still kept since a followup PR will still use it.
One subtle point is that we need to freeze any branch conditions. Any lanes after and including the early exiting lane might contain poison and we can have branches on those poison lanes that didn't we didn't previously branch on in the scalar loop.
There's no miscompile on main today because we coincidentally don't keep SSA so exit conditions are read directly without being polluted by poison stemming from a branch past the early exit. But in this PR the exit conditions are polluted and we can end up with poison in the condition operand of a select, which causes an undefined result for AnyOf even if it freezes its operand. The poison in the branch will also cause problems in future if we decide to preserve uniform control flow and emit branches instead of blends. The exit_cond_merged_after_poison_branch test illustrates this.
[UnitTests] Add missing `Analysis` compontent to `OrcJITTests`
The PR #236988 changed `initExtensionsForTriple` from being defined in the
`TargetLibraryInfo.h` header to an implementation in `TargetLibraryInfo.cpp`.
Then, this symbol is defined in the `Analysis` component.
With `BUILD_SHARED_LIBS=ON`, build failed with:
```
OrcCAPITest.cpp.o: undefined reference to symbol
'_ZN4llvm17TargetLibraryInfo23initExtensionsForTripleERbS1_S1_S1_RKNS_6TripleE'
```