Skip to content

bloqade.lanes.transform.place_to_move.PlaceToMove

← Module overview

classPlaceToMovesource

bloqade.lanes.transform.place_to_move.PlaceToMove

Shared place → move compilation stage for both pipelines.

Signature
class PlaceToMove(layout_heuristic: layout.LayoutHeuristicABC, placement_strategy: placement.PlacementStrategyABC, insert_initialize: bool = False)

The only difference between the physical and logical pipelines at this stage is whether InsertInitialize is included in the rewrite rules. Pass insert_initialize=True for the logical pipeline.

This stage only adds the move dialect — place stays in the group on purpose, since place.ConvertToPhysicalMeasurements carries the measurement dataflow past this point (see circuit2place). The dialect-group check at the end is therefore a cheap invariant here rather than a discard guard.

Parameters

NameTypeDefaultDescription
layout_heuristiclayout.LayoutHeuristicABCrequired
placement_strategyplacement.PlacementStrategyABCrequired
insert_initializeboolFalse

Attributes

NameTypeDefaultDescription
layout_heuristiclayout.LayoutHeuristicABCrequired
placement_strategyplacement.PlacementStrategyABCrequired
insert_initializeboolFalse

methodemitsource

bloqade.lanes.transform.place_to_move.PlaceToMove.emit

def emit(mt: Method, no_raise: bool = True) -> Method

Parameters

NameTypeDefaultDescription
mtMethodrequired
no_raiseboolTrue

Returns

Method

source