* Move to more recent LLVM commit ID
* Update LLVM cache version from V9 to V10
* Update to latest LLVM commit id from master, roll back conditions in util scripts
* Update circlci LLVM cache tag to ensure ci updates builds with latest LLVM commit id
* Update README.md to have matching LLVM commit id
* Update doc/Dialtects/onnx.md
* Support attribute promotion.
* Simplify op interface name.
* 1. Add more comments to Attribute Promotion Pass.
2. Move Promotable Const Operand Interface to src/interface, and link against it.
* Complete NFC change onnx -> onnx-mlir.
* Move attribute_promotion pass to src/transform.
* Nit: reword comment.
* Support Attribute Promotion in gen_doc.py.
* Add test.
* Update ONNX doc.
* Add negative test.
* Rename onnxop.inc -> onnx_ops.td.inc.
* Include onnx_ops.td.inc.
* Nit: better comments.
* Prettify CMake.
* Remove original attribute_promotion code, improve comments.
* Append '_op_interface' to op interface decl/defs.
* Namespace cmake targets using onnx_mlir_ prefix.
* Use updated header name.
* Use new body file name.
* Fix dependency.
* Use new CMake target name.
* Make attribute promotion self-contained by removing redundant constant operaions inside the pass execution.
* Remove canonicalization pass.
* Increase comments.
* Use stricter checks.
* Add one more test case.
* Remove %arg1 as it's never used.
* 1. Combine variadicIn/Out with expectedNumOperands/Results to simplify import function arguments.
2. Generic improvements to code readability in gen_doc.py.
* Update ONNX Dialect doc.
* Remove redundant code in ImportNode.
* Prettify op_build_table.inc.
* 1. Remove irrelevant code in gen_doc.py
* Refactor code to be more readable.
* Further refactoring for readability improvements.
* Allow gemm to have an optional operand (bias term), and include an example of declarative optimization pattern targeting gemm with bias term ommitted.
* Make shape inference/lowering of gemm op compatible with optional operand declaration.
* Apply canonicalization again after lowering from onnx -> std dialects.
* Make hasBias compatible with the situation of GemmNoBias op.
* Update doc.
* Add a canonicalization test.
* Remove special handler for importing Gemm op, as it's redundant now.
* Add result type inference to op definition
* Edit MLIR tests
* Fix result type for Mul
* Format comments
* Return UnrankedTensorType as result type
* Just for testing -split-input-file
* Undo: Just for testing -split-input-file
* Extract a function, get_operand_ins, that gets operand types; rewrite gen_attr_ins function
* Generate custom builders
* Call existing build methods
* Add comments
* Minor changes
* Generate build methods with attributes
* Add support of variadic type
* Do not generate custom build methods for ops having only attributes
Co-authored-by: Gheorghe-Teodor Bercea <gt.bercea@gmail.com>
* Add ONNXBatchNormalizationTestModeOp and its shape inference
* Lower batchnormalization test mode
* re-use scale, bias, mean, and variance
* Add MLIR tests
* Add e2e tests
* fix typos
* Fix a bug in MLIR tests
* Change type from int to int64_t for indices
* Uncomment e2e tests due to segmentation fault
* Uncomment e2e tests due to segmentation fault
* Revise the code
* [Tian] Fix segmentation fault in e2e tests
* Re-generate onnx.md to include BatchNormalizationTestModeOp
* Reverse an unintentional change
* Fix some typos in comments
* Use convertToMemRefType from the master branch
Co-authored-by: Gheorghe-Teodor Bercea <gt.bercea@gmail.com>
* handle pad op which does not have the optional third argment
* rewrite PadConstantValue with constant pad into PadConstantValuePad
* add test for PadConstantValuePad
* update onnx.md
* Add dialect documentation.
* Add a step in our CI to ensure documentation is up-to-date.
* Add dialect documentation.
* Fix config file mistake, using multi-line commands.
* Fix a bug in DocCheck.
* Shape inference for reduction
* Lower ReduceSum
* Support list-like attributes
* Add ReduceMax, ReduceMin, ReduceProd
* Add tests
* Emit errors for unsupported types
* Typos
* Add backend test
* Fix axis computation
* Update the use of attributes
* Use SmallVector
* Address stylistic comments
* Change type from int to int64_t for indices
* Change type from int to int64_t for indices
* fix name of operator output in onnxop.inc and Operator.md
* Update directive.py
Co-authored-by: Gheorghe-Teodor Bercea <gt.bercea@gmail.com>
Co-authored-by: Tian Jin <tjingrant@gmail.com>
* Support lowering of SignOp
* Fixed test code for signop of integer input
* Inserted Sigh and Reciprocal in SharingWork.md (Reciprocal is for past commit 7e3f96e)
* Added test for Sign Op
* Fixed minus_one -> minusOne
* Fixed test for signop
* Rewrite ReduceSumSquare
* Edit gen_doc.py
* Revise the code
* Do shape inference after canonicalization so that there is no need to implement shape inference of rewritten ops
* Rewrite ReduceL2
* Add onnx_rewrite.cpp for all rewriting for ONNX ops
* Rewrite ReduceL1, ReduceLogSum, ReduceLogSumExp
* Edit comments
* Change the use of -> to .
* Checkout gen_doc.py from the master branch
* Use emplace_back instead of push_back
* Revise the code
* Edit comments
Co-authored-by: Tian Jin <tjingrant@gmail.com>
* 1. Implement doc-check utility.
* 1. Move ONNF installation script to a standalone script file.
* 1. Modify build script to install llvm-project next to ONNF. The build script used to install llvm-project inside ONNF, which didn't make sense.
* 1. Check out code to ONNF directory.
* 1. Pass path parameter correctly.
* 1. Debugging buildbot.
* 1. Remove debug code.
* 1. Update installation instructions in README.md.
2. Enforce consistency with scripts used in testing using doc-check.
* 1. Fix error with respect to syntax to build multiple CMake targets.
* 1. Move doc-check to doc_check.
2. Remove directive_config in top-level driver.
* 1. Build onnf and check-mlir-lit separately because only CMake 3.15+ supports building multiple targets in one cmake --build run.
* 1. Use new env variables to locate LLVM-Project.
* 1. Documentation nits.
* 1. Prettify buildbot scripts.
* 1. Fix build script error.
* 1. Support exclude_dirs in DocCheck.
2. Add README for DocCheck.
* 1. Mark python3 interpreter as required.
2. Use imported interpreter target.
* 1. Automatically deduce doc file extension in DocCheckCtx.
2. Rename ctx.open -> ctx.open_doc since it should only be used to open doc file.
3. Always read line in parser, instead of reading lines in driver and then passing it to parser.py.
* 1. Rename parser -> doc_parser due to name conflict with python built-in module.
2. Explose doc_check module directory first before importing; otherwise if the doc_check utility is invoked by other script, importing will not work correctly.
* 1. Keep renaming parser -> doc_parser.
2. Explicitly define a default configuration parser that parses the configuration into a python dictionary.
* 1. Add test for doc-check.
2. Exclude doc-check tests from project dock-check because base directory is different.
* 1. Raise ValueError if directive configuration fails to parse.
2. Format code.
* Shorten test case documentation.
Show example of using same-as-file directive, check with DocCheck.
* 1. Shorten test case documentation.
2. More documentation, check documentation with DocCheck.
* 1. Add copyright notice.
* 1. Make documentation clearer.
2. Prettify build-scripts.
* 1. Provide more documentation.
2. Fix some non-compliance with pep8 recommendations.
Co-authored-by: Gheorghe-Teodor Bercea <gt.bercea@gmail.com>