[VPlan] Add hasPredecessors and hasSuccessors to VPBlockBase (NFC).
Add/move helpers to VPBlockBase, and use in a few more places.
Split off from https://github.com/llvm/llvm-project/pull/156262 as
suggested.
[CIR] Split CIR_UnaryOp into individual operations
Split the monolithic cir.unary operation (which dispatched on a
UnaryOpKind enum) into four separate operations: cir.inc, cir.dec,
cir.minus, and cir.not.
This follows the same pattern used when cir.binop was split into
individual binary operations (AddOp, SubOp, etc.).
Changes:
- Add CIR_UnaryOpInterface with getInput()/getResult() methods
- Add CIR_UnaryOp and CIR_UnaryOpWithOverflowFlag base classes
- Define IncOp, DecOp, MinusOp, NotOp with per-op folds
- Add Involution trait to NotOp for not(not(x)) -> x folding
- Replace createUnaryOp() with createInc/Dec/Minus/Not builders
- Split LLVM lowering into four separate patterns
- Split LoweringPrepare complex-type handling per unary op
- Update CIRCanonicalize and CIRSimplify for new op types
- Update all codegen files to use bool params instead of UnaryOpKind
[6 lines not shown]
libpciaccess: update to 0.19.
This release adds a new pci_device_is_boot_display() API, with support
currently implemented only for Linux systems using sysfs.
It also adds a -Dinstall-scanpci option to the meson configuration for
those who want to install this version of scanpci.
In addition, it corrects build issues on FreeBSD 15 and DragonFly, and
fixes a long-standing bug if there were multiple users of libpciaccess
in the same process and one called pci_system_cleanup before the others
were done using pciaccess.
[CIR] Remove cir.unary(plus, ...) and emit nothing for unary plus (#185278)
Traditional codegen never emits any operation for unary plus — it just
visits the subexpression as a pure identity at the codegen level. Align
CIRGen with this behavior by removing Plus from UnaryOpKind entirely
and having VisitUnaryPlus directly visit the subexpression with the
appropriate promotion/demotion handling.
Fix mock infrastructure to coerce dict results to Pydantic models for generic services
This commit fixes an issue where the mock infrastructure (test.set_mock)
returns plain dicts for methods that internally return Pydantic models.
Generic services (those with Config.generic = True) like DockerService
return Pydantic model instances from their standard CRUD/Config methods
(e.g. docker.config returns a DockerEntry). When internal callers use
attribute access (e.g. .pool) on the result, mocks returning plain dicts
would fail with "'dict' object has no attribute 'pool'".
The fix detects at mock registration time whether the mocked method
belongs to a generic service and returns a model matching Config.entry.
If so, the mock's dict results are automatically wrapped via
model_construct() before being returned to callers. Non-generic services,
primitive-returning methods, and custom methods with non-entry return
types are unaffected.
Merge tag 'rust-fixes-7.0-2' of git://git.kernel.org/pub/scm/linux/kernel/git/ojeda/linux
Pull Rust fixes from Miguel Ojeda:
"Toolchain and infrastructure:
- Remap paths to avoid absolute ones starting with the upcoming Rust
1.95.0 release. This improves build reproducibility, avoids leaking
the exact path and avoids having the same path appear in two forms
The approach here avoids remapping debug information as well, in
order to avoid breaking tools that used the paths to access source
files, which was the previous attempt that needed to be reverted
- Allow 'unused_features' lint for the upcoming Rust 1.96.0 release.
While well-intentioned, we do not benefit much from the new lint
- Emit dependency information into '$(depfile)' directly to avoid a
temporary '.d' file (it was an old approach)
[29 lines not shown]