circt/lib
Morten Borup Petersen 4b2c78a13a
[Pipeline] Add cross-block canonicalization break op (#8517)
* [Pipeline] Add cross-block canonicalization break op

In participation of the upcoming removal of the cross-block canonicalization guards in the `comb` canonicalizers, we're introducing a `pipeline.src` operation to the pipeline dialect.

This operation is intended to alleviate the case of unintentional cross-block canonicalizations when a scheduled pipeline has not yet had its registers materialized.

This operation, `pipeline.src`, effectively acts as a canonicalization boundary, creating an in-block reference to a value that is defined in a predecessor block.

This means that we can keep our existing structure for unmaterialized, scheduled pipelines - values can be referenced from _any_ predecessor op through the `pipeline.src` operation, which still allows for said values to be easily moved across stages in a retiming scenario.
Upon register materialization, these `pipeline.src` operations are trivially removed, effectively becoming the block arguments of the pipeline stages.

* scheduling

* extra test

* some docs

* integration tests

* Review

---------

Co-authored-by: Morten Borup Petersen <mpetersen@microsoft.com>
2025-06-02 14:11:09 +02:00
..
Analysis Comb Interval Range Analysis and Comb Opt Narrowing pass (#8425) 2025-04-30 15:42:18 +02:00
Bindings [RTG] Add any_context attribute (#8373) 2025-05-14 11:13:42 +01:00
CAPI [HW][CAPI] Add a function for getting port info from module (#8491) 2025-05-31 16:34:43 +08:00
Conversion [LowerToHW] Emit an error when $fopen failed for FD lowering (#8511) 2025-05-22 14:44:10 -07:00
Dialect [Pipeline] Add cross-block canonicalization break op (#8517) 2025-06-02 14:11:09 +02:00
Firtool [firrtl] Move LowerLayers after LowerXMR (#8405) 2025-04-24 11:02:55 -04:00
Reduce Bump LLVM to c6c2e21028cadef854cf22f6ecaa5eb9d224b76d. (#8467) 2025-05-06 09:07:04 -06:00
Scheduling [SSP] Separate `ResourceType` from `OperatorType` (#8444) 2025-05-13 08:52:11 -04:00
Support [Support] Add relative path caching to InstancePathCache (#8489) 2025-05-19 11:46:52 -07:00
Target [LLVM] bump to 9deb08a and integrate upstream SMT C APIs (#8424) 2025-04-17 15:26:22 -04:00
Tools [circt-lec] Implement emit-smtlib functionality for circt-lec (#8497) 2025-05-22 15:26:10 +01:00
Transforms [Transforms][HierarchicalRunner] Run passes only on HWModuleOp (#8495) 2025-05-19 22:54:18 -07:00
CMakeLists.txt [circt-lec] Port to SMT dialect based compiler pipeline (#6908) 2024-04-21 08:06:39 +02:00