Firewall: NAT: Source NAT: Allow empty target which means interface address (#10441)
* Firewall: NAT: Source NAT: Empty target means interface address, allow it in the model and add hints, fix legacy outbound rules exporter as well
* Firewall: NAT: Source NAT: Target cannot be any, pf refuses to load that
(cherry picked from commit 08447de57ee17bc70737e2155a56bc292f92904d)
[mlir][affine] Remove redundant copyNests.clear() after declaration (NFC) (#206348)
The clear() call immediately following the declaration of copyNests is
redundant since a default-constructed DenseSet is already empty. Remove
it.
xedit: update to 1.2.5.
Alan Coopersmith (10):
Assume all target platforms have strcasecmp() now
AUTHORS: remove Xprint code (which was itself removed back in 2010)
Use _stricmp() instead of strcasecmp() on Windows
Improve man page formatting
Strip trailing whitespace from source files
lisp: avoid buffer overflow if $HOME is larger than PATH_MAX bytes
gitlab CI: drop the ci-fairy check-mr job
lisp/re/tests: return count of failed tests
meson: Add option to build with meson
xedit 1.2.5
[mlir][arith] Add ValueBoundsOpInterface external models for the arith integer CeilDiv, RemSI, RemUI, MaxUI, MinUI. (#204966)
Add ValueBoundsOpInterface external models for the arith integer
CeilDiv, RemSI, RemUI, MaxUI, MinUI.
Since the ValueBoundsConstraintSet infrastructure interprets unsigned
integers as signed, unsigned ops needed special handling.
In the unsigned ops we first verify that the integers can be proven as
positive, and if yes we add the appropriate constraints to the set.
The only exception for that is the RemUI, since the bound is only
dependent on the divider we don't care what's the sign of the lhs.
---------
Co-authored-by: Nir Herscovici <nir.herscovici at mobileye.com>
[GVN] Preserve scoped-alias metadata on coerced loads
When forwarding a wider load to a narrower load at an offset, GVN drops
the wider load's metadata. !noalias and !alias.scope are independent of
the load type and offset, and the wider load is not moved and still
accesses the same memory, so they remain valid and are now kept instead
of dropped.
[GVN] Add test for scoped-alias metadata dropped on coerced loads
Precommit test capturing current behavior: when GVN forwards a wider
load to a narrower load at an offset, dropUnknownNonDebugMetadata
strips !noalias and !alias.scope from the surviving wider load even
though that load is unchanged and the metadata stays valid.
[RISCV][P-ext] Add codegen for packed reduction sum (#206004)
The predsum/predsumu instructions reduce a packed vector to a scalar:
each element is sign- or zero-extended to the accumulator width and
added to the scalar accumulator rs2.
This patch adds the llvm.riscv.predsum and predsumu intrinsics along
with isel patterns for target-legal results (predsum.bs/hs/ws, plus
the paired predsum.dbs/dhs for a GPRPair source on RV32).
The remaining combinations have a target-illegal result and are split
in ReplaceNodeResults:
* On RV64: An i32 accumulator reduces at i64 and is then truncated
(the 32-bit source is zero-extended first).
* On RV32: An i64 accumulator reduces to a 32-bit partial sum and is
widening-accumulated via wadda/waddau.