* 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
* 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>
* add attributes of Op into parameters
* fix rewrite rule for GemmOp with attributes
* use I64Attr instead of I32Attr and modify test cases for the changes in attributes
* add output name (prefixed with o_) to Op definition
* update shape inference for the new attributes
* Canonicalization pattern for eliminating identity ops
* Add a test for the identity elimination rule
* Remove frontend from test
* Use CHECK-NEXT instead of CHECK
* generate op from onnx document
* Restore FullGemm
* update the op attribute for shape inference and canonicalizer
* Update onnx_canonicalization.mlir
* compartmentalize build script, temporarily remove dependency of onnf_opt on helper.cpp
* fix test includes
* fix op directory include
* compiler -> op
* compiler test depends on boost system
* fix function name
* specify libcompiler dependencies
* let cmake take care of transitive dependencies
* remove unnecessary includes
* use ONNF_SRC_ROOT and ONNF_BIN_ROOT
* allow whole-archive linked libraries to be appended
* [MLIR] Support filecheck (#371)
* support lit+FileCheck
* add lit into build script
* format MLIR.cmake
* format cmake
* [MLIR] Remove input/output ops (#372)
* remove input/output ops
* get output tensor type from symbol table