aboutsummaryrefslogtreecommitdiffstats
path: root/passes/opt
Commit message (Collapse)AuthorAgeFilesLines
* Merge pull request #720 from whitequark/masterClifford Wolf2018-12-161-1/+1
|\ | | | | lut2mux: handle 1-bit INIT constant in $lut cells
| * opt_lut: simplify type conversion. NFC.whitequark2018-12-051-1/+1
| |
* | opt_lut: leave intact LUTs with cascade feeding module outputs.whitequark2018-12-071-0/+6
| |
* | opt_lut: show original truth table for both cells.whitequark2018-12-071-2/+3
| |
* | opt_lut: add -limit option, for debugging misoptimizations.whitequark2018-12-071-3/+21
| |
* | Bugfix in opt_expr handling of a<0 and a>=0Clifford Wolf2018-12-061-1/+1
|/ | | | Signed-off-by: Clifford Wolf <clifford@clifford.at>
* Rename opt_lut.cpp to opt_lut.ccClifford Wolf2018-12-051-0/+0
| | | | Signed-off-by: Clifford Wolf <clifford@clifford.at>
* opt_lut: add -dlogic, to avoid disturbing logic such as carry chains.whitequark2018-12-051-17/+163
|
* opt_lut: always prefer to eliminate 1-LUTs.whitequark2018-12-051-19/+41
| | | | | These are always either buffers or inverters, and keeping the larger LUT preserves more source-level information about the design.
* opt_lut: collect and display statistics.whitequark2018-12-051-4/+33
|
* opt_lut: refactor to use a worker. NFC.whitequark2018-12-051-170/+177
|
* opt_lut: new pass, to combine LUTs for tighter packing.whitequark2018-12-052-0/+275
|
* Add iteration limit to "opt_muxtree"Clifford Wolf2018-11-201-1/+17
| | | | Signed-off-by: Clifford Wolf <clifford@clifford.at>
* Consistent use of 'override' for virtual methods in derived classes.Henner Zeller2018-07-2011-24/+24
| | | | | | | | | 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 optimization of tristate buffer with constant control inputClifford Wolf2018-05-121-0/+17
| | | | Signed-off-by: Clifford Wolf <clifford@clifford.at>
* Fix opt_rmdff handling of $dlatchsrClifford Wolf2018-02-261-0/+3
| | | | Signed-off-by: Clifford Wolf <clifford@clifford.at>
* Add $allconst and $allseq cell typesClifford Wolf2018-02-231-0/+2
| | | | Signed-off-by: Clifford Wolf <clifford@clifford.at>
* Add warnings for driver-driver conflicts between FFs (and other cells) and ↵Clifford Wolf2017-12-121-1/+8
| | | | constants
* Fix memory corruption bug in opt_rmdffClifford Wolf2017-10-261-0/+3
|
* Fix typo in opt_clean log messageClifford Wolf2017-10-261-1/+1
|
* Revert 90be0d8 as it causes endless loops for some designsClifford Wolf2017-10-141-1/+0
|
* Fix input vector for reduce cells.Kaj Tuomi2017-10-121-0/+1
|
* Minor changes to opt_demorgan requested during code reviewAndrew Zonenberg2017-09-142-18/+18
|
* Initial version of opt_demorgan is functioning for AND/OR gates. Not the ↵Andrew Zonenberg2017-09-122-0/+203
| | | | prettiest results for bus inputs, but this can be improved
* Don't track , ... contradictions through x/z-bitsClifford Wolf2017-08-251-1/+4
|
* Add removing of redundant pairs of bits in ==, ===, !=, and !== to opt_exprClifford Wolf2017-08-251-0/+72
|
* Mostly coding style related fixes in rmports passClifford Wolf2017-08-151-30/+33
|
* rmports: Now remove ports from cell instances if we optimized them out of ↵Andrew Zonenberg2017-08-141-2/+35
| | | | that cell
* ProcessModule is no longer virtual (why was it in the first place?)Andrew Zonenberg2017-08-141-1/+1
|
* rmports now works on all modules in the design, not just the top.Andrew Zonenberg2017-08-141-4/+7
|
* Updated Makefile to reflect opt_rmports being renamed to rmportsAndrew Zonenberg2017-08-141-1/+1
|
* Renamed opt_rmports pass to rmportsAndrew Zonenberg2017-08-141-5/+5
|
* Improved handling of constant connections in opt_rmportsAndrew Zonenberg2017-08-141-0/+2
|
* Fixed handling of cell ports that aren't wiresAndrew Zonenberg2017-08-141-0/+3
|
* opt_rmports: Fixed incorrect handling of multi-bit netsAndrew Zonenberg2017-08-141-12/+27
|
* Removed commented out debug codeAndrew Zonenberg2017-08-141-4/+0
|
* Added opt_rmports pass (remove unconnected ports from top-level modules)Andrew Zonenberg2017-08-142-0/+133
|
* Add support for set-reset cell variants to opt_rmdffClifford Wolf2017-08-091-0/+182
|
* Add handling of constant reset signals to opt_rmdffClifford Wolf2017-08-061-1/+23
|
* Add consolidation of init attributes to opt_clean, some opt_clean log fixesClifford Wolf2017-07-291-6/+82
|
* Add "opt_expr -fine" feature to remove neutral bits from reduce and logic ↵Clifford Wolf2017-07-261-0/+47
| | | | operators
* Excluded $_TBUF_ from opt_merge passSalvador E. Tropea2017-07-031-0/+1
|
* Fix and_or_buffer optimization in opt_expr for signed operatorsClifford Wolf2017-07-011-2/+2
|
* Add $tribuf to opt_merge blacklistClifford Wolf2017-06-301-0/+1
|
* Squelch trailing whitespaceLarry Doolittle2017-04-121-3/+3
|
* Disable opt_merge for $anyseq and $anyconstClifford Wolf2017-02-281-0/+3
|
* Add $live and $fair cell types, add support for s_eventually keywordClifford Wolf2017-02-251-1/+1
|
* Fixed some "used uninitialized" warnings in opt_exprClifford Wolf2017-02-111-1/+2
|
* Add optimization of (a && 1'b1) and (a || 1'b0)Clifford Wolf2017-02-111-7/+22
|
* Fix issue #306, "Bug in opt -full"C-Elegans2017-02-101-1/+19
| | | | | | Add check for whether the high bit in the constant expression is greater than the width of the variable, and optimizes that to a constant 1 or 0