Copy disabled (too large)
Download .txt
Showing preview only (56,699K chars total). Download the full file to get everything.
Repository: Samsung/ONE
Branch: master
Commit: bf53cc811fc7
Files: 15019
Total size: 86.8 MB
Directory structure:
gitextract_es8o49kt/
├── .ahub/
│ ├── sam/
│ │ ├── advanced.cfg
│ │ └── exclude.txt
│ └── tcchecker-tca/
│ └── config.yaml
├── .clang-format
├── .ctags
├── .git-blame-ignore-revs
├── .gitattributes
├── .github/
│ ├── actionlint.yaml
│ └── workflows/
│ ├── build-dev-docker.yml
│ ├── build-docker-onnx-subgr.yml
│ ├── build-pub-dev-docker.yml
│ ├── check-format.yml
│ ├── check-pr-commit.yml
│ ├── deploy-github-pages.yml
│ ├── generate-rootfs.yml
│ ├── pub-circle-int-launchpad.yml
│ ├── pub-onert-pypi.yml
│ ├── pub-onnx2circle-launchpad.yml
│ ├── pub-tools-mec-pypi.yml
│ ├── run-circle-mlir-build.yml
│ ├── run-onecc-build.yml
│ ├── run-onert-android-build.yml
│ ├── run-onert-cross-build.yml
│ ├── run-onert-gbs-build.yml
│ ├── run-onert-micro-unit-tests.yml
│ ├── run-onert-native-build.yml
│ ├── run-tools-mec-build.yml
│ └── run-tools-onnx-subgr-build.yml
├── .gitignore
├── .mailmap
├── .pre-commit-config.yaml
├── .readthedocs.yml
├── .style.yapf
├── .yapfignore
├── CONTRIBUTORS
├── COPYRIGHT
├── LICENSE
├── Makefile.template
├── README.md
├── circle-mlir/
│ ├── .gitignore
│ ├── CMakeLists.txt
│ ├── Makefile.sample
│ ├── README.md
│ ├── circle-mlir/
│ │ ├── CMakeLists.txt
│ │ ├── lib/
│ │ │ ├── CMakeLists.txt
│ │ │ ├── arser/
│ │ │ │ ├── CMakeLists.txt
│ │ │ │ ├── README.md
│ │ │ │ ├── include/
│ │ │ │ │ └── arser/
│ │ │ │ │ └── arser.h
│ │ │ │ ├── src/
│ │ │ │ │ └── arser.cpp
│ │ │ │ └── test/
│ │ │ │ ├── arser.test.cpp
│ │ │ │ └── arser_prompt.h
│ │ │ ├── dialect/
│ │ │ │ ├── CMakeLists.txt
│ │ │ │ ├── include/
│ │ │ │ │ └── circle-mlir/
│ │ │ │ │ └── dialect/
│ │ │ │ │ ├── CircleDialect.h
│ │ │ │ │ └── NameUtils.h
│ │ │ │ ├── mlir/
│ │ │ │ │ ├── CircleOpEnums.td
│ │ │ │ │ ├── CircleOpInterfaces.td
│ │ │ │ │ ├── CircleOps.td
│ │ │ │ │ ├── CircleRewrite.td
│ │ │ │ │ ├── CircleShapeInferenceInterfaces.td
│ │ │ │ │ └── TableGen.cmake
│ │ │ │ ├── src/
│ │ │ │ │ ├── CircleDialect.cpp
│ │ │ │ │ ├── ConstFold.inc.cpp
│ │ │ │ │ ├── NameUtils.cpp
│ │ │ │ │ ├── ShapeInference.cpp
│ │ │ │ │ └── ops/
│ │ │ │ │ ├── AddOp.h
│ │ │ │ │ ├── CastOp.h
│ │ │ │ │ ├── ConcatenationOp.h
│ │ │ │ │ ├── ConstOp.h
│ │ │ │ │ ├── Conv2DOp.h
│ │ │ │ │ ├── CosOp.h
│ │ │ │ │ ├── CustomOp.h
│ │ │ │ │ ├── DepthwiseConv2DOp.h
│ │ │ │ │ ├── DivOp.h
│ │ │ │ │ ├── EqualOp.h
│ │ │ │ │ ├── ExpandOnnxOp.h
│ │ │ │ │ ├── FloorOp.h
│ │ │ │ │ ├── FullyConnectedOp.h
│ │ │ │ │ ├── GatherOp.h
│ │ │ │ │ ├── LogOp.h
│ │ │ │ │ ├── MulOp.h
│ │ │ │ │ ├── NegOp.h
│ │ │ │ │ ├── NoValueOp.h
│ │ │ │ │ ├── PReluOp.h
│ │ │ │ │ ├── PadOp.h
│ │ │ │ │ ├── PadV2Op.h
│ │ │ │ │ ├── ReduceProdOp.h
│ │ │ │ │ ├── ReshapeOp.h
│ │ │ │ │ ├── ResizeOnnxOp.h
│ │ │ │ │ ├── RsqrtOp.h
│ │ │ │ │ ├── SelectOp.h
│ │ │ │ │ ├── SelectV2Op.h
│ │ │ │ │ ├── ShapeOp.h
│ │ │ │ │ ├── SinOp.h
│ │ │ │ │ ├── SliceOp.h
│ │ │ │ │ ├── SplitOp.h
│ │ │ │ │ ├── SplitVOp.h
│ │ │ │ │ ├── SqrtOp.h
│ │ │ │ │ ├── SqueezeOp.h
│ │ │ │ │ ├── StridedSliceOp.h
│ │ │ │ │ ├── SubOp.h
│ │ │ │ │ ├── TransposeConvOp.h
│ │ │ │ │ ├── TransposeOp.h
│ │ │ │ │ └── UnsqueezeOnnxOp.h
│ │ │ │ └── utils/
│ │ │ │ ├── DynamicShapeUtils.cpp
│ │ │ │ ├── DynamicShapeUtils.h
│ │ │ │ ├── Errors.cpp
│ │ │ │ ├── Errors.h
│ │ │ │ ├── KernelShapeUtil.cpp
│ │ │ │ ├── KernelShapeUtil.h
│ │ │ │ ├── KernelShapeUtil.test.cpp
│ │ │ │ ├── Padding.cpp
│ │ │ │ ├── Padding.h
│ │ │ │ └── Padding.test.cpp
│ │ │ ├── export/
│ │ │ │ ├── CMakeLists.txt
│ │ │ │ ├── include/
│ │ │ │ │ └── circle-mlir/
│ │ │ │ │ └── export/
│ │ │ │ │ └── CircleExport.h
│ │ │ │ └── src/
│ │ │ │ ├── CircleExport.cpp
│ │ │ │ ├── OpOrArgNameMapper.cpp
│ │ │ │ └── OpOrArgNameMapper.h
│ │ │ ├── import/
│ │ │ │ ├── CMakeLists.txt
│ │ │ │ ├── include/
│ │ │ │ │ └── circle-mlir/
│ │ │ │ │ └── import/
│ │ │ │ │ └── CircleImport.h
│ │ │ │ └── src/
│ │ │ │ ├── CircleImport.cpp
│ │ │ │ ├── CircleOperator.cpp
│ │ │ │ └── CircleOperator.h
│ │ │ ├── pass/
│ │ │ │ ├── CMakeLists.txt
│ │ │ │ ├── include/
│ │ │ │ │ └── circle-mlir/
│ │ │ │ │ └── pass/
│ │ │ │ │ └── CirclePass.h
│ │ │ │ └── src/
│ │ │ │ ├── CirclePass.cpp
│ │ │ │ ├── ConvertHelper.cpp
│ │ │ │ ├── ConvertHelper.h
│ │ │ │ ├── ConvertONNXToCirclePass.cpp
│ │ │ │ ├── ConvertONNXToCirclePass.h
│ │ │ │ ├── DumpCircleOpsPass.cpp
│ │ │ │ ├── DumpCircleOpsPass.h
│ │ │ │ ├── DynamicBatchToSingleBatchPass.cpp
│ │ │ │ ├── DynamicBatchToSingleBatchPass.h
│ │ │ │ ├── RewriteCirclePass.cpp
│ │ │ │ ├── RewriteCirclePass.h
│ │ │ │ ├── RewriteONNXPass.cpp
│ │ │ │ ├── RewriteONNXPass.h
│ │ │ │ ├── RuntimeVerifyPass.cpp
│ │ │ │ ├── RuntimeVerifyPass.h
│ │ │ │ ├── ShapeInferencePass.cpp
│ │ │ │ ├── ShapeInferencePass.h
│ │ │ │ ├── onnx/
│ │ │ │ │ └── CompactReshapeConvReshape.h
│ │ │ │ ├── ops/
│ │ │ │ │ ├── ArgMaxOp.h
│ │ │ │ │ ├── AveragePoolOp.h
│ │ │ │ │ ├── BatchNormalizationInferenceModeOp.h
│ │ │ │ │ ├── CastOp.h
│ │ │ │ │ ├── ClipOp.h
│ │ │ │ │ ├── ConcatOp.h
│ │ │ │ │ ├── ConstantOfShapeOp.h
│ │ │ │ │ ├── ConstantOp.h
│ │ │ │ │ ├── ConvOp.h
│ │ │ │ │ ├── ConvTransposeOp.h
│ │ │ │ │ ├── CosOp.h
│ │ │ │ │ ├── CumsumOp.h
│ │ │ │ │ ├── DequantizeLinearOp.h
│ │ │ │ │ ├── EqualOp.h
│ │ │ │ │ ├── ErfOp.h
│ │ │ │ │ ├── ExpOp.h
│ │ │ │ │ ├── ExpandOp.h
│ │ │ │ │ ├── FlattenOp.h
│ │ │ │ │ ├── FloorOp.h
│ │ │ │ │ ├── GatherOp.h
│ │ │ │ │ ├── GemmOp.h
│ │ │ │ │ ├── GlobalAveragePoolOp.h
│ │ │ │ │ ├── GreaterOp.h
│ │ │ │ │ ├── HardSigmoidOp.h
│ │ │ │ │ ├── HardSwishOp.h
│ │ │ │ │ ├── IdentityOp.h
│ │ │ │ │ ├── InstanceNormalizationOp.h
│ │ │ │ │ ├── LeakyReluOp.h
│ │ │ │ │ ├── LogOp.h
│ │ │ │ │ ├── MatMulOp.h
│ │ │ │ │ ├── MaxOp.h
│ │ │ │ │ ├── MaxPoolSingleOutOp.h
│ │ │ │ │ ├── MinOp.h
│ │ │ │ │ ├── NegOp.h
│ │ │ │ │ ├── NoneOp.h
│ │ │ │ │ ├── NotOp.h
│ │ │ │ │ ├── PReluOp.h
│ │ │ │ │ ├── PadOp.h
│ │ │ │ │ ├── PowOp.h
│ │ │ │ │ ├── QuantizeLinearOp.h
│ │ │ │ │ ├── RangeOp.h
│ │ │ │ │ ├── ReciprocalOp.h
│ │ │ │ │ ├── ReduceMaxOp.h
│ │ │ │ │ ├── ReduceMeanOp.h
│ │ │ │ │ ├── ReduceProdOp.h
│ │ │ │ │ ├── ReduceSumOp.h
│ │ │ │ │ ├── ReduceSumSquareOp.h
│ │ │ │ │ ├── ReluOp.h
│ │ │ │ │ ├── ReshapeOp.h
│ │ │ │ │ ├── ResizeOp.h
│ │ │ │ │ ├── ShapeOp.h
│ │ │ │ │ ├── SigmoidOp.h
│ │ │ │ │ ├── SignOp.h
│ │ │ │ │ ├── SinOp.h
│ │ │ │ │ ├── SliceOp.h
│ │ │ │ │ ├── SoftmaxOp.h
│ │ │ │ │ ├── SplitOp.h
│ │ │ │ │ ├── SqrtOp.h
│ │ │ │ │ ├── SqueezeOp.h
│ │ │ │ │ ├── TanhOp.h
│ │ │ │ │ ├── TileOp.h
│ │ │ │ │ ├── TransposeOp.h
│ │ │ │ │ ├── UnsqueezeOp.h
│ │ │ │ │ └── WhereOp.h
│ │ │ │ └── opt/
│ │ │ │ ├── ConvertDivToMul.h
│ │ │ │ ├── ConvertMirrorPadPad32.h
│ │ │ │ ├── ConvertReshapeShape32.h
│ │ │ │ ├── ConvertResizeBilinearSize32.h
│ │ │ │ ├── ConvertResizeNearestSize32.h
│ │ │ │ ├── ConvertSqrtDivToRsqrt.h
│ │ │ │ ├── FuseAddRelu.h
│ │ │ │ ├── FuseConv2DRelu.h
│ │ │ │ └── FuseFullyConnectedAdd.h
│ │ │ ├── schema/
│ │ │ │ └── CMakeLists.txt
│ │ │ ├── tools/
│ │ │ │ ├── CMakeLists.txt
│ │ │ │ └── converter-gen/
│ │ │ │ ├── .clang-format
│ │ │ │ ├── CMakeLists.txt
│ │ │ │ ├── README.md
│ │ │ │ └── converter_gen.cc
│ │ │ └── utils/
│ │ │ ├── CMakeLists.txt
│ │ │ ├── include/
│ │ │ │ └── circle-mlir/
│ │ │ │ └── utils/
│ │ │ │ ├── ConvertType.h
│ │ │ │ ├── FlatbufferOperator.h
│ │ │ │ └── SizeUtils.h
│ │ │ └── src/
│ │ │ ├── ConvertType.cpp
│ │ │ ├── ConvertType.test.cpp
│ │ │ ├── FlatbufferOperator.cpp
│ │ │ ├── SizeUtils.cpp
│ │ │ └── SizeUtils.test.cpp
│ │ ├── tools/
│ │ │ ├── CMakeLists.txt
│ │ │ ├── circle-impexp/
│ │ │ │ ├── CMakeLists.txt
│ │ │ │ ├── README.md
│ │ │ │ └── src/
│ │ │ │ ├── circleimpexp.cpp
│ │ │ │ ├── circleimpexp.h
│ │ │ │ ├── circleimpexp.test.cpp
│ │ │ │ └── driver.cpp
│ │ │ ├── one-import-onnx-ext/
│ │ │ │ ├── CMakeLists.txt
│ │ │ │ ├── README.md
│ │ │ │ └── one-import-onnx-ext
│ │ │ └── onnx2circle/
│ │ │ ├── CMakeLists.txt
│ │ │ ├── TestModels.cmake
│ │ │ ├── src/
│ │ │ │ ├── cmdOptions.h
│ │ │ │ ├── driverDebug.cpp
│ │ │ │ ├── driverRelease.cpp
│ │ │ │ ├── onnx2circle.cpp
│ │ │ │ ├── onnx2circle.h
│ │ │ │ └── onnx2circle.test.cpp
│ │ │ └── test.lst
│ │ └── tools-test/
│ │ ├── CMakeLists.txt
│ │ ├── check-gtest/
│ │ │ ├── CMakeLists.txt
│ │ │ └── CheckGTest.test.cpp
│ │ ├── circle-impexp-test/
│ │ │ ├── .gitignore
│ │ │ ├── CMakeLists.txt
│ │ │ ├── comp_circle_circle.py
│ │ │ ├── exec_circle.py
│ │ │ ├── exec_onnx.py
│ │ │ ├── make_circle_input.py
│ │ │ ├── run_import_test.sh
│ │ │ ├── run_value_test.sh
│ │ │ ├── test.lst
│ │ │ └── util_h5_file.py
│ │ ├── gen-onnx/
│ │ │ ├── CMakeLists.txt
│ │ │ ├── run_gen_onnx.py
│ │ │ └── run_gen_onnx.sh
│ │ ├── onnx2circle-models/
│ │ │ ├── .gitignore
│ │ │ ├── CMakeLists.txt
│ │ │ └── test.lst
│ │ ├── onnx2circle-rewrite-test/
│ │ │ ├── CMakeLists.txt
│ │ │ ├── README.md
│ │ │ ├── check_circle_ops.py
│ │ │ ├── run_circle_ops_test.sh
│ │ │ └── test.lst
│ │ └── onnx2circle-value-test/
│ │ ├── .gitignore
│ │ ├── CMakeLists.txt
│ │ ├── comp_onnx_circle.py
│ │ ├── exec_circle.py
│ │ ├── exec_onnx.py
│ │ ├── make_circle_input.py
│ │ ├── run_value_test.sh
│ │ ├── test.lst
│ │ ├── util_h5_file.py
│ │ └── util_validation.py
│ ├── externals/
│ │ ├── .clang-format
│ │ ├── .gitignore
│ │ ├── CMakeLists.txt
│ │ └── onnx_mlir_0_5_0_0.diff
│ ├── infra/
│ │ ├── cmake/
│ │ │ ├── CfgOptionFlags.cmake
│ │ │ ├── GTestHelper.cmake
│ │ │ ├── TestCoverage.cmake
│ │ │ ├── UseAbseil.cmake
│ │ │ ├── UseFlatbuffers.cmake
│ │ │ └── UseMLIR.cmake
│ │ ├── debian/
│ │ │ └── onnx2circle/
│ │ │ ├── changelog
│ │ │ ├── compat
│ │ │ ├── control
│ │ │ ├── copyright
│ │ │ ├── onnx2circle.install
│ │ │ ├── onnx2circle.lintian-overrides
│ │ │ ├── rules
│ │ │ └── source/
│ │ │ ├── format
│ │ │ └── lintian-overrides
│ │ ├── docker/
│ │ │ ├── focal/
│ │ │ │ └── Dockerfile
│ │ │ ├── jammy/
│ │ │ │ └── Dockerfile
│ │ │ └── noble/
│ │ │ └── Dockerfile
│ │ ├── overlay/
│ │ │ ├── .gitignore
│ │ │ └── prepare-venv
│ │ └── tools/
│ │ └── gen-coverage-report
│ └── models/
│ ├── .gitignore
│ ├── gen_models.py
│ ├── mlir/
│ │ ├── Add_F32.onnx.mlir
│ │ ├── Add_F32_0.circle.mlir
│ │ ├── Add_F32_1.circle.mlir
│ │ ├── Add_F32_2.circle.mlir
│ │ ├── Add_F32_us.circle.mlir
│ │ ├── BatchMatMul_F32_us.circle.mlir
│ │ ├── Cast_F32_F32.circle.mlir
│ │ ├── Cast_I64_F32_C1.circle.mlir
│ │ ├── Cast_I64_F32_ds.circle.mlir
│ │ ├── Cast_I8_I16_C1.circle.mlir
│ │ ├── Concat_F32_R4_R3_d1.circle.neg.mlir
│ │ ├── Concat_F32_R4_d1_0.circle.neg.mlir
│ │ ├── Concat_F32_R4_d1_1.circle.neg.mlir
│ │ ├── Concat_F32_R4_dn3.circle.mlir
│ │ ├── Concat_F32_R4_dn5.circle.neg.mlir
│ │ ├── Concat_F32_R4_ds.circle.mlir
│ │ ├── Concat_F32_R4_empty_0.circle.mlir
│ │ ├── Concat_F32_R4_empty_1.circle.mlir
│ │ ├── Concat_F32_R4_us.circle.mlir
│ │ ├── ConstSplitAdd_F32_d0.circle.mlir
│ │ ├── ConstSplitAdd_F32_d1.circle.mlir
│ │ ├── ConstSplitAdd_F32_d2.circle.mlir
│ │ ├── ConstSplitAdd_F32_d3.circle.mlir
│ │ ├── Conv2d_F32_R4_us.circle.mlir
│ │ ├── Cos_F32_R1_C1.circle.mlir
│ │ ├── Cos_F32_R4_ds.circle.mlir
│ │ ├── Custom_Erf_F32_ds.circle.mlir
│ │ ├── Custom_F32.circle.mlir
│ │ ├── Custom_F32.circle.neg.mlir
│ │ ├── DepthwiseConv2d_F32_R4_us.circle.mlir
│ │ ├── Div_F32_us.circle.mlir
│ │ ├── FullyConnected_F32.circle.mlir
│ │ ├── FullyConnected_F32_R1_C1.circle.mlir
│ │ ├── FullyConnected_F32_ds.circle.mlir
│ │ ├── FullyConnected_F32_kd_ds.circle.mlir
│ │ ├── Log_F32_R1_C1.circle.mlir
│ │ ├── Logistics_F32_R4_db.circle.mlir
│ │ ├── Logistics_F32_R4_ds.circle.mlir
│ │ ├── MaxPool2D_F32_R4_us.circle.mlir
│ │ ├── Mul_F32_R2_ds.circle.mlir
│ │ ├── Mul_F32_R2_us.circle.mlir
│ │ ├── Mul_F32_us.circle.mlir
│ │ ├── PRelu_F32_R4_ds.circle.mlir
│ │ ├── PRelu_F32_R4_us.circle.mlir
│ │ ├── Pad_F32_R4_us.circle.mlir
│ │ ├── ReduceMean_F32_R4_us.circle.mlir
│ │ ├── ReduceProd_I64_R1_1.circle.mlir
│ │ ├── ReduceProd_I64_R1_3.circle.mlir
│ │ ├── Relu_F32_R4_us.circle.mlir
│ │ ├── Reshape_F32_R4_ds.circle.mlir
│ │ ├── Reshape_F32_R4_ds_2.circle.mlir
│ │ ├── Reshape_F32_R4_us.circle.mlir
│ │ ├── ResizeNearestNeighbor_F32_R4_us.circle.mlir
│ │ ├── Rsqrt_F32_R1_C1.circle.mlir
│ │ ├── SelectV2_F32_R2.circle.mlir
│ │ ├── SelectV2_I32_R2.circle.mlir
│ │ ├── SelectV2_I64_R2.circle.mlir
│ │ ├── Sin_F32_R1_C1.circle.mlir
│ │ ├── Sin_F32_R4_ds.circle.mlir
│ │ ├── Slice_F32_R2_ds.circle.mlir
│ │ ├── Slice_F32_R3_C1_0.circle.mlir
│ │ ├── Slice_F32_R3_C1_1.circle.mlir
│ │ ├── Slice_F32_R3_C1_2.circle.mlir
│ │ ├── Sqrt_F32_R4_ds.circle.mlir
│ │ ├── Sqrt_F32_R4_us.circle.mlir
│ │ ├── StridedSlice_F32_R2_ds.circle.mlir
│ │ ├── StridedSlice_F32_R4_us.circle.mlir
│ │ ├── StridedSlice_I64_R1_C4.circle.mlir
│ │ ├── StridedSlice_I64_R1_C4_rev.circle.mlir
│ │ ├── StridedSlice_I64_R2_C4_0.circle.mlir
│ │ ├── StridedSlice_I64_R2_C4_1.circle.mlir
│ │ ├── StridedSlice_I64_R2_C4_2.circle.mlir
│ │ ├── StridedSlice_I64_R2_C4_3.circle.mlir
│ │ ├── StridedSlice_I64_R2_C4_4.circle.mlir
│ │ ├── StridedSlice_I64_R4_C4.circle.mlir
│ │ ├── Sub_F32_us.circle.mlir
│ │ └── Transpose_F32_R4_us.circle.mlir
│ ├── net/
│ │ ├── Net_AddReLUConcat_F32_R4/
│ │ │ └── __init__.py
│ │ ├── Net_AddReLUSub_F32_R4/
│ │ │ └── __init__.py
│ │ ├── Net_AddReLU_F32_R4/
│ │ │ └── __init__.py
│ │ ├── Net_Conv2dMaxpool2d_F32_R4/
│ │ │ └── __init__.py
│ │ ├── Net_Conv2dMaxpool2d_F32_R4_p11/
│ │ │ └── __init__.py
│ │ ├── Net_Conv2dReLUSub_F32_R4/
│ │ │ └── __init__.py
│ │ ├── Net_Conv2dReLU_F32_R4/
│ │ │ └── __init__.py
│ │ ├── Net_DivErf_F32_R4/
│ │ │ └── __init__.py
│ │ ├── Net_FullyConnectedAdd_F32_R4/
│ │ │ └── __init__.py
│ │ ├── Net_FullyConnectedAdd_F32_R4_s/
│ │ │ └── __init__.py
│ │ ├── Net_ReshapeConcat_F32_R4/
│ │ │ └── __init__.py
│ │ ├── Net_ReshapeConv1dReshape_F32_R4/
│ │ │ └── __init__.py
│ │ ├── Net_Resize_nearest_Conv_2x_F32_R4_p11/
│ │ │ └── __init__.py
│ │ ├── Net_Resize_nearest_Conv_F32_R4/
│ │ │ └── __init__.py
│ │ ├── Net_Resize_nearest_Conv_F32_R4_p11/
│ │ │ └── __init__.py
│ │ ├── Net_SgucExpandIdentity_F32_R3/
│ │ │ └── __init__.py
│ │ ├── Net_SgucExpand_F32_R3/
│ │ │ └── __init__.py
│ │ ├── Net_SlicesViT_F32_R3/
│ │ │ └── __init__.py
│ │ ├── Net_SqrtDiv_F32_R4/
│ │ │ └── __init__.py
│ │ └── Net_SubMaxPool2d_F32_R4_p1/
│ │ └── __init__.py
│ ├── onnx_utils.py
│ └── unit/
│ ├── Add_F32_R4/
│ │ └── __init__.py
│ ├── Add_F32_R4_C1/
│ │ └── __init__.py
│ ├── ArgMax_F32_R1_v11/
│ │ └── __init__.py
│ ├── ArgMax_F32_R2_v11_d1/
│ │ └── __init__.py
│ ├── ArgMax_F32_R2_v11_d1_kd/
│ │ └── __init__.py
│ ├── ArgMax_F32_R4_d1_v11/
│ │ └── __init__.py
│ ├── ArgMax_F32_R4_kd_v11/
│ │ └── __init__.py
│ ├── ArgMax_F32_R4_v11/
│ │ └── __init__.py
│ ├── AvgPool2d_F32_R4/
│ │ └── __init__.py
│ ├── AvgPool2d_F32_R4_k23/
│ │ └── __init__.py
│ ├── AvgPool2d_F32_R4_p1/
│ │ └── __init__.py
│ ├── AvgPool2d_F32_R4_p1_v11/
│ │ └── __init__.py
│ ├── BatchNorm2d_F32_R4/
│ │ └── __init__.py
│ ├── BatchNorm2d_F32_R4_rand/
│ │ └── __init__.py
│ ├── Cast_F32_R4_S32/
│ │ └── __init__.py
│ ├── Cast_F32_R4_U8/
│ │ └── __init__.py
│ ├── Clip_F32_R4_alt_v6/
│ │ └── __init__.py
│ ├── Clip_F32_R4_relu6_v6/
│ │ └── __init__.py
│ ├── Clip_F32_R4_v13/
│ │ └── __init__.py
│ ├── Clip_F32_R4_v6/
│ │ └── __init__.py
│ ├── Concat_F32_R4_d0/
│ │ └── __init__.py
│ ├── Concat_F32_R4_d1/
│ │ └── __init__.py
│ ├── Concat_F32_R4_d2/
│ │ └── __init__.py
│ ├── Concat_F32_R4_d3/
│ │ └── __init__.py
│ ├── Concat_F32_R4_dn3/
│ │ └── __init__.py
│ ├── ConstantOfShape_F32_R1/
│ │ └── __init__.py
│ ├── ConstantOfShape_F32_node/
│ │ └── __init__.py
│ ├── ConstantOfShape_I64_R1/
│ │ └── __init__.py
│ ├── Conv2d_F32_R4/
│ │ └── __init__.py
│ ├── Conv2d_F32_R4_dil/
│ │ └── __init__.py
│ ├── Conv2d_F32_R4_dil_g2/
│ │ └── __init__.py
│ ├── Conv2d_F32_R4_g2/
│ │ └── __init__.py
│ ├── Conv2d_F32_R4_g4_1/
│ │ └── __init__.py
│ ├── Conv2d_F32_R4_g4_2/
│ │ └── __init__.py
│ ├── Conv2d_F32_R4_g5/
│ │ └── __init__.py
│ ├── Conv2d_F32_R4_k33/
│ │ └── __init__.py
│ ├── Conv2d_F32_R4_nobias/
│ │ └── __init__.py
│ ├── Conv2d_F32_R4_p10/
│ │ └── __init__.py
│ ├── Conv2d_F32_R4_p11/
│ │ └── __init__.py
│ ├── Conv2d_F32_R4_p11_g2/
│ │ └── __init__.py
│ ├── Conv2d_F32_R4_s2/
│ │ └── __init__.py
│ ├── ConvTranspose2d_F32_R4/
│ │ └── __init__.py
│ ├── ConvTranspose2d_F32_R4_free/
│ │ └── __init__.py
│ ├── ConvTranspose2d_F32_R4_k4s2/
│ │ └── __init__.py
│ ├── ConvTranspose2d_F32_R4_k4s2p1/
│ │ └── __init__.py
│ ├── ConvTranspose2d_F32_R4_nobias/
│ │ └── __init__.py
│ ├── ConvTranspose2d_F32_R4_op01/
│ │ └── __init__.py
│ ├── ConvTranspose2d_F32_R4_p10/
│ │ └── __init__.py
│ ├── ConvTranspose2d_F32_R4_p11/
│ │ └── __init__.py
│ ├── ConvTranspose2d_F32_R4_p11_nobias/
│ │ └── __init__.py
│ ├── ConvTranspose2d_F32_R4_unk_bh/
│ │ └── __init__.py
│ ├── ConvTranspose2d_F32_R4_unk_bw/
│ │ └── __init__.py
│ ├── Cos_F32_R4/
│ │ └── __init__.py
│ ├── CumSum_F32_R4_1/
│ │ └── __init__.py
│ ├── CumSum_F32_R4_2/
│ │ └── __init__.py
│ ├── Div_F32_R4_C1/
│ │ └── __init__.py
│ ├── Equal_F32_R4/
│ │ └── __init__.py
│ ├── Equal_I64_R1/
│ │ └── __init__.py
│ ├── Erf_F32_R4/
│ │ └── __init__.py
│ ├── Exp_F32_R0/
│ │ └── __init__.py
│ ├── Exp_F32_R4/
│ │ └── __init__.py
│ ├── Expand_B_R4_D1/
│ │ └── __init__.py
│ ├── Expand_F32_R2/
│ │ └── __init__.py
│ ├── Expand_F32_R2_unk/
│ │ └── __init__.py
│ ├── Expand_F32_R3/
│ │ └── __init__.py
│ ├── Expand_F32_R4_D0/
│ │ └── __init__.py
│ ├── Expand_F32_R4_D1/
│ │ └── __init__.py
│ ├── Expand_F32_R4_D3/
│ │ └── __init__.py
│ ├── Expand_F32_R4_I1/
│ │ └── __init__.py
│ ├── Expand_F32_R4_k/
│ │ └── __init__.py
│ ├── Expand_I64_R4_D3/
│ │ └── __init__.py
│ ├── Flatten_F32_R4_0/
│ │ └── __init__.py
│ ├── Flatten_F32_R4_1/
│ │ └── __init__.py
│ ├── Floor_F32_R4/
│ │ └── __init__.py
│ ├── Gather_F32_R2/
│ │ └── __init__.py
│ ├── Gather_F32_R2_2/
│ │ └── __init__.py
│ ├── Gather_F32_R2_C1/
│ │ └── __init__.py
│ ├── Gather_F32_R2_C1_2/
│ │ └── __init__.py
│ ├── Gather_F32_R2_C1_3/
│ │ └── __init__.py
│ ├── Gemm_F32_R2/
│ │ └── __init__.py
│ ├── Gemm_F32_R2_C1/
│ │ └── __init__.py
│ ├── Gemm_F32_R2_a0b1/
│ │ └── __init__.py
│ ├── Gemm_F32_R2_a1b0/
│ │ └── __init__.py
│ ├── Gemm_F32_R2_a1b1/
│ │ └── __init__.py
│ ├── Gemm_F32_R2_a1b1_ta/
│ │ └── __init__.py
│ ├── Gemm_F32_R2_a1b1_tb/
│ │ └── __init__.py
│ ├── Gemm_F32_R2_ahbh/
│ │ └── __init__.py
│ ├── Gemm_F32_R2_nobias/
│ │ └── __init__.py
│ ├── GlobalAveragePool_F32_R4/
│ │ └── __init__.py
│ ├── Greater_F32_R2_C1/
│ │ └── __init__.py
│ ├── Greater_F32_R4/
│ │ └── __init__.py
│ ├── Hardsigmoid_F32_R2/
│ │ └── __init__.py
│ ├── Hardswish_F32_R4/
│ │ └── __init__.py
│ ├── Identity_F32_R2/
│ │ └── __init__.py
│ ├── InstanceNormalization_F32_R3/
│ │ └── __init__.py
│ ├── InstanceNormalization_F32_R4/
│ │ └── __init__.py
│ ├── InstanceNormalization_F32_R4_rand/
│ │ └── __init__.py
│ ├── LeakyReLU_F32_R4/
│ │ └── __init__.py
│ ├── LeakyReLU_F32_R4_ns/
│ │ └── __init__.py
│ ├── LogSoftmax_F32_R2/
│ │ └── __init__.py
│ ├── Log_F32_R2/
│ │ └── __init__.py
│ ├── Log_F32_R4/
│ │ └── __init__.py
│ ├── MatMul_F32_R2_hw/
│ │ └── __init__.py
│ ├── MatMul_F32_R3_11w/
│ │ └── __init__.py
│ ├── MatMul_F32_R3_1hw/
│ │ └── __init__.py
│ ├── MatMul_F32_R3_1hw_nobias/
│ │ └── __init__.py
│ ├── MatMul_F32_R3_c1w/
│ │ └── __init__.py
│ ├── MatMul_F32_R3_c1w_2/
│ │ └── __init__.py
│ ├── MatMul_F32_R3_c1w_3/
│ │ └── __init__.py
│ ├── MatMul_F32_R3_chw/
│ │ └── __init__.py
│ ├── MatMul_F32_R4_111w_C11hw/
│ │ └── __init__.py
│ ├── MatMul_F32_R4_11hw/
│ │ └── __init__.py
│ ├── MatMul_F32_R4_11hw_nobias/
│ │ └── __init__.py
│ ├── MatMul_F32_R4_1chw/
│ │ └── __init__.py
│ ├── MatMul_F32_R4_nchw_nobias/
│ │ └── __init__.py
│ ├── MaxPool2d_F32_R4/
│ │ └── __init__.py
│ ├── MaxPool2d_F32_R4_k12/
│ │ └── __init__.py
│ ├── MaxPool2d_F32_R4_p1/
│ │ └── __init__.py
│ ├── MaxPool2d_F32_R4_p23/
│ │ └── __init__.py
│ ├── MaxPool2d_F32_R4_p31/
│ │ └── __init__.py
│ ├── Max_F32_R4/
│ │ └── __init__.py
│ ├── Min_F32_R4/
│ │ └── __init__.py
│ ├── Mul_F32_R4/
│ │ └── __init__.py
│ ├── Neg_F32_R4/
│ │ └── __init__.py
│ ├── Not_F32_R4/
│ │ └── __init__.py
│ ├── PReLU_F32_R4/
│ │ └── __init__.py
│ ├── Pad_Constant2d_F32_R4/
│ │ └── __init__.py
│ ├── Pad_Constant2d_F32_R4_1/
│ │ └── __init__.py
│ ├── Pad_Constant2d_F32_R4_t4/
│ │ └── __init__.py
│ ├── Pad_Constant2d_F32_R4_t8/
│ │ └── __init__.py
│ ├── Pad_Constant2d_F32_R4_v14/
│ │ └── __init__.py
│ ├── Pad_Reflection2d_F32_R4/
│ │ └── __init__.py
│ ├── Pad_Reflection2d_F32_R4_1/
│ │ └── __init__.py
│ ├── Pow_F32_R2/
│ │ └── __init__.py
│ ├── Pow_F32_R2_3/
│ │ └── __init__.py
│ ├── Pow_F32_R4/
│ │ └── __init__.py
│ ├── QuantizeLinear_F32_R3_i16/
│ │ └── __init__.py
│ ├── QuantizeLinear_F32_R3_i16_cw/
│ │ └── __init__.py
│ ├── QuantizeLinear_F32_R3_ui8/
│ │ └── __init__.py
│ ├── QuantizeLinear_F32_R3_ui8_fq/
│ │ └── __init__.py
│ ├── QuantizeLinear_F32_R4_i16_cw/
│ │ └── __init__.py
│ ├── QuantizeLinear_F32_R4_ui8_cw/
│ │ └── __init__.py
│ ├── Range_F32_R0_1/
│ │ └── __init__.py
│ ├── Range_F32_R0_2/
│ │ └── __init__.py
│ ├── Range_F32_R0_3/
│ │ └── __init__.py
│ ├── ReLU_F32_R4/
│ │ └── __init__.py
│ ├── Reciprocal_F32_R4/
│ │ └── __init__.py
│ ├── ReduceMax_F32_R2/
│ │ └── __init__.py
│ ├── ReduceMax_F32_R2_d0/
│ │ └── __init__.py
│ ├── ReduceMax_F32_R2_d1/
│ │ └── __init__.py
│ ├── ReduceMax_F32_R2_d1_kd/
│ │ └── __init__.py
│ ├── ReduceMax_F32_R4/
│ │ └── __init__.py
│ ├── ReduceMean_F32_R4/
│ │ └── __init__.py
│ ├── ReduceMean_F32_R4_a23_kd/
│ │ └── __init__.py
│ ├── ReduceMean_F32_R4_a3/
│ │ └── __init__.py
│ ├── ReduceMean_F32_R4_v18/
│ │ └── __init__.py
│ ├── ReduceProd_F32_R2/
│ │ └── __init__.py
│ ├── ReduceSumSquare_F32_R2/
│ │ └── __init__.py
│ ├── ReduceSumSquare_F32_R2_d0/
│ │ └── __init__.py
│ ├── ReduceSumSquare_F32_R2_d1/
│ │ └── __init__.py
│ ├── ReduceSumSquare_F32_R2_d1_kd/
│ │ └── __init__.py
│ ├── ReduceSumSquare_F32_R4/
│ │ └── __init__.py
│ ├── ReduceSum_F32_R2/
│ │ └── __init__.py
│ ├── ReduceSum_F32_R2_V11/
│ │ └── __init__.py
│ ├── ReduceSum_F32_R2_d0/
│ │ └── __init__.py
│ ├── ReduceSum_F32_R2_d1/
│ │ └── __init__.py
│ ├── ReduceSum_F32_R2_d1_kd/
│ │ └── __init__.py
│ ├── ReduceSum_F32_R4/
│ │ └── __init__.py
│ ├── Reshape_F32_R4_1/
│ │ └── __init__.py
│ ├── Reshape_F32_R4_2/
│ │ └── __init__.py
│ ├── Reshape_F32_R4_3/
│ │ └── __init__.py
│ ├── Reshape_F32_R4_4/
│ │ └── __init__.py
│ ├── Reshape_F32_R4_5/
│ │ └── __init__.py
│ ├── Reshape_F32_R4_6/
│ │ └── __init__.py
│ ├── Resize_F32_R4/
│ │ └── __init__.py
│ ├── Resize_F32_R4_2/
│ │ └── __init__.py
│ ├── Resize_F32_R4_linear/
│ │ └── __init__.py
│ ├── Resize_F32_R4_linear_v11/
│ │ └── __init__.py
│ ├── Resize_F32_R4_nearest/
│ │ └── __init__.py
│ ├── Resize_F32_R4_unk/
│ │ └── __init__.py
│ ├── Rsqrt_F32_R4/
│ │ └── __init__.py
│ ├── Shape_F32_R4/
│ │ └── __init__.py
│ ├── Sigmoid_F32_R2/
│ │ └── __init__.py
│ ├── Sigmoid_F32_R4/
│ │ └── __init__.py
│ ├── Sign_F32_R4/
│ │ └── __init__.py
│ ├── Sin_F32_R4/
│ │ └── __init__.py
│ ├── Slice_F32_R2_4/
│ │ └── __init__.py
│ ├── Slice_F32_R3_4/
│ │ └── __init__.py
│ ├── Slice_F32_R3_C2_1/
│ │ └── __init__.py
│ ├── Slice_F32_R3_C2_2/
│ │ └── __init__.py
│ ├── Slice_F32_R3_unk_1/
│ │ └── __init__.py
│ ├── Slice_F32_R3_unk_2/
│ │ └── __init__.py
│ ├── Slice_F32_R4_1/
│ │ └── __init__.py
│ ├── Slice_F32_R4_2/
│ │ └── __init__.py
│ ├── Slice_F32_R4_3/
│ │ └── __init__.py
│ ├── Slice_F32_R4_4/
│ │ └── __init__.py
│ ├── Slice_F32_R4_5/
│ │ └── __init__.py
│ ├── Slice_F32_R4_6/
│ │ └── __init__.py
│ ├── Slice_F32_R4_7/
│ │ └── __init__.py
│ ├── Softmax_F32_R2/
│ │ └── __init__.py
│ ├── Softmax_F32_R2_v11/
│ │ └── __init__.py
│ ├── Softmax_F32_R3/
│ │ └── __init__.py
│ ├── Softmax_F32_R4/
│ │ └── __init__.py
│ ├── Split_F32_R3_ns/
│ │ └── __init__.py
│ ├── Split_F32_R4/
│ │ └── __init__.py
│ ├── Split_F32_R4_342/
│ │ └── __init__.py
│ ├── Split_F32_R4_d3_v11/
│ │ └── __init__.py
│ ├── Split_F32_R4_v11/
│ │ └── __init__.py
│ ├── Sqrt_F32_R4/
│ │ └── __init__.py
│ ├── Squeeze_F32_R4/
│ │ └── __init__.py
│ ├── Squeeze_F32_R4_axis/
│ │ └── __init__.py
│ ├── Squeeze_F32_R4_m1/
│ │ └── __init__.py
│ ├── Squeeze_F32_R4_m1_v11/
│ │ └── __init__.py
│ ├── Sub_F32_R4/
│ │ └── __init__.py
│ ├── Tanh_F32_R4/
│ │ └── __init__.py
│ ├── Tile_F32_R2/
│ │ └── __init__.py
│ ├── Transpose_F32_R4/
│ │ └── __init__.py
│ ├── Transpose_F32_R4_pm/
│ │ └── __init__.py
│ ├── Unsqueeze_F32_R0/
│ │ └── __init__.py
│ ├── Unsqueeze_F32_R0_v11/
│ │ └── __init__.py
│ ├── Unsqueeze_F32_R2_d01_v11/
│ │ └── __init__.py
│ ├── Unsqueeze_F32_R2_d02_v11/
│ │ └── __init__.py
│ ├── Unsqueeze_F32_R2_d13_v11/
│ │ └── __init__.py
│ ├── Unsqueeze_F32_R3_d0/
│ │ └── __init__.py
│ ├── Unsqueeze_F32_R3_d3/
│ │ └── __init__.py
│ ├── Unsqueeze_F32_R3_d3_v11/
│ │ └── __init__.py
│ ├── Unsqueeze_F32_R3_d_1/
│ │ └── __init__.py
│ ├── Upsample_F32_R4/
│ │ └── __init__.py
│ ├── Where_F32_R3_bc/
│ │ └── __init__.py
│ └── Where_F32_R4/
│ └── __init__.py
├── compiler/
│ ├── CMakeLists.txt
│ ├── _deprecated/
│ │ ├── README.md
│ │ ├── ann-api/
│ │ │ ├── CMakeLists.txt
│ │ │ ├── README.md
│ │ │ ├── exclude.me
│ │ │ └── include/
│ │ │ ├── .clang-format
│ │ │ └── NeuralNetworks.h
│ │ ├── ann-ref/
│ │ │ ├── .clang-format
│ │ │ ├── CMakeLists.txt
│ │ │ ├── README.md
│ │ │ ├── exclude.me
│ │ │ ├── requires.cmake
│ │ │ └── src/
│ │ │ ├── Assert.h
│ │ │ ├── CompilationBuilder.cpp
│ │ │ ├── CompilationBuilder.h
│ │ │ ├── ExecutionBuilder.cpp
│ │ │ ├── ExecutionBuilder.h
│ │ │ ├── Executor.cpp
│ │ │ ├── Executor.h
│ │ │ ├── Logging.cpp
│ │ │ ├── Logging.h
│ │ │ ├── Macro.h
│ │ │ ├── Memory.cpp
│ │ │ ├── Memory.h
│ │ │ ├── MemoryTracker.cpp
│ │ │ ├── MemoryTracker.h
│ │ │ ├── Model.h
│ │ │ ├── ModelArgumentInfo.cpp
│ │ │ ├── ModelArgumentInfo.h
│ │ │ ├── ModelBuilder.cpp
│ │ │ ├── ModelBuilder.h
│ │ │ ├── NeuralNetworks.cpp
│ │ │ ├── Operand.h
│ │ │ ├── OperandType.cpp
│ │ │ ├── OperandType.h
│ │ │ ├── OperandType.probe.cpp
│ │ │ ├── Operation.h
│ │ │ ├── OperationType.cpp
│ │ │ ├── OperationType.h
│ │ │ ├── OperationType.probe.cpp
│ │ │ ├── Probe.cpp
│ │ │ ├── Request.h
│ │ │ ├── Shape.cpp
│ │ │ ├── Shape.h
│ │ │ ├── Validation.cpp
│ │ │ ├── Validation.h
│ │ │ └── ops/
│ │ │ ├── Add.cpp
│ │ │ ├── Add.float.cpp
│ │ │ ├── Add.float.h
│ │ │ ├── Add.h
│ │ │ ├── AvgPool2D.cpp
│ │ │ ├── AvgPool2D.float.cpp
│ │ │ ├── AvgPool2D.float.h
│ │ │ ├── AvgPool2D.h
│ │ │ ├── Concatenation.cpp
│ │ │ ├── Concatenation.float.cpp
│ │ │ ├── Concatenation.float.h
│ │ │ ├── Concatenation.h
│ │ │ ├── Conv2D.cpp
│ │ │ ├── Conv2D.float.cpp
│ │ │ ├── Conv2D.float.h
│ │ │ ├── Conv2D.h
│ │ │ ├── DepthwiseConv2D.cpp
│ │ │ ├── DepthwiseConv2D.float.cpp
│ │ │ ├── DepthwiseConv2D.float.h
│ │ │ ├── DepthwiseConv2D.h
│ │ │ ├── Div.cpp
│ │ │ ├── Div.float.cpp
│ │ │ ├── Div.float.h
│ │ │ ├── Div.h
│ │ │ ├── FullyConnected.cpp
│ │ │ ├── FullyConnected.float.cpp
│ │ │ ├── FullyConnected.float.h
│ │ │ ├── FullyConnected.h
│ │ │ ├── MaxPool2D.cpp
│ │ │ ├── MaxPool2D.float.cpp
│ │ │ ├── MaxPool2D.float.h
│ │ │ ├── MaxPool2D.h
│ │ │ ├── Mul.cpp
│ │ │ ├── Mul.float.cpp
│ │ │ ├── Mul.float.h
│ │ │ ├── Mul.h
│ │ │ ├── Pad.cpp
│ │ │ ├── Pad.h
│ │ │ ├── ReLU.cpp
│ │ │ ├── ReLU.float.cpp
│ │ │ ├── ReLU.float.h
│ │ │ ├── ReLU.h
│ │ │ ├── ReLU6.cpp
│ │ │ ├── ReLU6.float.cpp
│ │ │ ├── ReLU6.float.h
│ │ │ ├── ReLU6.h
│ │ │ ├── Reshape.cpp
│ │ │ ├── Reshape.h
│ │ │ ├── Softmax.cpp
│ │ │ ├── Softmax.float.cpp
│ │ │ ├── Softmax.float.h
│ │ │ ├── Softmax.h
│ │ │ ├── Sub.cpp
│ │ │ ├── Sub.float.cpp
│ │ │ ├── Sub.float.h
│ │ │ ├── Sub.h
│ │ │ └── internal/
│ │ │ ├── ActivationUtils.h
│ │ │ ├── Array.h
│ │ │ ├── Dims.h
│ │ │ ├── Elementwise.cpp
│ │ │ ├── Elementwise.h
│ │ │ ├── FeatureMap.h
│ │ │ ├── Fused.cpp
│ │ │ ├── Fused.h
│ │ │ ├── GEMM.h
│ │ │ ├── Macro.h
│ │ │ ├── Matrix.h
│ │ │ ├── NDArray.h
│ │ │ ├── Pooling.cpp
│ │ │ ├── Pooling.h
│ │ │ └── Spatial.h
│ │ ├── caffe2circle/
│ │ │ ├── CMakeLists.txt
│ │ │ ├── README.md
│ │ │ ├── exclude.me
│ │ │ ├── requires.cmake
│ │ │ └── src/
│ │ │ └── caffe2circle.cpp
│ │ ├── caffegen/
│ │ │ ├── CMakeLists.txt
│ │ │ ├── README.md
│ │ │ ├── exclude.me
│ │ │ └── src/
│ │ │ ├── DecodeCommand.cpp
│ │ │ ├── DecodeCommand.h
│ │ │ ├── Driver.cpp
│ │ │ ├── EncodeCommand.cpp
│ │ │ ├── EncodeCommand.h
│ │ │ ├── InitCommand.cpp
│ │ │ ├── InitCommand.h
│ │ │ ├── MergeCommand.cpp
│ │ │ └── MergeCommand.h
│ │ ├── coco/
│ │ │ ├── CMakeLists.txt
│ │ │ ├── README.md
│ │ │ ├── core/
│ │ │ │ ├── CMakeLists.txt
│ │ │ │ ├── include/
│ │ │ │ │ └── coco/
│ │ │ │ │ ├── ADT/
│ │ │ │ │ │ ├── DLinkedList.h
│ │ │ │ │ │ ├── PtrList.h
│ │ │ │ │ │ └── PtrManager.h
│ │ │ │ │ ├── IR/
│ │ │ │ │ │ ├── Arg.h
│ │ │ │ │ │ ├── Bag.h
│ │ │ │ │ │ ├── BagManager.h
│ │ │ │ │ │ ├── Block.forward.h
│ │ │ │ │ │ ├── Block.h
│ │ │ │ │ │ ├── BlockIndex.h
│ │ │ │ │ │ ├── BlockManager.h
│ │ │ │ │ │ ├── Def.forward.h
│ │ │ │ │ │ ├── Def.h
│ │ │ │ │ │ ├── Dep.forward.h
│ │ │ │ │ │ ├── Dep.h
│ │ │ │ │ │ ├── DepSet.h
│ │ │ │ │ │ ├── ElemID.h
│ │ │ │ │ │ ├── Entity.h
│ │ │ │ │ │ ├── EntityBuilder.h
│ │ │ │ │ │ ├── EntityManager.h
│ │ │ │ │ │ ├── FeatureLayout.h
│ │ │ │ │ │ ├── FeatureLayouts.h
│ │ │ │ │ │ ├── FeatureObject.forward.h
│ │ │ │ │ │ ├── FeatureObject.h
│ │ │ │ │ │ ├── FeatureShape.h
│ │ │ │ │ │ ├── Input.forward.h
│ │ │ │ │ │ ├── Input.h
│ │ │ │ │ │ ├── InputList.h
│ │ │ │ │ │ ├── InputManager.h
│ │ │ │ │ │ ├── Instr.forward.h
│ │ │ │ │ │ ├── Instr.h
│ │ │ │ │ │ ├── Instr.lst
│ │ │ │ │ │ ├── InstrIndex.h
│ │ │ │ │ │ ├── InstrManager.h
│ │ │ │ │ │ ├── Instrs.h
│ │ │ │ │ │ ├── KernelLayout.h
│ │ │ │ │ │ ├── KernelLayouts.h
│ │ │ │ │ │ ├── KernelObject.forward.h
│ │ │ │ │ │ ├── KernelObject.h
│ │ │ │ │ │ ├── Locatable.h
│ │ │ │ │ │ ├── Module.forward.h
│ │ │ │ │ │ ├── Module.h
│ │ │ │ │ │ ├── Object.forward.h
│ │ │ │ │ │ ├── Object.h
│ │ │ │ │ │ ├── ObjectManager.h
│ │ │ │ │ │ ├── ObjectSet.h
│ │ │ │ │ │ ├── Op.forward.h
│ │ │ │ │ │ ├── Op.h
│ │ │ │ │ │ ├── Op.lst
│ │ │ │ │ │ ├── OpManager.h
│ │ │ │ │ │ ├── Ops.h
│ │ │ │ │ │ ├── Output.forward.h
│ │ │ │ │ │ ├── Output.h
│ │ │ │ │ │ ├── OutputList.h
│ │ │ │ │ │ ├── OutputManager.h
│ │ │ │ │ │ ├── Padding2D.h
│ │ │ │ │ │ ├── Part.forward.h
│ │ │ │ │ │ ├── Part.h
│ │ │ │ │ │ ├── Read.forward.h
│ │ │ │ │ │ ├── Read.h
│ │ │ │ │ │ ├── ReadSet.h
│ │ │ │ │ │ ├── Step.forward.h
│ │ │ │ │ │ ├── Step.h
│ │ │ │ │ │ ├── Stride2D.h
│ │ │ │ │ │ ├── Update.forward.h
│ │ │ │ │ │ ├── Update.h
│ │ │ │ │ │ ├── UpdateSet.h
│ │ │ │ │ │ ├── Use.forward.h
│ │ │ │ │ │ ├── Use.h
│ │ │ │ │ │ ├── UseSet.h
│ │ │ │ │ │ └── Window2D.h
│ │ │ │ │ └── IR.h
│ │ │ │ └── src/
│ │ │ │ ├── ADT/
│ │ │ │ │ ├── DLinkedList.test.cpp
│ │ │ │ │ ├── PtrList.cpp
│ │ │ │ │ ├── PtrList.test.cpp
│ │ │ │ │ └── PtrManager.test.cpp
│ │ │ │ ├── IR/
│ │ │ │ │ ├── Arg.cpp
│ │ │ │ │ ├── Arg.test.cpp
│ │ │ │ │ ├── AvgPool2D.test.cpp
│ │ │ │ │ ├── Bag.cpp
│ │ │ │ │ ├── Bag.test.cpp
│ │ │ │ │ ├── BagManager.cpp
│ │ │ │ │ ├── BagManager.test.cpp
│ │ │ │ │ ├── Block.cpp
│ │ │ │ │ ├── Block.test.cpp
│ │ │ │ │ ├── BlockIndex.cpp
│ │ │ │ │ ├── BlockIndex.test.cpp
│ │ │ │ │ ├── BlockManager.cpp
│ │ │ │ │ ├── BlockManager.test.cpp
│ │ │ │ │ ├── Consumer.mock.h
│ │ │ │ │ ├── Conv2D.cpp
│ │ │ │ │ ├── Conv2D.test.cpp
│ │ │ │ │ ├── Def.cpp
│ │ │ │ │ ├── Def.test.cpp
│ │ │ │ │ ├── Dep.cpp
│ │ │ │ │ ├── Dep.test.cpp
│ │ │ │ │ ├── ElemID.cpp
│ │ │ │ │ ├── ElemID.test.cpp
│ │ │ │ │ ├── EntityManager.cpp
│ │ │ │ │ ├── Eval.cpp
│ │ │ │ │ ├── Eval.test.cpp
│ │ │ │ │ ├── FeatureLayouts.cpp
│ │ │ │ │ ├── FeatureLayouts.test.cpp
│ │ │ │ │ ├── FeatureObject.cpp
│ │ │ │ │ ├── FeatureObject.test.cpp
│ │ │ │ │ ├── FeatureShape.test.cpp
│ │ │ │ │ ├── Input.cpp
│ │ │ │ │ ├── Input.test.cpp
│ │ │ │ │ ├── InputManager.cpp
│ │ │ │ │ ├── InputManager.test.cpp
│ │ │ │ │ ├── Instr.cpp
│ │ │ │ │ ├── InstrIndex.cpp
│ │ │ │ │ ├── InstrIndex.test.cpp
│ │ │ │ │ ├── InstrManager.cpp
│ │ │ │ │ ├── InstrManager.test.cpp
│ │ │ │ │ ├── KernelLayouts.cpp
│ │ │ │ │ ├── KernelLayouts.test.cpp
│ │ │ │ │ ├── KernelObject.cpp
│ │ │ │ │ ├── KernelObject.test.cpp
│ │ │ │ │ ├── Load.cpp
│ │ │ │ │ ├── MaxPool2D.test.cpp
│ │ │ │ │ ├── Module.cpp
│ │ │ │ │ ├── Module.test.cpp
│ │ │ │ │ ├── Object.cpp
│ │ │ │ │ ├── Object.test.cpp
│ │ │ │ │ ├── ObjectManager.cpp
│ │ │ │ │ ├── ObjectManager.test.cpp
│ │ │ │ │ ├── Op.cpp
│ │ │ │ │ ├── OpManager.cpp
│ │ │ │ │ ├── OpManager.test.cpp
│ │ │ │ │ ├── Ops.cpp
│ │ │ │ │ ├── Ops.test.cpp
│ │ │ │ │ ├── Output.cpp
│ │ │ │ │ ├── Output.test.cpp
│ │ │ │ │ ├── OutputManager.cpp
│ │ │ │ │ ├── OutputManager.test.cpp
│ │ │ │ │ ├── PadF.test.cpp
│ │ │ │ │ ├── Padding2D.cpp
│ │ │ │ │ ├── Padding2D.test.cpp
│ │ │ │ │ ├── Part.cpp
│ │ │ │ │ ├── Part.test.cpp
│ │ │ │ │ ├── Producer.mock.h
│ │ │ │ │ ├── ReLU.test.cpp
│ │ │ │ │ ├── ReLU6.test.cpp
│ │ │ │ │ ├── Read.cpp
│ │ │ │ │ ├── Read.test.cpp
│ │ │ │ │ ├── Reader.mock.h
│ │ │ │ │ ├── Shuffle.cpp
│ │ │ │ │ ├── Shuffle.test.cpp
│ │ │ │ │ ├── Sqrt.test.cpp
│ │ │ │ │ ├── Step.cpp
│ │ │ │ │ ├── Stride2D.cpp
│ │ │ │ │ ├── Stride2D.test.cpp
│ │ │ │ │ ├── Sub.test.cpp
│ │ │ │ │ ├── Update.cpp
│ │ │ │ │ ├── Update.test.cpp
│ │ │ │ │ ├── Updater.mock.h
│ │ │ │ │ ├── Use.cpp
│ │ │ │ │ ├── Use.test.cpp
│ │ │ │ │ └── Window2D.test.cpp
│ │ │ │ └── IR.test.cpp
│ │ │ ├── exclude.me
│ │ │ ├── generic/
│ │ │ │ ├── CMakeLists.txt
│ │ │ │ ├── include/
│ │ │ │ │ └── coco/
│ │ │ │ │ ├── ADT/
│ │ │ │ │ │ └── Span.h
│ │ │ │ │ └── IR/
│ │ │ │ │ ├── Data.h
│ │ │ │ │ └── PlainWeightContext.h
│ │ │ │ └── src/
│ │ │ │ ├── ADT/
│ │ │ │ │ └── Span.test.cpp
│ │ │ │ └── IR/
│ │ │ │ ├── Data.cpp
│ │ │ │ └── Data.test.cpp
│ │ │ └── requires.cmake
│ │ ├── enco/
│ │ │ ├── CMakeLists.txt
│ │ │ ├── README.md
│ │ │ ├── cli/
│ │ │ │ ├── CMakeLists.txt
│ │ │ │ └── src/
│ │ │ │ └── Driver.cpp
│ │ │ ├── core/
│ │ │ │ ├── CMakeLists.txt
│ │ │ │ ├── include/
│ │ │ │ │ └── enco/
│ │ │ │ │ └── Backend.h
│ │ │ │ └── src/
│ │ │ │ ├── ANN/
│ │ │ │ │ ├── Binder.h
│ │ │ │ │ ├── Context.cpp
│ │ │ │ │ ├── Context.h
│ │ │ │ │ ├── Context.test.cpp
│ │ │ │ │ └── IR/
│ │ │ │ │ ├── DType.cpp
│ │ │ │ │ ├── DType.h
│ │ │ │ │ ├── DType.test.cpp
│ │ │ │ │ ├── InputList.h
│ │ │ │ │ ├── Module.h
│ │ │ │ │ ├── Module.test.cpp
│ │ │ │ │ ├── Operand.h
│ │ │ │ │ ├── Operand.test.cpp
│ │ │ │ │ ├── OperandID.h
│ │ │ │ │ ├── OperandID.test.cpp
│ │ │ │ │ ├── OperandInventory.cpp
│ │ │ │ │ ├── OperandInventory.h
│ │ │ │ │ ├── OperandInventory.test.cpp
│ │ │ │ │ ├── Operation.def
│ │ │ │ │ ├── Operation.h
│ │ │ │ │ ├── Operation.test.cpp
│ │ │ │ │ ├── OperationInventory.cpp
│ │ │ │ │ ├── OperationInventory.h
│ │ │ │ │ ├── OperationInventory.test.cpp
│ │ │ │ │ ├── OutputList.h
│ │ │ │ │ ├── Weight.h
│ │ │ │ │ ├── Weight.test.cpp
│ │ │ │ │ ├── WeightInventory.cpp
│ │ │ │ │ ├── WeightInventory.h
│ │ │ │ │ └── WeightInventory.test.cpp
│ │ │ │ ├── AsmCode.cpp
│ │ │ │ ├── AsmCode.h
│ │ │ │ ├── Backend.cpp
│ │ │ │ ├── Code.h
│ │ │ │ ├── Code.test.cpp
│ │ │ │ ├── CodeIndex.h
│ │ │ │ ├── CppCode.cpp
│ │ │ │ ├── CppCode.h
│ │ │ │ ├── CppGen/
│ │ │ │ │ ├── Host.cpp
│ │ │ │ │ ├── Host.h
│ │ │ │ │ ├── MemoryContext.cpp
│ │ │ │ │ ├── MemoryContext.h
│ │ │ │ │ ├── Subnet.cpp
│ │ │ │ │ └── Subnet.h
│ │ │ │ ├── Dims.h
│ │ │ │ ├── IRUtils.cpp
│ │ │ │ ├── IRUtils.h
│ │ │ │ ├── IRValidator.cpp
│ │ │ │ ├── IRValidator.h
│ │ │ │ ├── IRValidator.test.cpp
│ │ │ │ ├── Pass.h
│ │ │ │ ├── Pass.test.cpp
│ │ │ │ ├── Pipeline.h
│ │ │ │ ├── Pipeline.test.cpp
│ │ │ │ ├── Session.cpp
│ │ │ │ ├── Session.h
│ │ │ │ ├── String.h
│ │ │ │ ├── Support/
│ │ │ │ │ ├── Debugging.cpp
│ │ │ │ │ ├── Debugging.h
│ │ │ │ │ └── Debugging.test.cpp
│ │ │ │ ├── Transforms/
│ │ │ │ │ ├── AvgPoolLowering.cpp
│ │ │ │ │ ├── AvgPoolLowering.h
│ │ │ │ │ ├── ConcatLowering.cpp
│ │ │ │ │ ├── ConcatLowering.h
│ │ │ │ │ ├── ConstantFolding.cpp
│ │ │ │ │ ├── ConstantFolding.h
│ │ │ │ │ ├── ConstantFolding.test.cpp
│ │ │ │ │ ├── CopyLowering.cpp
│ │ │ │ │ ├── CopyLowering.h
│ │ │ │ │ ├── DataLayoutConversion.cpp
│ │ │ │ │ ├── DataLayoutConversion.h
│ │ │ │ │ ├── DataLayoutConversion.test.cpp
│ │ │ │ │ ├── DeadBagElimination.cpp
│ │ │ │ │ ├── DeadBagElimination.h
│ │ │ │ │ ├── DeadObjectElimination.cpp
│ │ │ │ │ ├── DeadObjectElimination.h
│ │ │ │ │ ├── Duplicate.cpp
│ │ │ │ │ ├── Duplicate.h
│ │ │ │ │ ├── DuplicatedObjectReduction.cpp
│ │ │ │ │ ├── DuplicatedObjectReduction.h
│ │ │ │ │ ├── FeatureUnification.cpp
│ │ │ │ │ ├── FeatureUnification.h
│ │ │ │ │ ├── FreeInstrElimination.cpp
│ │ │ │ │ ├── FreeInstrElimination.h
│ │ │ │ │ ├── FreeInstrElimination.test.cpp
│ │ │ │ │ ├── FreeOpElimination.cpp
│ │ │ │ │ ├── FreeOpElimination.h
│ │ │ │ │ ├── FreeOpElimination.test.cpp
│ │ │ │ │ ├── GlobalDataGeneration.cpp
│ │ │ │ │ ├── GlobalDataGeneration.h
│ │ │ │ │ ├── IdenticalObjectReduction.cpp
│ │ │ │ │ ├── IdenticalObjectReduction.h
│ │ │ │ │ ├── IdenticalObjectReduction.test.cpp
│ │ │ │ │ ├── IndirectCopyElimination.cpp
│ │ │ │ │ ├── IndirectCopyElimination.h
│ │ │ │ │ ├── IntrinsicSelection.cpp
│ │ │ │ │ ├── IntrinsicSelection.h
│ │ │ │ │ ├── Optimizations.cpp
│ │ │ │ │ ├── Optimizations.h
│ │ │ │ │ ├── Split.cpp
│ │ │ │ │ └── Split.h
│ │ │ │ ├── Usage.cpp
│ │ │ │ ├── Usage.h
│ │ │ │ └── coex/
│ │ │ │ ├── IR.h
│ │ │ │ └── IR.test.cpp
│ │ │ ├── exclude.me
│ │ │ ├── frontend/
│ │ │ │ ├── CMakeLists.txt
│ │ │ │ ├── caffe/
│ │ │ │ │ ├── CMakeLists.txt
│ │ │ │ │ └── src/
│ │ │ │ │ ├── ConcatSpec.cpp
│ │ │ │ │ ├── ConcatSpec.h
│ │ │ │ │ ├── ConcatSpec.test.cpp
│ │ │ │ │ ├── Context.cpp
│ │ │ │ │ ├── Context.h
│ │ │ │ │ ├── Convert.cpp
│ │ │ │ │ ├── Convert.h
│ │ │ │ │ ├── ConvolutionSpec.cpp
│ │ │ │ │ ├── ConvolutionSpec.h
│ │ │ │ │ ├── ConvolutionSpec.test.cpp
│ │ │ │ │ ├── Entry.cpp
│ │ │ │ │ ├── Frontend.cpp
│ │ │ │ │ ├── Frontend.h
│ │ │ │ │ ├── GraphBuilder.cpp
│ │ │ │ │ ├── GraphBuilder.h
│ │ │ │ │ ├── GraphBuilderRegistry.cpp
│ │ │ │ │ ├── GraphBuilderRegistry.h
│ │ │ │ │ ├── IRBuilder.h
│ │ │ │ │ ├── Importer.cpp
│ │ │ │ │ ├── Importer.h
│ │ │ │ │ ├── Layer/
│ │ │ │ │ │ ├── BatchNorm.cpp
│ │ │ │ │ │ ├── BatchNorm.h
│ │ │ │ │ │ ├── Concatenation.cpp
│ │ │ │ │ │ ├── Concatenation.h
│ │ │ │ │ │ ├── Convolution.cpp
│ │ │ │ │ │ ├── Convolution.h
│ │ │ │ │ │ ├── Eltwise.cpp
│ │ │ │ │ │ ├── Eltwise.h
│ │ │ │ │ │ ├── Input.cpp
│ │ │ │ │ │ ├── Input.h
│ │ │ │ │ │ ├── Pooling.cpp
│ │ │ │ │ │ ├── Pooling.h
│ │ │ │ │ │ ├── ReLU.cpp
│ │ │ │ │ │ ├── ReLU.h
│ │ │ │ │ │ ├── Scale.cpp
│ │ │ │ │ │ └── Scale.h
│ │ │ │ │ ├── Padding.h
│ │ │ │ │ ├── Padding.test.cpp
│ │ │ │ │ ├── PaddingUtils.cpp
│ │ │ │ │ ├── PaddingUtils.h
│ │ │ │ │ ├── PoolingSpec.cpp
│ │ │ │ │ ├── PoolingSpec.h
│ │ │ │ │ ├── PoolingSpec.test.cpp
│ │ │ │ │ ├── ShapeQuery.cpp
│ │ │ │ │ └── ShapeQuery.h
│ │ │ │ └── tflite/
│ │ │ │ ├── CMakeLists.txt
│ │ │ │ ├── schema/
│ │ │ │ │ ├── schema.fbs
│ │ │ │ │ └── schema.meta
│ │ │ │ └── src/
│ │ │ │ ├── Context.cpp
│ │ │ │ ├── Context.h
│ │ │ │ ├── Convert.cpp
│ │ │ │ ├── Convert.h
│ │ │ │ ├── Entry.cpp
│ │ │ │ ├── Frontend.cpp
│ │ │ │ ├── Frontend.h
│ │ │ │ ├── Frontend.test.cpp
│ │ │ │ ├── GraphBuilder.h
│ │ │ │ ├── GraphBuilderRegistry.h
│ │ │ │ ├── IRBuilder.h
│ │ │ │ ├── Op/
│ │ │ │ │ ├── Activation.cpp
│ │ │ │ │ ├── Activation.h
│ │ │ │ │ ├── AveragePool2D.cpp
│ │ │ │ │ ├── AveragePool2D.h
│ │ │ │ │ ├── Concatenation.cpp
│ │ │ │ │ ├── Concatenation.h
│ │ │ │ │ ├── Conv2D.cpp
│ │ │ │ │ ├── Conv2D.h
│ │ │ │ │ ├── DepthwiseConv2D.cpp
│ │ │ │ │ ├── DepthwiseConv2D.h
│ │ │ │ │ ├── Div.cpp
│ │ │ │ │ ├── Div.h
│ │ │ │ │ ├── MaxPool2D.cpp
│ │ │ │ │ ├── MaxPool2D.h
│ │ │ │ │ ├── Padding.cpp
│ │ │ │ │ ├── Padding.h
│ │ │ │ │ ├── ReLU.cpp
│ │ │ │ │ ├── ReLU.h
│ │ │ │ │ ├── ReLU6.cpp
│ │ │ │ │ ├── ReLU6.h
│ │ │ │ │ ├── Reshape.cpp
│ │ │ │ │ ├── Reshape.h
│ │ │ │ │ ├── Sub.cpp
│ │ │ │ │ └── Sub.h
│ │ │ │ ├── RawModel.h
│ │ │ │ ├── RawModelLoader.cpp
│ │ │ │ ├── RawModelLoader.h
│ │ │ │ └── TensorBags.h
│ │ │ ├── requires.cmake
│ │ │ └── test/
│ │ │ ├── CMakeLists.txt
│ │ │ ├── basic/
│ │ │ │ ├── 000/
│ │ │ │ │ ├── CMakeLists.txt
│ │ │ │ │ └── enco.test.cpp
│ │ │ │ └── CMakeLists.txt
│ │ │ ├── binder.cpp
│ │ │ ├── caffe/
│ │ │ │ ├── CMakeLists.txt
│ │ │ │ └── runall.sh
│ │ │ └── tflite/
│ │ │ ├── AveragePool2D_000/
│ │ │ │ ├── INFERENCE
│ │ │ │ └── test.recipe
│ │ │ ├── AveragePool2D_001/
│ │ │ │ ├── INFERENCE
│ │ │ │ └── test.recipe
│ │ │ ├── CMakeLists.txt
│ │ │ ├── Concat_000/
│ │ │ │ ├── INFERENCE
│ │ │ │ └── test.recipe
│ │ │ ├── Concat_001/
│ │ │ │ ├── INFERENCE
│ │ │ │ └── test.recipe
│ │ │ ├── Concat_002/
│ │ │ │ ├── INFERENCE
│ │ │ │ └── test.recipe
│ │ │ ├── Concat_003/
│ │ │ │ ├── INFERENCE
│ │ │ │ └── test.recipe
│ │ │ ├── Conv2D_000/
│ │ │ │ ├── INFERENCE
│ │ │ │ └── test.recipe
│ │ │ ├── Conv2D_001/
│ │ │ │ ├── INFERENCE
│ │ │ │ └── test.recipe
│ │ │ ├── Conv2D_002/
│ │ │ │ ├── INFERENCE
│ │ │ │ └── test.recipe
│ │ │ ├── Conv2D_003/
│ │ │ │ ├── INFERENCE
│ │ │ │ └── test.recipe
│ │ │ ├── Conv2D_004/
│ │ │ │ ├── INFERENCE
│ │ │ │ └── test.recipe
│ │ │ ├── DepthwiseConv2D_000/
│ │ │ │ ├── INFERENCE
│ │ │ │ └── test.recipe
│ │ │ ├── DepthwiseConv2D_001/
│ │ │ │ ├── INFERENCE
│ │ │ │ └── test.recipe
│ │ │ ├── Div_000/
│ │ │ │ ├── INFERENCE
│ │ │ │ └── test.recipe
│ │ │ ├── MaxPool2D_000/
│ │ │ │ ├── INFERENCE
│ │ │ │ └── test.recipe
│ │ │ ├── ReLU6_000/
│ │ │ │ ├── INFERENCE
│ │ │ │ └── test.recipe
│ │ │ ├── ReLU_000/
│ │ │ │ ├── INFERENCE
│ │ │ │ └── test.recipe
│ │ │ ├── Regression_0000/
│ │ │ │ ├── INFERENCE
│ │ │ │ └── test.recipe
│ │ │ ├── Regression_0001/
│ │ │ │ ├── INFERENCE
│ │ │ │ └── test.recipe
│ │ │ ├── Regression_0002/
│ │ │ │ ├── INFERENCE
│ │ │ │ └── test.recipe
│ │ │ ├── Regression_0003/
│ │ │ │ ├── INFERENCE
│ │ │ │ └── test.recipe
│ │ │ ├── Regression_0004/
│ │ │ │ ├── INFERENCE
│ │ │ │ └── test.recipe
│ │ │ ├── Reshape_000/
│ │ │ │ ├── INFERENCE
│ │ │ │ └── test.recipe
│ │ │ ├── Sub_000/
│ │ │ │ ├── INFERENCE
│ │ │ │ └── test.recipe
│ │ │ ├── empty/
│ │ │ │ ├── INFERENCE
│ │ │ │ └── test.recipe
│ │ │ └── runall.sh
│ │ ├── enco-intf/
│ │ │ ├── CMakeLists.txt
│ │ │ ├── README.md
│ │ │ ├── cmdline/
│ │ │ │ ├── CMakeLists.txt
│ │ │ │ └── include/
│ │ │ │ └── cmdline/
│ │ │ │ └── View.h
│ │ │ ├── exclude.me
│ │ │ └── frontend/
│ │ │ ├── CMakeLists.txt
│ │ │ └── include/
│ │ │ └── enco/
│ │ │ ├── Bundle.h
│ │ │ └── Frontend.h
│ │ ├── encodump/
│ │ │ ├── CMakeLists.txt
│ │ │ ├── README.md
│ │ │ ├── exclude.me
│ │ │ ├── requires.cmake
│ │ │ └── src/
│ │ │ ├── Driver.cpp
│ │ │ ├── Dump.cpp
│ │ │ └── Dump.h
│ │ ├── mir/
│ │ │ ├── CMakeLists.txt
│ │ │ ├── Readme.md
│ │ │ ├── exclude.me
│ │ │ ├── include/
│ │ │ │ ├── mir/
│ │ │ │ │ ├── Attributes.h
│ │ │ │ │ ├── Common.h
│ │ │ │ │ ├── DataFormat.h
│ │ │ │ │ ├── DataType.h
│ │ │ │ │ ├── ExternalRegion.h
│ │ │ │ │ ├── Graph.h
│ │ │ │ │ ├── GraphPatternMatcher.h
│ │ │ │ │ ├── Index.h
│ │ │ │ │ ├── IrDotDumper.h
│ │ │ │ │ ├── OpDefs.h
│ │ │ │ │ ├── Operation.h
│ │ │ │ │ ├── Operations.inc
│ │ │ │ │ ├── Quantization.h
│ │ │ │ │ ├── Region.h
│ │ │ │ │ ├── Shape.h
│ │ │ │ │ ├── ShapeRange.h
│ │ │ │ │ ├── Tensor.h
│ │ │ │ │ ├── TensorType.h
│ │ │ │ │ ├── TensorUtil.h
│ │ │ │ │ ├── TensorVariant.h
│ │ │ │ │ ├── Visitor.h
│ │ │ │ │ └── ops/
│ │ │ │ │ ├── AbsOp.h
│ │ │ │ │ ├── AddOp.h
│ │ │ │ │ ├── AvgPool2DOp.h
│ │ │ │ │ ├── BinaryElementwiseOp.h
│ │ │ │ │ ├── BroadcastOp.h
│ │ │ │ │ ├── CappedReluOp.h
│ │ │ │ │ ├── ConcatOp.h
│ │ │ │ │ ├── ConstantOp.h
│ │ │ │ │ ├── Conv2DOp.h
│ │ │ │ │ ├── Deconv2DOp.h
│ │ │ │ │ ├── DepthwiseConv2DOp.h
│ │ │ │ │ ├── DequantizeOp.h
│ │ │ │ │ ├── DivOp.h
│ │ │ │ │ ├── EluOp.h
│ │ │ │ │ ├── EqualOp.h
│ │ │ │ │ ├── FullyConnectedOp.h
│ │ │ │ │ ├── GatherOp.h
│ │ │ │ │ ├── GreaterOp.h
│ │ │ │ │ ├── HardSwishOp.h
│ │ │ │ │ ├── InputOp.h
│ │ │ │ │ ├── LeakyReluOp.h
│ │ │ │ │ ├── LessOp.h
│ │ │ │ │ ├── MaxOp.h
│ │ │ │ │ ├── MaxPool2DOp.h
│ │ │ │ │ ├── MulOp.h
│ │ │ │ │ ├── OutputOp.h
│ │ │ │ │ ├── PadOp.h
│ │ │ │ │ ├── PaddingType.h
│ │ │ │ │ ├── QuantizeOp.h
│ │ │ │ │ ├── ReduceMeanOp.h
│ │ │ │ │ ├── ReduceOp.h
│ │ │ │ │ ├── ReluOp.h
│ │ │ │ │ ├── ReshapeOp.h
│ │ │ │ │ ├── ResizeOp.h
│ │ │ │ │ ├── SigmoidOp.h
│ │ │ │ │ ├── SliceOp.h
│ │ │ │ │ ├── SoftmaxOp.h
│ │ │ │ │ ├── SqrtOp.h
│ │ │ │ │ ├── SqueezeOp.h
│ │ │ │ │ ├── SubOp.h
│ │ │ │ │ ├── TanhOp.h
│ │ │ │ │ └── TransposeOp.h
│ │ │ │ ├── mir_caffe2_importer/
│ │ │ │ │ └── caffe2_importer.h
│ │ │ │ ├── mir_caffe_importer/
│ │ │ │ │ └── caffe_importer.h
│ │ │ │ ├── mir_onnx_importer/
│ │ │ │ │ └── ONNXImporterImpl.h
│ │ │ │ └── mir_tflite_importer/
│ │ │ │ └── tflite_importer.h
│ │ │ ├── src/
│ │ │ │ ├── DotGraph.cpp
│ │ │ │ ├── DotGraph.h
│ │ │ │ ├── DotNodeBuilder.cpp
│ │ │ │ ├── DotNodeBuilder.h
│ │ │ │ ├── Graph.cpp
│ │ │ │ ├── GraphPatternMatcher.cpp
│ │ │ │ ├── Index.cpp
│ │ │ │ ├── IrDotDumper.cpp
│ │ │ │ ├── Operation.cpp
│ │ │ │ ├── Shape.cpp
│ │ │ │ ├── Tensor.cpp
│ │ │ │ ├── TensorVariant.cpp
│ │ │ │ ├── Visitor.cpp
│ │ │ │ ├── mir_caffe2_importer/
│ │ │ │ │ ├── CMakeLists.txt
│ │ │ │ │ ├── caffe2_importer.cpp
│ │ │ │ │ ├── caffe2_op_creator.cpp
│ │ │ │ │ ├── caffe2_op_creator.h
│ │ │ │ │ ├── caffe2_op_types.h
│ │ │ │ │ ├── caffe2_proto_helper.cpp
│ │ │ │ │ └── caffe2_proto_helper.h
│ │ │ │ ├── mir_caffe_importer/
│ │ │ │ │ ├── CMakeLists.txt
│ │ │ │ │ ├── caffe_importer.cpp
│ │ │ │ │ ├── caffe_op_creator.cpp
│ │ │ │ │ ├── caffe_op_creator.h
│ │ │ │ │ └── caffe_op_types.h
│ │ │ │ ├── mir_onnx_importer/
│ │ │ │ │ ├── AttributeHelpers.h
│ │ │ │ │ ├── CMakeLists.txt
│ │ │ │ │ ├── ConvPoolHelpers.cpp
│ │ │ │ │ ├── ConvPoolHelpers.h
│ │ │ │ │ ├── ONNXHelpers.cpp
│ │ │ │ │ ├── ONNXHelpers.h
│ │ │ │ │ ├── ONNXImporterImpl.cpp
│ │ │ │ │ ├── ONNXNodeConverterRegistry.cpp
│ │ │ │ │ ├── ONNXNodeConverterRegistry.h
│ │ │ │ │ ├── ONNXNodeConverterRegistry.test.cpp
│ │ │ │ │ ├── ONNXOpRegistration.h
│ │ │ │ │ └── Op/
│ │ │ │ │ ├── Abs.cpp
│ │ │ │ │ ├── Abs.h
│ │ │ │ │ ├── Add.cpp
│ │ │ │ │ ├── Add.h
│ │ │ │ │ ├── AveragePool.cpp
│ │ │ │ │ ├── AveragePool.h
│ │ │ │ │ ├── BatchNormalization.cpp
│ │ │ │ │ ├── BatchNormalization.h
│ │ │ │ │ ├── Concat.cpp
│ │ │ │ │ ├── Concat.h
│ │ │ │ │ ├── Constant.cpp
│ │ │ │ │ ├── Constant.h
│ │ │ │ │ ├── Conv.cpp
│ │ │ │ │ ├── Conv.h
│ │ │ │ │ ├── ConvTranspose.cpp
│ │ │ │ │ ├── ConvTranspose.h
│ │ │ │ │ ├── Div.cpp
│ │ │ │ │ ├── Div.h
│ │ │ │ │ ├── Dropout.cpp
│ │ │ │ │ ├── Dropout.h
│ │ │ │ │ ├── Equal.cpp
│ │ │ │ │ ├── Equal.h
│ │ │ │ │ ├── Expand.cpp
│ │ │ │ │ ├── Expand.h
│ │ │ │ │ ├── Flatten.cpp
│ │ │ │ │ ├── Flatten.h
│ │ │ │ │ ├── Gather.cpp
│ │ │ │ │ ├── Gather.h
│ │ │ │ │ ├── Gemm.cpp
│ │ │ │ │ ├── Gemm.h
│ │ │ │ │ ├── GlobalAveragePool.cpp
│ │ │ │ │ ├── GlobalAveragePool.h
│ │ │ │ │ ├── Greater.cpp
│ │ │ │ │ ├── Greater.h
│ │ │ │ │ ├── Identity.cpp
│ │ │ │ │ ├── Identity.h
│ │ │ │ │ ├── Less.cpp
│ │ │ │ │ ├── Less.h
│ │ │ │ │ ├── MatMul.cpp
│ │ │ │ │ ├── MatMul.h
│ │ │ │ │ ├── Max.cpp
│ │ │ │ │ ├── Max.h
│ │ │ │ │ ├── MaxPool.cpp
│ │ │ │ │ ├── MaxPool.h
│ │ │ │ │ ├── Mul.cpp
│ │ │ │ │ ├── Mul.h
│ │ │ │ │ ├── Pad.cpp
│ │ │ │ │ ├── Pad.h
│ │ │ │ │ ├── Reciprocal.cpp
│ │ │ │ │ ├── Reciprocal.h
│ │ │ │ │ ├── ReduceMean.cpp
│ │ │ │ │ ├── ReduceMean.h
│ │ │ │ │ ├── Relu.cpp
│ │ │ │ │ ├── Relu.h
│ │ │ │ │ ├── Reshape.cpp
│ │ │ │ │ ├── Reshape.h
│ │ │ │ │ ├── Shape.cpp
│ │ │ │ │ ├── Shape.h
│ │ │ │ │ ├── Sigmoid.cpp
│ │ │ │ │ ├── Sigmoid.h
│ │ │ │ │ ├── Softmax.cpp
│ │ │ │ │ ├── Softmax.h
│ │ │ │ │ ├── Sqrt.cpp
│ │ │ │ │ ├── Sqrt.h
│ │ │ │ │ ├── Sub.cpp
│ │ │ │ │ ├── Sub.h
│ │ │ │ │ ├── Sum.cpp
│ │ │ │ │ ├── Sum.h
│ │ │ │ │ ├── Tanh.cpp
│ │ │ │ │ ├── Tanh.h
│ │ │ │ │ ├── Transpose.cpp
│ │ │ │ │ ├── Transpose.h
│ │ │ │ │ ├── Unsqueeze.cpp
│ │ │ │ │ ├── Unsqueeze.h
│ │ │ │ │ ├── Upsample.cpp
│ │ │ │ │ └── Upsample.h
│ │ │ │ ├── mir_tflite_importer/
│ │ │ │ │ ├── CMakeLists.txt
│ │ │ │ │ ├── schema/
│ │ │ │ │ │ ├── schema.fbs
│ │ │ │ │ │ ├── schema.meta
│ │ │ │ │ │ ├── schema_v0.fbs
│ │ │ │ │ │ ├── schema_v0.meta
│ │ │ │ │ │ ├── schema_v1.fbs
│ │ │ │ │ │ ├── schema_v1.meta
│ │ │ │ │ │ ├── schema_v2.fbs
│ │ │ │ │ │ ├── schema_v2.meta
│ │ │ │ │ │ ├── schema_v3.fbs
│ │ │ │ │ │ └── schema_v3.meta
│ │ │ │ │ ├── tflite_importer.cpp
│ │ │ │ │ ├── tflite_op_creator.cpp
│ │ │ │ │ └── tflite_op_creator.h
│ │ │ │ └── ops/
│ │ │ │ ├── AvgPool2DOp.cpp
│ │ │ │ ├── BinaryElementwiseOp.cpp
│ │ │ │ ├── BroadcastOp.cpp
│ │ │ │ ├── ConcatOp.cpp
│ │ │ │ ├── Conv2DOp.cpp
│ │ │ │ ├── DeConv2DOp.cpp
│ │ │ │ ├── DepthwiseConv2DOp.cpp
│ │ │ │ ├── FullyConnectedOp.cpp
│ │ │ │ ├── GatherOp.cpp
│ │ │ │ ├── MaxPool2DOp.cpp
│ │ │ │ ├── PadOp.cpp
│ │ │ │ ├── ReduceOp.cpp
│ │ │ │ ├── SliceOp.cpp
│ │ │ │ ├── SqueezeOp.cpp
│ │ │ │ └── TransposeOp.cpp
│ │ │ └── unittests/
│ │ │ ├── CMakeLists.txt
│ │ │ ├── Index.cpp
│ │ │ ├── NodeReplacer.cpp
│ │ │ ├── Operation.cpp
│ │ │ ├── ShapeInference.cpp
│ │ │ ├── ShapeRange.cpp
│ │ │ └── TensorVariant.cpp
│ │ ├── mir-interpreter/
│ │ │ ├── CMakeLists.txt
│ │ │ ├── README.md
│ │ │ ├── exclude.me
│ │ │ ├── include/
│ │ │ │ └── MirInterpreter.h
│ │ │ ├── requires.cmake
│ │ │ └── src/
│ │ │ ├── MirInterpreter.cpp
│ │ │ └── ops/
│ │ │ ├── Abs.cpp
│ │ │ ├── Abs.h
│ │ │ ├── Add.cpp
│ │ │ ├── Add.h
│ │ │ ├── AvgPool2D.cpp
│ │ │ ├── AvgPool2D.h
│ │ │ ├── CappedReLU.cpp
│ │ │ ├── CappedReLU.h
│ │ │ ├── Common.cpp
│ │ │ ├── Common.h
│ │ │ ├── Concat.cpp
│ │ │ ├── Concat.h
│ │ │ ├── Conv2D.cpp
│ │ │ ├── Conv2D.h
│ │ │ ├── DeConv2D.cpp
│ │ │ ├── DeConv2D.h
│ │ │ ├── DepthwiseConv2D.cpp
│ │ │ ├── DepthwiseConv2D.h
│ │ │ ├── Div.cpp
│ │ │ ├── Div.h
│ │ │ ├── ELU.cpp
│ │ │ ├── ELU.h
│ │ │ ├── Equal.cpp
│ │ │ ├── Equal.h
│ │ │ ├── Fill.h
│ │ │ ├── FullyConnected.cpp
│ │ │ ├── FullyConnected.h
│ │ │ ├── Gather.cpp
│ │ │ ├── Gather.h
│ │ │ ├── Greater.cpp
│ │ │ ├── Greater.h
│ │ │ ├── HardSwish.cpp
│ │ │ ├── HardSwish.h
│ │ │ ├── LeakyReLU.cpp
│ │ │ ├── LeakyReLU.h
│ │ │ ├── Less.cpp
│ │ │ ├── Less.h
│ │ │ ├── Max.cpp
│ │ │ ├── Max.h
│ │ │ ├── MaxPool2D.cpp
│ │ │ ├── MaxPool2D.h
│ │ │ ├── Mul.cpp
│ │ │ ├── Mul.h
│ │ │ ├── Pad.cpp
│ │ │ ├── Pad.h
│ │ │ ├── Quantization.cpp
│ │ │ ├── Quantization.h
│ │ │ ├── QuantizationHelpers.h
│ │ │ ├── ReLU.cpp
│ │ │ ├── ReLU.h
│ │ │ ├── ReduceMean.cpp
│ │ │ ├── ReduceMean.h
│ │ │ ├── Reshape.cpp
│ │ │ ├── Reshape.h
│ │ │ ├── Sigmoid.cpp
│ │ │ ├── Sigmoid.h
│ │ │ ├── Slice.cpp
│ │ │ ├── Slice.h
│ │ │ ├── Softmax.cpp
│ │ │ ├── Softmax.h
│ │ │ ├── Sqrt.cpp
│ │ │ ├── Sqrt.h
│ │ │ ├── Sub.cpp
│ │ │ ├── Sub.h
│ │ │ ├── Tanh.cpp
│ │ │ ├── Tanh.h
│ │ │ ├── Transpose.cpp
│ │ │ └── Transpose.h
│ │ ├── mir2loco/
│ │ │ ├── CMakeLists.txt
│ │ │ ├── README.md
│ │ │ ├── exclude.me
│ │ │ ├── include/
│ │ │ │ └── mir2loco.h
│ │ │ ├── requires.cmake
│ │ │ └── src/
│ │ │ ├── mir2loco.cpp
│ │ │ └── mir2loco.test.cpp
│ │ ├── moco/
│ │ │ ├── CMakeLists.txt
│ │ │ ├── README.md
│ │ │ ├── exclude.me
│ │ │ ├── import/
│ │ │ │ ├── CMakeLists.txt
│ │ │ │ ├── README.md
│ │ │ │ ├── include/
│ │ │ │ │ └── moco/
│ │ │ │ │ ├── GraphHelper.h
│ │ │ │ │ ├── Import/
│ │ │ │ │ │ ├── GraphBuilder.h
│ │ │ │ │ │ ├── GraphBuilderContext.h
│ │ │ │ │ │ ├── GraphBuilderRegistry.h
│ │ │ │ │ │ ├── ModelSignature.h
│ │ │ │ │ │ ├── Nodes/
│ │ │ │ │ │ │ ├── Add.h
│ │ │ │ │ │ │ ├── AvgPool.h
│ │ │ │ │ │ │ ├── BiasAdd.h
│ │ │ │ │ │ │ ├── Concat.h
│ │ │ │ │ │ │ ├── Const.h
│ │ │ │ │ │ │ ├── Conv2D.h
│ │ │ │ │ │ │ ├── Conv2DBackpropInput.h
│ │ │ │ │ │ │ ├── DepthwiseConv2dNative.h
│ │ │ │ │ │ │ ├── FakeQuantWithMinMaxVars.h
│ │ │ │ │ │ │ ├── FusedBatchNorm.h
│ │ │ │ │ │ │ ├── Identity.h
│ │ │ │ │ │ │ ├── MaxPool.h
│ │ │ │ │ │ │ ├── Maximum.h
│ │ │ │ │ │ │ ├── Mean.h
│ │ │ │ │ │ │ ├── Mul.h
│ │ │ │ │ │ │ ├── Pack.h
│ │ │ │ │ │ │ ├── Pad.h
│ │ │ │ │ │ │ ├── Placeholder.h
│ │ │ │ │ │ │ ├── RealDiv.h
│ │ │ │ │ │ │ ├── Relu.h
│ │ │ │ │ │ │ ├── Relu6.h
│ │ │ │ │ │ │ ├── Reshape.h
│ │ │ │ │ │ │ ├── Rsqrt.h
│ │ │ │ │ │ │ ├── Shape.h
│ │ │ │ │ │ │ ├── Softmax.h
│ │ │ │ │ │ │ ├── Sqrt.h
│ │ │ │ │ │ │ ├── SquaredDifference.h
│ │ │ │ │ │ │ ├── Squeeze.h
│ │ │ │ │ │ │ ├── StopGradient.h
│ │ │ │ │ │ │ ├── StridedSlice.h
│ │ │ │ │ │ │ ├── Sub.h
│ │ │ │ │ │ │ └── Tanh.h
│ │ │ │ │ │ └── Nodes.h
│ │ │ │ │ └── Importer.h
│ │ │ │ └── src/
│ │ │ │ ├── Convert.cpp
│ │ │ │ ├── Convert.h
│ │ │ │ ├── GraphBuilderContext.cpp
│ │ │ │ ├── GraphBuilderContext.test.cpp
│ │ │ │ ├── GraphBuilderRegistry.cpp
│ │ │ │ ├── Importer.cpp
│ │ │ │ ├── Importer.test.cpp
│ │ │ │ ├── ModelSignature.cpp
│ │ │ │ ├── Nodes/
│ │ │ │ │ ├── Add.cpp
│ │ │ │ │ ├── Add.test.cpp
│ │ │ │ │ ├── AvgPool.cpp
│ │ │ │ │ ├── AvgPool.test.cpp
│ │ │ │ │ ├── BiasAdd.cpp
│ │ │ │ │ ├── BiasAdd.test.cpp
│ │ │ │ │ ├── Concat.cpp
│ │ │ │ │ ├── Concat.test.cpp
│ │ │ │ │ ├── Const.cpp
│ │ │ │ │ ├── Const.test.cpp
│ │ │ │ │ ├── Conv2D.cpp
│ │ │ │ │ ├── Conv2D.test.cpp
│ │ │ │ │ ├── Conv2DBackpropInput.cpp
│ │ │ │ │ ├── Conv2DBackpropInput.test.cpp
│ │ │ │ │ ├── DepthwiseConv2dNative.cpp
│ │ │ │ │ ├── DepthwiseConv2dNative.test.cpp
│ │ │ │ │ ├── FakeQuantWithMinMaxVars.cpp
│ │ │ │ │ ├── FakeQuantWithMinMaxVars.test.cpp
│ │ │ │ │ ├── FusedBatchNorm.cpp
│ │ │ │ │ ├── FusedBatchNorm.test.cpp
│ │ │ │ │ ├── Identity.cpp
│ │ │ │ │ ├── MaxPool.cpp
│ │ │ │ │ ├── MaxPool.test.cpp
│ │ │ │ │ ├── Maximum.cpp
│ │ │ │ │ ├── Maximum.test.cpp
│ │ │ │ │ ├── Mean.cpp
│ │ │ │ │ ├── Mean.test.cpp
│ │ │ │ │ ├── Mul.cpp
│ │ │ │ │ ├── Mul.test.cpp
│ │ │ │ │ ├── Pack.cpp
│ │ │ │ │ ├── Pack.test.cpp
│ │ │ │ │ ├── Pad.cpp
│ │ │ │ │ ├── Pad.test.cpp
│ │ │ │ │ ├── Placeholder.cpp
│ │ │ │ │ ├── Placeholder.test.cpp
│ │ │ │ │ ├── RealDiv.cpp
│ │ │ │ │ ├── RealDiv.test.cpp
│ │ │ │ │ ├── Relu.cpp
│ │ │ │ │ ├── Relu.test.cpp
│ │ │ │ │ ├── Relu6.cpp
│ │ │ │ │ ├── Relu6.test.cpp
│ │ │ │ │ ├── Reshape.cpp
│ │ │ │ │ ├── Reshape.test.cpp
│ │ │ │ │ ├── Rsqrt.cpp
│ │ │ │ │ ├── Rsqrt.test.cpp
│ │ │ │ │ ├── Shape.cpp
│ │ │ │ │ ├── Shape.test.cpp
│ │ │ │ │ ├── Softmax.cpp
│ │ │ │ │ ├── Softmax.test.cpp
│ │ │ │ │ ├── Sqrt.cpp
│ │ │ │ │ ├── Sqrt.test.cpp
│ │ │ │ │ ├── SquaredDifference.cpp
│ │ │ │ │ ├── SquaredDifference.test.cpp
│ │ │ │ │ ├── Squeeze.cpp
│ │ │ │ │ ├── Squeeze.test.cpp
│ │ │ │ │ ├── StopGradient.cpp
│ │ │ │ │ ├── StopGradient.test.cpp
│ │ │ │ │ ├── StridedSlice.cpp
│ │ │ │ │ ├── StridedSlice.test.cpp
│ │ │ │ │ ├── Sub.cpp
│ │ │ │ │ ├── Sub.test.cpp
│ │ │ │ │ ├── Tanh.cpp
│ │ │ │ │ └── Tanh.test.cpp
│ │ │ │ ├── TestHelper.h
│ │ │ │ └── TestHelper.test.cpp
│ │ │ ├── lang/
│ │ │ │ ├── CMakeLists.txt
│ │ │ │ ├── README.md
│ │ │ │ ├── include/
│ │ │ │ │ └── moco/
│ │ │ │ │ ├── IR/
│ │ │ │ │ │ ├── Nodes/
│ │ │ │ │ │ │ ├── TFAdd.h
│ │ │ │ │ │ │ ├── TFAvgPool.h
│ │ │ │ │ │ │ ├── TFBiasAdd.h
│ │ │ │ │ │ │ ├── TFConcatV2.h
│ │ │ │ │ │ │ ├── TFConst.h
│ │ │ │ │ │ │ ├── TFConv2D.h
│ │ │ │ │ │ │ ├── TFConv2DBackpropInput.h
│ │ │ │ │ │ │ ├── TFDepthwiseConv2dNative.h
│ │ │ │ │ │ │ ├── TFFakeQuantWithMinMaxVars.h
│ │ │ │ │ │ │ ├── TFFusedBatchNorm.h
│ │ │ │ │ │ │ ├── TFIdentity.h
│ │ │ │ │ │ │ ├── TFMaxPool.h
│ │ │ │ │ │ │ ├── TFMaximum.h
│ │ │ │ │ │ │ ├── TFMean.h
│ │ │ │ │ │ │ ├── TFMul.h
│ │ │ │ │ │ │ ├── TFPack.h
│ │ │ │ │ │ │ ├── TFPad.h
│ │ │ │ │ │ │ ├── TFPlaceholder.h
│ │ │ │ │ │ │ ├── TFPush.h
│ │ │ │ │ │ │ ├── TFRealDiv.h
│ │ │ │ │ │ │ ├── TFRelu.h
│ │ │ │ │ │ │ ├── TFRelu6.h
│ │ │ │ │ │ │ ├── TFReshape.h
│ │ │ │ │ │ │ ├── TFRsqrt.h
│ │ │ │ │ │ │ ├── TFShape.h
│ │ │ │ │ │ │ ├── TFSoftmax.h
│ │ │ │ │ │ │ ├── TFSqrt.h
│ │ │ │ │ │ │ ├── TFSquaredDifference.h
│ │ │ │ │ │ │ ├── TFSqueeze.h
│ │ │ │ │ │ │ ├── TFStopGradient.h
│ │ │ │ │ │ │ ├── TFStridedSlice.h
│ │ │ │ │ │ │ ├── TFSub.h
│ │ │ │ │ │ │ └── TFTanh.h
│ │ │ │ │ │ ├── TFDataLayout.h
│ │ │ │ │ │ ├── TFDialect.h
│ │ │ │ │ │ ├── TFNode.h
│ │ │ │ │ │ ├── TFNodeDecl.h
│ │ │ │ │ │ ├── TFNodeImpl.h
│ │ │ │ │ │ ├── TFNodeVisitor.forward.h
│ │ │ │ │ │ ├── TFNodeVisitor.h
│ │ │ │ │ │ ├── TFNodes.h
│ │ │ │ │ │ ├── TFNodes.lst
│ │ │ │ │ │ ├── TFOpcode.h
│ │ │ │ │ │ ├── TFPadding.h
│ │ │ │ │ │ └── VariadicArityNode.h
│ │ │ │ │ └── Names.h
│ │ │ │ └── src/
│ │ │ │ └── IR/
│ │ │ │ ├── Nodes/
│ │ │ │ │ ├── TFAdd.test.cpp
│ │ │ │ │ ├── TFAvgPool.test.cpp
│ │ │ │ │ ├── TFBiasAdd.test.cpp
│ │ │ │ │ ├── TFConcatV2.test.cpp
│ │ │ │ │ ├── TFConst.cpp
│ │ │ │ │ ├── TFConst.test.cpp
│ │ │ │ │ ├── TFConv2D.test.cpp
│ │ │ │ │ ├── TFConv2DBackpropInput.test.cpp
│ │ │ │ │ ├── TFDepthwiseConv2dNative.test.cpp
│ │ │ │ │ ├── TFFakeQuantWithMinMaxVars.test.cpp
│ │ │ │ │ ├── TFFusedBatchNorm.test.cpp
│ │ │ │ │ ├── TFIdentity.test.cpp
│ │ │ │ │ ├── TFMaxPool.test.cpp
│ │ │ │ │ ├── TFMaximum.test.cpp
│ │ │ │ │ ├── TFMean.test.cpp
│ │ │ │ │ ├── TFMul.test.cpp
│ │ │ │ │ ├── TFPack.test.cpp
│ │ │ │ │ ├── TFPad.test.cpp
│ │ │ │ │ ├── TFPlaceholder.test.cpp
│ │ │ │ │ ├── TFRealDiv.test.cpp
│ │ │ │ │ ├── TFRelu.test.cpp
│ │ │ │ │ ├── TFRelu6.test.cpp
│ │ │ │ │ ├── TFReshape.test.cpp
│ │ │ │ │ ├── TFRsqrt.test.cpp
│ │ │ │ │ ├── TFShape.test.cpp
│ │ │ │ │ ├── TFSoftmax.test.cpp
│ │ │ │ │ ├── TFSqrt.test.cpp
│ │ │ │ │ ├── TFSquaredDifference.test.cpp
│ │ │ │ │ ├── TFSqueeze.test.cpp
│ │ │ │ │ ├── TFStopGradient.test.cpp
│ │ │ │ │ ├── TFStridedSlice.test.cpp
│ │ │ │ │ ├── TFSub.test.cpp
│ │ │ │ │ └── TFTanh.test.cpp
│ │ │ │ ├── TFDialect.cpp
│ │ │ │ ├── TFDialect.test.cpp
│ │ │ │ ├── TFNode.cpp
│ │ │ │ ├── TFNode.test.cpp
│ │ │ │ └── VariadicArityNode.test.cpp
│ │ │ ├── pass/
│ │ │ │ ├── CMakeLists.txt
│ │ │ │ ├── README.md
│ │ │ │ ├── include/
│ │ │ │ │ └── moco/
│ │ │ │ │ └── Pass/
│ │ │ │ │ ├── Passes/
│ │ │ │ │ │ ├── ConstantFoldAdd.h
│ │ │ │ │ │ ├── ConstantFoldMul.h
│ │ │ │ │ │ ├── ConstantFoldPack.h
│ │ │ │ │ │ ├── ConstantFoldStridedSlice.h
│ │ │ │ │ │ ├── FuseBinaryIntoPreceding.h
│ │ │ │ │ │ ├── RemoveTFIdentityNode.h
│ │ │ │ │ │ ├── ResolveConstantShape.h
│ │ │ │ │ │ ├── ResolveFusedBatchNorm.h
│ │ │ │ │ │ ├── ResolveReshapeWildcardDim.h
│ │ │ │ │ │ ├── ResolveSquaredDifference.h
│ │ │ │ │ │ └── SqueezeReduceNode.h
│ │ │ │ │ └── Passes.h
│ │ │ │ └── src/
│ │ │ │ ├── ConstantFoldAdd.test.cpp
│ │ │ │ ├── ConstantFoldHelper.cpp
│ │ │ │ ├── ConstantFoldHelper.h
│ │ │ │ ├── ConstantFoldMul.test.cpp
│ │ │ │ ├── ConstantFoldPack.test.cpp
│ │ │ │ ├── ConstantFoldStridedSlice.test.cpp
│ │ │ │ ├── Passes/
│ │ │ │ │ ├── ConstantFoldAdd.cpp
│ │ │ │ │ ├── ConstantFoldMul.cpp
│ │ │ │ │ ├── ConstantFoldPack.cpp
│ │ │ │ │ ├── ConstantFoldStridedSlice.cpp
│ │ │ │ │ ├── FuseBinaryIntoPreceding.cpp
│ │ │ │ │ ├── RemoveTFIdentityNode.cpp
│ │ │ │ │ ├── ResolveConstantShape.cpp
│ │ │ │ │ ├── ResolveFusedBatchNorm.cpp
│ │ │ │ │ ├── ResolveReshapeWildcardDim.cpp
│ │ │ │ │ ├── ResolveSquaredDifference.cpp
│ │ │ │ │ └── SqueezeReduceNode.cpp
│ │ │ │ ├── TensorPackEnumerator.cpp
│ │ │ │ ├── TensorPackEnumerator.h
│ │ │ │ ├── TensorSliceEnumerator.cpp
│ │ │ │ ├── TensorSliceEnumerator.h
│ │ │ │ ├── TensorSliceEnumerator.test.cpp
│ │ │ │ ├── TestHelper.h
│ │ │ │ └── TestHelper.test.cpp
│ │ │ ├── requires.cmake
│ │ │ ├── service/
│ │ │ │ ├── CMakeLists.txt
│ │ │ │ ├── README.md
│ │ │ │ ├── include/
│ │ │ │ │ └── moco/
│ │ │ │ │ └── Service/
│ │ │ │ │ ├── TFShapeInferenceRule.h
│ │ │ │ │ └── TFTypeInferenceRule.h
│ │ │ │ └── src/
│ │ │ │ ├── Service/
│ │ │ │ │ ├── TFShapeInferenceRule.cpp
│ │ │ │ │ ├── TFShapeInferenceRule.test.cpp
│ │ │ │ │ └── TFTypeInferenceRule.cpp
│ │ │ │ ├── TestHelper.h
│ │ │ │ └── TestHelper.test.cpp
│ │ │ └── support/
│ │ │ ├── CMakeLists.txt
│ │ │ ├── README.md
│ │ │ ├── include/
│ │ │ │ └── moco/
│ │ │ │ └── Support/
│ │ │ │ ├── NodeAs.h
│ │ │ │ └── TFShapeInferenceHelper.h
│ │ │ └── src/
│ │ │ └── TFShapeInferenceHelper.cpp
│ │ ├── moco-tf/
│ │ │ ├── CMakeLists.txt
│ │ │ ├── README.md
│ │ │ ├── doc/
│ │ │ │ └── Conversion.md
│ │ │ ├── exclude.me
│ │ │ ├── include/
│ │ │ │ └── moco/
│ │ │ │ └── tf/
│ │ │ │ └── Frontend.h
│ │ │ ├── requires.cmake
│ │ │ └── src/
│ │ │ ├── BroadcastHelper.cpp
│ │ │ ├── BroadcastHelper.h
│ │ │ ├── BroadcastHelper.test.cpp
│ │ │ ├── CanonicalEltwiseInputConnector.cpp
│ │ │ ├── CanonicalEltwiseInputConnector.h
│ │ │ ├── Canonicalization/
│ │ │ │ ├── AddCanonicalizer.cpp
│ │ │ │ ├── AddCanonicalizer.h
│ │ │ │ ├── AvgPoolCanonicalizer.cpp
│ │ │ │ ├── AvgPoolCanonicalizer.h
│ │ │ │ ├── BiasAddCanonicalizer.cpp
│ │ │ │ ├── BiasAddCanonicalizer.h
│ │ │ │ ├── ConcatV2Canonicalizer.cpp
│ │ │ │ ├── ConcatV2Canonicalizer.h
│ │ │ │ ├── ConstCanonicalizer.cpp
│ │ │ │ ├── ConstCanonicalizer.h
│ │ │ │ ├── Conv2DBackpropInputCanonicalizer.cpp
│ │ │ │ ├── Conv2DBackpropInputCanonicalizer.h
│ │ │ │ ├── Conv2DCanonicalizer.cpp
│ │ │ │ ├── Conv2DCanonicalizer.h
│ │ │ │ ├── DepthwiseConv2dNativeCanonicalizer.cpp
│ │ │ │ ├── DepthwiseConv2dNativeCanonicalizer.h
│ │ │ │ ├── IdentityCanonicalizer.cpp
│ │ │ │ ├── IdentityCanonicalizer.h
│ │ │ │ ├── MaxPoolCanonicalizer.cpp
│ │ │ │ ├── MaxPoolCanonicalizer.h
│ │ │ │ ├── MaximumCanonicalizer.cpp
│ │ │ │ ├── MaximumCanonicalizer.h
│ │ │ │ ├── MeanCanonicalizer.cpp
│ │ │ │ ├── MeanCanonicalizer.h
│ │ │ │ ├── MulCanonicalizer.cpp
│ │ │ │ ├── MulCanonicalizer.h
│ │ │ │ ├── PadCanonicalizer.cpp
│ │ │ │ ├── PadCanonicalizer.h
│ │ │ │ ├── PlaceholderCanonicalizer.cpp
│ │ │ │ ├── PlaceholderCanonicalizer.h
│ │ │ │ ├── RealDivCanonicalizer.cpp
│ │ │ │ ├── RealDivCanonicalizer.h
│ │ │ │ ├── Relu6Canonicalizer.cpp
│ │ │ │ ├── Relu6Canonicalizer.h
│ │ │ │ ├── ReluCanonicalizer.cpp
│ │ │ │ ├── ReluCanonicalizer.h
│ │ │ │ ├── ReshapeCanonicalizer.cpp
│ │ │ │ ├── ReshapeCanonicalizer.h
│ │ │ │ ├── RsqrtCanonicalizer.cpp
│ │ │ │ ├── RsqrtCanonicalizer.h
│ │ │ │ ├── SoftmaxCanonicalizer.cpp
│ │ │ │ ├── SoftmaxCanonicalizer.h
│ │ │ │ ├── SqrtCanonicalizer.cpp
│ │ │ │ ├── SqrtCanonicalizer.h
│ │ │ │ ├── SqueezeCanonicalizer.cpp
│ │ │ │ ├── SqueezeCanonicalizer.h
│ │ │ │ ├── StopGradientCanonicalizer.cpp
│ │ │ │ ├── StopGradientCanonicalizer.h
│ │ │ │ ├── SubCanonicalizer.cpp
│ │ │ │ ├── SubCanonicalizer.h
│ │ │ │ ├── TFPushCanonicalizer.cpp
│ │ │ │ ├── TFPushCanonicalizer.h
│ │ │ │ ├── TanhCanonicalizer.cpp
│ │ │ │ └── TanhCanonicalizer.h
│ │ │ ├── Canonicalizer.cpp
│ │ │ ├── Canonicalizer.h
│ │ │ ├── Canonicalizer.test.cpp
│ │ │ ├── CodecHelper.h
│ │ │ ├── Convert.cpp
│ │ │ ├── Convert.h
│ │ │ ├── Convert.test.cpp
│ │ │ ├── Frontend.cpp
│ │ │ ├── Frontend.test.cpp
│ │ │ ├── Knob.cpp
│ │ │ ├── Knob.h
│ │ │ ├── Knob.lst
│ │ │ ├── LogHelper.cpp
│ │ │ ├── LogHelper.h
│ │ │ ├── Op/
│ │ │ │ ├── COpCall.cpp
│ │ │ │ ├── COpCall.h
│ │ │ │ └── COpCall.test.cpp
│ │ │ ├── Optimizer.cpp
│ │ │ ├── Optimizer.h
│ │ │ ├── Optimizer.test.cpp
│ │ │ ├── ProgressReporter.cpp
│ │ │ ├── ProgressReporter.h
│ │ │ ├── SimpleNodeTransform.h
│ │ │ ├── SimpleNodeTransform.test.cpp
│ │ │ ├── TFEltwiseBinaryCanonicalzeHelper.h
│ │ │ ├── TFFormattedGraph.cpp
│ │ │ ├── TFFormattedGraph.h
│ │ │ ├── TFOptimizer.cpp
│ │ │ ├── TFOptimizer.h
│ │ │ ├── TFOptimizer.test.cpp
│ │ │ ├── TFReduceCanonicalzeHelper.h
│ │ │ ├── TestHelper.h
│ │ │ ├── TestHelper.test.cpp
│ │ │ ├── Transform.cpp
│ │ │ ├── Transform.h
│ │ │ ├── Transform.test.cpp
│ │ │ ├── Transforms/
│ │ │ │ ├── ShapeInferencePass.cpp
│ │ │ │ ├── ShapeInferencePass.h
│ │ │ │ ├── TypeInferencePass.cpp
│ │ │ │ └── TypeInferencePass.h
│ │ │ └── Transforms.h
│ │ ├── moco-value-pbtxt-test/
│ │ │ ├── .gitignore
│ │ │ ├── CMakeLists.txt
│ │ │ ├── README.md
│ │ │ ├── exclude.me
│ │ │ ├── requires.cmake
│ │ │ ├── runall.sh
│ │ │ └── test.lst
│ │ ├── nnc/
│ │ │ ├── CMakeLists.txt
│ │ │ ├── README.md
│ │ │ ├── backends/
│ │ │ │ ├── CMakeLists.txt
│ │ │ │ ├── acl_soft_backend/
│ │ │ │ │ ├── AclArtifactUtilities.in
│ │ │ │ │ ├── AclCppGenerator.cpp
│ │ │ │ │ ├── AclCppOpGenerator.cpp
│ │ │ │ │ ├── AclCppOpGenerator.h
│ │ │ │ │ ├── ArtifactGeneratorCppCode.cpp
│ │ │ │ │ ├── ArtifactGeneratorCppCode.h
│ │ │ │ │ ├── ArtifactGeneratorCppDecl.cpp
│ │ │ │ │ ├── ArtifactGeneratorCppDecl.h
│ │ │ │ │ ├── ArtifactIndent.h
│ │ │ │ │ ├── ArtifactModel.cpp
│ │ │ │ │ ├── ArtifactModel.h
│ │ │ │ │ ├── CMakeLists.txt
│ │ │ │ │ └── IArtifactGenerator.h
│ │ │ │ ├── interpreter/
│ │ │ │ │ ├── CMakeLists.txt
│ │ │ │ │ └── InterpreterBackend.cpp
│ │ │ │ └── soft_backend/
│ │ │ │ ├── CMakeLists.txt
│ │ │ │ ├── CPPGenerator.cpp
│ │ │ │ ├── CommonData.def
│ │ │ │ ├── ModelAnalyzer.cpp
│ │ │ │ ├── ModelAnalyzer.h
│ │ │ │ ├── SBSerializer.cpp
│ │ │ │ ├── SBSerializer.h
│ │ │ │ ├── SequencedIR.cpp
│ │ │ │ ├── SequencedIR.h
│ │ │ │ └── code_snippets/
│ │ │ │ ├── cpp_broadcast.def
│ │ │ │ ├── cpp_capped_relu.def
│ │ │ │ ├── cpp_common_funcs.def
│ │ │ │ ├── cpp_concat.def
│ │ │ │ ├── cpp_conv.def
│ │ │ │ ├── cpp_conv_transpose.def
│ │ │ │ ├── cpp_depthwise_conv.def
│ │ │ │ ├── cpp_elementwise.def
│ │ │ │ ├── cpp_elu.def
│ │ │ │ ├── cpp_fully_connected.def
│ │ │ │ ├── cpp_gather.def
│ │ │ │ ├── cpp_header_types.def
│ │ │ │ ├── cpp_leaky_relu.def
│ │ │ │ ├── cpp_operations.def
│ │ │ │ ├── cpp_pad.def
│ │ │ │ ├── cpp_pool.def
│ │ │ │ ├── cpp_reduce.def
│ │ │ │ ├── cpp_relu.def
│ │ │ │ ├── cpp_resize.def
│ │ │ │ ├── cpp_sigmoid.def
│ │ │ │ ├── cpp_slice.def
│ │ │ │ ├── cpp_softmax.def
│ │ │ │ ├── cpp_sqrt.def
│ │ │ │ ├── cpp_tanh.def
│ │ │ │ ├── cpp_transpose.def
│ │ │ │ └── eigen.def
│ │ │ ├── cmake/
│ │ │ │ ├── config.cmake
│ │ │ │ └── utils.cmake
│ │ │ ├── doxygen.config
│ │ │ ├── driver/
│ │ │ │ ├── Driver.cpp
│ │ │ │ ├── Driver.h
│ │ │ │ ├── Options.cpp
│ │ │ │ ├── Options.h
│ │ │ │ └── main.cpp
│ │ │ ├── exclude.me
│ │ │ ├── include/
│ │ │ │ ├── Definitions.h.in
│ │ │ │ ├── backends/
│ │ │ │ │ ├── acl_soft_backend/
│ │ │ │ │ │ ├── AclCppException.h
│ │ │ │ │ │ └── AclCppGenerator.h
│ │ │ │ │ ├── interpreter/
│ │ │ │ │ │ └── InterpreterBackend.h
│ │ │ │ │ └── soft_backend/
│ │ │ │ │ └── CPPGenerator.h
│ │ │ │ ├── pass/
│ │ │ │ │ ├── Pass.h
│ │ │ │ │ ├── PassData.h
│ │ │ │ │ ├── PassException.h
│ │ │ │ │ └── PassManager.h
│ │ │ │ ├── passes/
│ │ │ │ │ ├── dot_dumper/
│ │ │ │ │ │ └── DumperPass.h
│ │ │ │ │ ├── optimizations/
│ │ │ │ │ │ ├── CombineTransposes.h
│ │ │ │ │ │ ├── ConstantFoldTranspose.h
│ │ │ │ │ │ ├── DeadCodeElimination.h
│ │ │ │ │ │ ├── FuseArithmeticOps.h
│ │ │ │ │ │ ├── OptimizationUtils.h
│ │ │ │ │ │ ├── SinkRelu.h
│ │ │ │ │ │ └── SinkTranspose.h
│ │ │ │ │ └── transformations/
│ │ │ │ │ ├── DataFormatSwitcher.h
│ │ │ │ │ └── LowerConv2D.h
│ │ │ │ └── support/
│ │ │ │ └── CommandLine.h
│ │ │ ├── pass/
│ │ │ │ ├── CMakeLists.txt
│ │ │ │ └── PassManager.cpp
│ │ │ ├── passes/
│ │ │ │ ├── CMakeLists.txt
│ │ │ │ ├── dot_dumper/
│ │ │ │ │ ├── CMakeLists.txt
│ │ │ │ │ └── DumperPass.cpp
│ │ │ │ ├── optimizations/
│ │ │ │ │ ├── CMakeLists.txt
│ │ │ │ │ ├── CombineTransposes.cpp
│ │ │ │ │ ├── ConstantFoldTranspose.cpp
│ │ │ │ │ ├── DeadCodeElimination.cpp
│ │ │ │ │ ├── FuseArithmeticOps.cpp
│ │ │ │ │ ├── OptimizationUtils.cpp
│ │ │ │ │ ├── SinkRelu.cpp
│ │ │ │ │ └── SinkTranspose.cpp
│ │ │ │ └── transformations/
│ │ │ │ ├── CMakeLists.txt
│ │ │ │ ├── DataFormatSwitcher.cpp
│ │ │ │ └── LowerConv2D.cpp
│ │ │ ├── requires.cmake
│ │ │ ├── support/
│ │ │ │ ├── CLOptionChecker.cpp
│ │ │ │ ├── CMakeLists.txt
│ │ │ │ └── CommandLine.cpp
│ │ │ ├── tests/
│ │ │ │ ├── CMakeLists.txt
│ │ │ │ ├── acl_soft_backend/
│ │ │ │ │ ├── AclCppOperations.cpp
│ │ │ │ │ ├── BuildInfo.h.in
│ │ │ │ │ ├── CMakeLists.txt
│ │ │ │ │ ├── artifact_cmake/
│ │ │ │ │ │ ├── CMakeLists.txt
│ │ │ │ │ │ ├── main.cpp
│ │ │ │ │ │ └── odroid.cmake
│ │ │ │ │ └── models/
│ │ │ │ │ ├── concatenate.prototxt
│ │ │ │ │ ├── convolution.prototxt
│ │ │ │ │ ├── convolution_with_bias.prototxt
│ │ │ │ │ ├── depthwise_convolution.prototxt
│ │ │ │ │ ├── fully_connected.prototxt
│ │ │ │ │ ├── pooling_avg.prototxt
│ │ │ │ │ ├── pooling_max.prototxt
│ │ │ │ │ ├── relu.prototxt
│ │ │ │ │ ├── reshape.prototxt
│ │ │ │ │ └── scale.prototxt
│ │ │ │ ├── import/
│ │ │ │ │ ├── CMakeLists.txt
│ │ │ │ │ ├── caffe.cpp
│ │ │ │ │ └── tflite.cpp
│ │ │ │ └── soft_backend/
│ │ │ │ ├── CMakeLists.txt
│ │ │ │ ├── CompileCPP.cpp
│ │ │ │ └── test_main.def
│ │ │ ├── unittests/
│ │ │ │ ├── CMakeLists.txt
│ │ │ │ ├── acl_backend/
│ │ │ │ │ ├── CMakeLists.txt
│ │ │ │ │ ├── DOMToText.cpp
│ │ │ │ │ └── MIRToDOM.cpp
│ │ │ │ ├── caffe_frontend/
│ │ │ │ │ └── test_data/
│ │ │ │ │ └── unsupported.caffemodel
│ │ │ │ ├── optimizations/
│ │ │ │ │ ├── CMakeLists.txt
│ │ │ │ │ ├── CombineTransposes.cpp
│ │ │ │ │ ├── DeadCodeElimination.cpp
│ │ │ │ │ ├── FuseArithmeticOps.cpp
│ │ │ │ │ ├── SinkTest.cpp
│ │ │ │ │ └── Util.h
│ │ │ │ ├── pass/
│ │ │ │ │ ├── CMakeLists.txt
│ │ │ │ │ ├── PassExceptionTest.cpp
│ │ │ │ │ └── PassManagerTest.cpp
│ │ │ │ ├── soft_backend/
│ │ │ │ │ ├── CMakeLists.txt
│ │ │ │ │ ├── CPPHeaderTypes.cpp
│ │ │ │ │ ├── CPPOperations.cpp
│ │ │ │ │ ├── Generator.cpp
│ │ │ │ │ └── ModelAnalyzer.cpp
│ │ │ │ ├── support/
│ │ │ │ │ ├── CMakeLists.txt
│ │ │ │ │ └── CommandLineTest.cpp
│ │ │ │ └── transformations/
│ │ │ │ ├── CMakeLists.txt
│ │ │ │ └── Switcher.cpp
│ │ │ └── utils/
│ │ │ ├── CMakeLists.txt
│ │ │ ├── caffe2_dot_dumper/
│ │ │ │ ├── CMakeLists.txt
│ │ │ │ └── model_dump.cpp
│ │ │ ├── caffe_dot_dumper/
│ │ │ │ ├── CMakeLists.txt
│ │ │ │ └── model_dump.cpp
│ │ │ ├── def2src.cpp
│ │ │ ├── infer_tests/
│ │ │ │ ├── README.md
│ │ │ │ ├── infer_testcases.py
│ │ │ │ └── res2bin.py
│ │ │ ├── input_gen/
│ │ │ │ ├── CMakeLists.txt
│ │ │ │ └── tensor_gen.cpp
│ │ │ ├── model_runner/
│ │ │ │ ├── common_place.py
│ │ │ │ ├── model_runner_caffe.py
│ │ │ │ ├── model_runner_caffe2.py
│ │ │ │ ├── model_runner_onnx.py
│ │ │ │ ├── model_runner_tflite.py
│ │ │ │ └── readme.md
│ │ │ ├── prepare_inputs/
│ │ │ │ ├── README.md
│ │ │ │ └── jpeg2hdf5.py
│ │ │ └── tflite_dot_dumper/
│ │ │ ├── CMakeLists.txt
│ │ │ └── model_dump.cpp
│ │ ├── nnkit/
│ │ │ ├── CMakeLists.txt
│ │ │ ├── README.md
│ │ │ ├── actions/
│ │ │ │ ├── CMakeLists.txt
│ │ │ │ ├── HDF5/
│ │ │ │ │ ├── CMakeLists.txt
│ │ │ │ │ ├── Common.cpp
│ │ │ │ │ ├── Common.h
│ │ │ │ │ ├── Export.cpp
│ │ │ │ │ └── Import.cpp
│ │ │ │ └── builtin/
│ │ │ │ ├── CMakeLists.txt
│ │ │ │ ├── Randomize.cpp
│ │ │ │ └── Show.cpp
│ │ │ ├── exclude.me
│ │ │ ├── requires.cmake
│ │ │ └── tools/
│ │ │ ├── CMakeLists.txt
│ │ │ ├── benchmark/
│ │ │ │ ├── CMakeLists.txt
│ │ │ │ └── src/
│ │ │ │ └── Benchmark.cpp
│ │ │ └── run/
│ │ │ ├── CMakeLists.txt
│ │ │ └── nnkit-run.cpp
│ │ ├── nnkit-caffe/
│ │ │ ├── CMakeLists.txt
│ │ │ ├── README.md
│ │ │ ├── backend/
│ │ │ │ ├── CMakeLists.txt
│ │ │ │ └── Module.cpp
│ │ │ ├── exclude.me
│ │ │ ├── requires.cmake
│ │ │ └── support/
│ │ │ ├── CMakeLists.txt
│ │ │ └── include/
│ │ │ └── nnkit/
│ │ │ └── support/
│ │ │ └── caffe/
│ │ │ ├── Backend.h
│ │ │ ├── BlobContext.h
│ │ │ ├── InputBlobContext.h
│ │ │ ├── OutputBlobContext.h
│ │ │ └── TensorContext.h
│ │ ├── nnkit-intf/
│ │ │ ├── CMakeLists.txt
│ │ │ ├── README.md
│ │ │ ├── action/
│ │ │ │ ├── CMakeLists.txt
│ │ │ │ └── include/
│ │ │ │ └── nnkit/
│ │ │ │ └── Action.h
│ │ │ ├── backend/
│ │ │ │ ├── CMakeLists.txt
│ │ │ │ └── include/
│ │ │ │ └── nnkit/
│ │ │ │ └── Backend.h
│ │ │ ├── cmdline/
│ │ │ │ ├── CMakeLists.txt
│ │ │ │ └── include/
│ │ │ │ └── nnkit/
│ │ │ │ └── CmdlineArguments.h
│ │ │ ├── exclude.me
│ │ │ └── tensor/
│ │ │ ├── CMakeLists.txt
│ │ │ └── include/
│ │ │ └── nnkit/
│ │ │ └── TensorContext.h
│ │ ├── nnkit-misc/
│ │ │ ├── CMakeLists.txt
│ │ │ ├── README.md
│ │ │ ├── backend/
│ │ │ │ ├── CMakeLists.txt
│ │ │ │ ├── include/
│ │ │ │ │ └── nnkit/
│ │ │ │ │ └── BackendPlugin.h
│ │ │ │ └── src/
│ │ │ │ └── BackendPlugin.cpp
│ │ │ ├── cmdline/
│ │ │ │ ├── CMakeLists.txt
│ │ │ │ ├── include/
│ │ │ │ │ └── nnkit/
│ │ │ │ │ └── VectorArguments.h
│ │ │ │ └── src/
│ │ │ │ └── VectorArguments.cpp
│ │ │ └── exclude.me
│ │ ├── nnkit-mocotf/
│ │ │ ├── CMakeLists.txt
│ │ │ ├── README.md
│ │ │ ├── backend/
│ │ │ │ ├── Backend.cpp
│ │ │ │ └── CMakeLists.txt
│ │ │ ├── exclude.me
│ │ │ ├── requires.cmake
│ │ │ └── support/
│ │ │ ├── CMakeLists.txt
│ │ │ ├── include/
│ │ │ │ └── nnkit/
│ │ │ │ └── support/
│ │ │ │ └── moco/
│ │ │ │ └── tf/
│ │ │ │ └── Backend.h
│ │ │ └── src/
│ │ │ ├── Backend.cpp
│ │ │ ├── InputTensorContext.cpp
│ │ │ ├── InputTensorContext.h
│ │ │ ├── OutputTensorContext.cpp
│ │ │ ├── OutputTensorContext.h
│ │ │ └── TensorContext.h
│ │ ├── nnkit-onnxrt/
│ │ │ ├── CMakeLists.txt
│ │ │ ├── README.md
│ │ │ ├── backend/
│ │ │ │ ├── Backend.cpp
│ │ │ │ └── CMakeLists.txt
│ │ │ ├── exclude.me
│ │ │ ├── requires.cmake
│ │ │ └── support/
│ │ │ ├── CMakeLists.txt
│ │ │ ├── include/
│ │ │ │ └── nnkit/
│ │ │ │ └── support/
│ │ │ │ └── onnx/
│ │ │ │ ├── Allocator.h
│ │ │ │ ├── Backend.h
│ │ │ │ ├── Runner.h
│ │ │ │ ├── Status.h
│ │ │ │ ├── TensorContext.h
│ │ │ │ └── TensorSet.h
│ │ │ └── src/
│ │ │ ├── Allocator.cpp
│ │ │ ├── Backend.cpp
│ │ │ └── Runner.cpp
│ │ ├── nnkit-tf/
│ │ │ ├── CMakeLists.txt
│ │ │ ├── README.md
│ │ │ ├── backend/
│ │ │ │ ├── Backend.cpp
│ │ │ │ └── CMakeLists.txt
│ │ │ ├── exclude.me
│ │ │ ├── requires.cmake
│ │ │ └── support/
│ │ │ ├── CMakeLists.txt
│ │ │ ├── include/
│ │ │ │ └── nnkit/
│ │ │ │ └── support/
│ │ │ │ └── tf/
│ │ │ │ ├── Backend.h
│ │ │ │ ├── Runner.h
│ │ │ │ ├── TensorContext.h
│ │ │ │ └── TensorDataMap.h
│ │ │ └── src/
│ │ │ ├── Backend.cpp
│ │ │ ├── Runner.cpp
│ │ │ └── TensorContext.cpp
│ │ ├── nnkit-tflite/
│ │ │ ├── CMakeLists.txt
│ │ │ ├── README.md
│ │ │ ├── backend/
│ │ │ │ ├── Backend.cpp
│ │ │ │ └── CMakeLists.txt
│ │ │ ├── exclude.me
│ │ │ ├── requires.cmake
│ │ │ └── support/
│ │ │ ├── CMakeLists.txt
│ │ │ ├── include/
│ │ │ │ └── nnkit/
│ │ │ │ └── support/
│ │ │ │ └── tflite/
│ │ │ │ ├── AbstractBackend.h
│ │ │ │ ├── TensorContext.h
│ │ │ │ ├── TensorSet.h
│ │ │ │ ├── TensorSets.h
│ │ │ │ └── TensorUtils.h
│ │ │ └── src/
│ │ │ ├── Backend.cpp
│ │ │ ├── TensorContext.cpp
│ │ │ └── TensorUtils.cpp
│ │ ├── nnsuite/
│ │ │ ├── CMakeLists.txt
│ │ │ ├── README.md
│ │ │ ├── conv/
│ │ │ │ ├── CMakeLists.txt
│ │ │ │ ├── model/
│ │ │ │ │ ├── CMakeLists.txt
│ │ │ │ │ ├── include/
│ │ │ │ │ │ └── nnsuite/
│ │ │ │ │ │ └── conv/
│ │ │ │ │ │ ├── Model.h
│ │ │ │ │ │ └── RandomModel.h
│ │ │ │ │ └── src/
│ │ │ │ │ └── RandomModel.cpp
│ │ │ │ ├── nnkit-caffe/
│ │ │ │ │ ├── CMakeLists.txt
│ │ │ │ │ ├── ConvBackend.cpp
│ │ │ │ │ ├── ConvBackend.h
│ │ │ │ │ ├── ConvBackend.test.cpp
│ │ │ │ │ └── Entry.cpp
│ │ │ │ └── nnkit-tflite/
│ │ │ │ ├── CMakeLists.txt
│ │ │ │ ├── ConvBackend.cpp
│ │ │ │ ├── ConvBackend.h
│ │ │ │ ├── ConvBackend.test.cpp
│ │ │ │ └── Entry.cpp
│ │ │ ├── exclude.me
│ │ │ └── requires.cmake
│ │ ├── onnx2circle/
│ │ │ ├── CMakeLists.txt
│ │ │ ├── README.md
│ │ │ ├── exclude.me
│ │ │ ├── requires.cmake
│ │ │ └── src/
│ │ │ └── onnx2circle.cpp
│ │ ├── onnx2tflite/
│ │ │ ├── CMakeLists.txt
│ │ │ ├── exclude.me
│ │ │ ├── requires.cmake
│ │ │ └── src/
│ │ │ └── Driver.cpp
│ │ ├── onnx2tflite-integration-test/
│ │ │ ├── CMakeLists.txt
│ │ │ ├── README.md
│ │ │ ├── exclude.me
│ │ │ ├── requires.cmake
│ │ │ ├── test.lst
│ │ │ └── testall.sh
│ │ ├── tf2circle/
│ │ │ ├── CMakeLists.txt
│ │ │ ├── README.md
│ │ │ ├── exclude.me
│ │ │ ├── proto/
│ │ │ │ └── CustomOpInfo.proto
│ │ │ ├── requires.cmake
│ │ │ └── src/
│ │ │ ├── CustomopConfLoader.cpp
│ │ │ ├── CustomopConfLoader.h
│ │ │ └── tf2circle.cpp
│ │ ├── tf2circle-conversion-test/
│ │ │ ├── .gitignore
│ │ │ ├── CMakeLists.txt
│ │ │ ├── README.md
│ │ │ ├── exclude.me
│ │ │ ├── requires.cmake
│ │ │ ├── test.lst
│ │ │ └── testall.sh
│ │ ├── tf2circle-dredd-pb-test/
│ │ │ ├── .gitignore
│ │ │ ├── CMakeLists.txt
│ │ │ ├── README.md
│ │ │ ├── contrib/
│ │ │ │ └── .gitignore
│ │ │ ├── exclude.me
│ │ │ ├── requires.cmake
│ │ │ └── runner.sh
│ │ ├── tf2circle-dredd-pbtxt-test/
│ │ │ ├── .gitignore
│ │ │ ├── CMakeLists.txt
│ │ │ ├── README.md
│ │ │ ├── exclude.me
│ │ │ ├── requires.cmake
│ │ │ ├── runner.sh
│ │ │ └── test.lst
│ │ ├── tf2circle-model-test/
│ │ │ ├── .gitignore
│ │ │ ├── CMakeLists.txt
│ │ │ ├── README.md
│ │ │ ├── contrib/
│ │ │ │ └── .gitignore
│ │ │ ├── exclude.me
│ │ │ ├── requires.cmake
│ │ │ └── runner.sh
│ │ ├── tf2circle-ui-check/
│ │ │ ├── .gitignore
│ │ │ ├── CMakeLists.txt
│ │ │ ├── README.md
│ │ │ ├── checkall.sh
│ │ │ ├── exclude.me
│ │ │ └── requires.cmake
│ │ ├── tf2circle-value-pbtxt-remote-test/
│ │ │ ├── .gitignore
│ │ │ ├── CMakeLists.txt
│ │ │ ├── README.md
│ │ │ ├── exclude.me
│ │ │ ├── requires.cmake
│ │ │ └── testall.sh
│ │ ├── tf2nnpkg/
│ │ │ ├── CMakeLists.txt
│ │ │ ├── README.md
│ │ │ ├── requires.cmake
│ │ │ └── src/
│ │ │ ├── filesystem.h
│ │ │ ├── filesystem_common.cpp
│ │ │ ├── filesystem_linux.cpp
│ │ │ ├── filesystem_windows.cpp
│ │ │ └── tf2nnpkg.cpp
│ │ ├── tf2tflite/
│ │ │ ├── .gitignore
│ │ │ ├── CMakeLists.txt
│ │ │ ├── README.md
│ │ │ ├── exclude.me
│ │ │ ├── proto/
│ │ │ │ └── CustomOpInfo.proto
│ │ │ ├── requires.cmake
│ │ │ └── src/
│ │ │ ├── CustomopConfLoader.cpp
│ │ │ ├── CustomopConfLoader.h
│ │ │ └── Driver.cpp
│ │ ├── tf2tflite-dredd-pb-test/
│ │ │ ├── .gitignore
│ │ │ ├── CMakeLists.txt
│ │ │ ├── README.md
│ │ │ ├── contrib/
│ │ │ │ └── .gitignore
│ │ │ ├── exclude.me
│ │ │ ├── requires.cmake
│ │ │ └── runner.sh
│ │ ├── tf2tflite-dredd-pbtxt-test/
│ │ │ ├── .gitignore
│ │ │ ├── CMakeLists.txt
│ │ │ ├── README.md
│ │ │ ├── exclude.me
│ │ │ ├── requires.cmake
│ │ │ ├── runner.sh
│ │ │ └── test.lst
│ │ ├── tf2tflite-value-pb-test/
│ │ │ ├── .gitignore
│ │ │ ├── CMakeLists.txt
│ │ │ ├── README.md
│ │ │ ├── contrib/
│ │ │ │ └── .gitignore
│ │ │ ├── exclude.me
│ │ │ ├── requires.cmake
│ │ │ └── runner.sh
│ │ ├── tf2tflite-value-pbtxt-test/
│ │ │ ├── .gitignore
│ │ │ ├── CMakeLists.txt
│ │ │ ├── README.md
│ │ │ ├── exclude.me
│ │ │ ├── requires.cmake
│ │ │ ├── test.lst
│ │ │ └── testall.sh
│ │ ├── tfinfo/
│ │ │ ├── CMakeLists.txt
│ │ │ ├── README.md
│ │ │ ├── include/
│ │ │ │ └── nnkit/
│ │ │ │ └── support/
│ │ │ │ └── tftestinfo/
│ │ │ │ ├── ParsedTensor.h
│ │ │ │ └── TensorInfoParser.h
│ │ │ ├── requires.cmake
│ │ │ └── src/
│ │ │ ├── Compat.h
│ │ │ ├── TensorInfoParser.cpp
│ │ │ └── TensorInfoParser.test.cpp
│ │ └── tfts/
│ │ ├── CMakeLists.txt
│ │ ├── README.md
│ │ ├── check_all.sh
│ │ ├── exclude.me
│ │ └── requires.cmake
│ ├── adtidas/
│ │ ├── CMakeLists.txt
│ │ ├── README.md
│ │ ├── exclude.me
│ │ └── include/
│ │ └── adtidas/
│ │ └── SmallVector.h
│ ├── angkor/
│ │ ├── CMakeLists.txt
│ │ ├── README.md
│ │ ├── include/
│ │ │ ├── angkor/
│ │ │ │ ├── TensorIndex.h
│ │ │ │ └── TensorShape.h
│ │ │ └── nncc/
│ │ │ └── core/
│ │ │ └── ADT/
│ │ │ ├── feature/
│ │ │ │ ├── Accessor.h
│ │ │ │ ├── Buffer.h
│ │ │ │ ├── CHWLayout.h
│ │ │ │ ├── HWCLayout.h
│ │ │ │ ├── Layout.h
│ │ │ │ ├── Overlay.h
│ │ │ │ ├── Reader.h
│ │ │ │ ├── Shape.h
│ │ │ │ └── View.h
│ │ │ ├── kernel/
│ │ │ │ ├── Accessor.h
│ │ │ │ ├── Buffer.h
│ │ │ │ ├── IndexEnumerator.h
│ │ │ │ ├── Layout.h
│ │ │ │ ├── NCHWLayout.h
│ │ │ │ ├── NHWCLayout.h
│ │ │ │ ├── Overlay.h
│ │ │ │ ├── Reader.h
│ │ │ │ ├── Shape.h
│ │ │ │ ├── View.h
│ │ │ │ └── ViewImpl.h
│ │ │ └── tensor/
│ │ │ ├── Accessor.h
│ │ │ ├── Buffer.h
│ │ │ ├── Index.h
│ │ │ ├── IndexEnumerator.h
│ │ │ ├── Layout.h
│ │ │ ├── LexicalLayout.h
│ │ │ ├── Overlay.h
│ │ │ ├── Reader.h
│ │ │ ├── Shape.h
│ │ │ └── View.h
│ │ └── src/
│ │ ├── ADT/
│ │ │ ├── feature/
│ │ │ │ ├── Accessor.cpp
│ │ │ │ ├── Buffer.test.cpp
│ │ │ │ ├── CHWLayout.cpp
│ │ │ │ ├── CHWLayout.test.cpp
│ │ │ │ ├── HWCLayout.cpp
│ │ │ │ ├── HWCLayout.test.cpp
│ │ │ │ ├── Layout.cpp
│ │ │ │ ├── Layout.test.cpp
│ │ │ │ ├── Overlay.test.cpp
│ │ │ │ ├── Reader.cpp
│ │ │ │ └── Shape.test.cpp
│ │ │ ├── kernel/
│ │ │ │ ├── Buffer.test.cpp
│ │ │ │ ├── IndexEnumerator.cpp
│ │ │ │ ├── IndexEnumerator.test.cpp
│ │ │ │ ├── Layout.cpp
│ │ │ │ ├── Layout.test.cpp
│ │ │ │ ├── NCHWLayout.cpp
│ │ │ │ ├── NCHWLayout.test.cpp
│ │ │ │ ├── NHWCLayout.cpp
│ │ │ │ ├── NHWCLayout.test.cpp
│ │ │ │ ├── Overlay.test.cpp
│ │ │ │ ├── Reader.cpp
│ │ │ │ ├── Shape.cpp
│ │ │ │ └── Shape.test.cpp
│ │ │ └── tensor/
│ │ │ ├── Buffer.test.cpp
│ │ │ ├── Index.cpp
│ │ │ ├── Index.test.cpp
│ │ │ ├── IndexEnumerator.cpp
│ │ │ ├── IndexEnumerator.test.cpp
│ │ │ ├── Layout.cpp
│ │ │ ├── Layout.test.cpp
│ │ │ ├── LexicalLayout.cpp
│ │ │ ├── LexicalLayout.test.cpp
│ │ │ ├── Overlay.test.cpp
│ │ │ ├── Reader.cpp
│ │ │ ├── Shape.cpp
│ │ │ └── Shape.test.cpp
│ │ ├── TensorIndex.test.cpp
│ │ └── TensorShape.test.cpp
│ ├── arser/
│ │ ├── CMakeLists.txt
│ │ ├── README.md
│ │ ├── include/
│ │ │ └── arser/
│ │ │ └── arser.h
│ │ └── tests/
│ │ ├── HelpMessage.test.cpp
│ │ ├── Prompt.h
│ │ └── arser.test.cpp
│ ├── bcq-tools/
│ │ ├── CMakeLists.txt
│ │ ├── README.md
│ │ ├── generate_bcq_metadata.py
│ │ └── generate_bcq_output_arrays.py
│ ├── bino/
│ │ ├── CMakeLists.txt
│ │ ├── README.md
│ │ ├── exclude.me
│ │ ├── include/
│ │ │ └── bino.h
│ │ └── tests/
│ │ └── Functional.tests.cpp
│ ├── circle-eval-diff/
│ │ ├── CMakeLists.txt
│ │ ├── README.md
│ │ ├── driver/
│ │ │ └── Driver.cpp
│ │ ├── include/
│ │ │ └── CircleEvalDiff.h
│ │ ├── requires.cmake
│ │ └── src/
│ │ ├── CircleEvalDiff.cpp
│ │ ├── InputDataLoader.cpp
│ │ ├── InputDataLoader.h
│ │ ├── InputDataLoader.test.cpp
│ │ ├── MetricPrinter.cpp
│ │ ├── MetricPrinter.h
│ │ ├── MetricPrinter.test.cpp
│ │ ├── Tensor.cpp
│ │ ├── Tensor.h
│ │ └── Tensor.test.cpp
│ ├── circle-execution-plan/
│ │ ├── CMakeLists.txt
│ │ ├── README.md
│ │ ├── pal/
│ │ │ ├── IScratchpadHelper.h
│ │ │ ├── ScratchpadHelperCMSISNN.h
│ │ │ ├── ScratchpadHelperLinux.h
│ │ │ ├── ScratchpadHelperMCU.h
│ │ │ └── TargetPlatform.h
│ │ ├── requires.cmake
│ │ └── src/
│ │ ├── CircleExecutionPlan.cpp
│ │ ├── ExecutionPlanner.cpp
│ │ └── ExecutionPlanner.h
│ ├── circle-input-names/
│ │ ├── CMakeLists.txt
│ │ ├── README.md
│ │ ├── requires.cmake
│ │ └── src/
│ │ ├── circle-input-names.cpp
│ │ └── circle-input-names.test.cpp
│ ├── circle-inspect/
│ │ ├── CMakeLists.txt
│ │ ├── README.md
│ │ ├── driver/
│ │ │ └── Driver.cpp
│ │ ├── requires.cmake
│ │ └── src/
│ │ ├── Dump.cpp
│ │ └── Dump.h
│ ├── circle-interpreter/
│ │ ├── CMakeLists.txt
│ │ ├── requires.cmake
│ │ └── src/
│ │ ├── CircleInterpreter.cpp
│ │ └── CircleInterpreter_cffi.cpp
│ ├── circle-interpreter-cffi-test/
│ │ ├── CMakeLists.txt
│ │ ├── README.md
│ │ ├── infer.py
│ │ ├── requires.cmake
│ │ └── test.lst
│ ├── circle-interpreter-test/
│ │ ├── CMakeLists.txt
│ │ ├── README.md
│ │ ├── requires.cmake
│ │ └── src/
│ │ └── circle-interpreter.test.cpp
│ ├── circle-mpqsolver/
│ │ ├── CMakeLists.txt
│ │ ├── README.md
│ │ ├── requires.cmake
│ │ └── src/
│ │ ├── CircleMPQSolver.cpp
│ │ ├── MPQSolver.cpp
│ │ ├── MPQSolver.h
│ │ ├── bisection/
│ │ │ ├── BisectionSolver.cpp
│ │ │ ├── BisectionSolver.h
│ │ │ ├── BisectionSolver.test.cpp
│ │ │ ├── DepthParameterizer.cpp
│ │ │ ├── DepthParameterizer.h
│ │ │ ├── DepthParameterizer.test.cpp
│ │ │ ├── VISQErrorApproximator.cpp
│ │ │ ├── VISQErrorApproximator.h
│ │ │ └── VISQErrorApproximator.test.cpp
│ │ ├── core/
│ │ │ ├── DataProvider.cpp
│ │ │ ├── DataProvider.h
│ │ │ ├── Dumper.cpp
│ │ │ ├── Dumper.h
│ │ │ ├── Dumper.test.cpp
│ │ │ ├── DumpingHooks.cpp
│ │ │ ├── DumpingHooks.h
│ │ │ ├── DumpingHooks.test.cpp
│ │ │ ├── ErrorMetric.cpp
│ │ │ ├── ErrorMetric.h
│ │ │ ├── ErrorMetric.test.cpp
│ │ │ ├── Evaluator.cpp
│ │ │ ├── Evaluator.h
│ │ │ ├── Evaluator.test.cpp
│ │ │ ├── Quantizer.cpp
│ │ │ ├── Quantizer.h
│ │ │ ├── Quantizer.test.cpp
│ │ │ ├── SolverHooks.cpp
│ │ │ ├── SolverHooks.h
│ │ │ ├── SolverOutput.cpp
│ │ │ ├── SolverOutput.h
│ │ │ ├── TestHelper.h
│ │ │ └── TestHelper.test.cpp
│ │ └── pattern/
│ │ ├── PatternResolver.cpp
│ │ ├── PatternResolver.h
│ │ ├── PatternResolver.test.cpp
│ │ ├── PatternSolver.cpp
│ │ ├── PatternSolver.h
│ │ └── PatternSolver.test.cpp
│ ├── circle-operator/
│ │ ├── CMakeLists.txt
│ │ ├── README.md
│ │ ├── driver/
│ │ │ └── Driver.cpp
│ │ ├── requires.cmake
│ │ └── src/
│ │ ├── Dump.cpp
│ │ └── Dump.h
│ ├── circle-operator-test/
│ │ ├── CMakeLists.txt
│ │ ├── README.md
│ │ ├── requires.cmake
│ │ └── src/
│ │ └── circle-operator.test.cpp
│ ├── circle-opselector/
│ │ ├── CMakeLists.txt
│ │ ├── README.md
│ │ ├── driver/
│ │ │ └── Driver.cpp
│ │ ├── requires.cmake
│ │ └── src/
│ │ ├── ModuleIO.cpp
│ │ ├── ModuleIO.h
│ │ ├── ModuleIO.test.cpp
│ │ ├── OpSelector.cpp
│ │ ├── OpSelector.h
│ │ ├── OpSelector.test.cpp
│ │ ├── SelectType.h
│ │ └── TestHelper.h
│ ├── circle-part-driver/
│ │ ├── CMakeLists.txt
│ │ ├── README.md
│ │ ├── requires.cmake
│ │ └── src/
│ │ ├── Driver.cpp
│ │ ├── PModelsRunner.cpp
│ │ └── PModelsRunner.h
│ ├── circle-part-value-py-test/
│ │ ├── CMakeLists.txt
│ │ ├── README.md
│ │ ├── conftest.py
│ │ ├── parts/
│ │ │ ├── Net_InstanceNorm_003.001.part
│ │ │ ├── Net_InstanceNorm_003.002.part
│ │ │ ├── Net_InstanceNorm_003.003.part
│ │ │ ├── Net_InstanceNorm_003.part
│ │ │ ├── Net_UnpackAdd_001.001.part
│ │ │ ├── Net_UnpackAdd_001.002.part
│ │ │ ├── Net_UnpackAdd_001.part
│ │ │ ├── Part_Add_Sqrt_000.part
│ │ │ ├── Part_Add_Sqrt_Rsqrt_000.part
│ │ │ ├── Part_Add_Sub_000.001.part
│ │ │ ├── Part_Add_Sub_000.part
│ │ │ ├── Part_Add_Sub_001.part
│ │ │ ├── Part_Add_Sub_002.001.part
│ │ │ ├── Part_Add_Sub_002.002.part
│ │ │ ├── Part_If_Add_Sub_000.001.part
│ │ │ ├── Part_If_Add_Sub_001.001.part
│ │ │ ├── Part_Mul_Sqrt_FC_nobias_000_000.part
│ │ │ ├── Part_Mul_Sqrt_FC_nobias_000_001.part
│ │ │ ├── Part_Mul_Sqrt_FC_nobias_000_002.part
│ │ │ ├── Part_Split_Add_000.part
│ │ │ ├── Part_Sqrt_Rsqrt_000.part
│ │ │ ├── Part_Sqrt_Rsqrt_001.part
│ │ │ ├── Part_Sqrt_Rsqrt_002.part
│ │ │ ├── Part_Sqrt_Rsqrt_003.part
│ │ │ ├── Part_Sqrt_Rsqrt_Add_000.part
│ │ │ ├── Part_Sqrt_Rsqrt_Add_001.part
│ │ │ ├── Part_Sqrt_Rsqrt_Add_002.part
│ │ │ ├── Part_Sqrt_Rsqrt_Add_003.part
│ │ │ ├── Part_Sqrt_Rsqrt_Add_004.part
│ │ │ ├── Part_Tanh_FC_nobias.part
│ │ │ ├── Part_Tanh_FC_nobias_001.part
│ │ │ ├── Part_Tanh_FC_nobias_002.part
│ │ │ ├── Part_Tanh_FC_nobias_003.part
│ │ │ ├── Part_While_000.part
│ │ │ ├── Part_While_001.part
│ │ │ ├── SignatureDef_MultiOut_000.part
│ │ │ └── SignatureDef_MultiOut_001.part
│ │ ├── requires.cmake
│ │ ├── test.lst
│ │ └── test_circle_part_value.py
│ ├── circle-part-value-test/
│ │ ├── CMakeLists.txt
│ │ ├── README.md
│ │ ├── exclude.me
│ │ ├── part_eval_all.sh
│ │ ├── part_eval_one.py
│ │ ├── parts/
│ │ │ ├── Net_InstanceNorm_003.001.part
│ │ │ ├── Net_InstanceNorm_003.002.part
│ │ │ ├── Net_InstanceNorm_003.003.part
│ │ │ ├── Net_InstanceNorm_003.part
│ │ │ ├── Net_UnpackAdd_001.001.part
│ │ │ ├── Net_UnpackAdd_001.002.part
│ │ │ ├── Net_UnpackAdd_001.part
│ │ │ ├── Part_Add_Sqrt_000.part
│ │ │ ├── Part_Add_Sqrt_Rsqrt_000.part
│ │ │ ├── Part_Add_Sub_000.001.part
│ │ │ ├── Part_Add_Sub_000.part
│ │ │ ├── Part_Add_Sub_001.part
│ │ │ ├── Part_Add_Sub_002.001.part
│ │ │ ├── Part_Add_Sub_002.002.part
│ │ │ ├── Part_If_Add_Sub_000.001.part
│ │ │ ├── Part_If_Add_Sub_001.001.part
│ │ │ ├── Part_Mul_Sqrt_FC_nobias_000_000.part
│ │ │ ├── Part_Mul_Sqrt_FC_nobias_000_001.part
│ │ │ ├── Part_Mul_Sqrt_FC_nobias_000_002.part
│ │ │ ├── Part_Split_Add_000.part
│ │ │ ├── Part_Sqrt_Rsqrt_000.part
│ │ │ ├── Part_Sqrt_Rsqrt_001.part
│ │ │ ├── Part_Sqrt_Rsqrt_002.part
│ │ │ ├── Part_Sqrt_Rsqrt_003.part
│ │ │ ├── Part_Sqrt_Rsqrt_Add_000.part
│ │ │ ├── Part_Sqrt_Rsqrt_Add_001.part
│ │ │ ├── Part_Sqrt_Rsqrt_Add_002.part
│ │ │ ├── Part_Sqrt_Rsqrt_Add_003.part
│ │ │ ├── Part_Sqrt_Rsqrt_Add_004.part
│ │ │ ├── Part_Tanh_FC_nobias.part
│ │ │ ├── Part_Tanh_FC_nobias_001.part
│ │ │ ├── Part_Tanh_FC_nobias_002.part
│ │ │ ├── Part_Tanh_FC_nobias_003.part
│ │ │ ├── Part_While_000.part
│ │ │ ├── Part_While_001.part
│ │ │ ├── SignatureDef_MultiOut_000.part
│ │ │ └── SignatureDef_MultiOut_001.part
│ │ ├── requires.cmake
│ │ └── test.lst
│ ├── circle-partitioner/
│ │ ├── CMakeLists.txt
│ │ ├── README.md
│ │ ├── requires.cmake
│ │ └── src/
│ │ ├── CirclePartitioner.cpp
│ │ ├── HelperPath.cpp
│ │ ├── HelperPath.h
│ │ ├── PartitionExport.cpp
│ │ ├── PartitionExport.h
│ │ ├── PartitionRead.cpp
│ │ └── PartitionRead.h
│ ├── circle-partitioner-test/
│ │ ├── CMakeLists.txt
│ │ ├── README.md
│ │ ├── parts/
│ │ │ ├── Net_InstanceNorm_003.part
│ │ │ └── Part_Add_SVDF_000.part
│ │ ├── requires.cmake
│ │ └── test.lst
│ ├── circle-quantizer/
│ │ ├── CMakeLists.txt
│ │ ├── README.md
│ │ ├── requires.cmake
│ │ └── src/
│ │ └── CircleQuantizer.cpp
│ ├── circle-quantizer-dredd-recipe-test/
│ │ ├── CMakeLists.txt
│ │ ├── README.md
│ │ ├── requires.cmake
│ │ ├── test.lst
│ │ └── testall.sh
│ ├── circle-resizer/
│ │ ├── CMakeLists.txt
│ │ ├── README.md
│ │ ├── app/
│ │ │ ├── CMakeLists.txt
│ │ │ └── CircleResizer.cpp
│ │ ├── include/
│ │ │ ├── CircleModel.h
│ │ │ ├── Dim.h
│ │ │ ├── ModelEditor.h
│ │ │ ├── Shape.h
│ │ │ └── ShapeParser.h
│ │ ├── requires.cmake
│ │ ├── src/
│ │ │ ├── CMakeLists.txt
│ │ │ ├── CircleModel.cpp
│ │ │ ├── Dim.cpp
│ │ │ ├── ModelEditor.cpp
│ │ │ ├── Shape.cpp
│ │ │ └── ShapeParser.cpp
│ │ └── tests/
│ │ ├── CMakeLists.txt
│ │ ├── CircleModel.test.cpp
│ │ ├── ModelEditor.test.cpp
│ │ ├── Shape.test.cpp
│ │ └── ShapeParser.test.cpp
│ ├── circle-resizer-dredd-recipe-test/
│ │ ├── CMakeLists.txt
│ │ ├── README.md
│ │ ├── requires.cmake
│ │ ├── test.lst
│ │ └── testall.sh
│ ├── circle-tensordump/
│ │ ├── CMakeLists.txt
│ │ ├── README.md
│ │ ├── driver/
│ │ │ └── Driver.cpp
│ │ ├── requires.cmake
│ │ └── src/
│ │ ├── Dump.cpp
│ │ └── Dump.h
│ ├── circle-verify/
│ │ ├── CMakeLists.txt
│ │ ├── README.md
│ │ ├── requires.cmake
│ │ └── src/
│ │ ├── Driver.cpp
│ │ ├── VerifyFlatBuffers.cpp
│ │ └── VerifyFlatBuffers.h
│ ├── circle2circle/
│ │ ├── CMakeLists.txt
│ │ ├── README.md
│ │ ├── requires.cmake
│ │ └── src/
│ │ ├── Circle2Circle.cpp
│ │ ├── Circle2Circle.test.cpp
│ │ └── TestHelper.h
│ ├── circle2circle-dredd-recipe-test/
│ │ ├── CMakeLists.txt
│ │ ├── README.md
│ │ ├── requires.cmake
│ │ ├── test.lst
│ │ └── testall.sh
│ ├── circlechef/
│ │ ├── CMakeLists.txt
│ │ ├── README.md
│ │ ├── circle/
│ │ │ ├── CMakeLists.txt
│ │ │ ├── include/
│ │ │ │ └── circlechef/
│ │ │ │ └── RecipeChef.h
│ │ │ └── src/
│ │ │ ├── CircleImport.cpp
│ │ │ ├── CircleImport.h
│ │ │ ├── CircleOpChef.h
│ │ │ ├── CircleOpChefs.h
│ │ │ ├── CircleOpRegistry.h
│ │ │ ├── Convert.cpp
│ │ │ ├── Convert.h
│ │ │ ├── Op/
│ │ │ │ ├── BCQFullyConnected.cpp
│ │ │ │ ├── BCQFullyConnected.h
│ │ │ │ ├── BCQGather.cpp
│ │ │ │ ├── BCQGather.h
│ │ │ │ ├── BatchMatMul.cpp
│ │ │ │ ├── BatchMatMul.h
│ │ │ │ ├── GRU.cpp
│ │ │ │ ├── GRU.h
│ │ │ │ ├── InstanceNorm.cpp
│ │ │ │ ├── InstanceNorm.h
│ │ │ │ ├── RmsNorm.cpp
│ │ │ │ ├── RmsNorm.h
│ │ │ │ ├── RoPE.cpp
│ │ │ │ └── RoPE.h
│ │ │ └── RecipeChef.cpp
│ │ ├── core/
│ │ │ ├── CMakeLists.txt
│ │ │ ├── include/
│ │ │ │ └── circlechef/
│ │ │ │ └── ModelChef.h
│ │ │ └── src/
│ │ │ ├── Arguments.h
│ │ │ ├── Convert.cpp
│ │ │ ├── Convert.h
│ │ │ ├── Convert.test.cpp
│ │ │ ├── DataChef.def
│ │ │ ├── ModelChef.cpp
│ │ │ ├── Op/
│ │ │ │ ├── BCQFullyConnected.cpp
│ │ │ │ ├── BCQFullyConnected.h
│ │ │ │ ├── BCQGather.cpp
│ │ │ │ ├── BCQGather.h
│ │ │ │ ├── BatchMatMul.cpp
│ │ │ │ ├── BatchMatMul.h
│ │ │ │ ├── Dequantize.cpp
│ │ │ │ ├── Dequantize.h
│ │ │ │ ├── FullyConnected.cpp
│ │ │ │ ├── FullyConnected.h
│ │ │ │ ├── GRU.cpp
│ │ │ │ ├── GRU.h
│ │ │ │ ├── InstanceNorm.cpp
│ │ │ │ ├── InstanceNorm.h
│ │ │ │ ├── Quantize.cpp
│ │ │ │ ├── Quantize.h
│ │ │ │ ├── RmsNorm.cpp
│ │ │ │ ├── RmsNorm.h
│ │ │ │ ├── RoPE.cpp
│ │ │ │ └── RoPE.h
│ │ │ ├── OpChef.def
│ │ │ ├── OpChef.h
│ │ │ └── OpChefs.h
│ │ ├── log/
│ │ │ ├── CMakeLists.txt
│ │ │ ├── include/
│ │ │ │ ├── Log.h
│ │ │ │ └── LoggingContext.h
│ │ │ └── src/
│ │ │ ├── Log.cpp
│ │ │ └── LoggingContext.cpp
│ │ ├── proto/
│ │ │ ├── CMakeLists.txt
│ │ │ └── circlechef.proto
│ │ ├── requires.cmake
│ │ ├── tests/
│ │ │ ├── CMakeLists.txt
│ │ │ ├── int4_datatype/
│ │ │ │ └── test.recipe
│ │ │ ├── runvalidate.sh
│ │ │ ├── shape_signature/
│ │ │ │ ├── test.recipe
│ │ │ │ └── test.reverse
│ │ │ ├── short_int_datatype/
│ │ │ │ ├── test.recipe
│ │ │ │ └── test.reverse
│ │ │ ├── string_tensor/
│ │ │ │ └── test.recipe
│ │ │ └── uint4_datatype/
│ │ │ └── test.recipe
│ │ └── tools/
│ │ ├── CMakeLists.txt
│ │ ├── console/
│ │ │ ├── CMakeLists.txt
│ │ │ ├── Driver.cpp
│ │ │ └── Driver.test.cpp
│ │ ├── file/
│ │ │ ├── CMakeLists.txt
│ │ │ └── Driver.cpp
│ │ └── reverse/
│ │ ├── CMakeLists.txt
│ │ └── Driver.cpp
│ ├── circledump/
│ │ ├── CMakeLists.txt
│ │ ├── README.md
│ │ ├── driver/
│ │ │ └── Driver.cpp
│ │ ├── include/
│ │ │ └── circledump/
│ │ │ └── Dump.h
│ │ ├── requires.cmake
│ │ └── src/
│ │ ├── Dump.cpp
│ │ ├── MetadataPrinter.cpp
│ │ ├── MetadataPrinter.h
│ │ ├── OpPrinter.cpp
│ │ └── OpPrinter.h
│ ├── cli/
│ │ ├── CMakeLists.txt
│ │ ├── README.md
│ │ ├── exclude.me
│ │ ├── include/
│ │ │ └── cli/
│ │ │ ├── App.h
│ │ │ ├── Command.h
│ │ │ └── FunctionCommand.h
│ │ └── src/
│ │ ├── App.cpp
│ │ └── App.test.cpp
│ ├── common-artifacts/
│ │ ├── CMakeLists.txt
│ │ ├── README.md
│ │ ├── exclude.lst
│ │ ├── options.lst
│ │ ├── requires.cmake
│ │ └── src/
│ │ └── TestDataGenerator.cpp
│ ├── crew/
│ │ ├── CMakeLists.txt
│ │ ├── README.md
│ │ ├── include/
│ │ │ └── crew/
│ │ │ ├── PConfig.h
│ │ │ ├── PConfigIni.h
│ │ │ ├── PConfigIniDump.h
│ │ │ └── PConfigJson.h
│ │ ├── requires.cmake
│ │ └── src/
│ │ ├── PConfig.cpp
│ │ ├── PConfigIni.cpp
│ │ ├── PConfigIni.test.cpp
│ │ ├── PConfigIniDump.cpp
│ │ ├── PConfigIniDump.test.cpp
│ │ ├── PConfigJson.cpp
│ │ ├── PConfigJson.test.cpp
│ │ └── test_read_semicolon.ini
│ ├── cwrap/
│ │ ├── CMakeLists.txt
│ │ ├── README.md
│ │ ├── include/
│ │ │ └── cwrap/
│ │ │ └── Fildes.h
│ │ └── src/
│ │ ├── Fildes.cpp
│ │ └── Fildes.test.cpp
│ ├── dalgona/
│ │ ├── CMakeLists.txt
│ │ ├── README.md
│ │ ├── analysis/
│ │ │ └── AnalysisTemplate.py
│ │ ├── driver/
│ │ │ └── Driver.cpp
│ │ ├── include/
│ │ │ ├── Dalgona.h
│ │ │ └── PythonHooks.h
│ │ ├── requires.cmake
│ │ └── src/
│ │ ├── Dalgona.cpp
│ │ ├── PostOperatorHook.h
│ │ ├── PreOperatorHook.h
│ │ ├── PythonHooks.cpp
│ │ ├── RandomUtils.cpp
│ │ ├── RandomUtils.h
│ │ ├── RandomUtils.test.cpp
│ │ ├── StringUtils.cpp
│ │ ├── StringUtils.h
│ │ ├── StringUtils.test.cpp
│ │ ├── Utils.cpp
│ │ └── Utils.h
│ ├── dalgona-test/
│ │ ├── .gitignore
│ │ ├── CMakeLists.txt
│ │ ├── GenH5RandomInputs.py
│ │ ├── RandomDataGenerator.py
│ │ ├── SingleOperatorTest.py
│ │ ├── TestSingleOp.sh
│ │ ├── TestUtil.py
│ │ ├── requires.cmake
│ │ └── test.lst
│ ├── dio-hdf5/
│ │ ├── CMakeLists.txt
│ │ ├── README.md
│ │ ├── include/
│ │ │ └── dio_hdf5/
│ │ │ └── HDF5Importer.h
│ │ ├── requires.cmake
│ │ └── src/
│ │ ├── HDF5Importer.cpp
│ │ └── HDF5Importer.test.cpp
│ ├── dredd-rule-lib/
│ │ ├── CMakeLists.txt
│ │ ├── README.md
│ │ └── rule-lib.sh
│ ├── embedded-import-value-test/
│ │ ├── .gitignore
│ │ ├── CMakeLists.txt
│ │ ├── README.md
│ │ ├── evalverify.sh
│ │ ├── requires.cmake
│ │ ├── src/
│ │ │ └── TestDriver.cpp
│ │ └── test.lst
│ ├── exo/
│ │ ├── CMakeLists.txt
│ │ ├── README.md
│ │ ├── exclude.me
│ │ ├── include/
│ │ │ └── exo/
│ │ │ ├── CircleExporter.h
│ │ │ ├── LoggingContext.h
│ │ │ └── TFLExporter.h
│ │ ├── requires.cmake
│ │ └── src/
│ │ ├── Check.h
│ │ ├── Circle/
│ │ │ ├── CircleExporter.cpp
│ │ │ ├── CircleExporterImpl.cpp
│ │ │ ├── CircleExporterImpl.h
│ │ │ ├── CircleExporterUtils.cpp
│ │ │ ├── CircleExporterUtils.h
│ │ │ ├── CircleOperationExporter.cpp
│ │ │ ├── CircleOperationExporter.h
│ │ │ ├── CircleTensorExporter.cpp
│ │ │ ├── CircleTensorExporter.h
│ │ │ ├── CircleTypeInference.cpp
│ │ │ └── CircleTypeInference.h
│ │ ├── Conversion/
│ │ │ ├── AvgPool2DConverter.cpp
│ │ │ ├── AvgPool2DConverter.h
│ │ │ ├── CanonicalNodeConverter.cpp
│ │ │ ├── CanonicalNodeConverter.h
│ │ │ ├── ConstGenConverter.cpp
│ │ │ ├── ConstGenConverter.h
│ │ │ ├── ConstGenConverter.test.cpp
│ │ │ ├── Conv2DConverter.cpp
│ │ │ ├── Conv2DConverter.h
│ │ │ ├── DepthwiseConv2DConverter.cpp
│ │ │ ├── DepthwiseConv2DConverter.h
│ │ │ ├── EltwiseAddConverter.cpp
│ │ │ ├── EltwiseAddConverter.h
│ │ │ ├── EltwiseBinaryConverter.h
│ │ │ ├── EltwiseDivConverter.cpp
│ │ │ ├── EltwiseDivConverter.h
│ │ │ ├── EltwiseMaxConverter.cpp
│ │ │ ├── EltwiseMaxConverter.h
│ │ │ ├── EltwiseMulConverter.cpp
│ │ │ ├── EltwiseMulConverter.h
│ │ │ ├── EltwiseSqrtConverter.cpp
│ │ │ ├── EltwiseSqrtConverter.h
│ │ │ ├── EltwiseSubConverter.cpp
│ │ │ ├── EltwiseSubConverter.h
│ │ │ ├── FeatureBiasAddConverter.cpp
│ │ │ ├── FeatureBiasAddConverter.h
│ │ │ ├── FeatureBiasAddConverter.test.cpp
│ │ │ ├── MatMulConverter.cpp
│ │ │ ├── MatMulConverter.h
│ │ │ ├── MaxPool2DConverter.cpp
│ │ │ ├── MaxPool2DConverter.h
│ │ │ ├── Relu6Converter.cpp
│ │ │ ├── Relu6Converter.h
│ │ │ ├── ReluConverter.cpp
│ │ │ ├── ReluConverter.h
│ │ │ ├── ReluConverter.test.cpp
│ │ │ ├── TensorBroadcastConverter.cpp
│ │ │ ├── TensorBroadcastConverter.h
│ │ │ ├── TensorConcatConverter.cpp
│ │ │ ├── TensorConcatConverter.h
│ │ │ ├── TensorReduceConverter.cpp
│ │ │ ├── TensorReduceConverter.h
│ │ │ ├── TensorTransposeConverter.cpp
│ │ │ ├── TensorTransposeConverter.h
│ │ │ ├── TransposedConv2DConverter.cpp
│ │ │ └── TransposedConv2DConverter.h
│ │ ├── Conversions.h
│ │ ├── Convert.cpp
│ │ ├── Convert.h
│ │ ├── Dialect/
│ │ │ ├── IR/
│ │ │ │ ├── CircleDialect.cpp
│ │ │ │ ├── CircleDialect.h
│ │ │ │ ├── CircleDialect.test.cpp
│ │ │ │ ├── CircleNode.cpp
│ │ │ │ ├── CircleNode.h
│ │ │ │ ├── CircleNodeDecl.h
│ │ │ │ ├── CircleNodeImpl.h
│ │ │ │ ├── CircleNodeVisitor.forward.h
│ │ │ │ ├── CircleNodeVisitor.h
│ │ │ │ ├── CircleNodes.cpp
│ │ │ │ ├── CircleNodes.h
│ │ │ │ ├── CircleNodes.lst
│ │ │ │ ├── CircleNodes.test.cpp
│ │ │ │ ├── CircleOpcode.h
│ │ │ │ ├── FusedActFunc.h
│ │ │ │ ├── NodeMixins.cpp
│ │ │ │ ├── NodeMixins.h
│ │ │ │ ├── TFLDialect.cpp
│ │ │ │ ├── TFLDialect.h
│ │ │ │ ├── TFLDialect.test.cpp
│ │ │ │ ├── TFLNode.cpp
│ │ │ │ ├── TFLNode.h
│ │ │ │ ├── TFLNodeDecl.h
│ │ │ │ ├── TFLNodeImpl.h
│ │ │ │ ├── TFLNodeVisitor.forward.h
│ │ │ │ ├── TFLNodeVisitor.h
│ │ │ │ ├── TFLNodes.cpp
│ │ │ │ ├── TFLNodes.h
│ │ │ │ ├── TFLNodes.lst
│ │ │ │ ├── TFLNodes.test.cpp
│ │ │ │ └── TFLOpcode.h
│ │ │ └── Service/
│ │ │ ├── CircleShapeInferenceRule.cpp
│ │ │ ├── CircleShapeInferenceRule.h
│ │ │ ├── CircleTypeInferenceRule.cpp
│ │ │ ├── CircleTypeInferenceRule.h
│ │ │ ├── TFLShapeInferenceRule.cpp
│ │ │ ├── TFLShapeInferenceRule.h
│ │ │ ├── TFLShapeInferenceRule.test.cpp
│ │ │ ├── TFLTypeInferenceRule.cpp
│ │ │ ├── TFLTypeInferenceRule.h
│ │ │ └── TFLTypeInferenceRule.test.cpp
│ │ ├── ExoFormattedGraph.cpp
│ │ ├── ExoFormattedGraph.h
│ │ ├── ExoOptimize.cpp
│ │ ├── ExoOptimize.h
│ │ ├── ExporterUtils.cpp
│ │ ├── ExporterUtils.h
│ │ ├── GraphBlock.cpp
│ │ ├── GraphBlock.h
│ │ ├── Knob.cpp
│ │ ├── Knob.h
│ │ ├── Knob.lst
│ │ ├── Log.cpp
│ │ ├── Log.h
│ │ ├── LogHelper.cpp
│ │ ├── LogHelper.h
│ │ ├── LoggingContext.cpp
│ │ ├── Pass/
│ │ │ ├── FoldReshapeOfConstPass.cpp
│ │ │ ├── FoldReshapeOfConstPass.h
│ │ │ ├── FoldTransposeOfConstPass.cpp
│ │ │ ├── FoldTransposeOfConstPass.h
│ │ │ ├── FuseBiasAddPass.cpp
│ │ │ ├── FuseBiasAddPass.h
│ │ │ ├── FuseBiasAddPass.test.cpp
│ │ │ ├── FuseInstanceNormPass.cpp
│ │ │ ├── FuseInstanceNormPass.h
│ │ │ ├── FuseReluPass.cpp
│ │ │ ├── FuseReluPass.h
│ │ │ ├── FuseReluPass.test.cpp
│ │ │ ├── FuseRsqrtPass.cpp
│ │ │ ├── FuseRsqrtPass.h
│ │ │ ├── FuseSquaredDifferencePass.cpp
│ │ │ ├── FuseSquaredDifferencePass.h
│ │ │ ├── MergeConcatNodesPass.cpp
│ │ │ ├── MergeConcatNodesPass.h
│ │ │ ├── ShapeInferencePass.cpp
│ │ │ ├── ShapeInferencePass.h
│ │ │ ├── TypeInferencePass.cpp
│ │ │ └── TypeInferencePass.h
│ │ ├── Passes.cpp
│ │ ├── Passes.h
│ │ ├── ProgressReporter.cpp
│ │ ├── ProgressReporter.h
│ │ ├── ShapeInference.cpp
│ │ ├── ShapeInference.h
│ │ ├── TFLite/
│ │ │ ├── TFLExporter.cpp
│ │ │ ├── TFLExporterImpl.cpp
│ │ │ ├── TFLExporterImpl.h
│ │ │ ├── TFLExporterImpl.test.cpp
│ │ │ ├── TFLExporterUtils.cpp
│ │ │ ├── TFLExporterUtils.h
│ │ │ ├── TFLExporterUtils.test.cpp
│ │ │ ├── TFLOperationExporter.cpp
│ │ │ ├── TFLOperationExporter.h
│ │ │ ├── TFLTensorExporter.cpp
│ │ │ ├── TFLTensorExporter.h
│ │ │ ├── TFLTypeInference.cpp
│ │ │ ├── TFLTypeInference.h
│ │ │ └── TFLTypeInference.test.cpp
│ │ ├── TestGraph.h
│ │ └── TestHelper.h
│ ├── fipe/
│ │ ├── CMakeLists.txt
│ │ ├── README.md
│ │ ├── exclude.me
│ │ ├── fipe.test.cpp
│ │ └── include/
│ │ └── fipe.h
│ ├── fm-equalize/
│ │ ├── CMakeLists.txt
│ │ ├── README.md
│ │ ├── fm-equalize
│ │ ├── fmelib/
│ │ │ ├── ComputeParam.py
│ │ │ ├── DumpFMEParams.py
│ │ │ └── __init__.py
│ │ ├── requires.cmake
│ │ └── test/
│ │ ├── __init__.py
│ │ └── testComputeParam.py
│ ├── fm-equalize-value-py-test/
│ │ ├── CMakeLists.txt
│ │ ├── README.md
│ │ ├── conftest.py
│ │ ├── requires.cmake
│ │ ├── test.lst
│ │ └── test_luci_eval.py
│ ├── fme-apply/
│ │ ├── CMakeLists.txt
│ │ ├── README.md
│ │ ├── driver/
│ │ │ └── Driver.cpp
│ │ ├── requires.cmake
│ │ └── src/
│ │ ├── EqualizePattern.h
│ │ ├── EqualizePatternCheck.cpp
│ │ ├── EqualizePatternCheck.h
│ │ ├── EqualizePatternCheck.test.cpp
│ │ ├── EqualizePatternRead.cpp
│ │ ├── EqualizePatternRead.h
│ │ ├── EqualizePatternRead.test.cpp
│ │ ├── FMEqualizer.cpp
│ │ ├── FMEqualizer.h
│ │ ├── FMEqualizer.test.cpp
│ │ ├── InsertScaleShift.cpp
│ │ ├── InsertScaleShift.h
│ │ ├── InsertScaleShift.test.cpp
│ │ ├── ProgressReporter.cpp
│ │ ├── ProgressReporter.h
│ │ ├── RandomString.cpp
│ │ ├── RandomString.h
│ │ ├── RandomString.test.cpp
│ │ ├── Support.Cast.cpp
│ │ ├── Support.Cast.h
│ │ ├── Support.Cast.test.cpp
│ │ ├── Support.Misc.cpp
│ │ ├── Support.Misc.h
│ │ ├── Support.Misc.test.cpp
│ │ └── pass/
│ │ ├── FusePostScalePass.cpp
│ │ ├── FusePostScalePass.h
│ │ ├── FusePostScalePass.test.cpp
│ │ ├── FusePreScalePass.cpp
│ │ ├── FusePreScalePass.h
│ │ └── FusePreScalePass.test.cpp
│ ├── fme-detect/
│ │ ├── CMakeLists.txt
│ │ ├── README.md
│ │ ├── driver/
│ │ │ └── Driver.cpp
│ │ ├── requires.cmake
│ │ └── src/
│ │ ├── EqualizePattern.h
│ │ ├── EqualizePatternFinder.cpp
│ │ ├── EqualizePatternFinder.h
│ │ ├── EqualizePatternFinder.test.cpp
│ │ ├── EqualizePatternWrite.cpp
│ │ ├── EqualizePatternWrite.h
│ │ └── EqualizePatternWrite.test.cpp
│ ├── foder/
│ │ ├── CMakeLists.txt
│ │ ├── README.md
│ │ └── include/
│ │ └── foder/
│ │ └── FileLoader.h
│ ├── hermes/
│ │ ├── CMakeLists.txt
│ │ ├── README.md
│ │ ├── include/
│ │ │ ├── hermes/
│ │ │ │ └── core/
│ │ │ │ ├── Config.h
│ │ │ │ ├── Context.h
│ │ │ │ ├── Message.h
│ │ │ │ ├── MessageBuffer.h
│ │ │ │ ├── MessageBus.h
│ │ │ │ ├── Severity.h
│ │ │ │ ├── Sink.h
│ │ │ │ ├── Source.h
│ │ │ │ └── SourceSetting.h
│ │ │ └── hermes.h
│ │ ├── requires.cmake
│ │ └── src/
│ │ ├── core/
│ │ │ ├── Context.cpp
│ │ │ ├── Context.test.cpp
│ │ │ ├── Message.cpp
│ │ │ ├── Message.test.cpp
│ │ │ ├── MessageBuffer.cpp
│ │ │ ├── MessageBuffer.test.cpp
│ │ │ ├── MessageBus.cpp
│ │ │ ├── Severity.test.cpp
│ │ │ ├── Sink.cpp
│ │ │ ├── Source.cpp
│ │ │ └── Source.test.cpp
│ │ ├── hermes.cpp
│ │ └── hermes.test.cpp
│ ├── hermes-std/
│ │ ├── CMakeLists.txt
│ │ ├── README.md
│ │ ├── include/
│ │ │ └── hermes/
│ │ │ ├── ConsoleReporter.h
│ │ │ └── EnvConfig.h
│ │ ├── requires.cmake
│ │ └── src/
│ │ ├── ConsoleReporter.cpp
│ │ ├── ConsoleReporter.test.cpp
│ │ ├── EnvConfig.cpp
│ │ └── EnvConfig.test.cpp
│ ├── i5diff/
│ │ ├── CMakeLists.txt
│ │ ├── README.md
│ │ ├── requires.cmake
│ │ └── src/
│ │ └── entry.cpp
│ ├── kuma/
│ │ ├── CMakeLists.txt
│ │ ├── README.md
│ │ ├── exclude.me
│ │ ├── include/
│ │ │ └── kuma.h
│ │ └── src/
│ │ ├── IntervalSet.cpp
│ │ ├── IntervalSet.h
│ │ ├── IntervalSet.test.cpp
│ │ ├── kuma.cpp
│ │ └── kuma.test.cpp
│ ├── loco/
│ │ ├── CMakeLists.txt
│ │ ├── README.md
│ │ ├── doc/
│ │ │ └── LEP_000_Dialect_Service.md
│ │ ├── include/
│ │ │ ├── loco/
│ │ │ │ ├── ADT/
│ │ │ │ │ ├── AnnotatedItem.h
│ │ │ │ │ └── ObjectPool.h
│ │ │ │ ├── IR/
│ │ │ │ │ ├── Algorithm.h
│ │ │ │ │ ├── BiasShape.h
│ │ │ │ │ ├── CanonicalDialect.h
│ │ │ │ │ ├── CanonicalNode.h
│ │ │ │ │ ├── CanonicalNodeDecl.h
│ │ │ │ │ ├── CanonicalNodeImpl.h
│ │ │ │ │ ├── CanonicalNodeVisitor.forward.h
│ │ │ │ │ ├── CanonicalNodeVisitor.h
│ │ │ │ │ ├── CanonicalNodes.lst
│ │ │ │ │ ├── CanonicalOpcode.h
│ │ │ │ │ ├── CastHelpers.h
│ │ │ │ │ ├── DataType.h
│ │ │ │ │ ├── DataTypeTraits.h
│ │ │ │ │ ├── DepthwiseFilterAxis.h
│ │ │ │ │ ├── DepthwiseFilterCodec.h
│ │ │ │ │ ├── DepthwiseFilterIndex.h
│ │ │ │ │ ├── DepthwiseFilterShape.h
│ │ │ │ │ ├── Dialect.h
│ │ │ │ │ ├── DialectService.h
│ │ │ │ │ ├── Dimension.h
│ │ │ │ │ ├── Domain.h
│ │ │ │ │ ├── FeatureAxis.h
│ │ │ │ │ ├── FeatureCodec.h
│ │ │ │ │ ├── FeatureIndex.h
│ │ │ │ │ ├── FeatureShape.h
│ │ │ │ │ ├── FilterAxis.h
│ │ │ │ │ ├── FilterCodec.h
│ │ │ │ │ ├── FilterIndex.h
│ │ │ │ │ ├── FilterShape.h
│ │ │ │ │ ├── Graph.forward.h
│ │ │ │ │ ├── Graph.h
│ │ │ │ │ ├── GraphInputIndex.h
│ │ │ │ │ ├── GraphOutputIndex.h
│ │ │ │ │ ├── MatrixAxis.h
│ │ │ │ │ ├── MatrixCodec.h
│ │ │ │ │ ├── MatrixIndex.h
│ │ │ │ │ ├── MatrixShape.h
│ │ │ │ │ ├── Node.forward.h
│ │ │ │ │ ├── Node.h
│ │ │ │ │ ├── NodeMixins.h
│ │ │ │ │ ├── NodePool.forward.h
│ │ │ │ │ ├── NodePool.h
│ │ │ │ │ ├── NodeShape.h
│ │ │ │ │ ├── Nodes.h
│ │ │ │ │ ├── Padding2D.h
│ │ │ │ │ ├── PaddingND.h
│ │ │ │ │ ├── PermutingCodec.h
│ │ │ │ │ ├── Stride.h
│ │ │ │ │ ├── TensorAxis.h
│ │ │ │ │ ├── TensorAxisSet.h
│ │ │ │ │ ├── TensorIndex.h
│ │ │ │ │ ├── TensorShape.h
│ │ │ │ │ ├── Use.h
│ │ │ │ │ ├── Verifier.h
│ │ │ │ │ └── Window.h
│ │ │ │ └── Service/
│ │ │ │ ├── CanonicalShapeInferenceRule.h
│ │ │ │ ├── MultiDialectShapeInferenceRule.h
│ │ │ │ ├── ShapeInference.h
│ │ │ │ ├── ShapeInferenceRule.h
│ │ │ │ └── TypeInference.h
│ │ │ └── loco.h
│ │ ├── requires.cmake
│ │ └── src/
│ │ ├── ADT/
│ │ │ ├── AnnotatedItem.test.cpp
│ │ │ └── ObjectPool.cpp
│ │ ├── IR/
│ │ │ ├── Algorithm.cpp
│ │ │ ├── Algorithm.test.cpp
│ │ │ ├── BiasShape.test.cpp
│ │ │ ├── CanonicalDialect.cpp
│ │ │ ├── CanonicalDialect.test.cpp
│ │ │ ├── CanonicalNode.cpp
│ │ │ ├── CanonicalNode.test.cpp
│ │ │ ├── CanonicalOpcode.cpp
│ │ │ ├── DataType.cpp
│ │ │ ├── DataTypeTraits.test.cpp
│ │ │ ├── DepthwiseFilterAxis.cpp
│ │ │ ├── DepthwiseFilterCodec.cpp
│ │ │ ├── DepthwiseFilterIndex.test.cpp
│ │ │ ├── DepthwiseFilterShape.test.cpp
│ │ │ ├── Dialect.cpp
│ │ │ ├── Dialect.test.cpp
│ │ │ ├── DialectService.cpp
│ │ │ ├── Dimension.cpp
│ │ │ ├── Dimension.test.cpp
│ │ │ ├── Domain.cpp
│ │ │ ├── FeatureAxis.cpp
│ │ │ ├── FeatureCodec.cpp
│ │ │ ├── FeatureIndex.test.cpp
│ │ │ ├── FeatureShape.test.cpp
│ │ │ ├── FilterAxis.cpp
│ │ │ ├── FilterCodec.cpp
│ │ │ ├── FilterIndex.test.cpp
│ │ │ ├── FilterShape.test.cpp
│ │ │ ├── Graph.cpp
│ │ │ ├── Graph.test.cpp
│ │ │ ├── GraphInputIndex.cpp
│ │ │ ├── GraphOutputIndex.cpp
│ │ │ ├── MatrixAxis.cpp
│ │ │ ├── MatrixCodec.cpp
│ │ │ ├── MockupNode.h
│ │ │ ├── Node.cpp
│ │ │ ├── Node.test.cpp
│ │ │ ├── NodeMixins.cpp
│ │ │ ├── NodePool.cpp
│ │ │ ├── NodeShape.cpp
│ │ │ ├── NodeShape.test.cpp
│ │ │ ├── Nodes.cpp
│ │ │ ├── Nodes.test.cpp
│ │ │ ├── Padding2D.test.cpp
│ │ │ ├── PaddingND.test.cpp
│ │ │ ├── PermutingCodec.cpp
│ │ │ ├── PermutingCodec.test.cpp
│ │ │ ├── Stride.test.cpp
│ │ │ ├── TensorAxis.cpp
│ │ │ ├── TensorAxisSet.cpp
│ │ │ ├── TensorIndex.cpp
│ │ │ ├── TensorIndex.test.cpp
│ │ │ ├── TensorShape.cpp
│ │ │ ├── TensorShape.test.cpp
│ │ │ ├── Use.cpp
│ │ │ ├── Use.test.cpp
│ │ │ ├── Verifier.cpp
│ │ │ ├── Verifier.test.cpp
│ │ │ └── Window.test.cpp
│ │ ├── Service/
│ │ │ ├── CanonicalShapeInferenceRule.cpp
│ │ │ ├── CanonicalShapeInferenceRule.test.cpp
│ │ │ ├── GraphBuilder.h
│ │ │ ├── GraphBuilder.test.cpp
│ │ │ ├── GraphTestcase.h
│ │ │ ├── MultiDialectShapeInferenceRule.cpp
│ │ │ ├── MultiDialectShapeInferenceRule.test.cpp
│ │ │ ├── ShapeInference.cpp
│ │ │ ├── ShapeInference.test.cpp
│ │ │ ├── ShapeInferenceRule.cpp
│ │ │ ├── TypeInference.cpp
│ │ │ └── TypeInference.test.cpp
│ │ ├── loco.test.cpp
│ │ └── tensorflow.test.cpp
│ ├── locoex-customop/
│ │ ├── CMakeLists.txt
│ │ ├── README.md
│ │ ├── include/
│ │ │ └── locoex/
│ │ │ ├── COpAttrTypes.h
│ │ │ ├── COpCall.h
│ │ │ ├── COpDialect.h
│ │ │ ├── COpNode.h
│ │ │ ├── Service/
│ │ │ │ ├── COpFormattedGraph.h
│ │ │ │ ├── COpShapeInferenceRule.h
│ │ │ │ └── COpTypeInference.h
│ │ │ └── VariadicArityNode.h
│ │ ├── requires.cmake
│ │ └── src/
│ │ ├── COpCall.cpp
│ │ ├── COpCall.test.cpp
│ │ ├── COpDialect.cpp
│ │ ├── COpDialect.test.cpp
│ │ ├── COpNode.cpp
│ │ ├── Service/
│ │ │ ├── COpFormattedGraph.cpp
│ │ │ ├── COpShapeInferenceRule.cpp
│ │ │ ├── COpShapeInferenceRule.test.cpp
│ │ │ ├── COpTypeInference.cpp
│ │ │ └── COpTypeInference.test.cpp
│ │ └── VariadicArityNode.test.cpp
│ ├── locomotiv/
│ │ ├── CMakeLists.txt
│ │ ├── README.md
│ │ ├── include/
│ │ │ └── locomotiv/
│ │ │ ├── NodeData.h
│ │ │ └── Session.h
│ │ ├── requires.cmake
│ │ └── src/
│ │ ├── ConvertIndex.cpp
│ │ ├── ConvertIndex.h
│ │ ├── ConvertIndex.test.cpp
│ │ ├── Node/
│ │ │ ├── AvgPool2D.cpp
│ │ │ ├── AvgPool2D.test.cpp
│ │ │ ├── BiasAdd.cpp
│ │ │ ├── BiasAdd.test.cpp
│ │ │ ├── BiasEncode.cpp
│ │ │ ├── BiasEncode.test.cpp
│ │ │ ├── ConstGen.cpp
│ │ │ ├── ConstGen.test.cpp
│ │ │ ├── Conv2D.cpp
│ │ │ ├── Conv2D.test.cpp
│ │ │ ├── DepthwiseConv2D.cpp
│ │ │ ├── DepthwiseConv2D.test.cpp
│ │ │ ├── DepthwiseFilterEncode.cpp
│ │ │ ├── DepthwiseFilterEncode.test.cpp
│ │ │ ├── EltwiseAdd.cpp
│ │ │ ├── EltwiseAdd.test.cpp
│ │ │ ├── EltwiseDiv.cpp
│ │ │ ├── EltwiseDiv.test.cpp
│ │ │ ├── EltwiseMax.cpp
│ │ │ ├── EltwiseMax.test.cpp
│ │ │ ├── EltwiseMul.cpp
│ │ │ ├── EltwiseMul.test.cpp
│ │ │ ├── EltwiseSqrt.cpp
│ │ │ ├── EltwiseSqrt.test.cpp
│ │ │ ├── EltwiseSub.cpp
│ │ │ ├── EltwiseSub.test.cpp
│ │ │ ├── FeatureCodec.test.cpp
│ │ │ ├── FeatureDecode.cpp
│ │ │ ├── FeatureEncode.cpp
│ │ │ ├── FilterEncode.cpp
│ │ │ ├── FilterEncode.test.cpp
│ │ │ ├── Forward.cpp
│ │ │ ├── Forward.test.cpp
│ │ │ ├── MatMul.cpp
│ │ │ ├── MatMul.test.cpp
│ │ │ ├── MatrixCodec.test.cpp
│ │ │ ├── MatrixDecode.cpp
│ │ │ ├── MatrixEncode.cpp
│ │ │ ├── MaxPool2D.cpp
│ │ │ ├── MaxPool2D.test.cpp
│ │ │ ├── Pull.cpp
│ │ │ ├── Pull.test.cpp
│ │ │ ├── Push.cpp
│ │ │ ├── Push.test.cpp
│ │ │ ├── ReLU.cpp
│ │ │ ├── ReLU.test.cpp
│ │ │ ├── ReLU6.cpp
│ │ │ ├── ReLU6.test.cpp
│ │ │ ├── Reshape.cpp
│ │ │ ├── Reshape.test.cpp
│ │ │ ├── Softmax.cpp
│ │ │ ├── Softmax.test.cpp
│ │ │ ├── Tanh.cpp
│ │ │ ├── Tanh.test.cpp
│ │ │ ├── TensorBroadcast.cpp
│ │ │ ├── TensorBroadcast.test.cpp
│ │ │ ├── TensorConcat.cpp
│ │ │ ├── TensorConcat.test.cpp
│ │ │ ├── TensorConstantPad.cpp
│ │ │ ├── TensorConstantPad.test.cpp
│ │ │ ├── TensorReduce.cpp
│ │ │ ├── TensorReduce.test.cpp
│ │ │ ├── TransposedConv2D.cpp
│ │ │ └── TransposedConv2D.test.cpp
│ │ ├── Node.lst
│ │ ├── NodeData.cpp
│ │ ├── NodeData.test.cpp
│ │ ├── NodeDataImpl.cpp
│ │ ├── NodeDataImpl.h
│ │ ├── NodeDataImpl.test.cpp
│ │ ├── NodeDomain.cpp
│ │ ├── NodeDomain.h
│ │ ├── NodeDomain.test.cpp
│ │ ├── NodeExecution.cpp
│ │ ├── NodeExecution.h
│ │ ├── Session.cpp
│ │ ├── Session.test.cpp
│ │ ├── UserData.cpp
│ │ ├── UserData.h
│ │ └── Validation.h
│ ├── locop/
│ │ ├── CMakeLists.txt
│ │ ├── README.md
│ │ ├── include/
│ │ │ └── locop/
│ │ │ ├── CanonicalNodeSummaryBuilder.h
│ │ │ ├── FormattedGraph.h
│ │ │ ├── FormattedTensorShape.h
│ │ │ ├── GenericNodeSummaryBuilder.h
│ │ │ ├── Interfaces.h
│ │ │ ├── NodeSummary.h
│ │ │ ├── NodeSummaryBuilder.h
│ │ │ └── SymbolTable.h
│ │ ├── requires.cmake
│ │ └── src/
│ │ ├── CanonicalNodeSummaryBuilder.cpp
│ │ ├── ExampleGraph.h
│ │ ├── FormattedGraph.cpp
│ │ ├── FormattedGraph.test.cpp
│ │ ├── FormattedTensorShape.cpp
│ │ ├── FormattedTensorShape.test.cpp
│ │ ├── GenericNodeSummaryBuilder.cpp
│ │ ├── GenericNodeSummaryBuilder.test.cpp
│ │ ├── Interfaces.cpp
│ │ ├── NodeSummary.cpp
│ │ └── NodeSummaryBuilder.cpp
│ ├── logo/
│ │ ├── CMakeLists.txt
│ │ ├── README.md
│ │ ├── include/
│ │ │ └── logo/
│ │ │ ├── DeadNodeQueryService.h
│ │ │ ├── Passes.h
│ │ │ ├── RemoveDeadNodePass.h
│ │ │ ├── RemoveDeadNodeWithQueryPass.h
│ │ │ ├── RemoveForwardNodePass.h
│ │ │ ├── ReorderDecodePass.h
│ │ │ ├── ResolveDuplicateReshapePass.h
│ │ │ ├── ResolveRedundantReshapePass.h
│ │ │ └── SimplifyDomainConversionPass.h
│ │ ├── requires.cmake
│ │ └── src/
│ │ ├── Passes/
│ │ │ ├── EmptyTestGraph.h
│ │ │ ├── EmptyTestGraph.test.cpp
│ │ │ ├── RemoveDeadNodePass.cpp
│ │ │ ├── RemoveDeadNodePass.test.cpp
│ │ │ ├── RemoveDeadNodeWithQueryPass.cpp
│ │ │ ├── RemoveDeadNodeWithQueryPass.test.cpp
│ │ │ ├── RemoveForwardNodePass.cpp
│ │ │ ├── RemoveForwardNodePass.test.cpp
│ │ │ ├── ReorderDecodePass.cpp
│ │ │ ├── ReorderDecodePass.test.cpp
│ │ │ ├── ResolveDuplicateReshapePass.cpp
│ │ │ ├── ResolveDuplicateReshapePass.test.cpp
│ │ │ ├── ResolveRedundantReshapePass.cpp
│ │ │ ├── ResolveRedundantReshapePass.test.cpp
│ │ │ ├── SimplifyDomainConversionPass.cpp
│ │ │ └── SimplifyDomainConversionPass.test.cpp
│ │ └── TestHelper.h
│ ├── logo-core/
│ │ ├── CMakeLists.txt
│ │ ├── README.md
│ │ ├── include/
│ │ │ └── logo/
│ │ │ ├── Pass.h
│ │ │ └── Phase.h
│ │ ├── requires.cmake
│ │ └── src/
│ │ ├── Pass.cpp
│ │ ├── Pass.test.cpp
│ │ ├── Phase.cpp
│ │ └── Phase.test.cpp
│ ├── logo-ex/
│ │ ├── CMakeLists.txt
│ │ ├── README.md
│ │ ├── include/
│ │ │ └── logo/
│ │ │ ├── ConstantFoldingPass.h
│ │ │ └── PassesEx.h
│ │ ├── requires.cmake
│ │ └── src/
│ │ ├── Passes/
│ │ │ ├── ConstantFoldingPass.cpp
│ │ │ └── ConstantFoldingPass.test.cpp
│ │ └── TestHelper.h
│ ├── luci/
│ │ ├── CMakeLists.txt
│ │ ├── README.md
│ │ ├── env/
│ │ │ ├── CMakeLists.txt
│ │ │ ├── README.md
│ │ │ ├── include/
│ │ │ │ └── luci/
│ │ │ │ └── UserSettings.h
│ │ │ └── src/
│ │ │ ├── UserSettings.cpp
│ │ │ └── UserSettings.test.cpp
│ │ ├── export/
│ │ │ ├── CMakeLists.txt
│ │ │ ├── README.md
│ │ │ ├── include/
│ │ │ │ └── luci/
│ │ │ │ ├── CircleExporter.h
│ │ │ │ └── CircleFileExpContract.h
│ │ │ └── src/
│ │ │ ├── Check.h
│ │ │ ├── CircleBuiltinTypesExtractor.h
│ │ │ ├── CircleBuiltinTypesMappingRule.h
│ │ │ ├── CircleExportMetadata.cpp
│ │ │ ├── CircleExportMetadata.h
│ │ │ ├── CircleExporter.cpp
│ │ │ ├── CircleExporter.test.cpp
│ │ │ ├── CircleExporterImpl.cpp
│ │ │ ├── CircleExporterImpl.h
│ │ │ ├── CircleExporterUtils.cpp
│ │ │ ├── CircleExporterUtils.h
│ │ │ ├── CircleOperationExporter.cpp
│ │ │ ├── CircleOperationExporter.h
│ │ │ ├── CircleOperationExporterRule.cpp
│ │ │ ├── CircleOperationExporterRule.h
│ │ │ ├── CircleOps.lst
│ │ │ ├── CircleTensorExporter.cpp
│ │ │ ├── CircleTensorExporter.h
│ │ │ ├── ProgressReporter.cpp
│ │ │ ├── ProgressReporter.h
│ │ │ ├── SerializedData.cpp
│ │ │ └── SerializedData.h
│ │ ├── import/
│ │ │ ├── CMakeLists.txt
│ │ │ ├── README.md
│ │ │ ├── include/
│ │ │ │ └── luci/
│ │ │ │ ├── Import/
│ │ │ │ │ ├── CircleReader.h
│ │ │ │ │ ├── GraphBuilder.h
│ │ │ │ │ ├── GraphBuilderBase.h
│ │ │ │ │ ├── GraphBuilderContext.h
│ │ │ │ │ ├── GraphBuilderMultiOutput.h
│ │ │ │ │ ├── GraphBuilderRegistry.h
│ │ │ │ │ ├── NodeBuilder.h
│ │ │ │ │ ├── Nodes/
│ │ │ │ │ │ ├── CircleAbs.h
│ │ │ │ │ │ ├── CircleAdd.h
│ │ │ │ │ │ ├── CircleAddN.h
│ │ │ │ │ │ ├── CircleArgMax.h
│ │ │ │ │ │ ├── CircleArgMin.h
│ │ │ │ │ │ ├── CircleAveragePool2D.h
│ │ │ │ │ │ ├── CircleBCQFullyConnected.h
│ │ │ │ │ │ ├── CircleBCQGather.h
│ │ │ │ │ │ ├── CircleBatchMatMul.h
│ │ │ │ │ │ ├── CircleBatchToSpaceND.h
│ │ │ │ │ │ ├── CircleBidirectionalSequenceLSTM.h
│ │ │ │ │ │ ├── CircleBroadcastTo.h
│ │ │ │ │ │ ├── CircleCast.h
│ │ │ │ │ │ ├── CircleCeil.h
│ │ │ │ │ │ ├── CircleConcatenation.h
│ │ │ │ │ │ ├── CircleConst.h
│ │ │ │ │ │ ├── CircleConv2D.h
│ │ │ │ │ │ ├── CircleCos.h
│ │ │ │ │ │ ├── CircleCumSum.h
│ │ │ │ │ │ ├── CircleCustom.h
│ │ │ │ │ │ ├── CircleDensify.h
│ │ │ │ │ │ ├── CircleDepthToSpace.h
│ │ │ │ │ │ ├── CircleDepthwiseConv2D.h
│ │ │ │ │ │ ├── CircleDequantize.h
│ │ │ │ │ │ ├── CircleDiv.h
│ │ │ │ │ │ ├── CircleElu.h
│ │ │ │ │ │ ├── CircleEqual.h
│ │ │ │ │ │ ├── CircleExp.h
│ │ │ │ │ │ ├── CircleExpandDims.h
│ │ │ │ │ │ ├── CircleFakeQuant.h
│ │ │ │ │ │ ├── CircleFill.h
│ │ │ │ │ │ ├── CircleFloor.h
│ │ │ │ │ │ ├── CircleFloorDiv.h
│ │ │ │ │ │ ├── CircleFloorMod.h
│ │ │ │ │ │ ├── CircleFullyConnected.h
│ │ │ │ │ │ ├── CircleGRU.h
│ │ │ │ │ │ ├── CircleGather.h
│ │ │ │ │ │ ├── CircleGatherNd.h
│ │ │ │ │ │ ├── CircleGelu.h
│ │ │ │ │ │ ├── CircleGreater.h
│ │ │ │ │ │ ├── CircleGreaterEqual.h
│ │ │ │ │ │ ├── CircleHardSwish.h
│ │ │ │ │ │ ├── CircleIf.h
│ │ │ │ │ │ ├── CircleInstanceNorm.h
│ │ │ │ │ │ ├── CircleL2Normalize.h
│ │ │ │ │ │ ├── CircleL2Pool2D.h
│ │ │ │ │ │ ├── CircleLeakyRelu.h
│ │ │ │ │ │ ├── CircleLess.h
│ │ │ │ │ │ ├── CircleLessEqual.h
│ │ │ │ │ │ ├── CircleLocalResponseNormalization.h
│ │ │ │ │ │ ├── CircleLog.h
│ │ │ │ │ │ ├── CircleLogSoftmax.h
│ │ │ │ │ │ ├── CircleLogicalAnd.h
│ │ │ │ │ │ ├── CircleLogicalNot.h
│ │ │ │ │ │ ├── CircleLogicalOr.h
│ │ │ │ │ │ ├── CircleLogistic.h
│ │ │ │ │ │ ├── CircleMatrixDiag.h
│ │ │ │ │ │ ├── CircleMatrixSetDiag.h
│ │ │ │ │ │ ├── CircleMaxPool2D.h
│ │ │ │ │ │ ├── CircleMaximum.h
│ │ │ │ │ │ ├── CircleMean.h
│ │ │ │ │ │ ├── CircleMinimum.h
│ │ │ │ │ │ ├── CircleMirrorPad.h
│ │ │ │ │ │ ├── CircleMul.h
│ │ │ │ │ │ ├── CircleNeg.h
│ │ │ │ │ │ ├── CircleNonMaxSuppressionV4.h
│ │ │ │ │ │ ├── CircleNonMaxSuppressionV5.h
│ │ │ │ │ │ ├── CircleNotEqual.h
│ │ │ │ │ │ ├── CircleOneHot.h
│ │ │ │ │ │ ├── CirclePRelu.h
│ │ │ │ │ │ ├── CirclePack.h
│ │ │ │ │ │ ├── CirclePad.h
│ │ │ │ │ │ ├── CirclePadV2.h
│ │ │ │ │ │ ├── CirclePow.h
│ │ │ │ │ │ ├── CircleQuantize.h
│ │ │ │ │ │ ├── CircleRange.h
│ │ │ │ │ │ ├── CircleRank.h
│ │ │ │ │ │ ├── CircleReduceAny.h
│ │ │ │ │ │ ├── CircleReduceMax.h
│ │ │ │ │ │ ├── CircleReduceMin.h
│ │ │ │ │ │ ├── CircleReduceProd.h
│ │ │ │ │ │ ├── CircleRelu.h
│ │ │ │ │ │ ├── CircleRelu0To1.h
│ │ │ │ │ │ ├── CircleRelu6.h
│ │ │ │ │ │ ├── CircleReluN1To1.h
│ │ │ │ │ │ ├── CircleReshape.h
│ │ │ │ │ │ ├── CircleResizeBilinear.h
│ │ │ │ │ │ ├── CircleResizeNearestNeighbor.h
│ │ │ │ │ │ ├── CircleReverseSequence.h
│ │ │ │ │ │ ├── CircleReverseV2.h
│ │ │ │ │ │ ├── CircleRmsNorm.h
│ │ │ │ │ │ ├── CircleRoPE.h
│ │ │ │ │ │ ├── CircleRound.h
│ │ │ │ │ │ ├── CircleRsqrt.h
│ │ │ │ │ │ ├── CircleSVDF.h
│ │ │ │ │ │ ├── CircleScatterNd.h
│ │ │ │ │ │ ├── CircleSegmentSum.h
│ │ │ │ │ │ ├── CircleSelect.h
│ │ │ │ │ │ ├── CircleSelectV2.h
│ │ │ │ │ │ ├── CircleShape.h
│ │ │ │ │ │ ├── CircleSign.h
│ │ │ │ │ │ ├── CircleSin.h
│ │ │ │ │ │ ├── CircleSlice.h
│ │ │ │ │ │ ├── CircleSoftmax.h
│ │ │ │ │ │ ├── CircleSpaceToBatchND.h
│ │ │ │ │ │ ├── CircleSpaceToDepth.h
│ │ │ │ │ │ ├── CircleSparseToDense.h
│ │ │ │ │ │ ├── CircleSplit.h
│ │ │ │ │ │ ├── CircleSplitV.h
│ │ │ │ │ │ ├── CircleSqrt.h
│ │ │ │ │ │ ├── CircleSquare.h
│ │ │ │ │ │ ├── CircleSquaredDifference.h
│ │ │ │ │ │ ├── CircleSqueeze.h
│ │ │ │ │ │ ├── CircleStridedSlice.h
│ │ │ │ │ │ ├── CircleSub.h
│ │ │ │ │ │ ├── CircleSum.h
│ │ │ │ │ │ ├── CircleTanh.h
│ │ │ │ │ │ ├── CircleTile.h
│ │ │ │ │ │ ├── CircleTopKV2.h
│ │ │ │ │ │ ├── CircleTranspose.h
│ │ │ │ │ │ ├── CircleTransposeConv.h
│ │ │ │ │ │ ├── CircleUnidirectionalSequenceLSTM.h
│ │ │ │ │ │ ├── CircleUnique.h
│ │ │ │ │ │ ├── CircleUnpack.h
│ │ │ │ │ │ ├── CircleVariable.h
│ │ │ │ │ │ ├── CircleWhere.h
│ │ │ │ │ │ ├── CircleWhile.h
│ │ │ │ │ │ └── CircleZerosLike.h
│ │ │ │ │ └── Nodes.h
│ │ │ │ ├── Importer.h
│ │ │ │ └── ImporterEx.h
│ │ │ └── src/
│ │ │ ├── CircleImportMetadata.cpp
│ │ │ ├── CircleImportMetadata.h
│ │ │ ├── CircleReader.cpp
│ │ │ ├── CircleReader.test.cpp
│ │ │ ├── GraphBuilder.cpp
│ │ │ ├── GraphBuilderContext.cpp
│ │ │ ├── GraphBuilderMultiOutput.cpp
│ │ │ ├── GraphBuilderRegistry.cpp
│ │ │ ├── Importer.cpp
│ │ │ ├── Importer.test.cpp
│ │ │ ├── ImporterEx.cpp
│ │ │ ├── ImporterEx.test.cpp
│ │ │ ├── Nodes/
│ │ │ │ ├── CircleAbs.cpp
│ │ │ │ ├── CircleAdd.cpp
│ │ │ │ ├── CircleAddN.cpp
│ │ │ │ ├── CircleArgMax.cpp
│ │ │ │ ├── CircleArgMin.cpp
│ │ │ │ ├── CircleAveragePool2D.cpp
│ │ │ │ ├── CircleBCQFullyConnected.cpp
│ │ │ │ ├── CircleBCQGather.cpp
│ │ │ │ ├── CircleBatchMatMul.cpp
│ │ │ │ ├── CircleBatchToSpaceND.cpp
│ │ │ │ ├── CircleBidirectionalSequenceLSTM.cpp
│ │ │ │ ├── CircleBroadcastTo.cpp
│ │ │ │ ├── CircleCast.cpp
│ │ │ │ ├── CircleCeil.cpp
│ │ │ │ ├── CircleConcatenation.cpp
│ │ │ │ ├── CircleConst.cpp
│ │ │ │ ├── CircleConv2D.cpp
│ │ │ │ ├── CircleCos.cpp
│ │ │ │ ├── CircleCumSum.cpp
│ │ │ │ ├── CircleCustom.cpp
│ │ │ │ ├── CircleDensify.cpp
│ │ │ │ ├── CircleDepthToSpace.cpp
│ │ │ │ ├── CircleDepthwiseConv2D.cpp
│ │ │ │ ├── CircleDequantize.cpp
│ │ │ │ ├── CircleDiv.cpp
│ │ │ │ ├── CircleElu.cpp
│ │ │ │ ├── CircleEqual.cpp
│ │ │ │ ├── CircleExp.cpp
│ │ │ │ ├── CircleExpandDims.cpp
│ │ │ │ ├── CircleFakeQuant.cpp
│ │ │ │ ├── CircleFill.cpp
│ │ │ │ ├── CircleFloor.cpp
│ │ │ │ ├── CircleFloorDiv.cpp
│ │ │ │ ├── CircleFloorMod.cpp
│ │ │ │ ├── CircleFullyConnected.cpp
│ │ │ │ ├── CircleGRU.cpp
│ │ │ │ ├── CircleGather.cpp
│ │ │ │ ├── CircleGatherNd.cpp
│ │ │ │ ├── CircleGelu.cpp
│ │ │ │ ├── CircleGreater.cpp
│ │ │ │ ├── CircleGreaterEqual.cpp
│ │ │ │ ├── CircleHardSwish.cpp
│ │ │ │ ├── CircleIf.cpp
│ │ │ │ ├── CircleInstanceNorm.cpp
│ │ │ │ ├── CircleL2Normalize.cpp
│ │ │ │ ├── CircleL2Pool2D.cpp
│ │ │ │ ├── CircleLeakyRelu.cpp
│ │ │ │ ├── CircleLess.cpp
│ │ │ │ ├── CircleLessEqual.cpp
│ │ │ │ ├── CircleLocalResponseNormalization.cpp
│ │ │ │ ├── CircleLog.cpp
│ │ │ │ ├── CircleLogSoftmax.cpp
│ │ │ │ ├── CircleLogicalAnd.cpp
│ │ │ │ ├── CircleLogicalNot.cpp
│ │ │ │ ├── CircleLogicalOr.cpp
│ │ │ │ ├── CircleLogistic.cpp
│ │ │ │ ├── CircleMatrixDiag.cpp
│ │ │ │ ├── CircleMatrixSetDiag.cpp
│ │ │ │ ├── CircleMaxPool2D.cpp
│ │ │ │ ├── CircleMaximum.cpp
│ │ │ │ ├── CircleMean.cpp
│ │ │ │ ├── CircleMinimum.cpp
│ │ │ │ ├── CircleMirrorPad.cpp
│ │ │ │ ├── CircleMul.cpp
│ │ │ │ ├── CircleNeg.cpp
│ │ │ │ ├── CircleNonMaxSuppressionV4.cpp
│ │ │ │ ├── CircleNonMaxSuppressionV5.cpp
│ │ │ │ ├── CircleNotEqual.cpp
│ │ │ │ ├── CircleOneHot.cpp
│ │ │ │ ├── CirclePRelu.cpp
│ │ │ │ ├── CirclePack.cpp
│ │ │ │ ├── CirclePad.cpp
│ │ │ │ ├── CirclePadV2.cpp
│ │ │ │ ├── CirclePow.cpp
│ │ │ │ ├── CircleQuantize.cpp
│ │ │ │ ├── CircleRange.cpp
│ │ │ │ ├── CircleRank.cpp
│ │ │ │ ├── CircleReduceAny.cpp
│ │ │ │ ├── CircleReduceMax.cpp
│ │ │ │ ├── CircleReduceMin.cpp
│ │ │ │ ├── CircleReduceProd.cpp
│ │ │ │ ├── CircleRelu.cpp
│ │ │ │ ├── CircleRelu0To1.cpp
│ │ │ │ ├── CircleRelu6.cpp
│ │ │ │ ├── CircleReluN1To1.cpp
│ │ │ │ ├── CircleReshape.cpp
│ │ │ │ ├── CircleResizeBilinear.cpp
│ │ │ │ ├── CircleResizeNearestNeighbor.cpp
│ │ │ │ ├── CircleReverseSequence.cpp
│ │ │ │ ├── CircleReverseV2.cpp
│ │ │ │ ├── CircleRmsNorm.cpp
│ │ │ │ ├── CircleRoPE.cpp
│ │ │ │ ├── CircleRound.cpp
│ │ │ │ ├── CircleRsqrt.cpp
│ │ │ │ ├── CircleSVDF.cpp
│ │ │ │ ├── CircleScatterNd.cpp
│ │ │ │ ├── CircleSegmentSum.cpp
│ │ │ │ ├── CircleSelect.cpp
│ │ │ │ ├── CircleSelectV2.cpp
│ │ │ │ ├── CircleShape.cpp
│ │ │ │ ├── CircleSign.cpp
│ │ │ │ ├── CircleSin.cpp
│ │ │ │ ├── CircleSlice.cpp
│ │ │ │ ├── CircleSoftmax.cpp
│ │ │ │ ├── CircleSpaceToBatchND.cpp
│ │ │ │ ├── CircleSpaceToDepth.cpp
│ │ │ │ ├── CircleSparseToDense.cpp
│ │ │ │ ├── CircleSplit.cpp
│ │ │ │ ├── CircleSplitV.cpp
│ │ │ │ ├── CircleSqrt.cpp
│ │ │ │ ├── CircleSquare.cpp
│ │ │ │ ├── CircleSquaredDifference.cpp
│ │ │ │ ├── CircleSqueeze.cpp
│ │ │ │ ├── CircleStridedSlice.cpp
│ │ │ │ ├── CircleSub.cpp
│ │ │ │ ├── CircleSum.cpp
│ │ │ │ ├── CircleTanh.cpp
│ │ │ │ ├── CircleTile.cpp
│ │ │ │ ├── CircleTopKV2.cpp
│ │ │ │ ├── CircleTranspose.cpp
│ │ │ │ ├── CircleTransposeConv.cpp
│ │ │ │ ├── CircleUnidirectionalSequenceLSTM.cpp
│ │ │ │ ├── CircleUnique.cpp
│ │ │ │ ├── CircleUnpack.cpp
│ │ │ │ ├── CircleVariable.cpp
│ │ │ │ ├── CircleWhere.cpp
│ │ │ │ ├── CircleWhile.cpp
│ │ │ │ └── CircleZerosLike.cpp
│ │ │ ├── PostImport.cpp
│ │ │ ├── PostImport.h
│ │ │ ├── ValidateHelpers.cpp
│ │ │ └── ValidateHelpers.h
│ │ ├── lang/
│ │ │ ├── CMakeLists.txt
│ │ │ ├── README.md
│ │ │ ├── include/
│ │ │ │ └── luci/
│ │ │ │ └── IR/
│ │ │ │ ├── AttrDilation.h
│ │ │ │ ├── AttrFilter.h
│ │ │ │ ├── AttrFusedActFunc.h
│ │ │ │ ├── AttrMirrorPadMode.h
│ │ │ │ ├── AttrPadding.h
│ │ │ │ ├── AttrRoPEMode.h
│ │ │ │ ├── AttrStride.h
│ │ │ │ ├── CastHelpers.h
│ │ │ │ ├── CircleDialect.h
│ │ │ │ ├── CircleMXQuantParam.h
│ │ │ │ ├── CircleNode.h
│ │ │ │ ├── CircleNodeDecl.h
│ │ │ │ ├── CircleNodeImpl.h
│ │ │ │ ├── CircleNodeMixins.h
│ │ │ │ ├── CircleNodeVisitor.forward.h
│ │ │ │ ├── CircleNodeVisitor.h
│ │ │ │ ├── CircleNodes.h
│ │ │ │ ├── CircleNodes.lst
│ │ │ │ ├── CircleOpcode.h
│ │ │ │ ├── CircleQuantParam.h
│ │ │ │ ├── DataTypeHelper.h
│ │ │ │ ├── DeadNodeQueryService.h
│ │ │ │ ├── ExecutionPlanTable.h
│ │ │ │ ├── LuciNodeMixins.h
│ │ │ │ ├── Module.h
│ │ │ │ ├── Nodes/
│ │ │ │ │ ├── CircleAbs.h
│ │ │ │ │ ├── CircleAdd.h
│ │ │ │ │ ├── CircleAddN.h
│ │ │ │ │ ├── CircleArgMax.h
│ │ │ │ │ ├── CircleArgMin.h
│ │ │ │ │ ├── CircleAveragePool2D.h
│ │ │ │ │ ├── CircleBCQFullyConnected.h
│ │ │ │ │ ├── CircleBCQGather.h
│ │ │ │ │ ├── CircleBatchMatMul.h
│ │ │ │ │ ├── CircleBatchToSpaceND.h
│ │ │ │ │ ├── CircleBidirectionalSequenceLSTM.h
│ │ │ │ │ ├── CircleBidirectionalSequenceLSTMOut.h
│ │ │ │ │ ├── CircleBroadcastTo.h
│ │ │ │ │ ├── CircleCast.h
│ │ │ │ │ ├── CircleCeil.h
│ │ │ │ │ ├── CircleConcatenation.h
│ │ │ │ │ ├── CircleConst.h
│ │ │ │ │ ├── CircleConv2D.h
│ │ │ │ │ ├── CircleCos.h
│ │ │ │ │ ├── CircleCumSum.h
│ │ │ │ │ ├── CircleCustom.h
│ │ │ │ │ ├── CircleCustomOut.h
│ │ │ │ │ ├── CircleDensify.h
│ │ │ │ │ ├── CircleDepthToSpace.h
│ │ │ │ │ ├── CircleDepthwiseConv2D.h
│ │ │ │ │ ├── CircleDequantize.h
│ │ │ │ │ ├── CircleDiv.h
│ │ │ │ │ ├── CircleElu.h
│ │ │ │ │ ├── CircleEqual.h
│ │ │ │ │ ├── CircleExp.h
│ │ │ │ │ ├── CircleExpandDims.h
│ │ │ │ │ ├── CircleFakeQuant.h
│ │ │ │ │ ├── CircleFill.h
│ │ │ │ │ ├── CircleFloor.h
│ │ │ │ │ ├── CircleFloorDiv.h
│ │ │ │ │ ├── CircleFloorMod.h
│ │ │ │ │ ├── CircleFullyConnected.h
│ │ │ │ │ ├── CircleGRU.h
│ │ │ │ │ ├── CircleGather.h
│ │ │ │ │ ├── CircleGatherNd.h
│ │ │ │ │ ├── CircleGelu.h
│ │ │ │ │ ├── CircleGreater.h
│ │ │ │ │ ├── CircleGreaterEqual.h
│ │ │ │ │ ├── CircleHardSwish.h
│ │ │ │ │ ├── CircleIf.h
│ │ │ │ │ ├── CircleIfOut.h
│ │ │ │ │ ├── CircleInput.h
│ │ │ │ │ ├── CircleInstanceNorm.h
│ │ │ │ │ ├── CircleL2Normalize.h
│ │ │ │ │ ├── CircleL2Pool2D.h
│ │ │ │ │ ├── CircleLeakyRelu.h
│ │ │ │ │ ├── CircleLess.h
│ │ │ │ │ ├── CircleLessEqual.h
│ │ │ │ │ ├── CircleLocalResponseNormalization.h
│ │ │ │ │ ├── CircleLog.h
│ │ │ │ │ ├── CircleLogSoftmax.h
│ │ │ │ │ ├── CircleLogicalAnd.h
│ │ │ │ │ ├── CircleLogicalNot.h
│ │ │ │ │ ├── CircleLogicalOr.h
│ │ │ │ │ ├── CircleLogistic.h
│ │ │ │ │ ├── CircleMatrixDiag.h
│ │ │ │ │ ├── CircleMatrixSetDiag.h
│ │ │ │ │ ├── CircleMaxPool2D.h
│ │ │ │ │ ├── CircleMaximum.h
│ │ │ │ │ ├── CircleMean.h
│ │ │ │ │ ├── CircleMinimum.h
│ │ │ │ │ ├── CircleMirrorPad.h
│ │ │ │ │ ├── CircleMul.h
│ │ │ │ │ ├── CircleNeg.h
│ │ │ │ │ ├── CircleNonMaxSuppressionV4.h
│ │ │ │ │ ├── CircleNonMaxSuppressionV4Out.h
│ │ │ │ │ ├── CircleNonMaxSuppressionV5.h
│ │ │ │ │ ├── CircleNonMaxSuppressionV5Out.h
│ │ │ │ │ ├── CircleNotEqual.h
│ │ │ │ │ ├── CircleOneHot.h
│ │ │ │ │ ├── CircleOutput.h
│ │ │ │ │ ├── CirclePRelu.h
│ │ │ │ │ ├── CirclePack.h
│ │ │ │ │ ├── CirclePad.h
│ │ │ │ │ ├── CirclePadV2.h
│ │ │ │ │ ├── CirclePow.h
│ │ │ │ │ ├── CircleQuantize.h
│ │ │ │ │ ├── CircleRange.h
│ │ │ │ │ ├── CircleRank.h
│ │ │ │ │ ├── CircleReduceAny.h
│ │ │ │ │ ├── CircleReduceMax.h
│ │ │ │ │ ├── CircleReduceMin.h
│ │ │ │ │ ├── CircleReduceProd.h
│ │ │ │ │ ├── CircleRelu.h
│ │ │ │ │ ├── CircleRelu0To1.h
│ │ │ │ │ ├── CircleRelu6.h
│ │ │ │ │ ├── CircleReluN1To1.h
│ │ │ │ │ ├── CircleReshape.h
│ │ │ │ │ ├── CircleResizeBilinear.h
│ │ │ │ │ ├── CircleResizeNearestNeighbor.h
│ │ │ │ │ ├── CircleReverseSequence.h
│ │ │ │ │ ├── CircleReverseV2.h
│ │ │ │ │ ├── CircleRmsNorm.h
│ │ │ │ │ ├── CircleRoPE.h
│ │ │ │ │ ├── CircleRound.h
│ │ │ │ │ ├── CircleRsqrt.h
│ │ │ │ │ ├── CircleSVDF.h
│ │ │ │ │ ├── CircleScatterNd.h
│ │ │ │ │ ├── CircleSegmentSum.h
│ │ │ │ │ ├── CircleSelect.h
│ │ │ │ │ ├── CircleSelectV2.h
│ │ │ │ │ ├── CircleShape.h
│ │ │ │ │ ├── CircleSign.h
│ │ │ │ │ ├── CircleSin.h
│ │ │ │ │ ├── CircleSlice.h
│ │ │ │ │ ├── CircleSoftmax.h
│ │ │ │ │ ├── CircleSpaceToBatchND.h
│ │ │ │ │ ├── CircleSpaceToDepth.h
│ │ │ │ │ ├── CircleSparseToDense.h
│ │ │ │ │ ├── CircleSplit.h
│ │ │ │ │ ├── CircleSplitOut.h
│ │ │ │ │ ├── CircleSplitV.h
│ │ │ │ │ ├── CircleSplitVOut.h
│ │ │ │ │ ├── CircleSqrt.h
│ │ │ │ │ ├── CircleSquare.h
│ │ │ │ │ ├── CircleSquaredDifference.h
│ │ │ │ │ ├── CircleSqueeze.h
│ │ │ │ │ ├── CircleStridedSlice.h
│ │ │ │ │ ├── CircleSub.h
│ │ │ │ │ ├── CircleSum.h
│ │ │ │ │ ├── CircleTanh.h
│ │ │ │ │ ├── CircleTile.h
│ │ │ │ │ ├── CircleTopKV2.h
│ │ │ │ │ ├── CircleTopKV2Out.h
│ │ │ │ │ ├── CircleTranspose.h
│ │ │ │ │ ├── CircleTransposeConv.h
│ │ │ │ │ ├── CircleUnidirectionalSequenceLSTM.h
│ │ │ │ │ ├── CircleUnique.h
│ │ │ │ │ ├── CircleUniqueOut.h
│ │ │ │ │ ├── CircleUnpack.h
│ │ │ │ │ ├── CircleUnpackOut.h
│ │ │ │ │ ├── CircleVariable.h
│ │ │ │ │ ├── CircleWhere.h
│ │ │ │ │ ├── CircleWhile.h
│ │ │ │ │ ├── CircleWhileOut.h
│ │ │ │ │ └── CircleZerosLike.h
│ │ │ │ ├── PropertyShapeStatus.h
│ │ │ │ ├── SparsityParam.h
│ │ │ │ └── VariadicArityNode.h
│ │ │ └── src/
│ │ │ ├── AttrDilation.cpp
│ │ │ ├── AttrDilation.test.cpp
│ │ │ ├── AttrFilter.cpp
│ │ │ ├── AttrFilter.test.cpp
│ │ │ ├── AttrStride.cpp
│ │ │ ├── AttrStride.test.cpp
│ │ │ ├── CastHelpers.cpp
│ │ │ ├── CastHelpers.test.cpp
│ │ │ ├── Check.h
│ │ │ ├── CircleDialect.cpp
│ │ │ ├── CircleDialect.test.cpp
│ │ │ ├── CircleNode.cpp
│ │ │ ├── CircleNodeMixins.cpp
│ │ │ ├── CircleNodeShapeDtype.test.cpp
│ │ │ ├── CircleNodes.cpp
│ │ │ ├── CircleQuantParam.cpp
│ │ │ ├── CircleQuantParam.test.cpp
│ │ │ ├── DataTypeHelper.cpp
│ │ │ ├── DeadNodeQueryService.cpp
│ │ │ ├── Module.cpp
│ │ │ ├── Module.test.cpp
│ │ │ └── Nodes/
│ │ │ ├── CircleAbs.test.cpp
│ │ │ ├── CircleAdd.test.cpp
│ │ │ ├── CircleAddN.test.cpp
│ │ │ ├── CircleArgMax.test.cpp
│ │ │ ├── CircleArgMin.test.cpp
│ │ │ ├── CircleAveragePool2D.test.cpp
│ │ │ ├── CircleBCQFullyConnected.test.cpp
│ │ │ ├── CircleBCQGather.test.cpp
│ │ │ ├── CircleBatchMatMul.test.cpp
│ │ │ ├── CircleBatchToSpaceND.test.cpp
│ │ │ ├── CircleBidrectionalSequenceLSTM.test.cpp
│ │ │ ├── CircleBroadcastTo.test.cpp
│ │ │ ├── CircleCast.test.cpp
│ │ │ ├── CircleCeil.test.cpp
│ │ │ ├── CircleConcatenation.test.cpp
│ │ │ ├── CircleConst.cpp
│ │ │ ├── CircleConst.test.cpp
│ │ │ ├── CircleConv2D.test.cpp
│ │ │ ├── CircleCos.test.cpp
│ │ │ ├── CircleCumSum.test.cpp
│ │ │ ├── CircleCustom.test.cpp
│ │ │ ├── CircleCustomOut.test.cpp
│ │ │ ├── CircleDensify.test.cpp
│ │ │ ├── CircleDepthToSpace.test.cpp
│ │ │ ├── CircleDepthwiseConv2D.test.cpp
│ │ │ ├── CircleDequantize.test.cpp
│ │ │ ├── CircleDiv.test.cpp
│ │ │ ├── CircleElu.test.cpp
│ │ │ ├── CircleEqual.test.cpp
│ │ │ ├── CircleExp.test.cpp
│ │ │ ├── CircleExpandDims.test.cpp
│ │ │ ├── CircleFakeQuant.test.cpp
│ │ │ ├── CircleFill.test.cpp
│ │ │ ├── CircleFloor.test.cpp
│ │ │ ├── CircleFloorDiv.test.cpp
│ │ │ ├── CircleFloorMod.test.cpp
│ │ │ ├── CircleFullyConnected.test.cpp
│ │ │ ├── CircleGRU.test.cpp
│ │ │ ├── CircleGather.test.cpp
│ │ │ ├── CircleGatherNd.test.cpp
│ │ │ ├── CircleGelu.test.cpp
│ │ │ ├── CircleGreater.test.cpp
│ │ │ ├── CircleGreaterEqual.test.cpp
│ │ │ ├── CircleHardSwish.test.cpp
│ │ │ ├── CircleIf.test.cpp
│ │ │ ├── CircleIfOut.test.cpp
│ │ │ ├── CircleInput.cpp
│ │ │ ├── CircleInstanceNorm.test.cpp
│ │ │ ├── CircleL2Pool2D.test.cpp
│ │ │ ├── CircleLeakyRelu.test.cpp
│ │ │ ├── CircleLess.test.cpp
│ │ │ ├── CircleLessEqual.test.cpp
│ │ │ ├── CircleLocalResponseNormalization.test.cpp
│ │ │ ├── CircleLog.test.cpp
│ │ │ ├── CircleLogSoftmax.test.cpp
│ │ │ ├── CircleLogicalAnd.test.cpp
│ │ │ ├── CircleLogicalNot.test.cpp
│ │ │ ├── CircleLogicalOr.test.cpp
│ │ │ ├── CircleLogistic.test.cpp
│ │ │ ├── CircleMatrixDiag.test.cpp
│ │ │ ├── CircleMatrixSetDiag.test.cpp
│ │ │ ├── CircleMaxPool2D.test.cpp
│ │ │ ├── CircleMaximum.test.cpp
│ │ │ ├── CircleMean.test.cpp
│ │ │ ├── CircleMinimum.test.cpp
│ │ │ ├── CircleMirrorPad.test.cpp
│ │ │ ├── CircleMul.test.cpp
│ │ │ ├── CircleNeg.test.cpp
│ │ │ ├── CircleNonMaxSuppressionV4.test.cpp
│ │ │ ├── CircleNonMaxSuppressionV4Out.test.cpp
│ │ │ ├── CircleNonMaxSuppressionV5.test.cpp
│ │ │ ├── CircleNonMaxSuppressionV5Out.test.cpp
│ │ │ ├── CircleNotEqual.test.cpp
│ │ │ ├── CircleOneHot.test.cpp
│ │ │ ├── CircleOutput.cpp
│ │ │ ├── CirclePRelu.test.cpp
│ │ │ ├── CirclePack.test.cpp
│ │ │ ├── CirclePad.test.cpp
│ │ │ ├── CirclePadV2.test.cpp
│ │ │ ├── CirclePow.test.cpp
│ │ │ ├── CircleQuantize.test.cpp
│ │ │ ├── CircleRange.test.cpp
│ │ │ ├── CircleRank.test.cpp
│ │ │ ├── CircleReduceAny.test.cpp
│ │ │ ├── CircleReduceMax.test.cpp
│ │ │ ├── CircleReduceMin.test.cpp
│ │ │ ├── CircleReduceProd.test.cpp
│ │ │ ├── CircleRelu.test.cpp
│ │ │ ├── CircleRelu0To1.test.cpp
│ │ │ ├── CircleRelu6.test.cpp
│ │ │ ├── CircleReluN1To1.test.cpp
│ │ │ ├── CircleReshape.test.cpp
│ │ │ ├── CircleResizeBilinear.test.cpp
│ │ │ ├── CircleResizeNearestNeighbor.test.cpp
│ │ │ ├── CircleReverseSequence.test.cpp
│ │ │ ├── CircleReverseV2.test.cpp
│ │ │ ├── CircleRmsNorm.test.cpp
│ │ │ ├── CircleRoPE.test.cpp
│ │ │ ├── CircleRound.test.cpp
│ │ │ ├── CircleRsqrt.test.cpp
│ │ │ ├── CircleSVDF.test.cpp
│ │ │ ├── CircleScatterNd.test.cpp
│ │ │ ├── CircleSegmentSum.test.cpp
│ │ │ ├── CircleSelect.test.cpp
│ │ │ ├── CircleSelectV2.test.cpp
│ │ │ ├── CircleShape.test.cpp
│ │ │ ├── CircleSign.test.cpp
│ │ │ ├── CircleSin.test.cpp
│ │ │ ├── CircleSlice.test.cpp
│ │ │ ├── CircleSoftmax.test.cpp
│ │ │ ├── CircleSpaceToBatchND.test.cpp
│ │ │ ├── CircleSpaceToDepth.test.cpp
│ │ │ ├── CircleSparseToDense.test.cpp
│ │ │ ├── CircleSplit.test.cpp
│ │ │ ├── CircleSplitOut.test.cpp
│ │ │ ├── CircleSplitV.test.cpp
│ │ │ ├── CircleSplitVOut.test.cpp
│ │ │ ├── CircleSqrt.test.cpp
│ │ │ ├── CircleSquare.test.cpp
│ │ │ ├── CircleSquaredDifference.test.cpp
│ │ │ ├── CircleSqueeze.test.cpp
│ │ │ ├── CircleStridedSlice.test.cpp
│ │ │ ├── CircleSub.test.cpp
│ │ │ ├── CircleSum.test.cpp
│ │ │ ├── CircleTanh.test.cpp
│ │ │ ├── CircleTile.test.cpp
│ │ │ ├── CircleTopKV2.test.cpp
│ │ │ ├── CircleTopKV2Out.test.cpp
│ │ │ ├── CircleTranspose.test.cpp
│ │ │ ├── CircleTransposeConv.test.cpp
│ │ │ ├── CircleUnidirectionalSequenceLSTM.test.cpp
│ │ │ ├── CircleUnique.test.cpp
│ │ │ ├── CircleUnpack.test.cpp
│ │ │ ├── CircleUnpackOut.test.cpp
│ │ │ ├── CircleVariable.test.cpp
│ │ │ ├── CircleWhere.test.cpp
│ │ │ ├── CircleWhile.test.cpp
│ │ │ ├── CircleWhileOut.test.cpp
│ │ │ └── CircleZerosLike.test.cpp
│ │ ├── log/
│ │ │ ├── CMakeLists.txt
│ │ │ ├── README.md
│ │ │ ├── include/
│ │ │ │ └── luci/
│ │ │ │ ├── Log.h
│ │ │ │ └── LoggingContext.h
│ │ │ └── src/
│ │ │ ├── Log.cpp
│ │ │ └── LoggingContext.cpp
│ │ ├── logex/
│ │ │ ├── CMakeLists.txt
│ │ │ ├── README.md
│ │ │ ├── include/
│ │ │ │ └── luci/
│ │ │ │ ├── CircleNodeSummaryBuilder.h
│ │ │ │ ├── CircleNodeSummaryBuilders.h
│ │ │ │ ├── FormattedGraph.h
│ │ │ │ └── LogHelper.h
│ │ │ └── src/
│ │ │ ├── CircleNodeSummaryBuilder.cpp
│ │ │ ├── CircleNodeSummaryBuilder.test.cpp
│ │ │ ├── CircleNodeSummaryBuilders.cpp
│ │ │ ├── FormattedGraph.cpp
│ │ │ └── LogHelper.cpp
│ │ ├── partition/
│ │ │ ├── CMakeLists.txt
│ │ │ ├── README.md
│ │ │ ├── include/
│ │ │ │ └── luci/
│ │ │ │ ├── ConnectNode.h
│ │ │ │ ├── Partition.h
│ │ │ │ ├── PartitionDump.h
│ │ │ │ └── PartitionValidate.h
│ │ │ └── src/
│ │ │ ├── CircleOpCode.cpp
│ │ │ ├── CircleOpCode.h
│ │ │ ├── CircleOpCode.test.cpp
│ │ │ ├── ConnectNode.cpp
│ │ │ ├── ConnectNode.test.cpp
│ │ │ ├── ConnectNode.test.h
│ │ │ ├── Nodes/
│ │ │ │ ├── CircleAbs.cpp
│ │ │ │ ├── CircleAbs.test.cpp
│ │ │ │ ├── CircleAdd.cpp
│ │ │ │ ├── CircleAdd.test.cpp
│ │ │ │ ├── CircleAddN.cpp
│ │ │ │ ├── CircleAddN.test.cpp
│ │ │ │ ├── CircleArgMax.cpp
│ │ │ │ ├── CircleArgMax.test.cpp
│ │ │ │ ├── CircleArgMin.cpp
│ │ │ │ ├── CircleArgMin.test.cpp
│ │ │ │ ├── CircleAveragePool2D.cpp
│ │ │ │ ├── CircleAveragePool2D.test.cpp
│ │ │ │ ├── CircleBCQFullyConnected.cpp
│ │ │ │ ├── CircleBCQFullyConnected.test.cpp
│ │ │ │ ├── CircleBCQGather.cpp
│ │ │ │ ├── CircleBCQGather.test.cpp
│ │ │ │ ├── CircleBatchMatMul.cpp
│ │ │ │ ├── CircleBatchMatMul.test.cpp
│ │ │ │ ├── CircleBatchToSpaceND.cpp
│ │ │ │ ├── CircleBatchToSpaceND.test.cpp
│ │ │ │ ├── CircleBroadcastTo.cpp
│ │ │ │ ├── CircleBroadcastTo.test.cpp
│ │ │ │ ├── CircleCast.cpp
│ │ │ │ ├── CircleCast.test.cpp
│ │ │ │ ├── CircleCeil.cpp
│ │ │ │ ├── CircleCeil.test.cpp
│ │ │ │ ├── CircleConcatenation.cpp
│ │ │ │ ├── CircleConcatenation.test.cpp
│ │ │ │ ├── CircleConst.cpp
│ │ │ │ ├── CircleConv2D.cpp
│ │ │ │ ├── CircleConv2D.test.cpp
│ │ │ │ ├── CircleCos.cpp
│ │ │ │ ├── CircleCos.test.cpp
│ │ │ │ ├── CircleCumSum.cpp
│ │ │ │ ├── CircleCumSum.test.cpp
│ │ │ │ ├── CircleCustom.cpp
│ │ │ │ ├── CircleCustom.test.cpp
│ │ │ │ ├── CircleCustomOut.cpp
│ │ │ │ ├── CircleCustomOut.test.cpp
│ │ │ │ ├── CircleDensify.cpp
│ │ │ │ ├── CircleDensify.test.cpp
│ │ │ │ ├── CircleDepthToSpace.cpp
│ │ │ │ ├── CircleDepthToSpace.test.cpp
│ │ │ │ ├── CircleDepthwiseConv2D.cpp
│ │ │ │ ├── CircleDepthwiseConv2D.test.cpp
│ │ │ │ ├── CircleDequantize.cpp
│ │ │ │ ├── CircleDequantize.test.cpp
│ │ │ │ ├── CircleDiv.cpp
│ │ │ │ ├── CircleDiv.test.cpp
│ │ │ │ ├── CircleElu.cpp
│ │ │ │ ├── CircleElu.test.cpp
│ │ │ │ ├── CircleEqual.cpp
│ │ │ │ ├── CircleEqual.test.cpp
│ │ │ │ ├── CircleExp.cpp
│ │ │ │ ├── CircleExp.test.cpp
│ │ │ │ ├── CircleExpandDims.cpp
│ │ │ │ ├── CircleExpandDims.test.cpp
│ │ │ │ ├── CircleFakeQuant.cpp
│ │ │ │ ├── CircleFakeQuant.test.cpp
│ │ │ │ ├── CircleFill.cpp
│ │ │ │ ├── CircleFill.test.cpp
│ │ │ │ ├── CircleFloor.cpp
│ │ │ │ ├── CircleFloor.test.cpp
│ │ │ │ ├── CircleFloorDiv.cpp
│ │ │ │ ├── CircleFloorDiv.test.cpp
│ │ │ │ ├── CircleFloorMod.cpp
│ │ │ │ ├── CircleFloorMod.test.cpp
│ │ │ │ ├── CircleFullyConnected.cpp
│ │ │ │ ├── CircleFullyConnected.test.cpp
│ │ │ │ ├── CircleGRU.cpp
│ │ │ │ ├── CircleGRU.test.cpp
│ │ │ │ ├── CircleGather.cpp
│ │ │ │ ├── CircleGather.test.cpp
│ │ │ │ ├── CircleGatherNd.cpp
│ │ │ │ ├── CircleGatherNd.test.cpp
│ │ │ │ ├── CircleGelu.cpp
│ │ │ │ ├── CircleGelu.test.cpp
│ │ │ │ ├── CircleGreater.cpp
│ │ │ │ ├── CircleGreater.test.cpp
│ │ │ │ ├── CircleGreaterEqual.cpp
│ │ │ │ ├── CircleGreaterEqual.test.cpp
│ │ │ │ ├── CircleHardSwish.cpp
│ │ │ │ ├── CircleHardSwish.test.cpp
│ │ │ │ ├── CircleIf.cpp
│ │ │ │ ├── CircleIf.test.cpp
│ │ │ │ ├── CircleIfOut.cpp
│ │ │ │ ├── CircleIfOut.test.cpp
│ │ │ │ ├── CircleInstanceNorm.cpp
│ │ │ │ ├── CircleInstanceNorm.test.cpp
│ │ │ │ ├── CircleL2Normalize.cpp
│ │ │ │ ├── CircleL2Normalize.test.cpp
│ │ │ │ ├── CircleL2Pool2D.cpp
│ │ │ │ ├── CircleL2Pool2D.test.cpp
│ │ │ │ ├── CircleLeakyRelu.cpp
│ │ │ │ ├── CircleLeakyRelu.test.cpp
│ │ │ │ ├── CircleLess.cpp
│ │ │ │ ├── CircleLess.test.cpp
│ │ │ │ ├── CircleLessEqual.cpp
│ │ │ │ ├── CircleLessEqual.test.cpp
│ │ │ │ ├── CircleLocalResponseNormalization.cpp
│ │ │ │ ├── CircleLocalResponseNormalization.test.cpp
│ │ │ │ ├── CircleLog.cpp
│ │ │ │ ├── CircleLog.test.cpp
│ │ │ │ ├── CircleLogSoftmax.cpp
│ │ │ │ ├── CircleLogSoftmax.test.cpp
│ │ │ │ ├── CircleLogicalAnd.cpp
│ │ │ │ ├── CircleLogicalAnd.test.cpp
│ │ │ │ ├── CircleLogicalNot.cpp
│ │ │ │ ├── CircleLogicalNot.test.cpp
│ │ │ │ ├── CircleLogicalOr.cpp
│ │ │ │ ├── CircleLogicalOr.test.cpp
│ │ │ │ ├── CircleLogistic.cpp
│ │ │ │ ├── CircleLogistic.test.cpp
│ │ │ │ ├── CircleMatrixDiag.cpp
│ │ │ │ ├── CircleMatrixDiag.test.cpp
│ │ │ │ ├── CircleMatrixSetDiag.cpp
│ │ │ │ ├── CircleMatrixSetDiag.test.cpp
│ │ │ │ ├── CircleMaxPool2D.cpp
│ │ │ │ ├── CircleMaxPool2D.test.cpp
│ │ │ │ ├── CircleMaximum.cpp
│ │ │ │ ├── CircleMaximum.test.cpp
│ │ │ │ ├── CircleMean.cpp
│ │ │ │ ├── CircleMean.test.cpp
│ │ │ │ ├── CircleMinimum.cpp
│ │ │ │ ├── CircleMinimum.test.cpp
│ │ │ │ ├── CircleMirrorPad.cpp
│ │ │ │ ├── CircleMirrorPad.test.cpp
│ │ │ │ ├── CircleMul.cpp
│ │ │ │ ├── CircleMul.test.cpp
│ │ │ │ ├── CircleNeg.cpp
│ │ │ │ ├── CircleNeg.test.cpp
│ │ │ │ ├── CircleNonMaxSuppressionV4.cpp
│ │ │ │ ├── CircleNonMaxSuppressionV4.test.cpp
│ │ │ │ ├── CircleNonMaxSuppressionV4Out.cpp
│ │ │ │ ├── CircleNonMaxSuppressionV4Out.test.cpp
│ │ │ │ ├── CircleNonMaxSuppressionV5.cpp
│ │ │ │ ├── CircleNonMaxSuppressionV5.test.cpp
│ │ │ │ ├── CircleNonMaxSuppressionV5Out.cpp
│ │ │ │ ├── CircleNonMaxSuppressionV5Out.test.cpp
│ │ │ │ ├── CircleNotEqual.cpp
│ │ │ │ ├── CircleNotEqual.test.cpp
│ │ │ │ ├── CircleOneHot.cpp
│ │ │ │ ├── CircleOneHot.test.cpp
│ │ │ │ ├── CircleOutputDummy.cpp
│ │ │ │ ├── CircleOutputExclude.cpp
│ │ │ │ ├── CirclePRelu.cpp
│ │ │ │ ├── CirclePRelu.test.cpp
│ │ │ │ ├── CirclePack.cpp
│ │ │ │ ├── CirclePack.test.cpp
│ │ │ │ ├── CirclePad.cpp
│ │ │ │ ├── CirclePad.test.cpp
│ │ │ │ ├── CirclePadV2.cpp
│ │ │ │ ├── CirclePadV2.test.cpp
│ │ │ │ ├── CirclePow.cpp
│ │ │ │ ├── CirclePow.test.cpp
│ │ │ │ ├── CircleQuantize.cpp
│ │ │ │ ├── CircleQuantize.test.cpp
│ │ │ │ ├── CircleRange.cpp
│ │ │ │ ├── CircleRange.test.cpp
│ │ │ │ ├── CircleRank.cpp
│ │ │ │ ├── CircleRank.test.cpp
│ │ │ │ ├── CircleReduceAny.cpp
│ │ │ │ ├── CircleReduceAny.test.cpp
│ │ │ │ ├── CircleReduceMax.cpp
│ │ │ │ ├── CircleReduceMax.test.cpp
│ │ │ │ ├── CircleReduceMin.cpp
│ │ │ │ ├── CircleReduceMin.test.cpp
│ │ │ │ ├── CircleReduceProd.cpp
│ │ │ │ ├── CircleReduceProd.test.cpp
│ │ │ │ ├── CircleRelu.cpp
│ │ │ │ ├── CircleRelu.test.cpp
│ │ │ │ ├── CircleRelu0To1.cpp
│ │ │ │ ├── CircleRelu0To1.test.cpp
│ │ │ │ ├── CircleRelu6.cpp
│ │ │ │ ├── CircleRelu6.test.cpp
│ │ │ │ ├── CircleReluN1To1.cpp
│ │ │ │ ├── CircleReluN1To1.test.cpp
│ │ │ │ ├── CircleReshape.cpp
│ │ │ │ ├── CircleReshape.test.cpp
│ │ │ │ ├── CircleResizeBilinear.cpp
│ │ │ │ ├── CircleResizeBilinear.test.cpp
│ │ │ │ ├── CircleResizeNearestNeighbor.cpp
│ │ │ │ ├── CircleResizeNearestNeighbor.test.cpp
│ │ │ │ ├── CircleReverseSequence.cpp
│ │ │ │ ├── CircleReverseSequence.test.cpp
│ │ │ │ ├── CircleReverseV2.cpp
│ │ │ │ ├── CircleReverseV2.test.cpp
│ │ │ │ ├── CircleRmsNorm.cpp
│ │ │ │ ├── CircleRmsNorm.test.cpp
│ │ │ │ ├── CircleRoPE.cpp
│ │ │ │ ├── CircleRoPE.test.cpp
│ │ │ │ ├── CircleRound.cpp
│ │ │ │ ├── CircleRound.test.cpp
│ │ │ │ ├── CircleRsqrt.cpp
│ │ │ │ ├── CircleRsqrt.test.cpp
│ │ │ │ ├── CircleSVDF.cpp
│ │ │ │ ├── CircleSVDF.test.cpp
│ │ │ │ ├── CircleScatterNd.cpp
│ │ │ │ ├── CircleScatterNd.test.cpp
│ │ │ │ ├── CircleSegmentSum.cpp
│ │ │ │ ├── CircleSegmentSum.test.cpp
│ │ │ │ ├── CircleSelect.cpp
│ │ │ │ ├── CircleSelect.test.cpp
│ │ │ │ ├── CircleSelectV2.cpp
│ │ │ │ ├── CircleSelectV2.test.cpp
│ │ │ │ ├── CircleShape.cpp
│ │ │ │ ├── CircleShape.test.cpp
│ │ │ │ ├── CircleSign.cpp
│ │ │ │ ├── CircleSign.test.cpp
│ │ │ │ ├── CircleSin.cpp
│ │ │ │ ├── CircleSin.test.cpp
│ │ │ │ ├── CircleSlice.cpp
│ │ │ │ ├── CircleSlice.test.cpp
│ │ │ │ ├── CircleSoftmax.cpp
│ │ │ │ ├── CircleSoftmax.test.cpp
│ │ │ │ ├── CircleSpaceToBatchND.cpp
│ │ │ │ ├── CircleSpaceToBatchND.test.cpp
│ │ │ │ ├── CircleSpaceToDepth.cpp
│ │ │ │ ├── CircleSpaceToDepth.test.cpp
│ │ │ │ ├── CircleSparseToDense.cpp
│ │ │ │ ├── CircleSparseToDense.test.cpp
│ │ │ │ ├── CircleSplit.cpp
│ │ │ │ ├── CircleSplit.test.cpp
│ │ │ │ ├── CircleSplitOut.cpp
│ │ │ │ ├── CircleSplitOut.test.cpp
│ │ │ │ ├── CircleSplitV.cpp
│ │ │ │ ├── CircleSplitV.test.cpp
│ │ │ │ ├── CircleSplitVOut.cpp
│ │ │ │ ├── CircleSplitVOut.test.cpp
│ │ │ │ ├── CircleSqrt.cpp
│ │ │ │ ├── CircleSqrt.test.cpp
│ │ │ │ ├── CircleSquare.cpp
│ │ │ │ ├── CircleSquare.test.cpp
│ │ │ │ ├── CircleSquaredDifference.cpp
│ │ │ │ ├── CircleSquaredDifference.test.cpp
│ │ │ │ ├── CircleSqueeze.cpp
│ │ │ │ ├── CircleSqueeze.test.cpp
│ │ │ │ ├── CircleStridedSlice.cpp
│ │ │ │ ├── CircleStridedSlice.test.cpp
│ │
================================================
FILE CONTENTS
================================================
================================================
FILE: .ahub/sam/advanced.cfg
================================================
[SamPolicy]
preset=CCD_FOR_OO
================================================
FILE: .ahub/sam/exclude.txt
================================================
# External code: Android NN API
compiler/ann-api/include/NeuralNetworks.h
compiler/ann-ref/
# Eigen
compiler/nnc/backends/soft_backend/code_snippets/eigen.def
# Frontend test tools that are needed for release package build
compiler/circlechef/
compiler/circle-verify/
compiler/luci/tester/
# Exclude IR headers which have lots of similar patterns
# TODO remove this when refactoring is possible
compiler/luci/lang/include/luci/IR/Nodes/
compiler/luci/import/include/luci/Import/Nodes/
compiler/loco/include/loco/IR/
compiler/tflchef/tflite/src/Op/include/
# Exclude interpreter kernels which have similar patterns
compiler/luci-interpreter/src/kernels/
compiler/locomotiv/src/Node/
# Flatbuffers generated
runtime/libs/circle-schema/include/circle_schema_generated.h
runtime/libs/circle-schema/include/circle_traininfo_generated.h
runtime/onert/core/src/loader/tflite_schema_generated.h
# External code: Tensorflow lite
runtime/libs/profiling/
# External code: 3rd party
runtime/3rdparty/
# External code: compute libraries
runtime/compute/
# Experimental subprojects not for release
runtime/contrib/
# Downloaded externals
externals/
# Intermediate code for runtime build (refer nnfw.spec file's nncc_workspace)
build/nncc/
# circle-mlir Docker image
/workdir/
# circle-mlir externals, build and testing
circle-mlir/externals/
circle-mlir/build/
circle-mlir/tools-test/
================================================
FILE: .ahub/tcchecker-tca/config.yaml
================================================
version: 2
test:
- name: NN_Runtime
testCaseLanguage: CPP
testFW: GTEST
testCaseFolder:
- /runtime/compute/cker
- /runtime/libs/misc
- /runtime/libs/ndarray
- /runtime/onert
- /runtime/tests/nnfw_api
testFile:
- extension: cpp
ends:
- .test
- extension: cc
ends:
- .test
testCase:
- condition:
- functionName:
starts:
- TEST
- TYPED_TEST
- excludes :
- Verifier.dag_checker
- ExecTime.structure
- ExecTime.roundtrip_ok
- SchedulerTest.branched_graph_profiling_mode
- SchedulerTestWithExecutorParam.straight_graph_known_exec_time
- SchedulerTestWithExecutorParam.branched_graph_known_exec_time
- TFLite_test_case.simple_test
- ExecInstance.simple
- ExecInstance.twoExecution
- ExecInstance.twoCompile
- ExecInstance.async
- ExecInstance.twoThreads
- graph_operand_usedef.usedef_test
- WICPlanner.claim_release_test
- BumpPlanner.claim_test
- Allocator.allocate_test
- FirstFitPlanner.claim_release_test
- ValidationTest.neg_prepare_001
- ValidationTestOneOpModelLoaded.prepare_001
- ValidationTestSessionCreated.neg_load_session_001
- ValidationTestSessionCreated.load_session_001
- ShapeInference.Pool2DNodeExplicit
- ShapeInference.Elementwise
- ShapeInference.Concat
- ShapeInference.Pool2DNodeSame
- ShapeInference.IncorrectElementwise
- ShapeInference.Conv2D
- ShapeInference.Pool2DNodeValid
- ShapeInference.FullyConnected
- ShapeInference.DepthwiseConv2D
- ObjectManager.non_const_iterate
- ObjectManager.const_iterate
- ObjectManager.emplace
- ObjectManager.remove_2
- ObjectManager.remove_1
- ObjectManager.push
negativeTestCase:
- condition:
- testName:
starts:
- neg_
positiveTestCase:
- condition:
- inverse: negativeTestCase
- name: NN_Compiler
testCaseLanguage: CPP
testFW: GTEST
testCaseFolder:
- /compiler/angkor
- /compiler/arser
- /compiler/circle-partitioner
- /compiler/circle-quantizer
- /compiler/circle-tensordump
- /compiler/circle2circle
- /compiler/circlechef
- /compiler/circledump
- /compiler/crew
- /compiler/cwrap
- /compiler/dio-hdf5
- /compiler/foder
- /compiler/hermes
- /compiler/hermes-std
- /compiler/loco
- /compiler/locomotiv
- /compiler/locop
- /compiler/logo
- /compiler/logo-core
- /compiler/luci
- /compiler/luci-interpreter
- /compiler/luci-eval-driver
- /compiler/luci-pass-value-test
- /compiler/luci-value-test
- /compiler/mio-circle05
- /compiler/mio-tflite
- /compiler/mio-tflite260
- /compiler/oops
- /compiler/pepper-assert
- /compiler/pepper-csv2vec
- /compiler/pepper-str
- /compiler/pepper-strcast
- /compiler/pp
- /compiler/rawdata2hdf5
- /compiler/record-minmax
- /compiler/safemain
- /compiler/souschef
- /compiler/tflchef
- /compiler/tflite2circle
- /compiler/vconone
testFile:
- extension: cpp
ends:
- .test
testCase:
- condition:
- functionName:
starts:
- TEST
- excludes :
- ConstantFolding.const_relu_to_const
- ConstantFolding.const_relu_to_concat
- ADT_TENSOR_OVERLAY.access
- ADT_TENSOR_OVERLAY.ctor
- ADT_TENSOR_OVERLAY.read
- NodeExecution_BiasEncode.f32
- NodeExecution_BiasEncode.s32
- NodeExecution_EltwiseDiv.f32
- CircleLogicalOrTest.constructor_P
- NodeExecution_TensorConcat.f32_2
- NodeExecution_TensorConcat.f32
- CircleShapeInferenceRuleTest.avgpool2d_valid
- CircleShapeInferenceRuleTest.TFAdd_shapeinf_different
- CircleShapeInferenceRuleTest.minimal_with_CircleRelu
- CircleShapeInferenceRuleTest.CircleTranspose_simple
- CircleShapeInferenceRuleTest.avgpool2d_same
- CircleConv2Dest.constructor_P
- ADT_TENSOR_BUFFER.access
- ADT_TENSOR_BUFFER.ctor
- CircleRelu6Test.constructor_P
- Circle2CircleTest.NoArg_NEG
- CircleInstanceNormTest.constructor
- ADT_KERNEL_INDEX_ENUMERATOR.iterate_full_range
- ADT_TENSOR_INDEX_ENUMERATOR.iterate_full_range
- CirclePadTest.constructor_P
- ADT_KERNEL_KERNEL_NHWC_LAYOUT.n_increment
- ADT_KERNEL_KERNEL_NHWC_LAYOUT.col_increment
- ADT_KERNEL_KERNEL_NHWC_LAYOUT.ch_increment
- ADT_KERNEL_KERNEL_NHWC_LAYOUT.row_increment
- ADT_TENSOR_LEXICAL_LAYOUT.last
- ADT_TENSOR_LEXICAL_LAYOUT.lexical_first
- ADT_TENSOR_LEXICAL_LAYOUT.lexical_middle
- FeatureShapeTest.settet_and_getter
- FeatureShapeTest.default_constructor
- INDENTED_STRING_BUILDER.usage
- NodeExecution_Fixed_Reduce_Mean.f32_1
- NodeExecution_Fixed_Reduce_Mean.f32_0
- CircleAbsTest.constructor
- CircleMaximumTest.constructor_P
- FORMAT.simple_string
- FORMAT.concat_rvalue
- FORMAT.concat_lvalue
- FORMAT.simple_number
- ADT_KERNEL_BUFFER.ctor
- ADT_KERNEL_BUFFER.access
- ADT_TENSOR_SHAPE.num_elements_rank_0
- ADT_TENSOR_SHAPE.squeeze_neg_0
- ADT_TENSOR_SHAPE.num_elements_zero
- ADT_TENSOR_SHAPE.copy
- ADT_TENSOR_SHAPE.eq_negative_on_unmatched_dim
- ADT_TENSOR_SHAPE.num_elements_nulldim
- ADT_TENSOR_SHAPE.eq_positive
- ADT_TENSOR_SHAPE.squeeze_pos
- ADT_TENSOR_SHAPE.resize
- ADT_TENSOR_SHAPE.ctor_initializer_list
- ADT_TENSOR_SHAPE.squeeze_neg
- ADT_TENSOR_SHAPE.squeeze_nested
- ADT_TENSOR_SHAPE.num_elements_nonzero
- ADT_TENSOR_SHAPE.eq_negative_on_unmatched_rank
- ADT_TENSOR_SHAPE.dim
- ADT_TENSOR_SHAPE.ctor
- GraphBuilderTest.Usecase_000
- QueueTest.take
- MultiDialectShapeInferenceRuleTest.test1
- AlgorithmTest.postorder_traversal_incomplte_graph
- AlgorithmTest.active_nodes
- AlgorithmTest.postorder_traversal_visit_once
- AlgorithmTest.postorder_traversal
- CircleSquaredDifferenceTest.constructor_P
- NodeShapeTest.feature_shape_constructor
- NodeShapeTest.filter_shape_constructor
- NodeShapeTest.default_constructor
- NodeShapeTest.copy_constructible
- NodeShapeTest.tensor_shape_constructor
- NodeShapeTest.dwfilter_shape_constructor
- NodeShapeTest.bias_shape_constructor
- ADT_KERNEL_KERNEL_NCHW_LAYOUT.n_increment
- ADT_KERNEL_KERNEL_NCHW_LAYOUT.col_increment
- ADT_KERNEL_KERNEL_NCHW_LAYOUT.row_increment
- ADT_KERNEL_KERNEL_NCHW_LAYOUT.ch_increment
- CircleEqualTest.constructor_P
- VerifierTest.valid_error_reporter
- VerifierTest.valid_minimal
- DataTypeTraitsTest.FLOAT32
- NodeExecution_EltwiseSub.f32
- NodeExecution_FeatureCodec.s32
- NodeExecution_FeatureCodec.f32
- ADT_TENSOR_INDEX.operator_add
- ADT_TENSOR_INDEX.ctor_initializer_list
- ADT_TENSOR_INDEX.fill
- ADT_TENSOR_INDEX.operator_eqaul
- ADT_TENSOR_INDEX.resize
- ADT_TENSOR_INDEX.operator_add_different_size
- ADT_TENSOR_INDEX.at
- ADT_TENSOR_INDEX.ctor
- ADT_TENSOR_INDEX.copy
- ADT_KERNEL_OVERLAY.access
- ADT_KERNEL_OVERLAY.read
- ADT_KERNEL_OVERLAY.ctor
- BiasShapeTest.default_constructor
- FildesTest.destructor
- FildesTest.value_constructor
- FildesTest.move_constructor
- FildesTest.default_constructor
- CircleGatherTest.constructor
- LinearV1FormatterTest.node_summary_builder_composition
- LinearV1FormatterTest.user_defined_node_summary_builder
- LinearV1FormatterTest.simple
- SourceTest.construct
- SourceTest.macro
- CircleFullyConnectedTest.constructor
- ADT_FEATURE_OVERLAY.read
- ADT_FEATURE_OVERLAY.access
- ADT_FEATURE_OVERLAY.ctor
- ContextTest.constructor
- CircleDivTest.constructor_P
- NodeExecution_Reshape.f32
- MultiDialectTypeInferenceRuleTest.test1
- CanonicalTypeInferenceRuleTest.relu6
- TypeInferenceTest.framework
- CanonicalTypeInferenceRuleTest.tensor_broadcast
- CanonicalTypeInferenceRuleTest.minimal
- PermutingDecoderTest.feature
- PemutationTest.feature
- PermutingEncoderTest.depthwisefilter_init
- PermutingDecoderTest.filter
- PermutingEncoderTest.depthwise_filter
- PermutingEncoderTest.filter
- PermutingEncoderTest.feature_clone
- PermutingEncoderTest.feature
- PermutingDecoderTest.depthwise_filter
- PemutationTest.depthwise_filter
- PermutingDecoderTest.feature_clone
- PemutationTest.filter
- PadTest.default_constructor_2D
- NodeDomain.as_annotation
- CirclePackTest.constructor
- ADT_TENSOR_LAYOUT.move
- ADT_TENSOR_LAYOUT.ctor
- ADT_TENSOR_LAYOUT.copy
- DepthwiseFilterShapeTest.settet_and_getter
- DepthwiseFilterShapeTest.default_constructor
- CircleTypeInferenceRuleTest.minimal_with_CircleRelu
- GenericNodeSummaryBuilderTest.simple
- LogoPassTests.pass_name_over_unnamed_pass
- LogoPassTests.pass_name_over_named_pass
- CircleReluTest.constructor_P
- PaddingNDTest.default_constructor_ND
- TensorShapeTest.copy
- TensorShapeTest.rank
- TensorShapeTest.element_count
- TensorShapeTest.dim
- TensorShapeTest.rank_update
- TensorShapeTest.default_constructor
- TensorShapeTest.initializer_list_constructor
- DepthwiseFilterIndexTest.settet_and_getter
- DepthwiseFilterIndexTest.default_constructor
- MemoryTest.make_unique
- AnnotatedItemTest.annotation
- NodeExecution_DepthwiseFilterEncode.f32
- CircleBatchToSpaceNDTest.constructor
- WindowTest.setter_and_getter_2D
- WindowTest.default_constructor_2D
- NodeExecution_Tanh.f32
- MessageBufferTest.pass_constructed_message_on_descturction
- NodeExecution_TensorBroadcast.f32
- CircleSubTest.constructor_P
- NodeExecution_AvgPool2D.f32_1x3x3x1_calculation
- NodeExecution_AvgPool2D.f32_1x4x4x1_calculation
- NodeExecution_Conv2D.f32_multiple_channel
- NodeExecution_Conv2D.f32_1x5x5x1_calculation
- NodeExecution_Conv2D.with_padding
- ADT_FEATURE_HWC_LAYOUT.W_increase
- ADT_FEATURE_HWC_LAYOUT.C_increase
- ADT_FEATURE_HWC_LAYOUT.H_increase
- SimplifyDomainConversionPass.FilterEncode_FilterDecode_equal_perms
- SimplifyDomainConversionPass.FilterEncode_FilterDecode_different_perms
- CircleDialectTest.get_N
- CircleDialectTest.get_P
- LINEAR_DOCUMENT.line
- LINEAR_DOCUMENT.lines
- NodeExecution_Push.f32
- NodeExecution_Push.s32
- NodeExecution_DepthwiseConv2D.f32_random_valid
- NodeExecution_Pad.tensor_constant_pad_6_dim
- NodeExecution_Pad.tensor_constant_pad_1_dim
- NodeExecution_Pad.tensor_constant_pad_4_dim
- DepthwiseConv2DTest.constructor
- ConstGenTest.constructor_s32
- TransposedConv2DTest.constructor
- PullTest.shape
- MatrixDecodeTest.constructor
- FilterEncodeTest.constructor
- AvgPool2DTest.constructor
- Reshape_Fixed_Test.shape
- TensorConcatTest.constructor
- EltwiseSqrtTest.constructor
- TensorBiasAddTest.alias
- EltwiseSubTest.constructor
- TensorBroadcastTest.mapping
- PullTest.constructor
- PushTest.shape
- MaxPool2DTest.pad
- EltwiseMulTest.constructor
- DepthwiseFilterEncodeTest.constructor
- ForwardTest.constructor
- MaxPool2DTest.constructor
- TransposeTest.perm
- MatMulTest.constructor
- FeatureBiasAddTest.constructor
- TensorBroadcastTest.constructor
- FeatureEncodeTest.constructor
- MatrixEncodeTest.constructor
- ReLUTest.constructor
- BiasEncodeTest.constructor
- FilterDecodeTest.constructor
- EltwiseDivTest.constructor
- PushTest.constructor
- EltwiseAddTest.constructor
- Conv2DTest.constructor
- EltwiseMaxTest.constructor
- Reshape_Fixed_Test.constructor
- TransposeTest.constructor
- ConstGenTest.constructor
- FeatureBiasAddTest.alias
- DepthwiseFilterDecodeTest.constructor
- ReLU6Test.constructor
- FeatureDecodeTest.constructor
- TensorBiasAddTest.constructor
- NodeExecution_ReLU6.f32
- CircleSqrtTest.constructor_P
- CircleRsqrtTest.constructor
- LINEAR_DOCUMENT.append_empty_string
- LINEAR_DOCUMENT.indent
- LINEAR_DOCUMENT.append_multi_line_text
- LINEAR_DOCUMENT.append_void
- LINEAR_DOCUMENT.document_append
- LINEAR_DOCUMENT.formatted_append
- LINEAR_DOCUMENT.forward_append
- LINEAR_DOCUMENT.reverse_append
- NodeData.as_s32_buffer_wrapper
- NodeData.as_f32_buffer_wrapper
- ConsoleReporterTest.constructor
- ConsoleReporterTest.notify
- NodeExecution_TensorBiasAdd.f32
- NodeExecution_FeatureBiasAdd.f32
- ADT_KERNEL_SHAPE.num_elements
- ADT_KERNEL_SHAPE.operator_eq
- ADT_KERNEL_SHAPE.ctor
- CircleLogicalNotTest.constructor_P
- CircleConcatenationTest.constructor_P
- ModuleTest.add_more
- ModuleTest.consturctor
- ModuleTest.add
- ModuleTest.add_nullptr_NEG
- ModuleTest.graph_index_overflow_NEG
- CircleArgMaxTest.constructor_P
- CircleReshapeTest.alloc_new_shape_P
- CircleReshapeTest.constructor_P
- CircleAddTest.constructor_P
- CanonicalShapeInferenceRuleTest.tensor_concat
- CanonicalShapeInferenceRuleTest.feature_codec
- CanonicalShapeInferenceRuleTest.maxpool2d
- CanonicalShapeInferenceRuleTest.minimal
- CanonicalShapeInferenceRuleTest.const_gen
- CanonicalShapeInferenceRuleTest.depthwiseconv2d
- CanonicalShapeInferenceRuleTest.infer_v2
- CanonicalShapeInferenceRuleTest.avgpool2d
- CanonicalShapeInferenceRuleTest.tensor_broadcast
- CanonicalShapeInferenceRuleTest.transposedconv2d
- CanonicalShapeInferenceRuleTest.fixed_reshape
- CanonicalShapeInferenceRuleTest.relu
- CanonicalShapeInferenceRuleTest.tensor_transpose
- NodeExecution_Softmax.f32
- CircleCosTest.constructor_P
- HermesTest.simple_usecase
- CircleMaxPool2DTest.constructor_P
- GraphTest.graph_node_enumeration
- GraphTest.graph_name
- GraphTest.create_input
- NamedTest.constructor
- NamedTest.setter_and_getter
- GraphTest.create_and_destroy_node
- GraphTest.graph_name_nullptr_NEG
- DataTypedMixinTest.constructor
- DataTypedMixinTest.setter_and_getter
- GraphTest.consturctor_with_param_node
- TensorShapedMixinTest.setter_and_getter
- GraphTest.getters_over_const_instance
- GraphTest.create_output
- GraphTest.graph_inout_enumeration
- StrideTest.default_constructor_2D
- StrideTest.setter_and_getter_2D
- ADT_FEATURE_CHW_LAYOUT.col_increase
- ADT_FEATURE_CHW_LAYOUT.ch_increase
- ADT_FEATURE_CHW_LAYOUT.row_increase
- TensorIndexTest.copy
- TensorIndexTest.fill
- TensorIndexTest.at
- TensorIndexTest.ctor_initializer_list
- TensorIndexTest.resize
- TensorIndexTest.ctor
- NodeDataImpl.as_annotation
- MUILTI_LINE_TEXT_UTILS.operator_shift
- SeverityTest.fatal
- SeverityTest.warn
- SeverityTest.error
- SeverityTest.info
- SeverityTest.verbose
- MessageTest.ctor
- MessageTextTest.multiline
- NodeExecution_TransposedConv2D.f32
- ADT_FEATURE_BUFFER.ctor
- ADT_FEATURE_BUFFER.access
- UseTest.constructor
- UseTest.link_node
- NodeExecution_FilterEncode.f32
- NodeExecution_FilterEncode.s32
- CircleTransposeTest.constructor_P
- DimensionTest.value_constructor
- DimensionTest.default_constructor
- DimensionTest.operator_eq
- DimensionTest.make_unknown_dimension
- DimensionTest.unset
- DimensionTest.set
- TensorShapeTest.ctor_initializer_list
- TensorShapeTest.eq_negative_on_unmatched_dim
- TensorShapeTest.copy
- TensorShapeTest.eq_negative_on_unmatched_rank
- TensorShapeTest.dim
- TensorShapeTest.resize
- TensorShapeTest.eq_positive
- TensorShapeTest.ctor
- TensorFlowLiteImport.Dummy
- CircleTransposeConvTest.constructor_P
- LOCO.identity_network
- CanonicalDialectTest.get
- FeatureIndexTest.default_constructor
- FeatureIndexTest.settet_and_getter
- ADT_FEATURE_LAYOUT.move
- ADT_FEATURE_LAYOUT.ctor
- ADT_FEATURE_LAYOUT.copy
- CircleSoftmaxTest.constructor_P
- CanonicalNodeTest.mutable_visitor
- CanonicalNodeTest.visitor
- CanonicalNodeTest.visitor_with_user_default_impl
- NodeExecution_ReLU.f32
- ShapeInferenceTest.framework
- NodeExecution_EltwiseSqrt.f32
- NodeExecution_MatrixCodec.WH_f32
- NodeExecution_MatrixCodec.HW_s32
- ADT_FEATURE_SHAPE.operator_eq
- ADT_FEATURE_SHAPE.ctor
- ADT_FEATURE_SHAPE.num_elements
- SET.operator_diff
- SET.operator_eq
- NodeExecution_ConstGen.s32
- NodeExecution_ConstGen.f32
- CircleMulTest.constructor_P
- StrCastTests.safe_strcast_int
- NodeExecution_EltwiseMax.f32
- NodeExecution_Pull.check_data_ready
- FormattedTensorShapeTest.BracketFormat
- FilterShapeTest.settet_and_getter
- FilterShapeTest.default_constructor
- NodeExecution_MaxPool2D.with_padding
- NodeExecution_MaxPool2D.f32_1x3x3x1_calculation
- NodeExecution_EltwiseAdd.f32
- ADT_KERNEL_LAYOUT.move
- ADT_KERNEL_LAYOUT.ctor
- ADT_KERNEL_LAYOUT.copy
- NodeExecution_MatMul.s32_4x2_2x6
- NodeExecution_MatMul.f32_2x3_3x3
- CircleDepthwiseConv2DTest.constructor_P
- NodeExecution_Forward.s32
- NodeExecution_Forward.f32
- NodeExecution_EltwiseMul.f32
- FilterIndexTest.default_constructor
- FilterIndexTest.settet_and_getter
- DialectTest.service
- Session.inference_identity
- Session.dtor
- Session.session_for_subgraph
- Session.set_input
- Session.ctor_by_range
- Session.graph_IO_size
- NodeTest.constructor
- NodeTest.replace_with
- NodeTest.succs
- NodeTest.preds
- FixedArityNodeTest.constructor
negativeTestCase:
- condition:
- testName:
ends:
- _NEG
positiveTestCase:
- condition:
- inverse: negativeTestCase
- name: onert-micro
testCaseLanguage: CPP
testFW: GTEST
testCaseFolder:
- /onert-micro
testFile:
- extension: test.cpp
any: true
- extension: test.cc
any: true
- excludes :
- Greater.test.cpp
- LeakyRelu.test.cpp
- Dequantize.test.cpp
- L2Normalize.test.cpp
- OneHot.test.cpp
- BatchToSpaceND.test.cpp
- BatchMatMul.test.cpp
- SpaceToBatchND.test.cpp
- LocalResponseNormalization.test.cpp
- LessEqual.test.cpp
- Minimum.test.cpp
- Relu6.test.cpp
- ResizeBilinear.test.cpp
- SquaredDifference.test.cpp
- SpaceToDepth.test.cpp
- SVDF.test.cpp
- Neg.test.cpp
- InstanceNorm.test.cpp
- MirrorPad.test.cpp
- Quantize.test.cpp
- ResizeNearestNeighbor.test.cpp
- LogicalNot.test.cpp
- Elu.test.cpp
- If.test.cpp
- ReverseV2.test.cpp
- Equal.test.cpp
- FloorDiv.test.cpp
- Rsqrt.test.cpp
- L2Pool2D.test.cpp
- PRelu.test.cpp
- TransposeConv.test.cpp
- ArgMax.test.cpp
- LogicalOr.test.cpp
- Div.test.cpp
- LogicalAnd.test.cpp
- Square.test.cpp
- AveragePool2D.test.cpp
- Pow.test.cpp
- Softmax.test.cpp
- NotEqual.test.cpp
- Cast.test.cpp
- Floor.test.cpp
- Exp.test.cpp
- GreaterEqual.test.cpp
- Maximum.test.cpp
- Mean.test.cpp
- PadV2.test.cpp
- Squeeze.test.cpp
- Pad.test.cpp
- DepthwiseConv2D.test.cpp
- Sqrt.test.cpp
- Relu.test.cpp
- LogSoftmax.test.cpp
- DepthToSpace.test.cpp
- Unpack.test.cpp
testCase:
- condition:
- functionName:
starts:
- TEST
- TYPED_TEST
- excludes :
- Verifier.dag_checker
negativeTestCase:
- condition:
- testName:
ends:
- _NEG
positiveTestCase:
- condition:
- testName:
ends:
- _P
================================================
FILE: .clang-format
================================================
Language: Cpp
BasedOnStyle: Google
AccessModifierOffset: -2
AlignAfterOpenBracket: Align
AlignEscapedNewlinesLeft: true
AlignConsecutiveAssignments: false
AlignConsecutiveDeclarations: false
AlignOperands: true
AlignTrailingComments: true
AllowAllParametersOfDeclarationOnNextLine: true
AllowShortBlocksOnASingleLine: false
AllowShortCaseLabelsOnASingleLine: false
AllowShortFunctionsOnASingleLine: All
AllowShortIfStatementsOnASingleLine: false
AllowShortLoopsOnASingleLine: false
AlwaysBreakAfterDefinitionReturnType: None
AlwaysBreakAfterReturnType: None
AlwaysBreakBeforeMultilineStrings: false
AlwaysBreakTemplateDeclarations: false
BinPackArguments: true
BinPackParameters: true
BraceWrapping:
AfterClass: true
AfterCaseLabel: true
AfterControlStatement: true
AfterEnum: true
AfterFunction: true
AfterNamespace: true
AfterObjCDeclaration: false
AfterStruct: true
AfterUnion: false
AfterExternBlock: false
BeforeCatch: true
BeforeElse: true
IndentBraces: false
BreakBeforeBraces: Custom
BreakBeforeTernaryOperators: true
BreakConstructorInitializersBeforeComma: false
BreakAfterJavaFieldAnnotations: false
BreakStringLiterals: true
ColumnLimit: 100
CommentPragmas: '^ IWYU pragma:'
ConstructorInitializerAllOnOneLineOrOnePerLine: false
ConstructorInitializerIndentWidth: 2
ContinuationIndentWidth: 2
Cpp11BracedListStyle: true
DerivePointerAlignment: false
DisableFormat: false
ExperimentalAutoDetectBinPacking: false
FixNamespaceComments: true
IncludeCategories:
- Regex: '^"(llvm|llvm-c|clang|clang-c)/'
Priority: 2
- Regex: '^(<|"(gtest|isl|json)/)'
Priority: 3
- Regex: '.*'
Priority: 1
IndentCaseLabels: true
IndentWidth: 2
IndentWrappedFunctionNames: false
JavaScriptQuotes: Leave
JavaScriptWrapImports: true
KeepEmptyLinesAtTheStartOfBlocks: true
MacroBlockBegin: ''
MacroBlockEnd: ''
MaxEmptyLinesToKeep: 1
NamespaceIndentation: None
ObjCBlockIndentWidth: 2
ObjCSpaceAfterProperty: false
ObjCSpaceBeforeProtocolList: true
PenaltyBreakBeforeFirstCallParameter: 19
PenaltyBreakComment: 300
PenaltyBreakFirstLessLess: 120
PenaltyBreakString: 1000
PenaltyExcessCharacter: 1000000
PenaltyReturnTypeOnItsOwnLine: 60
PointerAlignment: Right
ReflowComments: true
SortIncludes: false
SortUsingDeclarations: false
SpaceAfterCStyleCast: false
SpaceBeforeAssignmentOperators: true
SpaceBeforeParens: ControlStatements
SpaceInEmptyParentheses: false
SpacesBeforeTrailingComments: 1
SpacesInAngles: false
SpacesInContainerLiterals: true
SpacesInCStyleCastParentheses: false
SpacesInParentheses: false
SpacesInSquareBrackets: false
Standard: Cpp11
TabWidth: 2
UseTab: Never
================================================
FILE: .ctags
================================================
--extra=+f
--exclude=Product
--exclude=build
--exclude=tags
--exclude=tests/scripts/framework/cache
--exclude=tests/scripts/models/cache
--exclude=tools/cross/rootfs
--exclude=doxygen
================================================
FILE: .git-blame-ignore-revs
================================================
# Migrate to clang-format-8
b823044b5430455dc3d59c465ec36ae2e0a18b06
1a6d9f00ba9f84c9c0dea1920ab3e4c75c127767
07e0bf6909d9afdca8eff74dc18824c126e051fe
e01989e10e361b826db5cc7eb367d64bed52c394
1a6c2f4c728c3fb6af6c925444a414e21b040776
56713c812379c60d59f1014c495ea450ecb5619b
218e7561a11f5104349b67457915071ce0325844
41644d4d0c74427112d0df94d627e47d7e1af182
d1d46e759110533bc406aec983a4f1965783c1bb
13740fae0d2dadfc2e61d8a749eccdda2f59f651
7484db3e41d443e77bd577189b9b89704b4f77e7
89294e72fb7f87090cfbc9a64d1efe3127b43707
e9555b203ba4affd74dadd1766abe2de123759f3
03b2c33a74858288300c0ea1f8624751eb6cba6b
fbfbad9f72eab095f1ef62f629e0c2004c8ce2d1
88213431c517cdd01fa38027a4ca59db247349dd
a65367238d22ada6ee67b3bc8c17aafd5ce79fed
07ec6705b265a36bbb110fc92373dfd81dadd977
b97bb692fb5450b2407f0edaad71de035d2c99df
fa047652d28926c44a167ce3db14b4d699fc4d72
45f473c88c7a49317cae260afc394335e4d996b0
987140eb8444b4404035fad2010386e8ebef06d4
9321f323e685f87c43a958ec18f9c8899e5cec66
ca07434330c7fb4896731ecd9a6642c4cf3ea32a
4e38da075e0c3049ea2c67e7a23704dbf00976f8
f3b1e7a0d25da2986368bd9e3c966d20e398cd2f
0bac725cb5fda66712bfe4898f7c2c7339fd9c95
a7fe0607307cbb7a6c52d6ce88bed61a0546bea9
21f79d6a95ec9ce1cec1773b994db21936000b84
e135aa4e84538adeca76eb6c5a3f96b47e14928a
2d3e893883ae1594318980941128cf0dfbfce2f3
de4fb32af5e79485b52236790149eed44762a0e7
b27695f7000a84e130b15b872a4c5998a5572449
45b57db3e26620929d3d653c22702383afc5bd73
21612ef572e1e6214dece9a7da8b3ed91a35c512
c32fc746d6ab7a51a7df2f4804e1916f9ea083dd
a6600d1649e6c0789dbd32968f840e08df9609c3
7a56078687ecd6b6fb5d54cd4fea9f5e32788667
589bb2dd216592712ed4e1d00fbdde56e0c578df
5365de4f0121efd12eaced56cdb9f3319f403c3e
ce664a17eb02cf34b1291edb9056e831a78abe39
e3b0dbd1c6166eb89e8f43edb2bc06bc104fe536
e3b0dbd1c6166eb89e8f43edb2bc06bc104fe536
950795b83427eb06a381d36ef020093470527763
ab99392cba9c2aa4d8660e2854143cb3b5696fbd
8ac5bd503ae57152b6b45c80f9c57315461bed9d
536cd365ee933aee0ba9c4c4ed80300170d2b818
10da7333257bf5b15f007ed03d6dea2b2bc6226e
432a2e2a347c9f824583ef40f7bcb281c2df8ceb
c58f815fd4864b1f9ca03584616b2fae32c262b3
2b531e4ae4e91a0f202b67a91af0d8de07e72a9c
0da03ab09ea30fcc5d16a3e82d9eb9e353f3f7d6
f0f13a9add58c17d4cd26aa839b71ab9f1126961
f40f1757207a4c3fcaeb94cb9c05310d30da45aa
1af2b04dd222a53580ad897d033da02749dea5a3
559e5a5dee0c5a5d49ae026e8f417e982d3014f1
06f93e959f17b1e8aae9f66a7d79409961511744
e45913706aebaaf028045c3efe7a7894f98c30be
151d5c5ec65c8e398a7ff143b770ac7468424082
070fef8051c1397b76cdcbedc2b4140473f42ddd
241a5b08406f2bed7318455dec8b8aac3541e1f3
# Migrate to clang-format-16
a3a157a3e5a15f2c23ab3c55c0b76aa2db224710
# Migrate to yapf 0.40.2
19e8a47269665cd9d00d27f945d43a6936efdc30
================================================
FILE: .gitattributes
================================================
# Exclude from git language statistics
runtime/tests/nnapi/specs/** linguist-detectable=false
res/** linguist-detectable=false
# Default: text file
# - Set End-Of-Line type
* text eol=lf
# Binary - ignore text file setting
*.bmp binary
*.caffemodel binary
*.circle binary
*.h5 binary
*.jar binary
*.pdf binary
*.png binary
*.tar.gz binary
*.tflite binary
*.svg binary
================================================
FILE: .github/actionlint.yaml
================================================
self-hosted-runner:
labels:
- one-x64-linux
- one-arm-linux
================================================
FILE: .github/workflows/build-dev-docker.yml
================================================
name: Build docker image for CI/CD infra on PR
on:
pull_request:
branches:
- master
paths:
- '.github/workflows/build-dev-docker.yml'
- 'infra/docker/**'
# Cancel previous running jobs when pull request is updated
concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
jobs:
filtering:
runs-on: ubuntu-latest
outputs:
ubuntu-target: ${{ steps.ubuntu-filter.outputs.changes }}
android: ${{ steps.android-filter.outputs.android }}
steps:
- uses: dorny/paths-filter@v3
id: ubuntu-filter
with:
filters: |
focal:
- '.github/**'
- 'infra/docker/focal/Dockerfile'
jammy:
- '.github/**'
- 'infra/docker/jammy/Dockerfile'
noble:
- '.github/**'
- 'infra/docker/noble/Dockerfile'
- uses: dorny/paths-filter@v3
id: android-filter
with:
filters: |
android:
- '.github/**'
- 'infra/docker/android-sdk/**'
# Build on docker CLI for PR test without login
build-ubuntu:
needs: filtering
if: github.repository_owner == 'Samsung' && needs.filtering.outputs.ubuntu-target != '[]'
runs-on: one-x64-linux
strategy:
matrix:
version: ${{ fromJSON(needs.filtering.outputs.ubuntu-target) }}
steps:
- name: Checkout
uses: actions/checkout@v6
- name: Build Docker Image
run: |
docker build --file infra/docker/${{ matrix.version }}/Dockerfile --tag one-test .
- name: Test onert build
if: matrix.version != 'focal' # not supported
run: |
docker run --rm -u root -v "${PWD}:${PWD}" -w "${PWD}" one-test make -f Makefile.template
docker run --rm -u root -v "${PWD}:${PWD}" -w "${PWD}" one-test Product/out/test/onert-test unittest
- name: Download rootfs for cross build
uses: dawidd6/action-download-artifact@v7
if: matrix.version != 'focal' # not supported
with:
workflow: generate-rootfs.yml
branch: master
name: rootfs_arm_${{ matrix.version }}
# Workaround: symlink for rootfs checker in cmake toolchain file
- name: Install rootfs and cross build
if: matrix.version != 'focal' # not supported
run: |
mkdir -p tools/cross/rootfs
tar -zxf rootfs_arm_${{ matrix.version }}.tar.gz -C tools/cross/rootfs
pushd tools/cross/rootfs/arm
ln -sf usr/lib lib
popd
docker run --rm -u root -v "${PWD}:${PWD}" -w "${PWD}" -e CROSS_BUILD=1 -e TARGET_ARCH=armv7l one-test make -f Makefile.template
build-android:
needs: filtering
if: github.repository_owner == 'Samsung' && needs.filtering.outputs.android == 'true'
runs-on: one-x64-linux
steps:
- name: Checkout
uses: actions/checkout@v6
- name: Build Docker Image
run: |
docker build --file infra/docker/android-sdk/Dockerfile --tag one-test .
- name: Test onert build
run: |
docker run --rm -u root -v "${PWD}:${PWD}" -w "${PWD}" -e CROSS_BUILD=1 -e TARGET_OS=android -e BUILD_TYPE=release one-test make -f Makefile.template
================================================
FILE: .github/workflows/build-docker-onnx-subgr.yml
================================================
name: Build docker image for tools/onnx_subgraph CI
on:
workflow_dispatch:
jobs:
build-docker-image:
if: github.repository_owner == 'Samsung'
runs-on: ubuntu-latest
strategy:
matrix:
include:
- ubuntu_code: jammy
ubuntu_vstr: u2204
steps:
- name: Login to DockerHub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
- name: Install Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Build Docker Image
uses: docker/build-push-action@v6
with:
file: ./tools/onnx_subgraph/docker/Dockerfile.${{ matrix.ubuntu_vstr }}
push: true
tags: nnfw/onnx-subgraph-build:${{ matrix.ubuntu_code }}
================================================
FILE: .github/workflows/build-pub-dev-docker.yml
================================================
name: Build and publish docker image for CI/CD infra
on:
workflow_dispatch:
defaults:
run:
shell: bash
jobs:
# Use github action for build and push test image to docker hub
build-docker-image:
if: github.repository_owner == 'Samsung'
runs-on: one-x64-linux
strategy:
matrix:
version: [ 'android-sdk', 'focal', 'jammy', 'noble']
include:
- version: 'focal'
platform: 'linux/amd64,linux/arm64'
- version: 'jammy'
platform: 'linux/amd64,linux/arm64'
- version: 'noble'
platform: 'linux/amd64,linux/arm64'
- version: 'android-sdk'
platform: 'linux/amd64'
fail-fast: false
steps:
- name: Login to DockerHub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
- name: Install Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Build Docker Image
uses: docker/build-push-action@v6
with:
file: ./infra/docker/${{ matrix.version }}/Dockerfile
push: true
tags: nnfw/one-devtools:${{ matrix.version }}-test
platforms: ${{ matrix.platform }}
cache-from: type=gha,scope=${{ matrix.version }}
cache-to: type=gha,mode=max,scope=${{ matrix.version }}
test-cross-image:
if: github.repository_owner == 'Samsung'
needs: build-docker-image
strategy:
matrix:
ubuntu_code: [ 'jammy', 'noble'] # focal: not supported onert build
fail-fast: false
runs-on: one-x64-linux
container:
image: nnfw/one-devtools:${{ matrix.ubuntu_code }}-test
options: --user root
credentials:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
env:
TARGET_ARCH: armv7l
BUILD_TYPE: release
CROSS_BUILD: 1
steps:
- name: Checkout
uses: actions/checkout@v6
- name: Restore onecc external cache
uses: actions/cache/restore@v4
with:
path: externals
key: external-onecc-${{ hashFiles('infra/cmake/packages/**/*.cmake') }}
restore-keys: |
external-onecc-
- name: Restore externals cache
uses: actions/cache/restore@v4
with:
path: runtime/externals
key: external-onert-${{ matrix.ubuntu_code }}-${{ hashFiles('runtime/infra/cmake/packages/**/*.cmake') }}
restore-keys: |
external-onert-${{ matrix.ubuntu_code }}-
- name: Download rootfs for cross build
uses: dawidd6/action-download-artifact@v7
with:
workflow: generate-rootfs.yml
branch: master
name: rootfs_arm_${{ matrix.ubuntu_code }}
- name: Install rootfs for cross build and build
run: |
mkdir -p tools/cross/rootfs
tar -zxf rootfs_arm_${{ matrix.ubuntu_code }}.tar.gz -C tools/cross/rootfs
make -f Makefile.template
test-x64-image:
if: github.repository_owner == 'Samsung'
needs: build-docker-image
strategy:
matrix:
ubuntu_code: [ 'jammy', 'noble' ] # focal: not supported onert build
fail-fast: false
runs-on: one-x64-linux
container:
image: nnfw/one-devtools:${{ matrix.ubuntu_code }}-test
options: --user root
credentials:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
env:
BUILD_TYPE: release
steps:
- name: Checkout
uses: actions/checkout@v6
- name: Restore onecc external cache
uses: actions/cache/restore@v4
with:
path: externals
key: external-onecc-${{ hashFiles('infra/cmake/packages/**/*.cmake') }}
restore-keys: |
external-onecc-
- name: Restore externals cache
uses: actions/cache/restore@v4
with:
path: runtime/externals
key: external-onert-${{ matrix.ubuntu_code }}-${{ hashFiles('runtime/infra/cmake/packages/**/*.cmake') }}
restore-keys: |
external-onert-${{ matrix.ubuntu_code }}-
- name: Build
run: make -f Makefile.template
test-android-sdk-image:
if: github.repository_owner == 'Samsung'
needs: build-docker-image
runs-on: one-x64-linux
container:
image: nnfw/one-devtools:android-sdk-test
options: --user root
credentials:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
env:
BUILD_TYPE: release
CROSS_BUILD: 1
TARGET_OS: android
steps:
- name: Checkout
uses: actions/checkout@v6
- name: Restore onecc external cache
uses: actions/cache/restore@v4
with:
path: externals
key: external-onecc-${{ hashFiles('infra/cmake/packages/**/*.cmake') }}
restore-keys: |
external-onecc-
- name: Restore externals cache
uses: actions/cache/restore@v4
with:
path: runtime/externals
key: external-onert-ndk-${{ hashFiles('runtime/infra/cmake/packages/**/*.cmake') }}
restore-keys: |
external-onert-ndk-
- name: Build onert
run: make -f Makefile.template
test-arm64-image:
if: github.repository_owner == 'Samsung'
needs: build-docker-image
strategy:
matrix:
ubuntu_code: [ 'jammy', 'noble' ] # focal: not supported onert build
fail-fast: false
runs-on: one-arm-linux
container:
image: nnfw/one-devtools:${{ matrix.ubuntu_code }}-test
options: --user root
credentials:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
env:
BUILD_TYPE: release
TARGET_ARCH: aarch64
steps:
- name: Checkout
uses: actions/checkout@v6
- name: Restore onecc external cache
uses: actions/cache/restore@v4
with:
path: externals
key: external-onecc-${{ hashFiles('infra/cmake/packages/**/*.cmake') }}
restore-keys: |
external-onecc-
- name: Restore externals cache
uses: actions/cache/restore@v4
with:
path: runtime/externals
key: external-onert-${{ matrix.ubuntu_code }}-${{ hashFiles('infra/nnfw/cmake/packages/**/*.cmake') }}
restore-keys: |
external-onert-${{ matrix.ubuntu_code }}-
- name: Build onert
run: |
make -f Makefile.template
publish-image:
if: github.repository_owner == 'Samsung'
needs: [ test-cross-image, test-x64-image, test-android-sdk-image, test-arm64-image ]
strategy:
matrix:
version: [ 'android-sdk', 'focal', 'jammy', 'noble']
include:
- version: 'focal'
platform: 'linux/amd64,linux/arm64'
- version: 'jammy'
platform: 'linux/amd64,linux/arm64'
- version: 'noble'
platform: 'linux/amd64,linux/arm64'
- version: 'android-sdk'
platform: 'linux/amd64'
fail-fast: false
runs-on: one-x64-linux
steps:
- name: Login to DockerHub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
- name: Login to Azure Repository
uses: docker/login-action@v3
with:
registry: samsungonedev.azurecr.io
username: ${{ secrets.AZDOCKER_WRITE_ID }}
password: ${{ secrets.AZDOCKER_WRITE_PWD }}
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
- name: Install Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Build Docker Image
uses: docker/build-push-action@v6
with:
file: ./infra/docker/${{ matrix.version }}/Dockerfile
push: true
platforms: ${{ matrix.platform }}
cache-from: type=gha,scope=${{ matrix.version }}
cache-to: type=gha,mode=max,scope=${{ matrix.version }}
tags: |
nnfw/one-devtools:${{ matrix.version }}
samsungonedev.azurecr.io/nnfw/one-devtools:${{ matrix.version }}
================================================
FILE: .github/workflows/check-format.yml
================================================
name: Check code format
on:
push:
branches:
- master
- release/*
pull_request:
branches:
- master
- release/*
defaults:
run:
shell: bash
jobs:
check-format:
name: Check format
runs-on: ubuntu-slim
if: github.repository_owner == 'Samsung'
steps:
- name: Checkout
uses: actions/checkout@v6
with:
# Fetch all history and branch (default: 1)
# Require all history to get file creation date
fetch-depth: 0
- name: Install uv
uses: astral-sh/setup-uv@v7
with:
version: "0.9.10"
- name: Check format all files
run: |
uv run pre-commit run -a
================================================
FILE: .github/workflows/check-pr-commit.yml
================================================
name: Check PR commit
on:
pull_request:
branches:
- master
- release/*
types:
- opened
- synchronize
- reopened
- ready_for_review
defaults:
run:
shell: bash
jobs:
check-commit-message:
name: Check commit message
runs-on: ubuntu-slim
# Skip on draft, check on draft -> ready
if: github.repository_owner == 'Samsung' && github.event.pull_request.draft == false
steps:
- name: Checkout
uses: actions/checkout@v6
with:
# Checkout PR head commit
# Checkout Action use merge commit as default
ref: ${{ github.event.pull_request.head.sha }}
# Fetch all history and branch (default: 1)
fetch-depth: 0
- name: Get commit body
run: |
git log "origin/${GITHUB_BASE_REF}..HEAD" --format=%b > commit_msg.txt
sed '/^$/d' commit_msg.txt > commit_body.txt
- name: Check signed-off
run: |
# Check string starting from "Signed-off-by:"
count=$(grep -c 'Signed-off-by:' commit_body.txt)
if [[ ! "$count" -ge "1" ]]; then
echo "Your commit message does not contain the expected signoff information."
exit 1
fi
echo "Signed-off-by is OK"
- name: Check body words
# Run if check_signed_off step is failed
if: ${{ always() }}
run: |
count=$(sed '/Signed-off-by:/d' commit_body.txt | wc -w)
echo "Commit body word check: $count words"
if [[ "$count" -lt "5" ]]; then
echo "The body of your commit does not satisfy this repository requirements."
echo "The body needs to contain at least 5 words."
exit 1
fi
================================================
FILE: .github/workflows/deploy-github-pages.yml
================================================
name: Build and deploy github page
on:
schedule:
# Every weeks
- cron: '30 19 * * SUN'
workflow_dispatch:
inputs:
publish:
description: 'Push to github page branch or not'
required: true
default: false
type: boolean
jobs:
build_and_deploy:
name: 'Deploy doxygen page'
runs-on: 'ubuntu-latest'
if: github.repository_owner == 'Samsung'
steps:
- name: 'Checkout'
uses: actions/checkout@v6
- name: 'Generate HTML'
uses: mattnotmitt/doxygen-action@v1.9
with:
doxyfile-path: 'infra/doxygen/Doxyfile'
- name: 'Tar artifact'
run: tar -zcf doxygen.tar.gz -C doxygen/html ./
- name: 'Generate artifact'
uses: actions/upload-artifact@v4
with:
name: doxygen-html
path: doxygen.tar.gz
- name: 'Deploy'
if: ${{ github.event_name == 'schedule' || github.event.inputs.publish == 'true' }}
uses: JamesIves/github-pages-deploy-action@v4
with:
folder: doxygen/html
branch: gh-pages
================================================
FILE: .github/workflows/generate-rootfs.yml
================================================
# Generate root file system for CI/CD cross build
name: 'Generate RootFS'
on:
pull_request:
branches:
- master
- release/*
paths:
- '.github/workflows/generate-rootfs.yml'
- 'tools/cross/**'
push:
branches:
- master
- release/*
paths:
- '.github/workflows/generate-rootfs.yml'
- 'tools/cross/**'
schedule:
# Every 1st day of the month at midnight (KST, UTC+9:00)
- cron: '0 15 1 * *'
workflow_dispatch:
# Cancel previous running jobs when pull request is updated
concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
jobs:
gen-rootfs:
if: github.repository_owner == 'Samsung'
runs-on: ubuntu-22.04
strategy:
matrix:
os: [ jammy, noble ]
arch: [ arm, aarch64 ]
fail-fast: false
steps:
- name: Install qemu
uses: docker/setup-qemu-action@v3
- name: Install debootstrap
run: sudo apt-get update && sudo apt-get install -y debootstrap
- name: Checkout
uses: actions/checkout@v6
- name: Generate RootFS
run: |
pushd tools/cross
sudo ./install_rootfs.sh ${{ matrix.arch }} ${{ matrix.os }} --skipunmount
sudo umount --recursive rootfs || true
sudo chown -R "$(id -u):$(id -g)" rootfs/${{ matrix.arch }}
tar -zcvf rootfs_${{ matrix.arch }}_${{ matrix.os }}.tar.gz -C rootfs \
${{ matrix.arch }}/usr ${{ matrix.arch }}/etc ${{ matrix.arch }}/lib
popd
mv tools/cross/rootfs_${{ matrix.arch }}_${{ matrix.os }}.tar.gz .
- name: Archive RootFS for PR
uses: actions/upload-artifact@v4
with:
name: rootfs_${{ matrix.arch }}_${{ matrix.os }}
# Set short-lived artifacts for PRs only to avoid cluttering the storage.
retention-days: ${{ github.event_name == 'pull_request' && '3' || '60' }}
path: rootfs_${{ matrix.arch }}_${{ matrix.os }}.tar.gz
================================================
FILE: .github/workflows/pub-circle-int-launchpad.yml
================================================
name: Publish circle-interpreter to Launchpad
on:
# TODO turn on schedule
#schedule:
# # 05:00 AM (KST, UTC+9:00) Mon-Fri
# - cron: '00 20 * * 0-4'
workflow_dispatch:
inputs:
cirint_version:
description: 'The version of circle-interpreter'
required: true
default: '1.30.0'
cirint_description:
description: 'Description of changelog for circle-interpreter'
required: true
deb_fullname:
description: 'Full name of Debian package author'
required: false
default: 'On-device AI developers'
deb_email:
description: 'Email address of Debian package author'
required: false
default: 'nnfw@samsung.com'
is_release:
description: 'Is this a release version?
Set to false to append date-based subversion.
(true/false)'
required: false
default: 'false'
defaults:
run:
shell: bash
# Cancel previous running jobs when pull request is updated
concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
jobs:
configure:
if: github.repository_owner == 'Samsung'
name: Set current date and time
runs-on: ubuntu-latest
outputs:
version: ${{ steps.set-datetime.outputs.version }}
br_version: ${{ steps.set-datetime.outputs.br_version }}
steps:
- name: Set date and time
id: set-datetime
run: |
base_version="${{ inputs.cirint_version }}"
is_release="${{ inputs.is_release }}"
if [[ "$is_release" == "true" ]]; then
version="${base_version}"
br_version="${base_version}"
else
release_date=$(date +%Y%m%d%H%M)
version="${base_version}~${release_date}"
br_version="${base_version}-${release_date}"
fi
{
echo "version=${version}"
echo "br_version=${br_version}"
} >> "${GITHUB_OUTPUT}"
debian-release:
needs: configure
strategy:
matrix:
ubuntu_code: [ focal, jammy, noble ]
name: circle-interpreter ubuntu ${{ matrix.ubuntu_code }}
runs-on: ubuntu-latest
container:
image: nnfw/one-devtools:${{ matrix.ubuntu_code }}
options: --user root
credentials:
username: ${{ secrets.NNFW_DOCKER_USERNAME }}
password: ${{ secrets.NNFW_DOCKER_TOKEN }}
env:
NNCC_BUILD: build
NNCC_WORKSPACE: build/release
NNCC_INSTALL_PREFIX: ${{ github.workspace }}/build/release.install
CIRINTP_PREFIX: cirintp
steps:
- name: Prepare, set distro versions
id: prepare
run: |
VERSION="${{ needs.configure.outputs.version }}~${{ matrix.ubuntu_code }}"
changes_file="circle-interpreter_${VERSION}_source.changes"
tarball_file="circle-interpreter_${VERSION}.orig.tar.xz"
{
echo "VERSION=${VERSION}"
echo "changes_file=${changes_file}"
echo "tarball_file=${tarball_file}"
} >> "$GITHUB_OUTPUT"
- name: Checkout
uses: actions/checkout@v6
- name: Build without test
run: |
CIR_INTP_ITEMS="angkor;cwrap;pepper-str;pepper-strcast;pepper-csv2vec;pp"
CIR_INTP_ITEMS="${CIR_INTP_ITEMS};oops;loco;logo-core;logo;locop"
CIR_INTP_ITEMS="${CIR_INTP_ITEMS};hermes;hermes-std;safemain;mio-circle"
CIR_INTP_ITEMS="${CIR_INTP_ITEMS};luci-compute;luci;luci-interpreter"
CIR_INTP_ITEMS="${CIR_INTP_ITEMS};foder;arser;vconone;circle-interpreter"
echo ${CIR_INTP_ITEMS}
./nncc configure \
-DENABLE_STRICT_BUILD=ON \
-DENABLE_TEST=OFF \
-DCMAKE_BUILD_TYPE=Release \
-DEXTERNALS_BUILD_THREADS="$(nproc)" \
-DCMAKE_INSTALL_PREFIX="${NNCC_INSTALL_PREFIX}" \
-DBUILD_WHITELIST="${CIR_INTP_ITEMS}"
./nncc build "-j$(nproc)"
cmake --build "${NNCC_WORKSPACE}" -- install
- name: Gather files
run: |
cd "${NNCC_BUILD}"
mkdir -p "${CIRINTP_PREFIX}"
cp -v "${NNCC_INSTALL_PREFIX}/bin/circle-interpreter" "./${CIRINTP_PREFIX}/."
cp -v "${NNCC_INSTALL_PREFIX}/lib/libloco.so" "./${CIRINTP_PREFIX}/."
cp -v "${NNCC_INSTALL_PREFIX}/lib/libluci_env.so" "./${CIRINTP_PREFIX}/."
cp -v "${NNCC_INSTALL_PREFIX}/lib/libluci_import.so" "./${CIRINTP_PREFIX}/."
cp -v "${NNCC_INSTALL_PREFIX}/lib/libluci_interpreter.so" "./${CIRINTP_PREFIX}/."
cp -v "${NNCC_INSTALL_PREFIX}/lib/libluci_lang.so" "./${CIRINTP_PREFIX}/."
cp -v "${NNCC_INSTALL_PREFIX}/lib/libluci_logex.so" "./${CIRINTP_PREFIX}/."
cp -v "${NNCC_INSTALL_PREFIX}/lib/libluci_log.so" "./${CIRINTP_PREFIX}/."
cp -v "${NNCC_INSTALL_PREFIX}/lib/libluci_plan.so" "./${CIRINTP_PREFIX}/."
cp -v "${NNCC_INSTALL_PREFIX}/lib/libluci_profile.so" "./${CIRINTP_PREFIX}/."
- name: Update changelog
run: |
cd ${{ env.NNCC_BUILD }}/${{ env.CIRINTP_PREFIX }}
cp -rf ../../infra/debian/circle-interpreter ./debian
export DEBFULLNAME="${{ inputs.deb_fullname }}"
export DEBEMAIL="${{ inputs.deb_email }}"
dch -v "${{ steps.prepare.outputs.VERSION }}" \
--distribution "${{ matrix.ubuntu_code }}" \
"${{ inputs.cirint_description }}" -b
- name: Create original tarball
run: |
cd ${{ env.NNCC_BUILD }}
tar -caf ${{ steps.prepare.outputs.tarball_file }} ${{ env.CIRINTP_PREFIX }}
- name: Signing with debuild and debsign
run: |
cd ${{ env.NNCC_BUILD }}/${{ env.CIRINTP_PREFIX }}
rm -rf ~/.gnupg
echo -n "${{ secrets.GPG_NNFW_SIGNING_KEY }}" | base64 --decode | gpg --import
# get fingerprint
FPR=$(gpg --list-keys --with-colons | awk -F: '$1 == "fpr" { print $10; exit }')
echo "$FPR:6:" | gpg --import-ownertrust
debuild -S -us -uc
debsign "-k${FPR}" ../circle-interpreter_*.changes
- name: Upload to Launchpad
run: |
cd ${{ env.NNCC_BUILD }}
mkdir -p ~/.ssh
echo "${{ secrets.LAUNCHPAD_NNFW_PRIVATE_KEY }}" > ~/.ssh/id_rsa
chmod 600 ~/.ssh/id_rsa
dput ppa:circletools/nightly ${{ steps.prepare.outputs.changes_file }}
- name: Upload artifact, circle-interpreter
uses: actions/upload-artifact@v4
with:
name: circle-interpreter_${{ steps.prepare.outputs.VERSION }}
retention-days: 3
path: |
${{ env.NNCC_BUILD }}/${{ steps.prepare.outputs.tarball_file }}
create-changelog-artifact:
needs: [ configure, debian-release ]
if: ${{ success() && github.ref == 'refs/heads/master' }}
runs-on: ubuntu-latest
env:
DEFAULT_DISTRO: jammy
steps:
- name: Download tarball, ${{ env.DEFAULT_DISTRO }}
uses: actions/download-artifact@v4
with:
name: circle-interpreter_${{ needs.configure.outputs.version }}~${{ env.DEFAULT_DISTRO }}
- name: Copy changelogs
run: |
mkdir changelogs
mkdir ${{ env.DEFAULT_DISTRO }}
tar -axf circle-interpreter_${{ needs.configure.outputs.version }}~${{ env.DEFAULT_DISTRO }}.orig.tar.xz \
-C ${{ env.DEFAULT_DISTRO }}
cp ${{ env.DEFAULT_DISTRO }}/cirintp/debian/changelog changelogs/changelog
- name: Upload artifact, changelogs
uses: actions/upload-artifact@v4
with:
name: changelogs
retention-days: 3
path: |
changelogs
create-pr-on-success:
needs: [ configure, create-changelog-artifact ]
if: ${{ success() && github.ref == 'refs/heads/master' }}
runs-on: ubuntu-latest
env:
BR_VERSION: ${{ needs.configure.outputs.br_version }}
permissions:
contents: write
pull-requests: write
steps:
- name: Prepare, set distro versions
id: prepare
run: |
VERSION="${{ needs.configure.outputs.version }}"
echo "VERSION=${VERSION}" >> "$GITHUB_OUTPUT"
- name: Checkout
uses: actions/checkout@v6
- name: Set up Git
run: |
git config --global user.name "Seungho Henry Park"
git config --global user.email "shs.park@samsung.com"
- name: Download tarball
uses: actions/download-artifact@v4
with:
name: changelogs
- name: Update the changelog file
run: |
cp changelog infra/debian/circle-interpreter/
- name: Create PR branch and commit changelog
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
BRANCH=auto/update-cirint-changelog-${BR_VERSION}
git checkout -b "${BRANCH}"
git add infra/debian/circle-interpreter/changelog
git commit -m "[infra/debian] Update changelog for circle-interpreter" \
-m "This updates the changelog for circle-interpreter_${{ steps.prepare.outputs.VERSION }}." \
-m "It is auto-generated PR from github workflow." \
-m "" \
-m "ONE-DCO-1.0-Signed-off-by: Seungho Henry Park <shs.park@samsung.com>"
git push origin "${BRANCH}"
- name: Create PR
env:
GH_TOKEN: ${{ secrets.SHSPARK_GITHUB_TOKEN }}
run: |
BRANCH=auto/update-cirint-changelog-${BR_VERSION}
gh pr create \
--title "[infra/debian] Update changelog for circle-interpreter" \
--body "$(cat <<EOF
This updates the changelog for circle-interpreter_${{ steps.prepare.outputs.VERSION }}.
This PR includes updated changelog after successful debian build.
It is auto-generated PR from github workflow.
ONE-DCO-1.0-Signed-off-by: Seungho Henry Park <shs.park@samsung.com>
EOF
)" \
--head "${BRANCH}" \
--base "master"
================================================
FILE: .github/workflows/pub-onert-pypi.yml
================================================
name: Publish onert to pypi
on:
pull_request:
branches: [ master ]
paths:
- '.github/workflows/pub-onert-pypi.yml'
- 'runtime/infra/python/**'
- '!**/*.md'
workflow_dispatch:
inputs:
official:
description: 'Official release'
required: true
type: boolean
default: false
jobs:
build:
if: github.repository_owner == 'Samsung'
strategy:
matrix:
python-version: [ '3.10', '3.11', '3.12' ]
arch: [ 'x86_64', 'aarch64' ]
include:
- arch: x86_64
runner: one-x64-linux
image: samsungonedev.azurecr.io/pypa/manylinux_2_28_x86_64
- arch: aarch64
runner: one-arm-linux
image: samsungonedev.azurecr.io/pypa/manylinux_2_28_aarch64
fail-fast: false
runs-on: ${{ matrix.runner }}
container:
image: ${{ matrix.image }}
env:
BUILD_TYPE: release
OPTIONS: "-DENABLE_TEST=OFF -DBUILD_ARMCOMPUTE=OFF"
# Set env to decide package name: refer runtime/infra/python/wheel_target_hook.py
PLATFORM: ${{ matrix.arch }}
GLIBC_VERSION: "2.28"
steps:
- name: Checkout
uses: actions/checkout@v6
- name: Restore externals cache
uses: actions/cache/restore@v4
with:
path: runtime/externals
key: external-onert-jammy-${{ hashFiles('runtime/infra/cmake/packages/**/*.cmake') }}
restore-keys: |
external-onert-jammy-
- name: Install uv
uses: astral-sh/setup-uv@v7
with:
version: "0.9.10"
python-version: "${{ matrix.python-version }}"
# For flatc build
- name: Install glibc-static
run: |
yum install -y glibc-static
- name: Build
run: |
uv run --python "${{ matrix.python-version }}" make -f Makefile.template configure build install
# Pre-release build
# 1) Release branch test build
# 2) PR build
# 3) Main branch (develop branch) build
- name: Pre-release packaging
if: github.event.inputs.official == 'false' || github.event_name == 'pull_request' || github.ref_name == 'master'
run: |
uv version "$(uv version --short --project runtime)-dev$(date -u "+%y%m%d")" --project runtime --python "${{ matrix.python-version }}"
- name: Build package
run: |
uv build --wheel --project runtime --python "${{ matrix.python-version }}"
- name: Upload artifacts
uses: actions/upload-artifact@v4
with:
name: onert-wheel-python${{ matrix.python-version }}-${{ matrix.arch }}
path: runtime/dist/*.whl
publish-to-pypi:
needs: [ build ]
if: github.repository_owner == 'Samsung' && github.event_name != 'pull_request'
runs-on: ubuntu-22.04
environment:
name: pypi
url: https://pypi.org/p/onert
permissions:
id-token: write # IMPORTANT: mandatory for trusted publishing
steps:
- name: "Download all the dists"
uses: actions/download-artifact@v4
with:
pattern: onert-wheel-*
path: "./dist/"
merge-multiple: true # download to 'dist/' directory, not individual directories
- name: "Publish distribution to PyPI"
uses: pypa/gh-action-pypi-publish@release/v1
================================================
FILE: .github/workflows/pub-onnx2circle-launchpad.yml
================================================
name: Publish onnx2circle to Launchpad
on:
# TODO turn on schedule
#schedule:
# # 05:00 AM (KST, UTC+9:00) Mon-Fri
# - cron: '00 20 * * 0-4'
workflow_dispatch:
inputs:
o2c_version:
description: 'The version of onnx2circle'
required: true
default: '0.4.0'
o2c_description:
description: 'Description of changelog for onnx2circle'
required: true
deb_fullname:
description: 'Full name of Debian package author'
required: false
default: 'On-device AI developers'
deb_email:
description: 'Email address of Debian package author'
required: false
default: 'nnfw@samsung.com'
is_release:
description: 'Is this a release version?
Set to false to append date-based subversion.
(true/false)'
required: false
default: 'false'
defaults:
run:
shell: bash
# Cancel previous running jobs when pull request is updated
concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
jobs:
configure:
if: github.repository_owner == 'Samsung'
name: Set current date and time
runs-on: ubuntu-latest
outputs:
version: ${{ steps.set-datetime.outputs.version }}
br_version: ${{ steps.set-datetime.outputs.br_version }}
steps:
- name: Set date and time
id: set-datetime
run: |
base_version="${{ inputs.o2c_version }}"
is_release="${{ inputs.is_release }}"
if [[ "$is_release" == "true" ]]; then
version="${base_version}"
br_version="${base_version}"
else
release_date=$(date +%Y%m%d%H%M)
version="${base_version}~${release_date}"
br_version="${base_version}-${release_date}"
fi
{
echo "version=${version}"
echo "br_version=${br_version}"
} >> "$GITHUB_OUTPUT"
debian-release:
needs: configure
strategy:
matrix:
ubuntu_code: [ focal, jammy, noble ]
name: onnx2circle ubuntu ${{ matrix.ubuntu_code }}
runs-on: ubuntu-latest
container:
image: nnfw/circle-mlir-build:${{ matrix.ubuntu_code }}
options: --user root
credentials:
username: ${{ secrets.NNFW_DOCKER_USERNAME }}
password: ${{ secrets.NNFW_DOCKER_TOKEN }}
env:
O2C_PREFIX: o2c
O2C_BUILDTYPE: Release
steps:
- name: Prepare, set distro versions
id: prepare
run: |
VERSION="${{ needs.configure.outputs.version }}~${{ matrix.ubuntu_code }}"
changes_file="onnx2circle_${VERSION}_source.changes"
tarball_file="onnx2circle_${VERSION}.orig.tar.xz"
{
echo "VERSION=${VERSION}"
echo "changes_file=${changes_file}"
echo "tarball_file=${tarball_file}"
} >> "$GITHUB_OUTPUT"
- name: Install circle-interpreter
run: |
add-apt-repository ppa:circletools/nightly
apt update
apt install circle-interpreter
- name: Checkout
uses: actions/checkout@v6
# NOTE Docker image has pre-installed submodules in /workdir
# NOTE Docker image has pre-installed python packages
- name: Configure
run: |
source /workdir/venv/bin/activate
cd circle-mlir
Python3_ROOT_DIR=/workdir/venv/bin cmake -B build/${{ env.O2C_BUILDTYPE }} -S ./ \
-DCMAKE_INSTALL_PREFIX=build/${{ env.O2C_BUILDTYPE }}.install \
-DCMAKE_BUILD_TYPE=${{ env.O2C_BUILDTYPE }} \
-DCIRCLE_MLIR_WORKDIR=/workdir
- name: Build, test & install
env:
ONE_COMPILER_ROOT: /usr/share/circletools
run: |
source /workdir/venv/bin/activate
cd circle-mlir
cmake --build build/${{ env.O2C_BUILDTYPE }} -j4
CTEST_OUTPUT_ON_FAILURE=1 cmake --build build/${{ env.O2C_BUILDTYPE }} --verbose -- test
cmake --build build/${{ env.O2C_BUILDTYPE }} -j4 -- install
- name: Gather files
run: |
cd circle-mlir
mkdir -p ${{ env.O2C_PREFIX }}
cp -v build/${{ env.O2C_BUILDTYPE }}.install/bin/onnx2circle ./${{ env.O2C_PREFIX }}/.
- name: Update changelog
run: |
cd circle-mlir/${{ env.O2C_PREFIX }}
cp -rf ../infra/debian/onnx2circle ./debian
export DEBFULLNAME="${{ inputs.deb_fullname }}"
export DEBEMAIL="${{ inputs.deb_email }}"
dch -v "${{ steps.prepare.outputs.VERSION }}" \
--distribution "${{ matrix.ubuntu_code }}" \
"${{ inputs.o2c_description }}" -b
- name: Create original tarball
run: |
cd circle-mlir
tar -caf ${{ steps.prepare.outputs.tarball_file }} ${{ env.O2C_PREFIX }}
- name: Conditionally install cmake for debuild
run: |
if [ "${{ matrix.ubuntu_code }}" = "focal" ]; then
echo "Installing cmake for focal"
apt update
apt install -y cmake
fi
- name: Signing with debuild and debsign
run: |
cd circle-mlir/${{ env.O2C_PREFIX }}
rm -rf ~/.gnupg
echo -n "${{ secrets.GPG_NNFW_SIGNING_KEY }}" | base64 --decode | gpg --import
# get fingerprint
FPR=$(gpg --list-keys --with-colons | awk -F: '$1 == "fpr" { print $10; exit }')
echo "$FPR:6:" | gpg --import-ownertrust
debuild -S -us -uc
debsign "-k${FPR}" ../onnx2circle_*.changes
- name: Upload to Launchpad
run: |
cd circle-mlir
mkdir -p ~/.ssh
echo "${{ secrets.LAUNCHPAD_NNFW_PRIVATE_KEY }}" > ~/.ssh/id_rsa
chmod 600 ~/.ssh/id_rsa
dput ppa:circletools/nightly ${{ steps.prepare.outputs.changes_file }}
- name: Upload artifact, onnx2circle
uses: actions/upload-artifact@v4
with:
name: onnx2circle_${{ steps.prepare.outputs.VERSION }}
retention-days: 3
path: |
circle-mlir/${{ steps.prepare.outputs.tarball_file }}
create-changelog-artifact:
needs: [ configure, debian-release ]
if: ${{ success() && github.ref == 'refs/heads/master' }}
runs-on: ubuntu-latest
env:
DEFAULT_DISTRO: jammy
steps:
- name: Download tarball, ${{ env.DEFAULT_DISTRO }}
uses: actions/download-artifact@v4
with:
name: onnx2circle_${{ needs.configure.outputs.version }}~${{ env.DEFAULT_DISTRO }}
- name: Copy changelogs
run: |
mkdir changelogs
mkdir ${{ env.DEFAULT_DISTRO }}
tar -axf onnx2circle_${{ needs.configure.outputs.version }}~${{ env.DEFAULT_DISTRO }}.orig.tar.xz \
-C ${{ env.DEFAULT_DISTRO }}
cp ${{ env.DEFAULT_DISTRO }}/o2c/debian/changelog changelogs/changelog
- name: Upload artifact, changelogs
uses: actions/upload-artifact@v4
with:
name: changelogs
retention-days: 3
path: |
changelogs
# TODO implement the create-pr-on-success job
create-pr-on-success:
needs: [ configure, create-changelog-artifact ]
if: ${{ success() && github.ref == 'refs/heads/master' }}
runs-on: ubuntu-latest
env:
BR_VERSION: ${{ needs.configure.outputs.br_version }}
permissions:
contents: write
pull-requests: write
steps:
- name: Prepare, set distro versions
id: prepare
run: |
VERSION="${{ needs.configure.outputs.version }}"
echo "VERSION=${VERSION}" >> "$GITHUB_OUTPUT"
- name: Checkout
uses: actions/checkout@v6
- name: Set up Git
run: |
git config --global user.name "Seungho Henry Park"
git config --global user.email "shs.park@samsung.com"
- name: Download tarball
uses: actions/download-artifact@v4
with:
name: changelogs
- name: Update the changelog file
run: |
cp changelog circle-mlir/infra/debian/onnx2circle/
- name: Create PR branch and commit changelog
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
BRANCH=auto/update-o2c-changelog-${BR_VERSION}
git checkout -b "${BRANCH}"
git add circle-mlir/infra/debian/onnx2circle/changelog
git commit -m "[circle-mlir/infra] Update changelog for onnx2circle" \
-m "This updates the changelog for onnx2circle_${{ steps.prepare.outputs.VERSION }}." \
-m "It is auto-generated PR from github workflow." \
-m "" \
-m "ONE-DCO-1.0-Signed-off-by: Seungho Henry Park <shs.park@samsung.com>"
git push origin "${BRANCH}"
- name: Create PR
env:
GH_TOKEN: ${{ secrets.SHSPARK_GITHUB_TOKEN }}
run: |
BRANCH=auto/update-o2c-changelog-${BR_VERSION}
gh pr create \
--title "[circle-mlir/infra] Update changelog for onnx2circle" \
--body "$(cat <<EOF
This updates the changelog for onnx2circle_${{ steps.prepare.outputs.VERSION }}.
This PR includes updated changelog after successful debian build.
It is auto-generated PR from github workflow.
ONE-DCO-1.0-Signed-off-by: Seungho Henry Park <shs.park@samsung.com>
EOF
)" \
--head "${BRANCH}" \
--base "master"
================================================
FILE: .github/workflows/pub-tools-mec-pypi.yml
================================================
name: Publish model-explorer-circle to pypi
on:
workflow_dispatch:
jobs:
build-and-publish:
runs-on: ubuntu-latest
permissions:
id-token: write
steps:
- name: Checkout
uses: actions/checkout@v6
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: '3.10'
- name: Install build dependencies
run: python -m pip install -U setuptools wheel build
- name: Build
run: |
cd tools/model_explorer_circle/
python -m build .
- name: Publish
uses: pypa/gh-action-pypi-publish@release/v1
with:
packages-dir: tools/model_explorer_circle/dist/
skip-existing: true
================================================
FILE: .github/workflows/run-circle-mlir-build.yml
================================================
name: Run Circle-MLIR Ubuntu Build
on:
push:
branches:
- master
- release/*
paths:
- '.github/workflows/run-circle-mlir-build.yml'
- 'circle-mlir/**'
- '!circle-mlir/infra/debian/**'
- '!circle-mlir/infra/docker/**'
- '!circle-mlir/externals/**'
pull_request:
branches:
- master
- release/*
paths:
- '.github/workflows/run-circle-mlir-build.yml'
- 'circle-mlir/**'
- '!circle-mlir/infra/debian/**'
- '!circle-mlir/infra/docker/**'
- '!circle-mlir/externals/**'
defaults:
run:
shell: bash
# Cancel previous running jobs when pull request is updated
concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
jobs:
prepare:
if: github.repository_owner == 'Samsung'
runs-on: ubuntu-latest
outputs:
run_matrix: ${{ steps.set-matrix.outputs.run_matrix }}
steps:
- name: set matrix
id: set-matrix
env:
EVENT_NAME: ${{ github.event_name }}
run: |
JSON='{'
if [[ "$EVENT_NAME" == "push" ]]; then
JSON+='"type": ["Debug"],'
JSON+='"ubuntu_code": ["jammy"]'
elif [[ "$EVENT_NAME" == "pull_request" ]]; then
JSON+='"type": ["Debug", "Release"],'
JSON+='"ubuntu_code": ["focal", "jammy", "noble"],'
JSON+='"exclude": [{"ubuntu_code": "focal", "type": "Debug"},'
JSON+='{"ubuntu_code": "noble", "type": "Debug"}]'
else
exit 1
fi
JSON+='}'
echo "run_matrix=$JSON" >> "$GITHUB_OUTPUT"
circle-mlir-test:
needs: [ prepare ]
strategy:
matrix: ${{ fromJSON(needs.prepare.outputs.run_matrix) }}
runs-on: one-x64-linux
container:
image: nnfw/circle-mlir-build:${{ matrix.ubuntu_code }}
options: --user root
name: circle-mlir ${{ matrix.ubuntu_code }} ${{ matrix.type }} test
steps:
- name: Install circle-interpreter
run: |
add-apt-repository ppa:circletools/nightly
apt update
apt install circle-interpreter
- name: Checkout
uses: actions/checkout@v6
# NOTE Docker image has pre-installed submodules in /workdir
# NOTE Docker image has pre-installed python packages
- name: Configure
run: |
source /workdir/venv/bin/activate
cd circle-mlir
Python3_ROOT_DIR=/workdir/venv/bin cmake -B build/${{ matrix.type }} -S ./ \
-DCMAKE_INSTALL_PREFIX=build/${{ matrix.type }}.install \
-DCMAKE_BUILD_TYPE=${{ matrix.type }} \
-DCIRCLE_MLIR_WORKDIR=/workdir
- name: Build, test & install
env:
ONE_COMPILER_ROOT: /usr/share/circletools
run: |
source /workdir/venv/bin/activate
cd circle-mlir
cmake --build build/${{ matrix.type }} -j4
CTEST_OUTPUT_ON_FAILURE=1 cmake --build build/${{ matrix.type }} --verbose -- test
cmake --build build/${{ matrix.type }} -j4 -- install
================================================
FILE: .github/workflows/run-onecc-build.yml
================================================
name: Run ONECC Ubuntu Build
on:
push:
branches:
- master
- release/*
paths:
- '.github/workflows/run-onecc-build.yml'
- 'nnas'
- 'nncc'
- 'compiler/**'
- 'infra/cmake/**'
- 'infra/nncc/**'
- 'nnpackage/schema/**'
- 'res/**'
- '!**/*.md'
pull_request:
branches:
- master
- release/*
paths:
- '.github/workflows/run-onecc-build.yml'
- 'nnas'
- 'nncc'
- 'compiler/**'
- 'infra/cmake/**'
- 'infra/nncc/**'
- 'nnpackage/schema/**'
- 'res/**'
- '!**/*.md'
defaults:
run:
shell: bash
# Cancel previous running jobs when pull request is updated
concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
jobs:
onecc-test:
if: github.repository_owner == 'Samsung' && !contains(github.event.pull_request.labels.*.name, 'PR/NO TEST')
strategy:
matrix:
type: ['Debug', 'Release']
# TODO enable focal when possible
# refer https://github.com/Samsung/ONE/issues/16196
ubuntu_code: ['jammy', 'noble']
runs-on: ubuntu-latest
container:
image: nnfw/one-devtools:${{ matrix.ubuntu_code }}
options: --user root
env:
NNCC_WORKSPACE : build
NNCC_INSTALL_PREFIX : install
name: onecc ubuntu ${{ matrix.ubuntu_code }} ${{ matrix.type }} test
steps:
- name: Checkout
uses: actions/checkout@v6
- name: Install onnx2circle
run: |
apt update
apt-get -qqy install software-properties-common
add-apt-repository ppa:circletools/nightly
apt-get -qqy install onnx2circle
- name: Install python3.10 for focal
if: matrix.ubuntu_code == 'focal'
run: |
add-apt-repository ppa:deadsnakes/ppa
apt-get -qqy install python3.10 python3.10-dev python3.10-venv
python3.10 -m ensurepip --upgrade
- name: Restore externals cache
uses: actions/cache/restore@v4
id: externals-cache
with:
path: externals
key: external-onecc-${{ hashFiles('infra/cmake/packages/**/*.cmake') }}
restore-keys: |
external-onecc-
external-
- name: Restore overlay cache
uses: actions/cache/restore@v4
id: overlay-cache
with:
path: ${{ env.NNCC_WORKSPACE }}/overlay
key: overlay-onecc-${{ matrix.ubuntu_code }}-${{ hashFiles('compiler/common-artifacts/CMakeLists.txt') }}-${{ hashFiles('infra/cmake/packages/**/*.cmake') }}
- name: Get month for ccache cache key
id: get-month
run: echo "key_month=$(date +%y%m)" >> "$GITHUB_OUTPUT"
- name: Restore ccache cache
uses: actions/cache/restore@v4
id: ccache-cache
with:
path: ~/.cache/ccache
key: ccache-onecc-${{ matrix.ubuntu_code }}-${{ matrix.type }}-${{ steps.get-month.outputs.key_month }}
restore-keys: |
ccache-onecc-${{ matrix.ubuntu_code }}-${{ matrix.type }}
- name: Build
run: |
./nncc configure -DENABLE_STRICT_BUILD=ON -DCMAKE_BUILD_TYPE=${{ matrix.type }} \
-DEXTERNALS_BUILD_THREADS="$(nproc)" -DCMAKE_INSTALL_PREFIX="${NNCC_INSTALL_PREFIX}"
./nncc build "-j$(nproc)"
cmake --build "${NNCC_WORKSPACE}" -- install
# Save cache on push to reduce the size of cache storage
# ccache cache: only for master branch
# overlay cache: only for master branch and Release build
# externals cache: only for master branch and Release build and jammy
- name: Save ccache cache
if: github.event_name == 'push' && github.ref_name == 'master'
uses: actions/cache/save@v4
with:
path: ~/.cache/ccache
key: ${{ steps.ccache-cache.outputs.cache-primary-key }}
- name: Save overlay cache
if: github.event_name == 'push' && github.ref_name == 'master' && matrix.type == 'Release'
uses: actions/cache/save@v4
with:
path: ${{ env.NNCC_WORKSPACE }}/overlay
key: ${{ steps.overlay-cache.outputs.cache-primary-key }}
- name: Save externals cache
if: github.event_name == 'push' && github.ref_name == 'master' && matrix.type == 'Release' && matrix.ubuntu_code == 'jammy'
uses: actions/cache/save@v4
with:
path: externals
key: ${{ steps.externals-cache.outputs.cache-primary-key }}
- name: Test(Debug)
if: matrix.type == 'Debug'
env:
LUCI_LOG : 100
run: ./nncc test
- name: Test(Release)
if: matrix.type == 'Release'
env:
NNCC_INSTALL_PATH : ${{ env.NNCC_WORKSPACE }}/${{ env.NNCC_INSTALL_PREFIX }}
run: |
./nncc test
"${NNCC_INSTALL_PATH}/bin/one-prepare-venv"
"${NNCC_INSTALL_PATH}/test/prepare_test_materials.sh"
export PATH=${PWD}/${NNCC_INSTALL_PATH}/bin:$PATH
pushd "${NNCC_INSTALL_PATH}/test"
## one-import-tf -> one-optimize -> one-quantize -> one-codegen
bash onecc_006.test
## one-import-tflite
bash onecc_014.test
## one-import-bcq
bash onecc_015.test
## one-import-onnx
bash onecc_016.test
## one-pack
bash onecc_019.test
## one-profile
bash onecc_021.test
## one-quantize
bash onecc_023.test
bash onecc_026.test
## one-infer
bash onecc_027.test
## onecc workflows
bash onecc_032.test
bash onecc_041.test
# Upload log if failed
- name: Upload log
uses: actions/upload-artifact@v4
if: failure()
env:
NNCC_INSTALL_PATH : ${{ env.NNCC_WORKSPACE }}/${{ env.NNCC_INSTALL_PREFIX }}
with:
name: fail-${{ matrix.ubuntu_code }}-${{ matrix.type }}
path: |
${{ env.NNCC_WORKSPACE }}/compiler/**/*.log
${{ env.NNCC_INSTALL_PATH }}/test/**/*.log
================================================
FILE: .github/workflows/run-onert-android-build.yml
================================================
name: Run ONERT Android Release Build
on:
push:
branches:
- master
- release/*
paths:
- '.github/workflows/run-onert-android-build.yml'
- 'nnfw'
- 'Makefile.template'
- 'runtime/**'
- '!runtime/contrib/**'
- '!runtime/infra/debian/**'
- '!runtime/infra/gbs/**'
- '!runtime/infra/python/**'
- '!**/*.md'
pull_request:
branches:
- master
- release/*
paths:
- '.github/workflows/run-onert-android-build.yml'
- 'nnfw'
- 'Makefile.template'
- 'runtime/**'
- '!runtime/contrib/**'
- '!runtime/infra/debian/**'
- '!runtime/infra/gbs/**'
- '!runtime/infra/python/**'
- '!**/*.md'
defaults:
run:
shell: bash
# Cancel previous running jobs when pull request is updated
concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
jobs:
build:
if: github.repository_owner == 'Samsung'
runs-on: one-x64-linux
container:
image: samsungonedev.azurecr.io/nnfw/one-devtools:android-sdk
options: --user root
env:
TARGET_ARCH: aarch64
TARGET_OS: android
CROSS_BUILD: 1
BUILD_TYPE: release
steps:
- name: Checkout
uses: actions/checkout@v6
- name: Restore onecc external cache
uses: actions/cache/restore@v4
with:
path: externals
key: external-onecc-${{ hashFiles('infra/cmake/packages/**/*.cmake') }}
restore-keys: |
external-onecc-
- name: Restore externals cache
uses: actions/cache/restore@v4
id: cache-externals
with:
path: runtime/externals
key: external-onert-ndk-${{ hashFiles('runtime/infra/cmake/packages/**/*.cmake') }}
restore-keys: |
external-onert-ndk-
- name: Get month for ccache cache key
id: get-month
run: echo "key_month=$(date +%y%m)" >> "$GITHUB_OUTPUT"
- name: Restore ccache cache
uses: actions/cache/restore@v4
id: cache-ccache
with:
path: ~/.cache/ccache
key: ccache-onert-android-${{ steps.get-month.outputs.key_month }}
restore-keys: |
ccache-onert-android
# Set ccache size
# Release < 100MB / Debug < 250MB
- name: Reduce ccache size
run: ccache -M 100MB
# numpy: test build
# scons: arm compute library build
- name: Install packages
run: |
pip3 install numpy
sudo apt-get update && sudo apt-get -qqy install scons
# Use NDK Default - path set by containe envrionment variable
- name: Build onert
run: |
make -f Makefile.template
# Save cache on push to reduce the size of cache storage
# ccache cache: only for master branch
# externals cache: only for master branch
- name: Save ccache cache
uses: actions/cache/save@v4
if: github.event_name == 'push' && github.ref_name == 'master'
with:
path: ~/.cache/ccache
key: ${{ steps.cache-ccache.outputs.cache-primary-key }}
- name: Save externals cache
uses: actions/cache/save@v4
if: github.event_name == 'push' && github.ref_name == 'master'
with:
path: runtime/externals
key: ${{ steps.cache-externals.outputs.cache-primary-key }}
================================================
FILE: .github/workflows/run-onert-cross-build.yml
================================================
name: Run ONERT Ubuntu Cross Build
on:
push:
branches:
- master
- release/*
paths:
- '.github/workflows/run-onert-cross-build.yml'
- 'nnfw'
- 'Makefile.template'
- 'runtime/**'
- '!runtime/contrib/**'
- '!runtime/infra/debian/**'
- '!runtime/infra/gbs/**'
- '!runtime/infra/python/**'
- '!**/*.md'
pull_request:
branches:
- master
- release/*
paths:
- '.github/workflows/run-onert-cross-build.yml'
- 'nnfw'
- 'Makefile.template'
- 'runtime/**'
- '!runtime/contrib/**'
- '!runtime/infra/debian/**'
- '!runtime/infra/gbs/**'
- '!runtime/infra/python/**'
- '!**/*.md'
defaults:
run:
shell: bash
# Cancel previous running jobs when pull request is updated
concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
jobs:
build:
if: github.repository_owner == 'Samsung'
strategy:
# Debug build test on ubuntu arm32 only
matrix:
type: [ debug, release ]
ubuntu_code: [ jammy ]
arch: [ armv7l ]
include:
- arch: armv7l
platform: arm
runs-on: one-x64-linux
container:
image: samsungonedev.azurecr.io/nnfw/one-devtools:${{ matrix.ubuntu_code }}
options: --user root
env:
TARGET_ARCH: ${{ matrix.arch }}
BUILD_TYPE: ${{ matrix.type }}
CROSS_BUILD: 1
OPTIONS: "-DBUILD_ARMCOMPUTE=OFF" # Disable arm compute library
steps:
- name: Checkout
uses: actions/checkout@v6
- name: Restore onecc external cache
uses: actions/cache/restore@v4
with:
path: externals
key: external-onecc-${{ hashFiles('infra/cmake/packages/**/*.cmake') }}
restore-keys: |
external-onecc-
- name: Restore externals cache
uses: actions/cache/restore@v4
with:
path: runtime/externals
key: external-onert-${{ matrix.ubuntu_code }}-${{ hashFiles('runtime/infra/cmake/packages/**/*.cmake') }}
restore-keys: |
external-onert-${{ matrix.ubuntu_code }}-
- name: Get month for ccache cache key
id: get-month
run: echo "key_month=$(date +%y%m)" >> "$GITHUB_OUTPUT"
- name: Restore ccache cache
uses: actions/cache/restore@v4
id: ccache-cache
with:
path: ~/.cache/ccache
key: ccache-onert-${{ matrix.ubuntu_code }}-${{ matrix.arch }}-${{ matrix.type }}-${{ steps.get-month.outputs.key_month }}
restore-keys: |
ccache-onert-${{ matrix.ubuntu_code }}-${{ matrix.arch }}-${{ matrix.type }}
- name: Download rootfs for cross build
uses: dawidd6/action-download-artifact@v7
with:
workflow: generate-rootfs.yml
branch: master
name: rootfs_${{ matrix.platform }}_${{ matrix.ubuntu_code }}
- name: Install rootfs for cross build
run: |
mkdir -p tools/cross/rootfs
tar -zxf rootfs_${{ matrix.platform }}_${{ matrix.ubuntu_code }}.tar.gz -C tools/cross/rootfs
- name: Build onert
run: |
make -f Makefile.template create-testsuite
# Save cache on push to reduce the size of cache storage
# ccache cache: only for master branch
- name: Save ccache cache
uses: actions/cache/save@v4
if: github.event_name == 'push' && github.ref_name =='master'
with:
path: ~/.cache/ccache
key: ${{ steps.ccache-cache.outputs.cache-primary-key }}
- name: Upload artifacts
uses: actions/upload-artifact@v4
if: matrix.type == 'release'
with:
name: onert-${{ matrix.arch }}-${{ matrix.ubuntu_code }}
path: Product/out/test-suite.tar.gz
retention-days: ${{ github.event_name == 'pull_request' && '3' || '7' }}
test_cross:
if: github.repository_owner == 'Samsung'
needs: build
runs-on: ubuntu-22.04
strategy:
matrix:
ubuntu_code: [ jammy ]
arch: [ armv7l ]
include:
- arch: armv7l
platform: linux/arm/v7
steps:
- name: Download artifacts
uses: actions/download-artifact@v4
with:
name: onert-${{ matrix.arch }}-${{ matrix.ubuntu_code }}
- name: Unzip artifacts
run: |
tar -xvf test-suite.tar.gz
- name: QEMU for cross build
uses: docker/setup-qemu-action@v3
- name: Run test on cross build
uses: addnab/docker-run-action@v3
with:
image: ubuntu:${{ matrix.ubuntu_code }}
shell: bash
options: |
--platform ${{ matrix.platform }}
-v ${{ github.workspace }}:/work -w /work
run: |
set -eo pipefail
./Product/out/test/onert-test unittest
./Product/out/test/onert-test unittest --unittestdir=./Product/out/nnapi-gtest
================================================
FILE: .github/workflows/run-onert-gbs-build.yml
================================================
name: Run ONERT Tizen GBS Build
on:
push:
branches:
- master
- release/*
paths:
- '.github/workflows/run-onert-gbs-build.yml'
- 'nncc'
- 'nnfw'
- 'compiler/luci/**'
- 'compiler/loco/**'
- 'compiler/logo/**'
- 'infra/cmake/**'
- 'runtime/**'
- '!runtime/infra/debian/**'
- '!runtime/infra/python/**'
- '!runtime/contrib/**'
- 'packaging/**'
- '!**.md'
pull_request:
branches:
- master
- release/*
paths:
- '.github/workflows/run-onert-gbs-build.yml'
- 'nncc'
- 'nnfw'
- 'compiler/luci/**'
- 'compiler/loco/**'
- 'compiler/logo/**'
- 'infra/cmake/**'
- 'runtime/**'
- '!runtime/infra/debian/**'
- '!runtime/infra/python/**'
- '!runtime/contrib/**'
- 'packaging/**'
- '!**.md'
defaults:
run:
shell: bash
# Cancel previous running jobs when pull request is updated
concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
jobs:
build:
if: github.repository_owner == 'Samsung'
strategy:
matrix:
arch: ['armv7l']
profile: ['tizen_9']
runs-on: ubuntu-22.04
steps:
# Install binfmt support for gbs
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
- name: Install GBS
run: |
sudo apt-get update && sudo add-apt-repository -y 'deb [trusted=yes] http://download.tizen.org/tools/latest-release/Ubuntu_22.04/ /'
sudo apt-get update && sudo apt-get -qqy install gbs
- name: Checkout
uses: actions/checkout@v6
- name: Caching GBS repository
uses: actions/cache@v4
with:
path: .gbs/local/cache
key: gbs-repo-${{ matrix.profile }}-${{ matrix.arch }}-${{ hashFiles('packaging/*.spec') }}
restore-keys: |
gbs-repo-${{ matrix.profile }}-${{ matrix.arch }}-
- name: Build
run: |
gbs -c runtime/infra/gbs/gbs.conf build -A ${{ matrix.arch }} --profile ${{ matrix.profile }} --buildroot .gbs --define 'odc_build 0'
================================================
FILE: .github/workflows/run-onert-micro-unit-tests.yml
================================================
name: Run onert-micro Unit tests
on:
push:
branches:
- master
- release/*
paths:
- 'onert-micro/**'
- '.github/workflows/run-onert-micro-unit-tests.yml'
pull_request:
branches:
- master
- release/*
types:
- opened
- synchronize
- reopened
- ready_for_review
paths:
- 'onert-micro/**'
- '.github/workflows/run-onert-micro-unit-tests.yml'
defaults:
run:
shell: bash
# Cancel previous running jobs when pull request is updated
concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
jobs:
run-onert-micro-unit-tests:
name: Run onert-micro Unit tests
runs-on: ubuntu-22.04
# Skip on draft, check on draft -> ready
if: github.repository_owner == 'Samsung' && github.event.pull_request.draft == false
steps:
- name: Install Arm GNU Toolchain (arm-none-eabi-gcc)
# Not working now
# uses: carlosperate/arm-none-eabi-gcc-action@v1
# release: '12.2.Rel1' # <-- The compiler release to use
run: sudo apt-get update && sudo apt-get install -y gcc-arm-none-eabi
- name: Checkout
uses: actions/checkout@v6
with:
# Checkout PR head commit
# Checkout Action use merge commit as default
ref: ${{ github.event.pull_request.head.sha }}
# Fetch all history and branch (default: 1)
fetch-depth: 0
- name: Build for Cortex ARM
run: |
mkdir build_arm
cd build_arm
cmake ../infra/onert-micro/ -DCMAKE_BUILD_TYPE=Release -DNOT_BUILD_EXTERNALS=0
cmake --build . --target onert_micro_arm -j1
- name: Build and Run Tests
run: |
mkdir build
cd build
cmake ../infra/onert-micro/ -DENABLE_ONERT_MICRO_TEST=1 -DENABLE_TEST=1
make "-j$(nproc)" onert_micro_execute_kernels_test
./onert-micro/eval-driver/onert-micro/src/execute/onert_micro_execute_kernels_test
================================================
FILE: .github/workflows/run-onert-native-build.yml
================================================
name: Run ONERT Ubuntu Native Build
on:
push:
branches:
- master
- release/*
paths:
- '.github/workflows/run-onert-native-build.yml'
- 'nnfw'
- 'Makefile.template'
- 'runtime/**'
- '!runtime/contrib/**'
- '!runtime/infra/debian/**'
- '!runtime/infra/gbs/**'
- '!runtime/infra/python/**'
- '!**/*.md'
pull_request:
branches:
- master
- release/*
paths:
- '.github/workflows/run-onert-native-build.yml'
- 'nnfw'
- 'Makefile.template'
- 'runtime/**'
- '!runtime/contrib/**'
- '!runtime/infra/debian/**'
- '!runtime/infra/gbs/**'
- '!runtime/infra/python/**'
- '!**/*.md'
defaults:
run:
shell: bash
# Cancel previous running jobs when pull request is updated
concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
jobs:
build:
if: github.repository_owner == 'Samsung'
strategy:
# Release build test only on non arm32 platforms
matrix:
type: [ release ]
ubuntu_code: [ jammy ]
arch: [ x86_64, aarch64 ]
include:
- arch: x86_64
runner: one-x64-linux
- arch: aarch64
runner: one-arm-linux
runs-on: ${{ matrix.runner }}
container:
# Use test image: default image is not supporting arm64 yet
image: samsungonedev.azurecr.io/nnfw/one-devtools:${{ matrix.ubuntu_code }}
options: --user root
env:
TARGET_ARCH: ${{ matrix.arch }}
BUILD_TYPE: ${{ matrix.type }}
OPTIONS: "-DBUILD_ARMCOMPUTE=OFF" # Disable arm compute library
steps:
- name: Checkout
uses: actions/checkout@v6
- name: Restore onecc external cache
uses: actions/cache/restore@v4
with:
path: externals
key: external-onecc-${{ hashFiles('infra/cmake/packages/**/*.cmake') }}
restore-keys: |
external-onecc-
- name: Restore externals cache
uses: actions/cache/restore@v4
id: external-cache
with:
path: runtime/externals
key: external-onert-${{ matrix.ubuntu_code }}-${{ hashFiles('runtime/infra/cmake/packages/**/*.cmake') }}
restore-keys: |
external-onert-${{ matrix.ubuntu_code }}-
- name: Get month for ccache cache key
id: get-month
run: echo "key_month=$(date +%y%m)" >> "$GITHUB_OUTPUT"
- name: Restore ccache cache
uses: actions/cache/restore@v4
id: ccache-cache
with:
path: ~/.cache/ccache
key: ccache-onert-${{ matrix.ubuntu_code }}-${{ matrix.arch }}-${{ matrix.type }}-${{ steps.get-month.outputs.key_month }}
restore-keys: |
ccache-onert-${{ matrix.ubuntu_code }}-${{ matrix.arch }}-${{ matrix.type }}
- name: Build onert
run: |
make -f Makefile.template
- name: Run test on native
run: |
./Product/out/test/onert-test unittest
./Product/out/test/onert-test unittest --unittestdir=./Product/out/nnapi-gtest
# Save cache on push to reduce the size of cache storage
# ccache cache: only for master branch
# externals cache: only for master branch and Release build and x86_64
- name: Save ccache cache
uses: actions/cache/save@v4
if: github.event_name == 'push' && github.ref_name =='master'
with:
path: ~/.cache/ccache
key: ${{ steps.ccache-cache.outputs.cache-primary-key }}
- name: Save externals cache
uses: actions/cache/save@v4
if: github.event_name == 'push' && github.ref_name =='master' && matrix.type =='release' && matrix.arch == 'x86_64'
with:
path: runtime/externals
key: ${{ steps.external-cache.outputs.cache-primary-key }}
================================================
FILE: .github/workflows/run-tools-mec-build.yml
================================================
name: Run tools/model-explorer-circle build
on:
push:
branches:
- master
- release/*
paths:
- '.github/workflows/run-tools-mec-build.yml'
- 'tools/model_explorer_circle/**'
- '!**/*.md'
pull_request:
branches:
- master
- release/*
paths:
- '.github/workflows/run-tools-mec-build.yml'
- 'tools/model_explorer_circle/**'
- '!**/*.md'
defaults:
run:
shell: bash
jobs:
test:
if: github.repository_owner == 'Samsung'
strategy:
matrix:
# TODO add more versions
python: ['3.10']
# TODO add more platforms
platform: [ubuntu-latest]
runs-on: ${{ matrix.platform }}
steps:
- name: Checkout
uses: actions/checkout@v6
- name: Set up Python ${{ matrix.python }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python }}
- name: Install test dependencies
run: python -m pip install --upgrade nox
- name: Test
run: |
cd tools/model_explorer_circle
python -m nox -s tests-${{ matrix.python }}
================================================
FILE: .github/workflows/run-tools-onnx-subgr-build.yml
================================================
name: Run tools/onnx-subgraph Ubuntu Build
on:
push:
branches:
- master
- release/*
paths:
- '.github/workflows/run-tools-onnx-subgr-build.yml'
- 'tools/onnx_subgraph/**'
- '!**/*.md'
pull_request:
branches:
- master
- release/*
paths:
- '.github/workflows/run-tools-onnx-subgr-build.yml'
- 'tools/onnx_subgraph/**'
- '!**/*.md'
defaults:
run:
shell: bash
# Cancel previous running jobs when pull request is updated
concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
jobs:
circle-mlir-test:
if: github.repository_owner == 'Samsung'
strategy:
matrix:
type: [ Debug, Release ]
ubuntu_code: [ jammy ]
runs-on: ubuntu-latest
container:
image: nnfw/onnx-subgraph-build:${{ matrix.ubuntu_code }}
options: --user root
name: tools/onnx-subgraph ${{ matrix.ubuntu_code }} ${{ matrix.type }} test
steps:
- name: Checkout
uses: actions/checkout@v6
- name: Configure
run: |
cd tools/onnx_subgraph
cmake -B build/${{ matrix.type }} -S ./ \
-DCMAKE_INSTALL_PREFIX=build/${{ matrix.type }}.install \
-DCMAKE_BUILD_TYPE=${{ matrix.type }}
# TODO enable test
- name: Build
run: |
cd tools/onnx_subgraph
cmake --build build/${{ matrix.type }}
================================================
FILE: .gitignore
================================================
# Working Path
/Product
/build
# Compiled python3 code cache
**/__pycache__
*.pyc
# Test report
/report
# doxygen
/doxygen
# Generated by format checker
/format.patch
# External directory
/externals
# Coverage
/gcov
/coverage
# Makefile
/Makefile
# Python environment
**/.venv
# Root uv.lock
/uv.lock
# Debian folder for multiple packages
/debian
================================================
FILE: .mailmap
================================================
Aleksei Grebenkin <a.grebenkin@samsung.com>
Andrew Tischenko <a.tischenko@partner.samsung.com>
Andrey Shedko <a.shedko@samsung.com>
Andrey Shedko <a.shedko@samsung.com> Андрей Шедько/AI Tools Lab /SRR/Assistant Engineer/삼성전자 <a.shedko@partner.samsung.com>
Andrey Shedko <a.shedko@samsung.com> Андрей Шедько/AI Tools Lab /SRR/Assistant Engineer/삼성전자 <a.shedko@samsung.com>
Cheongyo Bahk <ch.bahk@samsung.com>
Chunseok Lee <chunseok.lee@samsung.com>
Denis Maksimenko <d.maksimenko@partner.samsung.com>
Devansh Bansal <b.devansh@samsung.com>
Dilshodzhon Poshshoev <d.poshshoev@samsung.com>
Dmitry Mozolev <d.mozolev@samsung.com>
Efimov Alexander <a.efimov@samsung.com>
Hanjoung Lee <hanjoung.lee@samsung.com>
Hyeongseok Oh <hseok82.oh@samsung.com>
HyungGyu Choi <hk0110.choi@samsung.com>
Hyunsik Yoon <hyunsik.yoon@samsung.com>
Inki Dae <inki.dae@samsung.com>
Ivan Ivanovich Kulagin <i.kulagin@samsung.com>
Ivan Vagin <ivan.vagin@samsung.com>
Jiseob Jang <jiseob.jang@samsung.com>
Jiyoung Yun <jy910.yun@samsung.com>
Jonghyun Park <jh1302.park@samsung.com>
Junghyun Kim <jh0822.kim@samsung.com>
Kshitiz Bansal <kshitiz.b@samsung.com>
Myungjae Lee <mjae.lee@samsung.com>
Pavel Fattakhov <p.fattakhov@partner.samsung.com>
Pavel Ilyutchenko <p.iliutchenk@samsung.com>
Pavel Ilyutchenko <p.iliutchenk@samsung.com> Павел Ильютченко/AI Tools Lab /SRR/Assistant Engineer/삼성전자 <p.iliutchenk@partner.samsung.com>
Pavel Ilyutchenko <p.iliutchenk@samsung.com> Павел Ильютченко/AI Tools Lab /SRR/Assistant Engineer/삼성전자 <p.iliutchenk@samsung.com>
Prasanna R <prasanna.r@samsung.com>
Praveen Doreswamy Naidu <praveen.dn@samsung.com>
Roman Rusyaev <r.rusyaev@samsung.com>
Saehie Park <saehie.park@samsung.com>
Sanggyu Lee <sg5.lee@samsung.com>
Sangjung Woo <sangjung.woo@samsung.com>
Sangmin Seo <sangmin7.seo@samsung.com>
Saulo Aldighieri Moraes <s.moraes@samsung.com>
Saurav Babu <saurav.babu@samsung.com>
Seok Namkoong <sk.namkoong@samsung.com>
Seongwoo Chae <sw4670.chae@samsung.com>
Sergei Barannikov <s.barannikov@samsung.com>
Sergei Chicherin <s.chicherin@samsung.com>
Sergey Vostokov <s.vostokov@samsung.com>
Shubham Gupta <shub98.gupta@samsung.com>
Siva Sai Vaddipati <siva.sai@samsung.com>
Sujin Kim <sjsujin.kim@samsung.com>
Sung-Jae Lee <sj925.lee@samsung.com>
Sungjin Choi <lotieye.choi@samsung.com>
Tanuj Tekriwal <tanuj.tekri@samsung.com>
Timur Otellovich Ablyazimov <t.ablyazimov@samsung.com>
Vishal Keshav <vishal.k1@samsung.com>
Vitaliy Cherepanov <v.cherepanov@samsung.com>
Vladimir Plazun <v.plazun@samsung.com>
Vladimir Plazun <v.plazun@samsung.com> Vladimir Plazun/AI Tools Lab/Engineer/삼성전자 <v.plazun@partner.samsung.com>
Vladimir Plazun <v.plazun@samsung.com> Vladimir Plazun/AI Tools Lab /SRR/Engineer/삼성전자 <v.plazun@partner.samsung.com>
Yongseop Kim <yons.kim@samsung.com>
Yuri Novikov <y.novikov@partner.samsung.com>
================================================
FILE: .pre-commit-config.yaml
================================================
exclude: .*/contrib/.*
# for pre-commit 4.4.0
repos:
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: 'v6.0.0'
hooks:
- name: 'Check file end line'
id: end-of-file-fixer
# exclude .svg files
exclude: \.(svg)$
- name: 'Check trailing whitespace'
id: trailing-whitespace
- name: 'Check executable files'
id: check-executables-have-shebangs
exclude:
(?x)^(
.*/__init__.py$|
.*/nnc/utils/.*\.py$|
runtime/tests/scripts/models/.*/config\.sh$|
res/TensorFlowTests/.*\.py$
)
- repo: https://github.com/rhysd/actionlint
rev: 'v1.7.9'
# https://github.com/rhysd/actionlint/blob/v1.7.9/docs/usage.md#pre-commit
hooks:
- name: 'Check CI workflows with actionlint'
id: actionlint
- repo: https://github.com/google/yapf
rev: 'v0.43.0'
hooks:
- name: 'Check CI Python scripts with yapf'
id: yapf
types: [file] # override default type check exceptional case
# yapf pre-commit cannot handle exceptional case:
# one-cmds don't have '.py' extension.
# onecc-docker don't have '.py' extension.
# visq don't have '.py' extension.
# fm-equalize doesn't have '.py' extension.
files:
(?x)^(
.*\.py$|
compiler/one-cmds/[^(\./)]*$|
compiler/onecc-docker/onecc-docker$|
compiler/visq/visq$|
compiler/fm-equalize/fm-equalize$
)
# Ignore shell script: one-prepare-venv
# Exclude files in .yapfignore - yapf's pre-commit issue
exclude:
(?x)^(
compiler/_deprecated/.*|
compiler/one-cmds/one-prepare-venv|
runtime/3rdparty/.*|
runtime/contrib/.*|
runtime/tests/nnapi/nnapi_test_generator/.*|
runtime/tests/nnapi/specs/.*
)$
- repo: https://github.com/pre-commit/mirrors-clang-format
rev: 'v16.0.6'
hooks:
- name: 'Check C/C++ code with clang-format'
id: clang-format
types_or: [file] # override default type check to cl files
files: ((\.c[cl]?)|(\.cpp)|(\.h(pp)?))$
exclude:
(?x)^(
compiler/_deprecated/.*|
runtime/contrib/.*
)
- repo: local
hooks:
- name: 'Check copyright headers'
id: copyright-check
entry: infra/git-hooks/copyright-check.sh
language: script
pass_filenames: true
types: [file]
files: \.(c[cl]?|cpp|h(pp)?)$
# Ignore 3rd-party code
exclude:
(?x)^(
.*/NeuralNetworks.h|
onert-micro/externals/.*|
runtime/3rdparty/.*|
runtime/tests/nnapi/.*
)
================================================
FILE: .readthedocs.yml
================================================
# .readthedocs.yml
# Read the Docs configuration file
# See https://docs.readthedocs.io/en/stable/config-file/v2.html for details
# Required
version: 2
# Set the OS, Python version and other tools you might need
build:
os: ubuntu-lts-latest
tools:
python: "3"
# Build documentation in the docs/ directory with Sphinx
sphinx:
builder: html
configuration: docs/conf.py
fail_on_warning: false
# Optionally build your docs in additional formats such as PDF
formats:
- pdf
# Optionally set the version of Python and requirements required to build your docs
python:
install:
- requirements: docs/requirements.txt
================================================
FILE: .style.yapf
================================================
[style]
BASED_ON_STYLE = pep8
COLUMN_LIMIT = 90
BLANK_LINE_BEFORE_NESTED_CLASS_OR_DEF = False
================================================
FILE: .yapfignore
================================================
runtime/3rdparty/**/*
runtime/tests/nnapi/nnapi_test_generator/**/*
runtime/tests/nnapi/specs/**/*
================================================
FILE: CONTRIBUTORS
================================================
Aleksei Grebenkin <a.grebenkin@samsung.com>
Andrew Tischenko <a.tischenko@partner.samsung.com>
Andrey Shedko <a.shedko@samsung.com>
Cheongyo Bahk <ch.bahk@samsung.com>
Chunseok Lee <chunseok.lee@samsung.com>
Denis Maksimenko <d.maksimenko@partner.samsung.com>
Devansh Bansal <b.devansh@samsung.com>
Dilshodzhon Poshshoev <d.poshshoev@samsung.com>
Dmitry Mozolev <d.mozolev@samsung.com>
Efimov Alexander <a.efimov@samsung.com>
Hanjoung Lee <hanjoung.lee@samsung.com>
Hyeongseok Oh <hseok82.oh@samsung.com>
HyungGyu Choi <hk0110.choi@samsung.com>
Hyunsik Yoon <hyunsik.yoon@samsung.com>
Inki Dae <inki.dae@samsung.com>
Ivan Ivanovich Kulagin <i.kulagin@samsung.com>
Ivan Vagin <ivan.vagin@samsung.com>
Jiseob Jang <jiseob.jang@samsung.com>
Jiyoung Yun <jy910.yun@samsung.com>
Jonghyun Park <jh1302.park@samsung.com>
Junghyun Kim <jh0822.kim@samsung.com>
Kshitiz Bansal <kshitiz.b@samsung.com>
Myungjae Lee <mjae.lee@samsung.com>
Pavel Fattakhov <p.fattakhov@partner.samsung.com>
Pavel Ilyutchenko <p.iliutchenk@samsung.com>
Prasanna R <prasanna.r@samsung.com>
Praveen Doreswamy Naidu <praveen.dn@samsung.com>
Roman Rusyaev <r.rusyaev@samsung.com>
Saehie Park <saehie.park@samsung.com>
Sanggyu Lee <sg5.lee@samsung.com>
Sangjung Woo <sangjung.woo@samsung.com>
Sangmin Seo <sangmin7.seo@samsung.com>
Saulo Aldighieri Moraes <s.moraes@samsung.com>
Saurav Babu <saurav.babu@samsung.com>
Seok Namkoong <sk.namkoong@samsung.com>
Seongwoo Chae <sw4670.chae@samsung.com>
Sergei Barannikov <s.barannikov@samsung.com>
Sergei Chicherin <s.chicherin@samsung.com>
Sergey Vostokov <s.vostokov@samsung.com>
Shubham Gupta <shub98.gupta@samsung.com>
Siva Sai Vaddipati <siva.sai@samsung.com>
Sujin Kim <sjsujin.kim@samsung.com>
Sung-Jae Lee <sj925.lee@samsung.com>
Sungjin Choi <lotieye.choi@samsung.com>
Tanuj Tekriwal <tanuj.tekri@samsung.com>
Timur Otellovich Ablyazimov <t.ablyazimov@samsung.com>
Vishal Keshav <vishal.k1@samsung.com>
Vitaliy Cherepanov <v.cherepanov@samsung.com>
Vladimir Plazun <v.plazun@samsung.com>
Yongseop Kim <yons.kim@samsung.com>
Yuri Novikov <y.novikov@partner.samsung.com>
================================================
FILE: COPYRIGHT
================================================
Copyright (c) 2020 Samsung Electronics Co., Ltd. & Contributors All Rights Reserved.
================================================
FILE: LICENSE
================================================
This file provides full text of licenses used in this project
- Apache Licence 2.0
- MIT
- BSD-2-Clause
- BSD 3-Clause
- Mozilla Public License 2.0
...............................................................................
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:
(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and
(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and
(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.
You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.
END OF TERMS AND CONDITIONS
APPENDIX: How to apply the Apache License to your work.
To apply the Apache License to your work, attach the following
boilerplate notice, with the fields enclosed by brackets "[]"
replaced with your own identifying information. (Don't include
the brackets!) The text should be enclosed in the appropriate
comment syntax for the file format. We also recommend that a
file or class name and description of purpose be included on the
same "printed page" as the copyright notice for easier
identification within third-party archives.
Copyright [yyyy] [name of copyright owner]
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
...............................................................................
The MIT License
Copyright (c) <year> <copyright holder>
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to
deal in the Software without restriction, including without limitation the
rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
sell copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
.............................................................................
The BSD 2-Clause License
Copyright <year> <copyright holder>
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
1. Redistributions of source code must retain the above copyright notice, this
list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation
and/or other materials provided with the distribution.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
.............................................................................
The BSD 3-Clause License
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are
met:
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above
copyright notice, this list of conditions and the following disclaimer
in the documentation and/or other materials provided with the
distribution.
* Neither the name of Google Inc. nor the names of its
contributors may be used to endorse or promote products derived from
this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
.............................................................................
Mozilla Public License Version 2.0
1. Definitions
1.1. “Contributor”
means each individual or legal entity that creates, contributes to the
creation of, or owns Covered Software.
1.2. “Contributor Version”
means the combination of the Contributions of others (if any) used
by a Contributor and that particular Contributor’s Contribution.
1.3. “Contribution”
means Covered Software of a particular Contributor.
1.4. “Covered Software”
means Source Code Form to which the initial Contributor has
attached the notice in Exhibit A, the Executable Form of such Source
Code Form, and Modifications of such Source Code Form, in each
case including portions thereof.
1.5. “Incompatible With Secondary Licenses”
means
a. that the initial Contributor has attached the notice described in
Exhibit B to the Covered Software; or
b. that the Covered Software was made available under the terms
of version 1.1 or earlier of the License, but not also under the
terms of a Secondary License.
1.6. “Executable Form”
means any form of the work other than Source Code Form.
1.7. “Larger Work”
means a work that combines Covered Software with other material,
in a separate file or files, that is not Covered Software.
1.8. “License”
means this document.
1.9. “Licensable”
means having the right to grant, to the maximum extent possible,
whether at the time of the initial grant or subsequently, any and all of
the rights conveyed by this License.
1.10. “Modifications”
means any of the following:
a. any file in Source Code Form that results from an addition to,
deletion from, or modification of the contents of Covered
Software; or
b. any new file in Source Code Form that contains any Covered
Software.
1.11. “Patent Claims” of a Contributor
means any patent claim(s), including without limitation, method,
process, and apparatus claims, in any patent Licensable by such
Contributor that would be infringed, but for the grant of the License,
by the making, using, selling, offering for sale, having made, import,
or transfer of either its Contributions or its Contributor Version.
1.12. “Secondary License”
means either the GNU General Public License, Version 2.0, the GNU
Lesser General Public License, Version 2.1, the GNU Affero General
Public License, Version 3.0, or any later versions of those licenses.
1.13. “Source Code Form”
means the form of the work preferred for making modifications.
1.14. “You” (or “Your”)
means an individual or a legal entity exercising rights under this
License. For legal entities, “You” includes any entity that controls, is
controlled by, or is under common control with You. For purposes of
this definition, “control” means (a) the power, direct or indirect, to
cause the direction or management of such entity, whether by
contract or otherwise, or (b) ownership of more than fifty percent
(50%) of the outstanding shares or beneficial ownership of such
entity.
2. License Grants and Conditions
2.1. Grants
Each Contributor hereby grants You a world-wide, royalty-free, non-
exclusive license:
a. under intellectual property rights (other than patent or trademark)
Licensable by such Contributor to use, reproduce, make available,
modify, display, perform, distribute, and otherwise exploit its
Contributions, either on an unmodified basis, with Modifications, or
as part of a Larger Work; and
b. under Patent Claims of such Contributor to make, use, sell, offer for
sale, have made, import, and otherwise transfer either its
Contributions or its Contributor Version.
2.2. Effective Date
The licenses granted in Section 2.1 with respect to any Contribution
become effective for each Contribution on the date the Contributor first
distributes such Contribution.
2.3. Limitations on Grant Scope
The licenses granted in this Section 2 are the only rights granted under this
License. No additional rights or licenses will be implied from the
distribution or licensing of Covered Software under this License.
Notwithstanding Section 2.1(b) above, no patent license is granted by a
Contributor:
a. for any code that a Contributor has removed from Covered Software;
or
b. for infringements caused by: (i) Your and any other third party’s
modifications of Covered Software, or (ii) the combination of its
Contributions with other software (except as part of its Contributor
Version); or
c. under Patent Claims infringed by Covered Software in the absence
of its Contributions.
This License does not grant any rights in the trademarks, service marks, or
logos of any Contributor (except as may be necessary to comply with the
notice requirements in Section 3.4).
2.4. Subsequent Licenses
No Contributor makes additional grants as a result of Your choice to
distribute the Covered Software under a subsequent version of this License
(see Section 10.2) or under the terms of a Secondary License (if permitted
under the terms of Section 3.3).
2.5. Representation
Each Contributor represents that the Contributor believes its Contributions
are its original creation(s) or it has sufficient rights to grant the rights to its
Contributions conveyed by this License.
2.6. Fair Use
This License is not intended to limit any rights You have under applicable
copyright doctrines of fair use, fair dealing, or other equivalents.
2.7. Conditions
Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted in
Section 2.1.
3. Responsibilities
3.1. Distribution of Source Form
All distribution of Covered Software in Source Code Form, including any
Modifications that You create or to which You contribute, must be under
the terms of this License. You must inform recipients that the Source Code
Form of the Covered Software is governed by the terms of this License,
and how they can obtain a copy of this License. You may not attempt to
alter or restrict the recipients’ rights in the Source Code Form.
3.2. Distribution of Executable Form
If You distribute Covered Software in Executable Form then:
a. such Covered Software must also be made available in Source Code
Form, as described in Section 3.1, and You must inform recipients of
the Executable Form how they can obtain a copy of such Source
Code Form by reasonable means in a timely manner, at a charge no
more than the cost of distribution to the recipient; and
b. You may distribute such Executable Form under the terms of this
License, or sublicense it under different terms, provided that the
license for the Executable Form does not attempt to limit or alter the
recipients’ rights in the Source Code Form under this License.
3.3. Distribution of a Larger Work
You may create and distribute a Larger Work under terms of Your choice,
provided that You also comply with the requirements of this License for
the Covered Software. If the Larger Work is a combination of Covered
Software with a work governed by one or more Secondary Licenses, and
the Covered Software is not Incompatible With Secondary Licenses, this
License permits You to additionally distribute such Covered Software
under the terms of such Secondary License(s), so that the recipient of the
Larger Work may, at their option, further distribute the Covered Software
under the terms of either this License or such Secondary License(s).
3.4. Notices
You may not remove or alter the substance of any license notices
(including copyright notices, patent notices, disclaimers of warranty, or
limitations of liability) contained within the Source Code Form of the
Covered Software, except that You may alter any license notices to the
extent required to remedy known factual inaccuracies.
3.5. Application of Additional Terms
You may choose to offer, and to charge a fee for, warranty, support,
indemnity or liability obligations to one or more recipients of Covered
Software. However, You may do so only on Your own behalf, and not on
behalf of any Contributor. You must make it absolutely clear that any such
warranty, support, indemnity, or liability obligation is offered by You
alone, and You hereby agree to indemnify every Contributor for any
liability incurred by such Contributor as a result of warranty, support,
indemnity or liability terms You offer. You may include additional
disclaimers of warranty and limitations of liability specific to any
jurisdiction.
4. Inability to Comply Due to Statute or Regulation
If it is impossible for You to comply with any of the terms of this License
with respect to some or all of the Covered Software due to statute, judicial
order, or regulation then You must: (a) comply with the terms of this
License to the maximum extent possible; and (b) describe the limitations
and the code they affect. Such description must be placed in a text file
included with all distributions of the Covered Software under this License.
Except to the extent prohibited by statute or regulation, such description
must be sufficiently detailed for a recipient of ordinary skill to be able to
understand it.
5. Termination
5.1. The rights granted under this License will terminate automatically if
You fail to comply with any of its terms. However, if You become
compliant, then the rights granted under this License from a particular
Contributor are reinstated (a) provisionally, unless and until such
Contributor explicitly and finally terminates Your grants, and (b) on an
ongoing basis, if such Contributor fails to notify You of the non-
compliance by some reasonable means prior to 60 days after You have
come back into compliance. Moreover, Your grants from a particular
Contributor are reinstated on an ongoing basis if such Contributor notifies
You of the non-compliance by some reasonable means, this is the first
time You have received notice of non-compliance with this License from
such Contributor, and You become compliant prior to 30 days after Your
receipt of the notice.
5.2. If You initiate litigation against any entity by asserting a patent
infringement claim (excluding declaratory judgment actions, counter-
claims, and cross-claims) alleging that a Contributor Version directly or
indirectly infringes any patent, then the rights granted to You by any and
all Contributors for the Covered Software under Section 2.1 of this
License shall terminate.
5.3. In the event of termination under Sections 5.1 or 5.2 above, all end
user license agreements (excluding distributors and resellers) which have
been validly granted by You or Your distributors under this License prior
to termination shall survive termination.
6. Disclaimer of Warranty
Covered Software is provided under this License on an “as is”
basis, without warranty of any kind, either expressed, implied,
or statutory, including, without limitation, warranties that the
Covered Software is free of defects, merchantable, fit for a
particular purpose or non-infringing. The entire risk as to the
quality and performance of the Covered Software is with You.
Should any Covered Software prove defective in any respect,
You (not any Contributor) assume the cost of any necessary
servicing, repair, or correction. This disclaimer of warranty
constitutes an essential part of this License. No use of any
Covered Software is authorized under this License except
under this disclaimer.
7. Limitation of Liability
Under no circumstances and under no legal theory, whether tort
(including negligence), contract, or otherwise, shall any
Contributor, or anyone who distributes Covered Software as
permitted above, be liable to You for any direct, indirect,
special, incidental, or consequential damages of any character
including, without limitation, damages for lost profits, loss of
goodwill, work stoppage, computer failure or malfunction, or
any and all other commercial damages or losses, even if such
party shall have been informed of the possibility of such
damages. This limitation of liability shall not apply to liability
for death or personal injury resulting from such party’s
negligence to the extent applicable law prohibits such
limitation. Some jurisdictions do not allow the exclusion or
limitation of incidental or consequential damages, so this
exclusion and limitation may not apply to You.
8. Litigation
Any litigation relating to this License may be brought only in the courts of
a jurisdiction where the defendant maintains its principal place of business
and such litigation shall be governed by laws of that jurisdiction, without
reference to its conflict-of-law provisions. Nothing in this Section shall
prevent a party’s ability to bring cross-claims or counter-claims.
9. Miscellaneous
This License represents the complete agreement concerning the subject
matter hereof. If any provision of this License is held to be unenforceable,
such provision shall be reformed only to the extent necessary to make it
enforceable. Any law or regulation which provides that the language of a
contract shall be construed against the drafter shall not be used to construe
this License against a Contributor.
10. Versions of the License
10.1. New Versions
Mozilla Foundation is the license steward. Except as provided in
Section 10.3, no one other than the license steward has the right to modify
or publish new versions of this License. Each version will be given a
distinguishing version number.
10.2. Effect of New Versions
You may distribute the Covered Software under the terms of the version of
the License under which You originally received the Covered Software, or
under the terms of any subsequent version published by the license
steward.
10.3. Modified Versions
If you create software not governed by this License, and you want to
create a new license for such software, you may create and use a modified
version of this License if you rename the license and remove any
references to the name of the license steward (except to note that such
modified license differs from this License).
10.4. Distributing Source Code Form that isIncompatible With Secondary Licenses
If You choose to distribute Source Code Form that is Incompatible With
Secondary Licenses under the terms of this version of the License, the
notice described in Exhibit B of this License must be attached.
Exhibit A - Source Code Form License Notice
This Source Code Form is subject to the terms of the Mozilla
Public License, v. 2.0. If a copy of the MPL was not distributed
with this file, You can obtain one at
https://mozilla.org/MPL/2.0/.
If it is not possible or desirable to put the notice in a particular file, then
You may include the notice in a location (such as a LICENSE file in a
relevant directory) where a recipient would be likely to look for such a
notice.
You may add additional accurate notices of copyright ownership.
Exhibit B - “Incompatible With Secondary Licenses” Notice
This Source Code Form is “Incompatible With Secondary
Licenses”, as defined by the Mozilla Public License, v. 2.0.
================================================
FILE: Makefile.template
================================================
#!/usr/bin/make -f
HOST_ARCH?=$(shell uname -m)
TARGET_ARCH?=$(shell uname -m)
BUILD_TYPE?=Debug
CROSS_BUILD?=0
HOST_OS?=linux
TARGET_OS?=linux
COVERAGE_BUILD?=0
OPTIONS?=
OPTIONS_NNCC?=
INSTALL_OPTIONS?=
# make TARGET and TYPE to lowercase
HOST_ARCH_LC=$(shell echo $(HOST_ARCH) | tr A-Z a-z)
TARGET_ARCH_LC=$(shell echo $(TARGET_ARCH) | tr A-Z a-z)
BUILD_TYPE_LC=$(shell echo $(BUILD_TYPE) | tr A-Z a-z)
# we need base name 'arm` for all arm arch
TARGET_ARCH_BASE=$(TARGET_ARCH_LC)
ifneq (,$(findstring arm64,$(TARGET_ARCH_BASE)))
TARGET_ARCH_LC=aarch64
else ifneq (,$(findstring arm,$(TARGET_ARCH_BASE)))
TARGET_ARCH_LC=armv7l
else ifneq (,$(findstring aarch64,$(TARGET_ARCH_BASE)))
TARGET_ARCH_LC=aarch64
endif
ifneq (,$(findstring android,$(TARGET_OS)))
# Android only allow aarch64 target-arch
TARGET_ARCH_LC=aarch64
endif
# the toolchain file, only for cross build
ifeq ($(CROSS_BUILD),1)
TOOLCHAIN_FILE=cmake/buildtool/cross/toolchain_$(TARGET_ARCH_LC)-$(TARGET_OS).cmake
OPTIONS+= -DCMAKE_TOOLCHAIN_FILE=infra/$(TOOLCHAIN_FILE)
OPTIONS_NNCC+= -DCMAKE_TOOLCHAIN_FILE=$(TOOLCHAIN_FILE)
endif
ifneq ($(filter create-covsuite,$(MAKECMDGOALS)),)
OPTIONS+= -DENABLE_COVERAGE=ON
else
ifeq ($(COVERAGE_BUILD),1)
OPTIONS+= -DENABLE_COVERAGE=ON
else
OPTIONS+= -DENABLE_COVERAGE=OFF
endif
endif
# Workaround to use NDK_DIR
# TODO remove NDK_DIR
ifeq ($(TARGET_OS),android)
ifneq ($(NDK_DIR),)
OPTIONS+= -DCMAKE_ANDROID_NDK=$(NDK_DIR)
endif
endif
ifneq ($(ANDROID_BUILD_TOOLS_DIR),)
OPTIONS+= -DANDROID_BUILD_TOOLS_DIR=$(ANDROID_BUILD_TOOLS_DIR)
endif
ifneq ($(ANDROID_SDK_DIR),)
OPTIONS+= -DANDROID_SDK_DIR=$(ANDROID_SDK_DIR)
endif
ifneq ($(TFLITE_MODEL_PATH),)
OPTIONS+= -DTFLITE_MODEL_PATH=$(TFLITE_MODEL_PATH)
endif
ifeq ($(HOST_OS),linux)
NPROCS?=$(shell grep -c ^processor /proc/cpuinfo)
else
NPROCS?=1
endif
ifeq ($(BUILD_TYPE_LC),release)
INSTALL_OPTIONS+= --strip
endif
WORKHOME=$(CURDIR)/Product
WORKFOLDER=$(TARGET_ARCH_LC)-$(TARGET_OS).$(BUILD_TYPE_LC)
WORKSPACE=$(WORKHOME)/$(WORKFOLDER)
BUILDTOOL_WORKSPACE=$(WORKHOME)/buildtool
INSTALL_PATH?=$(WORKSPACE)/out
OVERLAY_FOLDER?=$(WORKSPACE)/overlay
INSTALL_ALIAS=$(WORKHOME)/out
BUILDTOOL_PATH?=$(BUILDTOOL_WORKSPACE)/out
###
### Common environment variable
###
export NNFW_WORKSPACE=$(WORKSPACE)
###
### Common environment variable for compiler module
###
NNCC_FOLDER=Product/$(WORKFOLDER)/nncc
export NNCC_WORKSPACE=$(NNCC_FOLDER)
###
### Default target
###
all: prepare-buildtool prepare-nncc configure build install
###
### Command (build step)
###
prepare-buildtool: prepare_buildtool_internal
prepare-nncc: prepare_nncc_internal
configure: configure_internal
build: build_internal
install: install_all_internal
###
### Command (public)
###
# Don't install arm compute
create-package: prepare-buildtool prepare-nncc configure build install_except_acl runtime_tar_internal
create-aclpack: configure acl_tar_internal
create-testsuite: all test_suite_internal
create-covsuite: all coverage_suite_internal
clean:
rm -rf $(WORKSPACE)
distclean:
rm -rf Product
rm -rf externals
rm -rf runtime/tests/nnapi/src/generated/
###
### Command (internal)
###
prepare_buildtool_internal:
cmake -S runtime/infra/buildtool -B $(BUILDTOOL_WORKSPACE)/obj -DBUILDTOOL_PATH=$(BUILDTOOL_PATH)
cmake --build $(BUILDTOOL_WORKSPACE)/obj/ -j$(NPROCS)
prepare_nncc_internal:
ifeq (,$(findstring android,$(TARGET_OS)))
EXTERNAL_FLATC=$(BUILDTOOL_PATH)/bin/flatc ./nncc configure -DBUILD_GTEST=OFF -DENABLE_TEST=OFF -DEXTERNALS_BUILD_THREADS=$(NPROCS) -DCMAKE_BUILD_TYPE=$(BUILD_TYPE) \
-DCMAKE_INSTALL_PREFIX=$(OVERLAY_FOLDER) \
-DBUILD_WHITELIST="luci;foder;pepper-csv2vec;loco;locop;logo;logo-core;mio-circle;luci-compute;oops;hermes;hermes-std;angkor;pp;pepper-strcast;pepper-str" \
$(OPTIONS_NNCC)
./nncc build -j$(NPROCS)
cmake --install $(NNCC_FOLDER) $(INSTALL_OPTIONS)
@echo "Done prepare-nncc"
endif
configure_internal:
./nnfw configure \
-DCMAKE_BUILD_TYPE=$(BUILD_TYPE_LC) \
-DNNFW_OVERLAY_DIR=$(OVERLAY_FOLDER) \
-DEXTERNALS_BUILD_THREADS=$(NPROCS) \
$(OPTIONS)
build_internal:
./nnfw build -j $(NPROCS)
install_internal:
./nnfw install --prefix $(INSTALL_PATH) $(INSTALL_OPTIONS)
rm -rf $(INSTALL_ALIAS)
ln -s $(INSTALL_PATH) $(INSTALL_ALIAS)
runtime_tar_internal:
tar -zcf $(WORKSPACE)/onert-package.tar.gz -C $(INSTALL_PATH) lib
tar -zcf $(WORKSPACE)/onert-devel-package.tar.gz -C $(INSTALL_PATH) include/nnfw
tar -zcf $(WORKSPACE)/onert-plugin-devel-package.tar.gz -C $(INSTALL_PATH) include/onert
tar -zcf $(WORKSPACE)/onert-test-package.tar.gz -C $(INSTALL_PATH) $(shell ls $(INSTALL_PATH) -I lib -I include)
acl_tar_internal:
tar -zcf $(WORKSPACE)/onert-acl.tar.gz -C ${OVERLAY_FOLDER} lib/libarm_compute.so lib/libarm_compute_graph.so
install_acl_internal:
# Workaround to install acl for test (ignore error when there is no file to copy)
@cp $(OVERLAY_FOLDER)/lib/libarm_compute*.so $(INSTALL_ALIAS)/lib 2>/dev/null || true
install_luci_internal:
@mkdir -p $(INSTALL_ALIAS)/lib/nnfw/odc
@cp $(OVERLAY_FOLDER)/lib/libluci*.so $(INSTALL_ALIAS)/lib/nnfw/odc 2>/dev/null || true
@cp $(OVERLAY_FOLDER)/lib/libloco*.so $(INSTALL_ALIAS)/lib/nnfw/odc 2>/dev/null || true
install_except_acl: install_internal install_luci_internal
install_all_internal: install_except_acl install_acl_internal
test_suite_internal: install_all_internal
@echo "packaging test suite"
@rm -rf $(INSTALL_PATH)/test-suite.tar.gz
# TODO Divide runtime package, external library package, and test suite
@tar -zcf test-suite.tar.gz infra Product/out --dereference
@mv test-suite.tar.gz $(INSTALL_PATH)/.
coverage_suite_internal: install_all_internal
@echo "packaging test-coverage suite"
@rm -rf $(INSTALL_PATH)/coverage-suite.tar.gz
@find Product -name "*.gcno" > include_lists.txt
@pwd | grep -o '/' | wc -l > runtime/tests/scripts/build_path_depth.txt
@tar -zcf coverage-suite.tar.gz runtime/tests/scripts infra Product/out --dereference -T include_lists.txt
@rm -rf include_lists.txt runtime/tests/scripts/build_path_depth.txt
@mv coverage-suite.tar.gz $(INSTALL_PATH)/.
================================================
FILE: README.md
================================================
[](https://github.com/Samsung/ONE/releases)
[](https://nnfw.readthedocs.io/en/latest/?badge=latest)

[](https://gitter.im/Samsung/ONE)
# **ONE** (On-device Neural Engine)
<img src='docs/images/logo_original_samsungblue_cropped.png' alt='ONE Logo' width='400' />
A high-performance, on-device neural network inference framework.
## Goal
This project **ONE** aims at providing a high-performance, on-device neural network (NN) inference
framework that performs inference of a given NN model on processors, such as CPU, GPU, DSP or NPU.
We develop a runtime that runs on a Linux kernel-based OS platform such as Ubuntu, Tizen, or
Android, and a compiler toolchain to support NN models created using various NN training frameworks such
as Tensorflow or PyTorch in a unified form at runtime.
## Overview
- [Background](docs/overview/background.md)
- [Roadmap](docs/overview/roadmap.md)
## Getting started
- For the contribution, please refer to our [contribution guide](docs/howto/how-to-contribute.md).
- You can also find various how-to documents [here](docs/howto).
## Feature Request
You can suggest development of **ONE**'s features that are not yet available.
The functions requested so far can be checked in the [popular feature request](https://github.com/Samsung/ONE/issues?q=label%3AFEATURE_REQUEST+) list.
- If the feature you want is on the list, :+1: to the body of the issue. The feature with the most
:+1: is placed at the top of the list. When adding new features, we will prioritize them with this reference.
Of course, it is good to add an additional comment which describes your request in detail.
- For features not listed, [create a new issue](https://github.com/Samsung/ONE/issues/new).
Sooner or later, the maintainer will tag the `FEATURE_REQUEST` label and appear on the list.
We expect one of the most frequent feature requests would be the operator kernel implementation.
It is good to make a request, but it is better if you contribute by yourself. See the following guide,
[How to add a new operation](docs/howto/how-to-add-a-new-operation.md), for help.
We are looking forward to your participation.
Thank you in advance!
## How to Contact
- Please post questions, issues, or suggestions into [Issues](https://github.com/Samsung/ONE/issues). This is the best way to communicate with the developer.
- You can also have an open discussion with community members through [gitter.im](https://gitter.im/Samsung/ONE) channel.
================================================
FILE: circle-mlir/.gitignore
================================================
Makefile
build
================================================
FILE: circle-mlir/CMakeLists.txt
================================================
# Match the minimum required version of LLVM and MLIR
cmake_minimum_required(VERSION 3.13.4)
project(circle-mlir)
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
if(NOT CMAKE_BUILD_TYPE)
set(CMAKE_BUILD_TYPE "Debug" CACHE STRING "Type of build" FORCE)
endif()
set(CMAKE_POSITION_INDEPENDENT_CODE ON)
add_compile_options("-fexceptions")
list(APPEND CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/infra/cmake")
# Avoid warning about DOWNLOAD_EXTRACT_TIMESTAMP in CMake 3.24:
if (CMAKE_VERSION VERSION_GREATER_EQUAL "3.24.0")
cmake_policy(SET CMP0135 NEW)
endif()
# configuration flags
include(CfgOptionFlags)
# enable test coverage
include(TestCoverage)
# enable ctest
include(CTest)
# enable googletest but do not install
set(INSTALL_GTEST OFF)
include(GTestHelper)
include(GoogleTest)
# to override externals install
if(DEFINED ENV{CIRCLE_MLIR_LOCALINST})
set(CIRCLE_MLIR_LOCALINST $ENV{CIRCLE_MLIR_LOCALINST})
endif()
if(CIRCLE_MLIR_LOCALINST)
message(STATUS "CIRCLE_MLIR_LOCALINST=${CIRCLE_MLIR_LOCALINST}")
endif()
set(RES_CIRCLE_SCHEMA "${CMAKE_SOURCE_DIR}/../res/CircleSchema")
if(NOT CIRCLE_MLIR_EXTERNALS)
set(EXTERNALS_BIN_DIR "${CMAKE_BINARY_DIR}/externals")
else()
set(EXTERNALS_BIN_DIR "${CMAKE_SOURCE_DIR}/${CIRCLE_MLIR_EXTERNALS}")
endif()
add_subdirectory(circle-mlir)
================================================
FILE: circle-mlir/Makefile.sample
================================================
#
# This is a sample Makefile to configure and build circle-mlir
# How to use:
# ln -s Makefile.sample Makefile
# make overlay
# make prep
# make cfg debug test
#
# find python3 from overlay or else from PATH
PYTHON3_CMD:=./infra/overlay/venv/bin/python3
ifeq ($(wildcard $(PYTHON3_CMD)),)
PYTHON3_CMD:=$(shell which python3)
endif
# TODO error handle if not found
PYTHON3_PATH=$(shell dirname $(PYTHON3_CMD))
CIRCLEMLIR_BUILD_DEBUG?=build/debug
CIRCLEMLIR_BUILD_REL?=build/release
CIRCLEMLIR_BUILD_COV?=build/coverage
CIRCLEMLIR_EXTS_DEBUG?=build/externals/debug
CIRCLEMLIR_EXTS_REL?=build/externals/release
CIRCLEMLIR_PY3_ROOT?=$(PYTHON3_PATH)
CIRCLEMLIR_BUILD_JOBS?=4
ONE_COMPILER_INSTALL?=build/install
.PHONY: help all overlay \
prep cfg debug test clean \
prepr cfgr rel testr cleanr \
_mkbuild _mkbuildr
.DEFAULT_GOAL: help
help:
@echo "make overlay : prepare overlay (needed only once)"
@echo "make prep : prepare externals for debug (needed only once)"
@echo "make cfg : configure circle-mlir for debug build"
@echo "make debug : build for debug"
@echo "make test : test for debug"
@echo "make clean : clean debug build"
@echo "make prepr : prepare externals for release (needed only once)"
@echo "make cfgr : configure circle-mlir for release build"
@echo "make rel : build for release"
@echo "make testr : test for release"
@echo "make install : install release build"
@echo "make cleanr : clean release build"
@echo "make prepcov : prepare submodules for coverage test (needed only once)"
@echo "make cfgcov : configure circle-mlir for debug build with coverage test"
@echo "make debugcov : build for test coverage"
@echo "make testcov : run coverage test"
@echo "make gencov : generate test coverage report"
@echo "make cleancov : clean test coverage build"
@echo "make cfgdi : configure circle-mlir for debug build in Docker image"
@echo "make cfgcovdi : configure circle-mlir for debug build with coverage test in Docker image"
@echo "make cfgri : configure circle-mlir for release build in Docker image"
@echo "make cleanall : clean all build including overlay, externals"
all: cfg debug
#===============================================================================
# targets for internal usage
#
_mkbuild:
mkdir -p $(CIRCLEMLIR_BUILD_DEBUG)
_mkbuildcov:
mkdir -p $(CIRCLEMLIR_BUILD_COV)
_mkbuildr:
mkdir -p $(CIRCLEMLIR_BUILD_REL)
#===============================================================================
# targets for users
overlay:
bash infra/overlay/prepare-venv
#-------------------------------------------------------------------------------
# for debug
prep: _mkbuild
Python3_ROOT_DIR=$(CIRCLEMLIR_PY3_ROOT) \
cmake -B $(CIRCLEMLIR_EXTS_DEBUG) -S ./externals -DCMAKE_BUILD_TYPE=Debug
cmake --build $(CIRCLEMLIR_EXTS_DEBUG) -j$(CIRCLEMLIR_BUILD_JOBS)
cfg: _mkbuild
cmake -B $(CIRCLEMLIR_BUILD_DEBUG) -S ./ \
-DCIRCLE_MLIR_EXTERNALS=$(CIRCLEMLIR_EXTS_DEBUG) \
-DONNX2CIRCLE_TEST_MODELS_SINGLE=ON
debug:
CM_PASS_DUMP=1 \
cmake --build $(CIRCLEMLIR_BUILD_DEBUG) -j$(CIRCLEMLIR_BUILD_JOBS)
test:
CTEST_OUTPUT_ON_FAILURE=1 \
cmake --build $(CIRCLEMLIR_BUILD_DEBUG) --verbose -- test
clean:
rm -f $(CIRCLEMLIR_BUILD_DEBUG)/CMakeCache.txt
rm -rf $(CIRCLEMLIR_BUILD_DEBUG)/circle-mlir/
#-------------------------------------------------------------------------------
# for debug test coverage
prepcov: _mkbuildcov
Python3_ROOT_DIR=$(CIRCLEMLIR_PY3_ROOT) \
cmake -B $(CIRCLEMLIR_EXTS_DEBUG) -S ./externals -DCMAKE_BUILD_TYPE=Release
cmake --build $(CIRCLEMLIR_EXTS_DEBUG) -j$(CIRCLEMLIR_BUILD_JOBS)
cfgcov: _mkbuildcov
cmake -B $(CIRCLEMLIR_BUILD_COV) -S ./ \
-DCIRCLE_MLIR_EXTERNALS=$(CIRCLEMLIR_EXTS_DEBUG) \
-DONNX2CIRCLE_TEST_MODELS_SINGLE=ON \
-DENABLE_COVERAGE=ON
debugcov:
CM_PASS_DUMP=2 \
cmake --build $(CIRCLEMLIR_BUILD_COV) -j$(CIRCLEMLIR_BUILD_JOBS)
# NOTE to configure in Docker, use "make cfgcovdi"
testcov:
CM_PASS_DUMP=2 \
CTEST_OUTPUT_ON_FAILURE=1 \
cmake --build $(CIRCLEMLIR_BUILD_COV) --verbose -- test
gencov:
bash infra/tools/gen-coverage-report circle-mlir
cleancov:
rm -f $(CIRCLEMLIR_BUILD_COV)/CMakeCache.txt
rm -rf $(CIRCLEMLIR_BUILD_COV)/circle-mlir/
#-------------------------------------------------------------------------------
# for release
prepr: _mkbuildr
Python3_ROOT_DIR=$(CIRCLEMLIR_PY3_ROOT) \
cmake -B $(CIRCLEMLIR_EXTS_REL) -S ./externals -DCMAKE_BUILD_TYPE=Release
cmake --build $(CIRCLEMLIR_EXTS_REL) -j$(CIRCLEMLIR_BUILD_JOBS)
cfgr: _mkbuildr
cmake -B $(CIRCLEMLIR_BUILD_REL) -S ./ -DCMAKE_BUILD_TYPE=Release \
-DCIRCLE_MLIR_EXTERNALS=$(CIRCLEMLIR_EXTS_REL)
rel:
cmake --build $(CIRCLEMLIR_BUILD_REL) -j$(CIRCLEMLIR_BUILD_JOBS)
testr:
CTEST_OUTPUT_ON_FAILURE=1 \
cmake --build $(CIRCLEMLIR_BUILD_REL) --verbose -- test
install:
cmake --install $(CIRCLEMLIR_BUILD_REL) --prefix $(ONE_COMPILER_INSTALL)
cleanr:
rm -f $(CIRCLEMLIR_BUILD_REL)/CMakeCache.txt
rm -rf $(CIRCLEMLIR_BUILD_REL)/circle-mlir/
#-------------------------------------------------------------------------------
# for debug build in Docker
#
# no need to make for overlay, prep as prepared in Docker image
# run make for 'cfgdi'
# then make for 'debug', 'test'
cfgdi: _mkbuild
cmake -B $(CIRCLEMLIR_BUILD_DEBUG) -S ./ \
-DONNX2CIRCLE_TEST_MODELS_SINGLE=ON \
-DCMAKE_BUILD_TYPE=Debug \
-DCIRCLE_MLIR_WORKDIR=/workdir
# for test converage build in Docker
cfgcovdi: _mkbuildcov
cmake -B $(CIRCLEMLIR_BUILD_COV) -S ./ \
-DONNX2CIRCLE_TEST_MODELS_SINGLE=ON \
-DCIRCLE_MLIR_WORKDIR=/workdir \
-DENABLE_COVERAGE=ON
# for release build in Docker
cfgri: _mkbuild
cmake -B $(CIRCLEMLIR_BUILD_REL) -S ./ \
-DONNX2CIRCLE_TEST_MODELS_SINGLE=ON \
-DCMAKE_BUILD_TYPE=Release \
-DCIRCLE_MLIR_WORKDIR=/workdir
#-------------------------------------------------------------------------------
cleanall:
rm -rf $(CIRCLEMLIR_BUILD_DEBUG)
rm -rf $(CIRCLEMLIR_BUILD_REL)
rm -rf infra/overlay/venv
================================================
FILE: circle-mlir/README.md
================================================
# circle-mlir
Circle MLIR dialect and tools
## Provided Tools
_onnx2circle_
- a tool that converts ONNX models to Circle format, used by `compiler`
## How to build
Use provided `Makefile.sample` or create your own `Makefile`;
```
ln -s Makefile.sample Makefile
```
- `Makefile` is in `.gitignore` to let developers use own Makefile.
### Prerequisite
Install necessary packages;
```
sudo apt-get install build-essential cmake git
sudo apt-get install autoconf automake libtool pkg-config unzip wget libhdf5-dev
sudo apt-get install devscripts debmake debhelper lcov
sudo apt-get install python3 python3-pip python3-venv python3-dev python3-all dh-python
```
Install `one-compiler` package;
- download and install latest `ONE Release` from https://github.com/Samsung/ONE/releases
- actually we only need `circle-interperter` tool for validation, but not ready yet
Alternatively, if you have a locally built version of `compiler`,
set the environment variable as follows;
```
export ONE_COMPILER_ROOT=/home/user/one/build/install
```
### Prepare overlay
This will prepare virtual-env with necessary python packages installed;
```
make overlay
source infra/overlay/venv/bin/activate
```
NOTE `overlay` build is needed only once.
### Debug build
Build externals;
```
make prep
```
NOTE `llvm-project` builds in `Debug` mode, which may require 32GB or more RAM.
- if the build fails, try changing the build type to `-DCMAKE_BUILD_TYPE=Release`
in the `prep` target of `Makefile.sample` file.
- or you can use gold linker as this uses less memory
```
CIRCLE_MLIR_USE_GOLD=1 make prep
```
- or you can use clang
```
CIRCLE_MLIR_USE_CLANG=1 make prep
```
- you cannot use both gold linker and clang
NOTE `prep` build is needed only once.
Configure and build;
```
make cfg
make debug
```
Test build;
```
make test
```
To clean up existing build results;
```
make clean
```
To clean up also `overlay` and `submodules`;
```
make cleanall
```
### Release build
Release build is almost same as Debug build.
Build externals;
```
CIRCLE_MLIR_USE_CLANG=1 make prepr
```
Configure and build;
```
make cfgr
make rel
```
Test build
```
make testr
```
Install tools into `build/install`
```
make install
```
### Docker build
You can build within Docker image, with pre-built `externals`.
Pull Docker image
```
docker pull nnfw/circle-mlir-build:jammy
```
NOTE there is only Ubuntu22.04 version, as of writing this.
Enter shell
```
docker run \
--rm \
-u $(id -u):$(id -g) \
-it \
-v $HOME:/home/circlemlir \
-w /home/circlemlir \
nnfw/circle-mlir-build:jammy
```
Inside the Docker image shell, cd to `circle-mlir`
```
cd circle-mlir
```
For debug build
```
make cfgdi
make debug
make test
```
For Release build
```
make cfgri
make rel
make testr
```
### Test coverage
To get test coverage report, run as following commands.
- assume you already have done `make overlay` and `make prepcov`
- you can skip `make prepcov` step if you are using local installation with `CIRCLE_MLIR_LOCALINST`
```
make cfgcov
make debugcov
make testcov
make gencov
```
Open `converage/html/index.html` file in web browser to see the reports.
To generate from second run and so on in your local machine, you need to
remove existing files before running `gencov`
```
rm -rf coverage
make gencov
```
To run this with Docker image, use `cfgcovdi` target instead of `cfgcov`.
```
make cfgcovdi
make debugcov
make testcov
make gencov
```
## Dump debug logs
To see logs during conversion with `onnx2circle` tool, set `CM_PASS_DUMP=1` for
preprocessing ONNX and ONNX to circle conversion, or set `CM_PASS_DUMP=2` to see
additional logs for circle rewrite.
```
CM_PASS_DUMP=2 onnx2circle input.onnx output.circle
```
You can give `-debug` option to see all general MLIR logs or `-debug-only=o2c`
option to see only logs from onnx2circle.
```
onnx2circle -debug-only=o2c input.onnx output.circle
```
## TensorFlow source code
Some source codes are referenced from TensorFlow and the file path is added to
inside our source.
Current codes are from `v2.12.1` tag.
================================================
FILE: circle-mlir/circle-mlir/CMakeLists.txt
================================================
include(UseMLIR)
include(UseAbseil)
add_subdirectory(lib)
add_subdirectory(tools)
add_subdirectory(tools-test)
================================================
FILE: circle-mlir/circle-mlir/lib/CMakeLists.txt
================================================
add_subdirectory(tools)
add_subdirectory(arser)
add_subdirectory(schema)
add_subdirectory(dialect)
add_subdirectory(utils)
add_subdirectory(pass)
add_subdirectory(import)
add_subdirectory(export)
================================================
FILE: circle-mlir/circle-mlir/lib/arser/CMakeLists.txt
================================================
add_library(arser INTERFACE)
# It specifies INTERFACE so that future targets linked with arser library will inherit its include directory.
# It means that a developer who want to link arser just need to add one line.
# target_link_library(another-users-target arser)
target_include_directories(arser INTERFACE include/)
# NOTE test for arser are removed.
# instead, add arser_validate to validate header compilation.
add_library(arser_validate STATIC src/arser.cpp)
target_link_libraries(arser_validate PUBLIC arser)
if(NOT ENABLE_TEST)
return()
endif()
GTest_AddTest(arser_test test/arser.test.cpp)
target_link_libraries(arser_test arser)
target_link_libraries(arser_test cirmlir_coverage)
================================================
FILE: circle-mlir/circle-mlir/lib/arser/README.md
================================================
# arser
From https://github.com/Samsung/ONE/tree/d808a9973093bf8062a253d5c8f66072d7100551/compiler/arser
TODO: use compiler/arser instead of this copy.
================================================
FILE: circle-mlir/circle-mlir/lib/arser/include/arser/arser.h
================================================
/*
* Copyright (c) 2020 Samsung Electronics Co., Ltd. All Rights Reserved
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#ifndef __ARSER_H__
#define __ARSER_H__
#include <iostream>
#include <sstream>
#include <iterator>
#include <typeinfo>
#include <algorithm>
#include <functional>
#include <list>
#include <map>
#include <string>
#include <vector>
#include <cstdint>
#include <cstring>
#include <cassert>
namespace arser
{
namespace internal
{
template <typename T> T lexical_cast(const std::string &str)
{
std::istringstream ss;
ss.str(str);
T data;
ss >> data;
return data;
}
template <> inline bool lexical_cast(const std::string &str)
{
bool data = true;
if (str == "false" || str == "False" || str == "FALSE" || str == "0")
data = false;
return data;
}
template <typename T> inline std::string to_string(const T value) { return std::to_string(value); }
template <> inline std::string to_string(const char *value) { return std::string(value); }
template <> inline std::string to_string(const bool value) { return value ? "true" : "false"; }
/**
* @brief Returns the string with the leading dash removed.
*
* If there is no dash, it returns as it is.
*/
inline std::string remove_dash(const std::string &str)
{
std::string ret{str};
auto pos = ret.find_first_not_of('-');
if (pos == std::string::npos)
return ret;
return ret.substr(pos);
}
/**
* @brief Returns the string that created by concatenating the elements of a vector with commas.
*/
inline std::string make_comma_concatenated(const std::vector<std::string> &vec)
{
std::ostringstream oss;
std::copy(vec.begin(), std::prev(vec.end()), std::ostream_iterator<std::string>(oss, ", "));
oss << vec.back();
return oss.str();
}
} // namespace internal
} // namespace arser
namespace arser
{
// TypeName declaration
template <typename T> struct TypeName
{
static const char *Get() { return typeid(T).name(); }
};
template <> struct TypeName<int>
{
static const char *Get() { return "int"; }
};
template <> struct TypeName<std::vector<int>>
{
static const char *Get() { return "vector<int>"; }
};
template <> struct TypeName<float>
{
static const char *Get() { return "float"; }
};
template <> struct TypeName<std::vector<float>>
{
static const char *Get() { return "vector<float>"; }
};
template <> struct TypeName<bool>
{
static const char *Get() { return "bool"; }
};
template <> struct TypeName<std::string>
{
static const char *Get() { return "string"; }
};
template <> struct TypeName<std::vector<std::string>>
{
static const char *Get() { return "vector<string>"; }
};
template <> struct TypeName<const char *>
{
static const char *Get() { return "string"; }
};
template <> struct TypeName<std::vector<const char *>>
{
static const char *Get() { return "vector<string>"; }
};
// supported DataType
enum class DataType
{
INT32,
INT32_VEC,
FLOAT,
FLOAT_VEC,
BOOL,
STR,
STR_VEC,
};
class Arser;
/**
* Argument
* ├── positional argument
* └── optioanl argument [ dash at the beginning of the string ]
* ├── long option [ two or more dashes ]
* └── short option [ one dash ]
*
* Argument has two types - positional argument, optional argument.
*
* The way to distinguish the two types is whether there is a dash('-') at the beginning of the
* string.
*
* And, optional argument has two types as well - long option, short option, which is distinguished
* by the number of dash.
*/
class Argument
{
public:
explicit Argument(const std::string &arg_name) : _long_name{arg_name}, _names{arg_name} {}
explicit Argument(const std::string &short_name, const std::string &long_name)
: _short_name{short_name}, _long_name{long_name}, _names{short_name, long_name}
{
}
explicit Argument(const std::string &short_name, const std::string &long_name,
const std::vector<std::string> &names)
: _short_name{short_name}, _long_name{long_name}, _names{names}
{
// 'names' must have 'short_name' and 'long_name'.
auto it = std::find(names.begin(), names.end(), short_name);
assert(it != names.end());
it = std::find(names.begin(), names.end(), long_name);
assert(it != names.end());
// for avoiding unused warning.
(void)it;
}
Argument &nargs(uint32_t num)
{
if (num == 0)
{
_type = "bool";
}
_nargs = num;
return *this;
}
Argument &type(DataType type)
{
switch (type)
{
case DataType::INT32:
_type = "int";
break;
case DataType::INT32_VEC:
_type = "vector<int>";
break;
case DataType::FLOAT:
_type = "float";
break;
case DataType::FLOAT_VEC:
_type = "vector<float>";
break;
case DataType::BOOL:
_type = "bool";
break;
case DataType::STR:
_type = "string";
break;
case DataType::STR_VEC:
_type = "vector<string>";
break;
default:
throw std::runtime_error("NYI DataType");
}
return *this;
}
Argument &required(void)
{
_is_required = true;
return *this;
}
Argument &required(bool value)
{
_is_required = value;
return *this;
}
Argument &accumulated(void)
{
_is_accumulated = true;
return *this;
}
Argument &accumulated(bool value)
{
_is_accumulated = value;
return *this;
}
Argument &help(std::string help_message)
{
_help_message = help_message;
return *this;
}
Argument &exit_with(const std::function<void(void)> &func)
{
_func = func;
return *this;
}
template <typename T> Argument &default_value(const T value)
{
if ((_nargs <= 1 && TypeName<T>::Get() == _type) ||
(_nargs > 1 && TypeName<std::vector<T>>::Get() == _type))
_values.emplace_back(internal::to_string(value));
else
{
throw std::runtime_error("Type mismatch. "
"You called default_value() method with a type different "
"from the one you specified. "
"Please check the type of what you specified in "
"add_argument() method.");
}
return *this;
}
template <typename T, typename... Ts> Argument &default_value(const T value, const Ts... values)
{
if ((_nargs <= 1 && TypeName<T>::Get() == _type) ||
(_nargs > 1 && TypeName<std::vector<T>>::Get() == _type))
{
_values.emplace_back(internal::to_string(value));
default_value(values...);
}
else
{
throw std::runtime_error("Type mismatch. "
"You called default_value() method with a type different "
"from the one you specified. "
"Please check the type of what you specified in "
"add_argument() method.");
}
return *this;
}
private:
// The '_names' vector contains all of the options specified by the user.
// And among them, '_long_name' and '_short_name' are selected.
std::string _long_name;
std::string _short_name;
std::vector<std::string> _names;
std::string _type = "string";
std::string _help_message;
std::function<void(void)> _func;
uint32_t _nargs{1};
bool _is_required{false};
bool _is_accumulated{false};
std::vector<std::string> _values;
std::vector<std::vector<std::string>> _accum_values;
friend class Arser;
friend std::ostream &operator<<(std::ostream &, const Arser &);
};
class Arser
{
public:
explicit Arser(const std::string &program_description = {})
: _program_description{program_description}
{
add_argument("-h", "--help").help("Show help message and exit").nargs(0);
}
Argument &add_argument(const std::string &arg_name)
{
if (arg_name.at(0) != '-') /* positional */
{
_positional_arg_vec.emplace_back(arg_name);
_arg_map[arg_name] = &_positional_arg_vec.back();
}
else /* optional */
{
// The length of optional argument name must be 2 or more.
// And it shouldn't be hard to recognize. e.g. '-', '--'
if (arg_name.size() < 2)
{
throw std::runtime_error("Too short name. The length of argument name must be 2 or more.");
}
if (arg_name == "--")
{
throw std::runtime_error(
"Too short name. Option name must contain at least one character other than dash.");
}
_optional_arg_vec.emplace_back(arg_name);
_optional_arg_vec.back()._short_name = arg_name;
_arg_map[arg_name] = &_optional_arg_vec.back();
}
return *_arg_map[arg_name];
}
Argument &add_argument(const std::vector<std::string> &arg_name_vec)
{
assert(arg_name_vec.size() >= 2);
std::string long_opt, short_opt;
// find long and short option
for (const auto &arg_name : arg_name_vec)
{
if (arg_name.at(0) != '-')
{
throw std::runtime_error("Invalid argument. "
"Positional argument cannot have short option.");
}
assert(arg_name.size() >= 2);
if (long_opt.empty() && arg_name.at(0) == '-' && arg_name.at(1) == '-')
{
long_opt = arg_name;
}
if (short_opt.empty() && arg_name.at(0) == '-' && arg_name.at(1) != '-')
{
short_opt = arg_name;
}
}
// If one of the two is empty, fill it with the non-empty one for pretty printing.
if (long_opt.empty())
{
assert(not short_opt.empty());
long_opt = short_opt;
}
if (short_opt.empty())
{
assert(not long_opt.empty());
short_opt = long_opt;
}
_optional_arg_vec.emplace_back(short_opt, long_opt, arg_name_vec);
for (const auto &arg_name : arg_name_vec)
{
_arg_map[arg_name] = &_optional_arg_vec.back();
}
return _optional_arg_vec.back();
}
template <typename... Ts> Argument &add_argument(const std::string &arg_name, Ts... arg_names)
{
if (sizeof...(arg_names) == 0)
{
return add_argument(arg_name);
}
// sizeof...(arg_names) > 0
else
{
return add_argument(std::vector<std::string>{arg_name, arg_names...});
}
}
void validate_arguments(void)
{
// positional argument is always required.
for (const auto &arg : _positional_arg_vec)
{
if (arg._is_required)
{
throw std::runtime_error("Invalid arguments. Positional argument must always be required.");
}
}
// TODO accumulated arguments shouldn't be enabled to positional arguments.
// TODO accumulated arguments shouldn't be enabled to optional arguments whose `narg` == 0.
}
void parse(int argc, char **argv)
{
validate_arguments();
_program_name = argv[0];
_program_name.erase(0, _program_name.find_last_of("/\\") + 1);
if (argc >= 2)
{
if (!std::strcmp(argv[1], "--help") || !std::strcmp(argv[1], "-h"))
{
std::cout << *this;
std::exit(0);
}
else
{
for (const auto &arg : _arg_map)
{
const auto &func = arg.second->_func;
if (func && !std::strcmp(argv[1], arg.first.c_str()))
{
func();
std::exit(0);
}
}
}
}
/*
** ./program_name [optional argument] [positional argument]
*/
// get the number of positioanl argument
size_t parg_num = _positional_arg_vec.size();
// get the number of "required" optional argument
size_t required_oarg_num = 0;
for (auto arg : _optional_arg_vec)
{
if (arg._is_required)
required_oarg_num++;
}
// parse argument
for (int c = 1; c < argc;)
{
std::string arg_name{argv[c++]};
auto arg = _arg_map.find(arg_name);
// check whether arg is positional or not
if (arg == _arg_map.end())
{
if (parg_num)
{
auto it = _positional_arg_vec.begin();
std::advance(it, _positional_arg_vec.size() - parg_num);
(*it)._values.clear();
(*it)._values.emplace_back(arg_name);
parg_num--;
}
else
throw std::runtime_error("Invalid argument. "
"You've given more positional argument than necessary.");
}
else // optional argument
{
// check whether arg is required or not
if (arg->second->_is_required)
required_oarg_num--;
arg->second->_values.clear();
for (uint32_t n = 0; n < arg->second->_nargs; n++)
{
if (c >= argc)
throw std::runtime_error("Invalid argument. "
"You must have missed some argument.");
arg->second->_values.emplace_back(argv[c++]);
}
// accumulate values
if (arg->second->_is_accumulated)
{
arg->second->_accum_values.emplace_back(arg->second->_values);
}
if (arg->second->_nargs == 0)
{
// TODO std::boolalpha for true or false
arg->second->_values.emplace_back("1");
}
}
}
if (parg_num || required_oarg_num)
throw std::runtime_error("Invalid argument. "
"You must have missed some argument.");
}
bool operator[](const std::string &arg_name)
{
auto arg = _arg_map.find(arg_name);
if (arg == _arg_map.end())
return false;
if (arg->second->_is_accumulated)
return arg->second->_accum_values.size() > 0 ? true : false;
return arg->second->_values.size() > 0 ? true : false;
}
template <typename T> T get_impl(const std::string &arg_name, T *);
template <typename T> std::vector<T> get_impl(const std::string &arg_name, std::vector<T> *);
template <typename T>
std::vector<std::vector<T>> get_impl(const std::string &arg_name, std::vector<std::vector<T>> *);
template <typename T> T get(const std::string &arg_name);
friend std::ostream &operator<<(std::ostream &stream, const Arser &parser)
{
// print description
if (!parser._program_description.empty())
{
stream << "What " << parser._program_name << " does: " << parser._program_description
<< "\n\n";
}
/*
** print usage
*/
auto print_usage_arg = [&](const arser::Argument &arg) {
stream << " ";
std::string arg_name = arser::internal::remove_dash(arg._long_name);
std::for_each(arg_name.begin(), arg_name.end(),
[&stream](const char &c) { stream << static_cast<char>(::toupper(c)); });
};
stream << "Usage: ./" << parser._program_name << " ";
// required optional argument
for (const auto &arg : parser._optional_arg_vec)
{
if (!arg._is_required)
continue;
stream << arg._short_name;
print_usage_arg(arg);
stream << " ";
}
// rest of the optional argument
for (const auto &arg : parser._optional_arg_vec)
{
if (arg._is_required)
continue;
stream << "[" << arg._short_name;
if (arg._nargs)
{
print_usage_arg(arg);
}
stream << "]"
<< " ";
}
// positional arguement
for (const auto &arg : parser._positional_arg_vec)
{
stream << arg._long_name << " ";
}
stream << "\n\n";
/*
** print argument list and its help message
*/
// get the length of the longest argument
size_t length_of_longest_arg = 0;
for (const auto &arg : parser._positional_arg_vec)
{
length_of_longest_arg = std::max(length_of_longest_arg,
arser::internal::make_comma_concatenated(arg._names).size());
}
for (const auto &arg : parser._optional_arg_vec)
{
length_of_longest_arg = std::max(length_of_longest_arg,
arser::internal::make_comma_concatenated(arg._names).size());
}
const size_t message_width = 60;
auto print_help_args = [&](const std::list<Argument> &args, const std::string &title) {
if (!args.empty())
{
stream << title << std::endl;
for (const auto &arg : args)
{
stream.width(length_of_longest_arg);
stream << std::left << arser::internal::make_comma_concatenated(arg._names) << "\t";
for (size_t i = 0; i < arg._help_message.length(); i += message_width)
{
if (i)
stream << std::string(length_of_longest_arg, ' ') << "\t";
stream << arg._help_message.substr(i, message_width) << std::endl;
}
}
std::cout << std::endl;
}
};
// positional argument
print_help_args(parser._positional_arg_vec, "[Positional argument]");
// optional argument
print_help_args(parser._optional_arg_vec, "[Optional argument]");
return stream;
}
private:
std::string _program_name;
std::string _program_description;
std::list<Argument> _positional_arg_vec;
std::list<Argument> _optional_arg_vec;
std::map<std::string, Argument *> _arg_map;
};
template <typename T> T Arser::get_impl(const std::string &arg_name, T *)
{
auto arg = _arg_map.find(arg_name);
if (arg == _arg_map.end())
throw std::runtime_error("Invalid argument. "
"There is no argument you are looking for: " +
arg_name);
if (arg->second->_is_accumulated)
throw std::runtime_error(
"Type mismatch. "
"You called get using a type different from the one you specified."
"Accumulated argument is returned as std::vector of the specified type");
if (arg->second->_type != TypeName<T>::Get())
throw std::runtime_error("Type mismatch. "
"You called get() method with a type different "
"from the one you specified. "
"Please check the type of what you specified in "
"add_argument() method.");
if (arg->second->_values.size() == 0)
throw std::runtime_error("Wrong access. "
"You must make sure that the argument is given before accessing it. "
"You can do it by calling arser[\"argument\"].");
return internal::lexical_cast<T>(arg->second->_values[0]);
}
template <typename T> std::vector<T> Arser::get_impl(const std::string &arg_name, std::vector<T> *)
{
auto arg = _arg_map.find(arg_name);
if (arg == _arg_map.end())
throw std::runtime_error("Invalid argument. "
"There is no argument you are looking for: " +
arg_name);
// Accumulated arguments with scalar type (e.g., STR)
if (arg->second->_is_accumulated)
{
if (arg->second->_type != TypeName<T>::Get())
throw std::runtime_error("Type mismatch. "
"You called get using a type different from the one you specified.");
std::vector<T> data;
for (auto values : arg->second->_accum_values)
{
assert(values.size() == 1);
data.emplace_back(internal::lexical_cast<T>(values[0]));
}
return data;
}
if (arg->second->_type != TypeName<std::vector<T>>::Get())
throw std::runtime_error("Type mismatch. "
"You called get using a type different from the one you specified.");
std::vector<T> data;
std::transform(arg->second->_values.begin(), arg->second->_values.end(), std::back_inserter(data),
[](std::string str) -> T { return internal::lexical_cast<T>(str); });
return data;
}
// Accumulated arguments with vector type (e.g., STR_VEC)
template <typename T>
std::vector<std::vector<T>> Arser::get_impl(const std::string &arg_name,
std::vector<std::vector<T>> *)
{
auto arg = _arg_map.find(arg_name);
if (arg == _arg_map.end())
throw std::runtime_error("Invalid argument. "
"There is no argument you are looking for: " +
arg_name);
if (not arg->second->_is_accumulated)
throw std::runtime_error("Type mismatch. "
"You called get using a type different from the one you specified.");
if (arg->second->_type != TypeName<std::vector<T>>::Get())
throw std::runtime_error(
"Type mismatch. "
"You called get using a type different from the one you specified."
"Accumulated argument is returned as std::vector of the specified type");
std::vector<std::vector<T>> result;
for (auto values : arg->second->_accum_values)
{
std::vector<T> data;
std::transform(values.begin(), values.end(), std::back_inserter(data),
[](std::string str) -> T { return internal::lexical_cast<T>(str); });
result.emplace_back(data);
}
return result;
}
template <typename T> T Arser::get(const std::string &arg_name)
{
return get_impl(arg_name, static_cast<T *>(nullptr));
}
class Helper
{
public:
static void add_version(Arser &arser, const std::function<void(void)> &func)
{
arser.add_argument("--version")
.nargs(0)
.required(false)
.default_value(false)
.help("Show version information and exit")
.exit_with(func);
}
static void add_verbose(Arser &arser)
{
arser.add_argument("-V", "--verbose")
.nargs(0)
.required(false)
.default_value(false)
.help("output additional information to stdout or stderr");
}
};
} // namespace arser
#endif // __ARSER_H__
================================================
FILE: circle-mlir/circle-mlir/lib/arser/src/arser.cpp
================================================
/*
* Copyright (c) 2023 Samsung Electronics Co., Ltd. All Rights Reserved
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#include "arser/arser.h"
================================================
FILE: circle-mlir/circle-mlir/lib/arser/test/arser.test.cpp
================================================
/*
* Copyright (c) 2020 Samsung Electronics Co., Ltd. All Rights Reserved
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
// from https://github.com/Samsung/ONE/blob/
// 7be192529936563e0910ae903f43a9eb97fc9214/compiler/arser/tests/arser.test.cpp
// NOTE renamed "BasicTest" to "ArserTest" for test suite name
// NOTE copied mostly negative tests
#include <iterator>
#include <sstream>
#include <string>
#include <vector>
#include <gtest/gtest.h>
#include "arser/arser.h"
#include "arser_prompt.h"
using namespace arser;
TEST(ArserTest, option)
{
/* arrange */
Arser arser;
arser.add_argument("--verbose")
.nargs(0)
.help("It provides additional details as to what the executable is doing");
test::Prompt prompt("./executable --verbose");
/* act */
arser.parse(prompt.argc(), prompt.argv());
/* assert */
EXPECT_TRUE(arser["--verbose"]);
EXPECT_TRUE(arser.get<bool>("--verbose"));
}
TEST(ArserTest, OptionalArgument)
{
/* arrange */
Arser arser;
arser.add_argument("--volume")
.nargs(1)
.type(arser::DataType::INT32)
.help("Set a volume as you provided.");
arser.add_argument("--frequency")
.nargs(1)
.type(arser::DataType::FLOAT)
.help("Set a frequency as you provided.");
test::Prompt prompt("./radio --volume 5 --frequency 128.5");
/* act */
arser.parse(prompt.argc(), prompt.argv());
/* assert */
EXPECT_TRUE(arser["--volume"]);
EXPECT_EQ(5, arser.get<int>("--volume"));
EXPECT_TRUE(arser["--frequency"]);
EXPECT_FLOAT_EQ(128.5, arser.get<float>("--frequency"));
EXPECT_FALSE(arser["--price"]);
EXPECT_THROW(arser.get<bool>("--volume"), std::runtime_error);
}
TEST(ArserTest, NonRequiredOptionalArgument_NEG)
{
/* arrange */
Arser arser;
arser.add_argument("--weight")
.nargs(1)
.type(arser::DataType::INT32)
.help("Set a volume as you provided.");
test::Prompt prompt("./radio"); // empty argument
/* act */
arser.parse(prompt.argc(), prompt.argv());
/* assert */
EXPECT_FALSE(arser["--volume"]);
EXPECT_THROW(arser.get<int>("--weight"), std::runtime_error);
}
TEST(ArserTest, RequiredOptionalArgument_NEG)
{
/* arrange */
Arser arser;
arser.add_argument("--volume")
.nargs(1)
.type(arser::DataType::INT32)
.required()
.help("Set a volume as you provided.");
test::Prompt prompt("./radio");
/* act */ /* assert */
EXPECT_THROW(arser.parse(prompt.argc(), prompt.argv()), std::runtime_error);
}
void printVersion(std::string version) { std::cerr << "arser version : " << version << std::endl; }
TEST(ArserTest, ExitWithFunctionCallWithBind)
{
/* arrange */
Arser arser;
arser.add_argument("--version")
.help("Show version and exit")
.exit_with(std::bind(printVersion, "1.2.0"));
test::Prompt prompt("./arser --version");
/* act */ /* assert */
EXPECT_EXIT(arser.parse(prompt.argc(), prompt.argv()), testing::ExitedWithCode(0),
"arser version : 1.2.0");
}
TEST(ArserTest, ExitWithFunctionCallWithLamda)
{
/* arrange */
Arser arser;
arser.add_argument("--shutdown").help("Shut down your computer").exit_with([](void) {
std::cerr << "Good bye.." << std::endl;
});
arser.add_argument("OS").nargs(1).type(arser::DataType::STR).help("The OS you want to boot");
test::Prompt prompt("./computer --shutdown");
/* act */ /* assert */
EXPECT_EXIT(arser.parse(prompt.argc(), prompt.argv()), testing::ExitedWithCode(0), "Good bye..");
}
TEST(ArserTest, DefaultValue)
{
/* arrange */
Arser arser;
arser.add_argument("--delivery")
.nargs(3)
.type(arser::DataType::STR_VEC)
.default_value("pizza", "chicken", "hamburger")
.help("Enter three foods that you want to deliver");
arser.add_argument("--assistant")
.type(arser::DataType::STR)
.default_value("Bixby")
.help("Enter name of your assistant");
arser.add_argument("--sound")
.type(arser::DataType::BOOL)
.nargs(1)
.default_value(true)
.help("Sound on/off");
arser.add_argument("--number")
.type(arser::DataType::INT32_VEC)
.nargs(4)
.default_value(1, 2, 3, 4)
.help("Enter the number that you want to call");
arser.add_argument("--floats")
.type(arser::DataType::FLOAT_VEC)
.nargs(2)
.default_value(2.0f, 3.0f)
.help("Enter the float number that you want to call");
arser.add_argument("--time")
.type(arser::DataType::INT32_VEC)
.nargs(3)
.default_value(0, 0, 0)
.help("Current time(H/M/S)");
arser.add_argument("--name")
.type(arser::DataType::STR)
.nargs(1)
.default_value("no name")
.help("Enter your name");
test::Prompt prompt("/phone --time 1 52 34 --name arser");
/* act */
arser.parse(prompt.argc(), prompt.argv());
/* assert */
// 3 strings, no argument
std::vector<std::string> delivery = arser.get<std::vector<std::string>>("--delivery");
EXPECT_EQ("pizza", delivery.at(0));
EXPECT_EQ("chicken", delivery.at(1));
EXPECT_EQ("hamburger", delivery.at(2));
// 1 string, no argument
EXPECT_EQ("Bixby", arser.get<std::string>("--assistant"));
// 1 bool, no argument
EXPECT_EQ(true, arser.get<bool>("--sound"));
// 4 integer, no argument
std::vector<int> number = arser.get<std::vector<int>>("--number");
EXPECT_EQ(1, number.at(0));
EXPECT_EQ(2, number.at(1));
EXPECT_EQ(3, number.at(2));
EXPECT_EQ(4, number.at(3));
// 2 float, no argument
std::vector<float> floats = arser.get<std::vector<float>>("--floats");
EXPECT_EQ(2.0f, floats.at(0));
EXPECT_EQ(3.0f, floats.at(1));
// 3 integer, 3 arguments
std::vector<int> time = arser.get<std::vector<int>>("--time");
EXPECT_EQ(1, time.at(0));
EXPECT_EQ(52, time.at(1));
EXPECT_EQ(34, time.at(2));
// 1 string, 1 argument
EXPECT_EQ("arser", arser.get<std::string>("--name"));
}
TEST(ArserTest, OptWithRequiredDuplicate_NEG)
{
/* arrange */
Arser arser;
arser.add_argument("--input_path", "-i", "--input", "--in")
.nargs(1)
.type(arser::DataType::STR)
.help("input path of this program.")
.required();
arser.add_argument("--output_path", "-o")
.nargs(1)
.type(arser::DataType::STR)
.help("output path of this program.")
.required(true);
test::Prompt prompt("./driver --in /I/am/in.put -o I/am/out.put -i /I/am/duplicate");
/* act */ /* assert */
EXPECT_THROW(arser.parse(prompt.argc(), prompt.argv()), std::runtime_error);
}
TEST(ArserTest, AccumulateScalarOptions_WrongType_NEG)
{
/* arrange */
Arser arser;
arser.add_argument("--specify").nargs(1).accumulated(true).type(arser::DataType::FLOAT);
test::Prompt prompt("./driver --specify 1 --specify 2");
/* act */
arser.parse(prompt.argc(), prompt.argv());
/* assert */
EXPECT_TRUE(arser["--specify"]);
EXPECT_THROW(arser.get<float>("--specify"),
Showing preview only (926K chars total). Download the full file or copy to clipboard to get everything.
gitextract_es8o49kt/ ├── .ahub/ │ ├── sam/ │ │ ├── advanced.cfg │ │ └── exclude.txt │ └── tcchecker-tca/ │ └── config.yaml ├── .clang-format ├── .ctags ├── .git-blame-ignore-revs ├── .gitattributes ├── .github/ │ ├── actionlint.yaml │ └── workflows/ │ ├── build-dev-docker.yml │ ├── build-docker-onnx-subgr.yml │ ├── build-pub-dev-docker.yml │ ├── check-format.yml │ ├── check-pr-commit.yml │ ├── deploy-github-pages.yml │ ├── generate-rootfs.yml │ ├── pub-circle-int-launchpad.yml │ ├── pub-onert-pypi.yml │ ├── pub-onnx2circle-launchpad.yml │ ├── pub-tools-mec-pypi.yml │ ├── run-circle-mlir-build.yml │ ├── run-onecc-build.yml │ ├── run-onert-android-build.yml │ ├── run-onert-cross-build.yml │ ├── run-onert-gbs-build.yml │ ├── run-onert-micro-unit-tests.yml │ ├── run-onert-native-build.yml │ ├── run-tools-mec-build.yml │ └── run-tools-onnx-subgr-build.yml ├── .gitignore ├── .mailmap ├── .pre-commit-config.yaml ├── .readthedocs.yml ├── .style.yapf ├── .yapfignore ├── CONTRIBUTORS ├── COPYRIGHT ├── LICENSE ├── Makefile.template ├── README.md ├── circle-mlir/ │ ├── .gitignore │ ├── CMakeLists.txt │ ├── Makefile.sample │ ├── README.md │ ├── circle-mlir/ │ │ ├── CMakeLists.txt │ │ ├── lib/ │ │ │ ├── CMakeLists.txt │ │ │ ├── arser/ │ │ │ │ ├── CMakeLists.txt │ │ │ │ ├── README.md │ │ │ │ ├── include/ │ │ │ │ │ └── arser/ │ │ │ │ │ └── arser.h │ │ │ │ ├── src/ │ │ │ │ │ └── arser.cpp │ │ │ │ └── test/ │ │ │ │ ├── arser.test.cpp │ │ │ │ └── arser_prompt.h │ │ │ ├── dialect/ │ │ │ │ ├── CMakeLists.txt │ │ │ │ ├── include/ │ │ │ │ │ └── circle-mlir/ │ │ │ │ │ └── dialect/ │ │ │ │ │ ├── CircleDialect.h │ │ │ │ │ └── NameUtils.h │ │ │ │ ├── mlir/ │ │ │ │ │ ├── CircleOpEnums.td │ │ │ │ │ ├── CircleOpInterfaces.td │ │ │ │ │ ├── CircleOps.td │ │ │ │ │ ├── CircleRewrite.td │ │ │ │ │ ├── CircleShapeInferenceInterfaces.td │ │ │ │ │ └── TableGen.cmake │ │ │ │ ├── src/ │ │ │ │ │ ├── CircleDialect.cpp │ │ │ │ │ ├── ConstFold.inc.cpp │ │ │ │ │ ├── NameUtils.cpp │ │ │ │ │ ├── ShapeInference.cpp │ │ │ │ │ └── ops/ │ │ │ │ │ ├── AddOp.h │ │ │ │ │ ├── CastOp.h │ │ │ │ │ ├── ConcatenationOp.h │ │ │ │ │ ├── ConstOp.h │ │ │ │ │ ├── Conv2DOp.h │ │ │ │ │ ├── CosOp.h │ │ │ │ │ ├── CustomOp.h │ │ │ │ │ ├── DepthwiseConv2DOp.h │ │ │ │ │ ├── DivOp.h │ │ │ │ │ ├── EqualOp.h │ │ │ │ │ ├── ExpandOnnxOp.h │ │ │ │ │ ├── FloorOp.h │ │ │ │ │ ├── FullyConnectedOp.h │ │ │ │ │ ├── GatherOp.h │ │ │ │ │ ├── LogOp.h │ │ │ │ │ ├── MulOp.h │ │ │ │ │ ├── NegOp.h │ │ │ │ │ ├── NoValueOp.h │ │ │ │ │ ├── PReluOp.h │ │ │ │ │ ├── PadOp.h │ │ │ │ │ ├── PadV2Op.h │ │ │ │ │ ├── ReduceProdOp.h │ │ │ │ │ ├── ReshapeOp.h │ │ │ │ │ ├── ResizeOnnxOp.h │ │ │ │ │ ├── RsqrtOp.h │ │ │ │ │ ├── SelectOp.h │ │ │ │ │ ├── SelectV2Op.h │ │ │ │ │ ├── ShapeOp.h │ │ │ │ │ ├── SinOp.h │ │ │ │ │ ├── SliceOp.h │ │ │ │ │ ├── SplitOp.h │ │ │ │ │ ├── SplitVOp.h │ │ │ │ │ ├── SqrtOp.h │ │ │ │ │ ├── SqueezeOp.h │ │ │ │ │ ├── StridedSliceOp.h │ │ │ │ │ ├── SubOp.h │ │ │ │ │ ├── TransposeConvOp.h │ │ │ │ │ ├── TransposeOp.h │ │ │ │ │ └── UnsqueezeOnnxOp.h │ │ │ │ └── utils/ │ │ │ │ ├── DynamicShapeUtils.cpp │ │ │ │ ├── DynamicShapeUtils.h │ │ │ │ ├── Errors.cpp │ │ │ │ ├── Errors.h │ │ │ │ ├── KernelShapeUtil.cpp │ │ │ │ ├── KernelShapeUtil.h │ │ │ │ ├── KernelShapeUtil.test.cpp │ │ │ │ ├── Padding.cpp │ │ │ │ ├── Padding.h │ │ │ │ └── Padding.test.cpp │ │ │ ├── export/ │ │ │ │ ├── CMakeLists.txt │ │ │ │ ├── include/ │ │ │ │ │ └── circle-mlir/ │ │ │ │ │ └── export/ │ │ │ │ │ └── CircleExport.h │ │ │ │ └── src/ │ │ │ │ ├── CircleExport.cpp │ │ │ │ ├── OpOrArgNameMapper.cpp │ │ │ │ └── OpOrArgNameMapper.h │ │ │ ├── import/ │ │ │ │ ├── CMakeLists.txt │ │ │ │ ├── include/ │ │ │ │ │ └── circle-mlir/ │ │ │ │ │ └── import/ │ │ │ │ │ └── CircleImport.h │ │ │ │ └── src/ │ │ │ │ ├── CircleImport.cpp │ │ │ │ ├── CircleOperator.cpp │ │ │ │ └── CircleOperator.h │ │ │ ├── pass/ │ │ │ │ ├── CMakeLists.txt │ │ │ │ ├── include/ │ │ │ │ │ └── circle-mlir/ │ │ │ │ │ └── pass/ │ │ │ │ │ └── CirclePass.h │ │ │ │ └── src/ │ │ │ │ ├── CirclePass.cpp │ │ │ │ ├── ConvertHelper.cpp │ │ │ │ ├── ConvertHelper.h │ │ │ │ ├── ConvertONNXToCirclePass.cpp │ │ │ │ ├── ConvertONNXToCirclePass.h │ │ │ │ ├── DumpCircleOpsPass.cpp │ │ │ │ ├── DumpCircleOpsPass.h │ │ │ │ ├── DynamicBatchToSingleBatchPass.cpp │ │ │ │ ├── DynamicBatchToSingleBatchPass.h │ │ │ │ ├── RewriteCirclePass.cpp │ │ │ │ ├── RewriteCirclePass.h │ │ │ │ ├── RewriteONNXPass.cpp │ │ │ │ ├── RewriteONNXPass.h │ │ │ │ ├── RuntimeVerifyPass.cpp │ │ │ │ ├── RuntimeVerifyPass.h │ │ │ │ ├── ShapeInferencePass.cpp │ │ │ │ ├── ShapeInferencePass.h │ │ │ │ ├── onnx/ │ │ │ │ │ └── CompactReshapeConvReshape.h │ │ │ │ ├── ops/ │ │ │ │ │ ├── ArgMaxOp.h │ │ │ │ │ ├── AveragePoolOp.h │ │ │ │ │ ├── BatchNormalizationInferenceModeOp.h │ │ │ │ │ ├── CastOp.h │ │ │ │ │ ├── ClipOp.h │ │ │ │ │ ├── ConcatOp.h │ │ │ │ │ ├── ConstantOfShapeOp.h │ │ │ │ │ ├── ConstantOp.h │ │ │ │ │ ├── ConvOp.h │ │ │ │ │ ├── ConvTransposeOp.h │ │ │ │ │ ├── CosOp.h │ │ │ │ │ ├── CumsumOp.h │ │ │ │ │ ├── DequantizeLinearOp.h │ │ │ │ │ ├── EqualOp.h │ │ │ │ │ ├── ErfOp.h │ │ │ │ │ ├── ExpOp.h │ │ │ │ │ ├── ExpandOp.h │ │ │ │ │ ├── FlattenOp.h │ │ │ │ │ ├── FloorOp.h │ │ │ │ │ ├── GatherOp.h │ │ │ │ │ ├── GemmOp.h │ │ │ │ │ ├── GlobalAveragePoolOp.h │ │ │ │ │ ├── GreaterOp.h │ │ │ │ │ ├── HardSigmoidOp.h │ │ │ │ │ ├── HardSwishOp.h │ │ │ │ │ ├── IdentityOp.h │ │ │ │ │ ├── InstanceNormalizationOp.h │ │ │ │ │ ├── LeakyReluOp.h │ │ │ │ │ ├── LogOp.h │ │ │ │ │ ├── MatMulOp.h │ │ │ │ │ ├── MaxOp.h │ │ │ │ │ ├── MaxPoolSingleOutOp.h │ │ │ │ │ ├── MinOp.h │ │ │ │ │ ├── NegOp.h │ │ │ │ │ ├── NoneOp.h │ │ │ │ │ ├── NotOp.h │ │ │ │ │ ├── PReluOp.h │ │ │ │ │ ├── PadOp.h │ │ │ │ │ ├── PowOp.h │ │ │ │ │ ├── QuantizeLinearOp.h │ │ │ │ │ ├── RangeOp.h │ │ │ │ │ ├── ReciprocalOp.h │ │ │ │ │ ├── ReduceMaxOp.h │ │ │ │ │ ├── ReduceMeanOp.h │ │ │ │ │ ├── ReduceProdOp.h │ │ │ │ │ ├── ReduceSumOp.h │ │ │ │ │ ├── ReduceSumSquareOp.h │ │ │ │ │ ├── ReluOp.h │ │ │ │ │ ├── ReshapeOp.h │ │ │ │ │ ├── ResizeOp.h │ │ │ │ │ ├── ShapeOp.h │ │ │ │ │ ├── SigmoidOp.h │ │ │ │ │ ├── SignOp.h │ │ │ │ │ ├── SinOp.h │ │ │ │ │ ├── SliceOp.h │ │ │ │ │ ├── SoftmaxOp.h │ │ │ │ │ ├── SplitOp.h │ │ │ │ │ ├── SqrtOp.h │ │ │ │ │ ├── SqueezeOp.h │ │ │ │ │ ├── TanhOp.h │ │ │ │ │ ├── TileOp.h │ │ │ │ │ ├── TransposeOp.h │ │ │ │ │ ├── UnsqueezeOp.h │ │ │ │ │ └── WhereOp.h │ │ │ │ └── opt/ │ │ │ │ ├── ConvertDivToMul.h │ │ │ │ ├── ConvertMirrorPadPad32.h │ │ │ │ ├── ConvertReshapeShape32.h │ │ │ │ ├── ConvertResizeBilinearSize32.h │ │ │ │ ├── ConvertResizeNearestSize32.h │ │ │ │ ├── ConvertSqrtDivToRsqrt.h │ │ │ │ ├── FuseAddRelu.h │ │ │ │ ├── FuseConv2DRelu.h │ │ │ │ └── FuseFullyConnectedAdd.h │ │ │ ├── schema/ │ │ │ │ └── CMakeLists.txt │ │ │ ├── tools/ │ │ │ │ ├── CMakeLists.txt │ │ │ │ └── converter-gen/ │ │ │ │ ├── .clang-format │ │ │ │ ├── CMakeLists.txt │ │ │ │ ├── README.md │ │ │ │ └── converter_gen.cc │ │ │ └── utils/ │ │ │ ├── CMakeLists.txt │ │ │ ├── include/ │ │ │ │ └── circle-mlir/ │ │ │ │ └── utils/ │ │ │ │ ├── ConvertType.h │ │ │ │ ├── FlatbufferOperator.h │ │ │ │ └── SizeUtils.h │ │ │ └── src/ │ │ │ ├── ConvertType.cpp │ │ │ ├── ConvertType.test.cpp │ │ │ ├── FlatbufferOperator.cpp │ │ │ ├── SizeUtils.cpp │ │ │ └── SizeUtils.test.cpp │ │ ├── tools/ │ │ │ ├── CMakeLists.txt │ │ │ ├── circle-impexp/ │ │ │ │ ├── CMakeLists.txt │ │ │ │ ├── README.md │ │ │ │ └── src/ │ │ │ │ ├── circleimpexp.cpp │ │ │ │ ├── circleimpexp.h │ │ │ │ ├── circleimpexp.test.cpp │ │ │ │ └── driver.cpp │ │ │ ├── one-import-onnx-ext/ │ │ │ │ ├── CMakeLists.txt │ │ │ │ ├── README.md │ │ │ │ └── one-import-onnx-ext │ │ │ └── onnx2circle/ │ │ │ ├── CMakeLists.txt │ │ │ ├── TestModels.cmake │ │ │ ├── src/ │ │ │ │ ├── cmdOptions.h │ │ │ │ ├── driverDebug.cpp │ │ │ │ ├── driverRelease.cpp │ │ │ │ ├── onnx2circle.cpp │ │ │ │ ├── onnx2circle.h │ │ │ │ └── onnx2circle.test.cpp │ │ │ └── test.lst │ │ └── tools-test/ │ │ ├── CMakeLists.txt │ │ ├── check-gtest/ │ │ │ ├── CMakeLists.txt │ │ │ └── CheckGTest.test.cpp │ │ ├── circle-impexp-test/ │ │ │ ├── .gitignore │ │ │ ├── CMakeLists.txt │ │ │ ├── comp_circle_circle.py │ │ │ ├── exec_circle.py │ │ │ ├── exec_onnx.py │ │ │ ├── make_circle_input.py │ │ │ ├── run_import_test.sh │ │ │ ├── run_value_test.sh │ │ │ ├── test.lst │ │ │ └── util_h5_file.py │ │ ├── gen-onnx/ │ │ │ ├── CMakeLists.txt │ │ │ ├── run_gen_onnx.py │ │ │ └── run_gen_onnx.sh │ │ ├── onnx2circle-models/ │ │ │ ├── .gitignore │ │ │ ├── CMakeLists.txt │ │ │ └── test.lst │ │ ├── onnx2circle-rewrite-test/ │ │ │ ├── CMakeLists.txt │ │ │ ├── README.md │ │ │ ├── check_circle_ops.py │ │ │ ├── run_circle_ops_test.sh │ │ │ └── test.lst │ │ └── onnx2circle-value-test/ │ │ ├── .gitignore │ │ ├── CMakeLists.txt │ │ ├── comp_onnx_circle.py │ │ ├── exec_circle.py │ │ ├── exec_onnx.py │ │ ├── make_circle_input.py │ │ ├── run_value_test.sh │ │ ├── test.lst │ │ ├── util_h5_file.py │ │ └── util_validation.py │ ├── externals/ │ │ ├── .clang-format │ │ ├── .gitignore │ │ ├── CMakeLists.txt │ │ └── onnx_mlir_0_5_0_0.diff │ ├── infra/ │ │ ├── cmake/ │ │ │ ├── CfgOptionFlags.cmake │ │ │ ├── GTestHelper.cmake │ │ │ ├── TestCoverage.cmake │ │ │ ├── UseAbseil.cmake │ │ │ ├── UseFlatbuffers.cmake │ │ │ └── UseMLIR.cmake │ │ ├── debian/ │ │ │ └── onnx2circle/ │ │ │ ├── changelog │ │ │ ├── compat │ │ │ ├── control │ │ │ ├── copyright │ │ │ ├── onnx2circle.install │ │ │ ├── onnx2circle.lintian-overrides │ │ │ ├── rules │ │ │ └── source/ │ │ │ ├── format │ │ │ └── lintian-overrides │ │ ├── docker/ │ │ │ ├── focal/ │ │ │ │ └── Dockerfile │ │ │ ├── jammy/ │ │ │ │ └── Dockerfile │ │ │ └── noble/ │ │ │ └── Dockerfile │ │ ├── overlay/ │ │ │ ├── .gitignore │ │ │ └── prepare-venv │ │ └── tools/ │ │ └── gen-coverage-report │ └── models/ │ ├── .gitignore │ ├── gen_models.py │ ├── mlir/ │ │ ├── Add_F32.onnx.mlir │ │ ├── Add_F32_0.circle.mlir │ │ ├── Add_F32_1.circle.mlir │ │ ├── Add_F32_2.circle.mlir │ │ ├── Add_F32_us.circle.mlir │ │ ├── BatchMatMul_F32_us.circle.mlir │ │ ├── Cast_F32_F32.circle.mlir │ │ ├── Cast_I64_F32_C1.circle.mlir │ │ ├── Cast_I64_F32_ds.circle.mlir │ │ ├── Cast_I8_I16_C1.circle.mlir │ │ ├── Concat_F32_R4_R3_d1.circle.neg.mlir │ │ ├── Concat_F32_R4_d1_0.circle.neg.mlir │ │ ├── Concat_F32_R4_d1_1.circle.neg.mlir │ │ ├── Concat_F32_R4_dn3.circle.mlir │ │ ├── Concat_F32_R4_dn5.circle.neg.mlir │ │ ├── Concat_F32_R4_ds.circle.mlir │ │ ├── Concat_F32_R4_empty_0.circle.mlir │ │ ├── Concat_F32_R4_empty_1.circle.mlir │ │ ├── Concat_F32_R4_us.circle.mlir │ │ ├── ConstSplitAdd_F32_d0.circle.mlir │ │ ├── ConstSplitAdd_F32_d1.circle.mlir │ │ ├── ConstSplitAdd_F32_d2.circle.mlir │ │ ├── ConstSplitAdd_F32_d3.circle.mlir │ │ ├── Conv2d_F32_R4_us.circle.mlir │ │ ├── Cos_F32_R1_C1.circle.mlir │ │ ├── Cos_F32_R4_ds.circle.mlir │ │ ├── Custom_Erf_F32_ds.circle.mlir │ │ ├── Custom_F32.circle.mlir │ │ ├── Custom_F32.circle.neg.mlir │ │ ├── DepthwiseConv2d_F32_R4_us.circle.mlir │ │ ├── Div_F32_us.circle.mlir │ │ ├── FullyConnected_F32.circle.mlir │ │ ├── FullyConnected_F32_R1_C1.circle.mlir │ │ ├── FullyConnected_F32_ds.circle.mlir │ │ ├── FullyConnected_F32_kd_ds.circle.mlir │ │ ├── Log_F32_R1_C1.circle.mlir │ │ ├── Logistics_F32_R4_db.circle.mlir │ │ ├── Logistics_F32_R4_ds.circle.mlir │ │ ├── MaxPool2D_F32_R4_us.circle.mlir │ │ ├── Mul_F32_R2_ds.circle.mlir │ │ ├── Mul_F32_R2_us.circle.mlir │ │ ├── Mul_F32_us.circle.mlir │ │ ├── PRelu_F32_R4_ds.circle.mlir │ │ ├── PRelu_F32_R4_us.circle.mlir │ │ ├── Pad_F32_R4_us.circle.mlir │ │ ├── ReduceMean_F32_R4_us.circle.mlir │ │ ├── ReduceProd_I64_R1_1.circle.mlir │ │ ├── ReduceProd_I64_R1_3.circle.mlir │ │ ├── Relu_F32_R4_us.circle.mlir │ │ ├── Reshape_F32_R4_ds.circle.mlir │ │ ├── Reshape_F32_R4_ds_2.circle.mlir │ │ ├── Reshape_F32_R4_us.circle.mlir │ │ ├── ResizeNearestNeighbor_F32_R4_us.circle.mlir │ │ ├── Rsqrt_F32_R1_C1.circle.mlir │ │ ├── SelectV2_F32_R2.circle.mlir │ │ ├── SelectV2_I32_R2.circle.mlir │ │ ├── SelectV2_I64_R2.circle.mlir │ │ ├── Sin_F32_R1_C1.circle.mlir │ │ ├── Sin_F32_R4_ds.circle.mlir │ │ ├── Slice_F32_R2_ds.circle.mlir │ │ ├── Slice_F32_R3_C1_0.circle.mlir │ │ ├── Slice_F32_R3_C1_1.circle.mlir │ │ ├── Slice_F32_R3_C1_2.circle.mlir │ │ ├── Sqrt_F32_R4_ds.circle.mlir │ │ ├── Sqrt_F32_R4_us.circle.mlir │ │ ├── StridedSlice_F32_R2_ds.circle.mlir │ │ ├── StridedSlice_F32_R4_us.circle.mlir │ │ ├── StridedSlice_I64_R1_C4.circle.mlir │ │ ├── StridedSlice_I64_R1_C4_rev.circle.mlir │ │ ├── StridedSlice_I64_R2_C4_0.circle.mlir │ │ ├── StridedSlice_I64_R2_C4_1.circle.mlir │ │ ├── StridedSlice_I64_R2_C4_2.circle.mlir │ │ ├── StridedSlice_I64_R2_C4_3.circle.mlir │ │ ├── StridedSlice_I64_R2_C4_4.circle.mlir │ │ ├── StridedSlice_I64_R4_C4.circle.mlir │ │ ├── Sub_F32_us.circle.mlir │ │ └── Transpose_F32_R4_us.circle.mlir │ ├── net/ │ │ ├── Net_AddReLUConcat_F32_R4/ │ │ │ └── __init__.py │ │ ├── Net_AddReLUSub_F32_R4/ │ │ │ └── __init__.py │ │ ├── Net_AddReLU_F32_R4/ │ │ │ └── __init__.py │ │ ├── Net_Conv2dMaxpool2d_F32_R4/ │ │ │ └── __init__.py │ │ ├── Net_Conv2dMaxpool2d_F32_R4_p11/ │ │ │ └── __init__.py │ │ ├── Net_Conv2dReLUSub_F32_R4/ │ │ │ └── __init__.py │ │ ├── Net_Conv2dReLU_F32_R4/ │ │ │ └── __init__.py │ │ ├── Net_DivErf_F32_R4/ │ │ │ └── __init__.py │ │ ├── Net_FullyConnectedAdd_F32_R4/ │ │ │ └── __init__.py │ │ ├── Net_FullyConnectedAdd_F32_R4_s/ │ │ │ └── __init__.py │ │ ├── Net_ReshapeConcat_F32_R4/ │ │ │ └── __init__.py │ │ ├── Net_ReshapeConv1dReshape_F32_R4/ │ │ │ └── __init__.py │ │ ├── Net_Resize_nearest_Conv_2x_F32_R4_p11/ │ │ │ └── __init__.py │ │ ├── Net_Resize_nearest_Conv_F32_R4/ │ │ │ └── __init__.py │ │ ├── Net_Resize_nearest_Conv_F32_R4_p11/ │ │ │ └── __init__.py │ │ ├── Net_SgucExpandIdentity_F32_R3/ │ │ │ └── __init__.py │ │ ├── Net_SgucExpand_F32_R3/ │ │ │ └── __init__.py │ │ ├── Net_SlicesViT_F32_R3/ │ │ │ └── __init__.py │ │ ├── Net_SqrtDiv_F32_R4/ │ │ │ └── __init__.py │ │ └── Net_SubMaxPool2d_F32_R4_p1/ │ │ └── __init__.py │ ├── onnx_utils.py │ └── unit/ │ ├── Add_F32_R4/ │ │ └── __init__.py │ ├── Add_F32_R4_C1/ │ │ └── __init__.py │ ├── ArgMax_F32_R1_v11/ │ │ └── __init__.py │ ├── ArgMax_F32_R2_v11_d1/ │ │ └── __init__.py │ ├── ArgMax_F32_R2_v11_d1_kd/ │ │ └── __init__.py │ ├── ArgMax_F32_R4_d1_v11/ │ │ └── __init__.py │ ├── ArgMax_F32_R4_kd_v11/ │ │ └── __init__.py │ ├── ArgMax_F32_R4_v11/ │ │ └── __init__.py │ ├── AvgPool2d_F32_R4/ │ │ └── __init__.py │ ├── AvgPool2d_F32_R4_k23/ │ │ └── __init__.py │ ├── AvgPool2d_F32_R4_p1/ │ │ └── __init__.py │ ├── AvgPool2d_F32_R4_p1_v11/ │ │ └── __init__.py │ ├── BatchNorm2d_F32_R4/ │ │ └── __init__.py │ ├── BatchNorm2d_F32_R4_rand/ │ │ └── __init__.py │ ├── Cast_F32_R4_S32/ │ │ └── __init__.py │ ├── Cast_F32_R4_U8/ │ │ └── __init__.py │ ├── Clip_F32_R4_alt_v6/ │ │ └── __init__.py │ ├── Clip_F32_R4_relu6_v6/ │ │ └── __init__.py │ ├── Clip_F32_R4_v13/ │ │ └── __init__.py │ ├── Clip_F32_R4_v6/ │ │ └── __init__.py │ ├── Concat_F32_R4_d0/ │ │ └── __init__.py │ ├── Concat_F32_R4_d1/ │ │ └── __init__.py │ ├── Concat_F32_R4_d2/ │ │ └── __init__.py │ ├── Concat_F32_R4_d3/ │ │ └── __init__.py │ ├── Concat_F32_R4_dn3/ │ │ └── __init__.py │ ├── ConstantOfShape_F32_R1/ │ │ └── __init__.py │ ├── ConstantOfShape_F32_node/ │ │ └── __init__.py │ ├── ConstantOfShape_I64_R1/ │ │ └── __init__.py │ ├── Conv2d_F32_R4/ │ │ └── __init__.py │ ├── Conv2d_F32_R4_dil/ │ │ └── __init__.py │ ├── Conv2d_F32_R4_dil_g2/ │ │ └── __init__.py │ ├── Conv2d_F32_R4_g2/ │ │ └── __init__.py │ ├── Conv2d_F32_R4_g4_1/ │ │ └── __init__.py │ ├── Conv2d_F32_R4_g4_2/ │ │ └── __init__.py │ ├── Conv2d_F32_R4_g5/ │ │ └── __init__.py │ ├── Conv2d_F32_R4_k33/ │ │ └── __init__.py │ ├── Conv2d_F32_R4_nobias/ │ │ └── __init__.py │ ├── Conv2d_F32_R4_p10/ │ │ └── __init__.py │ ├── Conv2d_F32_R4_p11/ │ │ └── __init__.py │ ├── Conv2d_F32_R4_p11_g2/ │ │ └── __init__.py │ ├── Conv2d_F32_R4_s2/ │ │ └── __init__.py │ ├── ConvTranspose2d_F32_R4/ │ │ └── __init__.py │ ├── ConvTranspose2d_F32_R4_free/ │ │ └── __init__.py │ ├── ConvTranspose2d_F32_R4_k4s2/ │ │ └── __init__.py │ ├── ConvTranspose2d_F32_R4_k4s2p1/ │ │ └── __init__.py │ ├── ConvTranspose2d_F32_R4_nobias/ │ │ └── __init__.py │ ├── ConvTranspose2d_F32_R4_op01/ │ │ └── __init__.py │ ├── ConvTranspose2d_F32_R4_p10/ │ │ └── __init__.py │ ├── ConvTranspose2d_F32_R4_p11/ │ │ └── __init__.py │ ├── ConvTranspose2d_F32_R4_p11_nobias/ │ │ └── __init__.py │ ├── ConvTranspose2d_F32_R4_unk_bh/ │ │ └── __init__.py │ ├── ConvTranspose2d_F32_R4_unk_bw/ │ │ └── __init__.py │ ├── Cos_F32_R4/ │ │ └── __init__.py │ ├── CumSum_F32_R4_1/ │ │ └── __init__.py │ ├── CumSum_F32_R4_2/ │ │ └── __init__.py │ ├── Div_F32_R4_C1/ │ │ └── __init__.py │ ├── Equal_F32_R4/ │ │ └── __init__.py │ ├── Equal_I64_R1/ │ │ └── __init__.py │ ├── Erf_F32_R4/ │ │ └── __init__.py │ ├── Exp_F32_R0/ │ │ └── __init__.py │ ├── Exp_F32_R4/ │ │ └── __init__.py │ ├── Expand_B_R4_D1/ │ │ └── __init__.py │ ├── Expand_F32_R2/ │ │ └── __init__.py │ ├── Expand_F32_R2_unk/ │ │ └── __init__.py │ ├── Expand_F32_R3/ │ │ └── __init__.py │ ├── Expand_F32_R4_D0/ │ │ └── __init__.py │ ├── Expand_F32_R4_D1/ │ │ └── __init__.py │ ├── Expand_F32_R4_D3/ │ │ └── __init__.py │ ├── Expand_F32_R4_I1/ │ │ └── __init__.py │ ├── Expand_F32_R4_k/ │ │ └── __init__.py │ ├── Expand_I64_R4_D3/ │ │ └── __init__.py │ ├── Flatten_F32_R4_0/ │ │ └── __init__.py │ ├── Flatten_F32_R4_1/ │ │ └── __init__.py │ ├── Floor_F32_R4/ │ │ └── __init__.py │ ├── Gather_F32_R2/ │ │ └── __init__.py │ ├── Gather_F32_R2_2/ │ │ └── __init__.py │ ├── Gather_F32_R2_C1/ │ │ └── __init__.py │ ├── Gather_F32_R2_C1_2/ │ │ └── __init__.py │ ├── Gather_F32_R2_C1_3/ │ │ └── __init__.py │ ├── Gemm_F32_R2/ │ │ └── __init__.py │ ├── Gemm_F32_R2_C1/ │ │ └── __init__.py │ ├── Gemm_F32_R2_a0b1/ │ │ └── __init__.py │ ├── Gemm_F32_R2_a1b0/ │ │ └── __init__.py │ ├── Gemm_F32_R2_a1b1/ │ │ └── __init__.py │ ├── Gemm_F32_R2_a1b1_ta/ │ │ └── __init__.py │ ├── Gemm_F32_R2_a1b1_tb/ │ │ └── __init__.py │ ├── Gemm_F32_R2_ahbh/ │ │ └── __init__.py │ ├── Gemm_F32_R2_nobias/ │ │ └── __init__.py │ ├── GlobalAveragePool_F32_R4/ │ │ └── __init__.py │ ├── Greater_F32_R2_C1/ │ │ └── __init__.py │ ├── Greater_F32_R4/ │ │ └── __init__.py │ ├── Hardsigmoid_F32_R2/ │ │ └── __init__.py │ ├── Hardswish_F32_R4/ │ │ └── __init__.py │ ├── Identity_F32_R2/ │ │ └── __init__.py │ ├── InstanceNormalization_F32_R3/ │ │ └── __init__.py │ ├── InstanceNormalization_F32_R4/ │ │ └── __init__.py │ ├── InstanceNormalization_F32_R4_rand/ │ │ └── __init__.py │ ├── LeakyReLU_F32_R4/ │ │ └── __init__.py │ ├── LeakyReLU_F32_R4_ns/ │ │ └── __init__.py │ ├── LogSoftmax_F32_R2/ │ │ └── __init__.py │ ├── Log_F32_R2/ │ │ └── __init__.py │ ├── Log_F32_R4/ │ │ └── __init__.py │ ├── MatMul_F32_R2_hw/ │ │ └── __init__.py │ ├── MatMul_F32_R3_11w/ │ │ └── __init__.py │ ├── MatMul_F32_R3_1hw/ │ │ └── __init__.py │ ├── MatMul_F32_R3_1hw_nobias/ │ │ └── __init__.py │ ├── MatMul_F32_R3_c1w/ │ │ └── __init__.py │ ├── MatMul_F32_R3_c1w_2/ │ │ └── __init__.py │ ├── MatMul_F32_R3_c1w_3/ │ │ └── __init__.py │ ├── MatMul_F32_R3_chw/ │ │ └── __init__.py │ ├── MatMul_F32_R4_111w_C11hw/ │ │ └── __init__.py │ ├── MatMul_F32_R4_11hw/ │ │ └── __init__.py │ ├── MatMul_F32_R4_11hw_nobias/ │ │ └── __init__.py │ ├── MatMul_F32_R4_1chw/ │ │ └── __init__.py │ ├── MatMul_F32_R4_nchw_nobias/ │ │ └── __init__.py │ ├── MaxPool2d_F32_R4/ │ │ └── __init__.py │ ├── MaxPool2d_F32_R4_k12/ │ │ └── __init__.py │ ├── MaxPool2d_F32_R4_p1/ │ │ └── __init__.py │ ├── MaxPool2d_F32_R4_p23/ │ │ └── __init__.py │ ├── MaxPool2d_F32_R4_p31/ │ │ └── __init__.py │ ├── Max_F32_R4/ │ │ └── __init__.py │ ├── Min_F32_R4/ │ │ └── __init__.py │ ├── Mul_F32_R4/ │ │ └── __init__.py │ ├── Neg_F32_R4/ │ │ └── __init__.py │ ├── Not_F32_R4/ │ │ └── __init__.py │ ├── PReLU_F32_R4/ │ │ └── __init__.py │ ├── Pad_Constant2d_F32_R4/ │ │ └── __init__.py │ ├── Pad_Constant2d_F32_R4_1/ │ │ └── __init__.py │ ├── Pad_Constant2d_F32_R4_t4/ │ │ └── __init__.py │ ├── Pad_Constant2d_F32_R4_t8/ │ │ └── __init__.py │ ├── Pad_Constant2d_F32_R4_v14/ │ │ └── __init__.py │ ├── Pad_Reflection2d_F32_R4/ │ │ └── __init__.py │ ├── Pad_Reflection2d_F32_R4_1/ │ │ └── __init__.py │ ├── Pow_F32_R2/ │ │ └── __init__.py │ ├── Pow_F32_R2_3/ │ │ └── __init__.py │ ├── Pow_F32_R4/ │ │ └── __init__.py │ ├── QuantizeLinear_F32_R3_i16/ │ │ └── __init__.py │ ├── QuantizeLinear_F32_R3_i16_cw/ │ │ └── __init__.py │ ├── QuantizeLinear_F32_R3_ui8/ │ │ └── __init__.py │ ├── QuantizeLinear_F32_R3_ui8_fq/ │ │ └── __init__.py │ ├── QuantizeLinear_F32_R4_i16_cw/ │ │ └── __init__.py │ ├── QuantizeLinear_F32_R4_ui8_cw/ │ │ └── __init__.py │ ├── Range_F32_R0_1/ │ │ └── __init__.py │ ├── Range_F32_R0_2/ │ │ └── __init__.py │ ├── Range_F32_R0_3/ │ │ └── __init__.py │ ├── ReLU_F32_R4/ │ │ └── __init__.py │ ├── Reciprocal_F32_R4/ │ │ └── __init__.py │ ├── ReduceMax_F32_R2/ │ │ └── __init__.py │ ├── ReduceMax_F32_R2_d0/ │ │ └── __init__.py │ ├── ReduceMax_F32_R2_d1/ │ │ └── __init__.py │ ├── ReduceMax_F32_R2_d1_kd/ │ │ └── __init__.py │ ├── ReduceMax_F32_R4/ │ │ └── __init__.py │ ├── ReduceMean_F32_R4/ │ │ └── __init__.py │ ├── ReduceMean_F32_R4_a23_kd/ │ │ └── __init__.py │ ├── ReduceMean_F32_R4_a3/ │ │ └── __init__.py │ ├── ReduceMean_F32_R4_v18/ │ │ └── __init__.py │ ├── ReduceProd_F32_R2/ │ │ └── __init__.py │ ├── ReduceSumSquare_F32_R2/ │ │ └── __init__.py │ ├── ReduceSumSquare_F32_R2_d0/ │ │ └── __init__.py │ ├── ReduceSumSquare_F32_R2_d1/ │ │ └── __init__.py │ ├── ReduceSumSquare_F32_R2_d1_kd/ │ │ └── __init__.py │ ├── ReduceSumSquare_F32_R4/ │ │ └── __init__.py │ ├── ReduceSum_F32_R2/ │ │ └── __init__.py │ ├── ReduceSum_F32_R2_V11/ │ │ └── __init__.py │ ├── ReduceSum_F32_R2_d0/ │ │ └── __init__.py │ ├── ReduceSum_F32_R2_d1/ │ │ └── __init__.py │ ├── ReduceSum_F32_R2_d1_kd/ │ │ └── __init__.py │ ├── ReduceSum_F32_R4/ │ │ └── __init__.py │ ├── Reshape_F32_R4_1/ │ │ └── __init__.py │ ├── Reshape_F32_R4_2/ │ │ └── __init__.py │ ├── Reshape_F32_R4_3/ │ │ └── __init__.py │ ├── Reshape_F32_R4_4/ │ │ └── __init__.py │ ├── Reshape_F32_R4_5/ │ │ └── __init__.py │ ├── Reshape_F32_R4_6/ │ │ └── __init__.py │ ├── Resize_F32_R4/ │ │ └── __init__.py │ ├── Resize_F32_R4_2/ │ │ └── __init__.py │ ├── Resize_F32_R4_linear/ │ │ └── __init__.py │ ├── Resize_F32_R4_linear_v11/ │ │ └── __init__.py │ ├── Resize_F32_R4_nearest/ │ │ └── __init__.py │ ├── Resize_F32_R4_unk/ │ │ └── __init__.py │ ├── Rsqrt_F32_R4/ │ │ └── __init__.py │ ├── Shape_F32_R4/ │ │ └── __init__.py │ ├── Sigmoid_F32_R2/ │ │ └── __init__.py │ ├── Sigmoid_F32_R4/ │ │ └── __init__.py │ ├── Sign_F32_R4/ │ │ └── __init__.py │ ├── Sin_F32_R4/ │ │ └── __init__.py │ ├── Slice_F32_R2_4/ │ │ └── __init__.py │ ├── Slice_F32_R3_4/ │ │ └── __init__.py │ ├── Slice_F32_R3_C2_1/ │ │ └── __init__.py │ ├── Slice_F32_R3_C2_2/ │ │ └── __init__.py │ ├── Slice_F32_R3_unk_1/ │ │ └── __init__.py │ ├── Slice_F32_R3_unk_2/ │ │ └── __init__.py │ ├── Slice_F32_R4_1/ │ │ └── __init__.py │ ├── Slice_F32_R4_2/ │ │ └── __init__.py │ ├── Slice_F32_R4_3/ │ │ └── __init__.py │ ├── Slice_F32_R4_4/ │ │ └── __init__.py │ ├── Slice_F32_R4_5/ │ │ └── __init__.py │ ├── Slice_F32_R4_6/ │ │ └── __init__.py │ ├── Slice_F32_R4_7/ │ │ └── __init__.py │ ├── Softmax_F32_R2/ │ │ └── __init__.py │ ├── Softmax_F32_R2_v11/ │ │ └── __init__.py │ ├── Softmax_F32_R3/ │ │ └── __init__.py │ ├── Softmax_F32_R4/ │ │ └── __init__.py │ ├── Split_F32_R3_ns/ │ │ └── __init__.py │ ├── Split_F32_R4/ │ │ └── __init__.py │ ├── Split_F32_R4_342/ │ │ └── __init__.py │ ├── Split_F32_R4_d3_v11/ │ │ └── __init__.py │ ├── Split_F32_R4_v11/ │ │ └── __init__.py │ ├── Sqrt_F32_R4/ │ │ └── __init__.py │ ├── Squeeze_F32_R4/ │ │ └── __init__.py │ ├── Squeeze_F32_R4_axis/ │ │ └── __init__.py │ ├── Squeeze_F32_R4_m1/ │ │ └── __init__.py │ ├── Squeeze_F32_R4_m1_v11/ │ │ └── __init__.py │ ├── Sub_F32_R4/ │ │ └── __init__.py │ ├── Tanh_F32_R4/ │ │ └── __init__.py │ ├── Tile_F32_R2/ │ │ └── __init__.py │ ├── Transpose_F32_R4/ │ │ └── __init__.py │ ├── Transpose_F32_R4_pm/ │ │ └── __init__.py │ ├── Unsqueeze_F32_R0/ │ │ └── __init__.py │ ├── Unsqueeze_F32_R0_v11/ │ │ └── __init__.py │ ├── Unsqueeze_F32_R2_d01_v11/ │ │ └── __init__.py │ ├── Unsqueeze_F32_R2_d02_v11/ │ │ └── __init__.py │ ├── Unsqueeze_F32_R2_d13_v11/ │ │ └── __init__.py │ ├── Unsqueeze_F32_R3_d0/ │ │ └── __init__.py │ ├── Unsqueeze_F32_R3_d3/ │ │ └── __init__.py │ ├── Unsqueeze_F32_R3_d3_v11/ │ │ └── __init__.py │ ├── Unsqueeze_F32_R3_d_1/ │ │ └── __init__.py │ ├── Upsample_F32_R4/ │ │ └── __init__.py │ ├── Where_F32_R3_bc/ │ │ └── __init__.py │ └── Where_F32_R4/ │ └── __init__.py ├── compiler/ │ ├── CMakeLists.txt │ ├── _deprecated/ │ │ ├── README.md │ │ ├── ann-api/ │ │ │ ├── CMakeLists.txt │ │ │ ├── README.md │ │ │ ├── exclude.me │ │ │ └── include/ │ │ │ ├── .clang-format │ │ │ └── NeuralNetworks.h │ │ ├── ann-ref/ │ │ │ ├── .clang-format │ │ │ ├── CMakeLists.txt │ │ │ ├── README.md │ │ │ ├── exclude.me │ │ │ ├── requires.cmake │ │ │ └── src/ │ │ │ ├── Assert.h │ │ │ ├── CompilationBuilder.cpp │ │ │ ├── CompilationBuilder.h │ │ │ ├── ExecutionBuilder.cpp │ │ │ ├── ExecutionBuilder.h │ │ │ ├── Executor.cpp │ │ │ ├── Executor.h │ │ │ ├── Logging.cpp │ │ │ ├── Logging.h │ │ │ ├── Macro.h │ │ │ ├── Memory.cpp │ │ │ ├── Memory.h │ │ │ ├── MemoryTracker.cpp │ │ │ ├── MemoryTracker.h │ │ │ ├── Model.h │ │ │ ├── ModelArgumentInfo.cpp │ │ │ ├── ModelArgumentInfo.h │ │ │ ├── ModelBuilder.cpp │ │ │ ├── ModelBuilder.h │ │ │ ├── NeuralNetworks.cpp │ │ │ ├── Operand.h │ │ │ ├── OperandType.cpp │ │ │ ├── OperandType.h │ │ │ ├── OperandType.probe.cpp │ │ │ ├── Operation.h │ │ │ ├── OperationType.cpp │ │ │ ├── OperationType.h │ │ │ ├── OperationType.probe.cpp │ │ │ ├── Probe.cpp │ │ │ ├── Request.h │ │ │ ├── Shape.cpp │ │ │ ├── Shape.h │ │ │ ├── Validation.cpp │ │ │ ├── Validation.h │ │ │ └── ops/ │ │ │ ├── Add.cpp │ │ │ ├── Add.float.cpp │ │ │ ├── Add.float.h │ │ │ ├── Add.h │ │ │ ├── AvgPool2D.cpp │ │ │ ├── AvgPool2D.float.cpp │ │ │ ├── AvgPool2D.float.h │ │ │ ├── AvgPool2D.h │ │ │ ├── Concatenation.cpp │ │ │ ├── Concatenation.float.cpp │ │ │ ├── Concatenation.float.h │ │ │ ├── Concatenation.h │ │ │ ├── Conv2D.cpp │ │ │ ├── Conv2D.float.cpp │ │ │ ├── Conv2D.float.h │ │ │ ├── Conv2D.h │ │ │ ├── DepthwiseConv2D.cpp │ │ │ ├── DepthwiseConv2D.float.cpp │ │ │ ├── DepthwiseConv2D.float.h │ │ │ ├── DepthwiseConv2D.h │ │ │ ├── Div.cpp │ │ │ ├── Div.float.cpp │ │ │ ├── Div.float.h │ │ │ ├── Div.h │ │ │ ├── FullyConnected.cpp │ │ │ ├── FullyConnected.float.cpp │ │ │ ├── FullyConnected.float.h │ │ │ ├── FullyConnected.h │ │ │ ├── MaxPool2D.cpp │ │ │ ├── MaxPool2D.float.cpp │ │ │ ├── MaxPool2D.float.h │ │ │ ├── MaxPool2D.h │ │ │ ├── Mul.cpp │ │ │ ├── Mul.float.cpp │ │ │ ├── Mul.float.h │ │ │ ├── Mul.h │ │ │ ├── Pad.cpp │ │ │ ├── Pad.h │ │ │ ├── ReLU.cpp │ │ │ ├── ReLU.float.cpp │ │ │ ├── ReLU.float.h │ │ │ ├── ReLU.h │ │ │ ├── ReLU6.cpp │ │ │ ├── ReLU6.float.cpp │ │ │ ├── ReLU6.float.h │ │ │ ├── ReLU6.h │ │ │ ├── Reshape.cpp │ │ │ ├── Reshape.h │ │ │ ├── Softmax.cpp │ │ │ ├── Softmax.float.cpp │ │ │ ├── Softmax.float.h │ │ │ ├── Softmax.h │ │ │ ├── Sub.cpp │ │ │ ├── Sub.float.cpp │ │ │ ├── Sub.float.h │ │ │ ├── Sub.h │ │ │ └── internal/ │ │ │ ├── ActivationUtils.h │ │ │ ├── Array.h │ │ │ ├── Dims.h │ │ │ ├── Elementwise.cpp │ │ │ ├── Elementwise.h │ │ │ ├── FeatureMap.h │ │ │ ├── Fused.cpp │ │ │ ├── Fused.h │ │ │ ├── GEMM.h │ │ │ ├── Macro.h │ │ │ ├── Matrix.h │ │ │ ├── NDArray.h │ │ │ ├── Pooling.cpp │ │ │ ├── Pooling.h │ │ │ └── Spatial.h │ │ ├── caffe2circle/ │ │ │ ├── CMakeLists.txt │ │ │ ├── README.md │ │ │ ├── exclude.me │ │ │ ├── requires.cmake │ │ │ └── src/ │ │ │ └── caffe2circle.cpp │ │ ├── caffegen/ │ │ │ ├── CMakeLists.txt │ │ │ ├── README.md │ │ │ ├── exclude.me │ │ │ └── src/ │ │ │ ├── DecodeCommand.cpp │ │ │ ├── DecodeCommand.h │ │ │ ├── Driver.cpp │ │ │ ├── EncodeCommand.cpp │ │ │ ├── EncodeCommand.h │ │ │ ├── InitCommand.cpp │ │ │ ├── InitCommand.h │ │ │ ├── MergeCommand.cpp │ │ │ └── MergeCommand.h │ │ ├── coco/ │ │ │ ├── CMakeLists.txt │ │ │ ├── README.md │ │ │ ├── core/ │ │ │ │ ├── CMakeLists.txt │ │ │ │ ├── include/ │ │ │ │ │ └── coco/ │ │ │ │ │ ├── ADT/ │ │ │ │ │ │ ├── DLinkedList.h │ │ │ │ │ │ ├── PtrList.h │ │ │ │ │ │ └── PtrManager.h │ │ │ │ │ ├── IR/ │ │ │ │ │ │ ├── Arg.h │ │ │ │ │ │ ├── Bag.h │ │ │ │ │ │ ├── BagManager.h │ │ │ │ │ │ ├── Block.forward.h │ │ │ │ │ │ ├── Block.h │ │ │ │ │ │ ├── BlockIndex.h │ │ │ │ │ │ ├── BlockManager.h │ │ │ │ │ │ ├── Def.forward.h │ │ │ │ │ │ ├── Def.h │ │ │ │ │ │ ├── Dep.forward.h │ │ │ │ │ │ ├── Dep.h │ │ │ │ │ │ ├── DepSet.h │ │ │ │ │ │ ├── ElemID.h │ │ │ │ │ │ ├── Entity.h │ │ │ │ │ │ ├── EntityBuilder.h │ │ │ │ │ │ ├── EntityManager.h │ │ │ │ │ │ ├── FeatureLayout.h │ │ │ │ │ │ ├── FeatureLayouts.h │ │ │ │ │ │ ├── FeatureObject.forward.h │ │ │ │ │ │ ├── FeatureObject.h │ │ │ │ │ │ ├── FeatureShape.h │ │ │ │ │ │ ├── Input.forward.h │ │ │ │ │ │ ├── Input.h │ │ │ │ │ │ ├── InputList.h │ │ │ │ │ │ ├── InputManager.h │ │ │ │ │ │ ├── Instr.forward.h │ │ │ │ │ │ ├── Instr.h │ │ │ │ │ │ ├── Instr.lst │ │ │ │ │ │ ├── InstrIndex.h │ │ │ │ │ │ ├── InstrManager.h │ │ │ │ │ │ ├── Instrs.h │ │ │ │ │ │ ├── KernelLayout.h │ │ │ │ │ │ ├── KernelLayouts.h │ │ │ │ │ │ ├── KernelObject.forward.h │ │ │ │ │ │ ├── KernelObject.h │ │ │ │ │ │ ├── Locatable.h │ │ │ │ │ │ ├── Module.forward.h │ │ │ │ │ │ ├── Module.h │ │ │ │ │ │ ├── Object.forward.h │ │ │ │ │ │ ├── Object.h │ │ │ │ │ │ ├── ObjectManager.h │ │ │ │ │ │ ├── ObjectSet.h │ │ │ │ │ │ ├── Op.forward.h │ │ │ │ │ │ ├── Op.h │ │ │ │ │ │ ├── Op.lst │ │ │ │ │ │ ├── OpManager.h │ │ │ │ │ │ ├── Ops.h │ │ │ │ │ │ ├── Output.forward.h │ │ │ │ │ │ ├── Output.h │ │ │ │ │ │ ├── OutputList.h │ │ │ │ │ │ ├── OutputManager.h │ │ │ │ │ │ ├── Padding2D.h │ │ │ │ │ │ ├── Part.forward.h │ │ │ │ │ │ ├── Part.h │ │ │ │ │ │ ├── Read.forward.h │ │ │ │ │ │ ├── Read.h │ │ │ │ │ │ ├── ReadSet.h │ │ │ │ │ │ ├── Step.forward.h │ │ │ │ │ │ ├── Step.h │ │ │ │ │ │ ├── Stride2D.h │ │ │ │ │ │ ├── Update.forward.h │ │ │ │ │ │ ├── Update.h │ │ │ │ │ │ ├── UpdateSet.h │ │ │ │ │ │ ├── Use.forward.h │ │ │ │ │ │ ├── Use.h │ │ │ │ │ │ ├── UseSet.h │ │ │ │ │ │ └── Window2D.h │ │ │ │ │ └── IR.h │ │ │ │ └── src/ │ │ │ │ ├── ADT/ │ │ │ │ │ ├── DLinkedList.test.cpp │ │ │ │ │ ├── PtrList.cpp │ │ │ │ │ ├── PtrList.test.cpp │ │ │ │ │ └── PtrManager.test.cpp │ │ │ │ ├── IR/ │ │ │ │ │ ├── Arg.cpp │ │ │ │ │ ├── Arg.test.cpp │ │ │ │ │ ├── AvgPool2D.test.cpp │ │ │ │ │ ├── Bag.cpp │ │ │ │ │ ├── Bag.test.cpp │ │ │ │ │ ├── BagManager.cpp │ │ │ │ │ ├── BagManager.test.cpp │ │ │ │ │ ├── Block.cpp │ │ │ │ │ ├── Block.test.cpp │ │ │ │ │ ├── BlockIndex.cpp │ │ │ │ │ ├── BlockIndex.test.cpp │ │ │ │ │ ├── BlockManager.cpp │ │ │ │ │ ├── BlockManager.test.cpp │ │ │ │ │ ├── Consumer.mock.h │ │ │ │ │ ├── Conv2D.cpp │ │ │ │ │ ├── Conv2D.test.cpp │ │ │ │ │ ├── Def.cpp │ │ │ │ │ ├── Def.test.cpp │ │ │ │ │ ├── Dep.cpp │ │ │ │ │ ├── Dep.test.cpp │ │ │ │ │ ├── ElemID.cpp │ │ │ │ │ ├── ElemID.test.cpp │ │ │ │ │ ├── EntityManager.cpp │ │ │ │ │ ├── Eval.cpp │ │ │ │ │ ├── Eval.test.cpp │ │ │ │ │ ├── FeatureLayouts.cpp │ │ │ │ │ ├── FeatureLayouts.test.cpp │ │ │ │ │ ├── FeatureObject.cpp │ │ │ │ │ ├── FeatureObject.test.cpp │ │ │ │ │ ├── FeatureShape.test.cpp │ │ │ │ │ ├── Input.cpp │ │ │ │ │ ├── Input.test.cpp │ │ │ │ │ ├── InputManager.cpp │ │ │ │ │ ├── InputManager.test.cpp │ │ │ │ │ ├── Instr.cpp │ │ │ │ │ ├── InstrIndex.cpp │ │ │ │ │ ├── InstrIndex.test.cpp │ │ │ │ │ ├── InstrManager.cpp │ │ │ │ │ ├── InstrManager.test.cpp │ │ │ │ │ ├── KernelLayouts.cpp │ │ │ │ │ ├── KernelLayouts.test.cpp │ │ │ │ │ ├── KernelObject.cpp │ │ │ │ │ ├── KernelObject.test.cpp │ │ │ │ │ ├── Load.cpp │ │ │ │ │ ├── MaxPool2D.test.cpp │ │ │ │ │ ├── Module.cpp │ │ │ │ │ ├── Module.test.cpp │ │ │ │ │ ├── Object.cpp │ │ │ │ │ ├── Object.test.cpp │ │ │ │ │ ├── ObjectManager.cpp │ │ │ │ │ ├── ObjectManager.test.cpp │ │ │ │ │ ├── Op.cpp │ │ │ │ │ ├── OpManager.cpp │ │ │ │ │ ├── OpManager.test.cpp │ │ │ │ │ ├── Ops.cpp │ │ │ │ │ ├── Ops.test.cpp │ │ │ │ │ ├── Output.cpp │ │ │ │ │ ├── Output.test.cpp │ │ │ │ │ ├── OutputManager.cpp │ │ │ │ │ ├── OutputManager.test.cpp │ │ │ │ │ ├── PadF.test.cpp │ │ │ │ │ ├── Padding2D.cpp │ │ │ │ │ ├── Padding2D.test.cpp │ │ │ │ │ ├── Part.cpp │ │ │ │ │ ├── Part.test.cpp │ │ │ │ │ ├── Producer.mock.h │ │ │ │ │ ├── ReLU.test.cpp │ │ │ │ │ ├── ReLU6.test.cpp │ │ │ │ │ ├── Read.cpp │ │ │ │ │ ├── Read.test.cpp │ │ │ │ │ ├── Reader.mock.h │ │ │ │ │ ├── Shuffle.cpp │ │ │ │ │ ├── Shuffle.test.cpp │ │ │ │ │ ├── Sqrt.test.cpp │ │ │ │ │ ├── Step.cpp │ │ │ │ │ ├── Stride2D.cpp │ │ │ │ │ ├── Stride2D.test.cpp │ │ │ │ │ ├── Sub.test.cpp │ │ │ │ │ ├── Update.cpp │ │ │ │ │ ├── Update.test.cpp │ │ │ │ │ ├── Updater.mock.h │ │ │ │ │ ├── Use.cpp │ │ │ │ │ ├── Use.test.cpp │ │ │ │ │ └── Window2D.test.cpp │ │ │ │ └── IR.test.cpp │ │ │ ├── exclude.me │ │ │ ├── generic/ │ │ │ │ ├── CMakeLists.txt │ │ │ │ ├── include/ │ │ │ │ │ └── coco/ │ │ │ │ │ ├── ADT/ │ │ │ │ │ │ └── Span.h │ │ │ │ │ └── IR/ │ │ │ │ │ ├── Data.h │ │ │ │ │ └── PlainWeightContext.h │ │ │ │ └── src/ │ │ │ │ ├── ADT/ │ │ │ │ │ └── Span.test.cpp │ │ │ │ └── IR/ │ │ │ │ ├── Data.cpp │ │ │ │ └── Data.test.cpp │ │ │ └── requires.cmake │ │ ├── enco/ │ │ │ ├── CMakeLists.txt │ │ │ ├── README.md │ │ │ ├── cli/ │ │ │ │ ├── CMakeLists.txt │ │ │ │ └── src/ │ │ │ │ └── Driver.cpp │ │ │ ├── core/ │ │ │ │ ├── CMakeLists.txt │ │ │ │ ├── include/ │ │ │ │ │ └── enco/ │ │ │ │ │ └── Backend.h │ │ │ │ └── src/ │ │ │ │ ├── ANN/ │ │ │ │ │ ├── Binder.h │ │ │ │ │ ├── Context.cpp │ │ │ │ │ ├── Context.h │ │ │ │ │ ├── Context.test.cpp │ │ │ │ │ └── IR/ │ │ │ │ │ ├── DType.cpp │ │ │ │ │ ├── DType.h │ │ │ │ │ ├── DType.test.cpp │ │ │ │ │ ├── InputList.h │ │ │ │ │ ├── Module.h │ │ │ │ │ ├── Module.test.cpp │ │ │ │ │ ├── Operand.h │ │ │ │ │ ├── Operand.test.cpp │ │ │ │ │ ├── OperandID.h │ │ │ │ │ ├── OperandID.test.cpp │ │ │ │ │ ├── OperandInventory.cpp │ │ │ │ │ ├── OperandInventory.h │ │ │ │ │ ├── OperandInventory.test.cpp │ │ │ │ │ ├── Operation.def │ │ │ │ │ ├── Operation.h │ │ │ │ │ ├── Operation.test.cpp │ │ │ │ │ ├── OperationInventory.cpp │ │ │ │ │ ├── OperationInventory.h │ │ │ │ │ ├── OperationInventory.test.cpp │ │ │ │ │ ├── OutputList.h │ │ │ │ │ ├── Weight.h │ │ │ │ │ ├── Weight.test.cpp │ │ │ │ │ ├── WeightInventory.cpp │ │ │ │ │ ├── WeightInventory.h │ │ │ │ │ └── WeightInventory.test.cpp │ │ │ │ ├── AsmCode.cpp │ │ │ │ ├── AsmCode.h │ │ │ │ ├── Backend.cpp │ │ │ │ ├── Code.h │ │ │ │ ├── Code.test.cpp │ │ │ │ ├── CodeIndex.h │ │ │ │ ├── CppCode.cpp │ │ │ │ ├── CppCode.h │ │ │ │ ├── CppGen/ │ │ │ │ │ ├── Host.cpp │ │ │ │ │ ├── Host.h │ │ │ │ │ ├── MemoryContext.cpp │ │ │ │ │ ├── MemoryContext.h │ │ │ │ │ ├── Subnet.cpp │ │ │ │ │ └── Subnet.h │ │ │ │ ├── Dims.h │ │ │ │ ├── IRUtils.cpp │ │ │ │ ├── IRUtils.h │ │ │ │ ├── IRValidator.cpp │ │ │ │ ├── IRValidator.h │ │ │ │ ├── IRValidator.test.cpp │ │ │ │ ├── Pass.h │ │ │ │ ├── Pass.test.cpp │ │ │ │ ├── Pipeline.h │ │ │ │ ├── Pipeline.test.cpp │ │ │ │ ├── Session.cpp │ │ │ │ ├── Session.h │ │ │ │ ├── String.h │ │ │ │ ├── Support/ │ │ │ │ │ ├── Debugging.cpp │ │ │ │ │ ├── Debugging.h │ │ │ │ │ └── Debugging.test.cpp │ │ │ │ ├── Transforms/ │ │ │ │ │ ├── AvgPoolLowering.cpp │ │ │ │ │ ├── AvgPoolLowering.h │ │ │ │ │ ├── ConcatLowering.cpp │ │ │ │ │ ├── ConcatLowering.h │ │ │ │ │ ├── ConstantFolding.cpp │ │ │ │ │ ├── ConstantFolding.h │ │ │ │ │ ├── ConstantFolding.test.cpp │ │ │ │ │ ├── CopyLowering.cpp │ │ │ │ │ ├── CopyLowering.h │ │ │ │ │ ├── DataLayoutConversion.cpp │ │ │ │ │ ├── DataLayoutConversion.h │ │ │ │ │ ├── DataLayoutConversion.test.cpp │ │ │ │ │ ├── DeadBagElimination.cpp │ │ │ │ │ ├── DeadBagElimination.h │ │ │ │ │ ├── DeadObjectElimination.cpp │ │ │ │ │ ├── DeadObjectElimination.h │ │ │ │ │ ├── Duplicate.cpp │ │ │ │ │ ├── Duplicate.h │ │ │ │ │ ├── DuplicatedObjectReduction.cpp │ │ │ │ │ ├── DuplicatedObjectReduction.h │ │ │ │ │ ├── FeatureUnification.cpp │ │ │ │ │ ├── FeatureUnification.h │ │ │ │ │ ├── FreeInstrElimination.cpp │ │ │ │ │ ├── FreeInstrElimination.h │ │ │ │ │ ├── FreeInstrElimination.test.cpp │ │ │ │ │ ├── FreeOpElimination.cpp │ │ │ │ │ ├── FreeOpElimination.h │ │ │ │ │ ├── FreeOpElimination.test.cpp │ │ │ │ │ ├── GlobalDataGeneration.cpp │ │ │ │ │ ├── GlobalDataGeneration.h │ │ │ │ │ ├── IdenticalObjectReduction.cpp │ │ │ │ │ ├── IdenticalObjectReduction.h │ │ │ │ │ ├── IdenticalObjectReduction.test.cpp │ │ │ │ │ ├── IndirectCopyElimination.cpp │ │ │ │ │ ├── IndirectCopyElimination.h │ │ │ │ │ ├── IntrinsicSelection.cpp │ │ │ │ │ ├── IntrinsicSelection.h │ │ │ │ │ ├── Optimizations.cpp │ │ │ │ │ ├── Optimizations.h │ │ │ │ │ ├── Split.cpp │ │ │ │ │ └── Split.h │ │ │ │ ├── Usage.cpp │ │ │ │ ├── Usage.h │ │ │ │ └── coex/ │ │ │ │ ├── IR.h │ │ │ │ └── IR.test.cpp │ │ │ ├── exclude.me │ │ │ ├── frontend/ │ │ │ │ ├── CMakeLists.txt │ │ │ │ ├── caffe/ │ │ │ │ │ ├── CMakeLists.txt │ │ │ │ │ └── src/ │ │ │ │ │ ├── ConcatSpec.cpp │ │ │ │ │ ├── ConcatSpec.h │ │ │ │ │ ├── ConcatSpec.test.cpp │ │ │ │ │ ├── Context.cpp │ │ │ │ │ ├── Context.h │ │ │ │ │ ├── Convert.cpp │ │ │ │ │ ├── Convert.h │ │ │ │ │ ├── ConvolutionSpec.cpp │ │ │ │ │ ├── ConvolutionSpec.h │ │ │ │ │ ├── ConvolutionSpec.test.cpp │ │ │ │ │ ├── Entry.cpp │ │ │ │ │ ├── Frontend.cpp │ │ │ │ │ ├── Frontend.h │ │ │ │ │ ├── GraphBuilder.cpp │ │ │ │ │ ├── GraphBuilder.h │ │ │ │ │ ├── GraphBuilderRegistry.cpp │ │ │ │ │ ├── GraphBuilderRegistry.h │ │ │ │ │ ├── IRBuilder.h │ │ │ │ │ ├── Importer.cpp │ │ │ │ │ ├── Importer.h │ │ │ │ │ ├── Layer/ │ │ │ │ │ │ ├── BatchNorm.cpp │ │ │ │ │ │ ├── BatchNorm.h │ │ │ │ │ │ ├── Concatenation.cpp │ │ │ │ │ │ ├── Concatenation.h │ │ │ │ │ │ ├── Convolution.cpp │ │ │ │ │ │ ├── Convolution.h │ │ │ │ │ │ ├── Eltwise.cpp │ │ │ │ │ │ ├── Eltwise.h │ │ │ │ │ │ ├── Input.cpp │ │ │ │ │ │ ├── Input.h │ │ │ │ │ │ ├── Pooling.cpp │ │ │ │ │ │ ├── Pooling.h │ │ │ │ │ │ ├── ReLU.cpp │ │ │ │ │ │ ├── ReLU.h │ │ │ │ │ │ ├── Scale.cpp │ │ │ │ │ │ └── Scale.h │ │ │ │ │ ├── Padding.h │ │ │ │ │ ├── Padding.test.cpp │ │ │ │ │ ├── PaddingUtils.cpp │ │ │ │ │ ├── PaddingUtils.h │ │ │ │ │ ├── PoolingSpec.cpp │ │ │ │ │ ├── PoolingSpec.h │ │ │ │ │ ├── PoolingSpec.test.cpp │ │ │ │ │ ├── ShapeQuery.cpp │ │ │ │ │ └── ShapeQuery.h │ │ │ │ └── tflite/ │ │ │ │ ├── CMakeLists.txt │ │ │ │ ├── schema/ │ │ │ │ │ ├── schema.fbs │ │ │ │ │ └── schema.meta │ │ │ │ └── src/ │ │ │ │ ├── Context.cpp │ │ │ │ ├── Context.h │ │ │ │ ├── Convert.cpp │ │ │ │ ├── Convert.h │ │ │ │ ├── Entry.cpp │ │ │ │ ├── Frontend.cpp │ │ │ │ ├── Frontend.h │ │ │ │ ├── Frontend.test.cpp │ │ │ │ ├── GraphBuilder.h │ │ │ │ ├── GraphBuilderRegistry.h │ │ │ │ ├── IRBuilder.h │ │ │ │ ├── Op/ │ │ │ │ │ ├── Activation.cpp │ │ │ │ │ ├── Activation.h │ │ │ │ │ ├── AveragePool2D.cpp │ │ │ │ │ ├── AveragePool2D.h │ │ │ │ │ ├── Concatenation.cpp │ │ │ │ │ ├── Concatenation.h │ │ │ │ │ ├── Conv2D.cpp │ │ │ │ │ ├── Conv2D.h │ │ │ │ │ ├── DepthwiseConv2D.cpp │ │ │ │ │ ├── DepthwiseConv2D.h │ │ │ │ │ ├── Div.cpp │ │ │ │ │ ├── Div.h │ │ │ │ │ ├── MaxPool2D.cpp │ │ │ │ │ ├── MaxPool2D.h │ │ │ │ │ ├── Padding.cpp │ │ │ │ │ ├── Padding.h │ │ │ │ │ ├── ReLU.cpp │ │ │ │ │ ├── ReLU.h │ │ │ │ │ ├── ReLU6.cpp │ │ │ │ │ ├── ReLU6.h │ │ │ │ │ ├── Reshape.cpp │ │ │ │ │ ├── Reshape.h │ │ │ │ │ ├── Sub.cpp │ │ │ │ │ └── Sub.h │ │ │ │ ├── RawModel.h │ │ │ │ ├── RawModelLoader.cpp │ │ │ │ ├── RawModelLoader.h │ │ │ │ └── TensorBags.h │ │ │ ├── requires.cmake │ │ │ └── test/ │ │ │ ├── CMakeLists.txt │ │ │ ├── basic/ │ │ │ │ ├── 000/ │ │ │ │ │ ├── CMakeLists.txt │ │ │ │ │ └── enco.test.cpp │ │ │ │ └── CMakeLists.txt │ │ │ ├── binder.cpp │ │ │ ├── caffe/ │ │ │ │ ├── CMakeLists.txt │ │ │ │ └── runall.sh │ │ │ └── tflite/ │ │ │ ├── AveragePool2D_000/ │ │ │ │ ├── INFERENCE │ │ │ │ └── test.recipe │ │ │ ├── AveragePool2D_001/ │ │ │ │ ├── INFERENCE │ │ │ │ └── test.recipe │ │ │ ├── CMakeLists.txt │ │ │ ├── Concat_000/ │ │ │ │ ├── INFERENCE │ │ │ │ └── test.recipe │ │ │ ├── Concat_001/ │ │ │ │ ├── INFERENCE │ │ │ │ └── test.recipe │ │ │ ├── Concat_002/ │ │ │ │ ├── INFERENCE │ │ │ │ └── test.recipe │ │ │ ├── Concat_003/ │ │ │ │ ├── INFERENCE │ │ │ │ └── test.recipe │ │ │ ├── Conv2D_000/ │ │ │ │ ├── INFERENCE │ │ │ │ └── test.recipe │ │ │ ├── Conv2D_001/ │ │ │ │ ├── INFERENCE │ │ │ │ └── test.recipe │ │ │ ├── Conv2D_002/ │ │ │ │ ├── INFERENCE │ │ │ │ └── test.recipe │ │ │ ├── Conv2D_003/ │ │ │ │ ├── INFERENCE │ │ │ │ └── test.recipe │ │ │ ├── Conv2D_004/ │ │ │ │ ├── INFERENCE │ │ │ │ └── test.recipe │ │ │ ├── DepthwiseConv2D_000/ │ │ │ │ ├── INFERENCE │ │ │ │ └── test.recipe │ │ │ ├── DepthwiseConv2D_001/ │ │ │ │ ├── INFERENCE │ │ │ │ └── test.recipe │ │ │ ├── Div_000/ │ │ │ │ ├── INFERENCE │ │ │ │ └── test.recipe │ │ │ ├── MaxPool2D_000/ │ │ │ │ ├── INFERENCE │ │ │ │ └── test.recipe │ │ │ ├── ReLU6_000/ │ │ │ │ ├── INFERENCE │ │ │ │ └── test.recipe │ │ │ ├── ReLU_000/ │ │ │ │ ├── INFERENCE │ │ │ │ └── test.recipe │ │ │ ├── Regression_0000/ │ │ │ │ ├── INFERENCE │ │ │ │ └── test.recipe │ │ │ ├── Regression_0001/ │ │ │ │ ├── INFERENCE │ │ │ │ └── test.recipe │ │ │ ├── Regression_0002/ │ │ │ │ ├── INFERENCE │ │ │ │ └── test.recipe │ │ │ ├── Regression_0003/ │ │ │ │ ├── INFERENCE │ │ │ │ └── test.recipe │ │ │ ├── Regression_0004/ │ │ │ │ ├── INFERENCE │ │ │ │ └── test.recipe │ │ │ ├── Reshape_000/ │ │ │ │ ├── INFERENCE │ │ │ │ └── test.recipe │ │ │ ├── Sub_000/ │ │ │ │ ├── INFERENCE │ │ │ │ └── test.recipe │ │ │ ├── empty/ │ │ │ │ ├── INFERENCE │ │ │ │ └── test.recipe │ │ │ └── runall.sh │ │ ├── enco-intf/ │ │ │ ├── CMakeLists.txt │ │ │ ├── README.md │ │ │ ├── cmdline/ │ │ │ │ ├── CMakeLists.txt │ │ │ │ └── include/ │ │ │ │ └── cmdline/ │ │ │ │ └── View.h │ │ │ ├── exclude.me │ │ │ └── frontend/ │ │ │ ├── CMakeLists.txt │ │ │ └── include/ │ │ │ └── enco/ │ │ │ ├── Bundle.h │ │ │ └── Frontend.h │ │ ├── encodump/ │ │ │ ├── CMakeLists.txt │ │ │ ├── README.md │ │ │ ├── exclude.me │ │ │ ├── requires.cmake │ │ │ └── src/ │ │ │ ├── Driver.cpp │ │ │ ├── Dump.cpp │ │ │ └── Dump.h │ │ ├── mir/ │ │ │ ├── CMakeLists.txt │ │ │ ├── Readme.md │ │ │ ├── exclude.me │ │ │ ├── include/ │ │ │ │ ├── mir/ │ │ │ │ │ ├── Attributes.h │ │ │ │ │ ├── Common.h │ │ │ │ │ ├── DataFormat.h │ │ │ │ │ ├── DataType.h │ │ │ │ │ ├── ExternalRegion.h │ │ │ │ │ ├── Graph.h │ │ │ │ │ ├── GraphPatternMatcher.h │ │ │ │ │ ├── Index.h │ │ │ │ │ ├── IrDotDumper.h │ │ │ │ │ ├── OpDefs.h │ │ │ │ │ ├── Operation.h │ │ │ │ │ ├── Operations.inc │ │ │ │ │ ├── Quantization.h │ │ │ │ │ ├── Region.h │ │ │ │ │ ├── Shape.h │ │ │ │ │ ├── ShapeRange.h │ │ │ │ │ ├── Tensor.h │ │ │ │ │ ├── TensorType.h │ │ │ │ │ ├── TensorUtil.h │ │ │ │ │ ├── TensorVariant.h │ │ │ │ │ ├── Visitor.h │ │ │ │ │ └── ops/ │ │ │ │ │ ├── AbsOp.h │ │ │ │ │ ├── AddOp.h │ │ │ │ │ ├── AvgPool2DOp.h │ │ │ │ │ ├── BinaryElementwiseOp.h │ │ │ │ │ ├── BroadcastOp.h │ │ │ │ │ ├── CappedReluOp.h │ │ │ │ │ ├── ConcatOp.h │ │ │ │ │ ├── ConstantOp.h │ │ │ │ │ ├── Conv2DOp.h │ │ │ │ │ ├── Deconv2DOp.h │ │ │ │ │ ├── DepthwiseConv2DOp.h │ │ │ │ │ ├── DequantizeOp.h │ │ │ │ │ ├── DivOp.h │ │ │ │ │ ├── EluOp.h │ │ │ │ │ ├── EqualOp.h │ │ │ │ │ ├── FullyConnectedOp.h │ │ │ │ │ ├── GatherOp.h │ │ │ │ │ ├── GreaterOp.h │ │ │ │ │ ├── HardSwishOp.h │ │ │ │ │ ├── InputOp.h │ │ │ │ │ ├── LeakyReluOp.h │ │ │ │ │ ├── LessOp.h │ │ │ │ │ ├── MaxOp.h │ │ │ │ │ ├── MaxPool2DOp.h │ │ │ │ │ ├── MulOp.h │ │ │ │ │ ├── OutputOp.h │ │ │ │ │ ├── PadOp.h │ │ │ │ │ ├── PaddingType.h │ │ │ │ │ ├── QuantizeOp.h │ │ │ │ │ ├── ReduceMeanOp.h │ │ │ │ │ ├── ReduceOp.h │ │ │ │ │ ├── ReluOp.h │ │ │ │ │ ├── ReshapeOp.h │ │ │ │ │ ├── ResizeOp.h │ │ │ │ │ ├── SigmoidOp.h │ │ │ │ │ ├── SliceOp.h │ │ │ │ │ ├── SoftmaxOp.h │ │ │ │ │ ├── SqrtOp.h │ │ │ │ │ ├── SqueezeOp.h │ │ │ │ │ ├── SubOp.h │ │ │ │ │ ├── TanhOp.h │ │ │ │ │ └── TransposeOp.h │ │ │ │ ├── mir_caffe2_importer/ │ │ │ │ │ └── caffe2_importer.h │ │ │ │ ├── mir_caffe_importer/ │ │ │ │ │ └── caffe_importer.h │ │ │ │ ├── mir_onnx_importer/ │ │ │ │ │ └── ONNXImporterImpl.h │ │ │ │ └── mir_tflite_importer/ │ │ │ │ └── tflite_importer.h │ │ │ ├── src/ │ │ │ │ ├── DotGraph.cpp │ │ │ │ ├── DotGraph.h │ │ │ │ ├── DotNodeBuilder.cpp │ │ │ │ ├── DotNodeBuilder.h │ │ │ │ ├── Graph.cpp │ │ │ │ ├── GraphPatternMatcher.cpp │ │ │ │ ├── Index.cpp │ │ │ │ ├── IrDotDumper.cpp │ │ │ │ ├── Operation.cpp │ │ │ │ ├── Shape.cpp │ │ │ │ ├── Tensor.cpp │ │ │ │ ├── TensorVariant.cpp │ │ │ │ ├── Visitor.cpp │ │ │ │ ├── mir_caffe2_importer/ │ │ │ │ │ ├── CMakeLists.txt │ │ │ │ │ ├── caffe2_importer.cpp │ │ │ │ │ ├── caffe2_op_creator.cpp │ │ │ │ │ ├── caffe2_op_creator.h │ │ │ │ │ ├── caffe2_op_types.h │ │ │ │ │ ├── caffe2_proto_helper.cpp │ │ │ │ │ └── caffe2_proto_helper.h │ │ │ │ ├── mir_caffe_importer/ │ │ │ │ │ ├── CMakeLists.txt │ │ │ │ │ ├── caffe_importer.cpp │ │ │ │ │ ├── caffe_op_creator.cpp │ │ │ │ │ ├── caffe_op_creator.h │ │ │ │ │ └── caffe_op_types.h │ │ │ │ ├── mir_onnx_importer/ │ │ │ │ │ ├── AttributeHelpers.h │ │ │ │ │ ├── CMakeLists.txt │ │ │ │ │ ├── ConvPoolHelpers.cpp │ │ │ │ │ ├── ConvPoolHelpers.h │ │ │ │ │ ├── ONNXHelpers.cpp │ │ │ │ │ ├── ONNXHelpers.h │ │ │ │ │ ├── ONNXImporterImpl.cpp │ │ │ │ │ ├── ONNXNodeConverterRegistry.cpp │ │ │ │ │ ├── ONNXNodeConverterRegistry.h │ │ │ │ │ ├── ONNXNodeConverterRegistry.test.cpp │ │ │ │ │ ├── ONNXOpRegistration.h │ │ │ │ │ └── Op/ │ │ │ │ │ ├── Abs.cpp │ │ │ │ │ ├── Abs.h │ │ │ │ │ ├── Add.cpp │ │ │ │ │ ├── Add.h │ │ │ │ │ ├── AveragePool.cpp │ │ │ │ │ ├── AveragePool.h │ │ │ │ │ ├── BatchNormalization.cpp │ │ │ │ │ ├── BatchNormalization.h │ │ │ │ │ ├── Concat.cpp │ │ │ │ │ ├── Concat.h │ │ │ │ │ ├── Constant.cpp │ │ │ │ │ ├── Constant.h │ │ │ │ │ ├── Conv.cpp │ │ │ │ │ ├── Conv.h │ │ │ │ │ ├── ConvTranspose.cpp │ │ │ │ │ ├── ConvTranspose.h │ │ │ │ │ ├── Div.cpp │ │ │ │ │ ├── Div.h │ │ │ │ │ ├── Dropout.cpp │ │ │ │ │ ├── Dropout.h │ │ │ │ │ ├── Equal.cpp │ │ │ │ │ ├── Equal.h │ │ │ │ │ ├── Expand.cpp │ │ │ │ │ ├── Expand.h │ │ │ │ │ ├── Flatten.cpp │ │ │ │ │ ├── Flatten.h │ │ │ │ │ ├── Gather.cpp │ │ │ │ │ ├── Gather.h │ │ │ │ │ ├── Gemm.cpp │ │ │ │ │ ├── Gemm.h │ │ │ │ │ ├── GlobalAveragePool.cpp │ │ │ │ │ ├── GlobalAveragePool.h │ │ │ │ │ ├── Greater.cpp │ │ │ │ │ ├── Greater.h │ │ │ │ │ ├── Identity.cpp │ │ │ │ │ ├── Identity.h │ │ │ │ │ ├── Less.cpp │ │ │ │ │ ├── Less.h │ │ │ │ │ ├── MatMul.cpp │ │ │ │ │ ├── MatMul.h │ │ │ │ │ ├── Max.cpp │ │ │ │ │ ├── Max.h │ │ │ │ │ ├── MaxPool.cpp │ │ │ │ │ ├── MaxPool.h │ │ │ │ │ ├── Mul.cpp │ │ │ │ │ ├── Mul.h │ │ │ │ │ ├── Pad.cpp │ │ │ │ │ ├── Pad.h │ │ │ │ │ ├── Reciprocal.cpp │ │ │ │ │ ├── Reciprocal.h │ │ │ │ │ ├── ReduceMean.cpp │ │ │ │ │ ├── ReduceMean.h │ │ │ │ │ ├── Relu.cpp │ │ │ │ │ ├── Relu.h │ │ │ │ │ ├── Reshape.cpp │ │ │ │ │ ├── Reshape.h │ │ │ │ │ ├── Shape.cpp │ │ │ │ │ ├── Shape.h │ │ │ │ │ ├── Sigmoid.cpp │ │ │ │ │ ├── Sigmoid.h │ │ │ │ │ ├── Softmax.cpp │ │ │ │ │ ├── Softmax.h │ │ │ │ │ ├── Sqrt.cpp │ │ │ │ │ ├── Sqrt.h │ │ │ │ │ ├── Sub.cpp │ │ │ │ │ ├── Sub.h │ │ │ │ │ ├── Sum.cpp │ │ │ │ │ ├── Sum.h │ │ │ │ │ ├── Tanh.cpp │ │ │ │ │ ├── Tanh.h │ │ │ │ │ ├── Transpose.cpp │ │ │ │ │ ├── Transpose.h │ │ │ │ │ ├── Unsqueeze.cpp │ │ │ │ │ ├── Unsqueeze.h │ │ │ │ │ ├── Upsample.cpp │ │ │ │ │ └── Upsample.h │ │ │ │ ├── mir_tflite_importer/ │ │ │ │ │ ├── CMakeLists.txt │ │ │ │ │ ├── schema/ │ │ │ │ │ │ ├── schema.fbs │ │ │ │ │ │ ├── schema.meta │ │ │ │ │ │ ├── schema_v0.fbs │ │ │ │ │ │ ├── schema_v0.meta │ │ │ │ │ │ ├── schema_v1.fbs │ │ │ │ │ │ ├── schema_v1.meta │ │ │ │ │ │ ├── schema_v2.fbs │ │ │ │ │ │ ├── schema_v2.meta │ │ │ │ │ │ ├── schema_v3.fbs │ │ │ │ │ │ └── schema_v3.meta │ │ │ │ │ ├── tflite_importer.cpp │ │ │ │ │ ├── tflite_op_creator.cpp │ │ │ │ │ └── tflite_op_creator.h │ │ │ │ └── ops/ │ │ │ │ ├── AvgPool2DOp.cpp │ │ │ │ ├── BinaryElementwiseOp.cpp │ │ │ │ ├── BroadcastOp.cpp │ │ │ │ ├── ConcatOp.cpp │ │ │ │ ├── Conv2DOp.cpp │ │ │ │ ├── DeConv2DOp.cpp │ │ │ │ ├── DepthwiseConv2DOp.cpp │ │ │ │ ├── FullyConnectedOp.cpp │ │ │ │ ├── GatherOp.cpp │ │ │ │ ├── MaxPool2DOp.cpp │ │ │ │ ├── PadOp.cpp │ │ │ │ ├── ReduceOp.cpp │ │ │ │ ├── SliceOp.cpp │ │ │ │ ├── SqueezeOp.cpp │ │ │ │ └── TransposeOp.cpp │ │ │ └── unittests/ │ │ │ ├── CMakeLists.txt │ │ │ ├── Index.cpp │ │ │ ├── NodeReplacer.cpp │ │ │ ├── Operation.cpp │ │ │ ├── ShapeInference.cpp │ │ │ ├── ShapeRange.cpp │ │ │ └── TensorVariant.cpp │ │ ├── mir-interpreter/ │ │ │ ├── CMakeLists.txt │ │ │ ├── README.md │ │ │ ├── exclude.me │ │ │ ├── include/ │ │ │ │ └── MirInterpreter.h │ │ │ ├── requires.cmake │ │ │ └── src/ │ │ │ ├── MirInterpreter.cpp │ │ │ └── ops/ │ │ │ ├── Abs.cpp │ │ │ ├── Abs.h │ │ │ ├── Add.cpp │ │ │ ├── Add.h │ │ │ ├── AvgPool2D.cpp │ │ │ ├── AvgPool2D.h │ │ │ ├── CappedReLU.cpp │ │ │ ├── CappedReLU.h │ │ │ ├── Common.cpp │ │ │ ├── Common.h │ │ │ ├── Concat.cpp │ │ │ ├── Concat.h │ │ │ ├── Conv2D.cpp │ │ │ ├── Conv2D.h │ │ │ ├── DeConv2D.cpp │ │ │ ├── DeConv2D.h │ │ │ ├── DepthwiseConv2D.cpp │ │ │ ├── DepthwiseConv2D.h │ │ │ ├── Div.cpp │ │ │ ├── Div.h │ │ │ ├── ELU.cpp │ │ │ ├── ELU.h │ │ │ ├── Equal.cpp │ │ │ ├── Equal.h │ │ │ ├── Fill.h │ │ │ ├── FullyConnected.cpp │ │ │ ├── FullyConnected.h │ │ │ ├── Gather.cpp │ │ │ ├── Gather.h │ │ │ ├── Greater.cpp │ │ │ ├── Greater.h │ │ │ ├── HardSwish.cpp │ │ │ ├── HardSwish.h │ │ │ ├── LeakyReLU.cpp │ │ │ ├── LeakyReLU.h │ │ │ ├── Less.cpp │ │ │ ├── Less.h │ │ │ ├── Max.cpp │ │ │ ├── Max.h │ │ │ ├── MaxPool2D.cpp │ │ │ ├── MaxPool2D.h │ │ │ ├── Mul.cpp │ │ │ ├── Mul.h │ │ │ ├── Pad.cpp │ │ │ ├── Pad.h │ │ │ ├── Quantization.cpp │ │ │ ├── Quantization.h │ │ │ ├── QuantizationHelpers.h │ │ │ ├── ReLU.cpp │ │ │ ├── ReLU.h │ │ │ ├── ReduceMean.cpp │ │ │ ├── ReduceMean.h │ │ │ ├── Reshape.cpp │ │ │ ├── Reshape.h │ │ │ ├── Sigmoid.cpp │ │ │ ├── Sigmoid.h │ │ │ ├── Slice.cpp │ │ │ ├── Slice.h │ │ │ ├── Softmax.cpp │ │ │ ├── Softmax.h │ │ │ ├── Sqrt.cpp │ │ │ ├── Sqrt.h │ │ │ ├── Sub.cpp │ │ │ ├── Sub.h │ │ │ ├── Tanh.cpp │ │ │ ├── Tanh.h │ │ │ ├── Transpose.cpp │ │ │ └── Transpose.h │ │ ├── mir2loco/ │ │ │ ├── CMakeLists.txt │ │ │ ├── README.md │ │ │ ├── exclude.me │ │ │ ├── include/ │ │ │ │ └── mir2loco.h │ │ │ ├── requires.cmake │ │ │ └── src/ │ │ │ ├── mir2loco.cpp │ │ │ └── mir2loco.test.cpp │ │ ├── moco/ │ │ │ ├── CMakeLists.txt │ │ │ ├── README.md │ │ │ ├── exclude.me │ │ │ ├── import/ │ │ │ │ ├── CMakeLists.txt │ │ │ │ ├── README.md │ │ │ │ ├── include/ │ │ │ │ │ └── moco/ │ │ │ │ │ ├── GraphHelper.h │ │ │ │ │ ├── Import/ │ │ │ │ │ │ ├── GraphBuilder.h │ │ │ │ │ │ ├── GraphBuilderContext.h │ │ │ │ │ │ ├── GraphBuilderRegistry.h │ │ │ │ │ │ ├── ModelSignature.h │ │ │ │ │ │ ├── Nodes/ │ │ │ │ │ │ │ ├── Add.h │ │ │ │ │ │ │ ├── AvgPool.h │ │ │ │ │ │ │ ├── BiasAdd.h │ │ │ │ │ │ │ ├── Concat.h │ │ │ │ │ │ │ ├── Const.h │ │ │ │ │ │ │ ├── Conv2D.h │ │ │ │ │ │ │ ├── Conv2DBackpropInput.h │ │ │ │ │ │ │ ├── DepthwiseConv2dNative.h │ │ │ │ │ │ │ ├── FakeQuantWithMinMaxVars.h │ │ │ │ │ │ │ ├── FusedBatchNorm.h │ │ │ │ │ │ │ ├── Identity.h │ │ │ │ │ │ │ ├── MaxPool.h │ │ │ │ │ │ │ ├── Maximum.h │ │ │ │ │ │ │ ├── Mean.h │ │ │ │ │ │ │ ├── Mul.h │ │ │ │ │ │ │ ├── Pack.h │ │ │ │ │ │ │ ├── Pad.h │ │ │ │ │ │ │ ├── Placeholder.h │ │ │ │ │ │ │ ├── RealDiv.h │ │ │ │ │ │ │ ├── Relu.h │ │ │ │ │ │ │ ├── Relu6.h │ │ │ │ │ │ │ ├── Reshape.h │ │ │ │ │ │ │ ├── Rsqrt.h │ │ │ │ │ │ │ ├── Shape.h │ │ │ │ │ │ │ ├── Softmax.h │ │ │ │ │ │ │ ├── Sqrt.h │ │ │ │ │ │ │ ├── SquaredDifference.h │ │ │ │ │ │ │ ├── Squeeze.h │ │ │ │ │ │ │ ├── StopGradient.h │ │ │ │ │ │ │ ├── StridedSlice.h │ │ │ │ │ │ │ ├── Sub.h │ │ │ │ │ │ │ └── Tanh.h │ │ │ │ │ │ └── Nodes.h │ │ │ │ │ └── Importer.h │ │ │ │ └── src/ │ │ │ │ ├── Convert.cpp │ │ │ │ ├── Convert.h │ │ │ │ ├── GraphBuilderContext.cpp │ │ │ │ ├── GraphBuilderContext.test.cpp │ │ │ │ ├── GraphBuilderRegistry.cpp │ │ │ │ ├── Importer.cpp │ │ │ │ ├── Importer.test.cpp │ │ │ │ ├── ModelSignature.cpp │ │ │ │ ├── Nodes/ │ │ │ │ │ ├── Add.cpp │ │ │ │ │ ├── Add.test.cpp │ │ │ │ │ ├── AvgPool.cpp │ │ │ │ │ ├── AvgPool.test.cpp │ │ │ │ │ ├── BiasAdd.cpp │ │ │ │ │ ├── BiasAdd.test.cpp │ │ │ │ │ ├── Concat.cpp │ │ │ │ │ ├── Concat.test.cpp │ │ │ │ │ ├── Const.cpp │ │ │ │ │ ├── Const.test.cpp │ │ │ │ │ ├── Conv2D.cpp │ │ │ │ │ ├── Conv2D.test.cpp │ │ │ │ │ ├── Conv2DBackpropInput.cpp │ │ │ │ │ ├── Conv2DBackpropInput.test.cpp │ │ │ │ │ ├── DepthwiseConv2dNative.cpp │ │ │ │ │ ├── DepthwiseConv2dNative.test.cpp │ │ │ │ │ ├── FakeQuantWithMinMaxVars.cpp │ │ │ │ │ ├── FakeQuantWithMinMaxVars.test.cpp │ │ │ │ │ ├── FusedBatchNorm.cpp │ │ │ │ │ ├── FusedBatchNorm.test.cpp │ │ │ │ │ ├── Identity.cpp │ │ │ │ │ ├── MaxPool.cpp │ │ │ │ │ ├── MaxPool.test.cpp │ │ │ │ │ ├── Maximum.cpp │ │ │ │ │ ├── Maximum.test.cpp │ │ │ │ │ ├── Mean.cpp │ │ │ │ │ ├── Mean.test.cpp │ │ │ │ │ ├── Mul.cpp │ │ │ │ │ ├── Mul.test.cpp │ │ │ │ │ ├── Pack.cpp │ │ │ │ │ ├── Pack.test.cpp │ │ │ │ │ ├── Pad.cpp │ │ │ │ │ ├── Pad.test.cpp │ │ │ │ │ ├── Placeholder.cpp │ │ │ │ │ ├── Placeholder.test.cpp │ │ │ │ │ ├── RealDiv.cpp │ │ │ │ │ ├── RealDiv.test.cpp │ │ │ │ │ ├── Relu.cpp │ │ │ │ │ ├── Relu.test.cpp │ │ │ │ │ ├── Relu6.cpp │ │ │ │ │ ├── Relu6.test.cpp │ │ │ │ │ ├── Reshape.cpp │ │ │ │ │ ├── Reshape.test.cpp │ │ │ │ │ ├── Rsqrt.cpp │ │ │ │ │ ├── Rsqrt.test.cpp │ │ │ │ │ ├── Shape.cpp │ │ │ │ │ ├── Shape.test.cpp │ │ │ │ │ ├── Softmax.cpp │ │ │ │ │ ├── Softmax.test.cpp │ │ │ │ │ ├── Sqrt.cpp │ │ │ │ │ ├── Sqrt.test.cpp │ │ │ │ │ ├── SquaredDifference.cpp │ │ │ │ │ ├── SquaredDifference.test.cpp │ │ │ │ │ ├── Squeeze.cpp │ │ │ │ │ ├── Squeeze.test.cpp │ │ │ │ │ ├── StopGradient.cpp │ │ │ │ │ ├── StopGradient.test.cpp │ │ │ │ │ ├── StridedSlice.cpp │ │ │ │ │ ├── StridedSlice.test.cpp │ │ │ │ │ ├── Sub.cpp │ │ │ │ │ ├── Sub.test.cpp │ │ │ │ │ ├── Tanh.cpp │ │ │ │ │ └── Tanh.test.cpp │ │ │ │ ├── TestHelper.h │ │ │ │ └── TestHelper.test.cpp │ │ │ ├── lang/ │ │ │ │ ├── CMakeLists.txt │ │ │ │ ├── README.md │ │ │ │ ├── include/ │ │ │ │ │ └── moco/ │ │ │ │ │ ├── IR/ │ │ │ │ │ │ ├── Nodes/ │ │ │ │ │ │ │ ├── TFAdd.h │ │ │ │ │ │ │ ├── TFAvgPool.h │ │ │ │ │ │ │ ├── TFBiasAdd.h │ │ │ │ │ │ │ ├── TFConcatV2.h │ │ │ │ │ │ │ ├── TFConst.h │ │ │ │ │ │ │ ├── TFConv2D.h │ │ │ │ │ │ │ ├── TFConv2DBackpropInput.h │ │ │ │ │ │ │ ├── TFDepthwiseConv2dNative.h │ │ │ │ │ │ │ ├── TFFakeQuantWithMinMaxVars.h │ │ │ │ │ │ │ ├── TFFusedBatchNorm.h │ │ │ │ │ │ │ ├── TFIdentity.h │ │ │ │ │ │ │ ├── TFMaxPool.h │ │ │ │ │ │ │ ├── TFMaximum.h │ │ │ │ │ │ │ ├── TFMean.h │ │ │ │ │ │ │ ├── TFMul.h │ │ │ │ │ │ │ ├── TFPack.h │ │ │ │ │ │ │ ├── TFPad.h │ │ │ │ │ │ │ ├── TFPlaceholder.h │ │ │ │ │ │ │ ├── TFPush.h │ │ │ │ │ │ │ ├── TFRealDiv.h │ │ │ │ │ │ │ ├── TFRelu.h │ │ │ │ │ │ │ ├── TFRelu6.h │ │ │ │ │ │ │ ├── TFReshape.h │ │ │ │ │ │ │ ├── TFRsqrt.h │ │ │ │ │ │ │ ├── TFShape.h │ │ │ │ │ │ │ ├── TFSoftmax.h │ │ │ │ │ │ │ ├── TFSqrt.h │ │ │ │ │ │ │ ├── TFSquaredDifference.h │ │ │ │ │ │ │ ├── TFSqueeze.h │ │ │ │ │ │ │ ├── TFStopGradient.h │ │ │ │ │ │ │ ├── TFStridedSlice.h │ │ │ │ │ │ │ ├── TFSub.h │ │ │ │ │ │ │ └── TFTanh.h │ │ │ │ │ │ ├── TFDataLayout.h │ │ │ │ │ │ ├── TFDialect.h │ │ │ │ │ │ ├── TFNode.h │ │ │ │ │ │ ├── TFNodeDecl.h │ │ │ │ │ │ ├── TFNodeImpl.h │ │ │ │ │ │ ├── TFNodeVisitor.forward.h │ │ │ │ │ │ ├── TFNodeVisitor.h │ │ │ │ │ │ ├── TFNodes.h │ │ │ │ │ │ ├── TFNodes.lst │ │ │ │ │ │ ├── TFOpcode.h │ │ │ │ │ │ ├── TFPadding.h │ │ │ │ │ │ └── VariadicArityNode.h │ │ │ │ │ └── Names.h │ │ │ │ └── src/ │ │ │ │ └── IR/ │ │ │ │ ├── Nodes/ │ │ │ │ │ ├── TFAdd.test.cpp │ │ │ │ │ ├── TFAvgPool.test.cpp │ │ │ │ │ ├── TFBiasAdd.test.cpp │ │ │ │ │ ├── TFConcatV2.test.cpp │ │ │ │ │ ├── TFConst.cpp │ │ │ │ │ ├── TFConst.test.cpp │ │ │ │ │ ├── TFConv2D.test.cpp │ │ │ │ │ ├── TFConv2DBackpropInput.test.cpp │ │ │ │ │ ├── TFDepthwiseConv2dNative.test.cpp │ │ │ │ │ ├── TFFakeQuantWithMinMaxVars.test.cpp │ │ │ │ │ ├── TFFusedBatchNorm.test.cpp │ │ │ │ │ ├── TFIdentity.test.cpp │ │ │ │ │ ├── TFMaxPool.test.cpp │ │ │ │ │ ├── TFMaximum.test.cpp │ │ │ │ │ ├── TFMean.test.cpp │ │ │ │ │ ├── TFMul.test.cpp │ │ │ │ │ ├── TFPack.test.cpp │ │ │ │ │ ├── TFPad.test.cpp │ │ │ │ │ ├── TFPlaceholder.test.cpp │ │ │ │ │ ├── TFRealDiv.test.cpp │ │ │ │ │ ├── TFRelu.test.cpp │ │ │ │ │ ├── TFRelu6.test.cpp │ │ │ │ │ ├── TFReshape.test.cpp │ │ │ │ │ ├── TFRsqrt.test.cpp │ │ │ │ │ ├── TFShape.test.cpp │ │ │ │ │ ├── TFSoftmax.test.cpp │ │ │ │ │ ├── TFSqrt.test.cpp │ │ │ │ │ ├── TFSquaredDifference.test.cpp │ │ │ │ │ ├── TFSqueeze.test.cpp │ │ │ │ │ ├── TFStopGradient.test.cpp │ │ │ │ │ ├── TFStridedSlice.test.cpp │ │ │ │ │ ├── TFSub.test.cpp │ │ │ │ │ └── TFTanh.test.cpp │ │ │ │ ├── TFDialect.cpp │ │ │ │ ├── TFDialect.test.cpp │ │ │ │ ├── TFNode.cpp │ │ │ │ ├── TFNode.test.cpp │ │ │ │ └── VariadicArityNode.test.cpp │ │ │ ├── pass/ │ │ │ │ ├── CMakeLists.txt │ │ │ │ ├── README.md │ │ │ │ ├── include/ │ │ │ │ │ └── moco/ │ │ │ │ │ └── Pass/ │ │ │ │ │ ├── Passes/ │ │ │ │ │ │ ├── ConstantFoldAdd.h │ │ │ │ │ │ ├── ConstantFoldMul.h │ │ │ │ │ │ ├── ConstantFoldPack.h │ │ │ │ │ │ ├── ConstantFoldStridedSlice.h │ │ │ │ │ │ ├── FuseBinaryIntoPreceding.h │ │ │ │ │ │ ├── RemoveTFIdentityNode.h │ │ │ │ │ │ ├── ResolveConstantShape.h │ │ │ │ │ │ ├── ResolveFusedBatchNorm.h │ │ │ │ │ │ ├── ResolveReshapeWildcardDim.h │ │ │ │ │ │ ├── ResolveSquaredDifference.h │ │ │ │ │ │ └── SqueezeReduceNode.h │ │ │ │ │ └── Passes.h │ │ │ │ └── src/ │ │ │ │ ├── ConstantFoldAdd.test.cpp │ │ │ │ ├── ConstantFoldHelper.cpp │ │ │ │ ├── ConstantFoldHelper.h │ │ │ │ ├── ConstantFoldMul.test.cpp │ │ │ │ ├── ConstantFoldPack.test.cpp │ │ │ │ ├── ConstantFoldStridedSlice.test.cpp │ │ │ │ ├── Passes/ │ │ │ │ │ ├── ConstantFoldAdd.cpp │ │ │ │ │ ├── ConstantFoldMul.cpp │ │ │ │ │ ├── ConstantFoldPack.cpp │ │ │ │ │ ├── ConstantFoldStridedSlice.cpp │ │ │ │ │ ├── FuseBinaryIntoPreceding.cpp │ │ │ │ │ ├── RemoveTFIdentityNode.cpp │ │ │ │ │ ├── ResolveConstantShape.cpp │ │ │ │ │ ├── ResolveFusedBatchNorm.cpp │ │ │ │ │ ├── ResolveReshapeWildcardDim.cpp │ │ │ │ │ ├── ResolveSquaredDifference.cpp │ │ │ │ │ └── SqueezeReduceNode.cpp │ │ │ │ ├── TensorPackEnumerator.cpp │ │ │ │ ├── TensorPackEnumerator.h │ │ │ │ ├── TensorSliceEnumerator.cpp │ │ │ │ ├── TensorSliceEnumerator.h │ │ │ │ ├── TensorSliceEnumerator.test.cpp │ │ │ │ ├── TestHelper.h │ │ │ │ └── TestHelper.test.cpp │ │ │ ├── requires.cmake │ │ │ ├── service/ │ │ │ │ ├── CMakeLists.txt │ │ │ │ ├── README.md │ │ │ │ ├── include/ │ │ │ │ │ └── moco/ │ │ │ │ │ └── Service/ │ │ │ │ │ ├── TFShapeInferenceRule.h │ │ │ │ │ └── TFTypeInferenceRule.h │ │ │ │ └── src/ │ │ │ │ ├── Service/ │ │ │ │ │ ├── TFShapeInferenceRule.cpp │ │ │ │ │ ├── TFShapeInferenceRule.test.cpp │ │ │ │ │ └── TFTypeInferenceRule.cpp │ │ │ │ ├── TestHelper.h │ │ │ │ └── TestHelper.test.cpp │ │ │ └── support/ │ │ │ ├── CMakeLists.txt │ │ │ ├── README.md │ │ │ ├── include/ │ │ │ │ └── moco/ │ │ │ │ └── Support/ │ │ │ │ ├── NodeAs.h │ │ │ │ └── TFShapeInferenceHelper.h │ │ │ └── src/ │ │ │ └── TFShapeInferenceHelper.cpp │ │ ├── moco-tf/ │ │ │ ├── CMakeLists.txt │ │ │ ├── README.md │ │ │ ├── doc/ │ │ │ │ └── Conversion.md │ │ │ ├── exclude.me │ │ │ ├── include/ │ │ │ │ └── moco/ │ │ │ │ └── tf/ │ │ │ │ └── Frontend.h │ │ │ ├── requires.cmake │ │ │ └── src/ │ │ │ ├── BroadcastHelper.cpp │ │ │ ├── BroadcastHelper.h │ │ │ ├── BroadcastHelper.test.cpp │ │ │ ├── CanonicalEltwiseInputConnector.cpp │ │ │ ├── CanonicalEltwiseInputConnector.h │ │ │ ├── Canonicalization/ │ │ │ │ ├── AddCanonicalizer.cpp │ │ │ │ ├── AddCanonicalizer.h │ │ │ │ ├── AvgPoolCanonicalizer.cpp │ │ │ │ ├── AvgPoolCanonicalizer.h │ │ │ │ ├── BiasAddCanonicalizer.cpp │ │ │ │ ├── BiasAddCanonicalizer.h │ │ │ │ ├── ConcatV2Canonicalizer.cpp │ │ │ │ ├── ConcatV2Canonicalizer.h │ │ │ │ ├── ConstCanonicalizer.cpp │ │ │ │ ├── ConstCanonicalizer.h │ │ │ │ ├── Conv2DBackpropInputCanonicalizer.cpp │ │ │ │ ├── Conv2DBackpropInputCanonicalizer.h │ │ │ │ ├── Conv2DCanonicalizer.cpp │ │ │ │ ├── Conv2DCanonicalizer.h │ │ │ │ ├── DepthwiseConv2dNativeCanonicalizer.cpp │ │ │ │ ├── DepthwiseConv2dNativeCanonicalizer.h │ │ │ │ ├── IdentityCanonicalizer.cpp │ │ │ │ ├── IdentityCanonicalizer.h │ │ │ │ ├── MaxPoolCanonicalizer.cpp │ │ │ │ ├── MaxPoolCanonicalizer.h │ │ │ │ ├── MaximumCanonicalizer.cpp │ │ │ │ ├── MaximumCanonicalizer.h │ │ │ │ ├── MeanCanonicalizer.cpp │ │ │ │ ├── MeanCanonicalizer.h │ │ │ │ ├── MulCanonicalizer.cpp │ │ │ │ ├── MulCanonicalizer.h │ │ │ │ ├── PadCanonicalizer.cpp │ │ │ │ ├── PadCanonicalizer.h │ │ │ │ ├── PlaceholderCanonicalizer.cpp │ │ │ │ ├── PlaceholderCanonicalizer.h │ │ │ │ ├── RealDivCanonicalizer.cpp │ │ │ │ ├── RealDivCanonicalizer.h │ │ │ │ ├── Relu6Canonicalizer.cpp │ │ │ │ ├── Relu6Canonicalizer.h │ │ │ │ ├── ReluCanonicalizer.cpp │ │ │ │ ├── ReluCanonicalizer.h │ │ │ │ ├── ReshapeCanonicalizer.cpp │ │ │ │ ├── ReshapeCanonicalizer.h │ │ │ │ ├── RsqrtCanonicalizer.cpp │ │ │ │ ├── RsqrtCanonicalizer.h │ │ │ │ ├── SoftmaxCanonicalizer.cpp │ │ │ │ ├── SoftmaxCanonicalizer.h │ │ │ │ ├── SqrtCanonicalizer.cpp │ │ │ │ ├── SqrtCanonicalizer.h │ │ │ │ ├── SqueezeCanonicalizer.cpp │ │ │ │ ├── SqueezeCanonicalizer.h │ │ │ │ ├── StopGradientCanonicalizer.cpp │ │ │ │ ├── StopGradientCanonicalizer.h │ │ │ │ ├── SubCanonicalizer.cpp │ │ │ │ ├── SubCanonicalizer.h │ │ │ │ ├── TFPushCanonicalizer.cpp │ │ │ │ ├── TFPushCanonicalizer.h │ │ │ │ ├── TanhCanonicalizer.cpp │ │ │ │ └── TanhCanonicalizer.h │ │ │ ├── Canonicalizer.cpp │ │ │ ├── Canonicalizer.h │ │ │ ├── Canonicalizer.test.cpp │ │ │ ├── CodecHelper.h │ │ │ ├── Convert.cpp │ │ │ ├── Convert.h │ │ │ ├── Convert.test.cpp │ │ │ ├── Frontend.cpp │ │ │ ├── Frontend.test.cpp │ │ │ ├── Knob.cpp │ │ │ ├── Knob.h │ │ │ ├── Knob.lst │ │ │ ├── LogHelper.cpp │ │ │ ├── LogHelper.h │ │ │ ├── Op/ │ │ │ │ ├── COpCall.cpp │ │ │ │ ├── COpCall.h │ │ │ │ └── COpCall.test.cpp │ │ │ ├── Optimizer.cpp │ │ │ ├── Optimizer.h │ │ │ ├── Optimizer.test.cpp │ │ │ ├── ProgressReporter.cpp │ │ │ ├── ProgressReporter.h │ │ │ ├── SimpleNodeTransform.h │ │ │ ├── SimpleNodeTransform.test.cpp │ │ │ ├── TFEltwiseBinaryCanonicalzeHelper.h │ │ │ ├── TFFormattedGraph.cpp │ │ │ ├── TFFormattedGraph.h │ │ │ ├── TFOptimizer.cpp │ │ │ ├── TFOptimizer.h │ │ │ ├── TFOptimizer.test.cpp │ │ │ ├── TFReduceCanonicalzeHelper.h │ │ │ ├── TestHelper.h │ │ │ ├── TestHelper.test.cpp │ │ │ ├── Transform.cpp │ │ │ ├── Transform.h │ │ │ ├── Transform.test.cpp │ │ │ ├── Transforms/ │ │ │ │ ├── ShapeInferencePass.cpp │ │ │ │ ├── ShapeInferencePass.h │ │ │ │ ├── TypeInferencePass.cpp │ │ │ │ └── TypeInferencePass.h │ │ │ └── Transforms.h │ │ ├── moco-value-pbtxt-test/ │ │ │ ├── .gitignore │ │ │ ├── CMakeLists.txt │ │ │ ├── README.md │ │ │ ├── exclude.me │ │ │ ├── requires.cmake │ │ │ ├── runall.sh │ │ │ └── test.lst │ │ ├── nnc/ │ │ │ ├── CMakeLists.txt │ │ │ ├── README.md │ │ │ ├── backends/ │ │ │ │ ├── CMakeLists.txt │ │ │ │ ├── acl_soft_backend/ │ │ │ │ │ ├── AclArtifactUtilities.in │ │ │ │ │ ├── AclCppGenerator.cpp │ │ │ │ │ ├── AclCppOpGenerator.cpp │ │ │ │ │ ├── AclCppOpGenerator.h │ │ │ │ │ ├── ArtifactGeneratorCppCode.cpp │ │ │ │ │ ├── ArtifactGeneratorCppCode.h │ │ │ │ │ ├── ArtifactGeneratorCppDecl.cpp │ │ │ │ │ ├── ArtifactGeneratorCppDecl.h │ │ │ │ │ ├── ArtifactIndent.h │ │ │ │ │ ├── ArtifactModel.cpp │ │ │ │ │ ├── ArtifactModel.h │ │ │ │ │ ├── CMakeLists.txt │ │ │ │ │ └── IArtifactGenerator.h │ │ │ │ ├── interpreter/ │ │ │ │ │ ├── CMakeLists.txt │ │ │ │ │ └── InterpreterBackend.cpp │ │ │ │ └── soft_backend/ │ │ │ │ ├── CMakeLists.txt │ │ │ │ ├── CPPGenerator.cpp │ │ │ │ ├── CommonData.def │ │ │ │ ├── ModelAnalyzer.cpp │ │ │ │ ├── ModelAnalyzer.h │ │ │ │ ├── SBSerializer.cpp │ │ │ │ ├── SBSerializer.h │ │ │ │ ├── SequencedIR.cpp │ │ │ │ ├── SequencedIR.h │ │ │ │ └── code_snippets/ │ │ │ │ ├── cpp_broadcast.def │ │ │ │ ├── cpp_capped_relu.def │ │ │ │ ├── cpp_common_funcs.def │ │ │ │ ├── cpp_concat.def │ │ │ │ ├── cpp_conv.def │ │ │ │ ├── cpp_conv_transpose.def │ │ │ │ ├── cpp_depthwise_conv.def │ │ │ │ ├── cpp_elementwise.def │ │ │ │ ├── cpp_elu.def │ │ │ │ ├── cpp_fully_connected.def │ │ │ │ ├── cpp_gather.def │ │ │ │ ├── cpp_header_types.def │ │ │ │ ├── cpp_leaky_relu.def │ │ │ │ ├── cpp_operations.def │ │ │ │ ├── cpp_pad.def │ │ │ │ ├── cpp_pool.def │ │ │ │ ├── cpp_reduce.def │ │ │ │ ├── cpp_relu.def │ │ │ │ ├── cpp_resize.def │ │ │ │ ├── cpp_sigmoid.def │ │ │ │ ├── cpp_slice.def │ │ │ │ ├── cpp_softmax.def │ │ │ │ ├── cpp_sqrt.def │ │ │ │ ├── cpp_tanh.def │ │ │ │ ├── cpp_transpose.def │ │ │ │ └── eigen.def │ │ │ ├── cmake/ │ │ │ │ ├── config.cmake │ │ │ │ └── utils.cmake │ │ │ ├── doxygen.config │ │ │ ├── driver/ │ │ │ │ ├── Driver.cpp │ │ │ │ ├── Driver.h │ │ │ │ ├── Options.cpp │ │ │ │ ├── Options.h │ │ │ │ └── main.cpp │ │ │ ├── exclude.me │ │ │ ├── include/ │ │ │ │ ├── Definitions.h.in │ │ │ │ ├── backends/ │ │ │ │ │ ├── acl_soft_backend/ │ │ │ │ │ │ ├── AclCppException.h │ │ │ │ │ │ └── AclCppGenerator.h │ │ │ │ │ ├── interpreter/ │ │ │ │ │ │ └── InterpreterBackend.h │ │ │ │ │ └── soft_backend/ │ │ │ │ │ └── CPPGenerator.h │ │ │ │ ├── pass/ │ │ │ │ │ ├── Pass.h │ │ │ │ │ ├── PassData.h │ │ │ │ │ ├── PassException.h │ │ │ │ │ └── PassManager.h │ │ │ │ ├── passes/ │ │ │ │ │ ├── dot_dumper/ │ │ │ │ │ │ └── DumperPass.h │ │ │ │ │ ├── optimizations/ │ │ │ │ │ │ ├── CombineTransposes.h │ │ │ │ │ │ ├── ConstantFoldTranspose.h │ │ │ │ │ │ ├── DeadCodeElimination.h │ │ │ │ │ │ ├── FuseArithmeticOps.h │ │ │ │ │ │ ├── OptimizationUtils.h │ │ │ │ │ │ ├── SinkRelu.h │ │ │ │ │ │ └── SinkTranspose.h │ │ │ │ │ └── transformations/ │ │ │ │ │ ├── DataFormatSwitcher.h │ │ │ │ │ └── LowerConv2D.h │ │ │ │ └── support/ │ │ │ │ └── CommandLine.h │ │ │ ├── pass/ │ │ │ │ ├── CMakeLists.txt │ │ │ │ └── PassManager.cpp │ │ │ ├── passes/ │ │ │ │ ├── CMakeLists.txt │ │ │ │ ├── dot_dumper/ │ │ │ │ │ ├── CMakeLists.txt │ │ │ │ │ └── DumperPass.cpp │ │ │ │ ├── optimizations/ │ │ │ │ │ ├── CMakeLists.txt │ │ │ │ │ ├── CombineTransposes.cpp │ │ │ │ │ ├── ConstantFoldTranspose.cpp │ │ │ │ │ ├── DeadCodeElimination.cpp │ │ │ │ │ ├── FuseArithmeticOps.cpp │ │ │ │ │ ├── OptimizationUtils.cpp │ │ │ │ │ ├── SinkRelu.cpp │ │ │ │ │ └── SinkTranspose.cpp │ │ │ │ └── transformations/ │ │ │ │ ├── CMakeLists.txt │ │ │ │ ├── DataFormatSwitcher.cpp │ │ │ │ └── LowerConv2D.cpp │ │ │ ├── requires.cmake │ │ │ ├── support/ │ │ │ │ ├── CLOptionChecker.cpp │ │ │ │ ├── CMakeLists.txt │ │ │ │ └── CommandLine.cpp │ │ │ ├── tests/ │ │ │ │ ├── CMakeLists.txt │ │ │ │ ├── acl_soft_backend/ │ │ │ │ │ ├── AclCppOperations.cpp │ │ │ │ │ ├── BuildInfo.h.in │ │ │ │ │ ├── CMakeLists.txt │ │ │ │ │ ├── artifact_cmake/ │ │ │ │ │ │ ├── CMakeLists.txt │ │ │ │ │ │ ├── main.cpp │ │ │ │ │ │ └── odroid.cmake │ │ │ │ │ └── models/ │ │ │ │ │ ├── concatenate.prototxt │ │ │ │ │ ├── convolution.prototxt │ │ │ │ │ ├── convolution_with_bias.prototxt │ │ │ │ │ ├── depthwise_convolution.prototxt │ │ │ │ │ ├── fully_connected.prototxt │ │ │ │ │ ├── pooling_avg.prototxt │ │ │ │ │ ├── pooling_max.prototxt │ │ │ │ │ ├── relu.prototxt │ │ │ │ │ ├── reshape.prototxt │ │ │ │ │ └── scale.prototxt │ │ │ │ ├── import/ │ │ │ │ │ ├── CMakeLists.txt │ │ │ │ │ ├── caffe.cpp │ │ │ │ │ └── tflite.cpp │ │ │ │ └── soft_backend/ │ │ │ │ ├── CMakeLists.txt │ │ │ │ ├── CompileCPP.cpp │ │ │ │ └── test_main.def │ │ │ ├── unittests/ │ │ │ │ ├── CMakeLists.txt │ │ │ │ ├── acl_backend/ │ │ │ │ │ ├── CMakeLists.txt │ │ │ │ │ ├── DOMToText.cpp │ │ │ │ │ └── MIRToDOM.cpp │ │ │ │ ├── caffe_frontend/ │ │ │ │ │ └── test_data/ │ │ │ │ │ └── unsupported.caffemodel │ │ │ │ ├── optimizations/ │ │ │ │ │ ├── CMakeLists.txt │ │ │ │ │ ├── CombineTransposes.cpp │ │ │ │ │ ├── DeadCodeElimination.cpp │ │ │ │ │ ├── FuseArithmeticOps.cpp │ │ │ │ │ ├── SinkTest.cpp │ │ │ │ │ └── Util.h │ │ │ │ ├── pass/ │ │ │ │ │ ├── CMakeLists.txt │ │ │ │ │ ├── PassExceptionTest.cpp │ │ │ │ │ └── PassManagerTest.cpp │ │ │ │ ├── soft_backend/ │ │ │ │ │ ├── CMakeLists.txt │ │ │ │ │ ├── CPPHeaderTypes.cpp │ │ │ │ │ ├── CPPOperations.cpp │ │ │ │ │ ├── Generator.cpp │ │ │ │ │ └── ModelAnalyzer.cpp │ │ │ │ ├── support/ │ │ │ │ │ ├── CMakeLists.txt │ │ │ │ │ └── CommandLineTest.cpp │ │ │ │ └── transformations/ │ │ │ │ ├── CMakeLists.txt │ │ │ │ └── Switcher.cpp │ │ │ └── utils/ │ │ │ ├── CMakeLists.txt │ │ │ ├── caffe2_dot_dumper/ │ │ │ │ ├── CMakeLists.txt │ │ │ │ └── model_dump.cpp │ │ │ ├── caffe_dot_dumper/ │ │ │ │ ├── CMakeLists.txt │ │ │ │ └── model_dump.cpp │ │ │ ├── def2src.cpp │ │ │ ├── infer_tests/ │ │ │ │ ├── README.md │ │ │ │ ├── infer_testcases.py │ │ │ │ └── res2bin.py │ │ │ ├── input_gen/ │ │ │ │ ├── CMakeLists.txt │ │ │ │ └── tensor_gen.cpp │ │ │ ├── model_runner/ │ │ │ │ ├── common_place.py │ │ │ │ ├── model_runner_caffe.py │ │ │ │ ├── model_runner_caffe2.py │ │ │ │ ├── model_runner_onnx.py │ │ │ │ ├── model_runner_tflite.py │ │ │ │ └── readme.md │ │ │ ├── prepare_inputs/ │ │ │ │ ├── README.md │ │ │ │ └── jpeg2hdf5.py │ │ │ └── tflite_dot_dumper/ │ │ │ ├── CMakeLists.txt │ │ │ └── model_dump.cpp │ │ ├── nnkit/ │ │ │ ├── CMakeLists.txt │ │ │ ├── README.md │ │ │ ├── actions/ │ │ │ │ ├── CMakeLists.txt │ │ │ │ ├── HDF5/ │ │ │ │ │ ├── CMakeLists.txt │ │ │ │ │ ├── Common.cpp │ │ │ │ │ ├── Common.h │ │ │ │ │ ├── Export.cpp │ │ │ │ │ └── Import.cpp │ │ │ │ └── builtin/ │ │ │ │ ├── CMakeLists.txt │ │ │ │ ├── Randomize.cpp │ │ │ │ └── Show.cpp │ │ │ ├── exclude.me │ │ │ ├── requires.cmake │ │ │ └── tools/ │ │ │ ├── CMakeLists.txt │ │ │ ├── benchmark/ │ │ │ │ ├── CMakeLists.txt │ │ │ │ └── src/ │ │ │ │ └── Benchmark.cpp │ │ │ └── run/ │ │ │ ├── CMakeLists.txt │ │ │ └── nnkit-run.cpp │ │ ├── nnkit-caffe/ │ │ │ ├── CMakeLists.txt │ │ │ ├── README.md │ │ │ ├── backend/ │ │ │ │ ├── CMakeLists.txt │ │ │ │ └── Module.cpp │ │ │ ├── exclude.me │ │ │ ├── requires.cmake │ │ │ └── support/ │ │ │ ├── CMakeLists.txt │ │ │ └── include/ │ │ │ └── nnkit/ │ │ │ └── support/ │ │ │ └── caffe/ │ │ │ ├── Backend.h │ │ │ ├── BlobContext.h │ │ │ ├── InputBlobContext.h │ │ │ ├── OutputBlobContext.h │ │ │ └── TensorContext.h │ │ ├── nnkit-intf/ │ │ │ ├── CMakeLists.txt │ │ │ ├── README.md │ │ │ ├── action/ │ │ │ │ ├── CMakeLists.txt │ │ │ │ └── include/ │ │ │ │ └── nnkit/ │ │ │ │ └── Action.h │ │ │ ├── backend/ │ │ │ │ ├── CMakeLists.txt │ │ │ │ └── include/ │ │ │ │ └── nnkit/ │ │ │ │ └── Backend.h │ │ │ ├── cmdline/ │ │ │ │ ├── CMakeLists.txt │ │ │ │ └── include/ │ │ │ │ └── nnkit/ │ │ │ │ └── CmdlineArguments.h │ │ │ ├── exclude.me │ │ │ └── tensor/ │ │ │ ├── CMakeLists.txt │ │ │ └── include/ │ │ │ └── nnkit/ │ │ │ └── TensorContext.h │ │ ├── nnkit-misc/ │ │ │ ├── CMakeLists.txt │ │ │ ├── README.md │ │ │ ├── backend/ │ │ │ │ ├── CMakeLists.txt │ │ │ │ ├── include/ │ │ │ │ │ └── nnkit/ │ │ │ │ │ └── BackendPlugin.h │ │ │ │ └── src/ │ │ │ │ └── BackendPlugin.cpp │ │ │ ├── cmdline/ │ │ │ │ ├── CMakeLists.txt │ │ │ │ ├── include/ │ │ │ │ │ └── nnkit/ │ │ │ │ │ └── VectorArguments.h │ │ │ │ └── src/ │ │ │ │ └── VectorArguments.cpp │ │ │ └── exclude.me │ │ ├── nnkit-mocotf/ │ │ │ ├── CMakeLists.txt │ │ │ ├── README.md │ │ │ ├── backend/ │ │ │ │ ├── Backend.cpp │ │ │ │ └── CMakeLists.txt │ │ │ ├── exclude.me │ │ │ ├── requires.cmake │ │ │ └── support/ │ │ │ ├── CMakeLists.txt │ │ │ ├── include/ │ │ │ │ └── nnkit/ │ │ │ │ └── support/ │ │ │ │ └── moco/ │ │ │ │ └── tf/ │ │ │ │ └── Backend.h │ │ │ └── src/ │ │ │ ├── Backend.cpp │ │ │ ├── InputTensorContext.cpp │ │ │ ├── InputTensorContext.h │ │ │ ├── OutputTensorContext.cpp │ │ │ ├── OutputTensorContext.h │ │ │ └── TensorContext.h │ │ ├── nnkit-onnxrt/ │ │ │ ├── CMakeLists.txt │ │ │ ├── README.md │ │ │ ├── backend/ │ │ │ │ ├── Backend.cpp │ │ │ │ └── CMakeLists.txt │ │ │ ├── exclude.me │ │ │ ├── requires.cmake │ │ │ └── support/ │ │ │ ├── CMakeLists.txt │ │ │ ├── include/ │ │ │ │ └── nnkit/ │ │ │ │ └── support/ │ │ │ │ └── onnx/ │ │ │ │ ├── Allocator.h │ │ │ │ ├── Backend.h │ │ │ │ ├── Runner.h │ │ │ │ ├── Status.h │ │ │ │ ├── TensorContext.h │ │ │ │ └── TensorSet.h │ │ │ └── src/ │ │ │ ├── Allocator.cpp │ │ │ ├── Backend.cpp │ │ │ └── Runner.cpp │ │ ├── nnkit-tf/ │ │ │ ├── CMakeLists.txt │ │ │ ├── README.md │ │ │ ├── backend/ │ │ │ │ ├── Backend.cpp │ │ │ │ └── CMakeLists.txt │ │ │ ├── exclude.me │ │ │ ├── requires.cmake │ │ │ └── support/ │ │ │ ├── CMakeLists.txt │ │ │ ├── include/ │ │ │ │ └── nnkit/ │ │ │ │ └── support/ │ │ │ │ └── tf/ │ │ │ │ ├── Backend.h │ │ │ │ ├── Runner.h │ │ │ │ ├── TensorContext.h │ │ │ │ └── TensorDataMap.h │ │ │ └── src/ │ │ │ ├── Backend.cpp │ │ │ ├── Runner.cpp │ │ │ └── TensorContext.cpp │ │ ├── nnkit-tflite/ │ │ │ ├── CMakeLists.txt │ │ │ ├── README.md │ │ │ ├── backend/ │ │ │ │ ├── Backend.cpp │ │ │ │ └── CMakeLists.txt │ │ │ ├── exclude.me │ │ │ ├── requires.cmake │ │ │ └── support/ │ │ │ ├── CMakeLists.txt │ │ │ ├── include/ │ │ │ │ └── nnkit/ │ │ │ │ └── support/ │ │ │ │ └── tflite/ │ │ │ │ ├── AbstractBackend.h │ │ │ │ ├── TensorContext.h │ │ │ │ ├── TensorSet.h │ │ │ │ ├── TensorSets.h │ │ │ │ └── TensorUtils.h │ │ │ └── src/ │ │ │ ├── Backend.cpp │ │ │ ├── TensorContext.cpp │ │ │ └── TensorUtils.cpp │ │ ├── nnsuite/ │ │ │ ├── CMakeLists.txt │ │ │ ├── README.md │ │ │ ├── conv/ │ │ │ │ ├── CMakeLists.txt │ │ │ │ ├── model/ │ │ │ │ │ ├── CMakeLists.txt │ │ │ │ │ ├── include/ │ │ │ │ │ │ └── nnsuite/ │ │ │ │ │ │ └── conv/ │ │ │ │ │ │ ├── Model.h │ │ │ │ │ │ └── RandomModel.h │ │ │ │ │ └── src/ │ │ │ │ │ └── RandomModel.cpp │ │ │ │ ├── nnkit-caffe/ │ │ │ │ │ ├── CMakeLists.txt │ │ │ │ │ ├── ConvBackend.cpp │ │ │ │ │ ├── ConvBackend.h │ │ │ │ │ ├── ConvBackend.test.cpp │ │ │ │ │ └── Entry.cpp │ │ │ │ └── nnkit-tflite/ │ │ │ │ ├── CMakeLists.txt │ │ │ │ ├── ConvBackend.cpp │ │ │ │ ├── ConvBackend.h │ │ │ │ ├── ConvBackend.test.cpp │ │ │ │ └── Entry.cpp │ │ │ ├── exclude.me │ │ │ └── requires.cmake │ │ ├── onnx2circle/ │ │ │ ├── CMakeLists.txt │ │ │ ├── README.md │ │ │ ├── exclude.me │ │ │ ├── requires.cmake │ │ │ └── src/ │ │ │ └── onnx2circle.cpp │ │ ├── onnx2tflite/ │ │ │ ├── CMakeLists.txt │ │ │ ├── exclude.me │ │ │ ├── requires.cmake │ │ │ └── src/ │ │ │ └── Driver.cpp │ │ ├── onnx2tflite-integration-test/ │ │ │ ├── CMakeLists.txt │ │ │ ├── README.md │ │ │ ├── exclude.me │ │ │ ├── requires.cmake │ │ │ ├── test.lst │ │ │ └── testall.sh │ │ ├── tf2circle/ │ │ │ ├── CMakeLists.txt │ │ │ ├── README.md │ │ │ ├── exclude.me │ │ │ ├── proto/ │ │ │ │ └── CustomOpInfo.proto │ │ │ ├── requires.cmake │ │ │ └── src/ │ │ │ ├── CustomopConfLoader.cpp │ │ │ ├── CustomopConfLoader.h │ │ │ └── tf2circle.cpp │ │ ├── tf2circle-conversion-test/ │ │ │ ├── .gitignore │ │ │ ├── CMakeLists.txt │ │ │ ├── README.md │ │ │ ├── exclude.me │ │ │ ├── requires.cmake │ │ │ ├── test.lst │ │ │ └── testall.sh │ │ ├── tf2circle-dredd-pb-test/ │ │ │ ├── .gitignore │ │ │ ├── CMakeLists.txt │ │ │ ├── README.md │ │ │ ├── contrib/ │ │ │ │ └── .gitignore │ │ │ ├── exclude.me │ │ │ ├── requires.cmake │ │ │ └── runner.sh │ │ ├── tf2circle-dredd-pbtxt-test/ │ │ │ ├── .gitignore │ │ │ ├── CMakeLists.txt │ │ │ ├── README.md │ │ │ ├── exclude.me │ │ │ ├── requires.cmake │ │ │ ├── runner.sh │ │ │ └── test.lst │ │ ├── tf2circle-model-test/ │ │ │ ├── .gitignore │ │ │ ├── CMakeLists.txt │ │ │ ├── README.md │ │ │ ├── contrib/ │ │ │ │ └── .gitignore │ │ │ ├── exclude.me │ │ │ ├── requires.cmake │ │ │ └── runner.sh │ │ ├── tf2circle-ui-check/ │ │ │ ├── .gitignore │ │ │ ├── CMakeLists.txt │ │ │ ├── README.md │ │ │ ├── checkall.sh │ │ │ ├── exclude.me │ │ │ └── requires.cmake │ │ ├── tf2circle-value-pbtxt-remote-test/ │ │ │ ├── .gitignore │ │ │ ├── CMakeLists.txt │ │ │ ├── README.md │ │ │ ├── exclude.me │ │ │ ├── requires.cmake │ │ │ └── testall.sh │ │ ├── tf2nnpkg/ │ │ │ ├── CMakeLists.txt │ │ │ ├── README.md │ │ │ ├── requires.cmake │ │ │ └── src/ │ │ │ ├── filesystem.h │ │ │ ├── filesystem_common.cpp │ │ │ ├── filesystem_linux.cpp │ │ │ ├── filesystem_windows.cpp │ │ │ └── tf2nnpkg.cpp │ │ ├── tf2tflite/ │ │ │ ├── .gitignore │ │ │ ├── CMakeLists.txt │ │ │ ├── README.md │ │ │ ├── exclude.me │ │ │ ├── proto/ │ │ │ │ └── CustomOpInfo.proto │ │ │ ├── requires.cmake │ │ │ └── src/ │ │ │ ├── CustomopConfLoader.cpp │ │ │ ├── CustomopConfLoader.h │ │ │ └── Driver.cpp │ │ ├── tf2tflite-dredd-pb-test/ │ │ │ ├── .gitignore │ │ │ ├── CMakeLists.txt │ │ │ ├── README.md │ │ │ ├── contrib/ │ │ │ │ └── .gitignore │ │ │ ├── exclude.me │ │ │ ├── requires.cmake │ │ │ └── runner.sh │ │ ├── tf2tflite-dredd-pbtxt-test/ │ │ │ ├── .gitignore │ │ │ ├── CMakeLists.txt │ │ │ ├── README.md │ │ │ ├── exclude.me │ │ │ ├── requires.cmake │ │ │ ├── runner.sh │ │ │ └── test.lst │ │ ├── tf2tflite-value-pb-test/ │ │ │ ├── .gitignore │ │ │ ├── CMakeLists.txt │ │ │ ├── README.md │ │ │ ├── contrib/ │ │ │ │ └── .gitignore │ │ │ ├── exclude.me │ │ │ ├── requires.cmake │ │ │ └── runner.sh │ │ ├── tf2tflite-value-pbtxt-test/ │ │ │ ├── .gitignore │ │ │ ├── CMakeLists.txt │ │ │ ├── README.md │ │ │ ├── exclude.me │ │ │ ├── requires.cmake │ │ │ ├── test.lst │ │ │ └── testall.sh │ │ ├── tfinfo/ │ │ │ ├── CMakeLists.txt │ │ │ ├── README.md │ │ │ ├── include/ │ │ │ │ └── nnkit/ │ │ │ │ └── support/ │ │ │ │ └── tftestinfo/ │ │ │ │ ├── ParsedTensor.h │ │ │ │ └── TensorInfoParser.h │ │ │ ├── requires.cmake │ │ │ └── src/ │ │ │ ├── Compat.h │ │ │ ├── TensorInfoParser.cpp │ │ │ └── TensorInfoParser.test.cpp │ │ └── tfts/ │ │ ├── CMakeLists.txt │ │ ├── README.md │ │ ├── check_all.sh │ │ ├── exclude.me │ │ └── requires.cmake │ ├── adtidas/ │ │ ├── CMakeLists.txt │ │ ├── README.md │ │ ├── exclude.me │ │ └── include/ │ │ └── adtidas/ │ │ └── SmallVector.h │ ├── angkor/ │ │ ├── CMakeLists.txt │ │ ├── README.md │ │ ├── include/ │ │ │ ├── angkor/ │ │ │ │ ├── TensorIndex.h │ │ │ │ └── TensorShape.h │ │ │ └── nncc/ │ │ │ └── core/ │ │ │ └── ADT/ │ │ │ ├── feature/ │ │ │ │ ├── Accessor.h │ │ │ │ ├── Buffer.h │ │ │ │ ├── CHWLayout.h │ │ │ │ ├── HWCLayout.h │ │ │ │ ├── Layout.h │ │ │ │ ├── Overlay.h │ │ │ │ ├── Reader.h │ │ │ │ ├── Shape.h │ │ │ │ └── View.h │ │ │ ├── kernel/ │ │ │ │ ├── Accessor.h │ │ │ │ ├── Buffer.h │ │ │ │ ├── IndexEnumerator.h │ │ │ │ ├── Layout.h │ │ │ │ ├── NCHWLayout.h │ │ │ │ ├── NHWCLayout.h │ │ │ │ ├── Overlay.h │ │ │ │ ├── Reader.h │ │ │ │ ├── Shape.h │ │ │ │ ├── View.h │ │ │ │ └── ViewImpl.h │ │ │ └── tensor/ │ │ │ ├── Accessor.h │ │ │ ├── Buffer.h │ │ │ ├── Index.h │ │ │ ├── IndexEnumerator.h │ │ │ ├── Layout.h │ │ │ ├── LexicalLayout.h │ │ │ ├── Overlay.h │ │ │ ├── Reader.h │ │ │ ├── Shape.h │ │ │ └── View.h │ │ └── src/ │ │ ├── ADT/ │ │ │ ├── feature/ │ │ │ │ ├── Accessor.cpp │ │ │ │ ├── Buffer.test.cpp │ │ │ │ ├── CHWLayout.cpp │ │ │ │ ├── CHWLayout.test.cpp │ │ │ │ ├── HWCLayout.cpp │ │ │ │ ├── HWCLayout.test.cpp │ │ │ │ ├── Layout.cpp │ │ │ │ ├── Layout.test.cpp │ │ │ │ ├── Overlay.test.cpp │ │ │ │ ├── Reader.cpp │ │ │ │ └── Shape.test.cpp │ │ │ ├── kernel/ │ │ │ │ ├── Buffer.test.cpp │ │ │ │ ├── IndexEnumerator.cpp │ │ │ │ ├── IndexEnumerator.test.cpp │ │ │ │ ├── Layout.cpp │ │ │ │ ├── Layout.test.cpp │ │ │ │ ├── NCHWLayout.cpp │ │ │ │ ├── NCHWLayout.test.cpp │ │ │ │ ├── NHWCLayout.cpp │ │ │ │ ├── NHWCLayout.test.cpp │ │ │ │ ├── Overlay.test.cpp │ │ │ │ ├── Reader.cpp │ │ │ │ ├── Shape.cpp │ │ │ │ └── Shape.test.cpp │ │ │ └── tensor/ │ │ │ ├── Buffer.test.cpp │ │ │ ├── Index.cpp │ │ │ ├── Index.test.cpp │ │ │ ├── IndexEnumerator.cpp │ │ │ ├── IndexEnumerator.test.cpp │ │ │ ├── Layout.cpp │ │ │ ├── Layout.test.cpp │ │ │ ├── LexicalLayout.cpp │ │ │ ├── LexicalLayout.test.cpp │ │ │ ├── Overlay.test.cpp │ │ │ ├── Reader.cpp │ │ │ ├── Shape.cpp │ │ │ └── Shape.test.cpp │ │ ├── TensorIndex.test.cpp │ │ └── TensorShape.test.cpp │ ├── arser/ │ │ ├── CMakeLists.txt │ │ ├── README.md │ │ ├── include/ │ │ │ └── arser/ │ │ │ └── arser.h │ │ └── tests/ │ │ ├── HelpMessage.test.cpp │ │ ├── Prompt.h │ │ └── arser.test.cpp │ ├── bcq-tools/ │ │ ├── CMakeLists.txt │ │ ├── README.md │ │ ├── generate_bcq_metadata.py │ │ └── generate_bcq_output_arrays.py │ ├── bino/ │ │ ├── CMakeLists.txt │ │ ├── README.md │ │ ├── exclude.me │ │ ├── include/ │ │ │ └── bino.h │ │ └── tests/ │ │ └── Functional.tests.cpp │ ├── circle-eval-diff/ │ │ ├── CMakeLists.txt │ │ ├── README.md │ │ ├── driver/ │ │ │ └── Driver.cpp │ │ ├── include/ │ │ │ └── CircleEvalDiff.h │ │ ├── requires.cmake │ │ └── src/ │ │ ├── CircleEvalDiff.cpp │ │ ├── InputDataLoader.cpp │ │ ├── InputDataLoader.h │ │ ├── InputDataLoader.test.cpp │ │ ├── MetricPrinter.cpp │ │ ├── MetricPrinter.h │ │ ├── MetricPrinter.test.cpp │ │ ├── Tensor.cpp │ │ ├── Tensor.h │ │ └── Tensor.test.cpp │ ├── circle-execution-plan/ │ │ ├── CMakeLists.txt │ │ ├── README.md │ │ ├── pal/ │ │ │ ├── IScratchpadHelper.h │ │ │ ├── ScratchpadHelperCMSISNN.h │ │ │ ├── ScratchpadHelperLinux.h │ │ │ ├── ScratchpadHelperMCU.h │ │ │ └── TargetPlatform.h │ │ ├── requires.cmake │ │ └── src/ │ │ ├── CircleExecutionPlan.cpp │ │ ├── ExecutionPlanner.cpp │ │ └── ExecutionPlanner.h │ ├── circle-input-names/ │ │ ├── CMakeLists.txt │ │ ├── README.md │ │ ├── requires.cmake │ │ └── src/ │ │ ├── circle-input-names.cpp │ │ └── circle-input-names.test.cpp │ ├── circle-inspect/ │ │ ├── CMakeLists.txt │ │ ├── README.md │ │ ├── driver/ │ │ │ └── Driver.cpp │ │ ├── requires.cmake │ │ └── src/ │ │ ├── Dump.cpp │ │ └── Dump.h │ ├── circle-interpreter/ │ │ ├── CMakeLists.txt │ │ ├── requires.cmake │ │ └── src/ │ │ ├── CircleInterpreter.cpp │ │ └── CircleInterpreter_cffi.cpp │ ├── circle-interpreter-cffi-test/ │ │ ├── CMakeLists.txt │ │ ├── README.md │ │ ├── infer.py │ │ ├── requires.cmake │ │ └── test.lst │ ├── circle-interpreter-test/ │ │ ├── CMakeLists.txt │ │ ├── README.md │ │ ├── requires.cmake │ │ └── src/ │ │ └── circle-interpreter.test.cpp │ ├── circle-mpqsolver/ │ │ ├── CMakeLists.txt │ │ ├── README.md │ │ ├── requires.cmake │ │ └── src/ │ │ ├── CircleMPQSolver.cpp │ │ ├── MPQSolver.cpp │ │ ├── MPQSolver.h │ │ ├── bisection/ │ │ │ ├── BisectionSolver.cpp │ │ │ ├── BisectionSolver.h │ │ │ ├── BisectionSolver.test.cpp │ │ │ ├── DepthParameterizer.cpp │ │ │ ├── DepthParameterizer.h │ │ │ ├── DepthParameterizer.test.cpp │ │ │ ├── VISQErrorApproximator.cpp │ │ │ ├── VISQErrorApproximator.h │ │ │ └── VISQErrorApproximator.test.cpp │ │ ├── core/ │ │ │ ├── DataProvider.cpp │ │ │ ├── DataProvider.h │ │ │ ├── Dumper.cpp │ │ │ ├── Dumper.h │ │ │ ├── Dumper.test.cpp │ │ │ ├── DumpingHooks.cpp │ │ │ ├── DumpingHooks.h │ │ │ ├── DumpingHooks.test.cpp │ │ │ ├── ErrorMetric.cpp │ │ │ ├── ErrorMetric.h │ │ │ ├── ErrorMetric.test.cpp │ │ │ ├── Evaluator.cpp │ │ │ ├── Evaluator.h │ │ │ ├── Evaluator.test.cpp │ │ │ ├── Quantizer.cpp │ │ │ ├── Quantizer.h │ │ │ ├── Quantizer.test.cpp │ │ │ ├── SolverHooks.cpp │ │ │ ├── SolverHooks.h │ │ │ ├── SolverOutput.cpp │ │ │ ├── SolverOutput.h │ │ │ ├── TestHelper.h │ │ │ └── TestHelper.test.cpp │ │ └── pattern/ │ │ ├── PatternResolver.cpp │ │ ├── PatternResolver.h │ │ ├── PatternResolver.test.cpp │ │ ├── PatternSolver.cpp │ │ ├── PatternSolver.h │ │ └── PatternSolver.test.cpp │ ├── circle-operator/ │ │ ├── CMakeLists.txt │ │ ├── README.md │ │ ├── driver/ │ │ │ └── Driver.cpp │ │ ├── requires.cmake │ │ └── src/ │ │ ├── Dump.cpp │ │ └── Dump.h │ ├── circle-operator-test/ │ │ ├── CMakeLists.txt │ │ ├── README.md │ │ ├── requires.cmake │ │ └── src/ │ │ └── circle-operator.test.cpp │ ├── circle-opselector/ │ │ ├── CMakeLists.txt │ │ ├── README.md │ │ ├── driver/ │ │ │ └── Driver.cpp │ │ ├── requires.cmake │ │ └── src/ │ │ ├── ModuleIO.cpp │ │ ├── ModuleIO.h │ │ ├── ModuleIO.test.cpp │ │ ├── OpSelector.cpp │ │ ├── OpSelector.h │ │ ├── OpSelector.test.cpp │ │ ├── SelectType.h │ │ └── TestHelper.h │ ├── circle-part-driver/ │ │ ├── CMakeLists.txt │ │ ├── README.md │ │ ├── requires.cmake │ │ └── src/ │ │ ├── Driver.cpp │ │ ├── PModelsRunner.cpp │ │ └── PModelsRunner.h │ ├── circle-part-value-py-test/ │ │ ├── CMakeLists.txt │ │ ├── README.md │ │ ├── conftest.py │ │ ├── parts/ │ │ │ ├── Net_InstanceNorm_003.001.part │ │ │ ├── Net_InstanceNorm_003.002.part │ │ │ ├── Net_InstanceNorm_003.003.part │ │ │ ├── Net_InstanceNorm_003.part │ │ │ ├── Net_UnpackAdd_001.001.part │ │ │ ├── Net_UnpackAdd_001.002.part │ │ │ ├── Net_UnpackAdd_001.part │ │ │ ├── Part_Add_Sqrt_000.part │ │ │ ├── Part_Add_Sqrt_Rsqrt_000.part │ │ │ ├── Part_Add_Sub_000.001.part │ │ │ ├── Part_Add_Sub_000.part │ │ │ ├── Part_Add_Sub_001.part │ │ │ ├── Part_Add_Sub_002.001.part │ │ │ ├── Part_Add_Sub_002.002.part │ │ │ ├── Part_If_Add_Sub_000.001.part │ │ │ ├── Part_If_Add_Sub_001.001.part │ │ │ ├── Part_Mul_Sqrt_FC_nobias_000_000.part │ │ │ ├── Part_Mul_Sqrt_FC_nobias_000_001.part │ │ │ ├── Part_Mul_Sqrt_FC_nobias_000_002.part │ │ │ ├── Part_Split_Add_000.part │ │ │ ├── Part_Sqrt_Rsqrt_000.part │ │ │ ├── Part_Sqrt_Rsqrt_001.part │ │ │ ├── Part_Sqrt_Rsqrt_002.part │ │ │ ├── Part_Sqrt_Rsqrt_003.part │ │ │ ├── Part_Sqrt_Rsqrt_Add_000.part │ │ │ ├── Part_Sqrt_Rsqrt_Add_001.part │ │ │ ├── Part_Sqrt_Rsqrt_Add_002.part │ │ │ ├── Part_Sqrt_Rsqrt_Add_003.part │ │ │ ├── Part_Sqrt_Rsqrt_Add_004.part │ │ │ ├── Part_Tanh_FC_nobias.part │ │ │ ├── Part_Tanh_FC_nobias_001.part │ │ │ ├── Part_Tanh_FC_nobias_002.part │ │ │ ├── Part_Tanh_FC_nobias_003.part │ │ │ ├── Part_While_000.part │ │ │ ├── Part_While_001.part │ │ │ ├── SignatureDef_MultiOut_000.part │ │ │ └── SignatureDef_MultiOut_001.part │ │ ├── requires.cmake │ │ ├── test.lst │ │ └── test_circle_part_value.py │ ├── circle-part-value-test/ │ │ ├── CMakeLists.txt │ │ ├── README.md │ │ ├── exclude.me │ │ ├── part_eval_all.sh │ │ ├── part_eval_one.py │ │ ├── parts/ │ │ │ ├── Net_InstanceNorm_003.001.part │ │ │ ├── Net_InstanceNorm_003.002.part │ │ │ ├── Net_InstanceNorm_003.003.part │ │ │ ├── Net_InstanceNorm_003.part │ │ │ ├── Net_UnpackAdd_001.001.part │ │ │ ├── Net_UnpackAdd_001.002.part │ │ │ ├── Net_UnpackAdd_001.part │ │ │ ├── Part_Add_Sqrt_000.part │ │ │ ├── Part_Add_Sqrt_Rsqrt_000.part │ │ │ ├── Part_Add_Sub_000.001.part │ │ │ ├── Part_Add_Sub_000.part │ │ │ ├── Part_Add_Sub_001.part │ │ │ ├── Part_Add_Sub_002.001.part │ │ │ ├── Part_Add_Sub_002.002.part │ │ │ ├── Part_If_Add_Sub_000.001.part │ │ │ ├── Part_If_Add_Sub_001.001.part │ │ │ ├── Part_Mul_Sqrt_FC_nobias_000_000.part │ │ │ ├── Part_Mul_Sqrt_FC_nobias_000_001.part │ │ │ ├── Part_Mul_Sqrt_FC_nobias_000_002.part │ │ │ ├── Part_Split_Add_000.part │ │ │ ├── Part_Sqrt_Rsqrt_000.part │ │ │ ├── Part_Sqrt_Rsqrt_001.part │ │ │ ├── Part_Sqrt_Rsqrt_002.part │ │ │ ├── Part_Sqrt_Rsqrt_003.part │ │ │ ├── Part_Sqrt_Rsqrt_Add_000.part │ │ │ ├── Part_Sqrt_Rsqrt_Add_001.part │ │ │ ├── Part_Sqrt_Rsqrt_Add_002.part │ │ │ ├── Part_Sqrt_Rsqrt_Add_003.part │ │ │ ├── Part_Sqrt_Rsqrt_Add_004.part │ │ │ ├── Part_Tanh_FC_nobias.part │ │ │ ├── Part_Tanh_FC_nobias_001.part │ │ │ ├── Part_Tanh_FC_nobias_002.part │ │ │ ├── Part_Tanh_FC_nobias_003.part │ │ │ ├── Part_While_000.part │ │ │ ├── Part_While_001.part │ │ │ ├── SignatureDef_MultiOut_000.part │ │ │ └── SignatureDef_MultiOut_001.part │ │ ├── requires.cmake │ │ └── test.lst │ ├── circle-partitioner/ │ │ ├── CMakeLists.txt │ │ ├── README.md │ │ ├── requires.cmake │ │ └── src/ │ │ ├── CirclePartitioner.cpp │ │ ├── HelperPath.cpp │ │ ├── HelperPath.h │ │ ├── PartitionExport.cpp │ │ ├── PartitionExport.h │ │ ├── PartitionRead.cpp │ │ └── PartitionRead.h │ ├── circle-partitioner-test/ │ │ ├── CMakeLists.txt │ │ ├── README.md │ │ ├── parts/ │ │ │ ├── Net_InstanceNorm_003.part │ │ │ └── Part_Add_SVDF_000.part │ │ ├── requires.cmake │ │ └── test.lst │ ├── circle-quantizer/ │ │ ├── CMakeLists.txt │ │ ├── README.md │ │ ├── requires.cmake │ │ └── src/ │ │ └── CircleQuantizer.cpp │ ├── circle-quantizer-dredd-recipe-test/ │ │ ├── CMakeLists.txt │ │ ├── README.md │ │ ├── requires.cmake │ │ ├── test.lst │ │ └── testall.sh │ ├── circle-resizer/ │ │ ├── CMakeLists.txt │ │ ├── README.md │ │ ├── app/ │ │ │ ├── CMakeLists.txt │ │ │ └── CircleResizer.cpp │ │ ├── include/ │ │ │ ├── CircleModel.h │ │ │ ├── Dim.h │ │ │ ├── ModelEditor.h │ │ │ ├── Shape.h │ │ │ └── ShapeParser.h │ │ ├── requires.cmake │ │ ├── src/ │ │ │ ├── CMakeLists.txt │ │ │ ├── CircleModel.cpp │ │ │ ├── Dim.cpp │ │ │ ├── ModelEditor.cpp │ │ │ ├── Shape.cpp │ │ │ └── ShapeParser.cpp │ │ └── tests/ │ │ ├── CMakeLists.txt │ │ ├── CircleModel.test.cpp │ │ ├── ModelEditor.test.cpp │ │ ├── Shape.test.cpp │ │ └── ShapeParser.test.cpp │ ├── circle-resizer-dredd-recipe-test/ │ │ ├── CMakeLists.txt │ │ ├── README.md │ │ ├── requires.cmake │ │ ├── test.lst │ │ └── testall.sh │ ├── circle-tensordump/ │ │ ├── CMakeLists.txt │ │ ├── README.md │ │ ├── driver/ │ │ │ └── Driver.cpp │ │ ├── requires.cmake │ │ └── src/ │ │ ├── Dump.cpp │ │ └── Dump.h │ ├── circle-verify/ │ │ ├── CMakeLists.txt │ │ ├── README.md │ │ ├── requires.cmake │ │ └── src/ │ │ ├── Driver.cpp │ │ ├── VerifyFlatBuffers.cpp │ │ └── VerifyFlatBuffers.h │ ├── circle2circle/ │ │ ├── CMakeLists.txt │ │ ├── README.md │ │ ├── requires.cmake │ │ └── src/ │ │ ├── Circle2Circle.cpp │ │ ├── Circle2Circle.test.cpp │ │ └── TestHelper.h │ ├── circle2circle-dredd-recipe-test/ │ │ ├── CMakeLists.txt │ │ ├── README.md │ │ ├── requires.cmake │ │ ├── test.lst │ │ └── testall.sh │ ├── circlechef/ │ │ ├── CMakeLists.txt │ │ ├── README.md │ │ ├── circle/ │ │ │ ├── CMakeLists.txt │ │ │ ├── include/ │ │ │ │ └── circlechef/ │ │ │ │ └── RecipeChef.h │ │ │ └── src/ │ │ │ ├── CircleImport.cpp │ │ │ ├── CircleImport.h │ │ │ ├── CircleOpChef.h │ │ │ ├── CircleOpChefs.h │ │ │ ├── CircleOpRegistry.h │ │ │ ├── Convert.cpp │ │ │ ├── Convert.h │ │ │ ├── Op/ │ │ │ │ ├── BCQFullyConnected.cpp │ │ │ │ ├── BCQFullyConnected.h │ │ │ │ ├── BCQGather.cpp │ │ │ │ ├── BCQGather.h │ │ │ │ ├── BatchMatMul.cpp │ │ │ │ ├── BatchMatMul.h │ │ │ │ ├── GRU.cpp │ │ │ │ ├── GRU.h │ │ │ │ ├── InstanceNorm.cpp │ │ │ │ ├── InstanceNorm.h │ │ │ │ ├── RmsNorm.cpp │ │ │ │ ├── RmsNorm.h │ │ │ │ ├── RoPE.cpp │ │ │ │ └── RoPE.h │ │ │ └── RecipeChef.cpp │ │ ├── core/ │ │ │ ├── CMakeLists.txt │ │ │ ├── include/ │ │ │ │ └── circlechef/ │ │ │ │ └── ModelChef.h │ │ │ └── src/ │ │ │ ├── Arguments.h │ │ │ ├── Convert.cpp │ │ │ ├── Convert.h │ │ │ ├── Convert.test.cpp │ │ │ ├── DataChef.def │ │ │ ├── ModelChef.cpp │ │ │ ├── Op/ │ │ │ │ ├── BCQFullyConnected.cpp │ │ │ │ ├── BCQFullyConnected.h │ │ │ │ ├── BCQGather.cpp │ │ │ │ ├── BCQGather.h │ │ │ │ ├── BatchMatMul.cpp │ │ │ │ ├── BatchMatMul.h │ │ │ │ ├── Dequantize.cpp │ │ │ │ ├── Dequantize.h │ │ │ │ ├── FullyConnected.cpp │ │ │ │ ├── FullyConnected.h │ │ │ │ ├── GRU.cpp │ │ │ │ ├── GRU.h │ │ │ │ ├── InstanceNorm.cpp │ │ │ │ ├── InstanceNorm.h │ │ │ │ ├── Quantize.cpp │ │ │ │ ├── Quantize.h │ │ │ │ ├── RmsNorm.cpp │ │ │ │ ├── RmsNorm.h │ │ │ │ ├── RoPE.cpp │ │ │ │ └── RoPE.h │ │ │ ├── OpChef.def │ │ │ ├── OpChef.h │ │ │ └── OpChefs.h │ │ ├── log/ │ │ │ ├── CMakeLists.txt │ │ │ ├── include/ │ │ │ │ ├── Log.h │ │ │ │ └── LoggingContext.h │ │ │ └── src/ │ │ │ ├── Log.cpp │ │ │ └── LoggingContext.cpp │ │ ├── proto/ │ │ │ ├── CMakeLists.txt │ │ │ └── circlechef.proto │ │ ├── requires.cmake │ │ ├── tests/ │ │ │ ├── CMakeLists.txt │ │ │ ├── int4_datatype/ │ │ │ │ └── test.recipe │ │ │ ├── runvalidate.sh │ │ │ ├── shape_signature/ │ │ │ │ ├── test.recipe │ │ │ │ └── test.reverse │ │ │ ├── short_int_datatype/ │ │ │ │ ├── test.recipe │ │ │ │ └── test.reverse │ │ │ ├── string_tensor/ │ │ │ │ └── test.recipe │ │ │ └── uint4_datatype/ │ │ │ └── test.recipe │ │ └── tools/ │ │ ├── CMakeLists.txt │ │ ├── console/ │ │ │ ├── CMakeLists.txt │ │ │ ├── Driver.cpp │ │ │ └── Driver.test.cpp │ │ ├── file/ │ │ │ ├── CMakeLists.txt │ │ │ └── Driver.cpp │ │ └── reverse/ │ │ ├── CMakeLists.txt │ │ └── Driver.cpp │ ├── circledump/ │ │ ├── CMakeLists.txt │ │ ├── README.md │ │ ├── driver/ │ │ │ └── Driver.cpp │ │ ├── include/ │ │ │ └── circledump/ │ │ │ └── Dump.h │ │ ├── requires.cmake │ │ └── src/ │ │ ├── Dump.cpp │ │ ├── MetadataPrinter.cpp │ │ ├── MetadataPrinter.h │ │ ├── OpPrinter.cpp │ │ └── OpPrinter.h │ ├── cli/ │ │ ├── CMakeLists.txt │ │ ├── README.md │ │ ├── exclude.me │ │ ├── include/ │ │ │ └── cli/ │ │ │ ├── App.h │ │ │ ├── Command.h │ │ │ └── FunctionCommand.h │ │ └── src/ │ │ ├── App.cpp │ │ └── App.test.cpp │ ├── common-artifacts/ │ │ ├── CMakeLists.txt │ │ ├── README.md │ │ ├── exclude.lst │ │ ├── options.lst │ │ ├── requires.cmake │ │ └── src/ │ │ └── TestDataGenerator.cpp │ ├── crew/ │ │ ├── CMakeLists.txt │ │ ├── README.md │ │ ├── include/ │ │ │ └── crew/ │ │ │ ├── PConfig.h │ │ │ ├── PConfigIni.h │ │ │ ├── PConfigIniDump.h │ │ │ └── PConfigJson.h │ │ ├── requires.cmake │ │ └── src/ │ │ ├── PConfig.cpp │ │ ├── PConfigIni.cpp │ │ ├── PConfigIni.test.cpp │ │ ├── PConfigIniDump.cpp │ │ ├── PConfigIniDump.test.cpp │ │ ├── PConfigJson.cpp │ │ ├── PConfigJson.test.cpp │ │ └── test_read_semicolon.ini │ ├── cwrap/ │ │ ├── CMakeLists.txt │ │ ├── README.md │ │ ├── include/ │ │ │ └── cwrap/ │ │ │ └── Fildes.h │ │ └── src/ │ │ ├── Fildes.cpp │ │ └── Fildes.test.cpp │ ├── dalgona/ │ │ ├── CMakeLists.txt │ │ ├── README.md │ │ ├── analysis/ │ │ │ └── AnalysisTemplate.py │ │ ├── driver/ │ │ │ └── Driver.cpp │ │ ├── include/ │ │ │ ├── Dalgona.h │ │ │ └── PythonHooks.h │ │ ├── requires.cmake │ │ └── src/ │ │ ├── Dalgona.cpp │ │ ├── PostOperatorHook.h │ │ ├── PreOperatorHook.h │ │ ├── PythonHooks.cpp │ │ ├── RandomUtils.cpp │ │ ├── RandomUtils.h │ │ ├── RandomUtils.test.cpp │ │ ├── StringUtils.cpp │ │ ├── StringUtils.h │ │ ├── StringUtils.test.cpp │ │ ├── Utils.cpp │ │ └── Utils.h │ ├── dalgona-test/ │ │ ├── .gitignore │ │ ├── CMakeLists.txt │ │ ├── GenH5RandomInputs.py │ │ ├── RandomDataGenerator.py │ │ ├── SingleOperatorTest.py │ │ ├── TestSingleOp.sh │ │ ├── TestUtil.py │ │ ├── requires.cmake │ │ └── test.lst │ ├── dio-hdf5/ │ │ ├── CMakeLists.txt │ │ ├── README.md │ │ ├── include/ │ │ │ └── dio_hdf5/ │ │ │ └── HDF5Importer.h │ │ ├── requires.cmake │ │ └── src/ │ │ ├── HDF5Importer.cpp │ │ └── HDF5Importer.test.cpp │ ├── dredd-rule-lib/ │ │ ├── CMakeLists.txt │ │ ├── README.md │ │ └── rule-lib.sh │ ├── embedded-import-value-test/ │ │ ├── .gitignore │ │ ├── CMakeLists.txt │ │ ├── README.md │ │ ├── evalverify.sh │ │ ├── requires.cmake │ │ ├── src/ │ │ │ └── TestDriver.cpp │ │ └── test.lst │ ├── exo/ │ │ ├── CMakeLists.txt │ │ ├── README.md │ │ ├── exclude.me │ │ ├── include/ │ │ │ └── exo/ │ │ │ ├── CircleExporter.h │ │ │ ├── LoggingContext.h │ │ │ └── TFLExporter.h │ │ ├── requires.cmake │ │ └── src/ │ │ ├── Check.h │ │ ├── Circle/ │ │ │ ├── CircleExporter.cpp │ │ │ ├── CircleExporterImpl.cpp │ │ │ ├── CircleExporterImpl.h │ │ │ ├── CircleExporterUtils.cpp │ │ │ ├── CircleExporterUtils.h │ │ │ ├── CircleOperationExporter.cpp │ │ │ ├── CircleOperationExporter.h │ │ │ ├── CircleTensorExporter.cpp │ │ │ ├── CircleTensorExporter.h │ │ │ ├── CircleTypeInference.cpp │ │ │ └── CircleTypeInference.h │ │ ├── Conversion/ │ │ │ ├── AvgPool2DConverter.cpp │ │ │ ├── AvgPool2DConverter.h │ │ │ ├── CanonicalNodeConverter.cpp │ │ │ ├── CanonicalNodeConverter.h │ │ │ ├── ConstGenConverter.cpp │ │ │ ├── ConstGenConverter.h │ │ │ ├── ConstGenConverter.test.cpp │ │ │ ├── Conv2DConverter.cpp │ │ │ ├── Conv2DConverter.h │ │ │ ├── DepthwiseConv2DConverter.cpp │ │ │ ├── DepthwiseConv2DConverter.h │ │ │ ├── EltwiseAddConverter.cpp │ │ │ ├── EltwiseAddConverter.h │ │ │ ├── EltwiseBinaryConverter.h │ │ │ ├── EltwiseDivConverter.cpp │ │ │ ├── EltwiseDivConverter.h │ │ │ ├── EltwiseMaxConverter.cpp │ │ │ ├── EltwiseMaxConverter.h │ │ │ ├── EltwiseMulConverter.cpp │ │ │ ├── EltwiseMulConverter.h │ │ │ ├── EltwiseSqrtConverter.cpp │ │ │ ├── EltwiseSqrtConverter.h │ │ │ ├── EltwiseSubConverter.cpp │ │ │ ├── EltwiseSubConverter.h │ │ │ ├── FeatureBiasAddConverter.cpp │ │ │ ├── FeatureBiasAddConverter.h │ │ │ ├── FeatureBiasAddConverter.test.cpp │ │ │ ├── MatMulConverter.cpp │ │ │ ├── MatMulConverter.h │ │ │ ├── MaxPool2DConverter.cpp │ │ │ ├── MaxPool2DConverter.h │ │ │ ├── Relu6Converter.cpp │ │ │ ├── Relu6Converter.h │ │ │ ├── ReluConverter.cpp │ │ │ ├── ReluConverter.h │ │ │ ├── ReluConverter.test.cpp │ │ │ ├── TensorBroadcastConverter.cpp │ │ │ ├── TensorBroadcastConverter.h │ │ │ ├── TensorConcatConverter.cpp │ │ │ ├── TensorConcatConverter.h │ │ │ ├── TensorReduceConverter.cpp │ │ │ ├── TensorReduceConverter.h │ │ │ ├── TensorTransposeConverter.cpp │ │ │ ├── TensorTransposeConverter.h │ │ │ ├── TransposedConv2DConverter.cpp │ │ │ └── TransposedConv2DConverter.h │ │ ├── Conversions.h │ │ ├── Convert.cpp │ │ ├── Convert.h │ │ ├── Dialect/ │ │ │ ├── IR/ │ │ │ │ ├── CircleDialect.cpp │ │ │ │ ├── CircleDialect.h │ │ │ │ ├── CircleDialect.test.cpp │ │ │ │ ├── CircleNode.cpp │ │ │ │ ├── CircleNode.h │ │ │ │ ├── CircleNodeDecl.h │ │ │ │ ├── CircleNodeImpl.h │ │ │ │ ├── CircleNodeVisitor.forward.h │ │ │ │ ├── CircleNodeVisitor.h │ │ │ │ ├── CircleNodes.cpp │ │ │ │ ├── CircleNodes.h │ │ │ │ ├── CircleNodes.lst │ │ │ │ ├── CircleNodes.test.cpp │ │ │ │ ├── CircleOpcode.h │ │ │ │ ├── FusedActFunc.h │ │ │ │ ├── NodeMixins.cpp │ │ │ │ ├── NodeMixins.h │ │ │ │ ├── TFLDialect.cpp │ │ │ │ ├── TFLDialect.h │ │ │ │ ├── TFLDialect.test.cpp │ │ │ │ ├── TFLNode.cpp │ │ │ │ ├── TFLNode.h │ │ │ │ ├── TFLNodeDecl.h │ │ │ │ ├── TFLNodeImpl.h │ │ │ │ ├── TFLNodeVisitor.forward.h │ │ │ │ ├── TFLNodeVisitor.h │ │ │ │ ├── TFLNodes.cpp │ │ │ │ ├── TFLNodes.h │ │ │ │ ├── TFLNodes.lst │ │ │ │ ├── TFLNodes.test.cpp │ │ │ │ └── TFLOpcode.h │ │ │ └── Service/ │ │ │ ├── CircleShapeInferenceRule.cpp │ │ │ ├── CircleShapeInferenceRule.h │ │ │ ├── CircleTypeInferenceRule.cpp │ │ │ ├── CircleTypeInferenceRule.h │ │ │ ├── TFLShapeInferenceRule.cpp │ │ │ ├── TFLShapeInferenceRule.h │ │ │ ├── TFLShapeInferenceRule.test.cpp │ │ │ ├── TFLTypeInferenceRule.cpp │ │ │ ├── TFLTypeInferenceRule.h │ │ │ └── TFLTypeInferenceRule.test.cpp │ │ ├── ExoFormattedGraph.cpp │ │ ├── ExoFormattedGraph.h │ │ ├── ExoOptimize.cpp │ │ ├── ExoOptimize.h │ │ ├── ExporterUtils.cpp │ │ ├── ExporterUtils.h │ │ ├── GraphBlock.cpp │ │ ├── GraphBlock.h │ │ ├── Knob.cpp │ │ ├── Knob.h │ │ ├── Knob.lst │ │ ├── Log.cpp │ │ ├── Log.h │ │ ├── LogHelper.cpp │ │ ├── LogHelper.h │ │ ├── LoggingContext.cpp │ │ ├── Pass/ │ │ │ ├── FoldReshapeOfConstPass.cpp │ │ │ ├── FoldReshapeOfConstPass.h │ │ │ ├── FoldTransposeOfConstPass.cpp │ │ │ ├── FoldTransposeOfConstPass.h │ │ │ ├── FuseBiasAddPass.cpp │ │ │ ├── FuseBiasAddPass.h │ │ │ ├── FuseBiasAddPass.test.cpp │ │ │ ├── FuseInstanceNormPass.cpp │ │ │ ├── FuseInstanceNormPass.h │ │ │ ├── FuseReluPass.cpp │ │ │ ├── FuseReluPass.h │ │ │ ├── FuseReluPass.test.cpp │ │ │ ├── FuseRsqrtPass.cpp │ │ │ ├── FuseRsqrtPass.h │ │ │ ├── FuseSquaredDifferencePass.cpp │ │ │ ├── FuseSquaredDifferencePass.h │ │ │ ├── MergeConcatNodesPass.cpp │ │ │ ├── MergeConcatNodesPass.h │ │ │ ├── ShapeInferencePass.cpp │ │ │ ├── ShapeInferencePass.h │ │ │ ├── TypeInferencePass.cpp │ │ │ └── TypeInferencePass.h │ │ ├── Passes.cpp │ │ ├── Passes.h │ │ ├── ProgressReporter.cpp │ │ ├── ProgressReporter.h │ │ ├── ShapeInference.cpp │ │ ├── ShapeInference.h │ │ ├── TFLite/ │ │ │ ├── TFLExporter.cpp │ │ │ ├── TFLExporterImpl.cpp │ │ │ ├── TFLExporterImpl.h │ │ │ ├── TFLExporterImpl.test.cpp │ │ │ ├── TFLExporterUtils.cpp │ │ │ ├── TFLExporterUtils.h │ │ │ ├── TFLExporterUtils.test.cpp │ │ │ ├── TFLOperationExporter.cpp │ │ │ ├── TFLOperationExporter.h │ │ │ ├── TFLTensorExporter.cpp │ │ │ ├── TFLTensorExporter.h │ │ │ ├── TFLTypeInference.cpp │ │ │ ├── TFLTypeInference.h │ │ │ └── TFLTypeInference.test.cpp │ │ ├── TestGraph.h │ │ └── TestHelper.h │ ├── fipe/ │ │ ├── CMakeLists.txt │ │ ├── README.md │ │ ├── exclude.me │ │ ├── fipe.test.cpp │ │ └── include/ │ │ └── fipe.h │ ├── fm-equalize/ │ │ ├── CMakeLists.txt │ │ ├── README.md │ │ ├── fm-equalize │ │ ├── fmelib/ │ │ │ ├── ComputeParam.py │ │ │ ├── DumpFMEParams.py │ │ │ └── __init__.py │ │ ├── requires.cmake │ │ └── test/ │ │ ├── __init__.py │ │ └── testComputeParam.py │ ├── fm-equalize-value-py-test/ │ │ ├── CMakeLists.txt │ │ ├── README.md │ │ ├── conftest.py │ │ ├── requires.cmake │ │ ├── test.lst │ │ └── test_luci_eval.py │ ├── fme-apply/ │ │ ├── CMakeLists.txt │ │ ├── README.md │ │ ├── driver/ │ │ │ └── Driver.cpp │ │ ├── requires.cmake │ │ └── src/ │ │ ├── EqualizePattern.h │ │ ├── EqualizePatternCheck.cpp │ │ ├── EqualizePatternCheck.h │ │ ├── EqualizePatternCheck.test.cpp │ │ ├── EqualizePatternRead.cpp │ │ ├── EqualizePatternRead.h │ │ ├── EqualizePatternRead.test.cpp │ │ ├── FMEqualizer.cpp │ │ ├── FMEqualizer.h │ │ ├── FMEqualizer.test.cpp │ │ ├── InsertScaleShift.cpp │ │ ├── InsertScaleShift.h │ │ ├── InsertScaleShift.test.cpp │ │ ├── ProgressReporter.cpp │ │ ├── ProgressReporter.h │ │ ├── RandomString.cpp │ │ ├── RandomString.h │ │ ├── RandomString.test.cpp │ │ ├── Support.Cast.cpp │ │ ├── Support.Cast.h │ │ ├── Support.Cast.test.cpp │ │ ├── Support.Misc.cpp │ │ ├── Support.Misc.h │ │ ├── Support.Misc.test.cpp │ │ └── pass/ │ │ ├── FusePostScalePass.cpp │ │ ├── FusePostScalePass.h │ │ ├── FusePostScalePass.test.cpp │ │ ├── FusePreScalePass.cpp │ │ ├── FusePreScalePass.h │ │ └── FusePreScalePass.test.cpp │ ├── fme-detect/ │ │ ├── CMakeLists.txt │ │ ├── README.md │ │ ├── driver/ │ │ │ └── Driver.cpp │ │ ├── requires.cmake │ │ └── src/ │ │ ├── EqualizePattern.h │ │ ├── EqualizePatternFinder.cpp │ │ ├── EqualizePatternFinder.h │ │ ├── EqualizePatternFinder.test.cpp │ │ ├── EqualizePatternWrite.cpp │ │ ├── EqualizePatternWrite.h │ │ └── EqualizePatternWrite.test.cpp │ ├── foder/ │ │ ├── CMakeLists.txt │ │ ├── README.md │ │ └── include/ │ │ └── foder/ │ │ └── FileLoader.h │ ├── hermes/ │ │ ├── CMakeLists.txt │ │ ├── README.md │ │ ├── include/ │ │ │ ├── hermes/ │ │ │ │ └── core/ │ │ │ │ ├── Config.h │ │ │ │ ├── Context.h │ │ │ │ ├── Message.h │ │ │ │ ├── MessageBuffer.h │ │ │ │ ├── MessageBus.h │ │ │ │ ├── Severity.h │ │ │ │ ├── Sink.h │ │ │ │ ├── Source.h │ │ │ │ └── SourceSetting.h │ │ │ └── hermes.h │ │ ├── requires.cmake │ │ └── src/ │ │ ├── core/ │ │ │ ├── Context.cpp │ │ │ ├── Context.test.cpp │ │ │ ├── Message.cpp │ │ │ ├── Message.test.cpp │ │ │ ├── MessageBuffer.cpp │ │ │ ├── MessageBuffer.test.cpp │ │ │ ├── MessageBus.cpp │ │ │ ├── Severity.test.cpp │ │ │ ├── Sink.cpp │ │ │ ├── Source.cpp │ │ │ └── Source.test.cpp │ │ ├── hermes.cpp │ │ └── hermes.test.cpp │ ├── hermes-std/ │ │ ├── CMakeLists.txt │ │ ├── README.md │ │ ├── include/ │ │ │ └── hermes/ │ │ │ ├── ConsoleReporter.h │ │ │ └── EnvConfig.h │ │ ├── requires.cmake │ │ └── src/ │ │ ├── ConsoleReporter.cpp │ │ ├── ConsoleReporter.test.cpp │ │ ├── EnvConfig.cpp │ │ └── EnvConfig.test.cpp │ ├── i5diff/ │ │ ├── CMakeLists.txt │ │ ├── README.md │ │ ├── requires.cmake │ │ └── src/ │ │ └── entry.cpp │ ├── kuma/ │ │ ├── CMakeLists.txt │ │ ├── README.md │ │ ├── exclude.me │ │ ├── include/ │ │ │ └── kuma.h │ │ └── src/ │ │ ├── IntervalSet.cpp │ │ ├── IntervalSet.h │ │ ├── IntervalSet.test.cpp │ │ ├── kuma.cpp │ │ └── kuma.test.cpp │ ├── loco/ │ │ ├── CMakeLists.txt │ │ ├── README.md │ │ ├── doc/ │ │ │ └── LEP_000_Dialect_Service.md │ │ ├── include/ │ │ │ ├── loco/ │ │ │ │ ├── ADT/ │ │ │ │ │ ├── AnnotatedItem.h │ │ │ │ │ └── ObjectPool.h │ │ │ │ ├── IR/ │ │ │ │ │ ├── Algorithm.h │ │ │ │ │ ├── BiasShape.h │ │ │ │ │ ├── CanonicalDialect.h │ │ │ │ │ ├── CanonicalNode.h │ │ │ │ │ ├── CanonicalNodeDecl.h │ │ │ │ │ ├── CanonicalNodeImpl.h │ │ │ │ │ ├── CanonicalNodeVisitor.forward.h │ │ │ │ │ ├── CanonicalNodeVisitor.h │ │ │ │ │ ├── CanonicalNodes.lst │ │ │ │ │ ├── CanonicalOpcode.h │ │ │ │ │ ├── CastHelpers.h │ │ │ │ │ ├── DataType.h │ │ │ │ │ ├── DataTypeTraits.h │ │ │ │ │ ├── DepthwiseFilterAxis.h │ │ │ │ │ ├── DepthwiseFilterCodec.h │ │ │ │ │ ├── DepthwiseFilterIndex.h │ │ │ │ │ ├── DepthwiseFilterShape.h │ │ │ │ │ ├── Dialect.h │ │ │ │ │ ├── DialectService.h │ │ │ │ │ ├── Dimension.h │ │ │ │ │ ├── Domain.h │ │ │ │ │ ├── FeatureAxis.h │ │ │ │ │ ├── FeatureCodec.h │ │ │ │ │ ├── FeatureIndex.h │ │ │ │ │ ├── FeatureShape.h │ │ │ │ │ ├── FilterAxis.h │ │ │ │ │ ├── FilterCodec.h │ │ │ │ │ ├── FilterIndex.h │ │ │ │ │ ├── FilterShape.h │ │ │ │ │ ├── Graph.forward.h │ │ │ │ │ ├── Graph.h │ │ │ │ │ ├── GraphInputIndex.h │ │ │ │ │ ├── GraphOutputIndex.h │ │ │ │ │ ├── MatrixAxis.h │ │ │ │ │ ├── MatrixCodec.h │ │ │ │ │ ├── MatrixIndex.h │ │ │ │ │ ├── MatrixShape.h │ │ │ │ │ ├── Node.forward.h │ │ │ │ │ ├── Node.h │ │ │ │ │ ├── NodeMixins.h │ │ │ │ │ ├── NodePool.forward.h │ │ │ │ │ ├── NodePool.h │ │ │ │ │ ├── NodeShape.h │ │ │ │ │ ├── Nodes.h │ │ │ │ │ ├── Padding2D.h │ │ │ │ │ ├── PaddingND.h │ │ │ │ │ ├── PermutingCodec.h │ │ │ │ │ ├── Stride.h │ │ │ │ │ ├── TensorAxis.h │ │ │ │ │ ├── TensorAxisSet.h │ │ │ │ │ ├── TensorIndex.h │ │ │ │ │ ├── TensorShape.h │ │ │ │ │ ├── Use.h │ │ │ │ │ ├── Verifier.h │ │ │ │ │ └── Window.h │ │ │ │ └── Service/ │ │ │ │ ├── CanonicalShapeInferenceRule.h │ │ │ │ ├── MultiDialectShapeInferenceRule.h │ │ │ │ ├── ShapeInference.h │ │ │ │ ├── ShapeInferenceRule.h │ │ │ │ └── TypeInference.h │ │ │ └── loco.h │ │ ├── requires.cmake │ │ └── src/ │ │ ├── ADT/ │ │ │ ├── AnnotatedItem.test.cpp │ │ │ └── ObjectPool.cpp │ │ ├── IR/ │ │ │ ├── Algorithm.cpp │ │ │ ├── Algorithm.test.cpp │ │ │ ├── BiasShape.test.cpp │ │ │ ├── CanonicalDialect.cpp │ │ │ ├── CanonicalDialect.test.cpp │ │ │ ├── CanonicalNode.cpp │ │ │ ├── CanonicalNode.test.cpp │ │ │ ├── CanonicalOpcode.cpp │ │ │ ├── DataType.cpp │ │ │ ├── DataTypeTraits.test.cpp │ │ │ ├── DepthwiseFilterAxis.cpp │ │ │ ├── DepthwiseFilterCodec.cpp │ │ │ ├── DepthwiseFilterIndex.test.cpp │ │ │ ├── DepthwiseFilterShape.test.cpp │ │ │ ├── Dialect.cpp │ │ │ ├── Dialect.test.cpp │ │ │ ├── DialectService.cpp │ │ │ ├── Dimension.cpp │ │ │ ├── Dimension.test.cpp │ │ │ ├── Domain.cpp │ │ │ ├── FeatureAxis.cpp │ │ │ ├── FeatureCodec.cpp │ │ │ ├── FeatureIndex.test.cpp │ │ │ ├── FeatureShape.test.cpp │ │ │ ├── FilterAxis.cpp │ │ │ ├── FilterCodec.cpp │ │ │ ├── FilterIndex.test.cpp │ │ │ ├── FilterShape.test.cpp │ │ │ ├── Graph.cpp │ │ │ ├── Graph.test.cpp │ │ │ ├── GraphInputIndex.cpp │ │ │ ├── GraphOutputIndex.cpp │ │ │ ├── MatrixAxis.cpp │ │ │ ├── MatrixCodec.cpp │ │ │ ├── MockupNode.h │ │ │ ├── Node.cpp │ │ │ ├── Node.test.cpp │ │ │ ├── NodeMixins.cpp │ │ │ ├── NodePool.cpp │ │ │ ├── NodeShape.cpp │ │ │ ├── NodeShape.test.cpp │ │ │ ├── Nodes.cpp │ │ │ ├── Nodes.test.cpp │ │ │ ├── Padding2D.test.cpp │ │ │ ├── PaddingND.test.cpp │ │ │ ├── PermutingCodec.cpp │ │ │ ├── PermutingCodec.test.cpp │ │ │ ├── Stride.test.cpp │ │ │ ├── TensorAxis.cpp │ │ │ ├── TensorAxisSet.cpp │ │ │ ├── TensorIndex.cpp │ │ │ ├── TensorIndex.test.cpp │ │ │ ├── TensorShape.cpp │ │ │ ├── TensorShape.test.cpp │ │ │ ├── Use.cpp │ │ │ ├── Use.test.cpp │ │ │ ├── Verifier.cpp │ │ │ ├── Verifier.test.cpp │ │ │ └── Window.test.cpp │ │ ├── Service/ │ │ │ ├── CanonicalShapeInferenceRule.cpp │ │ │ ├── CanonicalShapeInferenceRule.test.cpp │ │ │ ├── GraphBuilder.h │ │ │ ├── GraphBuilder.test.cpp │ │ │ ├── GraphTestcase.h │ │ │ ├── MultiDialectShapeInferenceRule.cpp │ │ │ ├── MultiDialectShapeInferenceRule.test.cpp │ │ │ ├── ShapeInference.cpp │ │ │ ├── ShapeInference.test.cpp │ │ │ ├── ShapeInferenceRule.cpp │ │ │ ├── TypeInference.cpp │ │ │ └── TypeInference.test.cpp │ │ ├── loco.test.cpp │ │ └── tensorflow.test.cpp │ ├── locoex-customop/ │ │ ├── CMakeLists.txt │ │ ├── README.md │ │ ├── include/ │ │ │ └── locoex/ │ │ │ ├── COpAttrTypes.h │ │ │ ├── COpCall.h │ │ │ ├── COpDialect.h │ │ │ ├── COpNode.h │ │ │ ├── Service/ │ │ │ │ ├── COpFormattedGraph.h │ │ │ │ ├── COpShapeInferenceRule.h │ │ │ │ └── COpTypeInference.h │ │ │ └── VariadicArityNode.h │ │ ├── requires.cmake │ │ └── src/ │ │ ├── COpCall.cpp │ │ ├── COpCall.test.cpp │ │ ├── COpDialect.cpp │ │ ├── COpDialect.test.cpp │ │ ├── COpNode.cpp │ │ ├── Service/ │ │ │ ├── COpFormattedGraph.cpp │ │ │ ├── COpShapeInferenceRule.cpp │ │ │ ├── COpShapeInferenceRule.test.cpp │ │ │ ├── COpTypeInference.cpp │ │ │ └── COpTypeInference.test.cpp │ │ └── VariadicArityNode.test.cpp │ ├── locomotiv/ │ │ ├── CMakeLists.txt │ │ ├── README.md │ │ ├── include/ │ │ │ └── locomotiv/ │ │ │ ├── NodeData.h │ │ │ └── Session.h │ │ ├── requires.cmake │ │ └── src/ │ │ ├── ConvertIndex.cpp │ │ ├── ConvertIndex.h │ │ ├── ConvertIndex.test.cpp │ │ ├── Node/ │ │ │ ├── AvgPool2D.cpp │ │ │ ├── AvgPool2D.test.cpp │ │ │ ├── BiasAdd.cpp │ │ │ ├── BiasAdd.test.cpp │ │ │ ├── BiasEncode.cpp │ │ │ ├── BiasEncode.test.cpp │ │ │ ├── ConstGen.cpp │ │ │ ├── ConstGen.test.cpp │ │ │ ├── Conv2D.cpp │ │ │ ├── Conv2D.test.cpp │ │ │ ├── DepthwiseConv2D.cpp │ │ │ ├── DepthwiseConv2D.test.cpp │ │ │ ├── DepthwiseFilterEncode.cpp │ │ │ ├── DepthwiseFilterEncode.test.cpp │ │ │ ├── EltwiseAdd.cpp │ │ │ ├── EltwiseAdd.test.cpp │ │ │ ├── EltwiseDiv.cpp │ │ │ ├── EltwiseDiv.test.cpp │ │ │ ├── EltwiseMax.cpp │ │ │ ├── EltwiseMax.test.cpp │ │ │ ├── EltwiseMul.cpp │ │ │ ├── EltwiseMul.test.cpp │ │ │ ├── EltwiseSqrt.cpp │ │ │ ├── EltwiseSqrt.test.cpp │ │ │ ├── EltwiseSub.cpp │ │ │ ├── EltwiseSub.test.cpp │ │ │ ├── FeatureCodec.test.cpp │ │ │ ├── FeatureDecode.cpp │ │ │ ├── FeatureEncode.cpp │ │ │ ├── FilterEncode.cpp │ │ │ ├── FilterEncode.test.cpp │ │ │ ├── Forward.cpp │ │ │ ├── Forward.test.cpp │ │ │ ├── MatMul.cpp │ │ │ ├── MatMul.test.cpp │ │ │ ├── MatrixCodec.test.cpp │ │ │ ├── MatrixDecode.cpp │ │ │ ├── MatrixEncode.cpp │ │ │ ├── MaxPool2D.cpp │ │ │ ├── MaxPool2D.test.cpp │ │ │ ├── Pull.cpp │ │ │ ├── Pull.test.cpp │ │ │ ├── Push.cpp │ │ │ ├── Push.test.cpp │ │ │ ├── ReLU.cpp │ │ │ ├── ReLU.test.cpp │ │ │ ├── ReLU6.cpp │ │ │ ├── ReLU6.test.cpp │ │ │ ├── Reshape.cpp │ │ │ ├── Reshape.test.cpp │ │ │ ├── Softmax.cpp │ │ │ ├── Softmax.test.cpp │ │ │ ├── Tanh.cpp │ │ │ ├── Tanh.test.cpp │ │ │ ├── TensorBroadcast.cpp │ │ │ ├── TensorBroadcast.test.cpp │ │ │ ├── TensorConcat.cpp │ │ │ ├── TensorConcat.test.cpp │ │ │ ├── TensorConstantPad.cpp │ │ │ ├── TensorConstantPad.test.cpp │ │ │ ├── TensorReduce.cpp │ │ │ ├── TensorReduce.test.cpp │ │ │ ├── TransposedConv2D.cpp │ │ │ └── TransposedConv2D.test.cpp │ │ ├── Node.lst │ │ ├── NodeData.cpp │ │ ├── NodeData.test.cpp │ │ ├── NodeDataImpl.cpp │ │ ├── NodeDataImpl.h │ │ ├── NodeDataImpl.test.cpp │ │ ├── NodeDomain.cpp │ │ ├── NodeDomain.h │ │ ├── NodeDomain.test.cpp │ │ ├── NodeExecution.cpp │ │ ├── NodeExecution.h │ │ ├── Session.cpp │ │ ├── Session.test.cpp │ │ ├── UserData.cpp │ │ ├── UserData.h │ │ └── Validation.h │ ├── locop/ │ │ ├── CMakeLists.txt │ │ ├── README.md │ │ ├── include/ │ │ │ └── locop/ │ │ │ ├── CanonicalNodeSummaryBuilder.h │ │ │ ├── FormattedGraph.h │ │ │ ├── FormattedTensorShape.h │ │ │ ├── GenericNodeSummaryBuilder.h │ │ │ ├── Interfaces.h │ │ │ ├── NodeSummary.h │ │ │ ├── NodeSummaryBuilder.h │ │ │ └── SymbolTable.h │ │ ├── requires.cmake │ │ └── src/ │ │ ├── CanonicalNodeSummaryBuilder.cpp │ │ ├── ExampleGraph.h │ │ ├── FormattedGraph.cpp │ │ ├── FormattedGraph.test.cpp │ │ ├── FormattedTensorShape.cpp │ │ ├── FormattedTensorShape.test.cpp │ │ ├── GenericNodeSummaryBuilder.cpp │ │ ├── GenericNodeSummaryBuilder.test.cpp │ │ ├── Interfaces.cpp │ │ ├── NodeSummary.cpp │ │ └── NodeSummaryBuilder.cpp │ ├── logo/ │ │ ├── CMakeLists.txt │ │ ├── README.md │ │ ├── include/ │ │ │ └── logo/ │ │ │ ├── DeadNodeQueryService.h │ │ │ ├── Passes.h │ │ │ ├── RemoveDeadNodePass.h │ │ │ ├── RemoveDeadNodeWithQueryPass.h │ │ │ ├── RemoveForwardNodePass.h │ │ │ ├── ReorderDecodePass.h │ │ │ ├── ResolveDuplicateReshapePass.h │ │ │ ├── ResolveRedundantReshapePass.h │ │ │ └── SimplifyDomainConversionPass.h │ │ ├── requires.cmake │ │ └── src/ │ │ ├── Passes/ │ │ │ ├── EmptyTestGraph.h │ │ │ ├── EmptyTestGraph.test.cpp │ │ │ ├── RemoveDeadNodePass.cpp │ │ │ ├── RemoveDeadNodePass.test.cpp │ │ │ ├── RemoveDeadNodeWithQueryPass.cpp │ │ │ ├── RemoveDeadNodeWithQueryPass.test.cpp │ │ │ ├── RemoveForwardNodePass.cpp │ │ │ ├── RemoveForwardNodePass.test.cpp │ │ │ ├── ReorderDecodePass.cpp │ │ │ ├── ReorderDecodePass.test.cpp │ │ │ ├── ResolveDuplicateReshapePass.cpp │ │ │ ├── ResolveDuplicateReshapePass.test.cpp │ │ │ ├── ResolveRedundantReshapePass.cpp │ │ │ ├── ResolveRedundantReshapePass.test.cpp │ │ │ ├── SimplifyDomainConversionPass.cpp │ │ │ └── SimplifyDomainConversionPass.test.cpp │ │ └── TestHelper.h │ ├── logo-core/ │ │ ├── CMakeLists.txt │ │ ├── README.md │ │ ├── include/ │ │ │ └── logo/ │ │ │ ├── Pass.h │ │ │ └── Phase.h │ │ ├── requires.cmake │ │ └── src/ │ │ ├── Pass.cpp │ │ ├── Pass.test.cpp │ │ ├── Phase.cpp │ │ └── Phase.test.cpp │ ├── logo-ex/ │ │ ├── CMakeLists.txt │ │ ├── README.md │ │ ├── include/ │ │ │ └── logo/ │ │ │ ├── ConstantFoldingPass.h │ │ │ └── PassesEx.h │ │ ├── requires.cmake │ │ └── src/ │ │ ├── Passes/ │ │ │ ├── ConstantFoldingPass.cpp │ │ │ └── ConstantFoldingPass.test.cpp │ │ └── TestHelper.h │ ├── luci/ │ │ ├── CMakeLists.txt │ │ ├── README.md │ │ ├── env/ │ │ │ ├── CMakeLists.txt │ │ │ ├── README.md │ │ │ ├── include/ │ │ │ │ └── luci/ │ │ │ │ └── UserSettings.h │ │ │ └── src/ │ │ │ ├── UserSettings.cpp │ │ │ └── UserSettings.test.cpp │ │ ├── export/ │ │ │ ├── CMakeLists.txt │ │ │ ├── README.md │ │ │ ├── include/ │ │ │ │ └── luci/ │ │ │ │ ├── CircleExporter.h │ │ │ │ └── CircleFileExpContract.h │ │ │ └── src/ │ │ │ ├── Check.h │ │ │ ├── CircleBuiltinTypesExtractor.h │ │ │ ├── CircleBuiltinTypesMappingRule.h │ │ │ ├── CircleExportMetadata.cpp │ │ │ ├── CircleExportMetadata.h │ │ │ ├── CircleExporter.cpp │ │ │ ├── CircleExporter.test.cpp │ │ │ ├── CircleExporterImpl.cpp │ │ │ ├── CircleExporterImpl.h │ │ │ ├── CircleExporterUtils.cpp │ │ │ ├── CircleExporterUtils.h │ │ │ ├── CircleOperationExporter.cpp │ │ │ ├── CircleOperationExporter.h │ │ │ ├── CircleOperationExporterRule.cpp │ │ │ ├── CircleOperationExporterRule.h │ │ │ ├── CircleOps.lst │ │ │ ├── CircleTensorExporter.cpp │ │ │ ├── CircleTensorExporter.h │ │ │ ├── ProgressReporter.cpp │ │ │ ├── ProgressReporter.h │ │ │ ├── SerializedData.cpp │ │ │ └── SerializedData.h │ │ ├── import/ │ │ │ ├── CMakeLists.txt │ │ │ ├── README.md │ │ │ ├── include/ │ │ │ │ └── luci/ │ │ │ │ ├── Import/ │ │ │ │ │ ├── CircleReader.h │ │ │ │ │ ├── GraphBuilder.h │ │ │ │ │ ├── GraphBuilderBase.h │ │ │ │ │ ├── GraphBuilderContext.h │ │ │ │ │ ├── GraphBuilderMultiOutput.h │ │ │ │ │ ├── GraphBuilderRegistry.h │ │ │ │ │ ├── NodeBuilder.h │ │ │ │ │ ├── Nodes/ │ │ │ │ │ │ ├── CircleAbs.h │ │ │ │ │ │ ├── CircleAdd.h │ │ │ │ │ │ ├── CircleAddN.h │ │ │ │ │ │ ├── CircleArgMax.h │ │ │ │ │ │ ├── CircleArgMin.h │ │ │ │ │ │ ├── CircleAveragePool2D.h │ │ │ │ │ │ ├── CircleBCQFullyConnected.h │ │ │ │ │ │ ├── CircleBCQGather.h │ │ │ │ │ │ ├── CircleBatchMatMul.h │ │ │ │ │ │ ├── CircleBatchToSpaceND.h │ │ │ │ │ │ ├── CircleBidirectionalSequenceLSTM.h │ │ │ │ │ │ ├── CircleBroadcastTo.h │ │ │ │ │ │ ├── CircleCast.h │ │ │ │ │ │ ├── CircleCeil.h │ │ │ │ │ │ ├── CircleConcatenation.h │ │ │ │ │ │ ├── CircleConst.h │ │ │ │ │ │ ├── CircleConv2D.h │ │ │ │ │ │ ├── CircleCos.h │ │ │ │ │ │ ├── CircleCumSum.h │ │ │ │ │ │ ├── CircleCustom.h │ │ │ │ │ │ ├── CircleDensify.h │ │ │ │ │ │ ├── CircleDepthToSpace.h │ │ │ │ │ │ ├── CircleDepthwiseConv2D.h │ │ │ │ │ │ ├── CircleDequantize.h │ │ │ │ │ │ ├── CircleDiv.h │ │ │ │ │ │ ├── CircleElu.h │ │ │ │ │ │ ├── CircleEqual.h │ │ │ │ │ │ ├── CircleExp.h │ │ │ │ │ │ ├── CircleExpandDims.h │ │ │ │ │ │ ├── CircleFakeQuant.h │ │ │ │ │ │ ├── CircleFill.h │ │ │ │ │ │ ├── CircleFloor.h │ │ │ │ │ │ ├── CircleFloorDiv.h │ │ │ │ │ │ ├── CircleFloorMod.h │ │ │ │ │ │ ├── CircleFullyConnected.h │ │ │ │ │ │ ├── CircleGRU.h │ │ │ │ │ │ ├── CircleGather.h │ │ │ │ │ │ ├── CircleGatherNd.h │ │ │ │ │ │ ├── CircleGelu.h │ │ │ │ │ │ ├── CircleGreater.h │ │ │ │ │ │ ├── CircleGreaterEqual.h │ │ │ │ │ │ ├── CircleHardSwish.h │ │ │ │ │ │ ├── CircleIf.h │ │ │ │ │ │ ├── CircleInstanceNorm.h │ │ │ │ │ │ ├── CircleL2Normalize.h │ │ │ │ │ │ ├── CircleL2Pool2D.h │ │ │ │ │ │ ├── CircleLeakyRelu.h │ │ │ │ │ │ ├── CircleLess.h │ │ │ │ │ │ ├── CircleLessEqual.h │ │ │ │ │ │ ├── CircleLocalResponseNormalization.h │ │ │ │ │ │ ├── CircleLog.h │ │ │ │ │ │ ├── CircleLogSoftmax.h │ │ │ │ │ │ ├── CircleLogicalAnd.h │ │ │ │ │ │ ├── CircleLogicalNot.h │ │ │ │ │ │ ├── CircleLogicalOr.h │ │ │ │ │ │ ├── CircleLogistic.h │ │ │ │ │ │ ├── CircleMatrixDiag.h │ │ │ │ │ │ ├── CircleMatrixSetDiag.h │ │ │ │ │ │ ├── CircleMaxPool2D.h │ │ │ │ │ │ ├── CircleMaximum.h │ │ │ │ │ │ ├── CircleMean.h │ │ │ │ │ │ ├── CircleMinimum.h │ │ │ │ │ │ ├── CircleMirrorPad.h │ │ │ │ │ │ ├── CircleMul.h │ │ │ │ │ │ ├── CircleNeg.h │ │ │ │ │ │ ├── CircleNonMaxSuppressionV4.h │ │ │ │ │ │ ├── CircleNonMaxSuppressionV5.h │ │ │ │ │ │ ├── CircleNotEqual.h │ │ │ │ │ │ ├── CircleOneHot.h │ │ │ │ │ │ ├── CirclePRelu.h │ │ │ │ │ │ ├── CirclePack.h │ │ │ │ │ │ ├── CirclePad.h │ │ │ │ │ │ ├── CirclePadV2.h │ │ │ │ │ │ ├── CirclePow.h │ │ │ │ │ │ ├── CircleQuantize.h │ │ │ │ │ │ ├── CircleRange.h │ │ │ │ │ │ ├── CircleRank.h │ │ │ │ │ │ ├── CircleReduceAny.h │ │ │ │ │ │ ├── CircleReduceMax.h │ │ │ │ │ │ ├── CircleReduceMin.h │ │ │ │ │ │ ├── CircleReduceProd.h │ │ │ │ │ │ ├── CircleRelu.h │ │ │ │ │ │ ├── CircleRelu0To1.h │ │ │ │ │ │ ├── CircleRelu6.h │ │ │ │ │ │ ├── CircleReluN1To1.h │ │ │ │ │ │ ├── CircleReshape.h │ │ │ │ │ │ ├── CircleResizeBilinear.h │ │ │ │ │ │ ├── CircleResizeNearestNeighbor.h │ │ │ │ │ │ ├── CircleReverseSequence.h │ │ │ │ │ │ ├── CircleReverseV2.h │ │ │ │ │ │ ├── CircleRmsNorm.h │ │ │ │ │ │ ├── CircleRoPE.h │ │ │ │ │ │ ├── CircleRound.h │ │ │ │ │ │ ├── CircleRsqrt.h │ │ │ │ │ │ ├── CircleSVDF.h │ │ │ │ │ │ ├── CircleScatterNd.h │ │ │ │ │ │ ├── CircleSegmentSum.h │ │ │ │ │ │ ├── CircleSelect.h │ │ │ │ │ │ ├── CircleSelectV2.h │ │ │ │ │ │ ├── CircleShape.h │ │ │ │ │ │ ├── CircleSign.h │ │ │ │ │ │ ├── CircleSin.h │ │ │ │ │ │ ├── CircleSlice.h │ │ │ │ │ │ ├── CircleSoftmax.h │ │ │ │ │ │ ├── CircleSpaceToBatchND.h │ │ │ │ │ │ ├── CircleSpaceToDepth.h │ │ │ │ │ │ ├── CircleSparseToDense.h │ │ │ │ │ │ ├── CircleSplit.h │ │ │ │ │ │ ├── CircleSplitV.h │ │ │ │ │ │ ├── CircleSqrt.h │ │ │ │ │ │ ├── CircleSquare.h │ │ │ │ │ │ ├── CircleSquaredDifference.h │ │ │ │ │ │ ├── CircleSqueeze.h │ │ │ │ │ │ ├── CircleStridedSlice.h │ │ │ │ │ │ ├── CircleSub.h │ │ │ │ │ │ ├── CircleSum.h │ │ │ │ │ │ ├── CircleTanh.h │ │ │ │ │ │ ├── CircleTile.h │ │ │ │ │ │ ├── CircleTopKV2.h │ │ │ │ │ │ ├── CircleTranspose.h │ │ │ │ │ │ ├── CircleTransposeConv.h │ │ │ │ │ │ ├── CircleUnidirectionalSequenceLSTM.h │ │ │ │ │ │ ├── CircleUnique.h │ │ │ │ │ │ ├── CircleUnpack.h │ │ │ │ │ │ ├── CircleVariable.h │ │ │ │ │ │ ├── CircleWhere.h │ │ │ │ │ │ ├── CircleWhile.h │ │ │ │ │ │ └── CircleZerosLike.h │ │ │ │ │ └── Nodes.h │ │ │ │ ├── Importer.h │ │ │ │ └── ImporterEx.h │ │ │ └── src/ │ │ │ ├── CircleImportMetadata.cpp │ │ │ ├── CircleImportMetadata.h │ │ │ ├── CircleReader.cpp │ │ │ ├── CircleReader.test.cpp │ │ │ ├── GraphBuilder.cpp │ │ │ ├── GraphBuilderContext.cpp │ │ │ ├── GraphBuilderMultiOutput.cpp │ │ │ ├── GraphBuilderRegistry.cpp │ │ │ ├── Importer.cpp │ │ │ ├── Importer.test.cpp │ │ │ ├── ImporterEx.cpp │ │ │ ├── ImporterEx.test.cpp │ │ │ ├── Nodes/ │ │ │ │ ├── CircleAbs.cpp │ │ │ │ ├── CircleAdd.cpp │ │ │ │ ├── CircleAddN.cpp │ │ │ │ ├── CircleArgMax.cpp │ │ │ │ ├── CircleArgMin.cpp │ │ │ │ ├── CircleAveragePool2D.cpp │ │ │ │ ├── CircleBCQFullyConnected.cpp │ │ │ │ ├── CircleBCQGather.cpp │ │ │ │ ├── CircleBatchMatMul.cpp │ │ │ │ ├── CircleBatchToSpaceND.cpp │ │ │ │ ├── CircleBidirectionalSequenceLSTM.cpp │ │ │ │ ├── CircleBroadcastTo.cpp │ │ │ │ ├── CircleCast.cpp │ │ │ │ ├── CircleCeil.cpp │ │ │ │ ├── CircleConcatenation.cpp │ │ │ │ ├── CircleConst.cpp │ │ │ │ ├── CircleConv2D.cpp │ │ │ │ ├── CircleCos.cpp │ │ │ │ ├── CircleCumSum.cpp │ │ │ │ ├── CircleCustom.cpp │ │ │ │ ├── CircleDensify.cpp │ │ │ │ ├── CircleDepthToSpace.cpp │ │ │ │ ├── CircleDepthwiseConv2D.cpp │ │ │ │ ├── CircleDequantize.cpp │ │ │ │ ├── CircleDiv.cpp │ │ │ │ ├── CircleElu.cpp │ │ │ │ ├── CircleEqual.cpp │ │ │ │ ├── CircleExp.cpp │ │ │ │ ├── CircleExpandDims.cpp │ │ │ │ ├── CircleFakeQuant.cpp │ │ │ │ ├── CircleFill.cpp │ │ │ │ ├── CircleFloor.cpp │ │ │ │ ├── CircleFloorDiv.cpp │ │ │ │ ├── CircleFloorMod.cpp │ │ │ │ ├── CircleFullyConnected.cpp │ │ │ │ ├── CircleGRU.cpp │ │ │ │ ├── CircleGather.cpp │ │ │ │ ├── CircleGatherNd.cpp │ │ │ │ ├── CircleGelu.cpp │ │ │ │ ├── CircleGreater.cpp │ │ │ │ ├── CircleGreaterEqual.cpp │ │ │ │ ├── CircleHardSwish.cpp │ │ │ │ ├── CircleIf.cpp │ │ │ │ ├── CircleInstanceNorm.cpp │ │ │ │ ├── CircleL2Normalize.cpp │ │ │ │ ├── CircleL2Pool2D.cpp │ │ │ │ ├── CircleLeakyRelu.cpp │ │ │ │ ├── CircleLess.cpp │ │ │ │ ├── CircleLessEqual.cpp │ │ │ │ ├── CircleLocalResponseNormalization.cpp │ │ │ │ ├── CircleLog.cpp │ │ │ │ ├── CircleLogSoftmax.cpp │ │ │ │ ├── CircleLogicalAnd.cpp │ │ │ │ ├── CircleLogicalNot.cpp │ │ │ │ ├── CircleLogicalOr.cpp │ │ │ │ ├── CircleLogistic.cpp │ │ │ │ ├── CircleMatrixDiag.cpp │ │ │ │ ├── CircleMatrixSetDiag.cpp │ │ │ │ ├── CircleMaxPool2D.cpp │ │ │ │ ├── CircleMaximum.cpp │ │ │ │ ├── CircleMean.cpp │ │ │ │ ├── CircleMinimum.cpp │ │ │ │ ├── CircleMirrorPad.cpp │ │ │ │ ├── CircleMul.cpp │ │ │ │ ├── CircleNeg.cpp │ │ │ │ ├── CircleNonMaxSuppressionV4.cpp │ │ │ │ ├── CircleNonMaxSuppressionV5.cpp │ │ │ │ ├── CircleNotEqual.cpp │ │ │ │ ├── CircleOneHot.cpp │ │ │ │ ├── CirclePRelu.cpp │ │ │ │ ├── CirclePack.cpp │ │ │ │ ├── CirclePad.cpp │ │ │ │ ├── CirclePadV2.cpp │ │ │ │ ├── CirclePow.cpp │ │ │ │ ├── CircleQuantize.cpp │ │ │ │ ├── CircleRange.cpp │ │ │ │ ├── CircleRank.cpp │ │ │ │ ├── CircleReduceAny.cpp │ │ │ │ ├── CircleReduceMax.cpp │ │ │ │ ├── CircleReduceMin.cpp │ │ │ │ ├── CircleReduceProd.cpp │ │ │ │ ├── CircleRelu.cpp │ │ │ │ ├── CircleRelu0To1.cpp │ │ │ │ ├── CircleRelu6.cpp │ │ │ │ ├── CircleReluN1To1.cpp │ │ │ │ ├── CircleReshape.cpp │ │ │ │ ├── CircleResizeBilinear.cpp │ │ │ │ ├── CircleResizeNearestNeighbor.cpp │ │ │ │ ├── CircleReverseSequence.cpp │ │ │ │ ├── CircleReverseV2.cpp │ │ │ │ ├── CircleRmsNorm.cpp │ │ │ │ ├── CircleRoPE.cpp │ │ │ │ ├── CircleRound.cpp │ │ │ │ ├── CircleRsqrt.cpp │ │ │ │ ├── CircleSVDF.cpp │ │ │ │ ├── CircleScatterNd.cpp │ │ │ │ ├── CircleSegmentSum.cpp │ │ │ │ ├── CircleSelect.cpp │ │ │ │ ├── CircleSelectV2.cpp │ │ │ │ ├── CircleShape.cpp │ │ │ │ ├── CircleSign.cpp │ │ │ │ ├── CircleSin.cpp │ │ │ │ ├── CircleSlice.cpp │ │ │ │ ├── CircleSoftmax.cpp │ │ │ │ ├── CircleSpaceToBatchND.cpp │ │ │ │ ├── CircleSpaceToDepth.cpp │ │ │ │ ├── CircleSparseToDense.cpp │ │ │ │ ├── CircleSplit.cpp │ │ │ │ ├── CircleSplitV.cpp │ │ │ │ ├── CircleSqrt.cpp │ │ │ │ ├── CircleSquare.cpp │ │ │ │ ├── CircleSquaredDifference.cpp │ │ │ │ ├── CircleSqueeze.cpp │ │ │ │ ├── CircleStridedSlice.cpp │ │ │ │ ├── CircleSub.cpp │ │ │ │ ├── CircleSum.cpp │ │ │ │ ├── CircleTanh.cpp │ │ │ │ ├── CircleTile.cpp │ │ │ │ ├── CircleTopKV2.cpp │ │ │ │ ├── CircleTranspose.cpp │ │ │ │ ├── CircleTransposeConv.cpp │ │ │ │ ├── CircleUnidirectionalSequenceLSTM.cpp │ │ │ │ ├── CircleUnique.cpp │ │ │ │ ├── CircleUnpack.cpp │ │ │ │ ├── CircleVariable.cpp │ │ │ │ ├── CircleWhere.cpp │ │ │ │ ├── CircleWhile.cpp │ │ │ │ └── CircleZerosLike.cpp │ │ │ ├── PostImport.cpp │ │ │ ├── PostImport.h │ │ │ ├── ValidateHelpers.cpp │ │ │ └── ValidateHelpers.h │ │ ├── lang/ │ │ │ ├── CMakeLists.txt │ │ │ ├── README.md │ │ │ ├── include/ │ │ │ │ └── luci/ │ │ │ │ └── IR/ │ │ │ │ ├── AttrDilation.h │ │ │ │ ├── AttrFilter.h │ │ │ │ ├── AttrFusedActFunc.h │ │ │ │ ├── AttrMirrorPadMode.h │ │ │ │ ├── AttrPadding.h │ │ │ │ ├── AttrRoPEMode.h │ │ │ │ ├── AttrStride.h │ │ │ │ ├── CastHelpers.h │ │ │ │ ├── CircleDialect.h │ │ │ │ ├── CircleMXQuantParam.h │ │ │ │ ├── CircleNode.h │ │ │ │ ├── CircleNodeDecl.h │ │ │ │ ├── CircleNodeImpl.h │ │ │ │ ├── CircleNodeMixins.h │ │ │ │ ├── CircleNodeVisitor.forward.h │ │ │ │ ├── CircleNodeVisitor.h │ │ │ │ ├── CircleNodes.h │ │ │ │ ├── CircleNodes.lst │ │ │ │ ├── CircleOpcode.h │ │ │ │ ├── CircleQuantParam.h │ │ │ │ ├── DataTypeHelper.h │ │ │ │ ├── DeadNodeQueryService.h │ │ │ │ ├── ExecutionPlanTable.h │ │ │ │ ├── LuciNodeMixins.h │ │ │ │ ├── Module.h │ │ │ │ ├── Nodes/ │ │ │ │ │ ├── CircleAbs.h │ │ │ │ │ ├── CircleAdd.h │ │ │ │ │ ├── CircleAddN.h │ │ │ │ │ ├── CircleArgMax.h │ │ │ │ │ ├── CircleArgMin.h │ │ │ │ │ ├── CircleAveragePool2D.h │ │ │ │ │ ├── CircleBCQFullyConnected.h │ │ │ │ │ ├── CircleBCQGather.h │ │ │ │ │ ├── CircleBatchMatMul.h │ │ │ │ │ ├── CircleBatchToSpaceND.h │ │ │ │ │ ├── CircleBidirectionalSequenceLSTM.h │ │ │ │ │ ├── CircleBidirectionalSequenceLSTMOut.h │ │ │ │ │ ├── CircleBroadcastTo.h │ │ │ │ │ ├── CircleCast.h │ │ │ │ │ ├── CircleCeil.h │ │ │ │ │ ├── CircleConcatenation.h │ │ │ │ │ ├── CircleConst.h │ │ │ │ │ ├── CircleConv2D.h │ │ │ │ │ ├── CircleCos.h │ │ │ │ │ ├── CircleCumSum.h │ │ │ │ │ ├── CircleCustom.h │ │ │ │ │ ├── CircleCustomOut.h │ │ │ │ │ ├── CircleDensify.h │ │ │ │ │ ├── CircleDepthToSpace.h │ │ │ │ │ ├── CircleDepthwiseConv2D.h │ │ │ │ │ ├── CircleDequantize.h │ │ │ │ │ ├── CircleDiv.h │ │ │ │ │ ├── CircleElu.h │ │ │ │ │ ├── CircleEqual.h │ │ │ │ │ ├── CircleExp.h │ │ │ │ │ ├── CircleExpandDims.h │ │ │ │ │ ├── CircleFakeQuant.h │ │ │ │ │ ├── CircleFill.h │ │ │ │ │ ├── CircleFloor.h │ │ │ │ │ ├── CircleFloorDiv.h │ │ │ │ │ ├── CircleFloorMod.h │ │ │ │ │ ├── CircleFullyConnected.h │ │ │ │ │ ├── CircleGRU.h │ │ │ │ │ ├── CircleGather.h │ │ │ │ │ ├── CircleGatherNd.h │ │ │ │ │ ├── CircleGelu.h │ │ │ │ │ ├── CircleGreater.h │ │ │ │ │ ├── CircleGreaterEqual.h │ │ │ │ │ ├── CircleHardSwish.h │ │ │ │ │ ├── CircleIf.h │ │ │ │ │ ├── CircleIfOut.h │ │ │ │ │ ├── CircleInput.h │ │ │ │ │ ├── CircleInstanceNorm.h │ │ │ │ │ ├── CircleL2Normalize.h │ │ │ │ │ ├── CircleL2Pool2D.h │ │ │ │ │ ├── CircleLeakyRelu.h │ │ │ │ │ ├── CircleLess.h │ │ │ │ │ ├── CircleLessEqual.h │ │ │ │ │ ├── CircleLocalResponseNormalization.h │ │ │ │ │ ├── CircleLog.h │ │ │ │ │ ├── CircleLogSoftmax.h │ │ │ │ │ ├── CircleLogicalAnd.h │ │ │ │ │ ├── CircleLogicalNot.h │ │ │ │ │ ├── CircleLogicalOr.h │ │ │ │ │ ├── CircleLogistic.h │ │ │ │ │ ├── CircleMatrixDiag.h │ │ │ │ │ ├── CircleMatrixSetDiag.h │ │ │ │ │ ├── CircleMaxPool2D.h │ │ │ │ │ ├── CircleMaximum.h │ │ │ │ │ ├── CircleMean.h │ │ │ │ │ ├── CircleMinimum.h │ │ │ │ │ ├── CircleMirrorPad.h │ │ │ │ │ ├── CircleMul.h │ │ │ │ │ ├── CircleNeg.h │ │ │ │ │ ├── CircleNonMaxSuppressionV4.h │ │ │ │ │ ├── CircleNonMaxSuppressionV4Out.h │ │ │ │ │ ├── CircleNonMaxSuppressionV5.h │ │ │ │ │ ├── CircleNonMaxSuppressionV5Out.h │ │ │ │ │ ├── CircleNotEqual.h │ │ │ │ │ ├── CircleOneHot.h │ │ │ │ │ ├── CircleOutput.h │ │ │ │ │ ├── CirclePRelu.h │ │ │ │ │ ├── CirclePack.h │ │ │ │ │ ├── CirclePad.h │ │ │ │ │ ├── CirclePadV2.h │ │ │ │ │ ├── CirclePow.h │ │ │ │ │ ├── CircleQuantize.h │ │ │ │ │ ├── CircleRange.h │ │ │ │ │ ├── CircleRank.h │ │ │ │ │ ├── CircleReduceAny.h │ │ │ │ │ ├── CircleReduceMax.h │ │ │ │ │ ├── CircleReduceMin.h │ │ │ │ │ ├── CircleReduceProd.h │ │ │ │ │ ├── CircleRelu.h │ │ │ │ │ ├── CircleRelu0To1.h │ │ │ │ │ ├── CircleRelu6.h │ │ │ │ │ ├── CircleReluN1To1.h │ │ │ │ │ ├── CircleReshape.h │ │ │ │ │ ├── CircleResizeBilinear.h │ │ │ │ │ ├── CircleResizeNearestNeighbor.h │ │ │ │ │ ├── CircleReverseSequence.h │ │ │ │ │ ├── CircleReverseV2.h │ │ │ │ │ ├── CircleRmsNorm.h │ │ │ │ │ ├── CircleRoPE.h │ │ │ │ │ ├── CircleRound.h │ │ │ │ │ ├── CircleRsqrt.h │ │ │ │ │ ├── CircleSVDF.h │ │ │ │ │ ├── CircleScatterNd.h │ │ │ │ │ ├── CircleSegmentSum.h │ │ │ │ │ ├── CircleSelect.h │ │ │ │ │ ├── CircleSelectV2.h │ │ │ │ │ ├── CircleShape.h │ │ │ │ │ ├── CircleSign.h │ │ │ │ │ ├── CircleSin.h │ │ │ │ │ ├── CircleSlice.h │ │ │ │ │ ├── CircleSoftmax.h │ │ │ │ │ ├── CircleSpaceToBatchND.h │ │ │ │ │ ├── CircleSpaceToDepth.h │ │ │ │ │ ├── CircleSparseToDense.h │ │ │ │ │ ├── CircleSplit.h │ │ │ │ │ ├── CircleSplitOut.h │ │ │ │ │ ├── CircleSplitV.h │ │ │ │ │ ├── CircleSplitVOut.h │ │ │ │ │ ├── CircleSqrt.h │ │ │ │ │ ├── CircleSquare.h │ │ │ │ │ ├── CircleSquaredDifference.h │ │ │ │ │ ├── CircleSqueeze.h │ │ │ │ │ ├── CircleStridedSlice.h │ │ │ │ │ ├── CircleSub.h │ │ │ │ │ ├── CircleSum.h │ │ │ │ │ ├── CircleTanh.h │ │ │ │ │ ├── CircleTile.h │ │ │ │ │ ├── CircleTopKV2.h │ │ │ │ │ ├── CircleTopKV2Out.h │ │ │ │ │ ├── CircleTranspose.h │ │ │ │ │ ├── CircleTransposeConv.h │ │ │ │ │ ├── CircleUnidirectionalSequenceLSTM.h │ │ │ │ │ ├── CircleUnique.h │ │ │ │ │ ├── CircleUniqueOut.h │ │ │ │ │ ├── CircleUnpack.h │ │ │ │ │ ├── CircleUnpackOut.h │ │ │ │ │ ├── CircleVariable.h │ │ │ │ │ ├── CircleWhere.h │ │ │ │ │ ├── CircleWhile.h │ │ │ │ │ ├── CircleWhileOut.h │ │ │ │ │ └── CircleZerosLike.h │ │ │ │ ├── PropertyShapeStatus.h │ │ │ │ ├── SparsityParam.h │ │ │ │ └── VariadicArityNode.h │ │ │ └── src/ │ │ │ ├── AttrDilation.cpp │ │ │ ├── AttrDilation.test.cpp │ │ │ ├── AttrFilter.cpp │ │ │ ├── AttrFilter.test.cpp │ │ │ ├── AttrStride.cpp │ │ │ ├── AttrStride.test.cpp │ │ │ ├── CastHelpers.cpp │ │ │ ├── CastHelpers.test.cpp │ │ │ ├── Check.h │ │ │ ├── CircleDialect.cpp │ │ │ ├── CircleDialect.test.cpp │ │ │ ├── CircleNode.cpp │ │ │ ├── CircleNodeMixins.cpp │ │ │ ├── CircleNodeShapeDtype.test.cpp │ │ │ ├── CircleNodes.cpp │ │ │ ├── CircleQuantParam.cpp │ │ │ ├── CircleQuantParam.test.cpp │ │ │ ├── DataTypeHelper.cpp │ │ │ ├── DeadNodeQueryService.cpp │ │ │ ├── Module.cpp │ │ │ ├── Module.test.cpp │ │ │ └── Nodes/ │ │ │ ├── CircleAbs.test.cpp │ │ │ ├── CircleAdd.test.cpp │ │ │ ├── CircleAddN.test.cpp │ │ │ ├── CircleArgMax.test.cpp │ │ │ ├── CircleArgMin.test.cpp │ │ │ ├── CircleAveragePool2D.test.cpp │ │ │ ├── CircleBCQFullyConnected.test.cpp │ │ │ ├── CircleBCQGather.test.cpp │ │ │ ├── CircleBatchMatMul.test.cpp │ │ │ ├── CircleBatchToSpaceND.test.cpp │ │ │ ├── CircleBidrectionalSequenceLSTM.test.cpp │ │ │ ├── CircleBroadcastTo.test.cpp │ │ │ ├── CircleCast.test.cpp │ │ │ ├── CircleCeil.test.cpp │ │ │ ├── CircleConcatenation.test.cpp │ │ │ ├── CircleConst.cpp │ │ │ ├── CircleConst.test.cpp │ │ │ ├── CircleConv2D.test.cpp │ │ │ ├── CircleCos.test.cpp │ │ │ ├── CircleCumSum.test.cpp │ │ │ ├── CircleCustom.test.cpp │ │ │ ├── CircleCustomOut.test.cpp │ │ │ ├── CircleDensify.test.cpp │ │ │ ├── CircleDepthToSpace.test.cpp │ │ │ ├── CircleDepthwiseConv2D.test.cpp │ │ │ ├── CircleDequantize.test.cpp │ │ │ ├── CircleDiv.test.cpp │ │ │ ├── CircleElu.test.cpp │ │ │ ├── CircleEqual.test.cpp │ │ │ ├── CircleExp.test.cpp │ │ │ ├── CircleExpandDims.test.cpp │ │ │ ├── CircleFakeQuant.test.cpp │ │ │ ├── CircleFill.test.cpp │ │ │ ├── CircleFloor.test.cpp │ │ │ ├── CircleFloorDiv.test.cpp │ │ │ ├── CircleFloorMod.test.cpp │ │ │ ├── CircleFullyConnected.test.cpp │ │ │ ├── CircleGRU.test.cpp │ │ │ ├── CircleGather.test.cpp │ │ │ ├── CircleGatherNd.test.cpp │ │ │ ├── CircleGelu.test.cpp │ │ │ ├── CircleGreater.test.cpp │ │ │ ├── CircleGreaterEqual.test.cpp │ │ │ ├── CircleHardSwish.test.cpp │ │ │ ├── CircleIf.test.cpp │ │ │ ├── CircleIfOut.test.cpp │ │ │ ├── CircleInput.cpp │ │ │ ├── CircleInstanceNorm.test.cpp │ │ │ ├── CircleL2Pool2D.test.cpp │ │ │ ├── CircleLeakyRelu.test.cpp │ │ │ ├── CircleLess.test.cpp │ │ │ ├── CircleLessEqual.test.cpp │ │ │ ├── CircleLocalResponseNormalization.test.cpp │ │ │ ├── CircleLog.test.cpp │ │ │ ├── CircleLogSoftmax.test.cpp │ │ │ ├── CircleLogicalAnd.test.cpp │ │ │ ├── CircleLogicalNot.test.cpp │ │ │ ├── CircleLogicalOr.test.cpp │ │ │ ├── CircleLogistic.test.cpp │ │ │ ├── CircleMatrixDiag.test.cpp │ │ │ ├── CircleMatrixSetDiag.test.cpp │ │ │ ├── CircleMaxPool2D.test.cpp │ │ │ ├── CircleMaximum.test.cpp │ │ │ ├── CircleMean.test.cpp │ │ │ ├── CircleMinimum.test.cpp │ │ │ ├── CircleMirrorPad.test.cpp │ │ │ ├── CircleMul.test.cpp │ │ │ ├── CircleNeg.test.cpp │ │ │ ├── CircleNonMaxSuppressionV4.test.cpp │ │ │ ├── CircleNonMaxSuppressionV4Out.test.cpp │ │ │ ├── CircleNonMaxSuppressionV5.test.cpp │ │ │ ├── CircleNonMaxSuppressionV5Out.test.cpp │ │ │ ├── CircleNotEqual.test.cpp │ │ │ ├── CircleOneHot.test.cpp │ │ │ ├── CircleOutput.cpp │ │ │ ├── CirclePRelu.test.cpp │ │ │ ├── CirclePack.test.cpp │ │ │ ├── CirclePad.test.cpp │ │ │ ├── CirclePadV2.test.cpp │ │ │ ├── CirclePow.test.cpp │ │ │ ├── CircleQuantize.test.cpp │ │ │ ├── CircleRange.test.cpp │ │ │ ├── CircleRank.test.cpp │ │ │ ├── CircleReduceAny.test.cpp │ │ │ ├── CircleReduceMax.test.cpp │ │ │ ├── CircleReduceMin.test.cpp │ │ │ ├── CircleReduceProd.test.cpp │ │ │ ├── CircleRelu.test.cpp │ │ │ ├── CircleRelu0To1.test.cpp │ │ │ ├── CircleRelu6.test.cpp │ │ │ ├── CircleReluN1To1.test.cpp │ │ │ ├── CircleReshape.test.cpp │ │ │ ├── CircleResizeBilinear.test.cpp │ │ │ ├── CircleResizeNearestNeighbor.test.cpp │ │ │ ├── CircleReverseSequence.test.cpp │ │ │ ├── CircleReverseV2.test.cpp │ │ │ ├── CircleRmsNorm.test.cpp │ │ │ ├── CircleRoPE.test.cpp │ │ │ ├── CircleRound.test.cpp │ │ │ ├── CircleRsqrt.test.cpp │ │ │ ├── CircleSVDF.test.cpp │ │ │ ├── CircleScatterNd.test.cpp │ │ │ ├── CircleSegmentSum.test.cpp │ │ │ ├── CircleSelect.test.cpp │ │ │ ├── CircleSelectV2.test.cpp │ │ │ ├── CircleShape.test.cpp │ │ │ ├── CircleSign.test.cpp │ │ │ ├── CircleSin.test.cpp │ │ │ ├── CircleSlice.test.cpp │ │ │ ├── CircleSoftmax.test.cpp │ │ │ ├── CircleSpaceToBatchND.test.cpp │ │ │ ├── CircleSpaceToDepth.test.cpp │ │ │ ├── CircleSparseToDense.test.cpp │ │ │ ├── CircleSplit.test.cpp │ │ │ ├── CircleSplitOut.test.cpp │ │ │ ├── CircleSplitV.test.cpp │ │ │ ├── CircleSplitVOut.test.cpp │ │ │ ├── CircleSqrt.test.cpp │ │ │ ├── CircleSquare.test.cpp │ │ │ ├── CircleSquaredDifference.test.cpp │ │ │ ├── CircleSqueeze.test.cpp │ │ │ ├── CircleStridedSlice.test.cpp │ │ │ ├── CircleSub.test.cpp │ │ │ ├── CircleSum.test.cpp │ │ │ ├── CircleTanh.test.cpp │ │ │ ├── CircleTile.test.cpp │ │ │ ├── CircleTopKV2.test.cpp │ │ │ ├── CircleTopKV2Out.test.cpp │ │ │ ├── CircleTranspose.test.cpp │ │ │ ├── CircleTransposeConv.test.cpp │ │ │ ├── CircleUnidirectionalSequenceLSTM.test.cpp │ │ │ ├── CircleUnique.test.cpp │ │ │ ├── CircleUnpack.test.cpp │ │ │ ├── CircleUnpackOut.test.cpp │ │ │ ├── CircleVariable.test.cpp │ │ │ ├── CircleWhere.test.cpp │ │ │ ├── CircleWhile.test.cpp │ │ │ ├── CircleWhileOut.test.cpp │ │ │ └── CircleZerosLike.test.cpp │ │ ├── log/ │ │ │ ├── CMakeLists.txt │ │ │ ├── README.md │ │ │ ├── include/ │ │ │ │ └── luci/ │ │ │ │ ├── Log.h │ │ │ │ └── LoggingContext.h │ │ │ └── src/ │ │ │ ├── Log.cpp │ │ │ └── LoggingContext.cpp │ │ ├── logex/ │ │ │ ├── CMakeLists.txt │ │ │ ├── README.md │ │ │ ├── include/ │ │ │ │ └── luci/ │ │ │ │ ├── CircleNodeSummaryBuilder.h │ │ │ │ ├── CircleNodeSummaryBuilders.h │ │ │ │ ├── FormattedGraph.h │ │ │ │ └── LogHelper.h │ │ │ └── src/ │ │ │ ├── CircleNodeSummaryBuilder.cpp │ │ │ ├── CircleNodeSummaryBuilder.test.cpp │ │ │ ├── CircleNodeSummaryBuilders.cpp │ │ │ ├── FormattedGraph.cpp │ │ │ └── LogHelper.cpp │ │ ├── partition/ │ │ │ ├── CMakeLists.txt │ │ │ ├── README.md │ │ │ ├── include/ │ │ │ │ └── luci/ │ │ │ │ ├── ConnectNode.h │ │ │ │ ├── Partition.h │ │ │ │ ├── PartitionDump.h │ │ │ │ └── PartitionValidate.h │ │ │ └── src/ │ │ │ ├── CircleOpCode.cpp │ │ │ ├── CircleOpCode.h │ │ │ ├── CircleOpCode.test.cpp │ │ │ ├── ConnectNode.cpp │ │ │ ├── ConnectNode.test.cpp │ │ │ ├── ConnectNode.test.h │ │ │ ├── Nodes/ │ │ │ │ ├── CircleAbs.cpp │ │ │ │ ├── CircleAbs.test.cpp │ │ │ │ ├── CircleAdd.cpp │ │ │ │ ├── CircleAdd.test.cpp │ │ │ │ ├── CircleAddN.cpp │ │ │ │ ├── CircleAddN.test.cpp │ │ │ │ ├── CircleArgMax.cpp │ │ │ │ ├── CircleArgMax.test.cpp │ │ │ │ ├── CircleArgMin.cpp │ │ │ │ ├── CircleArgMin.test.cpp │ │ │ │ ├── CircleAveragePool2D.cpp │ │ │ │ ├── CircleAveragePool2D.test.cpp │ │ │ │ ├── CircleBCQFullyConnected.cpp │ │ │ │ ├── CircleBCQFullyConnected.test.cpp │ │ │ │ ├── CircleBCQGather.cpp │ │ │ │ ├── CircleBCQGather.test.cpp │ │ │ │ ├── CircleBatchMatMul.cpp │ │ │ │ ├── CircleBatchMatMul.test.cpp │ │ │ │ ├── CircleBatchToSpaceND.cpp │ │ │ │ ├── CircleBatchToSpaceND.test.cpp │ │ │ │ ├── CircleBroadcastTo.cpp │ │ │ │ ├── CircleBroadcastTo.test.cpp │ │ │ │ ├── CircleCast.cpp │ │ │ │ ├── CircleCast.test.cpp │ │ │ │ ├── CircleCeil.cpp │ │ │ │ ├── CircleCeil.test.cpp │ │ │ │ ├── CircleConcatenation.cpp │ │ │ │ ├── CircleConcatenation.test.cpp │ │ │ │ ├── CircleConst.cpp │ │ │ │ ├── CircleConv2D.cpp │ │ │ │ ├── CircleConv2D.test.cpp │ │ │ │ ├── CircleCos.cpp │ │ │ │ ├── CircleCos.test.cpp │ │ │ │ ├── CircleCumSum.cpp │ │ │ │ ├── CircleCumSum.test.cpp │ │ │ │ ├── CircleCustom.cpp │ │ │ │ ├── CircleCustom.test.cpp │ │ │ │ ├── CircleCustomOut.cpp │ │ │ │ ├── CircleCustomOut.test.cpp │ │ │ │ ├── CircleDensify.cpp │ │ │ │ ├── CircleDensify.test.cpp │ │ │ │ ├── CircleDepthToSpace.cpp │ │ │ │ ├── CircleDepthToSpace.test.cpp │ │ │ │ ├── CircleDepthwiseConv2D.cpp │ │ │ │ ├── CircleDepthwiseConv2D.test.cpp │ │ │ │ ├── CircleDequantize.cpp │ │ │ │ ├── CircleDequantize.test.cpp │ │ │ │ ├── CircleDiv.cpp │ │ │ │ ├── CircleDiv.test.cpp │ │ │ │ ├── CircleElu.cpp │ │ │ │ ├── CircleElu.test.cpp │ │ │ │ ├── CircleEqual.cpp │ │ │ │ ├── CircleEqual.test.cpp │ │ │ │ ├── CircleExp.cpp │ │ │ │ ├── CircleExp.test.cpp │ │ │ │ ├── CircleExpandDims.cpp │ │ │ │ ├── CircleExpandDims.test.cpp │ │ │ │ ├── CircleFakeQuant.cpp │ │ │ │ ├── CircleFakeQuant.test.cpp │ │ │ │ ├── CircleFill.cpp │ │ │ │ ├── CircleFill.test.cpp │ │ │ │ ├── CircleFloor.cpp │ │ │ │ ├── CircleFloor.test.cpp │ │ │ │ ├── CircleFloorDiv.cpp │ │ │ │ ├── CircleFloorDiv.test.cpp │ │ │ │ ├── CircleFloorMod.cpp │ │ │ │ ├── CircleFloorMod.test.cpp │ │ │ │ ├── CircleFullyConnected.cpp │ │ │ │ ├── CircleFullyConnected.test.cpp │ │ │ │ ├── CircleGRU.cpp │ │ │ │ ├── CircleGRU.test.cpp │ │ │ │ ├── CircleGather.cpp │ │ │ │ ├── CircleGather.test.cpp │ │ │ │ ├── CircleGatherNd.cpp │ │ │ │ ├── CircleGatherNd.test.cpp │ │ │ │ ├── CircleGelu.cpp │ │ │ │ ├── CircleGelu.test.cpp │ │ │ │ ├── CircleGreater.cpp │ │ │ │ ├── CircleGreater.test.cpp │ │ │ │ ├── CircleGreaterEqual.cpp │ │ │ │ ├── CircleGreaterEqual.test.cpp │ │ │ │ ├── CircleHardSwish.cpp │ │ │ │ ├── CircleHardSwish.test.cpp │ │ │ │ ├── CircleIf.cpp │ │ │ │ ├── CircleIf.test.cpp │ │ │ │ ├── CircleIfOut.cpp │ │ │ │ ├── CircleIfOut.test.cpp │ │ │ │ ├── CircleInstanceNorm.cpp │ │ │ │ ├── CircleInstanceNorm.test.cpp │ │ │ │ ├── CircleL2Normalize.cpp │ │ │ │ ├── CircleL2Normalize.test.cpp │ │ │ │ ├── CircleL2Pool2D.cpp │ │ │ │ ├── CircleL2Pool2D.test.cpp │ │ │ │ ├── CircleLeakyRelu.cpp │ │ │ │ ├── CircleLeakyRelu.test.cpp │ │ │ │ ├── CircleLess.cpp │ │ │ │ ├── CircleLess.test.cpp │ │ │ │ ├── CircleLessEqual.cpp │ │ │ │ ├── CircleLessEqual.test.cpp │ │ │ │ ├── CircleLocalResponseNormalization.cpp │ │ │ │ ├── CircleLocalResponseNormalization.test.cpp │ │ │ │ ├── CircleLog.cpp │ │ │ │ ├── CircleLog.test.cpp │ │ │ │ ├── CircleLogSoftmax.cpp │ │ │ │ ├── CircleLogSoftmax.test.cpp │ │ │ │ ├── CircleLogicalAnd.cpp │ │ │ │ ├── CircleLogicalAnd.test.cpp │ │ │ │ ├── CircleLogicalNot.cpp │ │ │ │ ├── CircleLogicalNot.test.cpp │ │ │ │ ├── CircleLogicalOr.cpp │ │ │ │ ├── CircleLogicalOr.test.cpp │ │ │ │ ├── CircleLogistic.cpp │ │ │ │ ├── CircleLogistic.test.cpp │ │ │ │ ├── CircleMatrixDiag.cpp │ │ │ │ ├── CircleMatrixDiag.test.cpp │ │ │ │ ├── CircleMatrixSetDiag.cpp │ │ │ │ ├── CircleMatrixSetDiag.test.cpp │ │ │ │ ├── CircleMaxPool2D.cpp │ │ │ │ ├── CircleMaxPool2D.test.cpp │ │ │ │ ├── CircleMaximum.cpp │ │ │ │ ├── CircleMaximum.test.cpp │ │ │ │ ├── CircleMean.cpp │ │ │ │ ├── CircleMean.test.cpp │ │ │ │ ├── CircleMinimum.cpp │ │ │ │ ├── CircleMinimum.test.cpp │ │ │ │ ├── CircleMirrorPad.cpp │ │ │ │ ├── CircleMirrorPad.test.cpp │ │ │ │ ├── CircleMul.cpp │ │ │ │ ├── CircleMul.test.cpp │ │ │ │ ├── CircleNeg.cpp │ │ │ │ ├── CircleNeg.test.cpp │ │ │ │ ├── CircleNonMaxSuppressionV4.cpp │ │ │ │ ├── CircleNonMaxSuppressionV4.test.cpp │ │ │ │ ├── CircleNonMaxSuppressionV4Out.cpp │ │ │ │ ├── CircleNonMaxSuppressionV4Out.test.cpp │ │ │ │ ├── CircleNonMaxSuppressionV5.cpp │ │ │ │ ├── CircleNonMaxSuppressionV5.test.cpp │ │ │ │ ├── CircleNonMaxSuppressionV5Out.cpp │ │ │ │ ├── CircleNonMaxSuppressionV5Out.test.cpp │ │ │ │ ├── CircleNotEqual.cpp │ │ │ │ ├── CircleNotEqual.test.cpp │ │ │ │ ├── CircleOneHot.cpp │ │ │ │ ├── CircleOneHot.test.cpp │ │ │ │ ├── CircleOutputDummy.cpp │ │ │ │ ├── CircleOutputExclude.cpp │ │ │ │ ├── CirclePRelu.cpp │ │ │ │ ├── CirclePRelu.test.cpp │ │ │ │ ├── CirclePack.cpp │ │ │ │ ├── CirclePack.test.cpp │ │ │ │ ├── CirclePad.cpp │ │ │ │ ├── CirclePad.test.cpp │ │ │ │ ├── CirclePadV2.cpp │ │ │ │ ├── CirclePadV2.test.cpp │ │ │ │ ├── CirclePow.cpp │ │ │ │ ├── CirclePow.test.cpp │ │ │ │ ├── CircleQuantize.cpp │ │ │ │ ├── CircleQuantize.test.cpp │ │ │ │ ├── CircleRange.cpp │ │ │ │ ├── CircleRange.test.cpp │ │ │ │ ├── CircleRank.cpp │ │ │ │ ├── CircleRank.test.cpp │ │ │ │ ├── CircleReduceAny.cpp │ │ │ │ ├── CircleReduceAny.test.cpp │ │ │ │ ├── CircleReduceMax.cpp │ │ │ │ ├── CircleReduceMax.test.cpp │ │ │ │ ├── CircleReduceMin.cpp │ │ │ │ ├── CircleReduceMin.test.cpp │ │ │ │ ├── CircleReduceProd.cpp │ │ │ │ ├── CircleReduceProd.test.cpp │ │ │ │ ├── CircleRelu.cpp │ │ │ │ ├── CircleRelu.test.cpp │ │ │ │ ├── CircleRelu0To1.cpp │ │ │ │ ├── CircleRelu0To1.test.cpp │ │ │ │ ├── CircleRelu6.cpp │ │ │ │ ├── CircleRelu6.test.cpp │ │ │ │ ├── CircleReluN1To1.cpp │ │ │ │ ├── CircleReluN1To1.test.cpp │ │ │ │ ├── CircleReshape.cpp │ │ │ │ ├── CircleReshape.test.cpp │ │ │ │ ├── CircleResizeBilinear.cpp │ │ │ │ ├── CircleResizeBilinear.test.cpp │ │ │ │ ├── CircleResizeNearestNeighbor.cpp │ │ │ │ ├── CircleResizeNearestNeighbor.test.cpp │ │ │ │ ├── CircleReverseSequence.cpp │ │ │ │ ├── CircleReverseSequence.test.cpp │ │ │ │ ├── CircleReverseV2.cpp │ │ │ │ ├── CircleReverseV2.test.cpp │ │ │ │ ├── CircleRmsNorm.cpp │ │ │ │ ├── CircleRmsNorm.test.cpp │ │ │ │ ├── CircleRoPE.cpp │ │ │ │ ├── CircleRoPE.test.cpp │ │ │ │ ├── CircleRound.cpp │ │ │ │ ├── CircleRound.test.cpp │ │ │ │ ├── CircleRsqrt.cpp │ │ │ │ ├── CircleRsqrt.test.cpp │ │ │ │ ├── CircleSVDF.cpp │ │ │ │ ├── CircleSVDF.test.cpp │ │ │ │ ├── CircleScatterNd.cpp │ │ │ │ ├── CircleScatterNd.test.cpp │ │ │ │ ├── CircleSegmentSum.cpp │ │ │ │ ├── CircleSegmentSum.test.cpp │ │ │ │ ├── CircleSelect.cpp │ │ │ │ ├── CircleSelect.test.cpp │ │ │ │ ├── CircleSelectV2.cpp │ │ │ │ ├── CircleSelectV2.test.cpp │ │ │ │ ├── CircleShape.cpp │ │ │ │ ├── CircleShape.test.cpp │ │ │ │ ├── CircleSign.cpp │ │ │ │ ├── CircleSign.test.cpp │ │ │ │ ├── CircleSin.cpp │ │ │ │ ├── CircleSin.test.cpp │ │ │ │ ├── CircleSlice.cpp │ │ │ │ ├── CircleSlice.test.cpp │ │ │ │ ├── CircleSoftmax.cpp │ │ │ │ ├── CircleSoftmax.test.cpp │ │ │ │ ├── CircleSpaceToBatchND.cpp │ │ │ │ ├── CircleSpaceToBatchND.test.cpp │ │ │ │ ├── CircleSpaceToDepth.cpp │ │ │ │ ├── CircleSpaceToDepth.test.cpp │ │ │ │ ├── CircleSparseToDense.cpp │ │ │ │ ├── CircleSparseToDense.test.cpp │ │ │ │ ├── CircleSplit.cpp │ │ │ │ ├── CircleSplit.test.cpp │ │ │ │ ├── CircleSplitOut.cpp │ │ │ │ ├── CircleSplitOut.test.cpp │ │ │ │ ├── CircleSplitV.cpp │ │ │ │ ├── CircleSplitV.test.cpp │ │ │ │ ├── CircleSplitVOut.cpp │ │ │ │ ├── CircleSplitVOut.test.cpp │ │ │ │ ├── CircleSqrt.cpp │ │ │ │ ├── CircleSqrt.test.cpp │ │ │ │ ├── CircleSquare.cpp │ │ │ │ ├── CircleSquare.test.cpp │ │ │ │ ├── CircleSquaredDifference.cpp │ │ │ │ ├── CircleSquaredDifference.test.cpp │ │ │ │ ├── CircleSqueeze.cpp │ │ │ │ ├── CircleSqueeze.test.cpp │ │ │ │ ├── CircleStridedSlice.cpp │ │ │ │ ├── CircleStridedSlice.test.cpp │ │ │ │ ├── CircleSub.cpp │ │ │ │ ├── CircleSub.test.cpp │ │ │ │ ├── CircleSum.cpp │
Copy disabled (too large)
Download .json
Condensed preview — 15019 files, each showing path, character count, and a content snippet. Download the .json file for the full structured content (56,244K chars).
[
{
"path": ".ahub/sam/advanced.cfg",
"chars": 30,
"preview": "[SamPolicy]\npreset=CCD_FOR_OO\n"
},
{
"path": ".ahub/sam/exclude.txt",
"chars": 1384,
"preview": "# External code: Android NN API\ncompiler/ann-api/include/NeuralNetworks.h\ncompiler/ann-ref/\n\n# Eigen\ncompiler/nnc/backen"
},
{
"path": ".ahub/tcchecker-tca/config.yaml",
"chars": 24514,
"preview": "version: 2\ntest:\n - name: NN_Runtime\n testCaseLanguage: CPP\n testFW: GTEST\n testCaseFolder:\n - /runtime/c"
},
{
"path": ".clang-format",
"chars": 2832,
"preview": "Language: Cpp\nBasedOnStyle: Google\nAccessModifierOffset: -2\nAlignAfterOpenBracket: Align\nAlignEscapedNewlinesLeft"
},
{
"path": ".ctags",
"chars": 184,
"preview": "--extra=+f\n--exclude=Product\n--exclude=build\n--exclude=tags\n--exclude=tests/scripts/framework/cache\n--exclude=tests/scri"
},
{
"path": ".git-blame-ignore-revs",
"chars": 2667,
"preview": "# Migrate to clang-format-8\nb823044b5430455dc3d59c465ec36ae2e0a18b06\n1a6d9f00ba9f84c9c0dea1920ab3e4c75c127767\n07e0bf6909"
},
{
"path": ".gitattributes",
"chars": 370,
"preview": "# Exclude from git language statistics\nruntime/tests/nnapi/specs/** linguist-detectable=false\nres/** linguist-detectable"
},
{
"path": ".github/actionlint.yaml",
"chars": 70,
"preview": "self-hosted-runner:\n labels:\n - one-x64-linux\n - one-arm-linux\n"
},
{
"path": ".github/workflows/build-dev-docker.yml",
"chars": 3328,
"preview": "name: Build docker image for CI/CD infra on PR\non:\n pull_request:\n branches:\n - master\n paths:\n - '.git"
},
{
"path": ".github/workflows/build-docker-onnx-subgr.yml",
"chars": 820,
"preview": "name: Build docker image for tools/onnx_subgraph CI\n\non:\n workflow_dispatch:\n\njobs:\n build-docker-image:\n if: githu"
},
{
"path": ".github/workflows/build-pub-dev-docker.yml",
"chars": 8384,
"preview": "name: Build and publish docker image for CI/CD infra\non:\n workflow_dispatch:\n\ndefaults:\n run:\n shell: bash\n\njobs:\n "
},
{
"path": ".github/workflows/check-format.yml",
"chars": 709,
"preview": "name: Check code format\n\non:\n push:\n branches:\n - master\n - release/*\n pull_request:\n branches:\n "
},
{
"path": ".github/workflows/check-pr-commit.yml",
"chars": 1765,
"preview": "name: Check PR commit\n\non:\n pull_request:\n branches:\n - master\n - release/*\n types:\n - opened\n "
},
{
"path": ".github/workflows/deploy-github-pages.yml",
"chars": 1090,
"preview": "name: Build and deploy github page\n\non:\n schedule:\n # Every weeks\n - cron: '30 19 * * SUN'\n workflow_dispatch:\n "
},
{
"path": ".github/workflows/generate-rootfs.yml",
"chars": 2024,
"preview": "# Generate root file system for CI/CD cross build\nname: 'Generate RootFS'\n\non:\n pull_request:\n branches:\n - mas"
},
{
"path": ".github/workflows/pub-circle-int-launchpad.yml",
"chars": 10059,
"preview": "name: Publish circle-interpreter to Launchpad\n\non:\n # TODO turn on schedule\n #schedule:\n # # 05:00 AM (KST, UTC+9:00"
},
{
"path": ".github/workflows/pub-onert-pypi.yml",
"chars": 3364,
"preview": "name: Publish onert to pypi\n\non:\n pull_request:\n branches: [ master ]\n paths:\n - '.github/workflows/pub-oner"
},
{
"path": ".github/workflows/pub-onnx2circle-launchpad.yml",
"chars": 9500,
"preview": "name: Publish onnx2circle to Launchpad\n\non:\n # TODO turn on schedule\n #schedule:\n # # 05:00 AM (KST, UTC+9:00) Mon-F"
},
{
"path": ".github/workflows/pub-tools-mec-pypi.yml",
"chars": 733,
"preview": "name: Publish model-explorer-circle to pypi\n\non:\n workflow_dispatch:\n\njobs:\n build-and-publish:\n runs-on: ubuntu-la"
},
{
"path": ".github/workflows/run-circle-mlir-build.yml",
"chars": 3102,
"preview": "name: Run Circle-MLIR Ubuntu Build\n\non:\n push:\n branches:\n - master\n - release/*\n paths:\n - '.gith"
},
{
"path": ".github/workflows/run-onecc-build.yml",
"chars": 6147,
"preview": "name: Run ONECC Ubuntu Build\n\non:\n push:\n branches:\n - master\n - release/*\n paths:\n - '.github/wor"
},
{
"path": ".github/workflows/run-onert-android-build.yml",
"chars": 3440,
"preview": "name: Run ONERT Android Release Build\n\non:\n push:\n branches:\n - master\n - release/*\n paths:\n - '.g"
},
{
"path": ".github/workflows/run-onert-cross-build.yml",
"chars": 5015,
"preview": "name: Run ONERT Ubuntu Cross Build\n\non:\n push:\n branches:\n - master\n - release/*\n paths:\n - '.gith"
},
{
"path": ".github/workflows/run-onert-gbs-build.yml",
"chars": 2162,
"preview": "name: Run ONERT Tizen GBS Build\n\non:\n push:\n branches:\n - master\n - release/*\n paths:\n - '.github/"
},
{
"path": ".github/workflows/run-onert-micro-unit-tests.yml",
"chars": 2045,
"preview": "name: Run onert-micro Unit tests\n\non:\n push:\n branches:\n - master\n - release/*\n paths:\n - 'onert-m"
},
{
"path": ".github/workflows/run-onert-native-build.yml",
"chars": 3897,
"preview": "name: Run ONERT Ubuntu Native Build\n\non:\n push:\n branches:\n - master\n - release/*\n paths:\n - '.git"
},
{
"path": ".github/workflows/run-tools-mec-build.yml",
"chars": 1136,
"preview": "name: Run tools/model-explorer-circle build\n\non:\n push:\n branches:\n - master\n - release/*\n paths:\n "
},
{
"path": ".github/workflows/run-tools-onnx-subgr-build.yml",
"chars": 1450,
"preview": "name: Run tools/onnx-subgraph Ubuntu Build\n\non:\n push:\n branches:\n - master\n - release/*\n paths:\n "
},
{
"path": ".gitignore",
"chars": 357,
"preview": "# Working Path\n/Product\n/build\n\n# Compiled python3 code cache\n**/__pycache__\n*.pyc\n\n# Test report\n/report\n\n# doxygen\n/do"
},
{
"path": ".mailmap",
"chars": 2827,
"preview": "Aleksei Grebenkin <a.grebenkin@samsung.com>\nAndrew Tischenko <a.tischenko@partner.samsung.com>\nAndrey Shedko <a.shedko@s"
},
{
"path": ".pre-commit-config.yaml",
"chars": 2761,
"preview": "exclude: .*/contrib/.*\n# for pre-commit 4.4.0\nrepos:\n - repo: https://github.com/pre-commit/pre-commit-hooks\n rev: '"
},
{
"path": ".readthedocs.yml",
"chars": 634,
"preview": "# .readthedocs.yml\n# Read the Docs configuration file\n# See https://docs.readthedocs.io/en/stable/config-file/v2.html fo"
},
{
"path": ".style.yapf",
"chars": 94,
"preview": "[style]\nBASED_ON_STYLE = pep8\nCOLUMN_LIMIT = 90\nBLANK_LINE_BEFORE_NESTED_CLASS_OR_DEF = False\n"
},
{
"path": ".yapfignore",
"chars": 99,
"preview": "runtime/3rdparty/**/*\nruntime/tests/nnapi/nnapi_test_generator/**/*\nruntime/tests/nnapi/specs/**/*\n"
},
{
"path": "CONTRIBUTORS",
"chars": 2086,
"preview": "Aleksei Grebenkin <a.grebenkin@samsung.com>\nAndrew Tischenko <a.tischenko@partner.samsung.com>\nAndrey Shedko <a.shedko@s"
},
{
"path": "COPYRIGHT",
"chars": 85,
"preview": "Copyright (c) 2020 Samsung Electronics Co., Ltd. & Contributors All Rights Reserved.\n"
},
{
"path": "LICENSE",
"chars": 30439,
"preview": "This file provides full text of licenses used in this project\n\n- Apache Licence 2.0\n- MIT\n- BSD-2-Clause\n- BSD 3-Clause\n"
},
{
"path": "Makefile.template",
"chars": 6111,
"preview": "#!/usr/bin/make -f\n\nHOST_ARCH?=$(shell uname -m)\nTARGET_ARCH?=$(shell uname -m)\nBUILD_TYPE?=Debug\nCROSS_BUILD?=0\nHOST_OS"
},
{
"path": "README.md",
"chars": 2810,
"preview": "[](https://github.com/Samsung/ONE/"
},
{
"path": "circle-mlir/.gitignore",
"chars": 15,
"preview": "Makefile\nbuild\n"
},
{
"path": "circle-mlir/CMakeLists.txt",
"chars": 1316,
"preview": "# Match the minimum required version of LLVM and MLIR\ncmake_minimum_required(VERSION 3.13.4)\n\nproject(circle-mlir)\n\nset("
},
{
"path": "circle-mlir/Makefile.sample",
"chars": 5990,
"preview": "#\n# This is a sample Makefile to configure and build circle-mlir\n# How to use:\n# ln -s Makefile.sample Makefile\n# ma"
},
{
"path": "circle-mlir/README.md",
"chars": 4071,
"preview": "# circle-mlir\n\nCircle MLIR dialect and tools\n\n## Provided Tools\n\n_onnx2circle_\n- a tool that converts ONNX models to Cir"
},
{
"path": "circle-mlir/circle-mlir/CMakeLists.txt",
"chars": 112,
"preview": "include(UseMLIR)\ninclude(UseAbseil)\n\nadd_subdirectory(lib)\nadd_subdirectory(tools)\nadd_subdirectory(tools-test)\n"
},
{
"path": "circle-mlir/circle-mlir/lib/CMakeLists.txt",
"chars": 197,
"preview": "add_subdirectory(tools)\n\nadd_subdirectory(arser)\nadd_subdirectory(schema)\nadd_subdirectory(dialect)\nadd_subdirectory(uti"
},
{
"path": "circle-mlir/circle-mlir/lib/arser/CMakeLists.txt",
"chars": 702,
"preview": "add_library(arser INTERFACE)\n\n# It specifies INTERFACE so that future targets linked with arser library will inherit its"
},
{
"path": "circle-mlir/circle-mlir/lib/arser/README.md",
"chars": 154,
"preview": "# arser\n\nFrom https://github.com/Samsung/ONE/tree/d808a9973093bf8062a253d5c8f66072d7100551/compiler/arser\n\nTODO: use com"
},
{
"path": "circle-mlir/circle-mlir/lib/arser/include/arser/arser.h",
"chars": 22090,
"preview": "/*\n * Copyright (c) 2020 Samsung Electronics Co., Ltd. All Rights Reserved\n *\n * Licensed under the Apache License, Vers"
},
{
"path": "circle-mlir/circle-mlir/lib/arser/src/arser.cpp",
"chars": 662,
"preview": "/*\n * Copyright (c) 2023 Samsung Electronics Co., Ltd. All Rights Reserved\n *\n * Licensed under the Apache License, Vers"
},
{
"path": "circle-mlir/circle-mlir/lib/arser/test/arser.test.cpp",
"chars": 9270,
"preview": "/*\n * Copyright (c) 2020 Samsung Electronics Co., Ltd. All Rights Reserved\n *\n * Licensed under the Apache License, Vers"
},
{
"path": "circle-mlir/circle-mlir/lib/arser/test/arser_prompt.h",
"chars": 1456,
"preview": "/*\n * Copyright (c) 2021 Samsung Electronics Co., Ltd. All Rights Reserved\n *\n * Licensed under the Apache License, Vers"
},
{
"path": "circle-mlir/circle-mlir/lib/dialect/CMakeLists.txt",
"chars": 1098,
"preview": "include(mlir/TableGen.cmake)\n\nset(SRC\n src/CircleDialect.cpp\n src/NameUtils.cpp\n src/ShapeInference.cpp\n utils/Dynam"
},
{
"path": "circle-mlir/circle-mlir/lib/dialect/include/circle-mlir/dialect/CircleDialect.h",
"chars": 2520,
"preview": "/*\n * Copyright (c) 2025 Samsung Electronics Co., Ltd. All Rights Reserved\n * Copyright 2019 The TensorFlow Authors. All"
},
{
"path": "circle-mlir/circle-mlir/lib/dialect/include/circle-mlir/dialect/NameUtils.h",
"chars": 1098,
"preview": "/*\n * Copyright (c) 2025 Samsung Electronics Co., Ltd. All Rights Reserved\n * Copyright 2020 The TensorFlow Authors. All"
},
{
"path": "circle-mlir/circle-mlir/lib/dialect/mlir/CircleOpEnums.td",
"chars": 3834,
"preview": "/*\n * Copyright (c) 2025 Samsung Electronics Co., Ltd. All Rights Reserved\n * Copyright 2022 The TensorFlow Authors. All"
},
{
"path": "circle-mlir/circle-mlir/lib/dialect/mlir/CircleOpInterfaces.td",
"chars": 3805,
"preview": "/*\n * Copyright (c) 2025 Samsung Electronics Co., Ltd. All Rights Reserved\n * Copyright 2020 The TensorFlow Authors. All"
},
{
"path": "circle-mlir/circle-mlir/lib/dialect/mlir/CircleOps.td",
"chars": 81018,
"preview": "/*\n * Copyright (c) 2025 Samsung Electronics Co., Ltd. All Rights Reserved\n * Copyright 2019 The TensorFlow Authors. All"
},
{
"path": "circle-mlir/circle-mlir/lib/dialect/mlir/CircleRewrite.td",
"chars": 1184,
"preview": "/*\n * Copyright (c) 2025 Samsung Electronics Co., Ltd. All Rights Reserved\n * Copyright 2019 The TensorFlow Authors. All"
},
{
"path": "circle-mlir/circle-mlir/lib/dialect/mlir/CircleShapeInferenceInterfaces.td",
"chars": 537,
"preview": "#ifndef CIRCLE_SHAPE_INFERENCE_INTERFACE\n#define CIRCLE_SHAPE_INFERENCE_INTERFACE\n\ninclude \"mlir/IR/OpBase.td\"\n\ndef CIR_"
},
{
"path": "circle-mlir/circle-mlir/lib/dialect/mlir/TableGen.cmake",
"chars": 1516,
"preview": "# NOTE create \"mlir\" folder as mlir_tablegen fails with using folder name mlir/NAME\nfile(MAKE_DIRECTORY ${CMAKE_CURRENT_"
},
{
"path": "circle-mlir/circle-mlir/lib/dialect/src/CircleDialect.cpp",
"chars": 16898,
"preview": "/*\n * Copyright (c) 2025 Samsung Electronics Co., Ltd. All Rights Reserved\n * Copyright 2019 The TensorFlow Authors. All"
},
{
"path": "circle-mlir/circle-mlir/lib/dialect/src/ConstFold.inc.cpp",
"chars": 9993,
"preview": "/*\n * Copyright (c) 2025 Samsung Electronics Co., Ltd. All Rights Reserved\n * Copyright 2019 The TensorFlow Authors. All"
},
{
"path": "circle-mlir/circle-mlir/lib/dialect/src/NameUtils.cpp",
"chars": 2538,
"preview": "/*\n * Copyright (c) 2025 Samsung Electronics Co., Ltd. All Rights Reserved\n * Copyright 2020 The TensorFlow Authors. All"
},
{
"path": "circle-mlir/circle-mlir/lib/dialect/src/ShapeInference.cpp",
"chars": 40008,
"preview": "/*\n * Copyright (c) 2025 Samsung Electronics Co., Ltd. All Rights Reserved\n * Copyright 2019 The TensorFlow Authors. All"
},
{
"path": "circle-mlir/circle-mlir/lib/dialect/src/ops/AddOp.h",
"chars": 2174,
"preview": "/*\n * Copyright (c) 2025 Samsung Electronics Co., Ltd. All Rights Reserved\n * Copyright 2019 The TensorFlow Authors. All"
},
{
"path": "circle-mlir/circle-mlir/lib/dialect/src/ops/CastOp.h",
"chars": 4564,
"preview": "/*\n * Copyright (c) 2025 Samsung Electronics Co., Ltd. All Rights Reserved\n * Copyright 2019 The TensorFlow Authors. All"
},
{
"path": "circle-mlir/circle-mlir/lib/dialect/src/ops/ConcatenationOp.h",
"chars": 9275,
"preview": "/*\n * Copyright (c) 2025 Samsung Electronics Co., Ltd. All Rights Reserved\n * Copyright 2019 The TensorFlow Authors. All"
},
{
"path": "circle-mlir/circle-mlir/lib/dialect/src/ops/ConstOp.h",
"chars": 3135,
"preview": "/*\n * Copyright (c) 2025 Samsung Electronics Co., Ltd. All Rights Reserved\n * Copyright 2019 The TensorFlow Authors. All"
},
{
"path": "circle-mlir/circle-mlir/lib/dialect/src/ops/Conv2DOp.h",
"chars": 4947,
"preview": "/*\n * Copyright (c) 2025 Samsung Electronics Co., Ltd. All Rights Reserved\n * Copyright 2019 The TensorFlow Authors. All"
},
{
"path": "circle-mlir/circle-mlir/lib/dialect/src/ops/CosOp.h",
"chars": 1644,
"preview": "/*\n * Copyright (c) 2025 Samsung Electronics Co., Ltd. All Rights Reserved\n * Copyright 2019 The TensorFlow Authors. All"
},
{
"path": "circle-mlir/circle-mlir/lib/dialect/src/ops/CustomOp.h",
"chars": 1428,
"preview": "/*\n * Copyright (c) 2025 Samsung Electronics Co., Ltd. All Rights Reserved\n * Copyright 2019 The TensorFlow Authors. All"
},
{
"path": "circle-mlir/circle-mlir/lib/dialect/src/ops/DepthwiseConv2DOp.h",
"chars": 1558,
"preview": "/*\n * Copyright (c) 2025 Samsung Electronics Co., Ltd. All Rights Reserved\n * Copyright 2019 The TensorFlow Authors. All"
},
{
"path": "circle-mlir/circle-mlir/lib/dialect/src/ops/DivOp.h",
"chars": 1532,
"preview": "/*\n * Copyright (c) 2025 Samsung Electronics Co., Ltd. All Rights Reserved\n * Copyright 2019 The TensorFlow Authors. All"
},
{
"path": "circle-mlir/circle-mlir/lib/dialect/src/ops/EqualOp.h",
"chars": 2231,
"preview": "/*\n * Copyright (c) 2025 Samsung Electronics Co., Ltd. All Rights Reserved\n * Copyright 2019 The TensorFlow Authors. All"
},
{
"path": "circle-mlir/circle-mlir/lib/dialect/src/ops/ExpandOnnxOp.h",
"chars": 5259,
"preview": "/*\n * Copyright (c) 2025 Samsung Electronics Co., Ltd. All Rights Reserved\n * Copyright 2019 The TensorFlow Authors. All"
},
{
"path": "circle-mlir/circle-mlir/lib/dialect/src/ops/FloorOp.h",
"chars": 1656,
"preview": "/*\n * Copyright (c) 2025 Samsung Electronics Co., Ltd. All Rights Reserved\n * Copyright 2019 The TensorFlow Authors. All"
},
{
"path": "circle-mlir/circle-mlir/lib/dialect/src/ops/FullyConnectedOp.h",
"chars": 6831,
"preview": "/*\n * Copyright (c) 2025 Samsung Electronics Co., Ltd. All Rights Reserved\n * Copyright 2019 The TensorFlow Authors. All"
},
{
"path": "circle-mlir/circle-mlir/lib/dialect/src/ops/GatherOp.h",
"chars": 3024,
"preview": "/*\n * Copyright (c) 2025 Samsung Electronics Co., Ltd. All Rights Reserved\n * Copyright 2019 The TensorFlow Authors. All"
},
{
"path": "circle-mlir/circle-mlir/lib/dialect/src/ops/LogOp.h",
"chars": 1804,
"preview": "/*\n * Copyright (c) 2025 Samsung Electronics Co., Ltd. All Rights Reserved\n *\n * Licensed under the Apache License, Vers"
},
{
"path": "circle-mlir/circle-mlir/lib/dialect/src/ops/MulOp.h",
"chars": 3087,
"preview": "/*\n * Copyright (c) 2025 Samsung Electronics Co., Ltd. All Rights Reserved\n * Copyright 2019 The TensorFlow Authors. All"
},
{
"path": "circle-mlir/circle-mlir/lib/dialect/src/ops/NegOp.h",
"chars": 1569,
"preview": "/*\n * Copyright (c) 2025 Samsung Electronics Co., Ltd. All Rights Reserved\n * Copyright 2019 The TensorFlow Authors. All"
},
{
"path": "circle-mlir/circle-mlir/lib/dialect/src/ops/NoValueOp.h",
"chars": 1416,
"preview": "/*\n * Copyright (c) 2025 Samsung Electronics Co., Ltd. All Rights Reserved\n * Copyright 2019 The TensorFlow Authors. All"
},
{
"path": "circle-mlir/circle-mlir/lib/dialect/src/ops/PReluOp.h",
"chars": 2537,
"preview": "/*\n * Copyright (c) 2025 Samsung Electronics Co., Ltd. All Rights Reserved\n * Copyright 2019 The TensorFlow Authors. All"
},
{
"path": "circle-mlir/circle-mlir/lib/dialect/src/ops/PadOp.h",
"chars": 1396,
"preview": "/*\n * Copyright (c) 2025 Samsung Electronics Co., Ltd. All Rights Reserved\n * Copyright 2019 The TensorFlow Authors. All"
},
{
"path": "circle-mlir/circle-mlir/lib/dialect/src/ops/PadV2Op.h",
"chars": 1360,
"preview": "/*\n * Copyright (c) 2025 Samsung Electronics Co., Ltd. All Rights Reserved\n * Copyright 2019 The TensorFlow Authors. All"
},
{
"path": "circle-mlir/circle-mlir/lib/dialect/src/ops/ReduceProdOp.h",
"chars": 2397,
"preview": "/*\n * Copyright (c) 2025 Samsung Electronics Co., Ltd. All Rights Reserved\n *\n * Licensed under the Apache License, Vers"
},
{
"path": "circle-mlir/circle-mlir/lib/dialect/src/ops/ReshapeOp.h",
"chars": 15201,
"preview": "/*\n * Copyright (c) 2025 Samsung Electronics Co., Ltd. All Rights Reserved\n * Copyright 2019 The TensorFlow Authors. All"
},
{
"path": "circle-mlir/circle-mlir/lib/dialect/src/ops/ResizeOnnxOp.h",
"chars": 4189,
"preview": "/*\n * Copyright (c) 2025 Samsung Electronics Co., Ltd. All Rights Reserved\n *\n * Licensed under the Apache License, Vers"
},
{
"path": "circle-mlir/circle-mlir/lib/dialect/src/ops/RsqrtOp.h",
"chars": 1921,
"preview": "/*\n * Copyright (c) 2025 Samsung Electronics Co., Ltd. All Rights Reserved\n * Copyright 2019 The TensorFlow Authors. All"
},
{
"path": "circle-mlir/circle-mlir/lib/dialect/src/ops/SelectOp.h",
"chars": 2351,
"preview": "/*\n * Copyright (c) 2025 Samsung Electronics Co., Ltd. All Rights Reserved\n * Copyright 2019 The TensorFlow Authors. All"
},
{
"path": "circle-mlir/circle-mlir/lib/dialect/src/ops/SelectV2Op.h",
"chars": 2935,
"preview": "/*\n * Copyright (c) 2025 Samsung Electronics Co., Ltd. All Rights Reserved\n *\n * Licensed under the Apache License, Vers"
},
{
"path": "circle-mlir/circle-mlir/lib/dialect/src/ops/ShapeOp.h",
"chars": 1891,
"preview": "/*\n * Copyright (c) 2025 Samsung Electronics Co., Ltd. All Rights Reserved\n * Copyright 2019 The TensorFlow Authors. All"
},
{
"path": "circle-mlir/circle-mlir/lib/dialect/src/ops/SinOp.h",
"chars": 1644,
"preview": "/*\n * Copyright (c) 2025 Samsung Electronics Co., Ltd. All Rights Reserved\n * Copyright 2019 The TensorFlow Authors. All"
},
{
"path": "circle-mlir/circle-mlir/lib/dialect/src/ops/SliceOp.h",
"chars": 5935,
"preview": "/*\n * Copyright (c) 2025 Samsung Electronics Co., Ltd. All Rights Reserved\n * Copyright 2019 The TensorFlow Authors. All"
},
{
"path": "circle-mlir/circle-mlir/lib/dialect/src/ops/SplitOp.h",
"chars": 7189,
"preview": "/*\n * Copyright (c) 2025 Samsung Electronics Co., Ltd. All Rights Reserved\n * Copyright 2021 The TensorFlow Authors. All"
},
{
"path": "circle-mlir/circle-mlir/lib/dialect/src/ops/SplitVOp.h",
"chars": 4671,
"preview": "/*\n * Copyright (c) 2025 Samsung Electronics Co., Ltd. All Rights Reserved\n * Copyright 2019 The TensorFlow Authors. All"
},
{
"path": "circle-mlir/circle-mlir/lib/dialect/src/ops/SqrtOp.h",
"chars": 1650,
"preview": "/*\n * Copyright (c) 2025 Samsung Electronics Co., Ltd. All Rights Reserved\n * Copyright 2019 The TensorFlow Authors. All"
},
{
"path": "circle-mlir/circle-mlir/lib/dialect/src/ops/SqueezeOp.h",
"chars": 1553,
"preview": "/*\n * Copyright (c) 2025 Samsung Electronics Co., Ltd. All Rights Reserved\n * Copyright 2019 The TensorFlow Authors. All"
},
{
"path": "circle-mlir/circle-mlir/lib/dialect/src/ops/StridedSliceOp.h",
"chars": 12563,
"preview": "/*\n * Copyright (c) 2025 Samsung Electronics Co., Ltd. All Rights Reserved\n * Copyright 2019 The TensorFlow Authors. All"
},
{
"path": "circle-mlir/circle-mlir/lib/dialect/src/ops/SubOp.h",
"chars": 2375,
"preview": "/*\n * Copyright (c) 2025 Samsung Electronics Co., Ltd. All Rights Reserved\n * Copyright 2019 The TensorFlow Authors. All"
},
{
"path": "circle-mlir/circle-mlir/lib/dialect/src/ops/TransposeConvOp.h",
"chars": 2537,
"preview": "/*\n * Copyright (c) 2025 Samsung Electronics Co., Ltd. All Rights Reserved\n * Copyright 2019 The TensorFlow Authors. All"
},
{
"path": "circle-mlir/circle-mlir/lib/dialect/src/ops/TransposeOp.h",
"chars": 7212,
"preview": "/*\n * Copyright (c) 2025 Samsung Electronics Co., Ltd. All Rights Reserved\n * Copyright 2019 The TensorFlow Authors. All"
},
{
"path": "circle-mlir/circle-mlir/lib/dialect/src/ops/UnsqueezeOnnxOp.h",
"chars": 5949,
"preview": "/*\n * Copyright (c) 2025 Samsung Electronics Co., Ltd. All Rights Reserved\n *\n * Licensed under the Apache License, Vers"
},
{
"path": "circle-mlir/circle-mlir/lib/dialect/utils/DynamicShapeUtils.cpp",
"chars": 1445,
"preview": "/*\n * Copyright (c) 2025 Samsung Electronics Co., Ltd. All Rights Reserved\n * Copyright 2021 The TensorFlow Authors. All"
},
{
"path": "circle-mlir/circle-mlir/lib/dialect/utils/DynamicShapeUtils.h",
"chars": 1138,
"preview": "/*\n * Copyright (c) 2025 Samsung Electronics Co., Ltd. All Rights Reserved\n * Copyright 2022 The TensorFlow Authors. All"
},
{
"path": "circle-mlir/circle-mlir/lib/dialect/utils/Errors.cpp",
"chars": 657,
"preview": "/*\n * Copyright (c) 2025 Samsung Electronics Co., Ltd. All Rights Reserved\n *\n * Licensed under the Apache License, Vers"
},
{
"path": "circle-mlir/circle-mlir/lib/dialect/utils/Errors.h",
"chars": 1566,
"preview": "/*\n * Copyright (c) 2025 Samsung Electronics Co., Ltd. All Rights Reserved\n * Copyright 2022 The TensorFlow Authors. All"
},
{
"path": "circle-mlir/circle-mlir/lib/dialect/utils/KernelShapeUtil.cpp",
"chars": 6656,
"preview": "/*\n * Copyright (c) 2025 Samsung Electronics Co., Ltd. All Rights Reserved\n * Copyright 2020 The TensorFlow Authors. All"
},
{
"path": "circle-mlir/circle-mlir/lib/dialect/utils/KernelShapeUtil.h",
"chars": 7553,
"preview": "/*\n * Copyright (c) 2025 Samsung Electronics Co., Ltd. All Rights Reserved\n * Copyright 2020 The TensorFlow Authors. All"
},
{
"path": "circle-mlir/circle-mlir/lib/dialect/utils/KernelShapeUtil.test.cpp",
"chars": 5545,
"preview": "/*\n * Copyright (c) 2025 Samsung Electronics Co., Ltd. All Rights Reserved\n *\n * Licensed under the Apache License, Vers"
},
{
"path": "circle-mlir/circle-mlir/lib/dialect/utils/Padding.cpp",
"chars": 1283,
"preview": "/*\n * Copyright (c) 2025 Samsung Electronics Co., Ltd. All Rights Reserved\n * Copyright 2015 The TensorFlow Authors. All"
},
{
"path": "circle-mlir/circle-mlir/lib/dialect/utils/Padding.h",
"chars": 2162,
"preview": "/*\n * Copyright (c) 2025 Samsung Electronics Co., Ltd. All Rights Reserved\n * Copyright 2015 The TensorFlow Authors. All"
},
{
"path": "circle-mlir/circle-mlir/lib/dialect/utils/Padding.test.cpp",
"chars": 1424,
"preview": "/*\n * Copyright (c) 2025 Samsung Electronics Co., Ltd. All Rights Reserved\n *\n * Licensed under the Apache License, Vers"
},
{
"path": "circle-mlir/circle-mlir/lib/export/CMakeLists.txt",
"chars": 608,
"preview": "set(SRC\n src/CircleExport.cpp\n src/OpOrArgNameMapper.cpp\n)\n\nadd_library(cirmlir_export STATIC ${SRC})\ncir_mlir_static_"
},
{
"path": "circle-mlir/circle-mlir/lib/export/include/circle-mlir/export/CircleExport.h",
"chars": 1402,
"preview": "/*\n * Copyright (c) 2025 Samsung Electronics Co., Ltd. All Rights Reserved\n * Copyright 2019 The TensorFlow Authors. All"
},
{
"path": "circle-mlir/circle-mlir/lib/export/src/CircleExport.cpp",
"chars": 37441,
"preview": "/*\n * Copyright (c) 2025 Samsung Electronics Co., Ltd. All Rights Reserved\n * Copyright 2022 The TensorFlow Authors. All"
},
{
"path": "circle-mlir/circle-mlir/lib/export/src/OpOrArgNameMapper.cpp",
"chars": 5386,
"preview": "/*\n * Copyright (c) 2025 Samsung Electronics Co., Ltd. All Rights Reserved\n * Copyright 2019 The TensorFlow Authors. All"
},
{
"path": "circle-mlir/circle-mlir/lib/export/src/OpOrArgNameMapper.h",
"chars": 3423,
"preview": "/*\n * Copyright (c) 2025 Samsung Electronics Co., Ltd. All Rights Reserved\n * Copyright 2019 The TensorFlow Authors. All"
},
{
"path": "circle-mlir/circle-mlir/lib/import/CMakeLists.txt",
"chars": 549,
"preview": "set(SRC\n src/CircleImport.cpp\n src/CircleOperator.cpp\n)\n\nadd_library(cirmlir_import STATIC ${SRC})\ncir_mlir_static_fla"
},
{
"path": "circle-mlir/circle-mlir/lib/import/include/circle-mlir/import/CircleImport.h",
"chars": 1618,
"preview": "/*\n * Copyright (c) 2025 Samsung Electronics Co., Ltd. All Rights Reserved\n * Copyright 2019 The TensorFlow Authors. All"
},
{
"path": "circle-mlir/circle-mlir/lib/import/src/CircleImport.cpp",
"chars": 37538,
"preview": "/*\n * Copyright (c) 2025 Samsung Electronics Co., Ltd. All Rights Reserved\n * Copyright 2019 The TensorFlow Authors. All"
},
{
"path": "circle-mlir/circle-mlir/lib/import/src/CircleOperator.cpp",
"chars": 3049,
"preview": "/*\n * Copyright (c) 2025 Samsung Electronics Co., Ltd. All Rights Reserved\n * Copyright 2019 The TensorFlow Authors. All"
},
{
"path": "circle-mlir/circle-mlir/lib/import/src/CircleOperator.h",
"chars": 2525,
"preview": "/*\n * Copyright (c) 2025 Samsung Electronics Co., Ltd. All Rights Reserved\n * Copyright 2019 The TensorFlow Authors. All"
},
{
"path": "circle-mlir/circle-mlir/lib/pass/CMakeLists.txt",
"chars": 793,
"preview": "set(SRC\n src/CirclePass.cpp\n src/ConvertONNXToCirclePass.cpp\n src/ConvertHelper.cpp\n src/RewriteCirclePass.cpp\n src"
},
{
"path": "circle-mlir/circle-mlir/lib/pass/include/circle-mlir/pass/CirclePass.h",
"chars": 1779,
"preview": "/*\n * Copyright (c) 2025 Samsung Electronics Co., Ltd. All Rights Reserved\n *\n * Licensed under the Apache License, Vers"
},
{
"path": "circle-mlir/circle-mlir/lib/pass/src/CirclePass.cpp",
"chars": 7275,
"preview": "/*\n * Copyright (c) 2025 Samsung Electronics Co., Ltd. All Rights Reserved\n *\n * Licensed under the Apache License, Vers"
},
{
"path": "circle-mlir/circle-mlir/lib/pass/src/ConvertHelper.cpp",
"chars": 17196,
"preview": "/*\n * Copyright (c) 2025 Samsung Electronics Co., Ltd. All Rights Reserved\n * Copyright 2019 The TensorFlow Authors. All"
},
{
"path": "circle-mlir/circle-mlir/lib/pass/src/ConvertHelper.h",
"chars": 8679,
"preview": "/*\n * Copyright (c) 2025 Samsung Electronics Co., Ltd. All Rights Reserved\n * Copyright 2019 The TensorFlow Authors. All"
},
{
"path": "circle-mlir/circle-mlir/lib/pass/src/ConvertONNXToCirclePass.cpp",
"chars": 10689,
"preview": "/*\n * Copyright (c) 2025 Samsung Electronics Co., Ltd. All Rights Reserved\n * Copyright 2019-2022 The IBM Research Autho"
},
{
"path": "circle-mlir/circle-mlir/lib/pass/src/ConvertONNXToCirclePass.h",
"chars": 1004,
"preview": "/*\n * Copyright (c) 2025 Samsung Electronics Co., Ltd. All Rights Reserved\n *\n * Licensed under the Apache License, Vers"
},
{
"path": "circle-mlir/circle-mlir/lib/pass/src/DumpCircleOpsPass.cpp",
"chars": 1278,
"preview": "/*\n * Copyright (c) 2025 Samsung Electronics Co., Ltd. All Rights Reserved\n *\n * Licensed under the Apache License, Vers"
},
{
"path": "circle-mlir/circle-mlir/lib/pass/src/DumpCircleOpsPass.h",
"chars": 1951,
"preview": "/*\n * Copyright (c) 2025 Samsung Electronics Co., Ltd. All Rights Reserved\n *\n * Licensed under the Apache License, Vers"
},
{
"path": "circle-mlir/circle-mlir/lib/pass/src/DynamicBatchToSingleBatchPass.cpp",
"chars": 3550,
"preview": "/*\n * Copyright (c) 2025 Samsung Electronics Co., Ltd. All Rights Reserved\n * Copyright 2019-2024 The IBM Research Autho"
},
{
"path": "circle-mlir/circle-mlir/lib/pass/src/DynamicBatchToSingleBatchPass.h",
"chars": 1040,
"preview": "/*\n * Copyright (c) 2025 Samsung Electronics Co., Ltd. All Rights Reserved\n *\n * Licensed under the Apache License, Vers"
},
{
"path": "circle-mlir/circle-mlir/lib/pass/src/RewriteCirclePass.cpp",
"chars": 3855,
"preview": "/*\n * Copyright (c) 2025 Samsung Electronics Co., Ltd. All Rights Reserved\n *\n * Licensed under the Apache License, Vers"
},
{
"path": "circle-mlir/circle-mlir/lib/pass/src/RewriteCirclePass.h",
"chars": 983,
"preview": "/*\n * Copyright (c) 2025 Samsung Electronics Co., Ltd. All Rights Reserved\n *\n * Licensed under the Apache License, Vers"
},
{
"path": "circle-mlir/circle-mlir/lib/pass/src/RewriteONNXPass.cpp",
"chars": 2271,
"preview": "/*\n * Copyright (c) 2025 Samsung Electronics Co., Ltd. All Rights Reserved\n *\n * Licensed under the Apache License, Vers"
},
{
"path": "circle-mlir/circle-mlir/lib/pass/src/RewriteONNXPass.h",
"chars": 975,
"preview": "/*\n * Copyright (c) 2025 Samsung Electronics Co., Ltd. All Rights Reserved\n *\n * Licensed under the Apache License, Vers"
},
{
"path": "circle-mlir/circle-mlir/lib/pass/src/RuntimeVerifyPass.cpp",
"chars": 1929,
"preview": "/*\n * Copyright (c) 2025 Samsung Electronics Co., Ltd. All Rights Reserved\n * Copyright 2020 The TensorFlow Authors. All"
},
{
"path": "circle-mlir/circle-mlir/lib/pass/src/RuntimeVerifyPass.h",
"chars": 1084,
"preview": "/*\n * Copyright (c) 2025 Samsung Electronics Co., Ltd. All Rights Reserved\n * Copyright 2020 The TensorFlow Authors. All"
},
{
"path": "circle-mlir/circle-mlir/lib/pass/src/ShapeInferencePass.cpp",
"chars": 8657,
"preview": "/*\n * Copyright (c) 2025 Samsung Electronics Co., Ltd. All Rights Reserved\n * Copyright 2020 The TensorFlow Authors. All"
},
{
"path": "circle-mlir/circle-mlir/lib/pass/src/ShapeInferencePass.h",
"chars": 1224,
"preview": "/*\n * Copyright (c) 2025 Samsung Electronics Co., Ltd. All Rights Reserved\n * Copyright 2020 The TensorFlow Authors. All"
},
{
"path": "circle-mlir/circle-mlir/lib/pass/src/onnx/CompactReshapeConvReshape.h",
"chars": 6325,
"preview": "/*\n * Copyright (c) 2025 Samsung Electronics Co., Ltd. All Rights Reserved\n *\n * Licensed under the Apache License, Vers"
},
{
"path": "circle-mlir/circle-mlir/lib/pass/src/ops/ArgMaxOp.h",
"chars": 2762,
"preview": "/*\n * Copyright (c) 2025 Samsung Electronics Co., Ltd. All Rights Reserved\n *\n * Licensed under the Apache License, Vers"
},
{
"path": "circle-mlir/circle-mlir/lib/pass/src/ops/AveragePoolOp.h",
"chars": 5320,
"preview": "/*\n * Copyright (c) 2025 Samsung Electronics Co., Ltd. All Rights Reserved\n *\n * Licensed under the Apache License, Vers"
},
{
"path": "circle-mlir/circle-mlir/lib/pass/src/ops/BatchNormalizationInferenceModeOp.h",
"chars": 7927,
"preview": "/*\n * Copyright (c) 2025 Samsung Electronics Co., Ltd. All Rights Reserved\n *\n * Licensed under the Apache License, Vers"
},
{
"path": "circle-mlir/circle-mlir/lib/pass/src/ops/CastOp.h",
"chars": 1521,
"preview": "/*\n * Copyright (c) 2025 Samsung Electronics Co., Ltd. All Rights Reserved\n *\n * Licensed under the Apache License, Vers"
},
{
"path": "circle-mlir/circle-mlir/lib/pass/src/ops/ClipOp.h",
"chars": 3349,
"preview": "/*\n * Copyright (c) 2025 Samsung Electronics Co., Ltd. All Rights Reserved\n *\n * Licensed under the Apache License, Vers"
},
{
"path": "circle-mlir/circle-mlir/lib/pass/src/ops/ConcatOp.h",
"chars": 2196,
"preview": "/*\n * Copyright (c) 2025 Samsung Electronics Co., Ltd. All Rights Reserved\n *\n * Licensed under the Apache License, Vers"
},
{
"path": "circle-mlir/circle-mlir/lib/pass/src/ops/ConstantOfShapeOp.h",
"chars": 4179,
"preview": "/*\n * Copyright (c) 2025 Samsung Electronics Co., Ltd. All Rights Reserved\n *\n * Licensed under the Apache License, Vers"
},
{
"path": "circle-mlir/circle-mlir/lib/pass/src/ops/ConstantOp.h",
"chars": 2104,
"preview": "/*\n * Copyright (c) 2025 Samsung Electronics Co., Ltd. All Rights Reserved\n *\n * Licensed under the Apache License, Vers"
},
{
"path": "circle-mlir/circle-mlir/lib/pass/src/ops/ConvOp.h",
"chars": 16274,
"preview": "/*\n * Copyright (c) 2025 Samsung Electronics Co., Ltd. All Rights Reserved\n *\n * Licensed under the Apache License, Vers"
},
{
"path": "circle-mlir/circle-mlir/lib/pass/src/ops/ConvTransposeOp.h",
"chars": 9160,
"preview": "/*\n * Copyright (c) 2025 Samsung Electronics Co., Ltd. All Rights Reserved\n * Copyright 2019-2020 The IBM Research Autho"
},
{
"path": "circle-mlir/circle-mlir/lib/pass/src/ops/CosOp.h",
"chars": 1540,
"preview": "/*\n * Copyright (c) 2025 Samsung Electronics Co., Ltd. All Rights Reserved\n *\n * Licensed under the Apache License, Vers"
},
{
"path": "circle-mlir/circle-mlir/lib/pass/src/ops/CumsumOp.h",
"chars": 1856,
"preview": "/*\n * Copyright (c) 2025 Samsung Electronics Co., Ltd. All Rights Reserved\n *\n * Licensed under the Apache License, Vers"
},
{
"path": "circle-mlir/circle-mlir/lib/pass/src/ops/DequantizeLinearOp.h",
"chars": 2644,
"preview": "/*\n * Copyright (c) 2025 Samsung Electronics Co., Ltd. All Rights Reserved\n *\n * Licensed under the Apache License, Vers"
},
{
"path": "circle-mlir/circle-mlir/lib/pass/src/ops/EqualOp.h",
"chars": 1894,
"preview": "/*\n * Copyright (c) 2025 Samsung Electronics Co., Ltd. All Rights Reserved\n *\n * Licensed under the Apache License, Vers"
},
{
"path": "circle-mlir/circle-mlir/lib/pass/src/ops/ErfOp.h",
"chars": 2238,
"preview": "/*\n * Copyright (c) 2025 Samsung Electronics Co., Ltd. All Rights Reserved\n *\n * Licensed under the Apache License, Vers"
},
{
"path": "circle-mlir/circle-mlir/lib/pass/src/ops/ExpOp.h",
"chars": 1540,
"preview": "/*\n * Copyright (c) 2025 Samsung Electronics Co., Ltd. All Rights Reserved\n *\n * Licensed under the Apache License, Vers"
},
{
"path": "circle-mlir/circle-mlir/lib/pass/src/ops/ExpandOp.h",
"chars": 2248,
"preview": "/*\n * Copyright (c) 2025 Samsung Electronics Co., Ltd. All Rights Reserved\n *\n * Licensed under the Apache License, Vers"
},
{
"path": "circle-mlir/circle-mlir/lib/pass/src/ops/FlattenOp.h",
"chars": 2192,
"preview": "/*\n * Copyright (c) 2025 Samsung Electronics Co., Ltd. All Rights Reserved\n *\n * Licensed under the Apache License, Vers"
},
{
"path": "circle-mlir/circle-mlir/lib/pass/src/ops/FloorOp.h",
"chars": 1554,
"preview": "/*\n * Copyright (c) 2025 Samsung Electronics Co., Ltd. All Rights Reserved\n *\n * Licensed under the Apache License, Vers"
},
{
"path": "circle-mlir/circle-mlir/lib/pass/src/ops/GatherOp.h",
"chars": 5634,
"preview": "/*\n * Copyright (c) 2025 Samsung Electronics Co., Ltd. All Rights Reserved\n *\n * Licensed under the Apache License, Vers"
},
{
"path": "circle-mlir/circle-mlir/lib/pass/src/ops/GemmOp.h",
"chars": 6420,
"preview": "/*\n * Copyright (c) 2025 Samsung Electronics Co., Ltd. All Rights Reserved\n *\n * Licensed under the Apache License, Vers"
},
{
"path": "circle-mlir/circle-mlir/lib/pass/src/ops/GlobalAveragePoolOp.h",
"chars": 2570,
"preview": "/*\n * Copyright (c) 2025 Samsung Electronics Co., Ltd. All Rights Reserved\n *\n * Licensed under the Apache License, Vers"
},
{
"path": "circle-mlir/circle-mlir/lib/pass/src/ops/GreaterOp.h",
"chars": 1870,
"preview": "/*\n * Copyright (c) 2025 Samsung Electronics Co., Ltd. All Rights Reserved\n *\n * Licensed under the Apache License, Vers"
},
{
"path": "circle-mlir/circle-mlir/lib/pass/src/ops/HardSigmoidOp.h",
"chars": 2996,
"preview": "/*\n * Copyright (c) 2025 Samsung Electronics Co., Ltd. All Rights Reserved\n *\n * Licensed under the Apache License, Vers"
},
{
"path": "circle-mlir/circle-mlir/lib/pass/src/ops/HardSwishOp.h",
"chars": 1593,
"preview": "/*\n * Copyright (c) 2025 Samsung Electronics Co., Ltd. All Rights Reserved\n *\n * Licensed under the Apache License, Vers"
},
{
"path": "circle-mlir/circle-mlir/lib/pass/src/ops/IdentityOp.h",
"chars": 1518,
"preview": "/*\n * Copyright (c) 2025 Samsung Electronics Co., Ltd. All Rights Reserved\n *\n * Licensed under the Apache License, Vers"
},
{
"path": "circle-mlir/circle-mlir/lib/pass/src/ops/InstanceNormalizationOp.h",
"chars": 2922,
"preview": "/*\n * Copyright (c) 2025 Samsung Electronics Co., Ltd. All Rights Reserved\n *\n * Licensed under the Apache License, Vers"
},
{
"path": "circle-mlir/circle-mlir/lib/pass/src/ops/LeakyReluOp.h",
"chars": 1619,
"preview": "/*\n * Copyright (c) 2025 Samsung Electronics Co., Ltd. All Rights Reserved\n *\n * Licensed under the Apache License, Vers"
},
{
"path": "circle-mlir/circle-mlir/lib/pass/src/ops/LogOp.h",
"chars": 1540,
"preview": "/*\n * Copyright (c) 2025 Samsung Electronics Co., Ltd. All Rights Reserved\n *\n * Licensed under the Apache License, Vers"
},
{
"path": "circle-mlir/circle-mlir/lib/pass/src/ops/MatMulOp.h",
"chars": 5078,
"preview": "/*\n * Copyright (c) 2025 Samsung Electronics Co., Ltd. All Rights Reserved\n *\n * Licensed under the Apache License, Vers"
},
{
"path": "circle-mlir/circle-mlir/lib/pass/src/ops/MaxOp.h",
"chars": 1888,
"preview": "/*\n * Copyright (c) 2025 Samsung Electronics Co., Ltd. All Rights Reserved\n *\n * Licensed under the Apache License, Vers"
},
{
"path": "circle-mlir/circle-mlir/lib/pass/src/ops/MaxPoolSingleOutOp.h",
"chars": 6505,
"preview": "/*\n * Copyright (c) 2025 Samsung Electronics Co., Ltd. All Rights Reserved\n *\n * Licensed under the Apache License, Vers"
},
{
"path": "circle-mlir/circle-mlir/lib/pass/src/ops/MinOp.h",
"chars": 1888,
"preview": "/*\n * Copyright (c) 2025 Samsung Electronics Co., Ltd. All Rights Reserved\n *\n * Licensed under the Apache License, Vers"
},
{
"path": "circle-mlir/circle-mlir/lib/pass/src/ops/NegOp.h",
"chars": 1508,
"preview": "/*\n * Copyright (c) 2025 Samsung Electronics Co., Ltd. All Rights Reserved\n *\n * Licensed under the Apache License, Vers"
},
{
"path": "circle-mlir/circle-mlir/lib/pass/src/ops/NoneOp.h",
"chars": 1496,
"preview": "/*\n * Copyright (c) 2025 Samsung Electronics Co., Ltd. All Rights Reserved\n *\n * Licensed under the Apache License, Vers"
},
{
"path": "circle-mlir/circle-mlir/lib/pass/src/ops/NotOp.h",
"chars": 1536,
"preview": "/*\n * Copyright (c) 2025 Samsung Electronics Co., Ltd. All Rights Reserved\n *\n * Licensed under the Apache License, Vers"
},
{
"path": "circle-mlir/circle-mlir/lib/pass/src/ops/PReluOp.h",
"chars": 1577,
"preview": "/*\n * Copyright (c) 2025 Samsung Electronics Co., Ltd. All Rights Reserved\n *\n * Licensed under the Apache License, Vers"
},
{
"path": "circle-mlir/circle-mlir/lib/pass/src/ops/PadOp.h",
"chars": 4645,
"preview": "/*\n * Copyright (c) 2025 Samsung Electronics Co., Ltd. All Rights Reserved\n *\n * Licensed under the Apache License, Vers"
},
{
"path": "circle-mlir/circle-mlir/lib/pass/src/ops/PowOp.h",
"chars": 1969,
"preview": "/*\n * Copyright (c) 2025 Samsung Electronics Co., Ltd. All Rights Reserved\n *\n * Licensed under the Apache License, Vers"
},
{
"path": "circle-mlir/circle-mlir/lib/pass/src/ops/QuantizeLinearOp.h",
"chars": 3070,
"preview": "/*\n * Copyright (c) 2025 Samsung Electronics Co., Ltd. All Rights Reserved\n *\n * Licensed under the Apache License, Vers"
},
{
"path": "circle-mlir/circle-mlir/lib/pass/src/ops/RangeOp.h",
"chars": 1660,
"preview": "/*\n * Copyright (c) 2026 Samsung Electronics Co., Ltd. All Rights Reserved\n *\n * Licensed under the Apache License, Vers"
},
{
"path": "circle-mlir/circle-mlir/lib/pass/src/ops/ReciprocalOp.h",
"chars": 2206,
"preview": "/*\n * Copyright (c) 2025 Samsung Electronics Co., Ltd. All Rights Reserved\n *\n * Licensed under the Apache License, Vers"
},
{
"path": "circle-mlir/circle-mlir/lib/pass/src/ops/ReduceMaxOp.h",
"chars": 3665,
"preview": "/*\n * Copyright (c) 2025 Samsung Electronics Co., Ltd. All Rights Reserved\n *\n * Licensed under the Apache License, Vers"
},
{
"path": "circle-mlir/circle-mlir/lib/pass/src/ops/ReduceMeanOp.h",
"chars": 5403,
"preview": "/*\n * Copyright (c) 2025 Samsung Electronics Co., Ltd. All Rights Reserved\n *\n * Licensed under the Apache License, Vers"
},
{
"path": "circle-mlir/circle-mlir/lib/pass/src/ops/ReduceProdOp.h",
"chars": 5415,
"preview": "/*\n * Copyright (c) 2025 Samsung Electronics Co., Ltd. All Rights Reserved\n *\n * Licensed under the Apache License, Vers"
},
{
"path": "circle-mlir/circle-mlir/lib/pass/src/ops/ReduceSumOp.h",
"chars": 5999,
"preview": "/*\n * Copyright (c) 2025 Samsung Electronics Co., Ltd. All Rights Reserved\n *\n * Licensed under the Apache License, Vers"
},
{
"path": "circle-mlir/circle-mlir/lib/pass/src/ops/ReduceSumSquareOp.h",
"chars": 3554,
"preview": "/*\n * Copyright (c) 2026 Samsung Electronics Co., Ltd. All Rights Reserved\n *\n * Licensed under the Apache License, Vers"
},
{
"path": "circle-mlir/circle-mlir/lib/pass/src/ops/ReluOp.h",
"chars": 1622,
"preview": "/*\n * Copyright (c) 2025 Samsung Electronics Co., Ltd. All Rights Reserved\n *\n * Licensed under the Apache License, Vers"
},
{
"path": "circle-mlir/circle-mlir/lib/pass/src/ops/ReshapeOp.h",
"chars": 2542,
"preview": "/*\n * Copyright (c) 2025 Samsung Electronics Co., Ltd. All Rights Reserved\n *\n * Licensed under the Apache License, Vers"
},
{
"path": "circle-mlir/circle-mlir/lib/pass/src/ops/ResizeOp.h",
"chars": 7107,
"preview": "/*\n * Copyright (c) 2025 Samsung Electronics Co., Ltd. All Rights Reserved\n *\n * Licensed under the Apache License, Vers"
},
{
"path": "circle-mlir/circle-mlir/lib/pass/src/ops/ShapeOp.h",
"chars": 2133,
"preview": "/*\n * Copyright (c) 2025 Samsung Electronics Co., Ltd. All Rights Reserved\n *\n * Licensed under the Apache License, Vers"
},
{
"path": "circle-mlir/circle-mlir/lib/pass/src/ops/SigmoidOp.h",
"chars": 1573,
"preview": "/*\n * Copyright (c) 2025 Samsung Electronics Co., Ltd. All Rights Reserved\n *\n * Licensed under the Apache License, Vers"
},
{
"path": "circle-mlir/circle-mlir/lib/pass/src/ops/SignOp.h",
"chars": 1549,
"preview": "/*\n * Copyright (c) 2026 Samsung Electronics Co., Ltd. All Rights Reserved\n *\n * Licensed under the Apache License, Vers"
},
{
"path": "circle-mlir/circle-mlir/lib/pass/src/ops/SinOp.h",
"chars": 1540,
"preview": "/*\n * Copyright (c) 2025 Samsung Electronics Co., Ltd. All Rights Reserved\n *\n * Licensed under the Apache License, Vers"
},
{
"path": "circle-mlir/circle-mlir/lib/pass/src/ops/SliceOp.h",
"chars": 11701,
"preview": "/*\n * Copyright (c) 2025 Samsung Electronics Co., Ltd. All Rights Reserved\n *\n * Licensed under the Apache License, Vers"
},
{
"path": "circle-mlir/circle-mlir/lib/pass/src/ops/SoftmaxOp.h",
"chars": 3783,
"preview": "/*\n * Copyright (c) 2025 Samsung Electronics Co., Ltd. All Rights Reserved\n *\n * Licensed under the Apache License, Vers"
},
{
"path": "circle-mlir/circle-mlir/lib/pass/src/ops/SplitOp.h",
"chars": 3648,
"preview": "/*\n * Copyright (c) 2025 Samsung Electronics Co., Ltd. All Rights Reserved\n *\n * Licensed under the Apache License, Vers"
}
]
// ... and 14819 more files (download for full content)
About this extraction
This page contains the full source code of the Samsung/ONE GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 15019 files (86.8 MB), approximately 14.2M tokens. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.
Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.