qat.experimental.dialect.pulse.transforms.pipeline module
Centralised builder for the default pulse-level IR preprocessing pipeline.
The PulsePipelineManager is the single point of entry for constructing a
pulse-level pass pipeline from a hardware view. It accepts a
PulseLevelConstraints instance
and exposes build_default_pipeline(), which returns a
validated OrderedPassPipeline.
The default pipeline runs the following passes, in order:
OrderedCanonicalizePass— fold all constant arithmetic so that subsequent passes only see canonicalConstantOpoperands.ApplyGranularitySanitisation— round constant durations and sampled-waveform widths up to the hardware timing granularity, so later passes only see realisable times.EvaluateWaveformsAsSamples— convert analytical waveform ops into sampledConstantOppayloads, using the per-port sample times from constraints.TimelineNormalization— resolveSynchronizeOpoperations into explicitWaitOpchains using symbolic time-expression analysis.ApplySquashContiguousOptimizations— merge adjacent wait and phase operations.LowerKernelsToResultsArrays— rewrite each kernel signature fromResultsCollectionTypevalues toResultsArrayTypevalues and update all call sites to match the expanded signature.OrderedCanonicalizePass— a final canonicalization pass that folds any constants left behind by the earlier passes and removes the resulting no-ops.
The OrderedPassPipeline
validates any declared OrderedPass
constraints when it is constructed, so a mis-ordered schedule fails eagerly at build
time.
- class PulsePipelineManager(constraints)
Bases:
objectBuilds pulse-level IR pipelines from a hardware constraint view.
- Parameters:
constraints¶ (
PulseLevelConstraints) – Hardware-derived pulse-level constraints (timing granularity, per- port sample times, native waveform shapes).
- build_default_pipeline()
Build the default pulse-level preprocessing pipeline.
- Return type:
- Returns:
An
OrderedPassPipelinecontaining the standard pulse-level passes in conflict-free order, ending with a final constant-propagation cleanup.- Raises:
VerifyException – If the declared ordering constraints are violated (should not occur with the default configuration).
- classmethod from_canonical_data(data)
Construct a manager by deriving constraints from canonical system data.
- Parameters:
data¶ (
CanonicalSystemData) – The canonical hardware description.- Return type:
- Returns:
A new
PulsePipelineManagerwhose constraints are derived from data.