Fix tn_connect.config legacy API version adaptation
The v27.0.0 TrueNASConnectEntry had an incorrect to_previous() method that added ips, interfaces, interfaces_ips, and use_all_interfaces fields when downgrading from v27 to v26. Since both v27 and v26 have identical Entry schemas (both had these fields removed in the same commit), v27's to_previous should be a no-op. The fields were being added but never cleaned up because the version adapter's cleanup only removes fields present in the current model's fields, and these fields aren't in v27's model_fields. This caused Pydantic validation to fail with Extra inputs are not permitted when serialize_result validated the adapted data against v26's Entry which also doesn't have those fields. The v26 to_previous correctly handles the v26-to-v25.10.x gap where these fields are actually needed.
[SLP] Reject 2-element vectorization when vector inst count exceeds scalar
The LLVM cost model uses integer-valued throughput costs which cannot
represent fractional costs. For 2-element vectors, this rounding can
make vectorization appear profitable when it actually produces more
instructions than the scalar code — the overhead from shuffles, inserts,
extracts, and buildvectors is underestimated.
Add an instruction-count safety check in getTreeCost that estimates
the number of vector instructions (including gathers, shuffles, and
extracts) and compares against the number of scalar instructions.
If the vector code would produce more instructions, reject the tree
regardless of what the cost model says. This catches cases where
fractional cost rounding hides real overhead.
The check is gated behind -slp-inst-count-check (default: on) and
only applies to 2-element root trees where rounding errors matter most.
Reviewers: hiraditya, bababuck, RKSimon
Pull Request: https://github.com/llvm/llvm-project/pull/190414
Call repo_check_timeout() before colleting the POLLOUT fds. Since
repo_abort() called by repo_check_timeout() will add messages to
be sent out.
This brings back rev 1.263 which was accidentially reverted by rev 1.293
OK tb@
[SLP] Fix CmpInst type handling in cost model
Previously, getValueType() always returned the compared operand type
(e.g. i32) for CmpInst, which was incorrect for gather cost estimation
and codegen where the result type (i1) is needed. This caused ad-hoc
fixups scattered across getEntryCost, calculateTreeCostAndTrimNonProfitable,
and vectorizeTree that overrode ScalarTy back to i1 for CmpInsts.
Add a LookThroughCmp parameter to getValueType() (default: false) so
callers that need the operand type for vector width calculations can
explicitly opt in. This removes the need for the scattered CmpInst
special cases:
- getEntryCost gather path: remove `if (isa<CmpInst>) ScalarTy = i1`
- calculateTreeCostAndTrimNonProfitable: remove same override
- vectorizeTree: simplify `if (!isa<CmpInst>) ScalarTy = getValueType(V)`
to just `getValueType(V)`
For the ICmp/FCmp cost case in getEntryCost, add a fallthrough from
ICmp/FCmp to Select that overrides ScalarTy with the compared operand
type via getValueType(VL0, true), since getCmpSelInstrCost expects the
compared type as its first argument. Fix the condition type argument
[5 lines not shown]
x11-toolkits/wlroots020: add missing dependency
$ pkg-config --libs wlroots-0.20
Package wayland-protocols was not found in the pkg-config search path.
Perhaps you should add the directory containing `wayland-protocols.pc'
to the PKG_CONFIG_PATH environment variable
Package 'wayland-protocols', required by 'wlroots-0.20', not found
https://gitlab.freedesktop.org/wlroots/wlroots/-/commit/122310a2de35
(cherry picked from commit ab987a3cdcc50d8e11ca49cf82dc0f5271fe53eb)
x11-toolkits/wlroots020: add missing dependency
$ pkg-config --libs wlroots-0.20
Package wayland-protocols was not found in the pkg-config search path.
Perhaps you should add the directory containing `wayland-protocols.pc'
to the PKG_CONFIG_PATH environment variable
Package 'wayland-protocols', required by 'wlroots-0.20', not found
https://gitlab.freedesktop.org/wlroots/wlroots/-/commit/122310a2de35
x11-toolkits/wlroots020: add missing dependency
$ pkg-config --libs wlroots-0.20
Package wayland-protocols was not found in the pkg-config search path.
Perhaps you should add the directory containing `wayland-protocols.pc'
to the PKG_CONFIG_PATH environment variable
Package 'wayland-protocols', required by 'wlroots-0.20', not found
https://gitlab.freedesktop.org/wlroots/wlroots/-/commit/122310a2de35
[libc++][test] Improve `fold_left` `check_lvalue_range` coverage. (#183990)
This makes the test `fold_left` and `fold_left_with_iter` with and
without telemetrics similar to what we do in `check_iterator`.