Commit Graph

23 Commits

Author SHA1 Message Date
Martin Erhart 485952a28c
[SystemC] Add NewOp and DeleteOp (#3798) 2022-09-01 11:57:52 +02:00
Morten Borup Petersen b3359685c7
[StaticLogic] Rename dialect to 'Pipeline' (#3648)
It is probably fair to conclude that naming this dialect `StaticLogic` has been a pain point for a while. This commit proposes a dialect renaming to `Pipeline`, for a couple of reaons:

1. So far, we've only been working with pipeline abstractions within this dialect.
2. Pipeline representations aren't necessarily statically scheduled - we plan on adding switches to select between latency sensitive and latency insensitive lowerings of pipelines.

This name change does not preclude renamings in the future if we want to fit more stuff into this dialect. Personally, i think it is prudent to maintain a dialect name which reflects what's actually being done within the dialect, as well as the (near/mid/"someone actually intends to work on this"-term) future plans for the dialect.
2022-08-04 10:58:40 +02:00
Julian Oppermann 6c0681e95c
[SSP][Scheduling] SSP dialect rationale and boilerplate. (#3558) 2022-07-26 09:35:53 +02:00
Martin Erhart ae3d1acd19
[RFC] Add a dialect for SystemC emission (#3520) 2022-07-19 17:14:36 +02:00
Morten Borup Petersen 5eba26e411
[HWArith] HWArith dialect rationale and boilerplate (#3456)
Please refer to RationaleHWArith.md.
2022-07-11 11:04:44 +02:00
Aliaksei Chapyzhenka 37b7baff75
LLVM bump (as we know it) (#3074)
* LLVM bump (as we know it)

* minor format fix

* DCMAKE_BUILD_TYPE=?

* Update lib/Dialect/MSFT/MSFTOps.cpp

Co-authored-by: Andrew Young <youngar17@gmail.com>

* Update lib/Dialect/FIRRTL/FIRRTLOps.cpp

Co-authored-by: Andrew Young <youngar17@gmail.com>

* Update lib/Dialect/Calyx/CalyxOps.cpp

Co-authored-by: Andrew Young <youngar17@gmail.com>

* removed anon module test

Co-authored-by: Andrew Young <youngar17@gmail.com>
2022-05-09 14:30:14 -07:00
Fabian Schuiki 246d4fdd34
Bump LLVM to 61814586 (#2758) 2022-03-14 14:13:45 +01:00
Andrew Lenharth bb21827888
Bump LLVM to 761bc83af4ee70c6c5156f73ed88947a5d9f013f
Bump LLVM to 761bc83af4ee70c6c5156f73ed88947a5d9f013f
2022-02-16 23:32:32 -06:00
Andrew Young 4ad3f85239 Add new CHIRRTL dialect
This dialect is going to contain the CHIRRTL operations and types
currently in the FIRRTL dialect.  This will provide better structuring
in the MLIR types as we don't want CHIRRTL types to be FIRRTL types.
For more information see this issue here:
https://github.com/llvm/circt/pull/2134
2021-12-08 18:02:15 -08:00
Martin Erhart d696f344d1
Add Moore MIR dialect (#2261)
Currently, the Moore frontend-compiler parses SystemVerilog, lowers the AST to Moore MIR, and then generates HW/Comb/LLHD code which it forwards to CIRCT.

This new Moore dialect aims to move the MIR into CIRCT to benefit from the CIRCT/MLIR infrastructure. In the long-run also the parser and AST can be implemented to have a complete SystemVerilog frontend natively in CIRCT.

The purpose of Moore MIR in the lowering chain is to make all the implicit things (e.g., type casts) in SystemVerilog explicit to ease further lowering to HW/Comb/LLHD.
2021-12-01 18:56:01 +01:00
Martin Erhart aab7c1a212
[LLVM] Bump LLVM to adopt 'pretty accessors' (#2008)
This requires a lot of renaming of operations from the standard dialect to the arith dialect which was split off since the last LLVM bump.
2021-10-18 09:06:14 +02:00
Morten Borup Petersen e4731d4b5b
[SCFToCalyx] Add SCFToCalyx boilerplate [1/13] (#1812)
This is the initial commit for the SCFToCalyx pass. The commit sets up the boilerplate required for adding a new conversion pass.
2021-09-20 23:56:47 +01:00
Hanchen Ye bbecc5fc2b
[FSM] Add an empty FSM dialect (#1671) 2021-08-30 17:28:46 -05:00
John Demme 21485874c8
[llvm] Update submodule to latest (#1589)
Co-authored-by: Andrew Lenharth <andrew@lenharth.org>
Co-authored-by: Fabian Schuiki <fabian@schuiki.ch>
Co-authored-by: Andrew Young <youngar17@gmail.com>
2021-08-18 19:37:43 -07:00
Chris Gyurgyik 5db02d71fb
Calyx dialect initial commit. (#1287)
* Initial commit for Calyx dialect (WIP).

* ws

* Remove empty test.

* Calyx component printing (cont)

* nit todo

* Mess around with components.

* Remove ops for scaffolding review.

* [obvious] Remove extra `-`s.

* Remove extra stuff.

* nits

* Address comments pt1.

* address comments pt2.

* Add Attrs.
2021-06-18 10:14:36 -04:00
Chris Lattner e31e8a3e3d [RTL->HW] Rename the rtl dialect to hw dialect in MLIR syntax. 2021-05-15 14:24:43 -07:00
John Demme e1b22e19b9
[Seq] Computational register op and lowering to SV (#883)
Model of the compreg op outlined in the Seq dialect rationale dialect. This is just a starting place and I do expect it to change and/or have siblings for different flavors. Lowers to sv.alwaysff with posedge clock and sync reset -- for now.

Also adds a few mechanical things required to make the Seq dialect actually work which I neglected in the PR which added the dialect.
2021-04-05 17:24:06 -07:00
John Demme 5418fdeb9a
[MSFT] New dialect for Microsoft internal design support (#800)
Umbrella dialect for everything needed to support Microsoft development but not
thoroughly discussed.
2021-03-19 21:40:18 -07:00
Andrew Young cb73655cbe
Update LLVM (#792)
This is needed to fix a crash in DCE for graph regions. [0]

- alloc and store operations have been moved to a new MemRef dialect
- custom dialect types now need to be registered in the same compilation
  unit as the type's storage.  Any dialect that registers types have had
  the logic moved to DialectTypes.cpp.
- Small change to the ResetTypeAttr default value declaration.

[0] https://reviews.llvm.org/D98919
2021-03-19 11:33:33 -07:00
John Demme 6bd0b93ab9
[RTL] Create new 'comb' dialect and move all the RTL combinational ops into it (#599) 2021-02-16 16:04:52 -08:00
Andrew Young 8ef555d7ae Add helpers to register all dialects, and simplify circt-opt
This change cargo-cult imports InitAllDialects.h and InitAllPasses.h
from MLIR.

`circt-opt` has been greatly simplified by using the more powerful
version of `MlirOptMain`, which supersedes all our current
command line options.

Now we're not preloading all dialects, we need to make sure that target
dialects are properly registered in all conversion passes. Source
dialects do not need to be manually loaded.

One thing which is not clear is if `circt::registerAllDialects` should
register any standard MLIR dialects which are used heavily throughout
CIRCT.  This change only registers CIRCT dialects.
2021-01-21 12:22:00 -08:00
Andrew Young 0cd056917a Shuffle around the tests
- Move conversion tests to Conversion
- Move dialect tests to Dialect
- Capitalize dialect names
- Move LLHD export tests into the dialect
- Move FIRRTL import tests into the dialect
2020-12-23 13:54:39 -05:00
Chris Lattner 3202062646 Mechanical rename of cirt -> circt. 2020-06-17 10:19:08 -07:00