qat.backend.passes.lowering module
- class PartitionByPulseChannel
Bases:
LoweringPass
Separates a list of instructions into their respective pulse channels.
For targets that do not have native support for
Synchronize
, we can separate the instruction list into many lists of instructions, with each list only containing instructions that act on a single channel.This pass achieves the same as the
TriagePass
, but instead of saving the results in the results manager, returns the partitioned instructions. The only reason I’ve changed the name is to not confuse it with the TriagePass :)- run(ir, *args, **kwargs)
- Parameters:
ir¶ (
InstructionBuilder
) – The list of instructions stored in anInstructionBuilder
.res_mgr¶ – The result manager to save the analysis results.
- Return type:
- class PartitionedIR(target_map=<factory>, shots=<factory>, returns=<factory>, assigns=<factory>, acquire_map=<factory>, pp_map=<factory>, rp_map=<factory>)
Bases:
object
Stores the results of the
PartitionByPulseChannel
.-
acquire_map:
dict
[PulseChannel
,list
[Acquire
]]
-
pp_map:
dict
[str
,list
[PostProcessing
]]
-
rp_map:
dict
[str
,ResultsProcessing
]
-
target_map:
dict
[PulseChannel
,list
[Instruction
]]
-
acquire_map: