aboutsummaryrefslogtreecommitdiffstats
path: root/kernel
Commit message (Collapse)AuthorAgeFilesLines
* Pass some more args by reference in select.ccRupert Swarbrick2020-05-271-1/+1
| | | | | | | | | Before this patch, the code passed around std::string objects by value. It's probably not a hot-spot, but it can't hurt to avoid the copying. Removing the copy and clean-up code means the resulting code is ~6.1kb smaller when compiled with GCC 9.3 and standard settings.
* Merge pull request #2059 from boqwxp/logger-vector-to-dictMiodrag Milanović2020-05-212-18/+15
|\ | | | | log: Use `dict` instead of `std::vector<std::pair>` for `log_expect_{error, warning, log}` to better express the intent that each element is unique.
| * log: Use `dict` instead of `std::vector<std::pair>` for `log_expect_{error, ↵Alberto Gonzalez2020-05-152-18/+15
| | | | | | | | warning, log}` to better express the intent that each element is unique.
* | Merge pull request #2046 from PeterCrozier/trapN. Engelhardt2020-05-201-3/+3
|\ \ | | | | | | Extend YS_DEBUGTRAP to MacOS.
| * | Consolidate Linux and Mac version of YS_DEBUGTRAP_IF_DEBUGGING.Peter Crozier2020-05-131-5/+2
| | |
| * | Extend YS_DEBUGTRAP to MacOS.Peter Crozier2020-05-131-1/+4
| |/
* | Add force_downto and force_upto wire attributes.Marcelina Kościelnicka2020-05-191-0/+2
| | | | | | | | Fixes #2058.
* | abc9: use (* abc9_keep *) instead of (* abc9_scc *); apply to $_DFF_?_Eddie Hung2020-05-141-1/+1
| | | | | | | | instead of moving them to $__ prefix
* | timinginfo: ignore $specify2 cells if EN is falseEddie Hung2020-05-141-0/+3
| |
* | abc9_ops: fix bypass boxes using (* abc9_bypass *)Eddie Hung2020-05-141-2/+1
| |
* | kernel: TimingInfo to clamp -ve setup/edge-sensitive delays to zeroEddie Hung2020-05-141-10/+6
| |
* | Revert "Merge branch 'eddie/kernel_makeblackbox' into eddie/abc9_auto_dff"Eddie Hung2020-05-141-1/+0
| | | | | | | | | | This reverts commit e08497c7c9d8a6f7a3eccddf2149c45d9ecff207, reversing changes made to e366fd55122236a21c6daee6765724add840a1f9.
* | kernel: Module::makeblackbox() to clear connections + delete wires lastEddie Hung2020-05-141-0/+1
|/
* Fix clang compiler warningClaire Wolf2020-05-081-2/+2
| | | | Signed-off-by: Claire Wolf <claire@symbioticeda.com>
* Merge pull request #2022 from Xiretza/fallthroughswhitequark2020-05-081-0/+10
|\ | | | | Avoid switch fall-through warnings
| * Add YS_FALLTHROUGH macro to mark case fall-throughXiretza2020-05-071-0/+10
| | | | | | | | | | C++17 introduced [[fallthrough]], GCC and clang had their own vendored attributes before that. MSVC doesn't seem to have such a warning at all.
* | Merge pull request #2005 from YosysHQ/claire/fix1990Claire Wolf2020-05-071-0/+1
|\ \ | |/ |/| Add "nowrshmsk" attribute, fix shift-and-mask bit slice write for signed offset
| * Add "nowrshmsk" attribute, fix shift-and-mask bit slice write for signed ↵Claire Wolf2020-05-021-0/+1
| | | | | | | | | | | | offset, fixes #1990 Signed-off-by: Claire Wolf <claire@symbioticeda.com>
* | frontend: cleanup to use more ID::*, more dict<> instead of map<>Eddie Hung2020-05-041-0/+3
| |
* | Merge pull request #2000 from whitequark/log_error-trapwhitequark2020-05-032-3/+44
|\ \ | |/ |/| kernel: Trap in `log_error()` when a debugger is attached
| * kernel: Trap in `log_error()` when a debugger is attached.whitequark2020-05-032-3/+44
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The workflow of debugging fatal pass errors in Yosys is flawed in three ways: 1. Running Yosys under a debugger is sufficient for the debugger to catch some fatal errors (segfaults, aborts, STL exceptions) but not others (`log_error()`, `log_cmd_error()`). This is neither obvious nor easy to remember. 2. To catch Yosys-specific fatal errors, it is necessary to set a breakpoint at `logv_error_with_prefix()`, or at least, `logv_error()`. This is neither obvious nor easy to remember, and GDB's autocomplete takes many seconds to suggest function names due to the large amount of symbols in Yosys. 3. If a breakpoint is not set and Yosys encounters with such a fatal error, the process terminates. When debugging a crash that takes a long time to reproduce (or a nondeterministic crash) this can waste a significant amount of time. To solve this problem, add a macro `YS_DEBUGTRAP` that acts as a hard breakpoint (if available), and a macro `YS_DEBUGTRAP_IF_DEBUGGING` that acts as a hard breakpoint only if debugger is present. Then, use `YS_DEBUGTRAP_IF_DEBUGGING` in `logv_error_with_prefix()` to obviate the need for a breakpoint on nearly every platform. Co-Authored-By: Alberto Gonzalez <boqwxp@airmail.cc>
* | Add WASI platform support.whitequark2020-04-304-10/+40
| | | | | | | | | | | | | | | | | | | | | | | | This includes the following significant changes: * Patching ezsat and minisat to disable resource limiting code on WASM/WASI, since the POSIX functions they use are unavailable. * Adding a new definition, YOSYS_DISABLE_SPAWN, present if platform does not support spawning subprocesses (i.e. Emscripten or WASI). This definition hides the definition of `run_command()`. * Adding a new Makefile flag, DISABLE_SPAWN, present in the same condition. This flag disables all passes that require spawning subprocesses for their function.
* | Merge pull request #1992 from YosysHQ/eddie/bugpoint_helpEddie Hung2020-04-271-0/+1
|\ \ | | | | | | bugpoint: improve help text
| * | bugpoint: (* keep *) to (* bugpoint_keep *); also apply to modules/cellsEddie Hung2020-04-241-0/+1
| | |
* | | verific: do not assert if wire not found; warn insteadEddie Hung2020-04-231-0/+1
|/ /
* / kernel: Cell::getParam() to throw exception again if not foundEddie Hung2020-04-221-3/+2
|/ | | | As it did before #1945
* Merge pull request #1969 from boqwxp/pool_emplaceEddie Hung2020-04-221-2/+32
|\ | | | | kernel: Add `pool` support for rvalue references and C++11 move semantics.
| * pool: add emplace() functionEddie Hung2020-04-221-0/+6
| |
| * kernel: Rename arguments to rvalue-reference-accepting functions.Alberto Gonzalez2020-04-211-8/+8
| |
| * Add rvalue-reference-accepting `entry_t` constructor for `pool`.Alberto Gonzalez2020-04-201-0/+1
| |
| * In `pool`, construct `entry_t`s in-place and add an ↵Alberto Gonzalez2020-04-201-2/+25
| | | | | | | | rvalue-accepting-and-forwarding `insert()` method.
* | Use default parameter value in getParamMarcelina Kościelnicka2020-04-211-1/+10
| | | | | | | | Fixes #1822.
* | ilang, ast: Store parameter order and default value information.Marcelina Kościelnicka2020-04-212-2/+4
| | | | | | | | Fixes #1819, #1820.
* | idict: Make iterator go forward.Marcelina Kościelnicka2020-04-211-5/+19
|/ | | | Previously, iterating over an idict returned its contents in reverse.
* rtlil: add AttrObject::has_attribute.whitequark2020-04-162-0/+7
|
* rtlil: add AttrObject::{get,set}_string_attribute.whitequark2020-04-162-19/+26
| | | | And make {get,set}_src_attribute use those functions.
* Merge pull request #1896 from boqwxp/read_stdin_replwhitequark2020-04-161-3/+4
|\ | | | | Frontend: allow reading file input from stdin, like a REPL heredoc mode
| * Use script-style heredoc syntax for REPL heredocs.Alberto Gonzalez2020-04-151-7/+7
| |
| * Allow reading file input from stdin, improving REPL experience.Alberto Gonzalez2020-04-151-6/+7
| |
* | Merge pull request #1927 from YosysHQ/eddie/design_remove_assertEddie Hung2020-04-161-0/+1
|\ \ | | | | | | kernel: Design::remove(RTLIL::Module *) to check refcount_modules_
| * | kernel: Design::remove(RTLIL::Module *) to check refcount_modules_Eddie Hung2020-04-141-0/+1
| | |
* | | Merge pull request #1915 from boqwxp/dict_move_semanticswhitequark2020-04-161-4/+68
|\ \ \ | | | | | | | | kernel: Add `dict` support for rvalue references and C++11 move semantics.
| * | | Rename overloaded `insert()` to `emplace()` and add overloaded versions for ↵Alberto Gonzalez2020-04-161-1/+31
| | | | | | | | | | | | | | | | all possible lvalue/rvalue combinationsfor its arguments.
| * | | Add `dict` support for rvalue references and C++11 move semantics.Alberto Gonzalez2020-04-131-4/+38
| |/ /
* | | Merge pull request #1894 from YosysHQ/mingw_fixMiodrag Milanović2020-04-151-0/+4
|\ \ \ | | | | | | | | Fix compile for mingw
| * | | Fix compile for mingwMiodrag Milanovic2020-04-151-0/+4
| | |/ | |/|
* | | Merge pull request #1916 from YosysHQ/eddie/kernel_makeblackboxEddie Hung2020-04-151-0/+2
|\ \ \ | | | | | | | | kernel: Module::makeblackbox() to clear connections too
| * | | kernel: Module::makeblackbox() to clear connections tooEddie Hung2020-04-131-0/+2
| | |/ | |/|
* | | Merge pull request #1830 from boqwxp/qbfsatN. Engelhardt2020-04-151-0/+7
|\ \ \ | |/ / |/| | Add `qbfsat` command to integrate exists-forall solving and specialization
| * | Hole value recovery and specialization implementation for `qbfsat` command.Alberto Gonzalez2020-04-041-0/+7
| | |