aboutsummaryrefslogtreecommitdiffstats
path: root/passes/proc/Makefile.inc
diff options
context:
space:
mode:
authorwhitequark <whitequark@whitequark.org>2019-07-08 15:19:01 +0000
committerwhitequark <whitequark@whitequark.org>2019-07-09 09:30:58 +0000
commit5fe0ffe30f315d50b2405c2d436ad8e7ca9ba2f6 (patch)
treed51fa4bf1a0bfc06ff96f83964850171fe858165 /passes/proc/Makefile.inc
parent030483ffb909ab38e10d437d09ec922cb0ad2ce8 (diff)
downloadyosys-5fe0ffe30f315d50b2405c2d436ad8e7ca9ba2f6.tar.gz
yosys-5fe0ffe30f315d50b2405c2d436ad8e7ca9ba2f6.tar.bz2
yosys-5fe0ffe30f315d50b2405c2d436ad8e7ca9ba2f6.zip
proc_prune: new pass.
The proc_prune pass is similar in nature to proc_rmdead pass: while proc_rmdead removes branches that never become active because another branch preempts it, proc_prune removes assignments that never become active because another assignment preempts them. Genrtlil contains logic similar to the proc_prune pass, but their purpose is different: genrtlil has to prune assignments to adapt the semantics of blocking assignments in HDLs (latest assignment wins) to semantics of assignments in RTLIL processes (assignment in the most specific case wins). On the other hand proc_prune is a general purpose RTLIL simplification that benefits all frontends, even those not using the Yosys AST library. The proc_prune pass is added to the proc script after proc_rmdead, since it gives better results with fewer branches.
Diffstat (limited to 'passes/proc/Makefile.inc')
-rw-r--r--passes/proc/Makefile.inc2
1 files changed, 1 insertions, 1 deletions
diff --git a/passes/proc/Makefile.inc b/passes/proc/Makefile.inc
index 397fe46a1..4b56979f8 100644
--- a/passes/proc/Makefile.inc
+++ b/passes/proc/Makefile.inc
@@ -1,5 +1,6 @@
OBJS += passes/proc/proc.o
+OBJS += passes/proc/proc_prune.o
OBJS += passes/proc/proc_clean.o
OBJS += passes/proc/proc_rmdead.o
OBJS += passes/proc/proc_init.o
@@ -7,4 +8,3 @@ OBJS += passes/proc/proc_arst.o
OBJS += passes/proc/proc_mux.o
OBJS += passes/proc/proc_dlatch.o
OBJS += passes/proc/proc_dff.o
-