aboutsummaryrefslogtreecommitdiffstats
path: root/passes/opt/opt_expr.cc
Commit message (Collapse)AuthorAgeFilesLines
* opt_expr: Optimize multiplications with low 0 bits in operands.Marcelina Kościelnicka2020-04-131-0/+33
| | | | Fixes #1500.
* kernel: big fat patch to use more ID::*, otherwise ID(*)Eddie Hung2020-04-021-147/+147
|
* Merge pull request #1845 from YosysHQ/eddie/kernel_speedupEddie Hung2020-04-021-4/+4
|\ | | | | kernel: speedup by using more pass-by-const-ref
| * kernel: SigSpec use more const& + overloads to prevent implicit SigSpecEddie Hung2020-03-131-4/+4
| |
* | Merge pull request #1828 from YosysHQ/eddie/celltypes_speedupEddie Hung2020-04-011-3/+3
|\ \ | | | | | | kernel: share a single CellTypes within a pass
| * | Code review fixesEddie Hung2020-03-301-1/+1
| | |
| * | kernel: share a single CellTypes within a passEddie Hung2020-03-181-3/+3
| |/
* | 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
| |/
* | 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
|/
* Fix opt_expr.eqneq.cmpzero debug printAlyssa Milburn2019-12-151-1/+1
|
* Fix handling of z_digit "?" and fix optimization of cmp with "z"Clifford Wolf2019-09-131-0/+4
| | | | Signed-off-by: Clifford Wolf <clifford@clifford.at>
* Copy-paste typoEddie Hung2019-08-221-1/+1
|
* Respect opt_expr -keepdc as per @cliffordwolfEddie Hung2019-08-221-1/+1
|
* Handle $shift and Y_WIDTH > 1 as per @cliffordwolfEddie Hung2019-08-221-4/+8
|
* Add cover()Eddie Hung2019-08-221-0/+1
|
* Canonical formEddie Hung2019-08-221-5/+5
|
* opt_expr to trim A port of $shiftx if Y_WIDTH == 1Eddie Hung2019-08-211-0/+17
|
* Merge pull request #1283 from YosysHQ/clifford/fix1255Clifford Wolf2019-08-171-1/+2
|\ | | | | Fix various NDEBUG compiler warnings
| * Merge branch 'master' into clifford/fix1255Clifford Wolf2019-08-151-356/+404
| |\
| * | Fix various NDEBUG compiler warnings, closes #1255Clifford Wolf2019-08-131-1/+2
| | | | | | | | | | | | Signed-off-by: Clifford Wolf <clifford@clifford.at>
* | | Use ID::keep more liberally tooEddie Hung2019-08-151-1/+1
| | |
* | | Use more ID::{A,B,Y,blackbox,whitebox}Eddie Hung2019-08-151-159/+159
| | |
* | | FixEddie Hung2019-08-151-2/+2
| | |
* | | Convert a few more to IDEddie Hung2019-08-151-20/+20
| |/ |/|
* | Merge branch 'master' into clifford/idsClifford Wolf2019-08-151-1/+49
|\ \
| * | Merge remote-tracking branch 'origin/master' into eddie/fix_1262Eddie Hung2019-08-111-35/+30
| |\|
| * | Wrong way aroundEddie Hung2019-08-101-2/+2
| | |
| * | cover_list -> cover as per @cliffordwolfEddie Hung2019-08-101-2/+2
| | |
| * | GrammarEddie Hung2019-08-091-1/+1
| | |
| * | Separate $alu handlingEddie Hung2019-08-091-7/+50
| | |
| * | opt_expr -fine to trim LSBs of $alu tooEddie Hung2019-08-091-4/+9
| | |
* | | Use ID() macro in all of passes/opt/Clifford Wolf2019-08-111-360/+360
| |/ |/| | | | | | | | | | | | | | | | | 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>
* | Merge remote-tracking branch 'origin/master' into eddie/cleanupEddie Hung2019-08-071-0/+25
|\|
| * Move LSB-trimming functionality from wreduce to opt_exprEddie Hung2019-08-061-0/+25
| |
* | Cleanup opt_expr.ccEddie Hung2019-08-061-35/+30
|/
* Improve opt_expr and opt_clean handling of (partially) undriven and/or ↵Clifford Wolf2019-05-031-4/+9
| | | | | | unused wires, fixes #981 Signed-off-by: Clifford Wolf <clifford@clifford.at>
* Add handling of init attributes in "opt_expr -undriven"Clifford Wolf2019-04-301-2/+41
| | | | Signed-off-by: Clifford Wolf <clifford@clifford.at>
* Add log_debug() frameworkClifford Wolf2019-04-221-34/+45
| | | | Signed-off-by: Clifford Wolf <clifford@clifford.at>
* Improve handling of and-with-1 and or-with-0 in opt_expr, fixes #327Clifford Wolf2019-03-141-0/+7
| | | | Signed-off-by: Clifford Wolf <clifford@clifford.at>
* Merge pull request #770 from whitequark/opt_expr_cmpClifford Wolf2019-01-021-97/+134
|\ | | | | opt_expr: refactor and improve simplification of comparisons
| * opt_expr: improve simplification of comparisons with large constants.whitequark2019-01-021-70/+47
| | | | | | | | | | | | | | | | | | | | | | | | The idea behind this simplification is that a N-bit signal X being compared with an M-bit constant where M>N and the constant has Nth or higher bit set, it either always succeeds or always fails. However, the existing implementation only worked with one-hot signals for some reason. It also printed incorrect messages. This commit adjusts the simplification to have as much power as possible, and fixes other bugs.
| * opt_expr: refactor simplification of unsigned X<onehot and X>=onehot. NFCI.whitequark2019-01-021-31/+37
| |
| * opt_expr: refactor simplification of signed X>=0 and X<0. NFCI.whitequark2019-01-021-24/+26
| |
| * opt_expr: simplify any unsigned comparisons with all-0 and all-1.whitequark2019-01-021-17/+69
| | | | | | | | | | | | Before this commit, only unsigned comparisons with all-0 would be simplified. This commit also makes the code handling such comparisons to be more rigorous and not abort on unexpected input.