Commit Graph

13758 Commits

Author SHA1 Message Date
Krystine Sherwin 6f602e79d4
docs: Debugging macro test fail
Call yosys-config post build extraction for sanity check.
Report absolute path for yosys exe if it can't be found.
2024-05-10 09:51:36 +12:00
Krystine Sherwin 112a5cfc67
ci: Add testing for newer compilers 2024-05-10 09:49:34 +12:00
Krystine Sherwin 6451a6a0dc
ci: Fix action.yml 2024-05-10 09:49:34 +12:00
Krystine Sherwin 3c65ddbea0
ci: Checkout goes first 2024-05-10 09:49:34 +12:00
Krystine Sherwin d07323e7dd
ci: Add action for reusable build env setup 2024-05-10 09:49:34 +12:00
Krystine Sherwin 62440246ec
ci: Add CC_SHORT env var
New Setup Cpp step uses fully qualified paths for $CC and $CXX so ${CC%%-*} no longer works.
Remove os_name since it's not needed anymore.
2024-05-10 09:49:33 +12:00
Krystine Sherwin 616848b773
ci: Use aminya/setup-cpp 2024-05-10 09:49:33 +12:00
Krystine Sherwin 326d802220
ci: split test-compile from test-build 2024-05-10 09:49:33 +12:00
Krystine Sherwin 154464e7ce
ci: add macos test build 2024-05-10 09:45:31 +12:00
Krystine Sherwin c9c6b96ba9
ci: add missing macOS build
`test-macos.yml` included c++17 which was missing in `test-build.yml`.
2024-05-10 09:45:31 +12:00
Krystine Sherwin 9348221154
ci: simplify tests a bit
Remove compiler and cpp_std from `build-yosys` matrix.  Using `config-$CC` will instead fall back to default values.

Drop `Tool versions` step and introduce `yosys-config` output instead.

Rename `test-builds` to `test-compile`.
2024-05-10 09:45:31 +12:00
Krystine Sherwin 8bc206928f
ci: split test build from matrix
Allow test suite to run if, for example, the C++20 builds are failing but C++11 are fine.
2024-05-10 09:45:03 +12:00
Krystine Sherwin f408b4de05
ci: fix compiler setup
`os_name` in include section needs to be explicit (putting it at the end doesn't
apply to the extra jobs).

Move macOS test to extra job instead of doing all gcc/clang (which isn't setup
for mac anyway).

Also adds name to build-yosys task.
2024-05-10 09:43:56 +12:00
Krystine Sherwin aa470ccb47
ci: Unify test-*.yml
Also rename `build-artifact` to use `matrix.os` for compatibility with testing across OS.
2024-05-10 09:43:17 +12:00
Krystine Sherwin e3f77ff11f
ci: Add error reporting 2024-05-10 09:40:12 +12:00
Krystine Sherwin 5ceafea0ec
ci: Default clang build
Switch build artifact to a default clang build.

Testing with the build artifact locally, `make test` is failing with `/lib/x86_64-linux-gnu/libstdc++.so.6: version 'GLIBCXX_3.4.29' not found`.  Using the gcc-11 build (might be?) installing GLIBCXX_3.4.29 but not linking it into the build.  Rather than trying to get it to link, just use the pre-installed `clang` instead.
2024-05-10 09:40:12 +12:00
Krystine Sherwin 93bee0fc3b
ci: more context var use
Also reduce `${{}}` expansion in `run` blocks.
2024-05-10 09:38:49 +12:00
Krystine Sherwin 1ef21efe3f
ci: working on test setup 2024-05-10 09:38:49 +12:00
Krystine Sherwin 2bec6e3e0a
ci: Move iverilog from build to test 2024-05-10 09:38:49 +12:00
Krystine Sherwin 8e2dae21ad
ci: Checkout Yosys 2024-05-10 09:35:04 +12:00
Krystine Sherwin 7873fe791e
Makefile: ignore missing docs
e.g. when calling `make clean` out-of-tree
2024-05-10 09:35:04 +12:00
Krystine Sherwin 69eb39582b
ci: Introduce artifacts
Separates `test-linux` into `build-linux` and `test-linux`, wherein `build-` builds out of tree, and uploading the build for the `test-` job.
Tar compression is done to retain execution permissions when downloading build artifact.
When calling `make test`, override `TARGETS` and `EXTRA_TARGETS` to prevent rebuild.
2024-05-10 09:33:49 +12:00
Emil J. Tywoniak fd84a3378e docs: Document $lut and $sop 2024-05-09 18:31:18 +02:00
Miodrag Milanović 1a54e8d47b
Merge pull request #4379 from QuantamHD/fix_verific
frontend: Fixes verific import around range order
2024-05-09 11:52:34 +02:00
Miodrag Milanović bdce7fac66
Merge pull request #4386 from YosysHQ/micko/check_abc
Modify abc directory content check
2024-05-09 09:44:23 +02:00
Miodrag Milanovic 93148a87df Modify abc directory content check 2024-05-09 09:22:48 +02:00
Miodrag Milanović 514852ae71
Merge pull request #4364 from YosysHQ/krys/skip-duplicate-actions
Reduce action spam when a PR source branch is on YosysHQ/yosys
2024-05-09 08:48:03 +02:00
Krystine Sherwin b9b1da8260
extra-builds.yml: Add skip check to vs-prep 2024-05-09 18:17:04 +12:00
Krystine Sherwin 6df1337d71
ci: Update to Node.JS 20 2024-05-09 18:16:05 +12:00
github-actions[bot] 10686cd2df Bump version 2024-05-09 00:16:31 +00:00
Krystine Sherwin 878ac02179
ci: Add skip check to test-verific 2024-05-09 09:39:27 +12:00
Krystine Sherwin a9eca9072e
ci: Drop emcc 2024-05-09 09:26:43 +12:00
Krystine Sherwin cdce505f82
ci: Add skip check to other actions 2024-05-09 09:26:18 +12:00
Krystine Sherwin 174c7ebf17
extra-builds.yml: Add concurrent_skipping 2024-05-09 09:26:18 +12:00
Krystine Sherwin 7bcef637a4
extra-builds.yml: Fix prereq list 2024-05-09 09:26:17 +12:00
Krystine Sherwin 699049b218
ci: Combine extra build flow yml
Currently only vs.yml and wasi.yml since emscripten is on the chopping block.
Use fkirc/skip-duplicate-actions to skip duplicate action runs.
2024-05-09 09:26:12 +12:00
Ethan Mahintorabi 82a4a87c97
Fixes error with vector indicies of the form [2:7] [-12:7]
Make sure that we correctly adjust the value to align it to a zero
indexed list with lsb = 0

Signed-off-by: Ethan Mahintorabi <ethanmoon@google.com>
2024-05-08 20:29:47 +00:00
Miodrag Milanović b37e8d52ec
Merge pull request #4243 from RCoeurjoly/submodule_abc
Add YosysHQ/abc as a submodule located in abc.
2024-05-08 14:56:05 +02:00
Miodrag Milanović 77dff5a293
Merge pull request #4382 from YosysHQ/micko/pr_template
Add PR template
2024-05-08 13:46:10 +02:00
Miodrag Milanovic f806987d58 Add PR template 2024-05-08 12:00:18 +02:00
Miodrag Milanovic 561618002a Next dev cycle 2024-05-08 09:02:50 +02:00
Miodrag Milanovic c1ad37779e Release version 0.41 2024-05-08 08:52:10 +02:00
Miodrag Milanovic 7ab43dc1b7 Update ABC with Windows fixes 2024-05-08 08:30:30 +02:00
Catherine 1ac00088a6
Merge pull request #4380 from whitequark/cxxrtl-metadata-compression
cxxrtl: reduce stack space used by the `debug_info()` function
2024-05-08 05:48:29 +01:00
Catherine 6e003e1af6 cxxrtl: minimize stack space consumed by `debug_info()`.
This commit uses parameter packs to sink `debug_item()` construction
into the `debug_info()`-specific `add()` overload. This makes the stack
space use sub-linear in typical case rather than linear (which is still
the worst case). Oddly, the stack slots that get allocated now are all
for the `0` literal for `lsb_offset`. This could be fixed by allocating
numbers statically but the existing reduction in stack use of ~98% for
a representative example (Minerva SoC) should be enough.
2024-05-08 03:37:14 +00:00
Catherine 80798daf53 cxxrtl: reduce stack space consumed by `debug_info()` further.
Before this commit, this function would create a temporary `std::string`
per debug item (and scope). After this commit, an additional overload is
used to push that down the call stack. This reduces stack usage by
about 50% more on top of the previous commit.
2024-05-08 02:55:17 +00:00
Catherine 9134cd1928 cxxrtl: reduce stack space consumed by `debug_info()`.
Before this commit, the creation of (constant) attribute maps caused
`debug_info()` (which is built with `__attribute__((optnone))`) to
consume large amounts of stack space; up to tens of megabytes. This
caused problems particularly on macOS, where the default stack size
is 512 KiB.

After this commit, `std::map` objects are no longer created inline in
the `debug_info()` function, but are compiled to and then expanded from
a string literal in a subroutine call. This reduces stack space usage
by about 50%.
2024-05-08 02:55:17 +00:00
Catherine 43ddd89ba5 cxxrtl: fix `escape_c_string` hex literal fiasco.
In C and C++, a `\x` escape sequence consumes as many hexadecimal digits
as there are available, so it is not composable with arbitrary alnum
characters afterwards. An octal escape sequence like `\000` always has
fixed width, avoiding an issue where `\x01c` and `\x1c` produce the same
string.
2024-05-08 02:55:17 +00:00
Roland Coeurjoly 6f9507a16f Add pkg-config 2024-05-08 04:47:40 +02:00
Roland Coeurjoly 1c89e2ab92 Add nix flake and lock file. Add nix build step. Pending nix flake update step 2024-05-08 03:52:12 +02:00