|
6 | 6 | // |
7 | 7 | //===----------------------------------------------------------------------===// |
8 | 8 | // |
9 | | -// This pass implements FIRRTL domain inference and checking with canonical |
10 | | -// domain representation. Domain sequences are canonicalized by sorting and |
11 | | -// removing duplicates, making domain order irrelevant and allowing duplicate |
12 | | -// domains to be treated as equivalent. The result of this pass is either a |
13 | | -// correctly domain-inferred circuit or pass failure if the circuit contains |
14 | | -// illegal domain crossings. |
| 9 | +// InferDomains implements FIRRTL domain inference and checking. This pass is a |
| 10 | +// bottom-up transform acting on modules. For each module, we ensure there are |
| 11 | +// no domain crossings, and we make explicit the domain associations of ports. |
15 | 12 | // |
16 | 13 | //===----------------------------------------------------------------------===// |
17 | 14 |
|
@@ -93,9 +90,10 @@ static bool isPort(FModuleOp module, Value value) { |
93 | 90 | // Circuit-wide state. |
94 | 91 | //====-------------------------------------------------------------------------- |
95 | 92 |
|
96 | | -/// Each declared domain in the circuit is assigned an index, based on the order |
97 | | -/// in which it appears. Domain associations for hardware values are represented |
98 | | -/// as a list of domains, sorted by the index of the domain type. |
| 93 | +/// Each domain type declared in the circuit is assigned a type-id, based on the |
| 94 | +/// order of declaration. Domain associations for hardware values are |
| 95 | +/// represented as a list, or row, of domains. The domains in a row are ordered |
| 96 | +/// according to their type's id. |
99 | 97 | using DomainTypeID = size_t; |
100 | 98 |
|
101 | 99 | /// Information about the domains in the circuit. Able to map domains to their |
|
0 commit comments