Commit def39e7
authored
[FIRRTL] Add CheckCombLoops handling for InstanceChoiceOp (#9711)
InstanceChoiceOp can reference multiple module alternatives selected at
runtime based on options. CheckCombLoops cannot determine which module
will be selected, so it conservatively checks all referenced modules
(default and alternatives) for combinational loops.
This ensures that combinational cycles are detected regardless of which
module alternative is selected at runtime. The implementation refactors
the existing handleInstanceOp logic into a reusable processInstancePorts
helper method to avoid code duplication.
* Update InstanceChoiceLoop test cases
Removed CHECK-NOT comments for loop detection tests.
* Fix name
* Update comments1 parent a51d89f commit def39e7
File tree
3 files changed
+121
-15
lines changed- lib/Dialect/FIRRTL
- Transforms
- test/Dialect/FIRRTL
3 files changed
+121
-15
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
591 | 591 | | |
592 | 592 | | |
593 | 593 | | |
594 | | - | |
| 594 | + | |
595 | 595 | | |
596 | 596 | | |
597 | 597 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
128 | 128 | | |
129 | 129 | | |
130 | 130 | | |
| 131 | + | |
| 132 | + | |
131 | 133 | | |
132 | 134 | | |
133 | 135 | | |
| |||
328 | 330 | | |
329 | 331 | | |
330 | 332 | | |
331 | | - | |
332 | | - | |
333 | | - | |
334 | | - | |
335 | | - | |
336 | | - | |
337 | | - | |
338 | | - | |
| 333 | + | |
| 334 | + | |
| 335 | + | |
339 | 336 | | |
340 | 337 | | |
341 | 338 | | |
| |||
356 | 353 | | |
357 | 354 | | |
358 | 355 | | |
359 | | - | |
360 | | - | |
| 356 | + | |
361 | 357 | | |
362 | 358 | | |
363 | 359 | | |
364 | | - | |
| 360 | + | |
365 | 361 | | |
366 | 362 | | |
367 | 363 | | |
| |||
374 | 370 | | |
375 | 371 | | |
376 | 372 | | |
377 | | - | |
378 | | - | |
| 373 | + | |
379 | 374 | | |
380 | 375 | | |
381 | | - | |
| 376 | + | |
382 | 377 | | |
383 | 378 | | |
384 | 379 | | |
| |||
433 | 428 | | |
434 | 429 | | |
435 | 430 | | |
| 431 | + | |
| 432 | + | |
| 433 | + | |
| 434 | + | |
| 435 | + | |
| 436 | + | |
| 437 | + | |
| 438 | + | |
| 439 | + | |
| 440 | + | |
| 441 | + | |
| 442 | + | |
| 443 | + | |
| 444 | + | |
| 445 | + | |
| 446 | + | |
| 447 | + | |
| 448 | + | |
| 449 | + | |
| 450 | + | |
| 451 | + | |
| 452 | + | |
| 453 | + | |
| 454 | + | |
| 455 | + | |
| 456 | + | |
| 457 | + | |
| 458 | + | |
436 | 459 | | |
437 | 460 | | |
438 | 461 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1131 | 1131 | | |
1132 | 1132 | | |
1133 | 1133 | | |
| 1134 | + | |
| 1135 | + | |
| 1136 | + | |
| 1137 | + | |
| 1138 | + | |
| 1139 | + | |
| 1140 | + | |
| 1141 | + | |
| 1142 | + | |
| 1143 | + | |
| 1144 | + | |
| 1145 | + | |
| 1146 | + | |
| 1147 | + | |
| 1148 | + | |
| 1149 | + | |
| 1150 | + | |
| 1151 | + | |
| 1152 | + | |
| 1153 | + | |
| 1154 | + | |
| 1155 | + | |
| 1156 | + | |
| 1157 | + | |
| 1158 | + | |
| 1159 | + | |
| 1160 | + | |
| 1161 | + | |
| 1162 | + | |
| 1163 | + | |
| 1164 | + | |
| 1165 | + | |
| 1166 | + | |
| 1167 | + | |
| 1168 | + | |
| 1169 | + | |
| 1170 | + | |
| 1171 | + | |
| 1172 | + | |
| 1173 | + | |
| 1174 | + | |
| 1175 | + | |
| 1176 | + | |
| 1177 | + | |
| 1178 | + | |
| 1179 | + | |
| 1180 | + | |
| 1181 | + | |
| 1182 | + | |
| 1183 | + | |
| 1184 | + | |
| 1185 | + | |
| 1186 | + | |
| 1187 | + | |
| 1188 | + | |
| 1189 | + | |
| 1190 | + | |
| 1191 | + | |
| 1192 | + | |
| 1193 | + | |
| 1194 | + | |
| 1195 | + | |
| 1196 | + | |
| 1197 | + | |
| 1198 | + | |
| 1199 | + | |
| 1200 | + | |
| 1201 | + | |
| 1202 | + | |
| 1203 | + | |
| 1204 | + | |
| 1205 | + | |
| 1206 | + | |
| 1207 | + | |
| 1208 | + | |
| 1209 | + | |
| 1210 | + | |
| 1211 | + | |
| 1212 | + | |
| 1213 | + | |
| 1214 | + | |
| 1215 | + | |
| 1216 | + | |
0 commit comments