Commit Graph

218 Commits

Author SHA1 Message Date
John Demme 660c6d41e7
[ESI Runtime] Distribute headers along with wheel (#7400)
- Include headers in Python wheel
- Bump the Linux wheel build image to avoid _GLIBCXX_USE_CXX11_ABI
  linking issues
- Add cmake file which exports built library
2024-07-29 10:20:34 -07:00
John Demme a4730e5531 [PyCDE] fixing another workflow issue
Oops. Missed a spot!
2024-07-25 19:47:41 +02:00
John Demme c09e5e4fc9 [PyCDE] Fix publishing workflow 2024-07-25 19:05:58 +02:00
Hideto Ueno e8033f1928
[CI][lit] Enable roundtrip tests in CI (#7377)
This PR adds a round trip tests In CI. This could slightly increase the test time but it's
ignorable compared to build time. 

cf. a6d09d4b1a

Close https://github.com/llvm/circt/issues/5272
2024-07-24 01:16:58 +09:00
Robert Young 53a7802608
[CI] Correctly detect when clang-tidy fails (#7355) 2024-07-22 15:34:50 -04:00
John Demme 6aa8f9e8f8
[ESI][Runtime] Publish Windows wheels (#7363)
DLLs have to be installed to different locations on Windows.
2024-07-22 06:24:27 -07:00
Jack Koenig e9e5a6c7e9
[CI] Drop macos-11 runners, use macos-12 in uploadReleaseArtifacts (#7319) 2024-07-12 15:55:07 -07:00
John Demme 462f6b5934
[ESI] Remove last references to capnp (#7315)
The cosim document was 90% out of date. Added a note regarding
documentation status.
2024-07-12 06:36:10 -07:00
John Demme 551e1382bd
[CI] Revert to working image and disable ESI runtime (#7237)
Disable ESI runtime build until #7236 can be figured out.
2024-06-25 22:03:20 -07:00
John Demme 88eeb265f4
[ESI Runtime] Replace Cap'nProto with gRPC (#7217)
After spending a truly obnoxious amount of time fighting capnp and
libkj, we made the decision to switch to another RPC system. We're no
longer modeling and serializing message types in Capnp and we don't need
the performance which capnp/libkj RPC promises, so there's really no
need for the additional complexity. A slower system which is thread safe
should work fine.

This commit breaks the build in a pretty horrible way and is not
intended to be merged on its own. It simply breaks up the diff.
2024-06-21 14:22:54 -07:00
Hideto Ueno 45736b3f48 [CI] Run CI Cache GC more often and remove windows-key as well 2024-06-21 01:32:45 -07:00
Hideto Ueno 13ba02f9e0 [CI] Set `actions: write` permission to GarbageCollectCICache github action
Also update the bash script
2024-06-19 23:30:50 -07:00
Hideto Ueno 40992c0e6a [CI] Actually remove cache for short integration tests
The github action looks working fine so actually turn on.
https://github.com/llvm/circt/actions/runs/9592557284/job/26451332772

This commit also increases the number to prevent erasing too much
2024-06-19 23:20:50 -07:00
Hideto Ueno 1aa88e33b6
[CI] Add a job to remove cache created by short integrations tests (#7214)
This PR adds a CI job that deletes caches created by short integrations tests. Almost 10GB is used by short integrations test and I think it's sufficient to have keep most recent ones. By doing that we should be able to keep cache for nightly-integration tests. This PR adds CI job that calls `gh cache delete $id` for results of `gh cache list -k ccache-short-clang-Release-ON-ON`.   

```
gh cache list -k ccache-short-clang-Release-ON-ON -L 50

Showing 27 of 27 caches in llvm/circt

ID     KEY                                         SIZE        CREATED               ACCESSED
66695  ccache-short-clang-Release-ON-ON-2024-0...  360.61 MiB  about 10 minutes ago  about 10 minutes ago
66694  ccache-short-clang-Release-ON-ON-2024-0...  360.33 MiB  about 15 minutes ago  about 15 minutes ago
66665  ccache-short-clang-Release-ON-ON-2024-0...  357.96 MiB  about 13 hours ago    about 22 minutes ago
66692  ccache-short-clang-Release-ON-ON-2024-0...  359.77 MiB  about 1 hour ago      about 1 hour ago
66675  ccache-short-clang-Release-ON-ON-2024-0...  354.45 MiB  about 8 hours ago     about 8 hours ago
66674  ccache-short-clang-Release-ON-ON-2024-0...  358.33 MiB  about 8 hours ago     about 8 hours ago
66673  ccache-short-clang-Release-ON-ON-2024-0...  359.41 MiB  about 8 hours ago     about 8 hours ago
66672  ccache-short-clang-Release-ON-ON-2024-0...  358.70 MiB  about 9 hours ago     about 8 hours ago
66667  ccache-short-clang-Release-ON-ON-2024-0...  358.85 MiB  about 11 hours ago    about 11 hours ago
66663  ccache-short-clang-Release-ON-ON-2024-0...  359.24 MiB  about 16 hours ago    about 13 hours ago
66664  ccache-short-clang-Release-ON-ON-2024-0...  381.06 MiB  about 13 hours ago    about 13 hours ago
66597  ccache-short-clang-Release-ON-ON-2024-0...  357.85 MiB  about 1 day ago       about 14 hours ago
66650  ccache-short-clang-Release-ON-ON-2024-0...  374.79 MiB  about 21 hours ago    about 16 hours ago
66661  ccache-short-clang-Release-ON-ON-2024-0...  376.57 MiB  about 17 hours ago    about 17 hours ago
66660  ccache-short-clang-Release-ON-ON-2024-0...  375.24 MiB  about 17 hours ago    about 17 hours ago
66659  ccache-short-clang-Release-ON-ON-2024-0...  377.82 MiB  about 17 hours ago    about 17 hours ago
66609  ccache-short-clang-Release-ON-ON-2024-0...  354.95 MiB  about 1 day ago       about 17 hours ago
66658  ccache-short-clang-Release-ON-ON-2024-0...  359.28 MiB  about 17 hours ago    about 17 hours ago
66651  ccache-short-clang-Release-ON-ON-2024-0...  358.97 MiB  about 20 hours ago    about 17 hours ago
66657  ccache-short-clang-Release-ON-ON-2024-0...  375.18 MiB  about 19 hours ago    about 19 hours ago
66656  ccache-short-clang-Release-ON-ON-2024-0...  364.31 MiB  about 20 hours ago    about 20 hours ago
66655  ccache-short-clang-Release-ON-ON-2024-0...  369.52 MiB  about 20 hours ago    about 20 hours ago
66654  ccache-short-clang-Release-ON-ON-2024-0...  363.87 MiB  about 20 hours ago    about 20 hours ago
66653  ccache-short-clang-Release-ON-ON-2024-0...  369.72 MiB  about 20 hours ago    about 20 hours ago
66652  ccache-short-clang-Release-ON-ON-2024-0...  374.89 MiB  about 20 hours ago    about 20 hours ago
66647  ccache-short-clang-Release-ON-ON-2024-0...  374.50 MiB  about 21 hours ago    about 21 hours ago
66649  ccache-short-clang-Release-ON-ON-2024-0...  361.49 MiB  about 21 hours ago    about 21 hours ago
```
2024-06-20 15:16:20 +09:00
Andrew Lenharth 6b6855910a [NFC] Add more clang options. From my reading of the docker file, most of them don't actually work since most clang versions are not installed. But regardless, do this in anticipation of different clang versions 2024-06-17 14:35:48 -05:00
Will Dietz 53abd04cac [CI][NFC] Remove duplicate LLVM_PARALLEL_LINK_JOBS 2024-06-06 14:30:52 -05:00
Will Dietz a7bd8da352 Remove LLVM_ENABLE_TERMINFO from cmake invocations.
Harmless to specify but no longer needed as the option has been removed.

852aaf5407
2024-06-06 14:30:40 -05:00
Andrew Lenharth bf2487161f
Capitalize Mode in github workflow. (#7140)
* Capitalize Mode in github workflow.  This might fix a new breakage on the gcc build complaining about DCMAKE_BUILD_TYPE

* audited for more instances
2024-06-06 08:59:20 -05:00
John Demme d3ebc7f19d [ESI][Runtime] Fix publishing job in workflow
Download and upload artifacts have to match
2024-05-21 01:14:42 +00:00
John Demme 2ba19927f3
[PyCDE] Move build and publishing pipeline into repo (#7062)
Previously was built and published internally. Resolves #1509.
2024-05-20 17:37:07 -07:00
John Demme f0bd31ec7d [ESI][Runtime] Resolve warnings on publishing workflow 2024-05-18 03:21:37 +00:00
John Demme cb5e09ac21 [pycde] Add publish pipeline to CIRCT repo
This is just a starting place for debugging. In order to get the
workflow added to the repo, it must exist in main. Debugging will happen
on a branch.
2024-05-17 18:08:09 +00:00
Fabian Schuiki 719bbfde79
[CAPI] Add circt-capi target and build it in CI (#7017)
Add a `circt-capi` target that depends on all C API libraries. Introduce
a new `add_circt_public_c_api_library` CMake function that wraps around
the MLIR equivalent, but also adds a dependency from `circt-capi`. Make
at least the short integration tests CI job build the `circt-capi`
target to ensure it has a bit of CI coverage.
2024-05-09 11:21:33 -07:00
John Demme 7c108d6387
[ESI][Runtime][Publish pipeline] cibuildwheel doesn't yet support py 3.13
Since cibuildwheel doesn't yet support Python 3.13, comment it out until support gets added.
2024-03-06 17:35:44 -08:00
Schuyler Eldridge 2b68d16b04
[ci][nfc] Clarify name of uploadWheels job
Remove possibly confusing language on the conditions for why a wheel was
uploaded.  This can happen for several reasons. However, this is too much
to enumerate in the job name since this can now be triggered by request
from a 'workflow_dispatch' event.

Signed-off-by: Schuyler Eldridge <schuyler.eldridge@sifive.com>
2024-03-02 20:54:39 -05:00
Schuyler Eldridge 0fb7636ed5
[ci] Allow uploading wheels from workflow_dispatch
Add an input to the workflow_dispatch even of the "Upload Wheels" GitHub
Action workflow.  This is done to enable a user to build the wheels and
upload them without having to wait for a weekly release to do this or
having to ask somebody with the keys to do the upload for them.

Signed-off-by: Schuyler Eldridge <schuyler.eldridge@sifive.com>
2024-03-02 20:51:19 -05:00
John Demme 10562214dc [ESI][Runtime] Include license, classifiers, and build for 3.13 2024-02-28 18:26:26 +00:00
John Demme 8a10c504e8
[ESI][Runtime] Build and publish wheels (#6763)
Make the publishing pipeline actually work to produce wheels for multiple python versions.
2024-02-28 09:04:50 -08:00
John Demme 872a1f36f7 [ESI][Runtime] Wheel build workflow
Pushing draft workflow to create it in the actions UI.
2024-02-28 03:46:46 +00:00
John Demme 017bf548dc [CI] Bump the image versions on CI and integration tests
To accomodate upcoming slang 4 builds. Changes the version of clang in
the integration tests to 16.
2024-02-13 22:14:41 +00:00
Hideto Ueno ff43c0a318
Add statically linked CIRCT full build to ReleaseArtifact CI (#6544)
shared build seems to require a specific version of glibc and causes a build failure of downstream tools. This PR adds -static tarball to the artifact.
2024-02-08 23:13:43 +09:00
Fabian Schuiki fb58da42cb
[ImportVerilog] Disable Slang frontend in MSVC CI builds
MSVC fails to build the Slang 3 dependency due to issues in Slang's
`MathUtils.h`. (The file is missing an `#include <limits>`.) Since we
are planning to upgrade to Slang 4 or 5 anyway, don't bother setting up
a full workaround for this issue yet and instead just disable Slang in
MSVC CI builds and installs. Once the Verilog frontend integration
matures and we update Slang, we can go back in and enable MSVC builds
again.
2024-01-30 16:16:56 -08:00
Fabian Schuiki 3d8b7d08d9
[ImportVerilog] Add Slang frontend dependency (#6620)
This is the first PR in a longer chain that adds basic SV support to
CIRCT.

Add the Slang Verilog frontend as a CIRCT dependency. This will be the
foundation for CIRCT's Verilog parsing, elaboration, type checking, and
lowering to the core dialects. By default, Slang is built as a static
library from scratch, which is then linked into the new `ImportVerilog`
conversion. Alternatively, CIRCT can also be linked against a local
Slang installation provided by the system.

Add the `ImportVerilog` conversion library. This library statically
links in the Slang dependency and wraps it in an exception-safe,
LLVM-style API. Currently this only consists of the `getSlangVersion`
function and the necessary linking flags to get it to link statically
against Slang.

Add the `circt-verilog` tool, which will provide a fully-flegded
interface to the new `ImportVerilog` library. Later on we'll also add an
MLIR translation library for single-file SV import. But in general, SV
builds take a lot of command line options (macros, search paths, etc.)
and multiple input files, which is why we have a dedicated tool. All the
tool does at the moment is print the linked Slang version. More to come.

Note that this intentionally links against **version 3** of Slang. Newer
versions are available -- 4 and 5 as of this commit -- but they rely on
fairly new C++ compiler features that didn't work out of the box in our
CI images. We'll eventually want to upgrade, but for now Slang 3 is
sufficient to get the ball rolling.

See https://github.com/MikePopoloski/slang for details on Slang.

Co-authored-by: ShiZuoye <albertethon@163.com>
Co-authored-by: hunterzju <hunter_ht@zju.edu.cn>
Co-authored-by: 孙海龙 <hailong.sun@terapines.com>
2024-01-30 13:22:00 -08:00
Mike Urbach 8801f42463 [NFC] Rename Python wheel job name from Nightly to Weekly.
We have changed the job to run weekly to avoid running out of space in
PyPI. This just updates the job name to reflect that.
2024-01-25 13:09:56 -07:00
John Demme f2428b995f Revert "[Builds] Revert back to small runners (#6586)"
This reverts commit 34489a17f0.
2024-01-17 05:18:35 +00:00
John Demme 34489a17f0
[Builds] Revert back to small runners (#6586)
Self-hosted runners were disabled in our repo, so none of our builds are
being picked up. Going back to the slow ones (with less disk space)
while we figure out the situation.
2024-01-16 19:22:53 -08:00
Mike Urbach 392af2fe5e [Python] Reduce wheel matrix and scheduled frequency.
We are running out of space in PyPI, so this removes support for
versions Python 3.9 and Python 3.11, which are not used by anyone in
the community at the moment. It also reduces the scheduled frequency
of dev wheel builds from nightly to every Monday at noon UTC.
2024-01-10 12:06:28 -07:00
Will Dietz c8a2514e05
[CI] Add options to control whether workflow_dispatch assert + build mode. (#6549) 2024-01-05 09:16:24 -06:00
Will Dietz 78d41a865b
[CI] Bump runner for windows release artifacts 2019 -> 2022. (#6548)
Match what we use in CI.
2024-01-04 11:49:03 -06:00
Will Dietz c6e413918e [CI] buildAndTestWindows: Set "write" permission to unbreak for now. 2024-01-04 11:15:16 -06:00
Will Dietz 0d95605d1e
[CI] Fix release asset upload job permissions, support manual runs. (#6547)
Give write permissions to jobs that upload release assets.
Set the release-tag explicitly so the upload action knows where to upload on manual runs (on a tag). When triggered by a release this isn't needed but doesn't hurt.

Bump the upload-release-assets action v2 -> v3: https://github.com/AButler/upload-release-assets/releases/tag/v3.0
(This is needed for the release-tag support, also fixes a warning about node version).
2024-01-04 10:58:58 -06:00
Mike Urbach 2e70f2e052 [Python] Enable trusted publishing for PyPI wheels.
This is the recommended way to manage access to PyPI from CD pipelines
moving forward. Our PyPI project is set up to allow this now.
2023-12-06 09:44:00 -07:00
Schuyler Eldridge 32ee6c94cb
[ci] Change Windows runner to 2022
See if this helps with #6395.  Update the sccache key to use the full
runner name and not rely on the OS.  The runner may be totally different
and having cache hits by OS doesn't make sense.

Signed-off-by: Schuyler Eldridge <schuyler.eldridge@sifive.com>
2023-11-09 16:53:29 -05:00
Mike Urbach d7088aa368
[CI] Update Python wheel action for MacOS. (#6386)
The macos-latest tag has been migrated to macos-12, and the version of
cibuildwheel we use doesn't run with the version of Python included in
macos-12 (Python 3.12). Note that this has no bearing on the versions
of Python we build the wheels for; this is the cibuildwheel Python
code that is running on the runner's default Python to set up the
build for the version of Python the wheel is targeting.

To amend this, I am locking to MacOS tag to a specific version, and
updating the cibuildhweel version.

Fixes https://github.com/llvm/circt/issues/6385.
2023-11-07 12:56:15 -07:00
John Demme 075b3cd07e [CI] Disable unified build
The short integration test build is a unified build so this is
redundant.
2023-11-02 20:01:17 +00:00
John Demme 1927491cff
[ESI] Move Cap'nProto into ESI runtime (#6354)
Simplifies the CIRCT proper build. Also mitigates a runtime binary distribution problem by requiring users to compile the runtime themselves.
2023-10-30 13:45:17 -07:00
John Demme 583b36b3bc
[CI] Don't include deleted Python files in yapf check (#6350) 2023-10-26 18:58:57 -07:00
George Lyon 68f6ba417d
Remove old workflow (#6306) 2023-10-18 14:58:34 -07:00
Hideto Ueno 0518211c34 [CI] Remove a backslash
This fixes a windows build failure
2023-10-11 07:26:37 -07:00
Hideto Ueno 6d37163e7c
[CI] Install LLVM utils (#6279)
The default `install` command doesn't install LLVM utils Filecheck/not/count. Downstream users of CIRCT might want to use FileCheck directly so this PR adds `-DLLVM_INSTALL_UTILS=On` to cmake options. It increase 1MB of release artifacts (85MB->86MB) so I believe that's ok.

Tested by https://github.com/llvm/circt/actions/runs/6483396914.
2023-10-11 23:17:54 +09:00