aboutsummaryrefslogtreecommitdiffstats
path: root/passes/opt
Commit message (Collapse)AuthorAgeFilesLines
...
* 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
| | |
| * | opt_expr: fix missing braceEddie Hung2020-03-201-2/+4
| | |
| * | opt_expr: extend to $xnor and $_XNOR_Eddie Hung2020-03-191-8/+12
| | |
| * | opt_expr: optimise 1-bit $xor or $_XOR_ with constant inputEddie Hung2020-03-191-1/+14
| |/
* | Merge pull request #1789 from YosysHQ/eddie/opt_expr_aluEddie Hung2020-04-011-19/+51
|\ \ | | | | | | opt_expr: improve performance on $alu and $sub
| * | opt_expr: remove redundantEddie Hung2020-03-191-3/+0
| | |
| * | opt_expr: optimise $sub when both A[i] and B[i] == 1'b1Eddie Hung2020-03-191-9/+20
| | |
| * | opt_expr: optimise for identity $alu-s just like $add/$subEddie Hung2020-03-191-7/+31
| |/
* | opt_merge: unordered_map -> dict as per @cliffordwolf reviewEddie Hung2020-03-161-1/+1
| |
* | opt_merge: speedupEddie Hung2020-03-161-132/+102
|/
* 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
|
* Merge pull request #1576 from YosysHQ/eddie/opt_merge_initEddie Hung2020-02-051-1/+16
|\ | | | | opt_merge: discard \init of '$' cells with 'Q' port when merging