aboutsummaryrefslogtreecommitdiffstats
path: root/passes/opt/opt_share.cc
Commit message (Collapse)AuthorAgeFilesLines
* Add flooring division operatorXiretza2020-05-281-2/+2
| | | | | | | | | | 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-281-2/+2
| | | | | | | | | | | 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.
* kernel: big fat patch to use more ID::*, otherwise ID(*)Eddie Hung2020-04-021-16/+16
|
* opt_share: Fix handling of fine cells.Marcin Kościelnicki2019-11-271-4/+11
| | | | Fixes #1525.
* passes: opt_share: don't statically initialize mergeable_type_mapSean Cross2019-09-091-3/+4
| | | | | | | | | | | | In 3d3779b0376b8204ed7637053176a07b7271ac1d this got turned from a `std::map<std::string, std::string>` to `std::map<IdString, IdString>`. Consequently, this exposed some initialization sequencing issues (#1361). Only initialize the map when it's first used, to avoid these static issues. This fixes #1361. Signed-off-by: Sean Cross <sean@xobs.io>
* ID({A,B,Y}) -> ID::{A,B,Y} for opt_share.ccEddie Hung2019-08-191-30/+30
|
* Use ID() macroEddie Hung2019-08-161-118/+110
|
* Fix wrong results when opt_share called before opt_cleanBogdan Vukobratovic2019-08-071-18/+14
|
* Support various binary operators in opt_shareBogdan Vukobratovic2019-08-041-194/+392
|
* Fix spacing in opt_share tests, change wording in opt_share helpBogdan Vukobratovic2019-08-031-6/+10
|
* Reimplement opt_share to work on $alu and $pmuxBogdan Vukobratovic2019-07-281-95/+225
|
* Implement opt_shareBogdan Vukobratovic2019-07-261-0/+329
| | | | | | This pass identifies arithmetic operators that share an operand and whose results are used in mutually exclusive cases controlled by a multiplexer, and merges them together by multiplexing the other operands
* Renamed opt_share to opt_mergeClifford Wolf2016-03-311-341/+0
|
* Bugfix for cell hash cache option in opt_share.Mingyu Gao2015-08-111-0/+2
|
* Fixed trailing whitespacesClifford Wolf2015-07-021-3/+3
|
* Added opt_share -share_allClifford Wolf2015-05-311-10/+21
|
* Using design->selected_modules() in opt_*Clifford Wolf2015-02-031-4/+2
|
* bugfix in opt_shareClifford Wolf2014-12-281-0/+1
|
* Renamed hashmap.h to hashlib.h, some related improvementsClifford Wolf2014-12-281-1/+1
|
* More hashtable finetuningClifford Wolf2014-12-271-1/+1
|
* Replaced std::unordered_map as implementation for Yosys::dictClifford Wolf2014-12-261-1/+1
|
* Added Yosys::{dict,nodict,vector} container typesClifford Wolf2014-12-261-7/+11
|
* Added support for "keep" on modulesClifford Wolf2014-09-291-1/+1
|
* namespace YosysClifford Wolf2014-09-271-0/+4
|
* Using std::vector<RTLIL::State> instead of RTLIL::Const for ↵Clifford Wolf2014-09-011-1/+1
| | | | RTLIL::SigChunk::data
* Added design->scratchpadClifford Wolf2014-08-301-2/+2
|
* RIP $safe_pmuxClifford Wolf2014-08-141-1/+0
|
* More cleanups related to RTLIL::IdString usageClifford Wolf2014-08-021-4/+4
|
* Replaced sha1 implementationClifford Wolf2014-08-011-6/+1
|
* Renamed port access function on RTLIL::Cell, added param access functionsClifford Wolf2014-07-311-3/+3
|
* Using log_assert() instead of assert()Clifford Wolf2014-07-281-1/+0
|
* Refactoring: Renamed RTLIL::Design::modules to modules_Clifford Wolf2014-07-271-1/+1
|
* Refactoring: Renamed RTLIL::Module::cells to cells_Clifford Wolf2014-07-271-2/+2
|
* Refactoring: Renamed RTLIL::Module::wires to wires_Clifford Wolf2014-07-271-1/+1
|
* Manual fixes for new cell connections APIClifford Wolf2014-07-261-1/+1
|
* Changed users of cell->connections_ to the new API (sed command)Clifford Wolf2014-07-261-8/+8
| | | | | | | | | git grep -l 'connections_' | xargs sed -i -r -e ' s/(->|\.)connections_\["([^"]*)"\] = (.*);/\1set("\2", \3);/g; s/(->|\.)connections_\["([^"]*)"\]/\1get("\2")/g; s/(->|\.)connections_.at\("([^"]*)"\)/\1get("\2")/g; s/(->|\.)connections_.push_back/\1connect/g; s/(->|\.)connections_/\1connections()/g;'
* Renamed RTLIL::{Module,Cell}::connections to connections_Clifford Wolf2014-07-261-8/+8
|
* Use only module->addCell() and module->remove() to create and delete cellsClifford Wolf2014-07-251-2/+1
|
* SigSpec refactoring: using the accessor functions everywhereClifford Wolf2014-07-221-1/+1
|
* SigSpec refactoring: renamed chunks and width to __chunks and __widthClifford Wolf2014-07-221-1/+1
|
* Improved handling of reg init in opt_share and opt_rmdffClifford Wolf2014-02-041-0/+19
|
* Improved opt_share for reduce cellsClifford Wolf2013-03-291-0/+20
|
* Improved opt_share for commutative standard cellsClifford Wolf2013-03-291-1/+28
|
* Added help messages for opt_* passesClifford Wolf2013-03-011-1/+14
|
* Moved stand-alone libs to libs/ directory and added libs/subcircuitClifford Wolf2013-02-271-1/+1
|
* initial importClifford Wolf2013-01-051-0/+250