Chris Lattner
e97285aa6a
Implement support for flip types, mapping output ports onto it. Stub out
...
some parts of bundle and vector, but they are not implemented yet.
2020-03-26 17:43:16 -07:00
Chris Lattner
6a87c32d1d
rearrange the type system a bit, introduce a new common FIRRTLType class.
2020-03-26 11:25:16 -07:00
Chris Lattner
d5af2ba90c
Pull SInt/UInt width handling into the same architecture as Analog.
...
This stops using the MLIR builtin type for ui/si types because it
makes them special and different - consistency seems more important
here within the firrtl dialect.
2020-03-24 12:33:52 -07:00
Chris Lattner
6033f284f2
correctly parse the width in an int/analog spec.
2020-03-24 09:39:34 -07:00
Chris Lattner
e30671ef0e
Add support for widths on analog types.
2020-03-23 23:11:59 -07:00
Chris Lattner
48c4da1abf
Start implementing the FIRRTL type system, "Ground types" first.
2020-03-23 11:57:27 -07:00
Chris Lattner
dff5dd1691
Add ports to the MLIR representation. This plumbs through result
...
returning into the portList parser and the type parser.
2020-03-22 20:50:26 -07:00
Chris Lattner
b11257833d
create MLIR representation of circuit and module ops. This ignores
...
ports, location info, etc.
2020-03-22 12:31:23 -07:00
Chris Lattner
7668f6d04c
Move the module parsing logic into a new FIRModuleParser class, NFC.
2020-03-22 11:43:44 -07:00
Chris Lattner
4b36d536dd
Implement parser support for extmodule and info records.
2020-03-22 11:35:46 -07:00
Chris Lattner
4de1dbda33
Implement clases for the .fir parser mechanics, implementing just
...
enough parser logic for circuit and modules to get through the
testcases.
In addition to the parser logic, this improves the lexer to be able
to report indentation, adds the <= token, and fixes some problems with
split-input-files in the errors.fir testcase.
2020-03-21 23:09:53 -07:00
Chris Lattner
2f64d97d6e
Finish up the lexer, at least far enough to be able to lex a very large
...
firtl files, and add some testcases for errors.
2020-03-20 13:06:00 -07:00
Chris Lattner
d8726bd431
Implement a big chunk of a lexer for .fir files, including punctuation
...
comments, keywords, etc. The grammar for literals is wrong and largely
missing, but this gets a useful chunk of .fir files through the lexer.
This includes a silly test driver that shows things are getting properly
tokenized.
2020-03-17 17:46:05 -07:00
Chris Lattner
588212f71d
add a VS Code configuration.
2020-03-16 15:16:13 -07:00
Chris Lattner
2fe028d811
Implement the build and integeration outline of an spt-translate tool,
...
and stub out a .fir parser (which doesn't do anything yet) that is driven
from it.
2020-03-16 15:14:56 -07:00
Chris Lattner
dfac4c84db
Have the module printing logic consider whether the generated name is
...
correct. If not, generate a firrtl.name attribute explicitly to ensure
we round-trip correctly.
This depends on this unlanded MLIR patch: https://reviews.llvm.org/D76205
2020-03-15 18:52:26 -07:00
Chris Lattner
233e04e710
Improve the README to include some contributor notes, clang-format
...
the codebase.
2020-03-15 17:59:29 -07:00
Chris Lattner
c056bf088e
Updates to work with MLIR ToT.
2020-03-12 22:57:37 -07:00
Chris Lattner
613ac5eb6c
Do not print the firrtl.name attribute on parameters if we've managed
...
to merge it into the argument list.
2020-03-09 09:20:34 -07:00
Chris Lattner
a906b944bf
Implement the OpAsmDialectInterface interface for FIRRTL, enabling us to
...
use the attribute names as the SSA names for things in dumps.
2020-03-08 18:28:46 -07:00
Chris Lattner
f7c63a5253
Convert module to being an an op that is FunctionLike, IsolatedFromAbove, Symbol.
...
This adds the ability to model inputs and outputs. The parsing side is nice,
but the printing side still needs to use the symbolic argument names.
2020-03-08 12:44:23 -07:00
Chris Lattner
395b7bee7a
Add a firrtl.connect op definition.
2020-03-07 23:14:19 -08:00
Chris Lattner
ef84a84a6f
Introduce a firrtl.invalid operation and give firrtl.add nicer syntax.
2020-03-07 23:10:55 -08:00
Chris Lattner
6dfa2793f0
Give circuit and module custom syntax, making them much nicer to read and write.
2020-03-07 19:51:52 -08:00
Chris Lattner
288b0c10c7
Introduce op definitions for module, circuit and a 'done' terminator. Add
...
testcases to show things it catches.
2020-03-07 19:27:37 -08:00
Chris Lattner
24c3b33447
Create the sketch of a FIRRTL dialect, with a single type (firrtl.uint) and a
...
single registered operations (firrtl.add). Add a testcase showing that these
are now being properly checked.
2020-03-07 15:47:08 -08:00
Chris Lattner
71b7e2cb93
Add a sketch of a direct translation of a couple of examples of firrtl-in-mlir.
2020-03-06 17:27:04 -08:00
Chris Lattner
7783a53c8e
Push the cmake files far enough along to make spt-opt be able to link in
...
MLIR libraries, parsing and printing the output, running passes, etc.
2020-03-06 16:42:00 -08:00
Chris Lattner
64cec97240
Introduce a CMakefile scaffolding to build and test an executable.
...
This also updates the README to include some building information.
Lots of caveats:
- This is all experimental
- The actual tool isn't interesting yet.
- The naming is arbitrary and will likely change.
- Much of the cmake files were cargo culted from other places
because I don't know what I'm doing.
2020-03-05 15:16:55 -08:00
Chris Lattner
2d02904135
Initial commit
2020-03-04 20:57:43 -08:00