* update some git and vscode config files
* add HandshakeToFIRRTL files
* Add normal to bundle type conversion
* add handshake to firrtl signature conversion
* add convertMerge and convertReturn function
* update convertmerge code
* add mergeToEntryBlock() function
* remove signature conversion, successfully transform foo.mlir
* foo.mlir support lit test
* add test_inst.mlir testcase
* add module generation for binary ops
* add createBinaryOpModule function
* correctly create new FModule for standard binary operation
* correctly create new FModule for standard binary operation
* correctly connect instance with other operations
* correctly transform test_inst.mlir (binary operation => instance)
* add TODO for 06/29 morning
* support lit test for test_inst.mlir
* support arbitrary binary and unary operations
* add function for checking duplicated FModules
* add remove block structure pass for handshake dialect
* update the combinational logic for binary operation
* update getBundleType function
* clean the existing code
* reorganize code sturcture
* add buildBinaryOp function
* update extractSubfields function
* update buildBinaryOp function
* update getBundleType function
* update createInstOp function
* update code structure, TODO: write buildMergeOp
* update code structure
* update code structure
* support single input merge with instance op; update createInstOp function
* align to upstream repo
* untrack .vscode files
* align with upstream
* align .vscode dir
* align .vscode dir
* Now buildMergeLogic support any number of inputs
* Add buildControlMergeLogic function
* add buildBranchLogic function
* add buildConditionalBranchLogi function
* add buildForkLogic and buildLazyForkLogic function
* add sink, constant operations
* update pass rewrite function, support all (except memory related) elastic component and all binary expressions
* update submodule naming strategy
* update -remove-block-structure pass; -lower-handshake-to-firrtl bugs fix
* add buildJoinLogic function
* bug fixed: instance output connection
* follow clang format
* code cleanup and update testcases
* update testcases
* small bug fixed
* fix CMakeLists for HandshakeToFIRRTL
* update .gitignore
* delete .vscode dir
* fix merge operation logic
* add elastic component test cases
* add elastic component test cases
* add some references
* fix clang formant
* fix some small writing issues
* update test cases
* some small updates
* fix most issues
* emit errors rather than assert
* Merge LLHD project into CIRCT
* Split LLHDOps.td into multiple smaller files
* move LLHDToLLVM init definition and prune includes
* Format tablegen files with 2 space indent, 80 col width; move out trait helper function
* Move implementation logic from LLHDOps.h to cpp file
* Empty lines for breathing space; nicer operation separators
* Move simulator to Dialect/LLHD/Simulator
* move `State.h` and `signal-runtime-wrappers.h` to lib directory
* pass ModuleOp by value
* make getters const, return ModuleOp by value
* Use isa, cast, dyn_cast appropriately
* wrap struct in anon namespace; make helpers static
* [cmake] Fold into LINK_LIBS
* fix for loops
* replace floating point with `divideCeil`
* prune redundant includes
* make llhd-sim helpers static
* remove StandardToLLVM pass registration
* move verilog printer to cpp file, add global function as public API
* Move transformation pass base classes and registration to lib, add file header boilerplate
* Few improvements
* Return diagnostics directly
* isa instead of kindof
* Improve walks
* etc.
* add 'using namespace llvm;' again
* Always pass a location when creating new ops
* Improve cmake files
* remove unnecessary `LLVMSupport` links.
* add `PUBLIC` where missing.
* move LLVMCore under `LINK_COMPONENTS`.
* Add file headers and improve simulator comments
* Some LLHDToLLVM improvements
* Fix walks.
* Use `std::array` instead of `SmallVector` when resize is not needed.
* Fix a potential sefgault by passing an ArrayRef with no data owner.
* Remove some unnecessary steps.
* Remove some unnecessary const strings.
* Add new LowerToLLVMOptions argument
The new argument was added in 10643c9ad85bf072816bd271239281ec50a52e31.
* Add missing file header boilerplate and newline
* Improve for-loop
* use static instead of anonymous namespace for functions
* fit to 80 columns, cast instead of dyn_cast
* Changes for LLVM update
* use llvm format instead of std::stringstream and iomanip
Co-authored-by: rodonisi <simon@rodoni.ch>
to default to ignoring @info locations for now. I don't need firtool to
report errors pointing at Scala files right now, I need it pointing to
the .fir files. The default can be switched back as things mature.
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.