[CIR] Auto-generate matchAndRewrite for one-to-one CIR-to-LLVM lowerings
When a CIR op specifies a non-empty `llvmOp` field, the lowering
emitter now generates the `matchAndRewrite` body that converts the
result type and forwards all operands to the corresponding LLVM op.
This removes 27 boilerplate lowering patterns from LowerToLLVM.cpp.
Ops needing custom logic (FMaxNumOp/FMinNumOp for FastmathFlags::nsz)
override `llvmOp = ""` to retain hand-written implementations.
Also fixes llvmOp names (TruncOp -> FTruncOp, FloorOp -> FFloorOp)
and adds a diagnostic rejecting conflicting llvmOp + custom constructor.
[MLIR][MemRef] Fix AllocOp/AllocaOp flattening domination violation (#188980)
The generic MemRefRewritePattern handles AllocOp/AllocaOp by calling
getFlattenMemrefAndOffset with the op's own result as the source memref.
This inserts ExtractStridedMetadataOp and ReinterpretCastOp that consume
op.result before the alloc op itself in the block. After
replaceOpWithNewOp, op.result is RAUW'd to the new ReinterpretCastOp
result, leaving those earlier ops with forward references — a domination
violation caught by MLIR_ENABLE_EXPENSIVE_PATTERN_API_CHECKS.
Replace the AllocOp/AllocaOp cases in MemRefRewritePattern with a
dedicated AllocLikeFlattenPattern that never touches op.result until the
final replaceOpWithNewOp:
- sizes come from op.getMixedSizes() (operands, not the result)
- strides come from getStridesAndOffset on the MemRefType
- the flat allocation size is computed via
getLinearizedMemRefOffsetAndSize plus the static base offset so the
buffer covers [0, offset+extent)
- castAllocResult is simplified to take the pre-computed sizes and
[10 lines not shown]
net-mgmt/etherape: Update 0.9.20 => 0.9.21, take maintainership
Changelog:
* GooCanvas was unsupported and getting really old, replaced by
GtkDrawingArea.
* --final-export is primarily meant to be used from other tools as a way
to get statistics data from a replay. As such, --final-export exits
automatically after the file replay ends and the dump is written.
* Compatibility Warnings:
- removed GooCanvas dependency, drawing now done with plain Gtk.
- new behavior for --final-export: exit after saving the XML dump.
* Changes summary:
- Updated german translation, thanks to Christoph Brinkhaus.
- Fix for german translation, thanks to Ronald W. Henderson.
- Fix for gcc 15, thanks to Petr Gajdos.
- Assorted refactorings and small modernizations, including autotools.
Improve port:
- Replace PORTVERSION with DISTVERSION.
[14 lines not shown]
captive portal / hostwatch: output safety when list_hosts.py or decoding fails
arp.py seems to throw an exception an unpredictable times. Since
the most likely culprit is list_hosts.py, capture both
stderr of list_hosts and the exception value of the caller.
In any case, we reuse the old known ARP state to not kill
the CP background process
net-mgmt/etherape: Update 0.9.20 => 0.9.21, take maintainership
Changelog:
* GooCanvas was unsupported and getting really old, replaced by
GtkDrawingArea.
* --final-export is primarily meant to be used from other tools as a way
to get statistics data from a replay. As such, --final-export exits
automatically after the file replay ends and the dump is written.
* Compatibility Warnings:
- removed GooCanvas dependency, drawing now done with plain Gtk.
- new behavior for --final-export: exit after saving the XML dump.
* Changes summary:
- Updated german translation, thanks to Christoph Brinkhaus.
- Fix for german translation, thanks to Ronald W. Henderson.
- Fix for gcc 15, thanks to Petr Gajdos.
- Assorted refactorings and small modernizations, including autotools.
Improve port:
- Replace PORTVERSION with DISTVERSION.
[12 lines not shown]
[BOLT] Move extern "C" out of unnamed namespace (#190282)
GCC 15 changes how it interprets extern "C" in unnamed namespaces and
gives the variable internal linkage.
posix_spawn test: switch to POSIX spelling for addchdir and addfchdir
Reviewed by: dim
Sponsored by: The FreeBSD Foundation
MFC after: 1 week
Differential revision: https://reviews.freebsd.org/D56222
posix_spawn_file_action_addopen.3: ignoring close failure is now approved
Reviewed by: dim
Sponsored by: The FreeBSD Foundation
MFC after: 3 days
Differential revision: https://reviews.freebsd.org/D56222
posix_spawn: actions chdir and fchdir are now required by POSIX
Drop the _np suffix.
Reviewed by: dim
Sponsored by: The FreeBSD Foundation
MFC after: 1 week
Differential revision: https://reviews.freebsd.org/D56222
[MLIR][Affine] Fix null operands in simplifyConstrainedMinMaxOp (#189246)
`mlir::affine::simplifyConstrainedMinMaxOp` called
`canonicalizeMapAndOperands` with `newOperands` that could contain null
`Value()`s. These nulls came from
`unpackOptionalValues(constraints.getMaybeValues(), newOperands)` where
internal constraint variables added by `appendDimVar` (for `dimOp`,
`dimOpBound`, and `resultDimStart*`) have no associated SSA values.
Passing null Values to `canonicalizeMapAndOperands` risks undefined
behavior:
- `seenDims.find(null_value)` in the DenseMap causes all null operands
to collide at the same key, producing incorrect dim remapping.
- Any null operand that remains referenced in the result map would
propagate as a null Value into `AffineValueMap`, crashing callers that
try to use those operands to create ops.
Fix: Before calling `canonicalizeMapAndOperands`, filter null operands
from `newOperands` by replacing their dim/symbol positions in `newMap`
[6 lines not shown]
[mlir][IntRangeAnalysis] Fix assertion in inferAffineExpr for mod with range crossing modulus boundary (#188842)
The "small range with constant divisor" optimization in
`inferAffineExpr` for `AffineExprKind::Mod` assumed that if the dividend
range span (`lhsMax - lhsMin`) is less than the divisor, then the mod
results form a contiguous range. This is not always true, as the range
can straddle a modulus boundary.
For example, `[14, 17] mod 8`:
- Span is 3 < 8, so the old condition passed
- But `14%8=6` and `17%8=1` (wraps at 16)
- `umin=6, umax=1` → assertion `umin.ule(umax)` fails
The fix adds a same-quotient check (`lhsMin/rhs == lhsMax/rhs`) to
ensure both endpoints fall within the same modular period. When they
don't, we fall back to the conservative `[0, divisor-1]` range.
Assisted-by: Cursor (Claude)
Signed-off-by: Yu-Zhewen <zhewenyu at amd.com>
jj: update to 0.40.0.
## [0.40.0] - 2026-04-01
### New features
* New `diff_lines_added()` and `diff_lines_removed()` revset functions for
matching content on only one side of a diff.
* The `end` parameter in the `String.substr(start, end)` templating method is
now optional. If not given, `substr()` returns from `start` to the end of the
string.
* `WorkspaceRef` templates now provide a `.root()` method to show the absolute
path to each workspace root.
* The `jj arrange` TUI now includes immediate parents and children. They are not
selectable and are dimmed by default.
[24 lines not shown]
[NFC][analyzer] Eliminate SwitchNodeBuilder (#188096)
This commit removes the class `SwitchNodeBuilder` because it just
obscured the logic of switch handling by hiding some parts of it in
another source file.