circt/test/firtool
Schuyler Eldridge 5cffc8537b
[firrtl] Move LowerLayers after LowerXMR (#8405)
Move the `LowerLayers` pass after the `LowerXMR` pass.  To do this, all
passes at the end of the CHIRRTL to Low FIRRTL pipeline are moved after
`LowerXMR`.  This is necessary because the `LowerLayers` pass cannot, at
present, be moved after the passes at the end of the pipeline.

This is done to enable forcing out of layers.  By lowering probes to XMRs,
the layers can be lowered trivially to modules/instances and their XMRs
will now (seemingly) magically just work.  By doing the loweirng in this
way, it avoids ever having to represent an input probe in the FIRRTL
dialect.

A consequence of this is that there are now simplifying
assumptions (preconditions) that can be made about the `LowerLayers` pass:

1. It will never see a number of probe ops because the `LowerXMR` pass has
   a postcondition that all of these are removed.

2. Input and output ports can never be created on modules created from
   layer blocks.

While I am generally always in favor of passes being relocatable anywhere
in the pipeline, this is one pass that really does _not_ make sense to be
relocatable.  In effect, this pass is part of the lowering from FIRRTL to
HW.  There is no point in being able to use it earlier in the pipeline.
That said, it still is tested to work with things which we may one-day
preserve, like `WhenOp`s.

Signed-off-by: Schuyler Eldridge <schuyler.eldridge@sifive.com>
2025-04-24 11:02:55 -04:00
..
spec/refs [FIRRTL] Bump minimum to 2.0.0, remove partial conect (#5075) 2024-06-11 11:07:18 -05:00
annotation-error.fir [FIRRTL] Remove test usage of '<=' connect, NFC 2024-10-25 16:59:12 -04:00
annotation-openaggs-error.fir [FIRRTL] Migrate tests to connect, invalidate, NFC 2024-10-25 01:03:45 -04:00
annotation-openaggs.fir [FIRRTL] Migrate tests to connect, invalidate, NFC 2024-10-25 01:03:45 -04:00
assign-output-dirs.fir [FIRRTL] Migrate tests to connect, invalidate, NFC 2024-10-25 01:03:45 -04:00
async-reset-anno.fir [FIRRTL][InferResets] Generalize FART to support sync reset (#7476) 2024-08-08 21:39:25 -07:00
async-reset.fir [FIRRTL][InferResets] Generalize FART to support sync reset (#7476) 2024-08-08 21:39:25 -07:00
blackbox-directories.fir [FIRRTL] Parse GC View Annos w/o Circuit 2025-04-08 22:32:24 -04:00
blackbox-path.v [FIRRTL] Add black box reader pass (#918) 2021-05-21 20:01:58 +02:00
blackbox.mlir [FIRRTL] Make tests with filepaths platform agnostic 2022-10-19 17:41:50 -07:00
btor2-assertproperty.fir [HWToBTOR2] Generate register initial constant before state declaration (#7939) 2024-12-03 19:33:46 +00:00
btor2.fir [FIRRTL] Migrate tests to connect, invalidate, NFC 2024-10-25 01:03:45 -04:00
canonicalize-away-assert-under-layer.fir [FIRRTL] Run canonicalizer again after IMCP (#7796) 2024-11-12 15:26:42 -05:00
chirrtl.fir [FIRRTL] Migrate tests to connect, invalidate, NFC 2024-10-25 01:03:45 -04:00
chisel-interface.fir [FIRRTL] Migrate tests to connect, invalidate, NFC 2024-10-25 01:03:45 -04:00
chisel_assert.fir [FIRRTL][NFC] Drop use of intmodule's in tests. (#7008) 2024-05-08 16:32:32 -05:00
classes-dedupe.fir [firtool] Bump "next" FIRRTL version to 5.1.0 2025-03-28 11:02:03 -04:00
clock-gate.fir [FIRRTL][NFC] Replace intmodules with intrinsic expressions in test. (#7041) 2024-05-15 11:05:35 -05:00
clocking.fir [FIRRTL][NFC] Replace intmodules with intrinsic expressions in test. (#7041) 2024-05-15 11:05:35 -05:00
combinational-loop-errors.fir [firtool] Move SpecializeLayers before LowerLayers 2024-06-18 08:45:22 -07:00
combinational-loops.fir [firtool] verify that comb loop checking resolves last connects 2024-06-18 08:45:22 -07:00
commandline.mlir Don't read lowering options from hidden global options (#4038) 2022-10-04 15:41:03 -05:00
connect-errors.fir [FIRRTL] Migrate tests to connect, invalidate, NFC 2024-10-25 01:03:45 -04:00
connect.fir [FIRRTL] Migrate tests to connect, invalidate, NFC 2024-10-25 01:03:45 -04:00
convention.fir [FIRRTL] Migrate tests to connect, invalidate, NFC 2024-10-25 01:03:45 -04:00
dedup-modules-with-output-dirs.fir [FIRRTL] Migrate tests to connect, invalidate, NFC 2024-10-25 01:03:45 -04:00
dpi.fir [FIRRTL] Migrate tests to connect, invalidate, NFC 2024-10-25 01:03:45 -04:00
export-ref.fir [FIRRTL][LowerXMR] Use FIRRTL 4.0 ref ABI. (#6677) 2024-02-08 16:46:43 -06:00
extract-test-code.fir [FIRRTL] Canonicalize Assert(clk, p, e) when p == e (#8320) 2025-03-19 21:50:22 -04:00
firtool-errors.mlir [firrtl] Remove CircuitOp::getMainModule 2023-11-28 15:48:40 -05:00
firtool.fir [FIRRTL] Remove all traces of OMIR JSON support. (#7907) 2024-11-26 16:42:55 -07:00
firtool.fir.anno.1.json [FIRRTL] clang-format annotation JSON, NFC 2022-07-06 22:19:43 -04:00
firtool.fir.anno.json [FIRRTL] clang-format annotation JSON, NFC 2022-07-06 22:19:43 -04:00
firtool.fir.omir.anno.json Object Model 2.0, Part 1: Read in OM 2.0 (#1915) 2021-10-01 20:55:54 -04:00
firtool.mlir [firtool] Add an option to emit HW MLIR into file (#8169) 2025-02-10 10:19:22 -08:00
formal.mlir [firtool] Fix formal test (#7894) 2024-11-25 13:01:48 -08:00
has_been_reset.fir [FIRRTL] Migrate tests to connect, invalidate, NFC 2024-10-25 01:03:45 -04:00
import-ref.fir [LowerToHW] Revert a1b7ca605 '%0d' default 2025-04-01 17:05:49 -04:00
include-dirs-annotations.fir [FIRRTL] Migrate tests to connect, invalidate, NFC 2024-10-25 01:03:45 -04:00
include-dirs.fir [firrtl] Remove CircuitOp::getMainModule 2023-11-28 15:48:40 -05:00
initialization-checking-errors.fir [firtool] Move SpecializeLayers before LowerLayers 2024-06-18 08:45:22 -07:00
instchoice.fir [FIRRTL] Make tests circuit attribute robust, NFC 2025-04-03 22:26:34 -04:00
layer-merge-across-inlined-submodule.fir [firrtl] Move LowerLayers after LowerXMR (#8405) 2025-04-24 11:02:55 -04:00
layers-rwprobe.fir fixup! [FIRRTL] Use new layer ABI 2024-08-29 17:13:42 -04:00
layers.fir [firrtl] Move LowerLayers after LowerXMR (#8405) 2025-04-24 11:02:55 -04:00
locators-diagnostics.fir [FIRRTL] Migrate tests to connect, invalidate, NFC 2024-10-25 01:03:45 -04:00
lower-layers-directories.fir [FIRRTL] Parse GC View Annos w/o Circuit 2025-04-08 22:32:24 -04:00
lower-layers.fir [firrtl] Move LowerLayers after LowerXMR (#8405) 2025-04-24 11:02:55 -04:00
lower-memories.fir [FIRRTL] Migrate tests to connect, invalidate, NFC 2024-10-25 01:03:45 -04:00
mark-dut.fir [FIRRTL] Support MarkDUTAnnotation on extmodules. (#8001) 2024-12-17 13:11:34 -07:00
memory.fir [FIRRTL] Migrate tests to connect, invalidate, NFC 2024-10-25 01:03:45 -04:00
memoryLowering.fir [FIRRTL] Migrate tests to connect, invalidate, NFC 2024-10-25 01:03:45 -04:00
memoryMetadata.fir [FIRRTL] Migrate tests to connect, invalidate, NFC 2024-10-25 01:03:45 -04:00
memoryMetadata.fir.anno.json [FIRRTL][CreateSifiveMetadata] Use symbols for memory metadata (#5482) 2023-06-27 14:02:50 -07:00
memoryMetadataRenameFail.fir [FIRRTL] Remove test usage of '<=' connect, NFC 2024-10-25 16:59:12 -04:00
memoryMetadataRenameFail.fir.anno.json [FIRRTL] rm SeqMemInstanceMetadataAnnotation, NFC 2024-11-06 23:20:27 -05:00
module-hier.fir [FIRRTL] Migrate tests to connect, invalidate, NFC 2024-10-25 01:03:45 -04:00
name-preservation.fir [FIRRTL] Migrate tests to connect, invalidate, NFC 2024-10-25 01:03:45 -04:00
optimizations.fir [FIRRTL] Migrate tests to connect, invalidate, NFC 2024-10-25 01:03:45 -04:00
phase-ordering.fir [FIRRTL] Migrate tests to connect, invalidate, NFC 2024-10-25 01:03:45 -04:00
plusargs.fir [sim] Add emission for plusargs for UPF simulations 2025-03-07 10:33:01 -08:00
prefixMemory.fir [FIRRTL] Remove NestedPrefixModulesAnnotation (#7944) 2024-12-04 13:34:14 -05:00
print-before.fir [FIRRTL] Bump minimum to 2.0.0, remove partial conect (#5075) 2024-06-11 11:07:18 -05:00
print.fir [FIRRTL] Do not guard fprintf with PRINTF_COND 2025-04-19 00:05:11 -04:00
properties.fir [FIRRTL] Add end to end properties example 2023-08-23 15:54:56 -07:00
refs-in-aggs.fir [FIRRTL] Migrate tests to connect, invalidate, NFC 2024-10-25 01:03:45 -04:00
register-optimization.fir [FIRRTL] Migrate tests to connect, invalidate, NFC 2024-10-25 01:03:45 -04:00
register-randomization.fir [FIRRTL] Migrate tests to connect, invalidate, NFC 2024-10-25 01:03:45 -04:00
specialize-layers-cli.fir [FIRRTL] Make tests circuit attribute robust, NFC 2025-04-03 22:26:34 -04:00
specialize-layers-default.fir [firtool] Add option to specify default layer specialization mode 2024-07-30 13:43:29 -07:00
specialize-layers.fir fixup! [FIRRTL] Use new layer ABI 2024-08-29 17:13:42 -04:00
split-verilog.mlir [ExportVerilog] Drop external module emission (#7558) 2024-08-28 10:56:55 -04:00
stop.fir [SV] Add MacroRefOp to represet macro statement (#7607) 2024-09-25 17:29:57 +09:00
style.fir [FIRRTL] Bump minimum to 2.0.0, remove partial conect (#5075) 2024-06-11 11:07:18 -05:00
sv-attr.fir [FIRRTL] Migrate tests to connect, invalidate, NFC 2024-10-25 01:03:45 -04:00
unr-only.fir [FIRRTL] Don't prefix an empty label for unclocked assume. (#7016) 2024-05-09 12:18:46 -05:00
verbatim-parameter.fir [FIRRTL][HW] Add verbatim literal support (#5774) 2023-08-08 10:15:09 -04:00
verbose-pass-executions.fir [FIRRTL] Bump minimum to 2.0.0, remove partial conect (#5075) 2024-06-11 11:07:18 -05:00
verif-under-when.fir [FIRRTL] Fix folding of when conditions into LTL properties (#7760) 2024-11-01 12:42:45 -07:00
verif.fir [FIRRTL][NFC] Replace intmodules with intrinsic expressions in test. (#7041) 2024-05-15 11:05:35 -05:00
views-directories-yaml.fir [FIRTOOL][NFC] Remove TODO from test. 2025-02-07 16:58:56 -06:00