aboutsummaryrefslogtreecommitdiffstats
path: root/passes/opt/opt_clean.cc
Commit message (Collapse)AuthorAgeFilesLines
* Add the $anyinit cell and the formalff passJannis Harder2022-08-161-0/+2
| | | | | | | These can be used to protect undefined flip-flop initialization values from optimizations that are not sound for formal verification and can help mapping all solver-provided values in witness traces for flows that use different backends simultaneously.
* opt_clean: Make the init attribute follow the FF's Q.Marcelina Kościelnicka2021-08-221-0/+24
| | | | | | | | | | Previously, opt_clean would reconnect all ports (including FF Q ports) to a "canonical" SigBit chosen by complex rules, but would leave the init attribute on the old wire. This change applies the same canonicalization rules to the init attributes, ensuring that init moves to wherever the Q port moved. Part of another jab at #2920.
* Add v2 memory cells.Marcelina Kościelnicka2021-08-111-2/+2
|
* memory: Introduce $meminit_v2 cell, with EN input.Marcelina Kościelnicka2021-07-281-1/+1
|
* Fixing old e-mail addresses and deadnamesClaire Xenia Wolf2021-06-081-1/+1
| | | | | | | | s/((Claire|Xen|Xenia|Clifford)\s+)+(Wolf|Xen)\s+<(claire|clifford)@(symbioticeda.com|clifford.at|yosyshq.com)>/Claire Xenia Wolf <claire@yosyshq.com>/gi; s/((Nina|Nak|N\.)\s+)+Engelhardt\s+<nak@(symbioticeda.com|yosyshq.com)>/N. Engelhardt <nak@yosyshq.com>/gi; s/((David)\s+)+Shah\s+<(dave|david)@(symbioticeda.com|yosyshq.com|ds0.me)>/David Shah <dave@ds0.me>/gi; s/((Miodrag)\s+)+Milanovic\s+<(miodrag|micko)@(symbioticeda.com|yosyshq.com)>/Miodrag Milanovic <micko@yosyshq.com>/gi; s,https?://www.clifford.at/yosys/,http://yosyshq.net/yosys/,g;
* opt_clean: Remove init attribute bits together with removed DFFs.Marcelina Kościelnicka2021-03-151-0/+4
| | | | Fixes #2546.
* opt_clean: Better memory handling.Marcelina Kościelnicka2020-10-081-8/+45
| | | | | | | | Previously, `$memwr` and `$meminit` cells were always preserved (along with the memory itself). With this change, they are instead part of the main cell mark-and-sweep pass: a memory (and its `$meminit` and `$memwr` cells) is only preserved iff any associated `$memrd` cell needs to be preserved.
* use the new isPublic() in a few placesN. Engelhardt2020-09-141-2/+2
|
* opt_clean: Fix module keep rules.Marcelina Kościelnicka2020-08-091-4/+9
| | | | | | - wires with keep attribute now force a module to be kept - presence of $memwr and $meminit cells no longer forces a module to be kept
* Use C++11 final/override keywords.whitequark2020-06-181-4/+4
|
* opt_clean: improve warning messageEddie Hung2020-05-141-1/+1
|
* opt_clean: rminit without -purge; also remove if consistent with const..Eddie Hung2020-05-141-9/+17
| | | | warn otherwise
* opt_clean: really make 'clean' identical to 'opt_clean' by rminit tooEddie Hung2020-05-141-3/+2
|
* opt_clean: Add missing assignments to opt.did_something.Marcelina Kościelnicka2020-04-151-0/+6
|
* kernel: big fat patch to use more ID::*, otherwise ID(*)Eddie Hung2020-04-021-18/+18
|
* kernel: SigSpec use more const& + overloads to prevent implicit SigSpecEddie Hung2020-03-131-4/+4
|
* ystests: fix write_smt2_write_smt2_cyclic_dependency_failEddie Hung2020-02-281-11/+11
|
* clean: ignore specify-s inside cells when determining whether to keepEddie Hung2020-02-191-9/+15
|
* Use ID::keep more liberally tooEddie Hung2019-08-151-4/+4
|
* Use more ID::{A,B,Y,blackbox,whitebox}Eddie Hung2019-08-151-3/+3
|
* Use ID() macro in all of passes/opt/Clifford Wolf2019-08-111-27/+27
| | | | | | | | | | This was obtained by running the following SED command in passes/opt/ and then using "meld foo.cc foo.cc.orig" to manually fix all resulting compiler errors. sed -i.orig -r 's/"\\\\([a-zA-Z0-9_]+)"/ID(\1)/g; s/"(\$[a-zA-Z0-9_]+)"/ID(\1)/g;' *.cc Signed-off-by: Clifford Wolf <clifford@clifford.at>
* substr() -> compare()Eddie Hung2019-08-071-3/+3
|
* Improve opt_clean handling of unused public wiresClifford Wolf2019-06-261-2/+2
| | | | Signed-off-by: Clifford Wolf <clifford@clifford.at>
* Do not clean up buffer cells with "keep" attribute, closes #1128Clifford Wolf2019-06-261-1/+1
| | | | Signed-off-by: Clifford Wolf <clifford@clifford.at>
* Suppress driver-driver conflict warning for unknown cell types, fixes #1065Clifford Wolf2019-06-051-1/+1
| | | | Signed-off-by: Clifford Wolf <clifford@clifford.at>
* Keep zero-width wires in opt_clean if and only if they are ports, fixes #1023Clifford Wolf2019-05-221-2/+3
| | | | Signed-off-by: Clifford Wolf <clifford@clifford.at>
* Improvements in opt_cleanClifford Wolf2019-05-151-10/+10
| | | | Signed-off-by: Clifford Wolf <clifford@clifford.at>
* More opt_clean cleanupsClifford Wolf2019-05-071-26/+36
| | | | Signed-off-by: Clifford Wolf <clifford@clifford.at>
* Merge pull request #946 from YosysHQ/clifford/specifyClifford Wolf2019-05-061-1/+1
|\ | | | | Add specify parser
| * Merge branch 'master' of github.com:YosysHQ/yosys into clifford/specifyClifford Wolf2019-05-061-10/+22
| |\
| * \ Merge remote-tracking branch 'origin/master' into clifford/specifyEddie Hung2019-05-031-27/+72
| |\ \
| * | | Add $specrule cells for $setup/$hold/$skew specify rulesClifford Wolf2019-04-231-1/+1
| | | | | | | | | | | | | | | | Signed-off-by: Clifford Wolf <clifford@clifford.at>
| * | | Preserve $specify[23] cellsClifford Wolf2019-04-231-1/+1
| | | | | | | | | | | | | | | | Signed-off-by: Clifford Wolf <clifford@clifford.at>
* | | | Merge branch 'master' of github.com:YosysHQ/yosys into clifford/fix968Clifford Wolf2019-05-061-55/+68
|\ \ \ \
| * | | | Cleanups in opt_cleanClifford Wolf2019-05-061-47/+16
| | |_|/ | |/| | | | | | | | | | Signed-off-by: Clifford Wolf <clifford@clifford.at>
| * | | Improve opt_clean handling of unused wiresClifford Wolf2019-05-041-10/+22
| | |/ | |/| | | | | | | Signed-off-by: Clifford Wolf <clifford@clifford.at>
| * | Improve opt_expr and opt_clean handling of (partially) undriven and/or ↵Clifford Wolf2019-05-031-40/+72
| | | | | | | | | | | | | | | | | | unused wires, fixes #981 Signed-off-by: Clifford Wolf <clifford@clifford.at>
* | | Further improve unused-detection for opt_clean driver-driver conflict warningClifford Wolf2019-05-031-5/+8
| | | | | | | | | | | | Signed-off-by: Clifford Wolf <clifford@clifford.at>
* | | Improve unused-detection for opt_clean driver-driver conflict warningClifford Wolf2019-05-031-21/+29
| | | | | | | | | | | | Signed-off-by: Clifford Wolf <clifford@clifford.at>
* | | Silently resolve completely unused cell-vs-const driver-driver conflictsClifford Wolf2019-05-011-2/+21
|/ / | | | | | | Signed-off-by: Clifford Wolf <clifford@clifford.at>
* / Drive dangling wires with init attr with their init value, fixes #956Clifford Wolf2019-04-291-0/+13
|/
* Add log_debug() frameworkClifford Wolf2019-04-221-5/+6
| | | | Signed-off-by: Clifford Wolf <clifford@clifford.at>
* Consistent use of 'override' for virtual methods in derived classes.Henner Zeller2018-07-201-4/+4
| | | | | | | | | o Not all derived methods were marked 'override', but it is a great feature of C++11 that we should make use of. o While at it: touched header files got a -*- c++ -*- for emacs to provide support for that language. o use YS_OVERRIDE for all override keywords (though we should probably use the plain keyword going forward now that C++11 is established)
* Add warnings for driver-driver conflicts between FFs (and other cells) and ↵Clifford Wolf2017-12-121-1/+8
| | | | constants
* Fix typo in opt_clean log messageClifford Wolf2017-10-261-1/+1
|
* Add consolidation of init attributes to opt_clean, some opt_clean log fixesClifford Wolf2017-07-291-6/+82
|
* Add $live and $fair cell types, add support for s_eventually keywordClifford Wolf2017-02-251-1/+1
|
* Add $cover cell type and SVA cover() supportClifford Wolf2017-02-041-1/+1
|
* Removed $predict againClifford Wolf2016-08-281-1/+1
|
* After reading the SV spec, using non-standard predict() instead of expect()Clifford Wolf2016-07-211-1/+1
|