py-interface-meta: added version 2.0.1
interface_meta provides a convenient way to expose an extensible API with
enforced method signatures and consistent documentation.
[VPlan] Don't widen extractvalue with single scalar operand (#221146)
If the struct to extract isn't widened, e.g. because it's fed into an
address computation for an interleave, don't widen the extractvalue. A
single scalar extractvalue can still be executed ok.
Fixes a crash reported in
https://github.com/llvm/llvm-project/pull/219941#issuecomment-5535484384
[ARM] Fix instruction sizes for PATCHABLE opcodes (#220949)
Report the size of the xray sled instead of zero.
Part of enabling instruction size verification by default.
[AArch64][GlobalISel] Add support for shuffle(v, undef) -> trn(v, v) transformation (#220914)
Stacked PR: 3/3. Preceded by
https://github.com/llvm/llvm-project/pull/220535.
In SDAG, the aarch64-isel phase checks if vector shuffles can be
expressed as trns. To do this, it checks shuffles of type shuffle(v, v),
and shuffle(v, undefined).
GlobalISel previously only checked shuffles of type shuffle(v, v). Add a
check for the situation where one of the operands is undefined.
Notes:
A trn takes two vectors, places the even-indexed elements in the bottom
half, and the odd-indexed elements in the top half.
e.g: `trn <0, 1, 2, 3>, <4, 5, 6, 7> => <0, 4, 2, 6, 1, 5, 3, 7>`.
A trn1 takes the bottom half of the result (aka. the even-indexed
elements)
e.g: `trn1 <0, 1, 2, 3>, <4, 5, 6, 7> => <0, 4, 2, 6>`.
[8 lines not shown]
pf(4) is still overly strict in filtering MLD messages
pf(4) may drop valid Multicast Level Discovery (MLD) packet
with unspecified source address. According to RFC 3590,
section 4, Source Selection Guidelines, MLD Report and
MLD Done messages may be carried by IPv6 datagrams with
unspecified source address.
Issue reported and patch kindly submitted
by Kristof Provost (kp _at_ FreeBSD _dot_ org)
OK bluhm@
[SCEV] Propagate a recurrence's nuw flag to its exit value. (#217378)
A recurrence's exit value is its closed form Start + BTC * Step. The sum
does not wrap, if the recurrence does not wrap: the recurrence reached
iteration BTC, so the value it computes there is the value the recurrence
had, and that did not wrap.
The flags are attached to the returned use, because they only apply to
this specific expression we evaluated for the exit value, no other,
equivalent SCEVs.
Alive2 Proof: https://alive2.llvm.org/ce/z/0vSRq-
This on its own has small impact on real world code (only retained some
additional flags in most cases):
https://github.com/dtcxzyw/llvm-opt-benchmark-nightly/pull/962, but is
the first end-to-end use of SCEVUse.
Firewall: NAT: Source NAT: fix port alias and well known port usage in target_port (#10793)
* Firewall: NAT: Source NAT: fix port alias usage in target_port
* Add use statements for BooleanField and ProtocolField
(cherry picked from commit 1b601a1a708beaf908a3625ea54c36830d9ec6b8)
[Mips] Fix instruction size for unfinalized bundles (#220953)
It looks like Mips uses unfinalized bundles (i.e. there is no leading
BUNDLE) for delay slots. While proper delay slots are covered by the
hasDelaySlot() case, things like forbidden slots and load delay slots
are not. Make sure we report the correct size for these.
Part of enabling instruction size verification by default.
[LV] Enable the exit value optimization via SCEV for tail folding. (#210928)
Extend optimizeLatchExitIVUserViaSCEV to also match the tail-folding
live-out extraction pattern. This lets the SCEV-based final-value
computation apply under tail folding as well, avoiding unnecessary
vector widening of induction variables that are only used outside the
loop.
Based on #195059
[RISCV] Remove -tail-folding-policy=dont-fold-tail for partial reduction tests (#221159)
After #205741, partial reductions with EVL tail folding is now
supported.
[ADT] Remove the TempID parameter from FoldingSetTrait::Equals. NFC (#221144)
Let the default implementation declare its own local, so an override
that compares against the node's fields need not accept an unused
FoldingSetNodeID.
Aided by Opus 5
mvc: advanced marker for form/dialog fields (#10795)
Add a marker for advanced options behind their respective field
name in order to better spot what was toggled. In OpenVPN
the dialog extends beyond the screen size so having a visual
clue helps navigate the additional settings.
(cherry picked from commit 0334d52a42734e3b6933a20364d3fd39f2251a3a)