Skip to content

Place2move

InsertReturnMoves dataclass

InsertReturnMoves(
    placement_analysis: dict[SSAValue, AtomState] = dict(),
    revert_initial_position: Callable[
        [dict[SSAValue, AtomState], StaticPlacement],
        tuple[tuple[LaneAddress, ...], ...] | None,
    ] = palindrome_move_layers,
)

Bases: RewriteRule

Insert return move layers near the end of each static placement region.

The default return strategy mirrors existing move layers in reverse order so callers can recover the initial configuration after executing a region.

RewriteGates dataclass

RewriteGates(placement_analysis: dict[SSAValue, AtomState])

Bases: RewriteRule

Rewrite R circuit statements to move R statements.