Commit Graph

13653 Commits

Author SHA1 Message Date
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
Ethan Mahintorabi c039da2ec1
renames variables for more code clairty
Signed-off-by: Ethan Mahintorabi <ethanmoon@google.com>
2024-05-08 01:09:52 +00:00
Ethan Mahintorabi a2c1b268d9
frontend: Fixes verific import around range order
Test Case
```
module packed_dimensions_range_ordering (
    input  wire [0:4-1] in,
    output wire [4-1:0] out
);
  assign out = in;
endmodule : packed_dimensions_range_ordering

module instanciates_packed_dimensions_range_ordering (
    input  wire [4-1:0] in,
    output wire [4-1:0] out
);
  packed_dimensions_range_ordering U0 (
      .in (in),
      .out(out)
  );
endmodule : instanciates_packed_dimensions_range_ordering
```

```
// with verific, does not pass formal
module instanciates_packed_dimensions_range_ordering(in, out);
  input [3:0] in;
  wire [3:0] in;
  output [3:0] out;
  wire [3:0] out;

  assign out = { in[0], in[1], in[2], in[3] };
endmodule

// with surelog, passes formal
module instanciates_packed_dimensions_range_ordering(in, out);
  input [3:0] in;
  wire [3:0] in;
  output [3:0] out;
  wire [3:0] out;

  assign out = in;
endmodule
```

Signed-off-by: Ethan Mahintorabi <ethanmoon@google.com>
2024-05-08 01:00:06 +00:00
Catherine 7294d8b5af cxxrtl: fix close of invalid fd in spool destructor. 2024-05-08 00:46:10 +00:00
github-actions[bot] ce45011275 Bump version 2024-05-08 00:13:52 +00:00
Roland Coeurjoly 6d181c29ce Checking different cases for abc 2024-05-08 00:32:18 +02:00