Full Code of Samsung/ONE for AI

master bf53cc811fc7 cached
15019 files
86.8 MB
14.2M tokens
1 requests
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
================================================
[![GitHub release (latest
SemVer)](https://img.shields.io/github/v/release/Samsung/ONE)](https://github.com/Samsung/ONE/releases)
[![Documentation Status](https://readthedocs.org/projects/nnfw/badge/?version=latest)](https://nnfw.readthedocs.io/en/latest/?badge=latest)
![GitHub commit activity](https://img.shields.io/github/commit-activity/w/Samsung/ONE?color=light%20green)
[![Gitter](https://img.shields.io/gitter/room/Samsung/ONE?color=orange)](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"),
Download .txt
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": "[![GitHub release (latest\nSemVer)](https://img.shields.io/github/v/release/Samsung/ONE)](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.

Copied to clipboard!