[RISCV] Account for VL toggle cost when splitting VP memory intrinsics
Not an alternative to #222836 since this doesn't handle all cases, but something we should do anyway in the TTI to be accurate.
For vp.load/vp.gather/vp.strided.load and their store counterparts, when they're split they introduce extra vl toggles which involve computation on the evl, e.g.
vsetvli a2, zero, e8, mf4, ta, ma
vmv1r.v v8, v0
csrr a2, vlenb
srli a3, a2, 3
vslidedown.vx v0, v0, a3
sub a3, a1, a2
sltu a4, a1, a3
addi a4, a4, -1
slli a5, a2, 3
and a3, a4, a3
add a5, a0, a5
vsetvli zero, a3, e64, m8, ta, ma
vle64.v v16, (a5), v0.t
[9 lines not shown]
[mlir][python] Register linalg.ElementwiseOp wrapper as op view
The hand-written ElementwiseOp wrapper subclassed the generated OpView but
was not registered in the op-view registry, so ops reconstructed from the
registry (e.g. Operation.opview) were instances of the generated base class
rather than the publicly exported subclass. This made
isinstance(op.opview, linalg.ElementwiseOp) and match/case dispatch return
False for real linalg.elementwise ops.
Register the wrapper with replace=True (as pdl.py does) so the exported
class is the one the registry instantiates.
Fixes #223673
[CodeGen] Drop dead SlotIndexes before allocation
SlotIndexes keeps the index list entry of an erased instruction and only
clears its instruction pointer. Live range sizes are measured in slot
indexes and greedy ranks ranges by size, so the leftovers inflate some
ranges more than others and reorder allocation, spilling heavily on
register-starved functions.
Add SlotIndexes::compactIndexes() to erase them. Erased entries are
unlinked, so LiveIntervals, LiveStacks and LiveDebugVariables first
report the indexes they hold via appendReferencedIndexes(); a missed one
trips an assert instead of dangling.
Off by default behind -greedy-compact-slot-indexes, since it changes
allocation across much of the test suite.
RuntimeLibcalls: Read exception model from the module flag
Source the exception model in the RuntimeLibcallsInfo(Module) constructor
from the "exception-model" module flag via Module::getExceptionModel(),
instead of forwarding it from TargetOptions. An absent flag resolves to
Default and then to the triple default; an explicit "none" disables
exceptions.
Since the model now comes from the module, drop the ExceptionModel that
RuntimeLibraryAnalysis carried and forwarded, and its argument at every
construction site.
Co-authored-by: Claude (Claude-Opus-4.8) <noreply at anthropic.com>
WebAssembly: Drive Emscripten EH from the exception model, drop the cl::opt
Remove the deprecated -enable-emscripten-cxx-exceptions flag. This should now
be driven by the generic exception-model mechanisms. There was also some special
case handling of the -mllvm flag in the clang driver which also needed removal.
Also reverts the test change in b6912258891caefffbf15edb1bceff3724b75af5 now that
the backend doesn't need to be built to test the flag behavior.
Co-authored-by: Claude (Claude-Opus-4.8) <noreply at anthropic.com>
CodeGen: Read the exception model from the module flag in EH lowering
Resolve the exception model as the exception-model module flag if
present, otherwise the TargetOptions default.
Co-authored-by: Claude (Claude-Opus-4.8) <noreply at anthropic.com>
Avoid making vector more poisonous in visitCONCAT_VECTORS (#223492)
Fix a miscompile bug found in visitCONCAT_VECTORS.
In commit 544c300f43961 (from January 25 2026) the DAGCombiner started
to use poison instead of undef when rewriting a CONCAT_VECTORS as a
BUILD_VECTOR. Problem was that it was using poison also for elements
that were undef before the fold, making the result more poisonous. That
caused miscompiles as reported in PR #222857.
The fix is to make sure we only use a poison value as operand in the new
BUILD_VECTOR if the input to CONCAT_VECTORS also is poison.
Same kind of fixup is done for combineConcatVectorOfConcatVectors and
combineConcatVectorOfShuffleAndItsOperands (both helpers used by
visitCONCAT_VECTORS). Those funtions were also modified in commit
544c300f43961, all without any motivating test cases showing that it is
correct to use poison. I do not have any test cases proving that those
two helpers also could cause miscompiles, but neither that the rewrites
[2 lines not shown]
[llvm-jitlink] Replace pipes with unix domain sockets. (#223941)
Replace pipes with unix domain sockets for basic out-of-process
execution.
The new ORC runtime doesn't support pipes -- this changes will enable
llvm-jitlink to connect to the new ORC runtime's executor (once it
lands).
tslog.4: Canonicalize SYNOPSIS
Also, add the missing blank comment line at the top of the file.
Event: EuroBSDcon 2026
MFC after: 3 days
(cherry picked from commit dc867c353c8b423131f7f6a7f687c86713bf0666)
wpa_supplicant.8: Renew SEE ALSO + tag SPDX
- remove old wifi drivers, these are very old and we have many more
- add quick start guide to connecting to wifi
Event: EuroBSDCon 2026
MFC after: 3 days
Reviewed by: bz, emaste
Differential Revision: https://reviews.freebsd.org/D59615
(cherry picked from commit d5c09e32ce8aa625ab9429c5fe87137fb92bff53)