aboutsummaryrefslogtreecommitdiffstats
path: root/passes/opt
Commit message (Collapse)AuthorAgeFilesLines
...
* Merge pull request #2344 from YosysHQ/mwk/opt_share-fixesclairexen2020-08-201-223/+138
|\ | | | | opt_share: Refactor, fix some bugs.
| * opt_share: Refactor, fix some bugs.Marcelina Kościelnicka2020-08-171-223/+138
| | | | | | | | | | | | Fixes #2334. Fixes #2335. Fixes #2336.
* | Merge pull request #2337 from YosysHQ/mwk/clean-keep-wireclairexen2020-08-201-4/+9
|\ \ | | | | | | opt_clean: Fix module keep rules.
| * | 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
* / Remove now-redundant opt_rmdff pass.Marcelina Kościelnicka2020-08-072-712/+0
|/
* Replace opt_rmdff with opt_dff.Marcelina Kościelnicka2020-08-071-8/+16
|
* opt_expr: Remove -clkinv option, make it the default.Marcelina Kościelnicka2020-07-312-14/+14
| | | | | Adds -noclkinv option just in case the old behavior was actually useful to someone.
* Add opt_dff pass.Marcelina Kościelnicka2020-07-302-0/+876
|
* opt_expr: Fix handling of $_XNOR_ cells with A = B.Marcelina Kościelnicka2020-07-291-1/+1
| | | | Fixes #2311.
* pmux2shift: Refactor to use FfInitVals.Marcelina Kościelnicka2020-07-241-15/+4
|
* wreduce: Refactor to use FfInitVals.Marcelina Kościelnicka2020-07-241-37/+7
|
* opt_merge: Dedup one more use of FF cell type list.Marcelina Kościelnicka2020-07-151-3/+1
|
* opt_expr: Fix crash on $mul optimization with more zeros removed than Y has.Marcelina Kościelnicka2020-07-051-0/+8
| | | | Fixes #2221.
* opt_merge: use the master FF type listMarcelina Kościelnicka2020-06-301-3/+1
|
* Merge pull request #2168 from whitequark/assert-unused-exprsclairexen2020-06-251-1/+1
|\ | | | | Use (and ignore) the expression provided to log_assert in NDEBUG builds
| * Remove YS_ATTRIBUTE(unused) where present just for log_assert()/log_debug().whitequark2020-06-191-1/+1
| |
* | Add support for new FF types in some opt passes.Marcelina Kościelnicka2020-06-233-14/+53
|/
* Use C++11 final/override keywords.whitequark2020-06-1817-38/+38
|
* Do not optimize away FFs in "prep" and Verific fron-endClaire Wolf2020-06-091-5/+12
| | | | Signed-off-by: Claire Wolf <claire@symbioticeda.com>
* Add flooring division operatorXiretza2020-05-284-11/+32
| | | | | | | | | | The $div and $mod cells use truncating division semantics (rounding towards 0), as defined by e.g. Verilog. Another rounding mode, flooring (rounding towards negative infinity), can be used in e.g. VHDL. The new $divfloor cell provides this flooring division. This commit also fixes the handling of $div in opt_expr, which was previously optimized as if it was $divfloor.
* Add flooring modulo operatorXiretza2020-05-284-10/+35
| | | | | | | | | | | The $div and $mod cells use truncating division semantics (rounding towards 0), as defined by e.g. Verilog. Another rounding mode, flooring (rounding towards negative infinity), can be used in e.g. VHDL. The new $modfloor cell provides this flooring modulo (also known as "remainder" in several languages, but this name is ambiguous). This commit also fixes the handling of $mod in opt_expr, which was previously optimized as if it was $modfloor.
* opt_expr: Sx to Sz; spotted by @XiretzaEddie Hung2020-05-141-1/+1
|
* Merge pull request #1994 from YosysHQ/eddie/fix_bug1758Eddie Hung2020-05-141-25/+111
|\ | | | | opt_expr: improve single-bit $and/$or/$xor/$xnor cells; gate cells too
| * Fix whitespaceEddie Hung2020-05-141-1/+1
| |
| * opt_expr: consume_x to require/imply !keepdcEddie Hung2020-05-081-5/+6
| |
| * opt_expr: restore consume_x; use for coarse grained tooEddie Hung2020-05-081-6/+6
| |
| * opt_expr: const_xnor replacement to pad Y with 1'b1Eddie Hung2020-04-241-1/+2
| |
| * opt_expr: more fixes for $xor/$xnorEddie Hung2020-04-241-23/+47
| |
| * opt_expr: do not group by X, more fixesEddie Hung2020-04-231-18/+59
| |
| * opt_expr: improve single-bit $and/$or/$xor/$xnor cells; gate cells tooEddie Hung2020-04-231-10/+29
| |
* | 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
| |
* | Fix the other "opt_expr -fine" bug introduced in 213a89558Claire Wolf2020-05-021-7/+19
| | | | | | | | Signed-off-by: Claire Wolf <claire@symbioticeda.com>
* | Fix "opt_expr -fine" bug introduced in 213a89558Claire Wolf2020-05-011-7/+19
|/ | | | Signed-off-by: Claire Wolf <claire@symbioticeda.com>
* opt_expr: Fix X and CO outputs for $alu identity-mapping rules.Marcelina Kościelnicka2020-04-161-2/+17
|
* opt_clean: Add missing assignments to opt.did_something.Marcelina Kościelnicka2020-04-151-0/+6
|
* opt_expr: Add more $alu optimizations.Marcelina Kościelnicka2020-04-141-19/+110
| | | | | | | | | | | Detect the places in the $alu where the carry bit is constant (due to const A[i] == B[i] ^ BI) and split it into smaller $alu at these points. Also, make the existing const-carry detection for low bits more generic (now handles cases where both BI and CI are constant, but not equal to one another). Fixes #1912.
* opt_expr: Optimize multiplications with low 0 bits in operands.Marcelina Kościelnicka2020-04-131-0/+33
| | | | Fixes #1500.
* [NFCI] Deduplicate builtin FF cell types listMarcelina Kościelnicka2020-04-091-3/+1
| | | | | | | | | A few passes included the same list of FF cell types. Make it a global const instead. The zinit pass also seems to include a list like that, but given that it seems to be completely broken at the time (see #1568 discussion), I'm going to pretend I didn't see that.
* kernel: big fat patch to use more ID::*, otherwise ID(*)Eddie Hung2020-04-0214-459/+459
|
* Merge pull request #1845 from YosysHQ/eddie/kernel_speedupEddie Hung2020-04-026-23/+23
|\ | | | | kernel: speedup by using more pass-by-const-ref
| * kernel: SigSpec use more const& + overloads to prevent implicit SigSpecEddie Hung2020-03-136-23/+23
| |
* | Merge pull request #1828 from YosysHQ/eddie/celltypes_speedupEddie Hung2020-04-012-17/+35
|\ \ | | | | | | kernel: share a single CellTypes within a pass
| * | Code review fixesEddie Hung2020-03-301-1/+1
| | |
| * | Apply suggestions from code reviewEddie Hung2020-03-301-2/+1
| | | | | | | | | Co-Authored-By: Alberto Gonzalez <61295559+boqwxp@users.noreply.github.com>
| * | kernel: clear some more ShareWorker stateEddie Hung2020-03-261-0/+4
| | |
| * | kernel: share a single CellTypes within a passEddie Hung2020-03-182-17/+32
| |/
* | Merge pull request #1790 from YosysHQ/eddie/opt_expr_xorEddie Hung2020-04-011-3/+37
|\ \ | | | | | | opt_expr: optimise $xor/$xnor/$_XOR_/$_XNOR_ -s with constant inputs
| * | opt_expr: fix failing $xnor testEddie Hung2020-03-201-2/+17
| | |