• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

Qiskit / qiskit / 16145526249
88%

Build:
DEFAULT BRANCH: main
Ran 08 Jul 2025 02:38PM UTC
Jobs 1
Files 829
Run time 3min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

08 Jul 2025 01:34PM UTC coverage: 87.762% (-0.02%) from 87.781%
16145526249

push

github

web-flow
Rewrite Sabre interfaces to be Rust native (#14317)

* Add further creation and destructuring methods to `NLayout`

These are to allow more efficient Rust-space use of the object, allowing
reallocations to be avoided when doing things like ancilla expansion and
layout transformations at a scale larger than token swapping.

* Rewrite Sabre interfaces to be Rust native

This is a major rewrite of all the Sabre interfaces, though the core
routing logic is unchanged.  Note that the test suite is unaltered.

At least as far as the test suite covers, this change is RNG compatible
with its parent, and in several places, explicit code is added to
achieve this.  Given the neighbour-tracking structures are updated,
there can be some divergences, however, depending on how the order that
a coupling map was defined.

Changes to data structures
==========================

Changed `SabreDAG`
------------------

`SabreDAG` is now completely Rust-internal and not even exposed to
Python.  It's constructed directly from a `DAGCircuit`.  When
control-flow blocks are encountered, the temporary `DAGCircuit` backing
them is stored within the `SabreDAG` node itself, so there's no need for
all the `block_results` side-car handling.

The nodes in the graph explicitly store how the node affects routing:
they can be `TwoQ` (the actual routing target), `Synchronize` (a
non-routing object that has only data dependencies) or `ControlFlow`.
This simplifies the internal handling within the router, since now it
doesn't need to re-infer it.  It also lets us decay control-flow
operations to simple `Synchronize` points when we're in layout mode,
similar to how clearing the `block_nodes` field could implicitly do
before.

A follow-up commit (which necessarily changes the RNG compatibility)
makes stronger use of this new `SabreDAG` form to compress the
interaction graph during construction, reducing the amount of work done
by routing trials when advancing the state after a gate is routed.
... (continued)

944 of 1088 new or added lines in 10 files covered. (86.76%)

26 existing lines in 7 files now uncovered.

81275 of 92608 relevant lines covered (87.76%)

548692.6 hits per line

New Missed Lines in Diff

Lines Coverage ∆ File
2
92.31
-4.66% qiskit/transpiler/passes/routing/sabre_swap.py
3
85.01
0.02% crates/transpiler/src/target/mod.rs
5
93.33
-1.11% qiskit/transpiler/passes/layout/sabre_layout.py
6
94.17
crates/transpiler/src/passes/sabre/dag.rs
23
93.16
-3.26% crates/transpiler/src/passes/sabre/route.rs
49
86.6
7.56% crates/transpiler/src/passes/sabre/layout.rs
56
68.18
crates/transpiler/src/passes/sabre/neighbors.rs

Uncovered Existing Lines

Lines Coverage ∆ File
1
92.53
0.0% crates/qasm2/src/lex.rs
1
92.31
-4.66% qiskit/transpiler/passes/routing/sabre_swap.py
3
88.22
-0.75% crates/circuit/src/circuit_instruction.rs
3
68.79
-0.91% crates/circuit/src/dag_node.rs
3
89.04
-0.68% crates/transpiler/src/passes/disjoint_layout.rs
6
87.88
8.25% crates/circuit/src/nlayout.rs
9
85.38
-0.17% crates/circuit/src/dag_circuit.rs
Jobs
ID Job ID Ran Files Coverage
1 16145526249.1 08 Jul 2025 02:38PM UTC 829
87.76
GitHub Action Run
Source Files on build 16145526249
  • Tree
  • List 829
  • Changed 14
  • Source Changed 8
  • Coverage Changed 13
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #16145526249
  • c9ad20cd on github
  • Prev Build on gh-readonly-queue/main/pr-14698-8cbb31d88f91d0adf9939f283453b5c06422ea41 (#16122603538)
  • Next Build on main (#16147221012)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2025 Coveralls, Inc