llvm / circt

Circuit IR Compilers and Tools
https://circt.org
Other
1.67k stars 298 forks source link

[FIRRTL] IMConstProp much slower w/agg preservation on ("all") #5187

Closed dtzSiFive closed 1 year ago

dtzSiFive commented 1 year ago

Test input: https://github.com/circt/perf/blob/7155120531cd12e76b8df51e09b3d90b512caa0e/regress/chipyard.TestHarness.RocketSmall1Medium1Big1_BoomMedium1Large1Mega1.top.v.hi.fir

With -preserve-aggregate=all, IMCP takes ~55s on my machine, out of the 67s for the primary pass pipeline (and 77s total execution time).

By comparison, with default options, IMCP takes ~2.5s (and total exec is ~23s).

dtzSiFive commented 1 year ago

Command used for testing on that input:

$ ./build/bin/firtool ~/src/sifive/perf/regress/chipyard.TestHarness.RocketSmall1Medium1Big1_BoomMedium1Large1Mega1.top.v.hi.fir -o /dev/null -verbose-pass-executions -mlir-timing -preserve-aggregate=all

vs

$ ./build/bin/firtool ~/src/sifive/perf/regress/chipyard.TestHarness.RocketSmall1Medium1Big1_BoomMedium1Large1Mega1.top.v.hi.fir -o /dev/null -verbose-pass-executions -mlir-timing

1d-vec preservation is essentially as fast as no preservation.