From e2ef8438a24f7c56a0744eb579a6e293ee2fbf8e Mon Sep 17 00:00:00 2001
From: Chunseok Lee
Date: Thu, 23 Apr 2020 14:45:49 +0900
Subject: Imported Upstream version 1.4.0
---
.ctags | 2 +-
.gitignore | 2 +-
LICENSE | 426 +-
Makefile.template | 4 +-
README.md | 29 +-
compiler/CMakeLists.txt | 78 +
compiler/adtidas/CMakeLists.txt | 2 +
compiler/adtidas/include/adtidas/SmallVector.h | 156 +
compiler/angkor/CMakeLists.txt | 22 +
compiler/angkor/README.md | 51 +
compiler/angkor/include/angkor/TensorIndex.h | 29 +
compiler/angkor/include/angkor/TensorShape.h | 29 +
.../include/nncc/core/ADT/feature/Accessor.h | 43 +
.../angkor/include/nncc/core/ADT/feature/Buffer.h | 59 +
.../include/nncc/core/ADT/feature/CHWLayout.h | 41 +
.../include/nncc/core/ADT/feature/HWCLayout.h | 41 +
.../angkor/include/nncc/core/ADT/feature/Layout.h | 54 +
.../angkor/include/nncc/core/ADT/feature/Overlay.h | 60 +
.../angkor/include/nncc/core/ADT/feature/Reader.h | 43 +
.../angkor/include/nncc/core/ADT/feature/Shape.h | 74 +
.../angkor/include/nncc/core/ADT/feature/View.h | 71 +
.../angkor/include/nncc/core/ADT/kernel/Accessor.h | 43 +
.../angkor/include/nncc/core/ADT/kernel/Buffer.h | 72 +
.../include/nncc/core/ADT/kernel/IndexEnumerator.h | 70 +
.../angkor/include/nncc/core/ADT/kernel/Layout.h | 54 +
.../include/nncc/core/ADT/kernel/NCHWLayout.h | 41 +
.../include/nncc/core/ADT/kernel/NHWCLayout.h | 41 +
.../angkor/include/nncc/core/ADT/kernel/Overlay.h | 81 +
.../angkor/include/nncc/core/ADT/kernel/Reader.h | 43 +
.../angkor/include/nncc/core/ADT/kernel/Shape.h | 73 +
.../angkor/include/nncc/core/ADT/kernel/View.h | 43 +
.../angkor/include/nncc/core/ADT/kernel/ViewImpl.h | 67 +
.../angkor/include/nncc/core/ADT/tensor/Accessor.h | 43 +
.../angkor/include/nncc/core/ADT/tensor/Buffer.h | 57 +
.../angkor/include/nncc/core/ADT/tensor/Index.h | 65 +
.../include/nncc/core/ADT/tensor/IndexEnumerator.h | 63 +
.../angkor/include/nncc/core/ADT/tensor/Layout.h | 52 +
.../include/nncc/core/ADT/tensor/LexicalLayout.h | 41 +
.../angkor/include/nncc/core/ADT/tensor/Overlay.h | 58 +
.../angkor/include/nncc/core/ADT/tensor/Reader.h | 43 +
.../angkor/include/nncc/core/ADT/tensor/Shape.h | 70 +
.../angkor/include/nncc/core/ADT/tensor/View.h | 70 +
compiler/angkor/src/ADT/feature/Accessor.cpp | 21 +
compiler/angkor/src/ADT/feature/Buffer.test.cpp | 48 +
compiler/angkor/src/ADT/feature/CHWLayout.cpp | 43 +
compiler/angkor/src/ADT/feature/CHWLayout.test.cpp | 45 +
compiler/angkor/src/ADT/feature/HWCLayout.cpp | 43 +
compiler/angkor/src/ADT/feature/HWCLayout.test.cpp | 57 +
compiler/angkor/src/ADT/feature/Layout.cpp | 35 +
compiler/angkor/src/ADT/feature/Layout.test.cpp | 56 +
compiler/angkor/src/ADT/feature/Overlay.test.cpp | 72 +
compiler/angkor/src/ADT/feature/Reader.cpp | 21 +
compiler/angkor/src/ADT/feature/Shape.test.cpp | 56 +
compiler/angkor/src/ADT/kernel/Buffer.test.cpp | 49 +
compiler/angkor/src/ADT/kernel/IndexEnumerator.cpp | 84 +
.../angkor/src/ADT/kernel/IndexEnumerator.test.cpp | 46 +
compiler/angkor/src/ADT/kernel/Layout.cpp | 38 +
compiler/angkor/src/ADT/kernel/Layout.test.cpp | 56 +
compiler/angkor/src/ADT/kernel/NCHWLayout.cpp | 43 +
compiler/angkor/src/ADT/kernel/NCHWLayout.test.cpp | 53 +
compiler/angkor/src/ADT/kernel/NHWCLayout.cpp | 43 +
compiler/angkor/src/ADT/kernel/NHWCLayout.test.cpp | 74 +
compiler/angkor/src/ADT/kernel/Overlay.test.cpp | 73 +
compiler/angkor/src/ADT/kernel/Reader.cpp | 20 +
compiler/angkor/src/ADT/kernel/Shape.cpp | 37 +
compiler/angkor/src/ADT/kernel/Shape.test.cpp | 58 +
compiler/angkor/src/ADT/tensor/Buffer.test.cpp | 49 +
compiler/angkor/src/ADT/tensor/Index.cpp | 81 +
compiler/angkor/src/ADT/tensor/Index.test.cpp | 119 +
compiler/angkor/src/ADT/tensor/IndexEnumerator.cpp | 100 +
.../angkor/src/ADT/tensor/IndexEnumerator.test.cpp | 48 +
compiler/angkor/src/ADT/tensor/Layout.cpp | 35 +
compiler/angkor/src/ADT/tensor/Layout.test.cpp | 56 +
compiler/angkor/src/ADT/tensor/LexicalLayout.cpp | 60 +
.../angkor/src/ADT/tensor/LexicalLayout.test.cpp | 54 +
compiler/angkor/src/ADT/tensor/Overlay.test.cpp | 75 +
compiler/angkor/src/ADT/tensor/Reader.cpp | 21 +
compiler/angkor/src/ADT/tensor/Shape.cpp | 91 +
compiler/angkor/src/ADT/tensor/Shape.test.cpp | 185 +
compiler/angkor/src/TensorIndex.test.cpp | 87 +
compiler/angkor/src/TensorShape.test.cpp | 99 +
compiler/ann-api/CMakeLists.txt | 2 +
compiler/ann-api/include/.FORMATDENY | 0
compiler/ann-api/include/NeuralNetworks.h | 2075 ++
compiler/ann-ref/.FORMATDENY | 0
compiler/ann-ref/CMakeLists.txt | 32 +
compiler/ann-ref/README.md | 7 +
compiler/ann-ref/requires.cmake | 1 +
compiler/ann-ref/src/Assert.h | 34 +
compiler/ann-ref/src/CompilationBuilder.cpp | 52 +
compiler/ann-ref/src/CompilationBuilder.h | 44 +
compiler/ann-ref/src/ExecutionBuilder.cpp | 196 +
compiler/ann-ref/src/ExecutionBuilder.h | 73 +
compiler/ann-ref/src/Executor.cpp | 814 +
compiler/ann-ref/src/Executor.h | 114 +
compiler/ann-ref/src/Logging.cpp | 30 +
compiler/ann-ref/src/Logging.h | 42 +
compiler/ann-ref/src/Macro.h | 22 +
compiler/ann-ref/src/Memory.cpp | 105 +
compiler/ann-ref/src/Memory.h | 106 +
compiler/ann-ref/src/MemoryTracker.cpp | 50 +
compiler/ann-ref/src/MemoryTracker.h | 49 +
compiler/ann-ref/src/Model.h | 39 +
compiler/ann-ref/src/ModelArgumentInfo.cpp | 121 +
compiler/ann-ref/src/ModelArgumentInfo.h | 58 +
compiler/ann-ref/src/ModelBuilder.cpp | 483 +
compiler/ann-ref/src/ModelBuilder.h | 142 +
compiler/ann-ref/src/NeuralNetworks.cpp | 338 +
compiler/ann-ref/src/Operand.h | 61 +
compiler/ann-ref/src/OperandType.cpp | 55 +
compiler/ann-ref/src/OperandType.h | 43 +
compiler/ann-ref/src/OperandType.probe.cpp | 32 +
compiler/ann-ref/src/Operation.h | 32 +
compiler/ann-ref/src/OperationType.cpp | 67 +
compiler/ann-ref/src/OperationType.h | 66 +
compiler/ann-ref/src/OperationType.probe.cpp | 85 +
compiler/ann-ref/src/Probe.cpp | 89 +
compiler/ann-ref/src/Request.h | 35 +
compiler/ann-ref/src/Shape.cpp | 68 +
compiler/ann-ref/src/Shape.h | 47 +
compiler/ann-ref/src/Validation.cpp | 263 +
compiler/ann-ref/src/Validation.h | 34 +
compiler/ann-ref/src/ops/Add.cpp | 57 +
compiler/ann-ref/src/ops/Add.float.cpp | 122 +
compiler/ann-ref/src/ops/Add.float.h | 28 +
compiler/ann-ref/src/ops/Add.h | 25 +
compiler/ann-ref/src/ops/AvgPool2D.cpp | 30 +
compiler/ann-ref/src/ops/AvgPool2D.float.cpp | 123 +
compiler/ann-ref/src/ops/AvgPool2D.float.h | 31 +
compiler/ann-ref/src/ops/AvgPool2D.h | 30 +
compiler/ann-ref/src/ops/Concatenation.cpp | 66 +
compiler/ann-ref/src/ops/Concatenation.float.cpp | 84 +
compiler/ann-ref/src/ops/Concatenation.float.h | 30 +
compiler/ann-ref/src/ops/Concatenation.h | 28 +
compiler/ann-ref/src/ops/Conv2D.cpp | 57 +
compiler/ann-ref/src/ops/Conv2D.float.cpp | 256 +
compiler/ann-ref/src/ops/Conv2D.float.h | 31 +
compiler/ann-ref/src/ops/Conv2D.h | 29 +
compiler/ann-ref/src/ops/DepthwiseConv2D.cpp | 57 +
compiler/ann-ref/src/ops/DepthwiseConv2D.float.cpp | 311 +
compiler/ann-ref/src/ops/DepthwiseConv2D.float.h | 32 +
compiler/ann-ref/src/ops/DepthwiseConv2D.h | 30 +
compiler/ann-ref/src/ops/Div.cpp | 57 +
compiler/ann-ref/src/ops/Div.float.cpp | 122 +
compiler/ann-ref/src/ops/Div.float.h | 28 +
compiler/ann-ref/src/ops/Div.h | 25 +
compiler/ann-ref/src/ops/FullyConnected.cpp | 70 +
compiler/ann-ref/src/ops/FullyConnected.float.cpp | 65 +
compiler/ann-ref/src/ops/FullyConnected.float.h | 29 +
compiler/ann-ref/src/ops/FullyConnected.h | 28 +
compiler/ann-ref/src/ops/MaxPool2D.cpp | 30 +
compiler/ann-ref/src/ops/MaxPool2D.float.cpp | 118 +
compiler/ann-ref/src/ops/MaxPool2D.float.h | 31 +
compiler/ann-ref/src/ops/MaxPool2D.h | 30 +
compiler/ann-ref/src/ops/Mul.cpp | 57 +
compiler/ann-ref/src/ops/Mul.float.cpp | 122 +
compiler/ann-ref/src/ops/Mul.float.h | 28 +
compiler/ann-ref/src/ops/Mul.h | 25 +
compiler/ann-ref/src/ops/Pad.cpp | 189 +
compiler/ann-ref/src/ops/Pad.h | 31 +
compiler/ann-ref/src/ops/ReLU.cpp | 25 +
compiler/ann-ref/src/ops/ReLU.float.cpp | 31 +
compiler/ann-ref/src/ops/ReLU.float.h | 26 +
compiler/ann-ref/src/ops/ReLU.h | 25 +
compiler/ann-ref/src/ops/ReLU6.cpp | 25 +
compiler/ann-ref/src/ops/ReLU6.float.cpp | 31 +
compiler/ann-ref/src/ops/ReLU6.float.h | 26 +
compiler/ann-ref/src/ops/ReLU6.h | 25 +
compiler/ann-ref/src/ops/Reshape.cpp | 73 +
compiler/ann-ref/src/ops/Reshape.h | 31 +
compiler/ann-ref/src/ops/Softmax.cpp | 25 +
compiler/ann-ref/src/ops/Softmax.float.cpp | 71 +
compiler/ann-ref/src/ops/Softmax.float.h | 28 +
compiler/ann-ref/src/ops/Softmax.h | 27 +
compiler/ann-ref/src/ops/Sub.cpp | 57 +
compiler/ann-ref/src/ops/Sub.float.cpp | 122 +
compiler/ann-ref/src/ops/Sub.float.h | 28 +
compiler/ann-ref/src/ops/Sub.h | 25 +
.../ann-ref/src/ops/internal/ActivationUtils.h | 59 +
compiler/ann-ref/src/ops/internal/Array.h | 46 +
compiler/ann-ref/src/ops/internal/Dims.h | 167 +
compiler/ann-ref/src/ops/internal/Elementwise.cpp | 25 +
compiler/ann-ref/src/ops/internal/Elementwise.h | 25 +
compiler/ann-ref/src/ops/internal/FeatureMap.h | 26 +
compiler/ann-ref/src/ops/internal/Fused.cpp | 28 +
compiler/ann-ref/src/ops/internal/Fused.h | 84 +
compiler/ann-ref/src/ops/internal/GEMM.h | 38 +
compiler/ann-ref/src/ops/internal/Macro.h | 58 +
compiler/ann-ref/src/ops/internal/Matrix.h | 127 +
compiler/ann-ref/src/ops/internal/NDArray.h | 133 +
compiler/ann-ref/src/ops/internal/Pooling.cpp | 43 +
compiler/ann-ref/src/ops/internal/Pooling.h | 31 +
compiler/ann-ref/src/ops/internal/Spatial.h | 29 +
compiler/bino/CMakeLists.txt | 14 +
compiler/bino/README.md | 5 +
compiler/bino/include/bino.h | 57 +
compiler/bino/tests/Functional.tests.cpp | 35 +
compiler/caffe2circle/CMakeLists.txt | 16 +
compiler/caffe2circle/README.md | 3 +
compiler/caffe2circle/requires.cmake | 3 +
compiler/caffe2circle/src/caffe2circle.cpp | 39 +
compiler/caffegen/CMakeLists.txt | 14 +
compiler/caffegen/README.md | 45 +
compiler/caffegen/src/DecodeCommand.cpp | 46 +
compiler/caffegen/src/DecodeCommand.h | 27 +
compiler/caffegen/src/Driver.cpp | 42 +
compiler/caffegen/src/EncodeCommand.cpp | 51 +
compiler/caffegen/src/EncodeCommand.h | 27 +
compiler/caffegen/src/InitCommand.cpp | 65 +
compiler/caffegen/src/InitCommand.h | 27 +
compiler/caffegen/src/MergeCommand.cpp | 58 +
compiler/caffegen/src/MergeCommand.h | 33 +
compiler/circle-inspect/CMakeLists.txt | 13 +
compiler/circle-inspect/README.md | 22 +
compiler/circle-inspect/driver/Driver.cpp | 96 +
compiler/circle-inspect/requires.cmake | 3 +
compiler/circle-inspect/src/Dump.cpp | 135 +
compiler/circle-inspect/src/Dump.h | 56 +
compiler/circle-inspect/src/Model.cpp | 143 +
compiler/circle-inspect/src/Model.h | 43 +
compiler/circle-inspect/src/Reader.cpp | 166 +
compiler/circle-inspect/src/Reader.h | 91 +
compiler/circle-verify/CMakeLists.txt | 12 +
compiler/circle-verify/README.md | 23 +
compiler/circle-verify/requires.cmake | 4 +
compiler/circle-verify/src/Driver.cpp | 51 +
compiler/circle-verify/src/Model.cpp | 90 +
compiler/circle-verify/src/Model.h | 38 +
compiler/circle-verify/src/VerifyFlatBuffers.cpp | 36 +
compiler/circle-verify/src/VerifyFlatBuffers.h | 32 +
compiler/circle2circle/CMakeLists.txt | 42 +
compiler/circle2circle/README.md | 3 +
compiler/circle2circle/include/CircleExpContract.h | 50 +
compiler/circle2circle/include/Model.h | 43 +
compiler/circle2circle/requires.cmake | 10 +
compiler/circle2circle/src/Circle2Circle.cpp | 120 +
compiler/circle2circle/src/Circle2Circle.test.cpp | 29 +
compiler/circle2circle/src/CircleExpContract.cpp | 33 +
compiler/circle2circle/src/Model.cpp | 78 +
compiler/circle2circle/src/TestHelper.h | 55 +
compiler/circledump/CMakeLists.txt | 14 +
compiler/circledump/README.md | 71 +
compiler/circledump/driver/Driver.cpp | 52 +
compiler/circledump/include/circledump/Dump.h | 32 +
compiler/circledump/include/circleread/Model.h | 43 +
compiler/circledump/requires.cmake | 3 +
compiler/circledump/src/Dump.cpp | 310 +
compiler/circledump/src/Load.cpp | 133 +
compiler/circledump/src/OpPrinter.cpp | 307 +
compiler/circledump/src/OpPrinter.h | 61 +
compiler/circledump/src/Read.cpp | 169 +
compiler/circledump/src/Read.h | 101 +
compiler/cli/CMakeLists.txt | 15 +
compiler/cli/README.md | 13 +
compiler/cli/include/cli/App.h | 50 +
compiler/cli/include/cli/Command.h | 32 +
compiler/cli/include/cli/FunctionCommand.h | 46 +
compiler/cli/src/App.cpp | 74 +
compiler/cli/src/App.test.cpp | 63 +
compiler/coco/CMakeLists.txt | 2 +
compiler/coco/README.md | 3 +
compiler/coco/core/CMakeLists.txt | 25 +
compiler/coco/core/include/coco/ADT/DLinkedList.h | 288 +
compiler/coco/core/include/coco/ADT/PtrList.h | 54 +
compiler/coco/core/include/coco/ADT/PtrManager.h | 67 +
compiler/coco/core/include/coco/IR.h | 34 +
compiler/coco/core/include/coco/IR/Arg.h | 80 +
compiler/coco/core/include/coco/IR/Bag.h | 164 +
compiler/coco/core/include/coco/IR/BagManager.h | 47 +
compiler/coco/core/include/coco/IR/Block.forward.h | 27 +
compiler/coco/core/include/coco/IR/Block.h | 78 +
compiler/coco/core/include/coco/IR/BlockIndex.h | 63 +
compiler/coco/core/include/coco/IR/BlockManager.h | 47 +
compiler/coco/core/include/coco/IR/Def.forward.h | 27 +
compiler/coco/core/include/coco/IR/Def.h | 52 +
compiler/coco/core/include/coco/IR/Dep.forward.h | 27 +
compiler/coco/core/include/coco/IR/Dep.h | 59 +
compiler/coco/core/include/coco/IR/DepSet.h | 31 +
compiler/coco/core/include/coco/IR/ElemID.h | 51 +
compiler/coco/core/include/coco/IR/Entity.h | 51 +
compiler/coco/core/include/coco/IR/EntityBuilder.h | 48 +
compiler/coco/core/include/coco/IR/EntityManager.h | 67 +
compiler/coco/core/include/coco/IR/FeatureLayout.h | 54 +
.../coco/core/include/coco/IR/FeatureLayouts.h | 159 +
.../core/include/coco/IR/FeatureObject.forward.h | 27 +
compiler/coco/core/include/coco/IR/FeatureObject.h | 63 +
compiler/coco/core/include/coco/IR/FeatureShape.h | 70 +
compiler/coco/core/include/coco/IR/Input.forward.h | 27 +
compiler/coco/core/include/coco/IR/Input.h | 44 +
compiler/coco/core/include/coco/IR/InputList.h | 31 +
compiler/coco/core/include/coco/IR/InputManager.h | 39 +
compiler/coco/core/include/coco/IR/Instr.forward.h | 28 +
compiler/coco/core/include/coco/IR/Instr.h | 161 +
compiler/coco/core/include/coco/IR/Instr.lst | 9 +
compiler/coco/core/include/coco/IR/InstrIndex.h | 63 +
compiler/coco/core/include/coco/IR/InstrManager.h | 66 +
compiler/coco/core/include/coco/IR/Instrs.h | 175 +
compiler/coco/core/include/coco/IR/KernelLayout.h | 58 +
compiler/coco/core/include/coco/IR/KernelLayouts.h | 117 +
.../core/include/coco/IR/KernelObject.forward.h | 27 +
compiler/coco/core/include/coco/IR/KernelObject.h | 65 +
compiler/coco/core/include/coco/IR/Locatable.h | 37 +
.../coco/core/include/coco/IR/Module.forward.h | 27 +
compiler/coco/core/include/coco/IR/Module.h | 67 +
.../coco/core/include/coco/IR/Object.forward.h | 27 +
compiler/coco/core/include/coco/IR/Object.h | 144 +
compiler/coco/core/include/coco/IR/ObjectManager.h | 53 +
compiler/coco/core/include/coco/IR/ObjectSet.h | 31 +
compiler/coco/core/include/coco/IR/Op.forward.h | 27 +
compiler/coco/core/include/coco/IR/Op.h | 255 +
compiler/coco/core/include/coco/IR/Op.lst | 19 +
compiler/coco/core/include/coco/IR/OpManager.h | 63 +
compiler/coco/core/include/coco/IR/Ops.h | 412 +
.../coco/core/include/coco/IR/Output.forward.h | 27 +
compiler/coco/core/include/coco/IR/Output.h | 44 +
compiler/coco/core/include/coco/IR/OutputList.h | 31 +
compiler/coco/core/include/coco/IR/OutputManager.h | 39 +
compiler/coco/core/include/coco/IR/Padding2D.h | 65 +
compiler/coco/core/include/coco/IR/Part.forward.h | 27 +
compiler/coco/core/include/coco/IR/Part.h | 53 +
compiler/coco/core/include/coco/IR/Read.forward.h | 27 +
compiler/coco/core/include/coco/IR/Read.h | 55 +
compiler/coco/core/include/coco/IR/ReadSet.h | 31 +
compiler/coco/core/include/coco/IR/Step.forward.h | 27 +
compiler/coco/core/include/coco/IR/Step.h | 54 +
compiler/coco/core/include/coco/IR/Stride2D.h | 54 +
.../coco/core/include/coco/IR/Update.forward.h | 27 +
compiler/coco/core/include/coco/IR/Update.h | 51 +
compiler/coco/core/include/coco/IR/UpdateSet.h | 31 +
compiler/coco/core/include/coco/IR/Use.forward.h | 27 +
compiler/coco/core/include/coco/IR/Use.h | 52 +
compiler/coco/core/include/coco/IR/UseSet.h | 31 +
compiler/coco/core/include/coco/IR/Window2D.h | 55 +
compiler/coco/core/src/ADT/DLinkedList.test.cpp | 281 +
compiler/coco/core/src/ADT/PtrList.cpp | 19 +
compiler/coco/core/src/ADT/PtrList.test.cpp | 47 +
compiler/coco/core/src/ADT/PtrManager.test.cpp | 99 +
compiler/coco/core/src/IR.test.cpp | 303 +
compiler/coco/core/src/IR/Arg.cpp | 78 +
compiler/coco/core/src/IR/Arg.test.cpp | 100 +
compiler/coco/core/src/IR/AvgPool2D.test.cpp | 113 +
compiler/coco/core/src/IR/Bag.cpp | 147 +
compiler/coco/core/src/IR/Bag.test.cpp | 30 +
compiler/coco/core/src/IR/BagManager.cpp | 33 +
compiler/coco/core/src/IR/BagManager.test.cpp | 38 +
compiler/coco/core/src/IR/Block.cpp | 56 +
compiler/coco/core/src/IR/Block.test.cpp | 28 +
compiler/coco/core/src/IR/BlockIndex.cpp | 30 +
compiler/coco/core/src/IR/BlockIndex.test.cpp | 50 +
compiler/coco/core/src/IR/BlockManager.cpp | 41 +
compiler/coco/core/src/IR/BlockManager.test.cpp | 60 +
compiler/coco/core/src/IR/Consumer.mock.h | 33 +
compiler/coco/core/src/IR/Conv2D.cpp | 75 +
compiler/coco/core/src/IR/Conv2D.test.cpp | 154 +
compiler/coco/core/src/IR/Def.cpp | 43 +
compiler/coco/core/src/IR/Def.test.cpp | 82 +
compiler/coco/core/src/IR/Dep.cpp | 53 +
compiler/coco/core/src/IR/Dep.test.cpp | 73 +
compiler/coco/core/src/IR/ElemID.cpp | 25 +
compiler/coco/core/src/IR/ElemID.test.cpp | 62 +
compiler/coco/core/src/IR/EntityManager.cpp | 20 +
compiler/coco/core/src/IR/Eval.cpp | 28 +
compiler/coco/core/src/IR/Eval.test.cpp | 60 +
compiler/coco/core/src/IR/FeatureLayouts.cpp | 211 +
compiler/coco/core/src/IR/FeatureLayouts.test.cpp | 66 +
compiler/coco/core/src/IR/FeatureObject.cpp | 31 +
compiler/coco/core/src/IR/FeatureObject.test.cpp | 122 +
compiler/coco/core/src/IR/FeatureShape.test.cpp | 29 +
compiler/coco/core/src/IR/Input.cpp | 41 +
compiler/coco/core/src/IR/Input.test.cpp | 79 +
compiler/coco/core/src/IR/InputManager.cpp | 31 +
compiler/coco/core/src/IR/InputManager.test.cpp | 29 +
compiler/coco/core/src/IR/Instr.cpp | 56 +
compiler/coco/core/src/IR/InstrIndex.cpp | 30 +
compiler/coco/core/src/IR/InstrIndex.test.cpp | 50 +
compiler/coco/core/src/IR/InstrManager.cpp | 33 +
compiler/coco/core/src/IR/InstrManager.test.cpp | 52 +
compiler/coco/core/src/IR/KernelLayouts.cpp | 155 +
compiler/coco/core/src/IR/KernelLayouts.test.cpp | 126 +
compiler/coco/core/src/IR/KernelObject.cpp | 42 +
compiler/coco/core/src/IR/KernelObject.test.cpp | 78 +
compiler/coco/core/src/IR/Load.cpp | 53 +
compiler/coco/core/src/IR/MaxPool2D.test.cpp | 101 +
compiler/coco/core/src/IR/Module.cpp | 150 +
compiler/coco/core/src/IR/Module.test.cpp | 196 +
compiler/coco/core/src/IR/Object.cpp | 116 +
compiler/coco/core/src/IR/Object.test.cpp | 110 +
compiler/coco/core/src/IR/ObjectManager.cpp | 52 +
compiler/coco/core/src/IR/ObjectManager.test.cpp | 57 +
compiler/coco/core/src/IR/Op.cpp | 153 +
compiler/coco/core/src/IR/OpManager.cpp | 99 +
compiler/coco/core/src/IR/OpManager.test.cpp | 120 +
compiler/coco/core/src/IR/Ops.cpp | 22 +
compiler/coco/core/src/IR/Ops.test.cpp | 129 +
compiler/coco/core/src/IR/Output.cpp | 41 +
compiler/coco/core/src/IR/Output.test.cpp | 83 +
compiler/coco/core/src/IR/OutputManager.cpp | 31 +
compiler/coco/core/src/IR/OutputManager.test.cpp | 29 +
compiler/coco/core/src/IR/PadF.test.cpp | 89 +
compiler/coco/core/src/IR/Padding2D.cpp | 46 +
compiler/coco/core/src/IR/Padding2D.test.cpp | 51 +
compiler/coco/core/src/IR/Part.cpp | 45 +
compiler/coco/core/src/IR/Part.test.cpp | 70 +
compiler/coco/core/src/IR/Producer.mock.h | 33 +
compiler/coco/core/src/IR/ReLU.test.cpp | 85 +
compiler/coco/core/src/IR/ReLU6.test.cpp | 85 +
compiler/coco/core/src/IR/Read.cpp | 49 +
compiler/coco/core/src/IR/Read.test.cpp | 81 +
compiler/coco/core/src/IR/Reader.mock.h | 33 +
compiler/coco/core/src/IR/Shuffle.cpp | 41 +
compiler/coco/core/src/IR/Shuffle.test.cpp | 95 +
compiler/coco/core/src/IR/Sqrt.test.cpp | 85 +
compiler/coco/core/src/IR/Step.cpp | 52 +
compiler/coco/core/src/IR/Stride2D.cpp | 34 +
compiler/coco/core/src/IR/Stride2D.test.cpp | 45 +
compiler/coco/core/src/IR/Sub.test.cpp | 87 +
compiler/coco/core/src/IR/Update.cpp | 49 +
compiler/coco/core/src/IR/Update.test.cpp | 81 +
compiler/coco/core/src/IR/Updater.mock.h | 33 +
compiler/coco/core/src/IR/Use.cpp | 43 +
compiler/coco/core/src/IR/Use.test.cpp | 86 +
compiler/coco/core/src/IR/Window2D.test.cpp | 46 +
compiler/coco/generic/CMakeLists.txt | 22 +
compiler/coco/generic/include/coco/ADT/Span.h | 67 +
compiler/coco/generic/include/coco/IR/Data.h | 54 +
.../generic/include/coco/IR/PlainWeightContext.h | 66 +
compiler/coco/generic/src/ADT/Span.test.cpp | 60 +
compiler/coco/generic/src/IR/Data.cpp | 217 +
compiler/coco/generic/src/IR/Data.test.cpp | 64 +
compiler/coco/requires.cmake | 1 +
compiler/cwrap/CMakeLists.txt | 22 +
compiler/cwrap/README.md | 23 +
compiler/cwrap/include/cwrap/Fildes.h | 57 +
compiler/cwrap/src/Fildes.cpp | 100 +
compiler/cwrap/src/Fildes.test.cpp | 97 +
compiler/dredd-rule-lib/CMakeLists.txt | 21 +
compiler/dredd-rule-lib/README.md | 112 +
compiler/dredd-rule-lib/rule-lib.sh | 203 +
compiler/enco-intf/CMakeLists.txt | 2 +
compiler/enco-intf/cmdline/CMakeLists.txt | 2 +
compiler/enco-intf/cmdline/include/cmdline/View.h | 35 +
compiler/enco-intf/frontend/CMakeLists.txt | 4 +
compiler/enco-intf/frontend/include/enco/Bundle.h | 48 +
.../enco-intf/frontend/include/enco/Frontend.h | 34 +
compiler/enco/CMakeLists.txt | 4 +
compiler/enco/README.md | 25 +
compiler/enco/cli/CMakeLists.txt | 11 +
compiler/enco/cli/src/Driver.cpp | 221 +
compiler/enco/core/CMakeLists.txt | 35 +
compiler/enco/core/include/enco/Backend.h | 41 +
compiler/enco/core/src/ANN/Binder.h | 219 +
compiler/enco/core/src/ANN/Context.cpp | 31 +
compiler/enco/core/src/ANN/Context.h | 57 +
compiler/enco/core/src/ANN/Context.test.cpp | 73 +
compiler/enco/core/src/ANN/IR/DType.cpp | 25 +
compiler/enco/core/src/ANN/IR/DType.h | 36 +
compiler/enco/core/src/ANN/IR/DType.test.cpp | 25 +
compiler/enco/core/src/ANN/IR/InputList.h | 31 +
compiler/enco/core/src/ANN/IR/Module.h | 60 +
compiler/enco/core/src/ANN/IR/Module.test.cpp | 36 +
compiler/enco/core/src/ANN/IR/Operand.h | 82 +
compiler/enco/core/src/ANN/IR/Operand.test.cpp | 37 +
compiler/enco/core/src/ANN/IR/OperandID.h | 48 +
compiler/enco/core/src/ANN/IR/OperandID.test.cpp | 33 +
compiler/enco/core/src/ANN/IR/OperandInventory.cpp | 57 +
compiler/enco/core/src/ANN/IR/OperandInventory.h | 56 +
.../enco/core/src/ANN/IR/OperandInventory.test.cpp | 30 +
compiler/enco/core/src/ANN/IR/Operation.def | 17 +
compiler/enco/core/src/ANN/IR/Operation.h | 59 +
compiler/enco/core/src/ANN/IR/Operation.test.cpp | 28 +
.../enco/core/src/ANN/IR/OperationInventory.cpp | 32 +
compiler/enco/core/src/ANN/IR/OperationInventory.h | 48 +
.../core/src/ANN/IR/OperationInventory.test.cpp | 40 +
compiler/enco/core/src/ANN/IR/OutputList.h | 31 +
compiler/enco/core/src/ANN/IR/Weight.h | 70 +
compiler/enco/core/src/ANN/IR/Weight.test.cpp | 53 +
compiler/enco/core/src/ANN/IR/WeightInventory.cpp | 34 +
compiler/enco/core/src/ANN/IR/WeightInventory.h | 38 +
.../enco/core/src/ANN/IR/WeightInventory.test.cpp | 29 +
compiler/enco/core/src/AsmCode.cpp | 33 +
compiler/enco/core/src/AsmCode.h | 51 +
compiler/enco/core/src/Backend.cpp | 178 +
compiler/enco/core/src/Code.h | 47 +
compiler/enco/core/src/Code.test.cpp | 30 +
compiler/enco/core/src/CodeIndex.h | 76 +
compiler/enco/core/src/CppCode.cpp | 553 +
compiler/enco/core/src/CppCode.h | 51 +
compiler/enco/core/src/CppGen/Host.cpp | 306 +
compiler/enco/core/src/CppGen/Host.h | 48 +
compiler/enco/core/src/CppGen/MemoryContext.cpp | 40 +
compiler/enco/core/src/CppGen/MemoryContext.h | 55 +
compiler/enco/core/src/CppGen/Subnet.cpp | 422 +
compiler/enco/core/src/CppGen/Subnet.h | 91 +
compiler/enco/core/src/Dims.h | 34 +
compiler/enco/core/src/IRUtils.cpp | 65 +
compiler/enco/core/src/IRUtils.h | 41 +
compiler/enco/core/src/IRValidator.cpp | 85 +
compiler/enco/core/src/IRValidator.h | 29 +
compiler/enco/core/src/IRValidator.test.cpp | 130 +
compiler/enco/core/src/Pass.h | 78 +
compiler/enco/core/src/Pass.test.cpp | 41 +
compiler/enco/core/src/Pipeline.h | 46 +
compiler/enco/core/src/Pipeline.test.cpp | 26 +
compiler/enco/core/src/Session.cpp | 58 +
compiler/enco/core/src/Session.h | 45 +
compiler/enco/core/src/String.h | 57 +
compiler/enco/core/src/Support/Debugging.cpp | 533 +
compiler/enco/core/src/Support/Debugging.h | 110 +
compiler/enco/core/src/Support/Debugging.test.cpp | 26 +
.../enco/core/src/Transforms/AvgPoolLowering.cpp | 229 +
.../enco/core/src/Transforms/AvgPoolLowering.h | 43 +
.../enco/core/src/Transforms/ConcatLowering.cpp | 196 +
compiler/enco/core/src/Transforms/ConcatLowering.h | 43 +
.../enco/core/src/Transforms/ConstantFolding.cpp | 442 +
.../enco/core/src/Transforms/ConstantFolding.h | 43 +
.../core/src/Transforms/ConstantFolding.test.cpp | 327 +
compiler/enco/core/src/Transforms/CopyLowering.cpp | 105 +
compiler/enco/core/src/Transforms/CopyLowering.h | 43 +
.../core/src/Transforms/DataLayoutConversion.cpp | 383 +
.../core/src/Transforms/DataLayoutConversion.h | 43 +
.../src/Transforms/DataLayoutConversion.test.cpp | 33 +
.../core/src/Transforms/DeadBagElimination.cpp | 72 +
.../enco/core/src/Transforms/DeadBagElimination.h | 48 +
.../core/src/Transforms/DeadObjectElimination.cpp | 77 +
.../core/src/Transforms/DeadObjectElimination.h | 47 +
compiler/enco/core/src/Transforms/Duplicate.cpp | 135 +
compiler/enco/core/src/Transforms/Duplicate.h | 43 +
.../src/Transforms/DuplicatedObjectReduction.cpp | 119 +
.../src/Transforms/DuplicatedObjectReduction.h | 73 +
.../core/src/Transforms/FeatureUnification.cpp | 216 +
.../enco/core/src/Transforms/FeatureUnification.h | 68 +
.../core/src/Transforms/FreeInstrElimination.cpp | 65 +
.../core/src/Transforms/FreeInstrElimination.h | 54 +
.../src/Transforms/FreeInstrElimination.test.cpp | 34 +
.../enco/core/src/Transforms/FreeOpElimination.cpp | 59 +
.../enco/core/src/Transforms/FreeOpElimination.h | 54 +
.../core/src/Transforms/FreeOpElimination.test.cpp | 34 +
.../core/src/Transforms/GlobalDataGeneration.cpp | 181 +
.../core/src/Transforms/GlobalDataGeneration.h | 54 +
.../src/Transforms/IdenticalObjectReduction.cpp | 139 +
.../core/src/Transforms/IdenticalObjectReduction.h | 69 +
.../Transforms/IdenticalObjectReduction.test.cpp | 32 +
.../src/Transforms/IndirectCopyElimination.cpp | 84 +
.../core/src/Transforms/IndirectCopyElimination.h | 60 +
.../core/src/Transforms/IntrinsicSelection.cpp | 100 +
.../enco/core/src/Transforms/IntrinsicSelection.h | 47 +
.../enco/core/src/Transforms/Optimizations.cpp | 257 +
compiler/enco/core/src/Transforms/Optimizations.h | 123 +
compiler/enco/core/src/Transforms/Split.cpp | 1233 +
compiler/enco/core/src/Transforms/Split.h | 48 +
compiler/enco/core/src/Usage.cpp | 58 +
compiler/enco/core/src/Usage.h | 34 +
compiler/enco/core/src/coex/IR.h | 109 +
compiler/enco/core/src/coex/IR.test.cpp | 38 +
compiler/enco/frontend/CMakeLists.txt | 1 +
compiler/enco/frontend/caffe/CMakeLists.txt | 39 +
compiler/enco/frontend/caffe/src/ConcatSpec.cpp | 40 +
compiler/enco/frontend/caffe/src/ConcatSpec.h | 47 +
.../enco/frontend/caffe/src/ConcatSpec.test.cpp | 42 +
compiler/enco/frontend/caffe/src/Context.cpp | 21 +
compiler/enco/frontend/caffe/src/Context.h | 112 +
compiler/enco/frontend/caffe/src/Convert.cpp | 40 +
compiler/enco/frontend/caffe/src/Convert.h | 36 +
.../enco/frontend/caffe/src/ConvolutionSpec.cpp | 147 +
compiler/enco/frontend/caffe/src/ConvolutionSpec.h | 59 +
.../frontend/caffe/src/ConvolutionSpec.test.cpp | 405 +
compiler/enco/frontend/caffe/src/Entry.cpp | 62 +
compiler/enco/frontend/caffe/src/Frontend.cpp | 135 +
compiler/enco/frontend/caffe/src/Frontend.h | 43 +
compiler/enco/frontend/caffe/src/GraphBuilder.cpp | 21 +
compiler/enco/frontend/caffe/src/GraphBuilder.h | 36 +
.../frontend/caffe/src/GraphBuilderRegistry.cpp | 47 +
.../enco/frontend/caffe/src/GraphBuilderRegistry.h | 54 +
compiler/enco/frontend/caffe/src/IRBuilder.h | 180 +
compiler/enco/frontend/caffe/src/Importer.cpp | 52 +
compiler/enco/frontend/caffe/src/Importer.h | 29 +
.../enco/frontend/caffe/src/Layer/BatchNorm.cpp | 254 +
compiler/enco/frontend/caffe/src/Layer/BatchNorm.h | 35 +
.../frontend/caffe/src/Layer/Concatenation.cpp | 138 +
.../enco/frontend/caffe/src/Layer/Concatenation.h | 35 +
.../enco/frontend/caffe/src/Layer/Convolution.cpp | 197 +
.../enco/frontend/caffe/src/Layer/Convolution.h | 35 +
compiler/enco/frontend/caffe/src/Layer/Eltwise.cpp | 134 +
compiler/enco/frontend/caffe/src/Layer/Eltwise.h | 35 +
compiler/enco/frontend/caffe/src/Layer/Input.cpp | 60 +
compiler/enco/frontend/caffe/src/Layer/Input.h | 35 +
compiler/enco/frontend/caffe/src/Layer/Pooling.cpp | 138 +
compiler/enco/frontend/caffe/src/Layer/Pooling.h | 35 +
compiler/enco/frontend/caffe/src/Layer/ReLU.cpp | 83 +
compiler/enco/frontend/caffe/src/Layer/ReLU.h | 35 +
compiler/enco/frontend/caffe/src/Layer/Scale.cpp | 160 +
compiler/enco/frontend/caffe/src/Layer/Scale.h | 35 +
compiler/enco/frontend/caffe/src/Padding.h | 69 +
compiler/enco/frontend/caffe/src/Padding.test.cpp | 48 +
compiler/enco/frontend/caffe/src/PaddingUtils.cpp | 131 +
compiler/enco/frontend/caffe/src/PaddingUtils.h | 81 +
compiler/enco/frontend/caffe/src/PoolingSpec.cpp | 148 +
compiler/enco/frontend/caffe/src/PoolingSpec.h | 62 +
.../enco/frontend/caffe/src/PoolingSpec.test.cpp | 294 +
compiler/enco/frontend/caffe/src/ShapeQuery.cpp | 40 +
compiler/enco/frontend/caffe/src/ShapeQuery.h | 75 +
compiler/enco/frontend/tflite/CMakeLists.txt | 36 +
compiler/enco/frontend/tflite/schema/schema.fbs | 734 +
compiler/enco/frontend/tflite/schema/schema.meta | 2 +
compiler/enco/frontend/tflite/src/Context.cpp | 116 +
compiler/enco/frontend/tflite/src/Context.h | 169 +
compiler/enco/frontend/tflite/src/Convert.cpp | 57 +
compiler/enco/frontend/tflite/src/Convert.h | 43 +
compiler/enco/frontend/tflite/src/Entry.cpp | 36 +
compiler/enco/frontend/tflite/src/Frontend.cpp | 198 +
compiler/enco/frontend/tflite/src/Frontend.h | 40 +
.../enco/frontend/tflite/src/Frontend.test.cpp | 41 +
compiler/enco/frontend/tflite/src/GraphBuilder.h | 46 +
.../frontend/tflite/src/GraphBuilderRegistry.h | 88 +
compiler/enco/frontend/tflite/src/IRBuilder.h | 178 +
.../enco/frontend/tflite/src/Op/Activation.cpp | 96 +
compiler/enco/frontend/tflite/src/Op/Activation.h | 37 +
.../enco/frontend/tflite/src/Op/AveragePool2D.cpp | 126 +
.../enco/frontend/tflite/src/Op/AveragePool2D.h | 39 +
.../enco/frontend/tflite/src/Op/Concatenation.cpp | 252 +
.../enco/frontend/tflite/src/Op/Concatenation.h | 38 +
compiler/enco/frontend/tflite/src/Op/Conv2D.cpp | 181 +
compiler/enco/frontend/tflite/src/Op/Conv2D.h | 39 +
.../frontend/tflite/src/Op/DepthwiseConv2D.cpp | 230 +
.../enco/frontend/tflite/src/Op/DepthwiseConv2D.h | 39 +
compiler/enco/frontend/tflite/src/Op/Div.cpp | 116 +
compiler/enco/frontend/tflite/src/Op/Div.h | 38 +
compiler/enco/frontend/tflite/src/Op/MaxPool2D.cpp | 123 +
compiler/enco/frontend/tflite/src/Op/MaxPool2D.h | 39 +
compiler/enco/frontend/tflite/src/Op/Padding.cpp | 105 +
compiler/enco/frontend/tflite/src/Op/Padding.h | 42 +
compiler/enco/frontend/tflite/src/Op/ReLU.cpp | 89 +
compiler/enco/frontend/tflite/src/Op/ReLU.h | 38 +
compiler/enco/frontend/tflite/src/Op/ReLU6.cpp | 89 +
compiler/enco/frontend/tflite/src/Op/ReLU6.h | 38 +
compiler/enco/frontend/tflite/src/Op/Reshape.cpp | 89 +
compiler/enco/frontend/tflite/src/Op/Reshape.h | 38 +
compiler/enco/frontend/tflite/src/Op/Sub.cpp | 112 +
compiler/enco/frontend/tflite/src/Op/Sub.h | 38 +
compiler/enco/frontend/tflite/src/RawModel.h | 29 +
.../enco/frontend/tflite/src/RawModelLoader.cpp | 89 +
compiler/enco/frontend/tflite/src/RawModelLoader.h | 29 +
compiler/enco/frontend/tflite/src/TensorBags.h | 65 +
compiler/enco/requires.cmake | 8 +
compiler/enco/test/CMakeLists.txt | 1 +
compiler/enco/test/basic/000/CMakeLists.txt | 26 +
compiler/enco/test/basic/000/enco.test.cpp | 81 +
compiler/enco/test/basic/CMakeLists.txt | 1 +
compiler/enco/test/binder.cpp | 188 +
compiler/enco/test/caffe/CMakeLists.txt | 141 +
compiler/enco/test/caffe/runall.sh | 85 +
.../enco/test/tflite/AveragePool2D_000/INFERENCE | 0
.../enco/test/tflite/AveragePool2D_000/test.recipe | 24 +
.../enco/test/tflite/AveragePool2D_001/INFERENCE | 0
.../enco/test/tflite/AveragePool2D_001/test.recipe | 24 +
compiler/enco/test/tflite/CMakeLists.txt | 108 +
compiler/enco/test/tflite/Concat_000/INFERENCE | 0
compiler/enco/test/tflite/Concat_000/test.recipe | 28 +
compiler/enco/test/tflite/Concat_001/INFERENCE | 0
compiler/enco/test/tflite/Concat_001/test.recipe | 29 +
compiler/enco/test/tflite/Concat_002/INFERENCE | 0
compiler/enco/test/tflite/Concat_002/test.recipe | 29 +
compiler/enco/test/tflite/Concat_003/INFERENCE | 0
compiler/enco/test/tflite/Concat_003/test.recipe | 29 +
compiler/enco/test/tflite/Conv2D_000/INFERENCE | 0
compiler/enco/test/tflite/Conv2D_000/test.recipe | 45 +
compiler/enco/test/tflite/Conv2D_001/INFERENCE | 0
compiler/enco/test/tflite/Conv2D_001/test.recipe | 45 +
compiler/enco/test/tflite/Conv2D_002/INFERENCE | 0
compiler/enco/test/tflite/Conv2D_002/test.recipe | 46 +
compiler/enco/test/tflite/Conv2D_003/INFERENCE | 0
compiler/enco/test/tflite/Conv2D_003/test.recipe | 45 +
compiler/enco/test/tflite/Conv2D_004/INFERENCE | 0
compiler/enco/test/tflite/Conv2D_004/test.recipe | 45 +
.../enco/test/tflite/DepthwiseConv2D_000/INFERENCE | 0
.../test/tflite/DepthwiseConv2D_000/test.recipe | 48 +
.../enco/test/tflite/DepthwiseConv2D_001/INFERENCE | 0
.../test/tflite/DepthwiseConv2D_001/test.recipe | 46 +
compiler/enco/test/tflite/Div_000/INFERENCE | 0
compiler/enco/test/tflite/Div_000/test.recipe | 27 +
compiler/enco/test/tflite/MaxPool2D_000/INFERENCE | 0
.../enco/test/tflite/MaxPool2D_000/test.recipe | 24 +
compiler/enco/test/tflite/ReLU6_000/INFERENCE | 0
compiler/enco/test/tflite/ReLU6_000/test.recipe | 17 +
compiler/enco/test/tflite/ReLU_000/INFERENCE | 0
compiler/enco/test/tflite/ReLU_000/test.recipe | 17 +
.../enco/test/tflite/Regression_0000/INFERENCE | 0
.../enco/test/tflite/Regression_0000/test.recipe | 84 +
.../enco/test/tflite/Regression_0001/INFERENCE | 0
.../enco/test/tflite/Regression_0001/test.recipe | 50 +
.../enco/test/tflite/Regression_0002/INFERENCE | 0
.../enco/test/tflite/Regression_0002/test.recipe | 45 +
.../enco/test/tflite/Regression_0003/INFERENCE | 0
.../enco/test/tflite/Regression_0003/test.recipe | 33 +
.../enco/test/tflite/Regression_0004/INFERENCE | 0
.../enco/test/tflite/Regression_0004/test.recipe | 27 +
compiler/enco/test/tflite/Reshape_000/INFERENCE | 0
compiler/enco/test/tflite/Reshape_000/test.recipe | 21 +
compiler/enco/test/tflite/Sub_000/INFERENCE | 0
compiler/enco/test/tflite/Sub_000/test.recipe | 27 +
compiler/enco/test/tflite/empty/INFERENCE | 0
compiler/enco/test/tflite/empty/test.recipe | 0
compiler/enco/test/tflite/runall.sh | 83 +
compiler/encodump/CMakeLists.txt | 17 +
compiler/encodump/README.md | 69 +
compiler/encodump/requires.cmake | 1 +
compiler/encodump/src/Driver.cpp | 207 +
compiler/encodump/src/Dump.cpp | 371 +
compiler/encodump/src/Dump.h | 24 +
compiler/exo/CMakeLists.txt | 73 +
compiler/exo/README.md | 12 +
compiler/exo/include/exo/CircleExporter.h | 62 +
compiler/exo/include/exo/LoggingContext.h | 35 +
compiler/exo/include/exo/TFLExporter.h | 62 +
compiler/exo/requires.cmake | 6 +
compiler/exo/src/Check.h | 37 +
compiler/exo/src/Circle/CircleExporter.cpp | 49 +
compiler/exo/src/Circle/CircleExporterImpl.cpp | 181 +
compiler/exo/src/Circle/CircleExporterImpl.h | 78 +
compiler/exo/src/Circle/CircleExporterUtils.cpp | 163 +
compiler/exo/src/Circle/CircleExporterUtils.h | 120 +
.../exo/src/Circle/CircleOperationExporter.cpp | 1228 +
compiler/exo/src/Circle/CircleOperationExporter.h | 39 +
compiler/exo/src/Circle/CircleTensorExporter.cpp | 261 +
compiler/exo/src/Circle/CircleTensorExporter.h | 42 +
compiler/exo/src/Circle/CircleTypeInference.cpp | 85 +
compiler/exo/src/Circle/CircleTypeInference.h | 45 +
compiler/exo/src/Conversion/AvgPool2DConverter.cpp | 79 +
compiler/exo/src/Conversion/AvgPool2DConverter.h | 41 +
.../exo/src/Conversion/CanonicalNodeConverter.cpp | 19 +
.../exo/src/Conversion/CanonicalNodeConverter.h | 71 +
compiler/exo/src/Conversion/ConstGenConverter.cpp | 60 +
compiler/exo/src/Conversion/ConstGenConverter.h | 38 +
.../exo/src/Conversion/ConstGenConverter.test.cpp | 65 +
compiler/exo/src/Conversion/Conv2DConverter.cpp | 97 +
compiler/exo/src/Conversion/Conv2DConverter.h | 41 +
.../src/Conversion/DepthwiseConv2DConverter.cpp | 114 +
.../exo/src/Conversion/DepthwiseConv2DConverter.h | 61 +
.../exo/src/Conversion/EltwiseAddConverter.cpp | 29 +
compiler/exo/src/Conversion/EltwiseAddConverter.h | 41 +
.../exo/src/Conversion/EltwiseBinaryConverter.h | 110 +
.../exo/src/Conversion/EltwiseDivConverter.cpp | 29 +
compiler/exo/src/Conversion/EltwiseDivConverter.h | 41 +
.../exo/src/Conversion/EltwiseMaxConverter.cpp | 75 +
compiler/exo/src/Conversion/EltwiseMaxConverter.h | 41 +
.../exo/src/Conversion/EltwiseMulConverter.cpp | 29 +
compiler/exo/src/Conversion/EltwiseMulConverter.h | 41 +
.../exo/src/Conversion/EltwiseSqrtConverter.cpp | 68 +
compiler/exo/src/Conversion/EltwiseSqrtConverter.h | 41 +
.../exo/src/Conversion/EltwiseSubConverter.cpp | 29 +
compiler/exo/src/Conversion/EltwiseSubConverter.h | 41 +
.../exo/src/Conversion/FeatureBiasAddConverter.cpp | 91 +
.../exo/src/Conversion/FeatureBiasAddConverter.h | 38 +
.../Conversion/FeatureBiasAddConverter.test.cpp | 102 +
compiler/exo/src/Conversion/MatMulConverter.cpp | 103 +
compiler/exo/src/Conversion/MatMulConverter.h | 41 +
compiler/exo/src/Conversion/MaxPool2DConverter.cpp | 67 +
compiler/exo/src/Conversion/MaxPool2DConverter.h | 41 +
compiler/exo/src/Conversion/Relu6Converter.cpp | 68 +
compiler/exo/src/Conversion/Relu6Converter.h | 41 +
compiler/exo/src/Conversion/ReluConverter.cpp | 68 +
compiler/exo/src/Conversion/ReluConverter.h | 41 +
compiler/exo/src/Conversion/ReluConverter.test.cpp | 97 +
.../src/Conversion/TensorBroadcastConverter.cpp | 189 +
.../exo/src/Conversion/TensorBroadcastConverter.h | 40 +
.../exo/src/Conversion/TensorConcatConverter.cpp | 66 +
.../exo/src/Conversion/TensorConcatConverter.h | 41 +
.../exo/src/Conversion/TensorReduceConverter.cpp | 95 +
.../exo/src/Conversion/TensorReduceConverter.h | 46 +
.../src/Conversion/TensorTransposeConverter.cpp | 102 +
.../exo/src/Conversion/TensorTransposeConverter.h | 41 +
.../src/Conversion/TransposedConv2DConverter.cpp | 92 +
.../exo/src/Conversion/TransposedConv2DConverter.h | 62 +
compiler/exo/src/Conversions.h | 46 +
compiler/exo/src/Convert.cpp | 97 +
compiler/exo/src/Convert.h | 29 +
compiler/exo/src/Dialect/IR/CircleDialect.cpp | 28 +
compiler/exo/src/Dialect/IR/CircleDialect.h | 40 +
compiler/exo/src/Dialect/IR/CircleDialect.test.cpp | 31 +
compiler/exo/src/Dialect/IR/CircleNode.cpp | 26 +
compiler/exo/src/Dialect/IR/CircleNode.h | 23 +
compiler/exo/src/Dialect/IR/CircleNodeDecl.h | 50 +
compiler/exo/src/Dialect/IR/CircleNodeImpl.h | 70 +
.../exo/src/Dialect/IR/CircleNodeVisitor.forward.h | 30 +
compiler/exo/src/Dialect/IR/CircleNodeVisitor.h | 86 +
compiler/exo/src/Dialect/IR/CircleNodes.cpp | 18 +
compiler/exo/src/Dialect/IR/CircleNodes.h | 79 +
compiler/exo/src/Dialect/IR/CircleNodes.lst | 8 +
compiler/exo/src/Dialect/IR/CircleNodes.test.cpp | 36 +
compiler/exo/src/Dialect/IR/CircleOpcode.h | 32 +
compiler/exo/src/Dialect/IR/FusedActFunc.h | 35 +
compiler/exo/src/Dialect/IR/NodeMixins.cpp | 18 +
compiler/exo/src/Dialect/IR/NodeMixins.h | 66 +
compiler/exo/src/Dialect/IR/TFLDialect.cpp | 28 +
compiler/exo/src/Dialect/IR/TFLDialect.h | 40 +
compiler/exo/src/Dialect/IR/TFLDialect.test.cpp | 31 +
compiler/exo/src/Dialect/IR/TFLNode.cpp | 26 +
compiler/exo/src/Dialect/IR/TFLNode.h | 23 +
compiler/exo/src/Dialect/IR/TFLNodeDecl.h | 50 +
compiler/exo/src/Dialect/IR/TFLNodeImpl.h | 70 +
.../exo/src/Dialect/IR/TFLNodeVisitor.forward.h | 30 +
compiler/exo/src/Dialect/IR/TFLNodeVisitor.h | 86 +
compiler/exo/src/Dialect/IR/TFLNodes.cpp | 91 +
compiler/exo/src/Dialect/IR/TFLNodes.h | 551 +
compiler/exo/src/Dialect/IR/TFLNodes.lst | 30 +
compiler/exo/src/Dialect/IR/TFLNodes.test.cpp | 159 +
compiler/exo/src/Dialect/IR/TFLOpcode.h | 32 +
.../Dialect/Service/CircleShapeInferenceRule.cpp | 67 +
.../src/Dialect/Service/CircleShapeInferenceRule.h | 33 +
.../Dialect/Service/CircleTypeInferenceRule.cpp | 58 +
.../src/Dialect/Service/CircleTypeInferenceRule.h | 36 +
.../src/Dialect/Service/TFLShapeInferenceRule.cpp | 627 +
.../src/Dialect/Service/TFLShapeInferenceRule.h | 33 +
.../Dialect/Service/TFLShapeInferenceRule.test.cpp | 277 +
.../src/Dialect/Service/TFLTypeInferenceRule.cpp | 141 +
.../exo/src/Dialect/Service/TFLTypeInferenceRule.h | 37 +
.../Dialect/Service/TFLTypeInferenceRule.test.cpp | 57 +
compiler/exo/src/ExoFormattedGraph.cpp | 525 +
compiler/exo/src/ExoFormattedGraph.h | 56 +
compiler/exo/src/ExoOptimize.cpp | 74 +
compiler/exo/src/ExoOptimize.h | 34 +
compiler/exo/src/ExporterUtils.cpp | 139 +
compiler/exo/src/ExporterUtils.h | 57 +
compiler/exo/src/GraphBlock.cpp | 243 +
compiler/exo/src/GraphBlock.h | 199 +
compiler/exo/src/Knob.cpp | 122 +
compiler/exo/src/Knob.h | 51 +
compiler/exo/src/Knob.lst | 11 +
compiler/exo/src/Log.cpp | 84 +
compiler/exo/src/Log.h | 75 +
compiler/exo/src/LogHelper.cpp | 79 +
compiler/exo/src/LogHelper.h | 70 +
compiler/exo/src/LoggingContext.cpp | 40 +
compiler/exo/src/Pass/FoldReshapeOfConstPass.cpp | 116 +
compiler/exo/src/Pass/FoldReshapeOfConstPass.h | 46 +
compiler/exo/src/Pass/FoldTransposeOfConstPass.cpp | 154 +
compiler/exo/src/Pass/FoldTransposeOfConstPass.h | 46 +
compiler/exo/src/Pass/FuseBiasAddPass.cpp | 362 +
compiler/exo/src/Pass/FuseBiasAddPass.h | 61 +
compiler/exo/src/Pass/FuseBiasAddPass.test.cpp | 361 +
compiler/exo/src/Pass/FuseInstanceNormPass.cpp | 402 +
compiler/exo/src/Pass/FuseInstanceNormPass.h | 40 +
compiler/exo/src/Pass/FuseReluPass.cpp | 115 +
compiler/exo/src/Pass/FuseReluPass.h | 40 +
compiler/exo/src/Pass/FuseReluPass.test.cpp | 115 +
compiler/exo/src/Pass/FuseRsqrtPass.cpp | 95 +
compiler/exo/src/Pass/FuseRsqrtPass.h | 47 +
.../exo/src/Pass/FuseSquaredDifferencePass.cpp | 86 +
compiler/exo/src/Pass/FuseSquaredDifferencePass.h | 49 +
compiler/exo/src/Pass/MergeConcatNodesPass.cpp | 191 +
compiler/exo/src/Pass/MergeConcatNodesPass.h | 41 +
compiler/exo/src/Pass/ShapeInferencePass.cpp | 59 +
compiler/exo/src/Pass/ShapeInferencePass.h | 40 +
compiler/exo/src/Pass/TypeInferencePass.cpp | 57 +
compiler/exo/src/Pass/TypeInferencePass.h | 42 +
compiler/exo/src/Passes.cpp | 19 +
compiler/exo/src/Passes.h | 38 +
compiler/exo/src/ProgressReporter.cpp | 84 +
compiler/exo/src/ProgressReporter.h | 53 +
compiler/exo/src/ShapeInference.cpp | 44 +
compiler/exo/src/ShapeInference.h | 41 +
compiler/exo/src/TFLite/TFLExporter.cpp | 49 +
compiler/exo/src/TFLite/TFLExporterImpl.cpp | 179 +
compiler/exo/src/TFLite/TFLExporterImpl.h | 78 +
compiler/exo/src/TFLite/TFLExporterImpl.test.cpp | 413 +
compiler/exo/src/TFLite/TFLExporterUtils.cpp | 160 +
compiler/exo/src/TFLite/TFLExporterUtils.h | 118 +
compiler/exo/src/TFLite/TFLExporterUtils.test.cpp | 108 +
compiler/exo/src/TFLite/TFLOperationExporter.cpp | 1199 +
compiler/exo/src/TFLite/TFLOperationExporter.h | 39 +
compiler/exo/src/TFLite/TFLTensorExporter.cpp | 249 +
compiler/exo/src/TFLite/TFLTensorExporter.h | 42 +
compiler/exo/src/TFLite/TFLTypeInference.cpp | 82 +
compiler/exo/src/TFLite/TFLTypeInference.h | 42 +
compiler/exo/src/TFLite/TFLTypeInference.test.cpp | 118 +
compiler/exo/src/TestGraph.h | 315 +
compiler/exo/src/TestHelper.h | 110 +
compiler/fipe/CMakeLists.txt | 11 +
compiler/fipe/fipe.test.cpp | 73 +
compiler/fipe/include/fipe.h | 40 +
compiler/gen-core/CMakeLists.txt | 17 +
compiler/gen-core/README.md | 3 +
compiler/gen-core/include/gencore/HDF5Common.h | 65 +
compiler/gen-core/include/gencore/HDF5Exporter.h | 52 +
compiler/gen-core/include/gencore/HDF5Importer.h | 55 +
compiler/gen-core/requires.cmake | 2 +
compiler/gen-core/src/HDF5Common.cpp | 43 +
compiler/gen-core/src/HDF5Exporter.cpp | 95 +
compiler/gen-core/src/HDF5Importer.cpp | 85 +
compiler/gen-tf-input/CMakeLists.txt | 4 +
compiler/gen-tf-input/README.md | 11 +
compiler/gen-tf-input/src/Driver.cpp | 56 +
compiler/gen-tf-output/CMakeLists.txt | 3 +
compiler/gen-tf-output/README.md | 13 +
compiler/gen-tf-output/src/Driver.cpp | 54 +
compiler/gen-tflite-output/CMakeLists.txt | 3 +
compiler/gen-tflite-output/README.md | 14 +
compiler/gen-tflite-output/src/Driver.cpp | 54 +
compiler/hermes-std/CMakeLists.txt | 27 +
compiler/hermes-std/README.md | 3 +
.../hermes-std/include/hermes/ConsoleReporter.h | 35 +
compiler/hermes-std/include/hermes/EnvConfig.h | 55 +
compiler/hermes-std/requires.cmake | 1 +
compiler/hermes-std/src/ConsoleReporter.cpp | 32 +
compiler/hermes-std/src/ConsoleReporter.test.cpp | 46 +
compiler/hermes-std/src/EnvConfig.cpp | 44 +
compiler/hermes/CMakeLists.txt | 28 +
compiler/hermes/README.md | 3 +
compiler/hermes/include/hermes.h | 25 +
compiler/hermes/include/hermes/core/Config.h | 43 +
compiler/hermes/include/hermes/core/Context.h | 78 +
compiler/hermes/include/hermes/core/Message.h | 69 +
.../hermes/include/hermes/core/MessageBuffer.h | 51 +
compiler/hermes/include/hermes/core/MessageBus.h | 40 +
compiler/hermes/include/hermes/core/Severity.h | 83 +
compiler/hermes/include/hermes/core/Sink.h | 49 +
compiler/hermes/include/hermes/core/Source.h | 118 +
.../hermes/include/hermes/core/SourceSetting.h | 108 +
compiler/hermes/requires.cmake | 1 +
compiler/hermes/src/core/Context.cpp | 79 +
compiler/hermes/src/core/Context.test.cpp | 28 +
compiler/hermes/src/core/Message.cpp | 43 +
compiler/hermes/src/core/Message.test.cpp | 41 +
compiler/hermes/src/core/MessageBuffer.cpp | 40 +
compiler/hermes/src/core/MessageBuffer.test.cpp | 66 +
compiler/hermes/src/core/MessageBus.cpp | 19 +
compiler/hermes/src/core/Severity.test.cpp | 59 +
compiler/hermes/src/core/Sink.cpp | 19 +
compiler/hermes/src/core/Source.cpp | 70 +
compiler/hermes/src/core/Source.test.cpp | 101 +
compiler/hermes/src/hermes.cpp | 19 +
compiler/hermes/src/hermes.test.cpp | 24 +
compiler/i5diff/CMakeLists.txt | 15 +
compiler/i5diff/README.md | 20 +
compiler/i5diff/requires.cmake | 2 +
compiler/i5diff/src/entry.cpp | 313 +
compiler/kuma/CMakeLists.txt | 19 +
compiler/kuma/README.md | 7 +
compiler/kuma/include/kuma.h | 98 +
compiler/kuma/src/IntervalSet.cpp | 92 +
compiler/kuma/src/IntervalSet.h | 78 +
compiler/kuma/src/IntervalSet.test.cpp | 31 +
compiler/kuma/src/kuma.cpp | 93 +
compiler/kuma/src/kuma.test.cpp | 89 +
compiler/loco/CMakeLists.txt | 28 +
compiler/loco/README.md | 3 +
compiler/loco/doc/LEP_000_Dialect_Service.md | 116 +
compiler/loco/include/loco.h | 26 +
compiler/loco/include/loco/ADT/AnnotatedItem.h | 82 +
compiler/loco/include/loco/ADT/ObjectPool.h | 77 +
compiler/loco/include/loco/IR/Algorithm.h | 48 +
compiler/loco/include/loco/IR/BiasShape.h | 43 +
compiler/loco/include/loco/IR/CanonicalDialect.h | 45 +
compiler/loco/include/loco/IR/CanonicalNode.h | 23 +
compiler/loco/include/loco/IR/CanonicalNodeDecl.h | 50 +
compiler/loco/include/loco/IR/CanonicalNodeImpl.h | 64 +
.../include/loco/IR/CanonicalNodeVisitor.forward.h | 29 +
.../loco/include/loco/IR/CanonicalNodeVisitor.h | 79 +
compiler/loco/include/loco/IR/CanonicalNodes.lst | 49 +
compiler/loco/include/loco/IR/CanonicalOpcode.h | 37 +
compiler/loco/include/loco/IR/DataType.h | 51 +
compiler/loco/include/loco/IR/DataTypeTraits.h | 86 +
.../loco/include/loco/IR/DepthwiseFilterAxis.h | 33 +
.../loco/include/loco/IR/DepthwiseFilterCodec.h | 69 +
.../loco/include/loco/IR/DepthwiseFilterIndex.h | 65 +
.../loco/include/loco/IR/DepthwiseFilterShape.h | 63 +
compiler/loco/include/loco/IR/Dialect.h | 66 +
compiler/loco/include/loco/IR/DialectService.h | 35 +
compiler/loco/include/loco/IR/Dimension.h | 85 +
compiler/loco/include/loco/IR/Domain.h | 53 +
compiler/loco/include/loco/IR/FeatureAxis.h | 33 +
compiler/loco/include/loco/IR/FeatureCodec.h | 77 +
compiler/loco/include/loco/IR/FeatureIndex.h | 65 +
compiler/loco/include/loco/IR/FeatureShape.h | 66 +
compiler/loco/include/loco/IR/FilterAxis.h | 33 +
compiler/loco/include/loco/IR/FilterCodec.h | 61 +
compiler/loco/include/loco/IR/FilterIndex.h | 65 +
compiler/loco/include/loco/IR/FilterShape.h | 69 +
compiler/loco/include/loco/IR/Graph.forward.h | 28 +
compiler/loco/include/loco/IR/Graph.h | 284 +
compiler/loco/include/loco/IR/GraphInputIndex.h | 29 +
compiler/loco/include/loco/IR/GraphOutputIndex.h | 29 +
compiler/loco/include/loco/IR/MatrixAxis.h | 31 +
compiler/loco/include/loco/IR/MatrixCodec.h | 73 +
compiler/loco/include/loco/IR/MatrixIndex.h | 55 +
compiler/loco/include/loco/IR/MatrixShape.h | 56 +
compiler/loco/include/loco/IR/Node.forward.h | 28 +
compiler/loco/include/loco/IR/Node.h | 147 +
compiler/loco/include/loco/IR/NodeMixins.h | 133 +
compiler/loco/include/loco/IR/NodePool.forward.h | 28 +
compiler/loco/include/loco/IR/NodePool.h | 62 +
compiler/loco/include/loco/IR/NodeShape.h | 70 +
compiler/loco/include/loco/IR/Nodes.h | 1123 +
compiler/loco/include/loco/IR/Padding2D.h | 65 +
compiler/loco/include/loco/IR/PaddingND.h | 56 +
compiler/loco/include/loco/IR/PermutingCodec.h | 421 +
compiler/loco/include/loco/IR/Stride.h | 50 +
compiler/loco/include/loco/IR/TensorAxis.h | 29 +
compiler/loco/include/loco/IR/TensorAxisSet.h | 42 +
compiler/loco/include/loco/IR/TensorIndex.h | 30 +
compiler/loco/include/loco/IR/TensorShape.h | 62 +
compiler/loco/include/loco/IR/Use.h | 71 +
compiler/loco/include/loco/IR/Verifier.h | 100 +
compiler/loco/include/loco/IR/Window.h | 52 +
.../loco/Service/CanonicalShapeInferenceRule.h | 38 +
.../loco/Service/MultiDialectShapeInferenceRule.h | 45 +
.../loco/include/loco/Service/ShapeInference.h | 66 +
.../loco/include/loco/Service/ShapeInferenceRule.h | 97 +
compiler/loco/include/loco/Service/TypeInference.h | 114 +
compiler/loco/src/ADT/AnnotatedItem.test.cpp | 75 +
compiler/loco/src/ADT/ObjectPool.cpp | 19 +
compiler/loco/src/IR/Algorithm.cpp | 121 +
compiler/loco/src/IR/Algorithm.test.cpp | 122 +
compiler/loco/src/IR/BiasShape.test.cpp | 26 +
compiler/loco/src/IR/CanonicalDialect.cpp | 67 +
compiler/loco/src/IR/CanonicalDialect.test.cpp | 29 +
compiler/loco/src/IR/CanonicalNode.cpp | 25 +
compiler/loco/src/IR/CanonicalNode.test.cpp | 72 +
compiler/loco/src/IR/CanonicalOpcode.cpp | 19 +
compiler/loco/src/IR/DataType.cpp | 19 +
compiler/loco/src/IR/DataTypeTraits.test.cpp | 29 +
compiler/loco/src/IR/DepthwiseFilterAxis.cpp | 19 +
compiler/loco/src/IR/DepthwiseFilterCodec.cpp | 19 +
compiler/loco/src/IR/DepthwiseFilterIndex.test.cpp | 67 +
compiler/loco/src/IR/DepthwiseFilterShape.test.cpp | 80 +
compiler/loco/src/IR/Dialect.cpp | 19 +
compiler/loco/src/IR/Dialect.test.cpp | 41 +
compiler/loco/src/IR/DialectService.cpp | 19 +
compiler/loco/src/IR/Dimension.cpp | 32 +
compiler/loco/src/IR/Dimension.test.cpp | 100 +
compiler/loco/src/IR/Domain.cpp | 19 +
compiler/loco/src/IR/FeatureAxis.cpp | 19 +
compiler/loco/src/IR/FeatureCodec.cpp | 19 +
compiler/loco/src/IR/FeatureIndex.test.cpp | 67 +
compiler/loco/src/IR/FeatureShape.test.cpp | 80 +
compiler/loco/src/IR/FilterAxis.cpp | 19 +
compiler/loco/src/IR/FilterCodec.cpp | 19 +
compiler/loco/src/IR/FilterIndex.test.cpp | 67 +
compiler/loco/src/IR/FilterShape.test.cpp | 80 +
compiler/loco/src/IR/Graph.cpp | 137 +
compiler/loco/src/IR/Graph.test.cpp | 218 +
compiler/loco/src/IR/GraphInputIndex.cpp | 19 +
compiler/loco/src/IR/GraphOutputIndex.cpp | 19 +
compiler/loco/src/IR/MatrixAxis.cpp | 19 +
compiler/loco/src/IR/MatrixCodec.cpp | 19 +
compiler/loco/src/IR/MockupNode.h | 58 +
compiler/loco/src/IR/Node.cpp | 88 +
compiler/loco/src/IR/Node.test.cpp | 102 +
compiler/loco/src/IR/NodeMixins.cpp | 19 +
compiler/loco/src/IR/NodePool.cpp | 31 +
compiler/loco/src/IR/NodeShape.cpp | 284 +
compiler/loco/src/IR/NodeShape.test.cpp | 125 +
compiler/loco/src/IR/Nodes.cpp | 243 +
compiler/loco/src/IR/Nodes.test.cpp | 588 +
compiler/loco/src/IR/Padding2D.test.cpp | 29 +
compiler/loco/src/IR/PaddingND.test.cpp | 32 +
compiler/loco/src/IR/PermutingCodec.cpp | 630 +
compiler/loco/src/IR/PermutingCodec.test.cpp | 553 +
compiler/loco/src/IR/Stride.test.cpp | 42 +
compiler/loco/src/IR/TensorAxis.cpp | 19 +
compiler/loco/src/IR/TensorAxisSet.cpp | 19 +
compiler/loco/src/IR/TensorIndex.cpp | 19 +
compiler/loco/src/IR/TensorShape.cpp | 39 +
compiler/loco/src/IR/TensorShape.test.cpp | 109 +
compiler/loco/src/IR/Use.cpp | 45 +
compiler/loco/src/IR/Use.test.cpp | 42 +
compiler/loco/src/IR/Verifier.cpp | 119 +
compiler/loco/src/IR/Verifier.test.cpp | 64 +
compiler/loco/src/IR/Window.test.cpp | 42 +
.../src/Service/CanonicalShapeInferenceRule.cpp | 774 +
.../Service/CanonicalShapeInferenceRule.test.cpp | 400 +
compiler/loco/src/Service/GraphBuilder.h | 547 +
compiler/loco/src/Service/GraphBuilder.test.cpp | 47 +
compiler/loco/src/Service/GraphTestcase.h | 541 +
.../src/Service/MultiDialectShapeInferenceRule.cpp | 67 +
.../MultiDialectShapeInferenceRule.test.cpp | 134 +
compiler/loco/src/Service/ShapeInference.cpp | 105 +
compiler/loco/src/Service/ShapeInference.test.cpp | 87 +
compiler/loco/src/Service/ShapeInferenceRule.cpp | 31 +
compiler/loco/src/Service/TypeInference.cpp | 228 +
compiler/loco/src/Service/TypeInference.test.cpp | 282 +
compiler/loco/src/loco.test.cpp | 108 +
compiler/loco/src/tensorflow.test.cpp | 386 +
compiler/locoex-customop/CMakeLists.txt | 18 +
compiler/locoex-customop/README.md | 9 +
.../locoex-customop/include/locoex/COpAttrTypes.h | 101 +
compiler/locoex-customop/include/locoex/COpCall.h | 71 +
.../locoex-customop/include/locoex/COpDialect.h | 43 +
compiler/locoex-customop/include/locoex/COpNode.h | 37 +
.../include/locoex/Service/COpFormattedGraph.h | 47 +
.../include/locoex/Service/COpShapeInferenceRule.h | 41 +
.../include/locoex/Service/COpTypeInference.h | 36 +
.../include/locoex/VariadicArityNode.h | 77 +
compiler/locoex-customop/requires.cmake | 4 +
compiler/locoex-customop/src/COpCall.cpp | 67 +
compiler/locoex-customop/src/COpCall.test.cpp | 90 +
compiler/locoex-customop/src/COpDialect.cpp | 28 +
compiler/locoex-customop/src/COpDialect.test.cpp | 29 +
compiler/locoex-customop/src/COpNode.cpp | 25 +
.../src/Service/COpFormattedGraph.cpp | 66 +
.../src/Service/COpShapeInferenceRule.cpp | 59 +
.../src/Service/COpShapeInferenceRule.test.cpp | 54 +
.../src/Service/COpTypeInference.cpp | 47 +
.../src/Service/COpTypeInference.test.cpp | 63 +
.../locoex-customop/src/VariadicArityNode.test.cpp | 72 +
compiler/locomotiv/CMakeLists.txt | 29 +
compiler/locomotiv/README.md | 90 +
compiler/locomotiv/include/locomotiv/NodeData.h | 61 +
compiler/locomotiv/include/locomotiv/Session.h | 108 +
compiler/locomotiv/requires.cmake | 2 +
compiler/locomotiv/src/Node.lst | 40 +
compiler/locomotiv/src/Node/AvgPool2D.cpp | 179 +
compiler/locomotiv/src/Node/AvgPool2D.test.cpp | 176 +
compiler/locomotiv/src/Node/BiasAdd.cpp | 121 +
compiler/locomotiv/src/Node/BiasAdd.test.cpp | 204 +
compiler/locomotiv/src/Node/BiasEncode.cpp | 63 +
compiler/locomotiv/src/Node/BiasEncode.test.cpp | 95 +
compiler/locomotiv/src/Node/ConstGen.cpp | 116 +
compiler/locomotiv/src/Node/ConstGen.test.cpp | 100 +
compiler/locomotiv/src/Node/Conv2D.cpp | 179 +
compiler/locomotiv/src/Node/Conv2D.test.cpp | 231 +
compiler/locomotiv/src/Node/DepthwiseConv2D.cpp | 185 +
.../locomotiv/src/Node/DepthwiseConv2D.test.cpp | 164 +
.../locomotiv/src/Node/DepthwiseFilterEncode.cpp | 113 +
.../src/Node/DepthwiseFilterEncode.test.cpp | 90 +
compiler/locomotiv/src/Node/EltwiseAdd.cpp | 34 +
compiler/locomotiv/src/Node/EltwiseAdd.test.cpp | 121 +
compiler/locomotiv/src/Node/EltwiseDiv.cpp | 34 +
compiler/locomotiv/src/Node/EltwiseDiv.test.cpp | 121 +
compiler/locomotiv/src/Node/EltwiseMax.cpp | 36 +
compiler/locomotiv/src/Node/EltwiseMax.test.cpp | 121 +
compiler/locomotiv/src/Node/EltwiseMul.cpp | 34 +
compiler/locomotiv/src/Node/EltwiseMul.test.cpp | 124 +
compiler/locomotiv/src/Node/EltwiseSqrt.cpp | 43 +
compiler/locomotiv/src/Node/EltwiseSqrt.test.cpp | 69 +
compiler/locomotiv/src/Node/EltwiseSub.cpp | 34 +
compiler/locomotiv/src/Node/EltwiseSub.test.cpp | 121 +
compiler/locomotiv/src/Node/FeatureCodec.test.cpp | 223 +
compiler/locomotiv/src/Node/FeatureDecode.cpp | 112 +
compiler/locomotiv/src/Node/FeatureEncode.cpp | 114 +
compiler/locomotiv/src/Node/FilterEncode.cpp | 114 +
compiler/locomotiv/src/Node/FilterEncode.test.cpp | 144 +
compiler/locomotiv/src/Node/Forward.cpp | 62 +
compiler/locomotiv/src/Node/Forward.test.cpp | 88 +
compiler/locomotiv/src/Node/MatMul.cpp | 133 +
compiler/locomotiv/src/Node/MatMul.test.cpp | 188 +
compiler/locomotiv/src/Node/MatrixCodec.test.cpp | 207 +
compiler/locomotiv/src/Node/MatrixDecode.cpp | 109 +
compiler/locomotiv/src/Node/MatrixEncode.cpp | 112 +
compiler/locomotiv/src/Node/MaxPool2D.cpp | 167 +
compiler/locomotiv/src/Node/MaxPool2D.test.cpp | 159 +
compiler/locomotiv/src/Node/Pull.cpp | 72 +
compiler/locomotiv/src/Node/Pull.test.cpp | 61 +
compiler/locomotiv/src/Node/Push.cpp | 61 +
compiler/locomotiv/src/Node/Push.test.cpp | 88 +
compiler/locomotiv/src/Node/ReLU.cpp | 41 +
compiler/locomotiv/src/Node/ReLU.test.cpp | 62 +
compiler/locomotiv/src/Node/ReLU6.cpp | 96 +
compiler/locomotiv/src/Node/ReLU6.test.cpp | 66 +
compiler/locomotiv/src/Node/Reshape.cpp | 90 +
compiler/locomotiv/src/Node/Reshape.test.cpp | 67 +
compiler/locomotiv/src/Node/Softmax.cpp | 122 +
compiler/locomotiv/src/Node/Softmax.test.cpp | 68 +
compiler/locomotiv/src/Node/Tanh.cpp | 41 +
compiler/locomotiv/src/Node/Tanh.test.cpp | 64 +
compiler/locomotiv/src/Node/TensorBroadcast.cpp | 106 +
.../locomotiv/src/Node/TensorBroadcast.test.cpp | 63 +
compiler/locomotiv/src/Node/TensorConcat.cpp | 113 +
compiler/locomotiv/src/Node/TensorConcat.test.cpp | 128 +
compiler/locomotiv/src/Node/TensorConstantPad.cpp | 113 +
.../locomotiv/src/Node/TensorConstantPad.test.cpp | 218 +
compiler/locomotiv/src/Node/TensorReduce.cpp | 153 +
compiler/locomotiv/src/Node/TensorReduce.test.cpp | 104 +
compiler/locomotiv/src/Node/TransposedConv2D.cpp | 189 +
.../locomotiv/src/Node/TransposedConv2D.test.cpp | 144 +
compiler/locomotiv/src/NodeData.cpp | 33 +
compiler/locomotiv/src/NodeData.test.cpp | 54 +
compiler/locomotiv/src/NodeDataImpl.cpp | 77 +
compiler/locomotiv/src/NodeDataImpl.h | 66 +
compiler/locomotiv/src/NodeDataImpl.test.cpp | 58 +
compiler/locomotiv/src/NodeDomain.cpp | 53 +
compiler/locomotiv/src/NodeDomain.h | 37 +
compiler/locomotiv/src/NodeDomain.test.cpp | 37 +
compiler/locomotiv/src/NodeExecution.cpp | 158 +
compiler/locomotiv/src/NodeExecution.h | 83 +
compiler/locomotiv/src/Session.cpp | 93 +
compiler/locomotiv/src/Session.test.cpp | 379 +
compiler/locomotiv/src/UserData.cpp | 63 +
compiler/locomotiv/src/UserData.h | 31 +
compiler/locomotiv/src/Validation.h | 34 +
compiler/locop/CMakeLists.txt | 27 +
compiler/locop/README.md | 3 +
.../include/locop/CanonicalNodeSummaryBuilder.h | 45 +
compiler/locop/include/locop/FormattedGraph.h | 89 +
.../locop/include/locop/FormattedTensorShape.h | 76 +
.../include/locop/GenericNodeSummaryBuilder.h | 45 +
compiler/locop/include/locop/Interfaces.h | 43 +
compiler/locop/include/locop/NodeSummary.h | 114 +
compiler/locop/include/locop/NodeSummaryBuilder.h | 47 +
compiler/locop/include/locop/SymbolTable.h | 41 +
compiler/locop/src/CanonicalNodeSummaryBuilder.cpp | 297 +
compiler/locop/src/ExampleGraph.h | 69 +
compiler/locop/src/FormattedGraph.cpp | 390 +
compiler/locop/src/FormattedGraph.test.cpp | 143 +
compiler/locop/src/FormattedTensorShape.cpp | 68 +
compiler/locop/src/FormattedTensorShape.test.cpp | 33 +
compiler/locop/src/GenericNodeSummaryBuilder.cpp | 38 +
.../locop/src/GenericNodeSummaryBuilder.test.cpp | 58 +
compiler/locop/src/Interfaces.cpp | 28 +
compiler/locop/src/NodeSummary.cpp | 41 +
compiler/locop/src/NodeSummaryBuilder.cpp | 21 +
compiler/logo-core/CMakeLists.txt | 19 +
compiler/logo-core/README.md | 3 +
compiler/logo-core/include/logo/Pass.h | 48 +
compiler/logo-core/include/logo/Phase.h | 192 +
compiler/logo-core/requires.cmake | 1 +
compiler/logo-core/src/Pass.cpp | 32 +
compiler/logo-core/src/Pass.test.cpp | 46 +
compiler/logo-core/src/Phase.cpp | 71 +
compiler/logo/CMakeLists.txt | 23 +
compiler/logo/README.md | 3 +
compiler/logo/include/logo/ConstantFoldingPass.h | 41 +
compiler/logo/include/logo/Passes.h | 30 +
compiler/logo/include/logo/RemoveDeadNodePass.h | 34 +
compiler/logo/include/logo/RemoveForwardNodePass.h | 46 +
compiler/logo/include/logo/ReorderDecodePass.h | 51 +
.../include/logo/ResolveDuplicateReshapePass.h | 41 +
.../include/logo/ResolveRedundantReshapePass.h | 44 +
.../include/logo/SimplifyDomainConversionPass.h | 47 +
compiler/logo/requires.cmake | 4 +
compiler/logo/src/Passes/ConstantFoldingPass.cpp | 174 +
.../logo/src/Passes/ConstantFoldingPass.test.cpp | 179 +
compiler/logo/src/Passes/RemoveDeadNodePass.cpp | 77 +
compiler/logo/src/Passes/RemoveForwardNodePass.cpp | 64 +
compiler/logo/src/Passes/ReorderDecodePass.cpp | 311 +
.../src/Passes/ResolveDuplicateReshapePass.cpp | 108 +
.../src/Passes/ResolveRedundantReshapePass.cpp | 103 +
.../src/Passes/SimplifyDomainConversionPass.cpp | 445 +
.../Passes/SimplifyDomainConversionPass.test.cpp | 234 +
compiler/logo/src/TestHelper.h | 44 +
compiler/luci/CMakeLists.txt | 10 +
compiler/luci/README.md | 3 +
compiler/luci/export/CMakeLists.txt | 29 +
compiler/luci/export/README.md | 3 +
compiler/luci/export/include/luci/CircleExporter.h | 64 +
compiler/luci/export/src/Check.h | 35 +
compiler/luci/export/src/CircleExporter.cpp | 64 +
compiler/luci/export/src/CircleExporterImpl.cpp | 266 +
compiler/luci/export/src/CircleExporterImpl.h | 82 +
compiler/luci/export/src/CircleExporterUtils.cpp | 169 +
compiler/luci/export/src/CircleExporterUtils.h | 51 +
.../luci/export/src/CircleOperationExporter.cpp | 643 +
compiler/luci/export/src/CircleOperationExporter.h | 37 +
compiler/luci/export/src/CircleTensorExporter.cpp | 264 +
compiler/luci/export/src/CircleTensorExporter.h | 44 +
compiler/luci/export/src/Optimize.cpp | 48 +
compiler/luci/export/src/Optimize.h | 33 +
compiler/luci/export/src/ProgressReporter.cpp | 84 +
compiler/luci/export/src/ProgressReporter.h | 53 +
compiler/luci/export/src/SerializedData.h | 95 +
compiler/luci/import/CMakeLists.txt | 26 +
compiler/luci/import/README.md | 3 +
.../luci/import/include/luci/Import/CircleReader.h | 87 +
.../luci/import/include/luci/Import/GraphBuilder.h | 56 +
.../include/luci/Import/GraphBuilderContext.h | 79 +
.../include/luci/Import/GraphBuilderRegistry.h | 85 +
compiler/luci/import/include/luci/Import/Nodes.h | 48 +
.../import/include/luci/Import/Nodes/CircleAbs.h | 37 +
.../import/include/luci/Import/Nodes/CircleAdd.h | 37 +
.../include/luci/Import/Nodes/CircleArgMax.h | 37 +
.../luci/Import/Nodes/CircleAveragePool2D.h | 37 +
.../luci/Import/Nodes/CircleBatchToSpaceND.h | 37 +
.../luci/Import/Nodes/CircleConcatenation.h | 37 +
.../import/include/luci/Import/Nodes/CircleConst.h | 37 +
.../include/luci/Import/Nodes/CircleConv2D.h | 37 +
.../import/include/luci/Import/Nodes/CircleCos.h | 37 +
.../luci/Import/Nodes/CircleDepthwiseConv2D.h | 37 +
.../import/include/luci/Import/Nodes/CircleDiv.h | 36 +
.../import/include/luci/Import/Nodes/CircleEqual.h | 37 +
.../import/include/luci/Import/Nodes/CircleExp.h | 37 +
.../luci/Import/Nodes/CircleFullyConnected.h | 37 +
.../include/luci/Import/Nodes/CircleLogicalNot.h | 37 +
.../include/luci/Import/Nodes/CircleLogicalOr.h | 37 +
.../include/luci/Import/Nodes/CircleMaxPool2D.h | 37 +
.../import/include/luci/Import/Nodes/CircleMean.h | 37 +
.../import/include/luci/Import/Nodes/CircleMul.h | 37 +
.../import/include/luci/Import/Nodes/CirclePack.h | 37 +
.../import/include/luci/Import/Nodes/CirclePad.h | 37 +
.../import/include/luci/Import/Nodes/CircleRelu.h | 37 +
.../include/luci/Import/Nodes/CircleReshape.h | 37 +
.../import/include/luci/Import/Nodes/CircleRsqrt.h | 37 +
.../include/luci/Import/Nodes/CircleSoftmax.h | 37 +
.../import/include/luci/Import/Nodes/CircleSub.h | 37 +
.../include/luci/Import/Nodes/CircleTranspose.h | 37 +
compiler/luci/import/include/luci/Importer.h | 54 +
compiler/luci/import/src/CircleReader.cpp | 211 +
compiler/luci/import/src/GraphBuilder.cpp | 61 +
compiler/luci/import/src/GraphBuilderContext.cpp | 47 +
compiler/luci/import/src/GraphBuilderRegistry.cpp | 163 +
compiler/luci/import/src/Importer.cpp | 253 +
compiler/luci/import/src/Importer.test.cpp | 23 +
compiler/luci/import/src/Nodes/CircleAbs.cpp | 44 +
compiler/luci/import/src/Nodes/CircleAdd.cpp | 48 +
compiler/luci/import/src/Nodes/CircleArgMax.cpp | 48 +
.../luci/import/src/Nodes/CircleAveragePool2D.cpp | 50 +
.../luci/import/src/Nodes/CircleBatchToSpaceND.cpp | 80 +
.../luci/import/src/Nodes/CircleConcatenation.cpp | 52 +
compiler/luci/import/src/Nodes/CircleConst.cpp | 110 +
compiler/luci/import/src/Nodes/CircleConv2D.cpp | 58 +
compiler/luci/import/src/Nodes/CircleCos.cpp | 46 +
.../import/src/Nodes/CircleDepthwiseConv2D.cpp | 60 +
compiler/luci/import/src/Nodes/CircleDiv.cpp | 49 +
compiler/luci/import/src/Nodes/CircleEqual.cpp | 51 +
compiler/luci/import/src/Nodes/CircleExp.cpp | 59 +
.../luci/import/src/Nodes/CircleFullyConnected.cpp | 56 +
.../luci/import/src/Nodes/CircleLogicalNot.cpp | 51 +
compiler/luci/import/src/Nodes/CircleLogicalOr.cpp | 55 +
compiler/luci/import/src/Nodes/CircleMaxPool2D.cpp | 52 +
compiler/luci/import/src/Nodes/CircleMean.cpp | 46 +
compiler/luci/import/src/Nodes/CircleMul.cpp | 49 +
compiler/luci/import/src/Nodes/CirclePack.cpp | 61 +
compiler/luci/import/src/Nodes/CirclePad.cpp | 50 +
compiler/luci/import/src/Nodes/CircleRelu.cpp | 47 +
compiler/luci/import/src/Nodes/CircleReshape.cpp | 82 +
compiler/luci/import/src/Nodes/CircleRsqrt.cpp | 60 +
compiler/luci/import/src/Nodes/CircleSoftmax.cpp | 49 +
compiler/luci/import/src/Nodes/CircleSub.cpp | 51 +
compiler/luci/import/src/Nodes/CircleTranspose.cpp | 51 +
compiler/luci/lang/CMakeLists.txt | 22 +
compiler/luci/lang/README.md | 3 +
compiler/luci/lang/include/luci/IR/AttrFilter.h | 43 +
.../luci/lang/include/luci/IR/AttrFusedActFunc.h | 36 +
compiler/luci/lang/include/luci/IR/AttrPadding.h | 33 +
compiler/luci/lang/include/luci/IR/AttrStride.h | 43 +
compiler/luci/lang/include/luci/IR/CircleDialect.h | 43 +
compiler/luci/lang/include/luci/IR/CircleNode.h | 23 +
.../luci/lang/include/luci/IR/CircleNodeDecl.h | 68 +
.../luci/lang/include/luci/IR/CircleNodeImpl.h | 70 +
.../include/luci/IR/CircleNodeVisitor.forward.h | 30 +
.../luci/lang/include/luci/IR/CircleNodeVisitor.h | 87 +
compiler/luci/lang/include/luci/IR/CircleNodes.h | 73 +
compiler/luci/lang/include/luci/IR/CircleNodes.lst | 52 +
compiler/luci/lang/include/luci/IR/CircleOpcode.h | 32 +
.../luci/lang/include/luci/IR/CircleQuantParam.h | 36 +
.../luci/lang/include/luci/IR/LuciNodeMixins.h | 104 +
compiler/luci/lang/include/luci/IR/Module.h | 70 +
.../luci/lang/include/luci/IR/Nodes/CircleAbs.h | 40 +
.../luci/lang/include/luci/IR/Nodes/CircleAdd.h | 45 +
.../luci/lang/include/luci/IR/Nodes/CircleArgMax.h | 50 +
.../include/luci/IR/Nodes/CircleAveragePool2D.h | 63 +
.../include/luci/IR/Nodes/CircleBatchToSpaceND.h | 47 +
.../include/luci/IR/Nodes/CircleConcatenation.h | 72 +
.../luci/lang/include/luci/IR/Nodes/CircleConst.h | 57 +
.../luci/lang/include/luci/IR/Nodes/CircleConv2D.h | 62 +
.../luci/lang/include/luci/IR/Nodes/CircleCos.h | 40 +
.../include/luci/IR/Nodes/CircleDepthwiseConv2D.h | 68 +
.../luci/lang/include/luci/IR/Nodes/CircleDiv.h | 51 +
.../luci/lang/include/luci/IR/Nodes/CircleEqual.h | 43 +
.../luci/lang/include/luci/IR/Nodes/CircleExp.h | 40 +
.../include/luci/IR/Nodes/CircleFullyConnected.h | 50 +
.../luci/lang/include/luci/IR/Nodes/CircleGather.h | 51 +
.../luci/lang/include/luci/IR/Nodes/CircleInput.h | 55 +
.../include/luci/IR/Nodes/CircleInstanceNorm.h | 56 +
.../lang/include/luci/IR/Nodes/CircleLogicalNot.h | 40 +
.../lang/include/luci/IR/Nodes/CircleLogicalOr.h | 43 +
.../lang/include/luci/IR/Nodes/CircleMaxPool2D.h | 62 +
.../lang/include/luci/IR/Nodes/CircleMaximum.h | 44 +
.../luci/lang/include/luci/IR/Nodes/CircleMean.h | 51 +
.../luci/lang/include/luci/IR/Nodes/CircleMul.h | 45 +
.../luci/lang/include/luci/IR/Nodes/CircleOutput.h | 55 +
.../luci/lang/include/luci/IR/Nodes/CirclePack.h | 67 +
.../luci/lang/include/luci/IR/Nodes/CirclePad.h | 46 +
.../luci/lang/include/luci/IR/Nodes/CircleRelu.h | 44 +
.../luci/lang/include/luci/IR/Nodes/CircleRelu6.h | 44 +
.../lang/include/luci/IR/Nodes/CircleReshape.h | 69 +
.../luci/lang/include/luci/IR/Nodes/CircleRsqrt.h | 44 +
.../lang/include/luci/IR/Nodes/CircleSoftmax.h | 47 +
.../luci/lang/include/luci/IR/Nodes/CircleSqrt.h | 44 +
.../luci/IR/Nodes/CircleSquaredDifference.h | 48 +
.../luci/lang/include/luci/IR/Nodes/CircleSub.h | 48 +
.../lang/include/luci/IR/Nodes/CircleTranspose.h | 50 +
.../include/luci/IR/Nodes/CircleTransposeConv.h | 64 +
.../luci/lang/include/luci/IR/VariadicArityNode.h | 77 +
compiler/luci/lang/src/Check.h | 35 +
compiler/luci/lang/src/CircleDialect.cpp | 88 +
compiler/luci/lang/src/CircleDialect.test.cpp | 34 +
compiler/luci/lang/src/CircleNode.cpp | 25 +
compiler/luci/lang/src/CircleNodes.cpp | 50 +
compiler/luci/lang/src/LuciNodeMixins.cpp | 18 +
compiler/luci/lang/src/Module.cpp | 46 +
compiler/luci/lang/src/Module.test.cpp | 73 +
compiler/luci/lang/src/Nodes/CircleAbs.test.cpp | 31 +
compiler/luci/lang/src/Nodes/CircleAdd.test.cpp | 32 +
compiler/luci/lang/src/Nodes/CircleArgMax.test.cpp | 32 +
.../lang/src/Nodes/CircleBatchToSpaceND.test.cpp | 33 +
.../lang/src/Nodes/CircleConcatenation.test.cpp | 35 +
compiler/luci/lang/src/Nodes/CircleConst.cpp | 79 +
compiler/luci/lang/src/Nodes/CircleConv2D.test.cpp | 33 +
compiler/luci/lang/src/Nodes/CircleCos.test.cpp | 31 +
.../lang/src/Nodes/CircleDepthwiseConv2D.test.cpp | 38 +
compiler/luci/lang/src/Nodes/CircleDiv.test.cpp | 32 +
compiler/luci/lang/src/Nodes/CircleEqual.test.cpp | 32 +
compiler/luci/lang/src/Nodes/CircleExp.test.cpp | 31 +
.../lang/src/Nodes/CircleFullyConnected.test.cpp | 34 +
compiler/luci/lang/src/Nodes/CircleGather.test.cpp | 33 +
compiler/luci/lang/src/Nodes/CircleInput.cpp | 38 +
.../lang/src/Nodes/CircleInstanceNorm.test.cpp | 35 +
.../luci/lang/src/Nodes/CircleLogicalNot.test.cpp | 31 +
.../luci/lang/src/Nodes/CircleLogicalOr.test.cpp | 32 +
.../luci/lang/src/Nodes/CircleMaxPool2D.test.cpp | 33 +
.../luci/lang/src/Nodes/CircleMaximum.test.cpp | 32 +
compiler/luci/lang/src/Nodes/CircleMul.test.cpp | 32 +
compiler/luci/lang/src/Nodes/CircleOutput.cpp | 38 +
compiler/luci/lang/src/Nodes/CirclePack.test.cpp | 35 +
compiler/luci/lang/src/Nodes/CirclePad.test.cpp | 32 +
compiler/luci/lang/src/Nodes/CircleRelu.test.cpp | 31 +
compiler/luci/lang/src/Nodes/CircleRelu6.test.cpp | 31 +
.../luci/lang/src/Nodes/CircleReshape.test.cpp | 48 +
compiler/luci/lang/src/Nodes/CircleRsqrt.test.cpp | 31 +
.../luci/lang/src/Nodes/CircleSoftmax.test.cpp | 31 +
compiler/luci/lang/src/Nodes/CircleSqrt.test.cpp | 31 +
.../src/Nodes/CircleSquaredDifference.test.cpp | 32 +
compiler/luci/lang/src/Nodes/CircleSub.test.cpp | 32 +
.../luci/lang/src/Nodes/CircleTranspose.test.cpp | 32 +
.../lang/src/Nodes/CircleTransposeConv.test.cpp | 33 +
compiler/luci/log/CMakeLists.txt | 9 +
compiler/luci/log/README.md | 3 +
compiler/luci/log/include/luci/Log.h | 75 +
compiler/luci/log/include/luci/LoggingContext.h | 35 +
compiler/luci/log/src/Log.cpp | 87 +
compiler/luci/log/src/LoggingContext.cpp | 41 +
compiler/luci/logex/CMakeLists.txt | 13 +
compiler/luci/logex/README.md | 3 +
compiler/luci/logex/include/luci/FormattedGraph.h | 56 +
compiler/luci/logex/include/luci/LogHelper.h | 36 +
compiler/luci/logex/src/FormattedGraph.cpp | 606 +
compiler/luci/logex/src/LogHelper.cpp | 29 +
compiler/luci/pass/CMakeLists.txt | 29 +
compiler/luci/pass/README.md | 3 +
compiler/luci/pass/include/luci/CircleOptimizer.h | 55 +
.../pass/include/luci/Pass/FuseInstanceNormPass.h | 40 +
.../pass/include/luci/Pass/ShapeInferencePass.h | 41 +
.../pass/include/luci/Pass/TypeInferencePass.h | 42 +
compiler/luci/pass/src/CircleOptimizer.cpp | 96 +
compiler/luci/pass/src/FuseInstanceNormPass.cpp | 401 +
compiler/luci/pass/src/ProgressReporter.cpp | 84 +
compiler/luci/pass/src/ProgressReporter.h | 53 +
compiler/luci/pass/src/ShapeInferencePass.cpp | 44 +
compiler/luci/pass/src/TypeInferencePass.cpp | 42 +
compiler/luci/requires.cmake | 9 +
compiler/luci/service/CMakeLists.txt | 25 +
compiler/luci/service/README.md | 3 +
.../include/luci/Service/CircleShapeInference.h | 41 +
.../luci/Service/CircleShapeInferenceRule.h | 33 +
.../include/luci/Service/CircleTypeInference.h | 42 +
.../include/luci/Service/CircleTypeInferenceRule.h | 36 +
.../include/luci/Service/ShapeDescription.h | 59 +
.../luci/service/include/luci/Service/Validate.h | 29 +
compiler/luci/service/src/Check.h | 35 +
compiler/luci/service/src/CircleShapeInference.cpp | 37 +
.../luci/service/src/CircleShapeInferenceRule.cpp | 907 +
.../service/src/CircleShapeInferenceRule.test.cpp | 282 +
compiler/luci/service/src/CircleTypeInference.cpp | 78 +
.../luci/service/src/CircleTypeInferenceRule.cpp | 202 +
.../service/src/CircleTypeInferenceRule.test.cpp | 57 +
compiler/luci/service/src/GraphBlock.h | 201 +
compiler/luci/service/src/GraphBlock.test.cpp | 246 +
compiler/luci/service/src/ShapeDescription.cpp | 139 +
compiler/luci/service/src/TestGraph.h | 315 +
compiler/luci/service/src/Validate.cpp | 109 +
compiler/luci/tester/CMakeLists.txt | 22 +
compiler/luci/tester/src/Model.cpp | 62 +
compiler/luci/tester/src/Model.h | 27 +
compiler/luci/tester/src/ReadTester.cpp | 92 +
compiler/luci/tester/src/WriteTester.cpp | 142 +
compiler/luci/tests/.gitignore | 1 +
compiler/luci/tests/CMakeLists.txt | 97 +
compiler/luci/tests/readverify.sh | 53 +
compiler/luci/tests/test.lst | 91 +
compiler/luci/tests/writeverify.sh | 53 +
compiler/mio-circle/CMakeLists.txt | 28 +
compiler/mio-circle/README.md | 3 +
compiler/mio-circle/example.cpp | 41 +
compiler/mio-tf/CMakeLists.txt | 48 +
compiler/mio-tf/README.md | 3 +
compiler/mio-tf/src/mio_tf.test.cpp | 27 +
compiler/mio-tflite/CMakeLists.txt | 37 +
compiler/mio-tflite/README.md | 3 +
compiler/mio-tflite/example.cpp | 41 +
compiler/mir-caffe-importer/CMakeLists.txt | 17 +
compiler/mir-caffe-importer/caffe_importer.cpp | 439 +
compiler/mir-caffe-importer/caffe_importer.h | 35 +
compiler/mir-caffe-importer/caffe_op_creator.cpp | 834 +
compiler/mir-caffe-importer/caffe_op_creator.h | 146 +
compiler/mir-caffe-importer/caffe_op_types.h | 89 +
compiler/mir-caffe-importer/requires.cmake | 1 +
compiler/mir-caffe2-importer/CMakeLists.txt | 29 +
compiler/mir-caffe2-importer/caffe2_importer.cpp | 343 +
compiler/mir-caffe2-importer/caffe2_importer.h | 34 +
compiler/mir-caffe2-importer/caffe2_op_creator.cpp | 547 +
compiler/mir-caffe2-importer/caffe2_op_creator.h | 117 +
compiler/mir-caffe2-importer/caffe2_op_types.h | 48 +
.../mir-caffe2-importer/caffe2_proto_helper.cpp | 62 +
compiler/mir-caffe2-importer/caffe2_proto_helper.h | 40 +
compiler/mir-caffe2-importer/requires.cmake | 1 +
compiler/mir-interpreter/CMakeLists.txt | 4 +
compiler/mir-interpreter/include/MirInterpreter.h | 101 +
compiler/mir-interpreter/requires.cmake | 1 +
compiler/mir-interpreter/src/MirInterpreter.cpp | 420 +
compiler/mir-interpreter/src/ops/Abs.cpp | 55 +
compiler/mir-interpreter/src/ops/Abs.h | 29 +
compiler/mir-interpreter/src/ops/Add.cpp | 130 +
compiler/mir-interpreter/src/ops/Add.h | 29 +
compiler/mir-interpreter/src/ops/AvgPool2D.cpp | 173 +
compiler/mir-interpreter/src/ops/AvgPool2D.h | 31 +
compiler/mir-interpreter/src/ops/CappedReLU.cpp | 82 +
compiler/mir-interpreter/src/ops/CappedReLU.h | 29 +
compiler/mir-interpreter/src/ops/Common.cpp | 37 +
compiler/mir-interpreter/src/ops/Common.h | 65 +
compiler/mir-interpreter/src/ops/Concat.cpp | 172 +
compiler/mir-interpreter/src/ops/Concat.h | 30 +
compiler/mir-interpreter/src/ops/Conv2D.cpp | 261 +
compiler/mir-interpreter/src/ops/Conv2D.h | 32 +
compiler/mir-interpreter/src/ops/DeConv2D.cpp | 122 +
compiler/mir-interpreter/src/ops/DeConv2D.h | 41 +
.../mir-interpreter/src/ops/DepthwiseConv2D.cpp | 225 +
compiler/mir-interpreter/src/ops/DepthwiseConv2D.h | 32 +
compiler/mir-interpreter/src/ops/Div.cpp | 62 +
compiler/mir-interpreter/src/ops/Div.h | 29 +
compiler/mir-interpreter/src/ops/ELU.cpp | 51 +
compiler/mir-interpreter/src/ops/ELU.h | 29 +
compiler/mir-interpreter/src/ops/Equal.cpp | 58 +
compiler/mir-interpreter/src/ops/Equal.h | 29 +
compiler/mir-interpreter/src/ops/Fill.h | 48 +
.../mir-interpreter/src/ops/FullyConnected.cpp | 214 +
compiler/mir-interpreter/src/ops/FullyConnected.h | 32 +
compiler/mir-interpreter/src/ops/Gather.cpp | 92 +
compiler/mir-interpreter/src/ops/Gather.h | 31 +
compiler/mir-interpreter/src/ops/Greater.cpp | 57 +
compiler/mir-interpreter/src/ops/Greater.h | 29 +
compiler/mir-interpreter/src/ops/HardSwish.cpp | 54 +
compiler/mir-interpreter/src/ops/HardSwish.h | 29 +
compiler/mir-interpreter/src/ops/LeakyReLU.cpp | 49 +
compiler/mir-interpreter/src/ops/LeakyReLU.h | 29 +
compiler/mir-interpreter/src/ops/Less.cpp | 57 +
compiler/mir-interpreter/src/ops/Less.h | 29 +
compiler/mir-interpreter/src/ops/Max.cpp | 66 +
compiler/mir-interpreter/src/ops/Max.h | 29 +
compiler/mir-interpreter/src/ops/MaxPool2D.cpp | 157 +
compiler/mir-interpreter/src/ops/MaxPool2D.h | 31 +
compiler/mir-interpreter/src/ops/Mul.cpp | 61 +
compiler/mir-interpreter/src/ops/Mul.h | 29 +
compiler/mir-interpreter/src/ops/Pad.cpp | 84 +
compiler/mir-interpreter/src/ops/Pad.h | 36 +
compiler/mir-interpreter/src/ops/Quantization.cpp | 71 +
compiler/mir-interpreter/src/ops/Quantization.h | 32 +
.../mir-interpreter/src/ops/QuantizationHelpers.h | 126 +
compiler/mir-interpreter/src/ops/ReLU.cpp | 58 +
compiler/mir-interpreter/src/ops/ReLU.h | 29 +
compiler/mir-interpreter/src/ops/ReduceMean.cpp | 98 +
compiler/mir-interpreter/src/ops/ReduceMean.h | 30 +
compiler/mir-interpreter/src/ops/Reshape.cpp | 38 +
compiler/mir-interpreter/src/ops/Reshape.h | 29 +
compiler/mir-interpreter/src/ops/Sigmoid.cpp | 58 +
compiler/mir-interpreter/src/ops/Sigmoid.h | 29 +
compiler/mir-interpreter/src/ops/Slice.cpp | 52 +
compiler/mir-interpreter/src/ops/Slice.h | 29 +
compiler/mir-interpreter/src/ops/Softmax.cpp | 155 +
compiler/mir-interpreter/src/ops/Softmax.h | 29 +
compiler/mir-interpreter/src/ops/Sqrt.cpp | 58 +
compiler/mir-interpreter/src/ops/Sqrt.h | 29 +
compiler/mir-interpreter/src/ops/Sub.cpp | 61 +
compiler/mir-interpreter/src/ops/Sub.h | 29 +
compiler/mir-interpreter/src/ops/Tanh.cpp | 58 +
compiler/mir-interpreter/src/ops/Tanh.h | 29 +
compiler/mir-interpreter/src/ops/Transpose.cpp | 64 +
compiler/mir-interpreter/src/ops/Transpose.h | 31 +
compiler/mir-onnx-importer/AttributeHelpers.h | 105 +
compiler/mir-onnx-importer/CMakeLists.txt | 119 +
compiler/mir-onnx-importer/ConvPoolHelpers.cpp | 113 +
compiler/mir-onnx-importer/ConvPoolHelpers.h | 44 +
compiler/mir-onnx-importer/ONNXHelpers.cpp | 188 +
compiler/mir-onnx-importer/ONNXHelpers.h | 50 +
compiler/mir-onnx-importer/ONNXImporterImpl.cpp | 241 +
compiler/mir-onnx-importer/ONNXImporterImpl.h | 35 +
.../ONNXNodeConverterRegistry.cpp | 142 +
.../mir-onnx-importer/ONNXNodeConverterRegistry.h | 80 +
.../ONNXNodeConverterRegistry.test.cpp | 64 +
compiler/mir-onnx-importer/ONNXOpRegistration.h | 256 +
compiler/mir-onnx-importer/Op/Abs.cpp | 47 +
compiler/mir-onnx-importer/Op/Abs.h | 30 +
compiler/mir-onnx-importer/Op/Add.cpp | 53 +
compiler/mir-onnx-importer/Op/Add.h | 31 +
compiler/mir-onnx-importer/Op/AveragePool.cpp | 99 +
compiler/mir-onnx-importer/Op/AveragePool.h | 31 +
.../mir-onnx-importer/Op/BatchNormalization.cpp | 119 +
compiler/mir-onnx-importer/Op/BatchNormalization.h | 32 +
compiler/mir-onnx-importer/Op/Concat.cpp | 54 +
compiler/mir-onnx-importer/Op/Concat.h | 30 +
compiler/mir-onnx-importer/Op/Constant.cpp | 61 +
compiler/mir-onnx-importer/Op/Constant.h | 31 +
compiler/mir-onnx-importer/Op/Conv.cpp | 156 +
compiler/mir-onnx-importer/Op/Conv.h | 29 +
compiler/mir-onnx-importer/Op/ConvTranspose.cpp | 138 +
compiler/mir-onnx-importer/Op/ConvTranspose.h | 29 +
compiler/mir-onnx-importer/Op/Div.cpp | 38 +
compiler/mir-onnx-importer/Op/Div.h | 29 +
compiler/mir-onnx-importer/Op/Dropout.cpp | 54 +
compiler/mir-onnx-importer/Op/Dropout.h | 32 +
compiler/mir-onnx-importer/Op/Equal.cpp | 43 +
compiler/mir-onnx-importer/Op/Equal.h | 30 +
compiler/mir-onnx-importer/Op/Expand.cpp | 43 +
compiler/mir-onnx-importer/Op/Expand.h | 29 +
compiler/mir-onnx-importer/Op/Flatten.cpp | 58 +
compiler/mir-onnx-importer/Op/Flatten.h | 30 +
compiler/mir-onnx-importer/Op/Gather.cpp | 40 +
compiler/mir-onnx-importer/Op/Gather.h | 29 +
compiler/mir-onnx-importer/Op/Gemm.cpp | 120 +
compiler/mir-onnx-importer/Op/Gemm.h | 33 +
.../mir-onnx-importer/Op/GlobalAveragePool.cpp | 50 +
compiler/mir-onnx-importer/Op/GlobalAveragePool.h | 29 +
compiler/mir-onnx-importer/Op/Greater.cpp | 47 +
compiler/mir-onnx-importer/Op/Greater.h | 30 +
compiler/mir-onnx-importer/Op/Identity.cpp | 30 +
compiler/mir-onnx-importer/Op/Identity.h | 29 +
compiler/mir-onnx-importer/Op/Less.cpp | 47 +
compiler/mir-onnx-importer/Op/Less.h | 30 +
compiler/mir-onnx-importer/Op/MatMul.cpp | 50 +
compiler/mir-onnx-importer/Op/MatMul.h | 30 +
compiler/mir-onnx-importer/Op/Max.cpp | 54 +
compiler/mir-onnx-importer/Op/Max.h | 31 +
compiler/mir-onnx-importer/Op/MaxPool.cpp | 107 +
compiler/mir-onnx-importer/Op/MaxPool.h | 31 +
compiler/mir-onnx-importer/Op/Mul.cpp | 35 +
compiler/mir-onnx-importer/Op/Mul.h | 29 +
compiler/mir-onnx-importer/Op/Pad.cpp | 70 +
compiler/mir-onnx-importer/Op/Pad.h | 30 +
compiler/mir-onnx-importer/Op/Reciprocal.cpp | 53 +
compiler/mir-onnx-importer/Op/Reciprocal.h | 30 +
compiler/mir-onnx-importer/Op/ReduceMean.cpp | 60 +
compiler/mir-onnx-importer/Op/ReduceMean.h | 29 +
compiler/mir-onnx-importer/Op/Relu.cpp | 46 +
compiler/mir-onnx-importer/Op/Relu.h | 30 +
compiler/mir-onnx-importer/Op/Reshape.cpp | 97 +
compiler/mir-onnx-importer/Op/Reshape.h | 30 +
compiler/mir-onnx-importer/Op/Shape.cpp | 46 +
compiler/mir-onnx-importer/Op/Shape.h | 29 +
compiler/mir-onnx-importer/Op/Sigmoid.cpp | 46 +
compiler/mir-onnx-importer/Op/Sigmoid.h | 30 +
compiler/mir-onnx-importer/Op/Softmax.cpp | 40 +
compiler/mir-onnx-importer/Op/Softmax.h | 29 +
compiler/mir-onnx-importer/Op/Sqrt.cpp | 46 +
compiler/mir-onnx-importer/Op/Sqrt.h | 30 +
compiler/mir-onnx-importer/Op/Sub.cpp | 53 +
compiler/mir-onnx-importer/Op/Sub.h | 31 +
compiler/mir-onnx-importer/Op/Sum.cpp | 41 +
compiler/mir-onnx-importer/Op/Sum.h | 29 +
compiler/mir-onnx-importer/Op/Tanh.cpp | 46 +
compiler/mir-onnx-importer/Op/Tanh.h | 30 +
compiler/mir-onnx-importer/Op/Transpose.cpp | 57 +
compiler/mir-onnx-importer/Op/Transpose.h | 29 +
compiler/mir-onnx-importer/Op/Unsqueeze.cpp | 56 +
compiler/mir-onnx-importer/Op/Unsqueeze.h | 29 +
compiler/mir-onnx-importer/Op/Upsample.cpp | 124 +
compiler/mir-onnx-importer/Op/Upsample.h | 31 +
compiler/mir-onnx-importer/requires.cmake | 2 +
compiler/mir-tflite-importer/CMakeLists.txt | 22 +
compiler/mir-tflite-importer/requires.cmake | 1 +
compiler/mir-tflite-importer/schema/schema.fbs | 937 +
compiler/mir-tflite-importer/schema/schema.meta | 2 +
compiler/mir-tflite-importer/schema/schema_v0.fbs | 247 +
compiler/mir-tflite-importer/schema/schema_v0.meta | 2 +
compiler/mir-tflite-importer/schema/schema_v1.fbs | 295 +
compiler/mir-tflite-importer/schema/schema_v1.meta | 2 +
compiler/mir-tflite-importer/schema/schema_v2.fbs | 303 +
compiler/mir-tflite-importer/schema/schema_v2.meta | 2 +
compiler/mir-tflite-importer/schema/schema_v3.fbs | 326 +
compiler/mir-tflite-importer/schema/schema_v3.meta | 2 +
compiler/mir-tflite-importer/tflite_importer.cpp | 428 +
compiler/mir-tflite-importer/tflite_importer.h | 32 +
compiler/mir-tflite-importer/tflite_op_creator.cpp | 649 +
compiler/mir-tflite-importer/tflite_op_creator.h | 163 +
compiler/mir/CMakeLists.txt | 38 +
compiler/mir/Readme.md | 36 +
compiler/mir/include/mir/Attributes.h | 83 +
compiler/mir/include/mir/Common.h | 36 +
compiler/mir/include/mir/DataFormat.h | 90 +
compiler/mir/include/mir/DataType.h | 58 +
compiler/mir/include/mir/ExternalRegion.h | 44 +
compiler/mir/include/mir/Graph.h | 111 +
compiler/mir/include/mir/GraphPatternMatcher.h | 55 +
compiler/mir/include/mir/Index.h | 81 +
compiler/mir/include/mir/IrDotDumper.h | 31 +
compiler/mir/include/mir/OpDefs.h | 60 +
compiler/mir/include/mir/Operation.h | 188 +
compiler/mir/include/mir/Operations.inc | 59 +
compiler/mir/include/mir/Quantization.h | 47 +
compiler/mir/include/mir/Region.h | 37 +
compiler/mir/include/mir/Shape.h | 75 +
compiler/mir/include/mir/ShapeRange.h | 109 +
compiler/mir/include/mir/Tensor.h | 62 +
compiler/mir/include/mir/TensorType.h | 56 +
compiler/mir/include/mir/TensorUtil.h | 59 +
compiler/mir/include/mir/TensorVariant.h | 86 +
compiler/mir/include/mir/Visitor.h | 63 +
compiler/mir/include/mir/ops/AbsOp.h | 45 +
compiler/mir/include/mir/ops/AddOp.h | 41 +
compiler/mir/include/mir/ops/AvgPool2DOp.h | 68 +
compiler/mir/include/mir/ops/BinaryElementwiseOp.h | 42 +
compiler/mir/include/mir/ops/BroadcastOp.h | 47 +
compiler/mir/include/mir/ops/CappedReluOp.h | 50 +
compiler/mir/include/mir/ops/ConcatOp.h | 67 +
compiler/mir/include/mir/ops/ConstantOp.h | 52 +
compiler/mir/include/mir/ops/Conv2DOp.h | 73 +
compiler/mir/include/mir/ops/Deconv2DOp.h | 84 +
compiler/mir/include/mir/ops/DepthwiseConv2DOp.h | 72 +
compiler/mir/include/mir/ops/DequantizeOp.h | 46 +
compiler/mir/include/mir/ops/DivOp.h | 41 +
compiler/mir/include/mir/ops/EluOp.h | 49 +
compiler/mir/include/mir/ops/EqualOp.h | 44 +
compiler/mir/include/mir/ops/FullyConnectedOp.h | 58 +
compiler/mir/include/mir/ops/GatherOp.h | 57 +
compiler/mir/include/mir/ops/GreaterOp.h | 44 +
compiler/mir/include/mir/ops/HardSwishOp.h | 44 +
compiler/mir/include/mir/ops/InputOp.h | 49 +
compiler/mir/include/mir/ops/LeakyReluOp.h | 50 +
compiler/mir/include/mir/ops/LessOp.h | 44 +
compiler/mir/include/mir/ops/MaxOp.h | 41 +
compiler/mir/include/mir/ops/MaxPool2DOp.h | 66 +
compiler/mir/include/mir/ops/MulOp.h | 41 +
compiler/mir/include/mir/ops/OutputOp.h | 41 +
compiler/mir/include/mir/ops/PadOp.h | 58 +
compiler/mir/include/mir/ops/PaddingType.h | 37 +
compiler/mir/include/mir/ops/QuantizeOp.h | 44 +
compiler/mir/include/mir/ops/ReduceMeanOp.h | 45 +
compiler/mir/include/mir/ops/ReduceOp.h | 52 +
compiler/mir/include/mir/ops/ReluOp.h | 45 +
compiler/mir/include/mir/ops/ReshapeOp.h | 64 +
compiler/mir/include/mir/ops/ResizeOp.h | 87 +
compiler/mir/include/mir/ops/SigmoidOp.h | 45 +
compiler/mir/include/mir/ops/SliceOp.h | 55 +
compiler/mir/include/mir/ops/SoftmaxOp.h | 64 +
compiler/mir/include/mir/ops/SqrtOp.h | 44 +
compiler/mir/include/mir/ops/SqueezeOp.h | 56 +
compiler/mir/include/mir/ops/SubOp.h | 41 +
compiler/mir/include/mir/ops/TanhOp.h | 45 +
compiler/mir/include/mir/ops/TransposeOp.h | 54 +
compiler/mir/src/DotGraph.cpp | 41 +
compiler/mir/src/DotGraph.h | 55 +
compiler/mir/src/DotNodeBuilder.cpp | 205 +
compiler/mir/src/DotNodeBuilder.h | 70 +
compiler/mir/src/Graph.cpp | 136 +
compiler/mir/src/GraphPatternMatcher.cpp | 76 +
compiler/mir/src/Index.cpp | 50 +
compiler/mir/src/IrDotDumper.cpp | 41 +
compiler/mir/src/Operation.cpp | 87 +
compiler/mir/src/Shape.cpp | 87 +
compiler/mir/src/Tensor.cpp | 26 +
compiler/mir/src/TensorVariant.cpp | 74 +
compiler/mir/src/Visitor.cpp | 29 +
compiler/mir/src/ops/AvgPool2DOp.cpp | 60 +
compiler/mir/src/ops/BinaryElementwiseOp.cpp | 39 +
compiler/mir/src/ops/BroadcastOp.cpp | 35 +
compiler/mir/src/ops/ConcatOp.cpp | 40 +
compiler/mir/src/ops/Conv2DOp.cpp | 67 +
compiler/mir/src/ops/DeConv2DOp.cpp | 96 +
compiler/mir/src/ops/DepthwiseConv2DOp.cpp | 60 +
compiler/mir/src/ops/FullyConnectedOp.cpp | 46 +
compiler/mir/src/ops/GatherOp.cpp | 52 +
compiler/mir/src/ops/MaxPool2DOp.cpp | 60 +
compiler/mir/src/ops/PadOp.cpp | 40 +
compiler/mir/src/ops/ReduceOp.cpp | 61 +
compiler/mir/src/ops/SliceOp.cpp | 45 +
compiler/mir/src/ops/SqueezeOp.cpp | 81 +
compiler/mir/src/ops/TransposeOp.cpp | 43 +
compiler/mir/unittests/CMakeLists.txt | 16 +
compiler/mir/unittests/Index.cpp | 63 +
compiler/mir/unittests/NodeReplacer.cpp | 65 +
compiler/mir/unittests/Operation.cpp | 93 +
compiler/mir/unittests/ShapeInference.cpp | 203 +
compiler/mir/unittests/ShapeRange.cpp | 78 +
compiler/mir/unittests/TensorVariant.cpp | 39 +
compiler/mir2loco/CMakeLists.txt | 19 +
compiler/mir2loco/include/mir2loco.h | 58 +
compiler/mir2loco/requires.cmake | 2 +
compiler/mir2loco/src/mir2loco.cpp | 725 +
compiler/mir2loco/src/mir2loco.test.cpp | 736 +
compiler/moco-log/CMakeLists.txt | 9 +
compiler/moco-log/README.md | 3 +
compiler/moco-log/include/moco/Log.h | 75 +
compiler/moco-log/include/moco/LoggingContext.h | 35 +
compiler/moco-log/requires.cmake | 2 +
compiler/moco-log/src/Log.cpp | 87 +
compiler/moco-log/src/LoggingContext.cpp | 40 +
compiler/moco-tf/CMakeLists.txt | 51 +
compiler/moco-tf/README.md | 57 +
compiler/moco-tf/doc/Conversion.md | 140 +
compiler/moco-tf/include/moco/tf/Frontend.h | 54 +
compiler/moco-tf/requires.cmake | 13 +
compiler/moco-tf/src/BroadcastHelper.cpp | 226 +
compiler/moco-tf/src/BroadcastHelper.h | 76 +
compiler/moco-tf/src/BroadcastHelper.test.cpp | 88 +
.../moco-tf/src/CanonicalEltwiseInputConnector.cpp | 49 +
.../moco-tf/src/CanonicalEltwiseInputConnector.h | 60 +
.../src/Canonicalization/AddCanonicalizer.cpp | 35 +
.../src/Canonicalization/AddCanonicalizer.h | 47 +
.../src/Canonicalization/AvgPoolCanonicalizer.cpp | 114 +
.../src/Canonicalization/AvgPoolCanonicalizer.h | 47 +
.../src/Canonicalization/BiasAddCanonicalizer.cpp | 109 +
.../src/Canonicalization/BiasAddCanonicalizer.h | 47 +
.../src/Canonicalization/ConcatV2Canonicalizer.cpp | 160 +
.../src/Canonicalization/ConcatV2Canonicalizer.h | 47 +
.../src/Canonicalization/ConstCanonicalizer.cpp | 127 +
.../src/Canonicalization/ConstCanonicalizer.h | 47 +
.../Conv2DBackpropInputCanonicalizer.cpp | 371 +
.../Conv2DBackpropInputCanonicalizer.h | 45 +
.../src/Canonicalization/Conv2DCanonicalizer.cpp | 132 +
.../src/Canonicalization/Conv2DCanonicalizer.h | 47 +
.../DepthwiseConv2dNativeCanonicalizer.cpp | 137 +
.../DepthwiseConv2dNativeCanonicalizer.h | 45 +
.../src/Canonicalization/IdentityCanonicalizer.cpp | 78 +
.../src/Canonicalization/IdentityCanonicalizer.h | 47 +
.../src/Canonicalization/MaxPoolCanonicalizer.cpp | 111 +
.../src/Canonicalization/MaxPoolCanonicalizer.h | 47 +
.../src/Canonicalization/MaximumCanonicalizer.cpp | 34 +
.../src/Canonicalization/MaximumCanonicalizer.h | 47 +
.../src/Canonicalization/MeanCanonicalizer.cpp | 31 +
.../src/Canonicalization/MeanCanonicalizer.h | 47 +
.../src/Canonicalization/MulCanonicalizer.cpp | 34 +
.../src/Canonicalization/MulCanonicalizer.h | 47 +
.../src/Canonicalization/PadCanonicalizer.cpp | 100 +
.../src/Canonicalization/PadCanonicalizer.h | 45 +
.../Canonicalization/PlaceholderCanonicalizer.cpp | 102 +
.../Canonicalization/PlaceholderCanonicalizer.h | 47 +
.../src/Canonicalization/RealDivCanonicalizer.cpp | 34 +
.../src/Canonicalization/RealDivCanonicalizer.h | 47 +
.../src/Canonicalization/Relu6Canonicalizer.cpp | 70 +
.../src/Canonicalization/Relu6Canonicalizer.h | 47 +
.../src/Canonicalization/ReluCanonicalizer.cpp | 70 +
.../src/Canonicalization/ReluCanonicalizer.h | 47 +
.../src/Canonicalization/ReshapeCanonicalizer.cpp | 169 +
.../src/Canonicalization/ReshapeCanonicalizer.h | 47 +
.../src/Canonicalization/RsqrtCanonicalizer.cpp | 150 +
.../src/Canonicalization/RsqrtCanonicalizer.h | 47 +
.../src/Canonicalization/SoftmaxCanonicalizer.cpp | 78 +
.../src/Canonicalization/SoftmaxCanonicalizer.h | 47 +
.../src/Canonicalization/SqrtCanonicalizer.cpp | 68 +
.../src/Canonicalization/SqrtCanonicalizer.h | 47 +
.../src/Canonicalization/SqueezeCanonicalizer.cpp | 86 +
.../src/Canonicalization/SqueezeCanonicalizer.h | 49 +
.../Canonicalization/StopGradientCanonicalizer.cpp | 71 +
.../Canonicalization/StopGradientCanonicalizer.h | 47 +
.../src/Canonicalization/SubCanonicalizer.cpp | 34 +
.../src/Canonicalization/SubCanonicalizer.h | 47 +
.../src/Canonicalization/TFPushCanonicalizer.cpp | 74 +
.../src/Canonicalization/TFPushCanonicalizer.h | 47 +
.../src/Canonicalization/TanhCanonicalizer.cpp | 70 +
.../src/Canonicalization/TanhCanonicalizer.h | 47 +
compiler/moco-tf/src/Canonicalizer.cpp | 142 +
compiler/moco-tf/src/Canonicalizer.h | 36 +
compiler/moco-tf/src/Canonicalizer.test.cpp | 33 +
compiler/moco-tf/src/CodecHelper.h | 74 +
compiler/moco-tf/src/Convert.cpp | 34 +
compiler/moco-tf/src/Convert.h | 31 +
compiler/moco-tf/src/Convert.test.cpp | 29 +
compiler/moco-tf/src/Frontend.cpp | 277 +
compiler/moco-tf/src/Frontend.test.cpp | 84 +
compiler/moco-tf/src/Knob.cpp | 123 +
compiler/moco-tf/src/Knob.h | 47 +
compiler/moco-tf/src/Knob.lst | 39 +
compiler/moco-tf/src/LogHelper.cpp | 82 +
compiler/moco-tf/src/LogHelper.h | 73 +
compiler/moco-tf/src/Op/COpCall.cpp | 126 +
compiler/moco-tf/src/Op/COpCall.h | 46 +
compiler/moco-tf/src/Op/COpCall.test.cpp | 121 +
compiler/moco-tf/src/Optimizer.cpp | 90 +
compiler/moco-tf/src/Optimizer.h | 36 +
compiler/moco-tf/src/Optimizer.test.cpp | 87 +
compiler/moco-tf/src/ProgressReporter.cpp | 88 +
compiler/moco-tf/src/ProgressReporter.h | 56 +
compiler/moco-tf/src/SimpleNodeTransform.h | 64 +
compiler/moco-tf/src/SimpleNodeTransform.test.cpp | 56 +
.../moco-tf/src/TFEltwiseBinaryCanonicalzeHelper.h | 117 +
compiler/moco-tf/src/TFFormattedGraph.cpp | 400 +
compiler/moco-tf/src/TFFormattedGraph.h | 59 +
compiler/moco-tf/src/TFOptimizer.cpp | 81 +
compiler/moco-tf/src/TFOptimizer.h | 36 +
compiler/moco-tf/src/TFOptimizer.test.cpp | 33 +
compiler/moco-tf/src/TFReduceCanonicalzeHelper.h | 118 +
compiler/moco-tf/src/TestHelper.h | 113 +
compiler/moco-tf/src/TestHelper.test.cpp | 121 +
compiler/moco-tf/src/Transform.cpp | 35 +
compiler/moco-tf/src/Transform.h | 44 +
compiler/moco-tf/src/Transform.test.cpp | 46 +
compiler/moco-tf/src/Transforms.h | 26 +
.../moco-tf/src/Transforms/ShapeInferencePass.cpp | 56 +
.../moco-tf/src/Transforms/ShapeInferencePass.h | 44 +
.../moco-tf/src/Transforms/TypeInferencePass.cpp | 54 +
.../moco-tf/src/Transforms/TypeInferencePass.h | 44 +
compiler/moco-value-pbtxt-test/.gitignore | 1 +
compiler/moco-value-pbtxt-test/CMakeLists.txt | 136 +
compiler/moco-value-pbtxt-test/README.md | 1 +
compiler/moco-value-pbtxt-test/requires.cmake | 2 +
compiler/moco-value-pbtxt-test/runall.sh | 96 +
compiler/moco-value-pbtxt-test/test.lst | 103 +
compiler/moco/CMakeLists.txt | 5 +
compiler/moco/README.md | 3 +
compiler/moco/import/CMakeLists.txt | 26 +
compiler/moco/import/README.md | 3 +
compiler/moco/import/include/moco/GraphHelper.h | 59 +
.../moco/import/include/moco/Import/GraphBuilder.h | 40 +
.../include/moco/Import/GraphBuilderContext.h | 144 +
.../include/moco/Import/GraphBuilderRegistry.h | 87 +
.../import/include/moco/Import/ModelSignature.h | 80 +
compiler/moco/import/include/moco/Import/Nodes.h | 53 +
.../moco/import/include/moco/Import/Nodes/Add.h | 37 +
.../import/include/moco/Import/Nodes/AvgPool.h | 34 +
.../import/include/moco/Import/Nodes/BiasAdd.h | 34 +
.../moco/import/include/moco/Import/Nodes/Concat.h | 34 +
.../moco/import/include/moco/Import/Nodes/Const.h | 34 +
.../moco/import/include/moco/Import/Nodes/Conv2D.h | 34 +
.../moco/Import/Nodes/Conv2DBackpropInput.h | 37 +
.../moco/Import/Nodes/DepthwiseConv2dNative.h | 37 +
.../moco/Import/Nodes/FakeQuantWithMinMaxVars.h | 37 +
.../include/moco/Import/Nodes/FusedBatchNorm.h | 37 +
.../import/include/moco/Import/Nodes/Identity.h | 34 +
.../import/include/moco/Import/Nodes/MaxPool.h | 34 +
.../import/include/moco/Import/Nodes/Maximum.h | 37 +
.../moco/import/include/moco/Import/Nodes/Mean.h | 37 +
.../moco/import/include/moco/Import/Nodes/Mul.h | 37 +
.../moco/import/include/moco/Import/Nodes/Pack.h | 34 +
.../moco/import/include/moco/Import/Nodes/Pad.h | 37 +
.../import/include/moco/Import/Nodes/Placeholder.h | 37 +
.../import/include/moco/Import/Nodes/RealDiv.h | 37 +
.../moco/import/include/moco/Import/Nodes/Relu.h | 37 +
.../moco/import/include/moco/Import/Nodes/Relu6.h | 37 +
.../import/include/moco/Import/Nodes/Reshape.h | 37 +
.../moco/import/include/moco/Import/Nodes/Rsqrt.h | 37 +
.../moco/import/include/moco/Import/Nodes/Shape.h | 37 +
.../import/include/moco/Import/Nodes/Softmax.h | 37 +
.../moco/import/include/moco/Import/Nodes/Sqrt.h | 37 +
.../include/moco/Import/Nodes/SquaredDifference.h | 37 +
.../import/include/moco/Import/Nodes/Squeeze.h | 37 +
.../include/moco/Import/Nodes/StopGradient.h | 37 +
.../include/moco/Import/Nodes/StridedSlice.h | 34 +
.../moco/import/include/moco/Import/Nodes/Sub.h | 37 +
.../moco/import/include/moco/Import/Nodes/Tanh.h | 37 +
compiler/moco/import/include/moco/Importer.h | 54 +
compiler/moco/import/src/Convert.cpp | 34 +
compiler/moco/import/src/Convert.h | 31 +
compiler/moco/import/src/GraphBuilderContext.cpp | 80 +
.../moco/import/src/GraphBuilderContext.test.cpp | 77 +
compiler/moco/import/src/GraphBuilderRegistry.cpp | 63 +
compiler/moco/import/src/Importer.cpp | 197 +
compiler/moco/import/src/Importer.test.cpp | 223 +
compiler/moco/import/src/ModelSignature.cpp | 66 +
compiler/moco/import/src/Nodes/Add.cpp | 85 +
compiler/moco/import/src/Nodes/Add.test.cpp | 58 +
compiler/moco/import/src/Nodes/AvgPool.cpp | 140 +
compiler/moco/import/src/Nodes/AvgPool.test.cpp | 99 +
compiler/moco/import/src/Nodes/BiasAdd.cpp | 122 +
compiler/moco/import/src/Nodes/BiasAdd.test.cpp | 112 +
compiler/moco/import/src/Nodes/Concat.cpp | 109 +
compiler/moco/import/src/Nodes/Concat.test.cpp | 134 +
compiler/moco/import/src/Nodes/Const.cpp | 242 +
compiler/moco/import/src/Nodes/Const.test.cpp | 465 +
compiler/moco/import/src/Nodes/Conv2D.cpp | 139 +
compiler/moco/import/src/Nodes/Conv2D.test.cpp | 119 +
.../moco/import/src/Nodes/Conv2DBackpropInput.cpp | 140 +
.../import/src/Nodes/Conv2DBackpropInput.test.cpp | 98 +
.../import/src/Nodes/DepthwiseConv2dNative.cpp | 148 +
.../src/Nodes/DepthwiseConv2dNative.test.cpp | 97 +
.../import/src/Nodes/FakeQuantWithMinMaxVars.cpp | 123 +
.../src/Nodes/FakeQuantWithMinMaxVars.test.cpp | 65 +
compiler/moco/import/src/Nodes/FusedBatchNorm.cpp | 102 +
.../moco/import/src/Nodes/FusedBatchNorm.test.cpp | 88 +
compiler/moco/import/src/Nodes/Identity.cpp | 95 +
compiler/moco/import/src/Nodes/MaxPool.cpp | 145 +
compiler/moco/import/src/Nodes/MaxPool.test.cpp | 98 +
compiler/moco/import/src/Nodes/Maximum.cpp | 87 +
compiler/moco/import/src/Nodes/Maximum.test.cpp | 58 +
compiler/moco/import/src/Nodes/Mean.cpp | 99 +
compiler/moco/import/src/Nodes/Mean.test.cpp | 120 +
compiler/moco/import/src/Nodes/Mul.cpp | 85 +
compiler/moco/import/src/Nodes/Mul.test.cpp | 58 +
compiler/moco/import/src/Nodes/Pack.cpp | 102 +
compiler/moco/import/src/Nodes/Pack.test.cpp | 84 +
compiler/moco/import/src/Nodes/Pad.cpp | 91 +
compiler/moco/import/src/Nodes/Pad.test.cpp | 65 +
compiler/moco/import/src/Nodes/Placeholder.cpp | 90 +
.../moco/import/src/Nodes/Placeholder.test.cpp | 71 +
compiler/moco/import/src/Nodes/RealDiv.cpp | 86 +
compiler/moco/import/src/Nodes/RealDiv.test.cpp | 58 +
compiler/moco/import/src/Nodes/Relu.cpp | 86 +
compiler/moco/import/src/Nodes/Relu.test.cpp | 58 +
compiler/moco/import/src/Nodes/Relu6.cpp | 80 +
compiler/moco/import/src/Nodes/Relu6.test.cpp | 58 +
compiler/moco/import/src/Nodes/Reshape.cpp | 102 +
compiler/moco/import/src/Nodes/Reshape.test.cpp | 61 +
compiler/moco/import/src/Nodes/Rsqrt.cpp | 82 +
compiler/moco/import/src/Nodes/Rsqrt.test.cpp | 57 +
compiler/moco/import/src/Nodes/Shape.cpp | 100 +
compiler/moco/import/src/Nodes/Shape.test.cpp | 65 +
compiler/moco/import/src/Nodes/Softmax.cpp | 86 +
compiler/moco/import/src/Nodes/Softmax.test.cpp | 58 +
compiler/moco/import/src/Nodes/Sqrt.cpp | 81 +
compiler/moco/import/src/Nodes/Sqrt.test.cpp | 57 +
.../moco/import/src/Nodes/SquaredDifference.cpp | 92 +
.../import/src/Nodes/SquaredDifference.test.cpp | 59 +
compiler/moco/import/src/Nodes/Squeeze.cpp | 112 +
compiler/moco/import/src/Nodes/Squeeze.test.cpp | 109 +
compiler/moco/import/src/Nodes/StopGradient.cpp | 87 +
.../moco/import/src/Nodes/StopGradient.test.cpp | 57 +
compiler/moco/import/src/Nodes/StridedSlice.cpp | 187 +
.../moco/import/src/Nodes/StridedSlice.test.cpp | 107 +
compiler/moco/import/src/Nodes/Sub.cpp | 85 +
compiler/moco/import/src/Nodes/Sub.test.cpp | 58 +
compiler/moco/import/src/Nodes/Tanh.cpp | 81 +
compiler/moco/import/src/Nodes/Tanh.test.cpp | 57 +
compiler/moco/import/src/TestHelper.h | 83 +
compiler/moco/import/src/TestHelper.test.cpp | 101 +
compiler/moco/lang/CMakeLists.txt | 21 +
compiler/moco/lang/README.md | 3 +
compiler/moco/lang/include/moco/IR/Nodes/TFAdd.h | 56 +
.../moco/lang/include/moco/IR/Nodes/TFAvgPool.h | 101 +
.../moco/lang/include/moco/IR/Nodes/TFBiasAdd.h | 68 +
.../moco/lang/include/moco/IR/Nodes/TFConcatV2.h | 90 +
compiler/moco/lang/include/moco/IR/Nodes/TFConst.h | 94 +
.../moco/lang/include/moco/IR/Nodes/TFConv2D.h | 55 +
.../include/moco/IR/Nodes/TFConv2DBackpropInput.h | 102 +
.../moco/IR/Nodes/TFDepthwiseConv2dNative.h | 56 +
.../moco/IR/Nodes/TFFakeQuantWithMinMaxVars.h | 54 +
.../lang/include/moco/IR/Nodes/TFFusedBatchNorm.h | 55 +
.../moco/lang/include/moco/IR/Nodes/TFIdentity.h | 52 +
.../moco/lang/include/moco/IR/Nodes/TFMaxPool.h | 101 +
.../moco/lang/include/moco/IR/Nodes/TFMaximum.h | 56 +
compiler/moco/lang/include/moco/IR/Nodes/TFMean.h | 71 +
compiler/moco/lang/include/moco/IR/Nodes/TFMul.h | 56 +
compiler/moco/lang/include/moco/IR/Nodes/TFPack.h | 86 +
compiler/moco/lang/include/moco/IR/Nodes/TFPad.h | 61 +
.../lang/include/moco/IR/Nodes/TFPlaceholder.h | 90 +
compiler/moco/lang/include/moco/IR/Nodes/TFPush.h | 84 +
.../moco/lang/include/moco/IR/Nodes/TFRealDiv.h | 56 +
compiler/moco/lang/include/moco/IR/Nodes/TFRelu.h | 52 +
compiler/moco/lang/include/moco/IR/Nodes/TFRelu6.h | 50 +
.../moco/lang/include/moco/IR/Nodes/TFReshape.h | 54 +
compiler/moco/lang/include/moco/IR/Nodes/TFRsqrt.h | 52 +
compiler/moco/lang/include/moco/IR/Nodes/TFShape.h | 60 +
.../moco/lang/include/moco/IR/Nodes/TFSoftmax.h | 37 +
compiler/moco/lang/include/moco/IR/Nodes/TFSqrt.h | 52 +
.../include/moco/IR/Nodes/TFSquaredDifference.h | 56 +
.../moco/lang/include/moco/IR/Nodes/TFSqueeze.h | 71 +
.../lang/include/moco/IR/Nodes/TFStopGradient.h | 52 +
.../lang/include/moco/IR/Nodes/TFStridedSlice.h | 123 +
compiler/moco/lang/include/moco/IR/Nodes/TFSub.h | 56 +
compiler/moco/lang/include/moco/IR/Nodes/TFTanh.h | 37 +
compiler/moco/lang/include/moco/IR/TFDataLayout.h | 29 +
compiler/moco/lang/include/moco/IR/TFDialect.h | 43 +
compiler/moco/lang/include/moco/IR/TFNode.h | 23 +
compiler/moco/lang/include/moco/IR/TFNodeDecl.h | 104 +
compiler/moco/lang/include/moco/IR/TFNodeImpl.h | 68 +
.../lang/include/moco/IR/TFNodeVisitor.forward.h | 30 +
compiler/moco/lang/include/moco/IR/TFNodeVisitor.h | 83 +
compiler/moco/lang/include/moco/IR/TFNodes.h | 55 +
compiler/moco/lang/include/moco/IR/TFNodes.lst | 48 +
compiler/moco/lang/include/moco/IR/TFOpcode.h | 35 +
compiler/moco/lang/include/moco/IR/TFPadding.h | 29 +
.../moco/lang/include/moco/IR/VariadicArityNode.h | 77 +
compiler/moco/lang/include/moco/Names.h | 96 +
compiler/moco/lang/src/IR/Nodes/TFAdd.test.cpp | 31 +
compiler/moco/lang/src/IR/Nodes/TFAvgPool.test.cpp | 34 +
compiler/moco/lang/src/IR/Nodes/TFBiasAdd.test.cpp | 32 +
.../moco/lang/src/IR/Nodes/TFConcatV2.test.cpp | 34 +
compiler/moco/lang/src/IR/Nodes/TFConst.cpp | 113 +
compiler/moco/lang/src/IR/Nodes/TFConst.test.cpp | 95 +
compiler/moco/lang/src/IR/Nodes/TFConv2D.test.cpp | 34 +
.../src/IR/Nodes/TFConv2DBackpropInput.test.cpp | 35 +
.../src/IR/Nodes/TFDepthwiseConv2dNative.test.cpp | 34 +
.../IR/Nodes/TFFakeQuantWithMinMaxVars.test.cpp | 34 +
.../lang/src/IR/Nodes/TFFusedBatchNorm.test.cpp | 35 +
.../moco/lang/src/IR/Nodes/TFIdentity.test.cpp | 30 +
compiler/moco/lang/src/IR/Nodes/TFMaxPool.test.cpp | 34 +
compiler/moco/lang/src/IR/Nodes/TFMaximum.test.cpp | 31 +
compiler/moco/lang/src/IR/Nodes/TFMean.test.cpp | 32 +
compiler/moco/lang/src/IR/Nodes/TFMul.test.cpp | 31 +
compiler/moco/lang/src/IR/Nodes/TFPack.test.cpp | 34 +
compiler/moco/lang/src/IR/Nodes/TFPad.test.cpp | 31 +
.../moco/lang/src/IR/Nodes/TFPlaceholder.test.cpp | 46 +
compiler/moco/lang/src/IR/Nodes/TFRealDiv.test.cpp | 31 +
compiler/moco/lang/src/IR/Nodes/TFRelu.test.cpp | 30 +
compiler/moco/lang/src/IR/Nodes/TFRelu6.test.cpp | 30 +
compiler/moco/lang/src/IR/Nodes/TFReshape.test.cpp | 31 +
compiler/moco/lang/src/IR/Nodes/TFRsqrt.test.cpp | 30 +
compiler/moco/lang/src/IR/Nodes/TFShape.test.cpp | 31 +
compiler/moco/lang/src/IR/Nodes/TFSoftmax.test.cpp | 30 +
compiler/moco/lang/src/IR/Nodes/TFSqrt.test.cpp | 30 +
.../lang/src/IR/Nodes/TFSquaredDifference.test.cpp | 31 +
compiler/moco/lang/src/IR/Nodes/TFSqueeze.test.cpp | 31 +
.../moco/lang/src/IR/Nodes/TFStopGradient.test.cpp | 30 +
.../moco/lang/src/IR/Nodes/TFStridedSlice.test.cpp | 38 +
compiler/moco/lang/src/IR/Nodes/TFSub.test.cpp | 31 +
compiler/moco/lang/src/IR/Nodes/TFTanh.test.cpp | 30 +
compiler/moco/lang/src/IR/TFDialect.cpp | 91 +
compiler/moco/lang/src/IR/TFDialect.test.cpp | 29 +
compiler/moco/lang/src/IR/TFNode.cpp | 137 +
compiler/moco/lang/src/IR/TFNode.test.cpp | 44 +
.../moco/lang/src/IR/VariadicArityNode.test.cpp | 55 +
compiler/moco/pass/CMakeLists.txt | 26 +
compiler/moco/pass/README.md | 3 +
compiler/moco/pass/include/moco/Pass/Passes.h | 32 +
.../include/moco/Pass/Passes/ConstantFoldAdd.h | 41 +
.../include/moco/Pass/Passes/ConstantFoldMul.h | 41 +
.../include/moco/Pass/Passes/ConstantFoldPack.h | 43 +
.../moco/Pass/Passes/ConstantFoldStridedSlice.h | 41 +
.../moco/Pass/Passes/FuseBinaryIntoPreceding.h | 41 +
.../moco/Pass/Passes/RemoveTFIdentityNode.h | 49 +
.../moco/Pass/Passes/ResolveConstantShape.h | 41 +
.../moco/Pass/Passes/ResolveFusedBatchNorm.h | 41 +
.../moco/Pass/Passes/ResolveReshapeWildcardDim.h | 42 +
.../moco/Pass/Passes/ResolveSquaredDifference.h | 41 +
.../include/moco/Pass/Passes/SqueezeReduceNode.h | 42 +
compiler/moco/pass/src/ConstantFoldAdd.test.cpp | 109 +
compiler/moco/pass/src/ConstantFoldHelper.cpp | 238 +
compiler/moco/pass/src/ConstantFoldHelper.h | 64 +
compiler/moco/pass/src/ConstantFoldMul.test.cpp | 109 +
compiler/moco/pass/src/ConstantFoldPack.test.cpp | 90 +
.../pass/src/ConstantFoldStridedSlice.test.cpp | 268 +
compiler/moco/pass/src/Passes/ConstantFoldAdd.cpp | 116 +
compiler/moco/pass/src/Passes/ConstantFoldMul.cpp | 116 +
compiler/moco/pass/src/Passes/ConstantFoldPack.cpp | 191 +
.../pass/src/Passes/ConstantFoldStridedSlice.cpp | 292 +
.../pass/src/Passes/FuseBinaryIntoPreceding.cpp | 539 +
.../moco/pass/src/Passes/RemoveTFIdentityNode.cpp | 66 +
.../moco/pass/src/Passes/ResolveConstantShape.cpp | 129 +
.../moco/pass/src/Passes/ResolveFusedBatchNorm.cpp | 254 +
.../pass/src/Passes/ResolveReshapeWildcardDim.cpp | 153 +
.../pass/src/Passes/ResolveSquaredDifference.cpp | 97 +
.../moco/pass/src/Passes/SqueezeReduceNode.cpp | 105 +
compiler/moco/pass/src/TensorPackEnumerator.cpp | 134 +
compiler/moco/pass/src/TensorPackEnumerator.h | 66 +
compiler/moco/pass/src/TensorSliceEnumerator.cpp | 84 +
compiler/moco/pass/src/TensorSliceEnumerator.h | 62 +
.../moco/pass/src/TensorSliceEnumerator.test.cpp | 83 +
compiler/moco/pass/src/TestHelper.h | 67 +
compiler/moco/pass/src/TestHelper.test.cpp | 38 +
compiler/moco/requires.cmake | 8 +
compiler/moco/service/CMakeLists.txt | 24 +
compiler/moco/service/README.md | 3 +
.../include/moco/Service/TFShapeInferenceRule.h | 38 +
.../include/moco/Service/TFTypeInferenceRule.h | 36 +
.../service/src/Service/TFShapeInferenceRule.cpp | 891 +
.../src/Service/TFShapeInferenceRule.test.cpp | 500 +
.../service/src/Service/TFTypeInferenceRule.cpp | 113 +
compiler/moco/service/src/TestHelper.h | 69 +
compiler/moco/service/src/TestHelper.test.cpp | 38 +
compiler/moco/support/CMakeLists.txt | 9 +
compiler/moco/support/README.md | 3 +
.../moco/support/include/moco/Support/NodeAs.h | 29 +
.../include/moco/Support/TFShapeInferenceHelper.h | 221 +
.../moco/support/src/TFShapeInferenceHelper.cpp | 354 +
compiler/morph/CMakeLists.txt | 20 +
compiler/morph/README.md | 3 +
compiler/morph/include/morph/caffe.h | 38 +
compiler/morph/include/morph/dims.h | 33 +
compiler/morph/include/morph/nnapi.h | 38 +
compiler/morph/include/morph/tflite.h | 38 +
compiler/morph/requires.cmake | 1 +
compiler/morph/src/caffe.cpp | 68 +
compiler/morph/src/caffe.test.cpp | 65 +
compiler/morph/src/dims.cpp | 36 +
compiler/morph/src/dims.test.cpp | 32 +
compiler/morph/src/nnapi.cpp | 68 +
compiler/morph/src/nnapi.test.cpp | 65 +
compiler/morph/src/tflite.cpp | 68 +
compiler/morph/src/tflite.test.cpp | 65 +
compiler/nest/CMakeLists.txt | 1 +
compiler/nest/README.md | 8 +
compiler/nest/core/CMakeLists.txt | 27 +
compiler/nest/core/examples/conv2d.cpp | 152 +
compiler/nest/core/include/nest/Block.h | 46 +
compiler/nest/core/include/nest/Bound.h | 47 +
compiler/nest/core/include/nest/Closure.h | 49 +
compiler/nest/core/include/nest/Domain.h | 54 +
compiler/nest/core/include/nest/DomainContext.h | 45 +
compiler/nest/core/include/nest/DomainID.h | 54 +
compiler/nest/core/include/nest/DomainInfo.h | 48 +
compiler/nest/core/include/nest/Expr.h | 44 +
compiler/nest/core/include/nest/FV.h | 39 +
compiler/nest/core/include/nest/Level.h | 45 +
compiler/nest/core/include/nest/Module.h | 70 +
compiler/nest/core/include/nest/Ret.h | 49 +
compiler/nest/core/include/nest/Schedule.h | 52 +
compiler/nest/core/include/nest/Stmt.h | 34 +
compiler/nest/core/include/nest/Var.h | 49 +
compiler/nest/core/include/nest/VarContext.h | 46 +
compiler/nest/core/include/nest/VarID.h | 54 +
compiler/nest/core/include/nest/expr/AddNode.h | 53 +
compiler/nest/core/include/nest/expr/DerefNode.h | 54 +
compiler/nest/core/include/nest/expr/Forward.h | 34 +
compiler/nest/core/include/nest/expr/Macro.h | 28 +
compiler/nest/core/include/nest/expr/MulNode.h | 53 +
compiler/nest/core/include/nest/expr/Node.def | 9 +
compiler/nest/core/include/nest/expr/Node.h | 62 +
compiler/nest/core/include/nest/expr/Subscript.h | 53 +
compiler/nest/core/include/nest/expr/VarNode.h | 52 +
compiler/nest/core/include/nest/expr/Visitor.h | 40 +
compiler/nest/core/include/nest/stmt/Forward.h | 34 +
compiler/nest/core/include/nest/stmt/Macro.h | 28 +
compiler/nest/core/include/nest/stmt/Node.def | 6 +
compiler/nest/core/include/nest/stmt/Node.h | 62 +
compiler/nest/core/include/nest/stmt/PushNode.h | 49 +
compiler/nest/core/include/nest/stmt/Visitor.h | 40 +
compiler/nest/core/src/Block.test.cpp | 41 +
compiler/nest/core/src/Bound.test.cpp | 27 +
compiler/nest/core/src/Closure.cpp | 24 +
compiler/nest/core/src/Closure.test.cpp | 45 +
compiler/nest/core/src/Domain.test.cpp | 41 +
compiler/nest/core/src/DomainContext.cpp | 38 +
compiler/nest/core/src/DomainContext.test.cpp | 56 +
compiler/nest/core/src/DomainID.cpp | 30 +
compiler/nest/core/src/DomainID.test.cpp | 38 +
compiler/nest/core/src/DomainInfo.test.cpp | 30 +
compiler/nest/core/src/Expr.cpp | 27 +
compiler/nest/core/src/Expr.test.cpp | 58 +
compiler/nest/core/src/FV.cpp | 75 +
compiler/nest/core/src/FV.test.cpp | 75 +
compiler/nest/core/src/Level.cpp | 48 +
compiler/nest/core/src/Level.test.cpp | 39 +
compiler/nest/core/src/Module.cpp | 44 +
compiler/nest/core/src/Module.test.cpp | 99 +
compiler/nest/core/src/Ret.test.cpp | 58 +
compiler/nest/core/src/Schedule.cpp | 51 +
compiler/nest/core/src/Schedule.test.cpp | 44 +
compiler/nest/core/src/Var.cpp | 24 +
compiler/nest/core/src/Var.test.cpp | 38 +
compiler/nest/core/src/VarContext.cpp | 36 +
compiler/nest/core/src/VarContext.test.cpp | 82 +
compiler/nest/core/src/VarID.cpp | 30 +
compiler/nest/core/src/VarID.test.cpp | 38 +
compiler/nest/core/src/expr/AddNode.test.cpp | 43 +
compiler/nest/core/src/expr/DerefNode.test.cpp | 39 +
compiler/nest/core/src/expr/Macro.cpp | 21 +
compiler/nest/core/src/expr/MulNode.test.cpp | 43 +
compiler/nest/core/src/expr/Node.cpp | 21 +
compiler/nest/core/src/expr/Subscript.test.cpp | 37 +
compiler/nest/core/src/expr/VarNode.test.cpp | 47 +
compiler/nest/core/src/expr/Visitor.cpp | 21 +
compiler/nest/core/src/stmt/Macro.cpp | 21 +
compiler/nest/core/src/stmt/Node.cpp | 21 +
compiler/nest/core/src/stmt/PushNode.test.cpp | 37 +
compiler/nest/core/src/stmt/Visitor.cpp | 21 +
compiler/nike/CMakeLists.txt | 15 +
compiler/nike/README.md | 4 +
compiler/nike/include/nike/AbsoluteEpsilonEqual.h | 50 +
compiler/nike/include/nike/RelativeEpsilonEqual.h | 50 +
compiler/nike/src/AbsoluteEpsilonEqual.cpp | 42 +
compiler/nike/src/AbsoluteEpsilonEqual.test.cpp | 31 +
compiler/nike/src/RelativeEpsilonEqual.cpp | 46 +
compiler/nike/src/RelativeEpsilonEqual.test.cpp | 39 +
compiler/nnc/CMakeLists.txt | 42 +
compiler/nnc/README.md | 58 +
compiler/nnc/backends/CMakeLists.txt | 3 +
.../acl_soft_backend/AclArtifactUtilities.in | 29 +
.../backends/acl_soft_backend/AclCppGenerator.cpp | 76 +
.../acl_soft_backend/AclCppOpGenerator.cpp | 1000 +
.../backends/acl_soft_backend/AclCppOpGenerator.h | 387 +
.../acl_soft_backend/ArtifactGeneratorCppCode.cpp | 302 +
.../acl_soft_backend/ArtifactGeneratorCppCode.h | 64 +
.../acl_soft_backend/ArtifactGeneratorCppDecl.cpp | 173 +
.../acl_soft_backend/ArtifactGeneratorCppDecl.h | 64 +
.../nnc/backends/acl_soft_backend/ArtifactIndent.h | 63 +
.../backends/acl_soft_backend/ArtifactModel.cpp | 119 +
.../nnc/backends/acl_soft_backend/ArtifactModel.h | 859 +
.../nnc/backends/acl_soft_backend/CMakeLists.txt | 14 +
.../backends/acl_soft_backend/IArtifactGenerator.h | 80 +
compiler/nnc/backends/interpreter/CMakeLists.txt | 11 +
.../backends/interpreter/InterpreterBackend.cpp | 171 +
compiler/nnc/backends/soft_backend/CMakeLists.txt | 14 +
.../nnc/backends/soft_backend/CPPGenerator.cpp | 489 +
compiler/nnc/backends/soft_backend/CommonData.def | 41 +
.../nnc/backends/soft_backend/ModelAnalyzer.cpp | 452 +
compiler/nnc/backends/soft_backend/ModelAnalyzer.h | 207 +
.../nnc/backends/soft_backend/SBSerializer.cpp | 414 +
compiler/nnc/backends/soft_backend/SBSerializer.h | 134 +
compiler/nnc/backends/soft_backend/SequencedIR.cpp | 17 +
compiler/nnc/backends/soft_backend/SequencedIR.h | 144 +
.../soft_backend/code_snippets/cpp_broadcast.def | 73 +
.../soft_backend/code_snippets/cpp_capped_relu.def | 24 +
.../code_snippets/cpp_common_funcs.def | 750 +
.../soft_backend/code_snippets/cpp_concat.def | 45 +
.../soft_backend/code_snippets/cpp_conv.def | 237 +
.../code_snippets/cpp_conv_transpose.def | 111 +
.../code_snippets/cpp_depthwise_conv.def | 1029 +
.../soft_backend/code_snippets/cpp_elementwise.def | 273 +
.../soft_backend/code_snippets/cpp_elu.def | 29 +
.../code_snippets/cpp_fully_connected.def | 27 +
.../soft_backend/code_snippets/cpp_gather.def | 48 +
.../code_snippets/cpp_header_types.def | 234 +
.../soft_backend/code_snippets/cpp_leaky_relu.def | 25 +
.../soft_backend/code_snippets/cpp_operations.def | 656 +
.../soft_backend/code_snippets/cpp_pad.def | 96 +
.../soft_backend/code_snippets/cpp_pool.def | 116 +
.../soft_backend/code_snippets/cpp_reduce.def | 185 +
.../soft_backend/code_snippets/cpp_relu.def | 23 +
.../soft_backend/code_snippets/cpp_resize.def | 61 +
.../soft_backend/code_snippets/cpp_sigmoid.def | 24 +
.../soft_backend/code_snippets/cpp_slice.def | 56 +
.../soft_backend/code_snippets/cpp_softmax.def | 33 +
.../soft_backend/code_snippets/cpp_sqrt.def | 23 +
.../soft_backend/code_snippets/cpp_tanh.def | 21 +
.../soft_backend/code_snippets/cpp_transpose.def | 65 +
.../backends/soft_backend/code_snippets/eigen.def | 29033 +++++++++++++++++++
compiler/nnc/cmake/config.cmake | 55 +
compiler/nnc/cmake/utils.cmake | 65 +
compiler/nnc/doxygen.config | 2427 ++
compiler/nnc/driver/Driver.cpp | 216 +
compiler/nnc/driver/Driver.h | 67 +
compiler/nnc/driver/Options.cpp | 137 +
compiler/nnc/driver/Options.h | 68 +
compiler/nnc/driver/main.cpp | 75 +
compiler/nnc/include/Definitions.h.in | 44 +
.../backends/acl_soft_backend/AclCppException.h | 39 +
.../backends/acl_soft_backend/AclCppGenerator.h | 50 +
.../backends/interpreter/InterpreterBackend.h | 41 +
.../include/backends/soft_backend/CPPGenerator.h | 162 +
compiler/nnc/include/pass/Pass.h | 53 +
compiler/nnc/include/pass/PassData.h | 100 +
compiler/nnc/include/pass/PassException.h | 44 +
compiler/nnc/include/pass/PassManager.h | 57 +
.../nnc/include/passes/dot_dumper/DumperPass.h | 42 +
.../passes/optimizations/CombineTransposes.h | 41 +
.../passes/optimizations/ConstantFoldTranspose.h | 39 +
.../passes/optimizations/DeadCodeElimination.h | 40 +
.../passes/optimizations/FuseArithmeticOps.h | 44 +
.../passes/optimizations/OptimizationUtils.h | 40 +
.../nnc/include/passes/optimizations/SinkRelu.h | 39 +
.../include/passes/optimizations/SinkTranspose.h | 40 +
.../passes/transformations/DataFormatSwitcher.h | 62 +
.../include/passes/transformations/LowerConv2D.h | 41 +
compiler/nnc/include/support/CommandLine.h | 556 +
compiler/nnc/pass/CMakeLists.txt | 5 +
compiler/nnc/pass/PassManager.cpp | 36 +
compiler/nnc/passes/CMakeLists.txt | 12 +
compiler/nnc/passes/dot_dumper/CMakeLists.txt | 6 +
compiler/nnc/passes/dot_dumper/DumperPass.cpp | 38 +
compiler/nnc/passes/optimizations/CMakeLists.txt | 13 +
.../nnc/passes/optimizations/CombineTransposes.cpp | 102 +
.../passes/optimizations/ConstantFoldTranspose.cpp | 87 +
.../passes/optimizations/DeadCodeElimination.cpp | 48 +
.../nnc/passes/optimizations/FuseArithmeticOps.cpp | 250 +
.../nnc/passes/optimizations/OptimizationUtils.cpp | 55 +
compiler/nnc/passes/optimizations/SinkRelu.cpp | 77 +
.../nnc/passes/optimizations/SinkTranspose.cpp | 82 +
compiler/nnc/passes/transformations/CMakeLists.txt | 7 +
.../passes/transformations/DataFormatSwitcher.cpp | 248 +
.../nnc/passes/transformations/LowerConv2D.cpp | 75 +
compiler/nnc/requires.cmake | 7 +
compiler/nnc/support/CLOptionChecker.cpp | 74 +
compiler/nnc/support/CMakeLists.txt | 7 +
compiler/nnc/support/CommandLine.cpp | 637 +
compiler/nnc/tests/CMakeLists.txt | 3 +
.../tests/acl_soft_backend/AclCppOperations.cpp | 193 +
compiler/nnc/tests/acl_soft_backend/BuildInfo.h.in | 22 +
compiler/nnc/tests/acl_soft_backend/CMakeLists.txt | 125 +
.../acl_soft_backend/artifact_cmake/CMakeLists.txt | 21 +
.../tests/acl_soft_backend/artifact_cmake/main.cpp | 139 +
.../acl_soft_backend/artifact_cmake/odroid.cmake | 17 +
.../acl_soft_backend/models/concatenate.prototxt | 23 +
.../acl_soft_backend/models/convolution.prototxt | 34 +
.../models/convolution_with_bias.prototxt | 38 +
.../models/depthwise_convolution.prototxt | 35 +
.../models/fully_connected.prototxt | 29 +
.../acl_soft_backend/models/pooling_avg.prototxt | 26 +
.../acl_soft_backend/models/pooling_max.prototxt | 26 +
.../tests/acl_soft_backend/models/relu.prototxt | 20 +
.../tests/acl_soft_backend/models/reshape.prototxt | 26 +
.../tests/acl_soft_backend/models/scale.prototxt | 30 +
compiler/nnc/tests/import/CMakeLists.txt | 20 +
compiler/nnc/tests/import/caffe.cpp | 41 +
compiler/nnc/tests/import/tflite.cpp | 41 +
compiler/nnc/tests/soft_backend/CMakeLists.txt | 9 +
compiler/nnc/tests/soft_backend/CompileCPP.cpp | 120 +
compiler/nnc/tests/soft_backend/test_main.def | 10 +
compiler/nnc/unittests/CMakeLists.txt | 10 +
compiler/nnc/unittests/acl_backend/CMakeLists.txt | 9 +
compiler/nnc/unittests/acl_backend/DOMToText.cpp | 497 +
compiler/nnc/unittests/acl_backend/MIRToDOM.cpp | 539 +
.../test_data/unsupported.caffemodel | Bin 0 -> 803260 bytes
.../nnc/unittests/optimizations/CMakeLists.txt | 7 +
.../unittests/optimizations/CombineTransposes.cpp | 150 +
.../optimizations/DeadCodeElimination.cpp | 89 +
.../unittests/optimizations/FuseArithmeticOps.cpp | 70 +
compiler/nnc/unittests/optimizations/SinkTest.cpp | 195 +
compiler/nnc/unittests/optimizations/Util.h | 80 +
compiler/nnc/unittests/pass/CMakeLists.txt | 4 +
compiler/nnc/unittests/pass/PassExceptionTest.cpp | 58 +
compiler/nnc/unittests/pass/PassManagerTest.cpp | 70 +
compiler/nnc/unittests/soft_backend/CMakeLists.txt | 7 +
.../nnc/unittests/soft_backend/CPPHeaderTypes.cpp | 125 +
.../nnc/unittests/soft_backend/CPPOperations.cpp | 1007 +
compiler/nnc/unittests/soft_backend/Generator.cpp | 112 +
.../nnc/unittests/soft_backend/ModelAnalyzer.cpp | 83 +
compiler/nnc/unittests/support/CMakeLists.txt | 4 +
compiler/nnc/unittests/support/CommandLineTest.cpp | 271 +
.../nnc/unittests/transformations/CMakeLists.txt | 4 +
.../nnc/unittests/transformations/Switcher.cpp | 272 +
compiler/nnc/utils/CMakeLists.txt | 7 +
.../nnc/utils/caffe2_dot_dumper/CMakeLists.txt | 6 +
.../nnc/utils/caffe2_dot_dumper/model_dump.cpp | 51 +
compiler/nnc/utils/caffe_dot_dumper/CMakeLists.txt | 6 +
compiler/nnc/utils/caffe_dot_dumper/model_dump.cpp | 45 +
compiler/nnc/utils/caffe_model_maker/AllFill.sh | 48 +
compiler/nnc/utils/caffe_model_maker/Filler.sh | 28 +
.../utils/caffe_model_maker/GenerateCaffeModels.py | 722 +
compiler/nnc/utils/caffe_model_maker/Pyloss.py | 83 +
compiler/nnc/utils/caffe_model_maker/README.md | 22 +
compiler/nnc/utils/def2src.cpp | 105 +
compiler/nnc/utils/infer_tests/README.md | 9 +
compiler/nnc/utils/infer_tests/infer_testcases.py | 154 +
compiler/nnc/utils/infer_tests/res2bin.py | 33 +
compiler/nnc/utils/input_gen/CMakeLists.txt | 9 +
compiler/nnc/utils/input_gen/tensor_gen.cpp | 215 +
compiler/nnc/utils/model_runner/common_place.py | 70 +
.../nnc/utils/model_runner/model_runner_caffe.py | 22 +
.../nnc/utils/model_runner/model_runner_caffe2.py | 23 +
.../nnc/utils/model_runner/model_runner_onnx.py | 27 +
.../nnc/utils/model_runner/model_runner_tflite.py | 25 +
compiler/nnc/utils/model_runner/readme.md | 39 +
compiler/nnc/utils/prepare_inputs/README.md | 8 +
compiler/nnc/utils/prepare_inputs/jpeg2hdf5.py | 170 +
.../nnc/utils/tflite_dot_dumper/CMakeLists.txt | 7 +
.../nnc/utils/tflite_dot_dumper/model_dump.cpp | 45 +
compiler/nnkit-caffe/CMakeLists.txt | 8 +
compiler/nnkit-caffe/backend/CMakeLists.txt | 3 +
compiler/nnkit-caffe/backend/Module.cpp | 34 +
compiler/nnkit-caffe/requires.cmake | 1 +
compiler/nnkit-caffe/support/CMakeLists.txt | 4 +
.../support/include/nnkit/support/caffe/Backend.h | 73 +
.../include/nnkit/support/caffe/BlobContext.h | 45 +
.../include/nnkit/support/caffe/InputBlobContext.h | 57 +
.../nnkit/support/caffe/OutputBlobContext.h | 57 +
.../include/nnkit/support/caffe/TensorContext.h | 114 +
compiler/nnkit-intf/CMakeLists.txt | 4 +
compiler/nnkit-intf/README.md | 3 +
compiler/nnkit-intf/action/CMakeLists.txt | 4 +
compiler/nnkit-intf/action/include/nnkit/Action.h | 34 +
compiler/nnkit-intf/backend/CMakeLists.txt | 4 +
.../nnkit-intf/backend/include/nnkit/Backend.h | 38 +
compiler/nnkit-intf/cmdline/CMakeLists.txt | 2 +
.../cmdline/include/nnkit/CmdlineArguments.h | 36 +
compiler/nnkit-intf/tensor/CMakeLists.txt | 3 +
.../tensor/include/nnkit/TensorContext.h | 91 +
compiler/nnkit-misc/CMakeLists.txt | 1 +
compiler/nnkit-misc/README.md | 3 +
compiler/nnkit-misc/backend/CMakeLists.txt | 14 +
.../backend/include/nnkit/BackendPlugin.h | 60 +
compiler/nnkit-misc/backend/src/BackendPlugin.cpp | 88 +
compiler/nnkit-misc/cmdline/CMakeLists.txt | 5 +
.../cmdline/include/nnkit/VectorArguments.h | 43 +
.../nnkit-misc/cmdline/src/VectorArguments.cpp | 28 +
compiler/nnkit-mocotf/CMakeLists.txt | 6 +
compiler/nnkit-mocotf/backend/Backend.cpp | 31 +
compiler/nnkit-mocotf/backend/CMakeLists.txt | 3 +
compiler/nnkit-mocotf/requires.cmake | 7 +
compiler/nnkit-mocotf/support/CMakeLists.txt | 13 +
.../include/nnkit/support/moco/tf/Backend.h | 68 +
compiler/nnkit-mocotf/support/src/Backend.cpp | 162 +
.../support/src/InputTensorContext.cpp | 49 +
.../nnkit-mocotf/support/src/InputTensorContext.h | 71 +
.../support/src/OutputTensorContext.cpp | 47 +
.../nnkit-mocotf/support/src/OutputTensorContext.h | 72 +
compiler/nnkit-mocotf/support/src/TensorContext.h | 86 +
compiler/nnkit-onnxrt/CMakeLists.txt | 8 +
compiler/nnkit-onnxrt/backend/Backend.cpp | 29 +
compiler/nnkit-onnxrt/backend/CMakeLists.txt | 3 +
compiler/nnkit-onnxrt/requires.cmake | 2 +
compiler/nnkit-onnxrt/support/CMakeLists.txt | 10 +
.../support/include/nnkit/support/onnx/Allocator.h | 56 +
.../support/include/nnkit/support/onnx/Backend.h | 53 +
.../support/include/nnkit/support/onnx/Runner.h | 67 +
.../support/include/nnkit/support/onnx/Status.h | 85 +
.../include/nnkit/support/onnx/TensorContext.h | 118 +
.../support/include/nnkit/support/onnx/TensorSet.h | 97 +
compiler/nnkit-onnxrt/support/src/Allocator.cpp | 88 +
compiler/nnkit-onnxrt/support/src/Backend.cpp | 47 +
compiler/nnkit-onnxrt/support/src/Runner.cpp | 183 +
compiler/nnkit-tf/CMakeLists.txt | 8 +
compiler/nnkit-tf/backend/Backend.cpp | 31 +
compiler/nnkit-tf/backend/CMakeLists.txt | 3 +
compiler/nnkit-tf/requires.cmake | 3 +
compiler/nnkit-tf/support/CMakeLists.txt | 9 +
.../support/include/nnkit/support/tf/Backend.h | 67 +
.../support/include/nnkit/support/tf/Runner.h | 105 +
.../include/nnkit/support/tf/TensorContext.h | 80 +
.../include/nnkit/support/tf/TensorDataMap.h | 81 +
compiler/nnkit-tf/support/src/Backend.cpp | 113 +
compiler/nnkit-tf/support/src/Runner.cpp | 323 +
compiler/nnkit-tf/support/src/TensorContext.cpp | 60 +
compiler/nnkit-tflite/CMakeLists.txt | 8 +
compiler/nnkit-tflite/backend/Backend.cpp | 62 +
compiler/nnkit-tflite/backend/CMakeLists.txt | 7 +
compiler/nnkit-tflite/requires.cmake | 2 +
compiler/nnkit-tflite/support/CMakeLists.txt | 10 +
.../include/nnkit/support/tflite/AbstractBackend.h | 48 +
.../include/nnkit/support/tflite/TensorContext.h | 63 +
.../include/nnkit/support/tflite/TensorSet.h | 44 +
.../include/nnkit/support/tflite/TensorSets.h | 71 +
.../include/nnkit/support/tflite/TensorUtils.h | 36 +
compiler/nnkit-tflite/support/src/Backend.cpp | 52 +
.../nnkit-tflite/support/src/TensorContext.cpp | 65 +
compiler/nnkit-tflite/support/src/TensorUtils.cpp | 43 +
compiler/nnkit/CMakeLists.txt | 2 +
compiler/nnkit/README.md | 179 +
compiler/nnkit/actions/CMakeLists.txt | 1 +
compiler/nnkit/actions/HDF5/CMakeLists.txt | 21 +
compiler/nnkit/actions/HDF5/Common.cpp | 38 +
compiler/nnkit/actions/HDF5/Common.h | 60 +
compiler/nnkit/actions/HDF5/Export.cpp | 109 +
compiler/nnkit/actions/HDF5/Import.cpp | 100 +
compiler/nnkit/actions/builtin/CMakeLists.txt | 7 +
compiler/nnkit/actions/builtin/Randomize.cpp | 60 +
compiler/nnkit/actions/builtin/Show.cpp | 71 +
compiler/nnkit/requires.cmake | 8 +
compiler/nnkit/tools/CMakeLists.txt | 1 +
compiler/nnkit/tools/benchmark/CMakeLists.txt | 14 +
compiler/nnkit/tools/benchmark/src/Benchmark.cpp | 207 +
compiler/nnkit/tools/run/CMakeLists.txt | 22 +
compiler/nnkit/tools/run/nnkit-run.cpp | 266 +
compiler/nnop/CMakeLists.txt | 16 +
compiler/nnop/include/nnop/Conv2D.h | 87 +
compiler/nnop/include/nnop/PadInfo.h | 49 +
compiler/nnop/include/nnop/StrideInfo.h | 44 +
compiler/nnop/requires.cmake | 1 +
compiler/nnop/src/Conv2D.test.cpp | 50 +
compiler/nnop/src/PadInfo.test.cpp | 34 +
compiler/nnop/src/StrideInfo.test.cpp | 30 +
compiler/nnsuite/CMakeLists.txt | 1 +
compiler/nnsuite/conv/CMakeLists.txt | 3 +
compiler/nnsuite/conv/model/CMakeLists.txt | 6 +
.../conv/model/include/nnsuite/conv/Model.h | 53 +
.../conv/model/include/nnsuite/conv/RandomModel.h | 70 +
compiler/nnsuite/conv/model/src/RandomModel.cpp | 58 +
compiler/nnsuite/conv/nnkit-caffe/CMakeLists.txt | 24 +
compiler/nnsuite/conv/nnkit-caffe/ConvBackend.cpp | 97 +
compiler/nnsuite/conv/nnkit-caffe/ConvBackend.h | 30 +
.../nnsuite/conv/nnkit-caffe/ConvBackend.test.cpp | 126 +
compiler/nnsuite/conv/nnkit-caffe/Entry.cpp | 40 +
compiler/nnsuite/conv/nnkit-tflite/CMakeLists.txt | 23 +
compiler/nnsuite/conv/nnkit-tflite/ConvBackend.cpp | 145 +
compiler/nnsuite/conv/nnkit-tflite/ConvBackend.h | 51 +
.../nnsuite/conv/nnkit-tflite/ConvBackend.test.cpp | 129 +
compiler/nnsuite/conv/nnkit-tflite/Entry.cpp | 44 +
compiler/nnsuite/requires.cmake | 1 +
compiler/oneco-value-pbtxt-test/CMakeLists.txt | 53 +
.../oneco-value-pbtxt-test/Const_000/test.pbtxt | 52 +
.../oneco-value-pbtxt-test/Identity_000/test.pbtxt | 66 +
compiler/oneco-value-pbtxt-test/requires.cmake | 1 +
compiler/oneco/CMakeLists.txt | 36 +
compiler/oneco/include/moco/onnx/Frontend.h | 48 +
compiler/oneco/proto/CMakeLists.txt | 13 +
compiler/oneco/requires.cmake | 3 +
compiler/oneco/src/Convert.cpp | 113 +
compiler/oneco/src/Convert.h | 38 +
compiler/oneco/src/Frontend.cpp | 275 +
compiler/oneco/src/Frontend.test.cpp | 21 +
compiler/oneco/src/GraphBuilder.h | 46 +
compiler/oneco/src/GraphBuilderContext.cpp | 92 +
compiler/oneco/src/GraphBuilderContext.h | 100 +
compiler/oneco/src/GraphBuilderRegistry.h | 78 +
compiler/oneco/src/Onnxutil.cpp | 109 +
compiler/oneco/src/Onnxutil.h | 46 +
compiler/oneco/src/Op/Constant.cpp | 52 +
compiler/oneco/src/Op/Constant.h | 59 +
compiler/oneco/src/Op/Constant_V1.cpp | 71 +
compiler/oneco/src/Op/Constant_V9.cpp | 67 +
compiler/oneco/src/Op/Identity.cpp | 48 +
compiler/oneco/src/Op/Identity.h | 47 +
compiler/oneco/src/Op/Identity_V1.cpp | 51 +
compiler/onnx2circle/CMakeLists.txt | 27 +
compiler/onnx2circle/README.md | 3 +
compiler/onnx2circle/requires.cmake | 9 +
compiler/onnx2circle/src/onnx2circle.cpp | 111 +
.../onnx2tflite-integration-test/CMakeLists.txt | 120 +
.../onnx2tflite-integration-test/requires.cmake | 6 +
compiler/onnx2tflite-integration-test/test.lst | 5 +
compiler/onnx2tflite-integration-test/testall.sh | 112 +
compiler/onnx2tflite/CMakeLists.txt | 8 +
compiler/onnx2tflite/requires.cmake | 3 +
compiler/onnx2tflite/src/Driver.cpp | 83 +
compiler/onnxkit/CMakeLists.txt | 30 +
compiler/onnxkit/README.md | 61 +
compiler/onnxkit/src/DecodeCommand.cpp | 47 +
compiler/onnxkit/src/DecodeCommand.hpp | 27 +
compiler/onnxkit/src/EncodeCommand.cpp | 52 +
compiler/onnxkit/src/EncodeCommand.hpp | 27 +
compiler/onnxkit/src/Main.cpp | 31 +
compiler/onnxkit/src/Support.cpp | 73 +
compiler/onnxkit/src/Support.hpp | 59 +
compiler/oops/CMakeLists.txt | 12 +
compiler/oops/include/oops/InternalExn.h | 80 +
compiler/oops/include/oops/UserExn.h | 89 +
compiler/oops/test.cpp | 94 +
compiler/pepper-assert/CMakeLists.txt | 2 +
compiler/pepper-assert/include/pepper/assert.h | 38 +
compiler/pepper-env/CMakeLists.txt | 19 +
compiler/pepper-env/README.md | 3 +
compiler/pepper-env/include/pepper/env.h | 101 +
compiler/pepper-env/src/env.cpp | 47 +
compiler/pepper-env/src/env.test.cpp | 40 +
compiler/pepper-str/CMakeLists.txt | 12 +
compiler/pepper-str/README.md | 15 +
compiler/pepper-str/include/pepper/str.h | 65 +
compiler/pepper-str/test.cpp | 51 +
compiler/pepper-strcast/CMakeLists.txt | 19 +
compiler/pepper-strcast/README.md | 3 +
compiler/pepper-strcast/include/pepper/strcast.h | 34 +
compiler/pepper-strcast/src/strcast.cpp | 29 +
compiler/pepper-strcast/src/strcast.test.cpp | 26 +
compiler/plier-tf/CMakeLists.txt | 28 +
compiler/plier-tf/README.md | 3 +
compiler/plier-tf/include/plier/tf/Convert.h | 78 +
compiler/plier-tf/include/plier/tf/TestHelper.h | 38 +
compiler/plier-tf/requires.cmake | 3 +
compiler/plier-tf/src/Convert.cpp | 198 +
compiler/plier-tf/src/Convert.test.cpp | 115 +
compiler/plier-tf/src/TestHelper.cpp | 70 +
compiler/pp/CMakeLists.txt | 20 +
compiler/pp/README.md | 35 +
compiler/pp/include/pp/EnclosedDocument.h | 53 +
compiler/pp/include/pp/Format.h | 43 +
compiler/pp/include/pp/IndentedStringBuilder.h | 52 +
compiler/pp/include/pp/LinearDocument.h | 92 +
compiler/pp/include/pp/MultiLineText.h | 37 +
compiler/pp/include/pp/MultiLineTextUtils.h | 26 +
compiler/pp/src/EnclosedDocument.cpp | 34 +
compiler/pp/src/EnclosedDocument.test.cpp | 47 +
compiler/pp/src/Format.test.cpp | 30 +
compiler/pp/src/IndentedStringBuilder.cpp | 48 +
compiler/pp/src/IndentedStringBuilder.test.cpp | 30 +
compiler/pp/src/LinearDocument.cpp | 71 +
compiler/pp/src/LinearDocument.test.cpp | 160 +
compiler/pp/src/MultiLineTextUtils.cpp | 32 +
compiler/pp/src/MultiLineTextUtils.test.cpp | 49 +
compiler/safemain/CMakeLists.txt | 2 +
compiler/safemain/SafeMain.cpp | 43 +
compiler/stdex/CMakeLists.txt | 16 +
compiler/stdex/README.md | 22 +
compiler/stdex/include/stdex/Memory.h | 29 +
compiler/stdex/include/stdex/Queue.h | 38 +
compiler/stdex/include/stdex/Set.h | 55 +
compiler/stdex/src/Memory.test.cpp | 60 +
compiler/stdex/src/Queue.test.cpp | 32 +
compiler/stdex/src/Set.test.cpp | 37 +
compiler/tf2circle-conversion-test/.gitignore | 1 +
compiler/tf2circle-conversion-test/CMakeLists.txt | 138 +
compiler/tf2circle-conversion-test/README.md | 3 +
compiler/tf2circle-conversion-test/requires.cmake | 2 +
compiler/tf2circle-conversion-test/test.lst | 103 +
compiler/tf2circle-conversion-test/testall.sh | 90 +
compiler/tf2circle-dredd-pb-test/.gitignore | 1 +
compiler/tf2circle-dredd-pb-test/CMakeLists.txt | 141 +
compiler/tf2circle-dredd-pb-test/README.md | 3 +
.../tf2circle-dredd-pb-test/contrib/.gitignore | 3 +
compiler/tf2circle-dredd-pb-test/requires.cmake | 4 +
compiler/tf2circle-dredd-pb-test/runner.sh | 121 +
compiler/tf2circle-dredd-pbtxt-test/.gitignore | 1 +
compiler/tf2circle-dredd-pbtxt-test/CMakeLists.txt | 184 +
compiler/tf2circle-dredd-pbtxt-test/README.md | 3 +
compiler/tf2circle-dredd-pbtxt-test/requires.cmake | 5 +
compiler/tf2circle-dredd-pbtxt-test/runner.sh | 121 +
compiler/tf2circle-dredd-pbtxt-test/test.lst | 4 +
compiler/tf2circle-model-test/.gitignore | 1 +
compiler/tf2circle-model-test/CMakeLists.txt | 110 +
compiler/tf2circle-model-test/README.md | 1 +
compiler/tf2circle-model-test/contrib/.gitignore | 3 +
compiler/tf2circle-model-test/requires.cmake | 2 +
compiler/tf2circle-model-test/runner.sh | 83 +
compiler/tf2circle-ui-check/.gitignore | 1 +
compiler/tf2circle-ui-check/CMakeLists.txt | 44 +
compiler/tf2circle-ui-check/README.md | 21 +
compiler/tf2circle-ui-check/checkall.sh | 57 +
compiler/tf2circle-ui-check/requires.cmake | 2 +
.../tf2circle-value-pbtxt-remote-test/.gitignore | 1 +
.../CMakeLists.txt | 170 +
.../tf2circle-value-pbtxt-remote-test/README.md | 138 +
.../requires.cmake | 3 +
.../tf2circle-value-pbtxt-remote-test/testall.sh | 161 +
compiler/tf2circle/CMakeLists.txt | 47 +
compiler/tf2circle/README.md | 3 +
compiler/tf2circle/proto/CustomOpInfo.proto | 57 +
compiler/tf2circle/requires.cmake | 8 +
compiler/tf2circle/src/CustomopConfLoader.cpp | 138 +
compiler/tf2circle/src/CustomopConfLoader.h | 32 +
compiler/tf2circle/src/tf2circle.cpp | 225 +
compiler/tf2nnpkg/CMakeLists.txt | 35 +
compiler/tf2nnpkg/requires.cmake | 8 +
compiler/tf2nnpkg/src/filesystem.h | 43 +
compiler/tf2nnpkg/src/filesystem_common.cpp | 44 +
compiler/tf2nnpkg/src/filesystem_linux.cpp | 46 +
compiler/tf2nnpkg/src/filesystem_windows.cpp | 55 +
compiler/tf2nnpkg/src/tf2nnpkg.cpp | 300 +
compiler/tf2tflite-dredd-pb-test/.gitignore | 1 +
compiler/tf2tflite-dredd-pb-test/CMakeLists.txt | 141 +
compiler/tf2tflite-dredd-pb-test/README.md | 6 +
.../tf2tflite-dredd-pb-test/contrib/.gitignore | 3 +
compiler/tf2tflite-dredd-pb-test/requires.cmake | 4 +
compiler/tf2tflite-dredd-pb-test/runner.sh | 121 +
compiler/tf2tflite-dredd-pbtxt-test/.gitignore | 1 +
compiler/tf2tflite-dredd-pbtxt-test/CMakeLists.txt | 184 +
compiler/tf2tflite-dredd-pbtxt-test/requires.cmake | 5 +
compiler/tf2tflite-dredd-pbtxt-test/runner.sh | 121 +
compiler/tf2tflite-dredd-pbtxt-test/test.lst | 1 +
compiler/tf2tflite-value-pb-test/.gitignore | 1 +
compiler/tf2tflite-value-pb-test/CMakeLists.txt | 131 +
compiler/tf2tflite-value-pb-test/README.md | 1 +
.../tf2tflite-value-pb-test/contrib/.gitignore | 3 +
compiler/tf2tflite-value-pb-test/requires.cmake | 6 +
compiler/tf2tflite-value-pb-test/runner.sh | 112 +
compiler/tf2tflite-value-pbtxt-test/.gitignore | 1 +
compiler/tf2tflite-value-pbtxt-test/CMakeLists.txt | 159 +
compiler/tf2tflite-value-pbtxt-test/README.md | 3 +
compiler/tf2tflite-value-pbtxt-test/requires.cmake | 4 +
compiler/tf2tflite-value-pbtxt-test/test.lst | 101 +
compiler/tf2tflite-value-pbtxt-test/testall.sh | 106 +
compiler/tf2tflite/.gitignore | 1 +
compiler/tf2tflite/CMakeLists.txt | 44 +
compiler/tf2tflite/README.md | 3 +
compiler/tf2tflite/proto/CustomOpInfo.proto | 57 +
compiler/tf2tflite/requires.cmake | 8 +
compiler/tf2tflite/src/CustomopConfLoader.cpp | 137 +
compiler/tf2tflite/src/CustomopConfLoader.h | 32 +
compiler/tf2tflite/src/Driver.cpp | 167 +
.../tf2tfliteV2-value-pbtxt-test/CMakeLists.txt | 183 +
.../tf2tfliteV2-value-pbtxt-test/requirements.txt | 2 +
.../tf2tfliteV2-value-pbtxt-test/requires.cmake | 4 +
compiler/tf2tfliteV2-value-pbtxt-test/test.lst | 101 +
compiler/tf2tfliteV2-value-pbtxt-test/testall.sh | 110 +
compiler/tf2tfliteV2/CMakeLists.txt | 11 +
compiler/tf2tfliteV2/README.md | 47 +
compiler/tf2tfliteV2/tf2tfliteV2.py | 183 +
compiler/tfgraph-xform/CMakeLists.txt | 328 +
compiler/tfgraph-xform/README.md | 5 +
compiler/tfinfo-v2/CMakeLists.txt | 36 +
.../tfinfo-v2/include/tfinfo-v2/TensorInfoLoader.h | 43 +
.../tfinfo-v2/include/tfinfo-v2/TensorSignature.h | 124 +
compiler/tfinfo-v2/proto/tfinfo-v2.proto | 46 +
compiler/tfinfo-v2/requires.cmake | 2 +
compiler/tfinfo-v2/src/TFInfo_v2.test.cpp | 246 +
compiler/tfinfo-v2/src/TensorInfoLoader.cpp | 179 +
compiler/tfinfo-v2/src/TensorSignature.cpp | 17 +
compiler/tfinfo/CMakeLists.txt | 20 +
compiler/tfinfo/README.md | 12 +
.../nnkit/support/tftestinfo/ParsedTensor.h | 121 +
.../nnkit/support/tftestinfo/TensorInfoParser.h | 46 +
compiler/tfinfo/requires.cmake | 3 +
compiler/tfinfo/src/Compat.h | 27 +
compiler/tfinfo/src/TensorInfoParser.cpp | 230 +
compiler/tfinfo/src/TensorInfoParser.test.cpp | 121 +
compiler/tfkit/CMakeLists.txt | 13 +
compiler/tfkit/README.md | 73 +
compiler/tfkit/src/ConvertCommand.cpp | 146 +
compiler/tfkit/src/ConvertCommand.hpp | 32 +
compiler/tfkit/src/DecodeCommand.cpp | 52 +
compiler/tfkit/src/DecodeCommand.hpp | 32 +
compiler/tfkit/src/EncodeCommand.cpp | 57 +
compiler/tfkit/src/EncodeCommand.hpp | 32 +
compiler/tfkit/src/Main.cpp | 37 +
compiler/tfkit/src/PackCommand.cpp | 173 +
compiler/tfkit/src/PackCommand.hpp | 32 +
compiler/tfkit/src/Support.cpp | 125 +
compiler/tfkit/src/Support.hpp | 75 +
compiler/tfkit/src/UnpackCommand.cpp | 202 +
compiler/tfkit/src/UnpackCommand.hpp | 32 +
compiler/tfl-inspect/CMakeLists.txt | 13 +
compiler/tfl-inspect/README.md | 51 +
compiler/tfl-inspect/driver/Driver.cpp | 96 +
compiler/tfl-inspect/requires.cmake | 3 +
compiler/tfl-inspect/src/Dump.cpp | 137 +
compiler/tfl-inspect/src/Dump.h | 56 +
compiler/tfl-inspect/src/Model.cpp | 143 +
compiler/tfl-inspect/src/Model.h | 43 +
compiler/tfl-inspect/src/Reader.cpp | 166 +
compiler/tfl-inspect/src/Reader.h | 91 +
compiler/tfl-verify/CMakeLists.txt | 12 +
compiler/tfl-verify/README.md | 23 +
compiler/tfl-verify/requires.cmake | 4 +
compiler/tfl-verify/src/Driver.cpp | 51 +
compiler/tfl-verify/src/Model.cpp | 90 +
compiler/tfl-verify/src/Model.h | 38 +
compiler/tfl-verify/src/VerifyFlatBuffers.cpp | 36 +
compiler/tfl-verify/src/VerifyFlatBuffers.h | 32 +
compiler/tflchef/CMakeLists.txt | 19 +
compiler/tflchef/README.md | 76 +
compiler/tflchef/core/CMakeLists.txt | 7 +
compiler/tflchef/core/include/tflchef/ModelChef.h | 56 +
compiler/tflchef/core/src/Arguments.h | 34 +
compiler/tflchef/core/src/Convert.cpp | 72 +
compiler/tflchef/core/src/Convert.h | 31 +
compiler/tflchef/core/src/Data/Constant.h | 62 +
compiler/tflchef/core/src/Data/Explicit.h | 75 +
compiler/tflchef/core/src/Data/Gaussian.cpp | 135 +
compiler/tflchef/core/src/Data/Gaussian.h | 88 +
compiler/tflchef/core/src/DataChef.def | 15 +
compiler/tflchef/core/src/DataChef.h | 56 +
compiler/tflchef/core/src/DataChefs.h | 24 +
compiler/tflchef/core/src/Dataset.h | 57 +
compiler/tflchef/core/src/LexicalCast.cpp | 36 +
compiler/tflchef/core/src/LexicalCast.h | 32 +
compiler/tflchef/core/src/ModelChef.cpp | 765 +
compiler/tflchef/core/src/Op/Abs.cpp | 30 +
compiler/tflchef/core/src/Op/Abs.h | 46 +
compiler/tflchef/core/src/Op/Add.cpp | 39 +
compiler/tflchef/core/src/Op/Add.h | 46 +
compiler/tflchef/core/src/Op/ArgMax.cpp | 39 +
compiler/tflchef/core/src/Op/ArgMax.h | 46 +
compiler/tflchef/core/src/Op/AveragePool2D.cpp | 47 +
compiler/tflchef/core/src/Op/AveragePool2D.h | 49 +
compiler/tflchef/core/src/Op/BatchToSpaceND.cpp | 31 +
compiler/tflchef/core/src/Op/BatchToSpaceND.h | 52 +
compiler/tflchef/core/src/Op/Concatenation.cpp | 43 +
compiler/tflchef/core/src/Op/Concatenation.h | 52 +
compiler/tflchef/core/src/Op/Conv2D.cpp | 43 +
compiler/tflchef/core/src/Op/Conv2D.h | 46 +
compiler/tflchef/core/src/Op/Cos.cpp | 29 +
compiler/tflchef/core/src/Op/Cos.h | 46 +
compiler/tflchef/core/src/Op/DepthwiseConv2D.cpp | 47 +
compiler/tflchef/core/src/Op/DepthwiseConv2D.h | 52 +
compiler/tflchef/core/src/Op/Div.cpp | 39 +
compiler/tflchef/core/src/Op/Div.h | 46 +
compiler/tflchef/core/src/Op/Equal.cpp | 29 +
compiler/tflchef/core/src/Op/Equal.h | 46 +
compiler/tflchef/core/src/Op/Exp.cpp | 30 +
compiler/tflchef/core/src/Op/Exp.h | 46 +
compiler/tflchef/core/src/Op/FloorDiv.cpp | 30 +
compiler/tflchef/core/src/Op/FloorDiv.h | 49 +
compiler/tflchef/core/src/Op/FullyConnected.cpp | 39 +
compiler/tflchef/core/src/Op/FullyConnected.h | 52 +
compiler/tflchef/core/src/Op/LogicalNot.cpp | 29 +
compiler/tflchef/core/src/Op/LogicalNot.h | 49 +
compiler/tflchef/core/src/Op/LogicalOr.cpp | 29 +
compiler/tflchef/core/src/Op/LogicalOr.h | 49 +
compiler/tflchef/core/src/Op/MaxPool2D.cpp | 47 +
compiler/tflchef/core/src/Op/MaxPool2D.h | 46 +
compiler/tflchef/core/src/Op/Mean.cpp | 39 +
compiler/tflchef/core/src/Op/Mean.h | 46 +
compiler/tflchef/core/src/Op/Mul.cpp | 39 +
compiler/tflchef/core/src/Op/Mul.h | 46 +
compiler/tflchef/core/src/Op/Pack.cpp | 38 +
compiler/tflchef/core/src/Op/Pack.h | 46 +
compiler/tflchef/core/src/Op/Pad.cpp | 28 +
compiler/tflchef/core/src/Op/Pad.h | 46 +
compiler/tflchef/core/src/Op/ReLU.cpp | 27 +
compiler/tflchef/core/src/Op/ReLU.h | 46 +
compiler/tflchef/core/src/Op/ReLU6.cpp | 27 +
compiler/tflchef/core/src/Op/ReLU6.h | 46 +
compiler/tflchef/core/src/Op/Reshape.cpp | 62 +
compiler/tflchef/core/src/Op/Reshape.h | 46 +
compiler/tflchef/core/src/Op/Rsqrt.cpp | 28 +
compiler/tflchef/core/src/Op/Rsqrt.h | 46 +
compiler/tflchef/core/src/Op/Shape.cpp | 39 +
compiler/tflchef/core/src/Op/Shape.h | 46 +
compiler/tflchef/core/src/Op/Softmax.cpp | 39 +
compiler/tflchef/core/src/Op/Softmax.h | 46 +
compiler/tflchef/core/src/Op/Sqrt.cpp | 27 +
compiler/tflchef/core/src/Op/Sqrt.h | 46 +
compiler/tflchef/core/src/Op/Sub.cpp | 39 +
compiler/tflchef/core/src/Op/Sub.h | 46 +
compiler/tflchef/core/src/Op/Tanh.cpp | 28 +
compiler/tflchef/core/src/Op/Tanh.h | 46 +
compiler/tflchef/core/src/Op/Transpose.cpp | 32 +
compiler/tflchef/core/src/Op/Transpose.h | 49 +
compiler/tflchef/core/src/OpChef.def | 37 +
compiler/tflchef/core/src/OpChef.h | 41 +
compiler/tflchef/core/src/OpChefs.h | 52 +
compiler/tflchef/proto/CMakeLists.txt | 5 +
compiler/tflchef/proto/tflchef.proto | 232 +
compiler/tflchef/requires.cmake | 4 +
compiler/tflchef/tests/CMakeLists.txt | 129 +
.../tflchef/tests/explicit_datachef/test.recipe | 28 +
.../tflchef/tests/explicit_datachef/test.reverse | 0
compiler/tflchef/tests/multisubgraph/test.recipe | 72 +
compiler/tflchef/tests/readme/test.recipe | 44 +
compiler/tflchef/tests/readme/test.reverse | 0
compiler/tflchef/tests/runall.sh | 60 +
compiler/tflchef/tests/runvalidate.sh | 56 +
compiler/tflchef/tflite/CMakeLists.txt | 9 +
compiler/tflchef/tflite/include/tflchef/RawModel.h | 41 +
.../tflchef/tflite/include/tflchef/RecipeChef.h | 41 +
compiler/tflchef/tflite/src/Convert.cpp | 78 +
compiler/tflchef/tflite/src/Convert.h | 55 +
compiler/tflchef/tflite/src/Op/Abs.cpp | 40 +
compiler/tflchef/tflite/src/Op/Abs.h | 39 +
compiler/tflchef/tflite/src/Op/Add.cpp | 47 +
compiler/tflchef/tflite/src/Op/Add.h | 39 +
compiler/tflchef/tflite/src/Op/ArgMax.cpp | 54 +
compiler/tflchef/tflite/src/Op/ArgMax.h | 39 +
compiler/tflchef/tflite/src/Op/AveragePool2D.cpp | 52 +
compiler/tflchef/tflite/src/Op/AveragePool2D.h | 39 +
compiler/tflchef/tflite/src/Op/BatchToSpaceND.cpp | 53 +
compiler/tflchef/tflite/src/Op/BatchToSpaceND.h | 39 +
compiler/tflchef/tflite/src/Op/Concatenation.cpp | 48 +
compiler/tflchef/tflite/src/Op/Concatenation.h | 39 +
compiler/tflchef/tflite/src/Op/Conv2D.cpp | 58 +
compiler/tflchef/tflite/src/Op/Conv2D.h | 39 +
compiler/tflchef/tflite/src/Op/Cos.cpp | 40 +
compiler/tflchef/tflite/src/Op/Cos.h | 39 +
compiler/tflchef/tflite/src/Op/DepthwiseConv2D.cpp | 61 +
compiler/tflchef/tflite/src/Op/DepthwiseConv2D.h | 39 +
compiler/tflchef/tflite/src/Op/Div.cpp | 47 +
compiler/tflchef/tflite/src/Op/Div.h | 39 +
compiler/tflchef/tflite/src/Op/Equal.cpp | 40 +
compiler/tflchef/tflite/src/Op/Equal.h | 39 +
compiler/tflchef/tflite/src/Op/Exp.cpp | 40 +
compiler/tflchef/tflite/src/Op/Exp.h | 39 +
compiler/tflchef/tflite/src/Op/FloorDiv.cpp | 40 +
compiler/tflchef/tflite/src/Op/FloorDiv.h | 39 +
compiler/tflchef/tflite/src/Op/FullyConnected.cpp | 47 +
compiler/tflchef/tflite/src/Op/FullyConnected.h | 39 +
compiler/tflchef/tflite/src/Op/LogicalNot.cpp | 40 +
compiler/tflchef/tflite/src/Op/LogicalNot.h | 39 +
compiler/tflchef/tflite/src/Op/LogicalOr.cpp | 40 +
compiler/tflchef/tflite/src/Op/LogicalOr.h | 39 +
compiler/tflchef/tflite/src/Op/MaxPool2D.cpp | 52 +
compiler/tflchef/tflite/src/Op/MaxPool2D.h | 39 +
compiler/tflchef/tflite/src/Op/Mean.cpp | 54 +
compiler/tflchef/tflite/src/Op/Mean.h | 39 +
compiler/tflchef/tflite/src/Op/Pack.cpp | 48 +
compiler/tflchef/tflite/src/Op/Pack.h | 39 +
compiler/tflchef/tflite/src/Op/Pad.cpp | 47 +
compiler/tflchef/tflite/src/Op/Pad.h | 39 +
compiler/tflchef/tflite/src/Op/ReLU.cpp | 40 +
compiler/tflchef/tflite/src/Op/ReLU.h | 39 +
compiler/tflchef/tflite/src/Op/ReLU6.cpp | 40 +
compiler/tflchef/tflite/src/Op/ReLU6.h | 39 +
compiler/tflchef/tflite/src/Op/Reshape.cpp | 62 +
compiler/tflchef/tflite/src/Op/Reshape.h | 39 +
compiler/tflchef/tflite/src/Op/Rsqrt.cpp | 39 +
compiler/tflchef/tflite/src/Op/Rsqrt.h | 39 +
compiler/tflchef/tflite/src/Op/Softmax.cpp | 47 +
compiler/tflchef/tflite/src/Op/Softmax.h | 39 +
compiler/tflchef/tflite/src/Op/Sqrt.cpp | 53 +
compiler/tflchef/tflite/src/Op/Sqrt.h | 39 +
compiler/tflchef/tflite/src/Op/Sub.cpp | 48 +
compiler/tflchef/tflite/src/Op/Sub.h | 39 +
compiler/tflchef/tflite/src/Op/Tanh.cpp | 39 +
compiler/tflchef/tflite/src/Op/Tanh.h | 39 +
compiler/tflchef/tflite/src/Op/Transpose.cpp | 53 +
compiler/tflchef/tflite/src/Op/Transpose.h | 39 +
compiler/tflchef/tflite/src/RawModelLoader.cpp | 94 +
compiler/tflchef/tflite/src/RecipeChef.cpp | 241 +
compiler/tflchef/tflite/src/TFliteImport.cpp | 145 +
compiler/tflchef/tflite/src/TFliteImport.h | 140 +
compiler/tflchef/tflite/src/TFliteOpChef.h | 44 +
compiler/tflchef/tflite/src/TFliteOpChefs.h | 51 +
compiler/tflchef/tflite/src/TFliteOpRegistry.h | 97 +
compiler/tflchef/tools/CMakeLists.txt | 6 +
compiler/tflchef/tools/console/CMakeLists.txt | 3 +
compiler/tflchef/tools/console/Driver.cpp | 58 +
compiler/tflchef/tools/file/CMakeLists.txt | 3 +
compiler/tflchef/tools/file/Driver.cpp | 72 +
compiler/tflchef/tools/reverse/CMakeLists.txt | 3 +
compiler/tflchef/tools/reverse/Driver.cpp | 64 +
compiler/tfldump/CMakeLists.txt | 14 +
compiler/tfldump/README.md | 67 +
compiler/tfldump/driver/Driver.cpp | 52 +
compiler/tfldump/include/tfldump/Dump.h | 32 +
compiler/tfldump/include/tflread/Model.h | 43 +
compiler/tfldump/requires.cmake | 1 +
compiler/tfldump/src/Dump.cpp | 297 +
compiler/tfldump/src/Load.cpp | 133 +
compiler/tfldump/src/OpPrinter.cpp | 306 +
compiler/tfldump/src/OpPrinter.h | 61 +
compiler/tfldump/src/Read.cpp | 168 +
compiler/tfldump/src/Read.h | 99 +
.../tflite2circle-conversion-test/CMakeLists.txt | 94 +
compiler/tflite2circle-conversion-test/README.md | 3 +
.../tflite2circle-conversion-test/requires.cmake | 2 +
compiler/tflite2circle-conversion-test/test.lst | 20 +
compiler/tflite2circle-conversion-test/testall.sh | 76 +
compiler/tflite2circle/CMakeLists.txt | 16 +
compiler/tflite2circle/README.md | 11 +
compiler/tflite2circle/driver/Driver.cpp | 59 +
compiler/tflite2circle/include/CircleModel.h | 102 +
compiler/tflite2circle/include/TFLModel.h | 55 +
compiler/tflite2circle/requires.cmake | 4 +
compiler/tflite2circle/src/BuildBuiltinOptions.h | 54 +
.../src/BuildBuiltinOptions/AbsOptions.cpp | 32 +
.../src/BuildBuiltinOptions/AbsOptions.h | 31 +
.../src/BuildBuiltinOptions/AddOptions.cpp | 36 +
.../src/BuildBuiltinOptions/AddOptions.h | 31 +
.../src/BuildBuiltinOptions/ArgMaxOptions.cpp | 36 +
.../src/BuildBuiltinOptions/ArgMaxOptions.h | 31 +
.../BuildBuiltinOptions/BatchToSpaceNDOptions.cpp | 32 +
.../BuildBuiltinOptions/BatchToSpaceNDOptions.h | 31 +
.../src/BuildBuiltinOptions/CastOptions.cpp | 38 +
.../src/BuildBuiltinOptions/CastOptions.h | 31 +
.../BuildBuiltinOptions/ConcatenationOptions.cpp | 37 +
.../src/BuildBuiltinOptions/ConcatenationOptions.h | 31 +
.../src/BuildBuiltinOptions/Conv2DOptions.cpp | 41 +
.../src/BuildBuiltinOptions/Conv2DOptions.h | 31 +
.../src/BuildBuiltinOptions/CosOptions.cpp | 32 +
.../src/BuildBuiltinOptions/CosOptions.h | 31 +
.../BuildBuiltinOptions/DepthwiseConv2DOptions.cpp | 42 +
.../BuildBuiltinOptions/DepthwiseConv2DOptions.h | 31 +
.../src/BuildBuiltinOptions/DivOptions.cpp | 36 +
.../src/BuildBuiltinOptions/DivOptions.h | 31 +
.../src/BuildBuiltinOptions/EqualOptions.cpp | 29 +
.../src/BuildBuiltinOptions/EqualOptions.h | 31 +
.../src/BuildBuiltinOptions/ExpOptions.cpp | 32 +
.../src/BuildBuiltinOptions/ExpOptions.h | 31 +
.../src/BuildBuiltinOptions/ExpandDimsOptions.cpp | 29 +
.../src/BuildBuiltinOptions/ExpandDimsOptions.h | 31 +
.../src/BuildBuiltinOptions/FillOptions.cpp | 29 +
.../src/BuildBuiltinOptions/FillOptions.h | 31 +
.../BuildBuiltinOptions/FullyConnectedOptions.cpp | 43 +
.../BuildBuiltinOptions/FullyConnectedOptions.h | 31 +
.../BuildBuiltinOptions/GreaterEqualOptions.cpp | 29 +
.../src/BuildBuiltinOptions/GreaterEqualOptions.h | 31 +
.../src/BuildBuiltinOptions/LogicalNotOptions.cpp | 32 +
.../src/BuildBuiltinOptions/LogicalNotOptions.h | 31 +
.../src/BuildBuiltinOptions/LogicalOrOptions.cpp | 32 +
.../src/BuildBuiltinOptions/LogicalOrOptions.h | 31 +
.../src/BuildBuiltinOptions/MulOptions.cpp | 36 +
.../src/BuildBuiltinOptions/MulOptions.h | 31 +
.../src/BuildBuiltinOptions/NotEqualOptions.cpp | 29 +
.../src/BuildBuiltinOptions/NotEqualOptions.h | 31 +
.../src/BuildBuiltinOptions/PackOptions.cpp | 35 +
.../src/BuildBuiltinOptions/PackOptions.h | 31 +
.../src/BuildBuiltinOptions/PadOptions.cpp | 31 +
.../src/BuildBuiltinOptions/PadOptions.h | 31 +
.../src/BuildBuiltinOptions/Pool2DOptions.cpp | 41 +
.../src/BuildBuiltinOptions/Pool2DOptions.h | 31 +
.../src/BuildBuiltinOptions/ReducerOptions.cpp | 34 +
.../src/BuildBuiltinOptions/ReducerOptions.h | 31 +
.../src/BuildBuiltinOptions/ReshapeOptions.cpp | 37 +
.../src/BuildBuiltinOptions/ReshapeOptions.h | 31 +
.../src/BuildBuiltinOptions/ShapeOptions.cpp | 35 +
.../src/BuildBuiltinOptions/ShapeOptions.h | 31 +
.../src/BuildBuiltinOptions/SoftmaxOptions.cpp | 35 +
.../src/BuildBuiltinOptions/SoftmaxOptions.h | 31 +
.../src/BuildBuiltinOptions/SplitOptions.cpp | 34 +
.../src/BuildBuiltinOptions/SplitOptions.h | 31 +
.../src/BuildBuiltinOptions/SqueezeOptions.cpp | 37 +
.../src/BuildBuiltinOptions/SqueezeOptions.h | 31 +
.../src/BuildBuiltinOptions/SubOptions.cpp | 36 +
.../src/BuildBuiltinOptions/SubOptions.h | 31 +
.../src/BuildBuiltinOptions/TransposeOptions.cpp | 31 +
.../src/BuildBuiltinOptions/TransposeOptions.h | 31 +
compiler/tflite2circle/src/CircleModel.cpp | 238 +
compiler/tflite2circle/src/DataLookup.cpp | 113 +
compiler/tflite2circle/src/DataLookup.h | 37 +
.../src/TFLActivationFunctionType.lst | 12 +
compiler/tflite2circle/src/TFLBuiltinOptions.lst | 103 +
compiler/tflite2circle/src/TFLModel.cpp | 43 +
compiler/tflite2circle/src/TFLOperator.lst | 128 +
compiler/tflite2circle/src/TFLTensorType.lst | 16 +
compiler/tfts/CMakeLists.txt | 30 +
compiler/tfts/README.md | 3 +
compiler/tfts/check_all.sh | 72 +
compiler/tfts/requires.cmake | 2 +
compiler/v4tf/README.md | 16 +
compute/ARMComputeEx/CMakeLists.txt | 6 +-
.../arm_compute/core/CL/CLKernelLibraryEx.h | 25 +-
.../core/CL/kernels/CLArgOperationKernel.h | 25 +-
.../core/CL/kernels/CLBinaryLogicalOpKernel.h | 26 +-
.../arm_compute/core/CL/kernels/CLCastKernel.h | 25 +-
.../core/CL/kernels/CLDepthToSpaceKernel.h | 26 +-
.../core/CL/kernels/CLEmbeddingLookupKernel.h | 25 +-
.../CL/kernels/CLGEMMLowpMatrixMultiplyKernelEx.h | 117 +
.../arm_compute/core/CL/kernels/CLGatherExKernel.h | 25 +-
.../core/CL/kernels/CLHashtableLookupKernel.h | 25 +-
.../kernels/CLInstanceNormalizationLayerKernelEx.h | 16 +
.../core/CL/kernels/CLMultiplyScaleFactorKernel.h | 106 +
.../arm_compute/core/CL/kernels/CLNegKernel.h | 26 +-
.../arm_compute/core/CL/kernels/CLPReLUKernel.h | 26 +-
.../CL/kernels/CLQuantizationSymmetricKernel.h | 101 +
.../core/CL/kernels/CLReduceOperationKernel.h | 25 +-
.../core/CL/kernels/CLScaleFactorSymm8Kernel.h | 102 +
.../core/CL/kernels/CLSpaceToBatchNDKernel.h | 26 +-
.../core/CL/kernels/CLSpaceToDepthKernel.h | 26 +-
.../arm_compute/core/CL/kernels/CLTopKV2Kernel.h | 25 +-
.../kernels/CLTransposeConvLayerUpsampleKernel.h | 26 +-
.../core/CPP/kernels/CPPOneHotKernelEx.h | 110 +
.../core/CPP/kernels/CPPUpsampleKernelEx.h | 16 +
.../core/NEON/NEElementwiseOperationFuncs.h | 15 +
.../core/NEON/kernels/NEActivationLayerKernelEx.h | 135 +
.../NEON/kernels/NEBinaryLogicalOperationKernel.h | 16 +
.../arm_compute/core/NEON/kernels/NECastKernel.h | 16 +
.../NEON/kernels/NEDepthToSpaceLayerKernelEx.h | 16 +
.../core/NEON/kernels/NEElementwiseUnaryKernelEx.h | 16 +
.../core/NEON/kernels/NEEmbeddingLookupKernel.h | 16 +
.../core/NEON/kernels/NEGatherKernelEx.h | 15 +
.../core/NEON/kernels/NEHashtableLookupKernel.h | 16 +
.../kernels/NEInstanceNormalizationLayerKernelEx.h | 16 +
.../core/NEON/kernels/NEMuliplyScaleFactorKernel.h | 16 +
.../arm_compute/core/NEON/kernels/NEPReLUKernel.h | 16 +
.../NEON/kernels/NEQuantizationSymmetricKernel.h | 16 +
.../NEON/kernels/NEReductionOperationKernelEx.h | 16 +
.../NEON/kernels/NESpaceToDepthLayerKernelEx.h | 16 +
compute/ARMComputeEx/arm_compute/core/TypesEx.h | 26 +-
compute/ARMComputeEx/arm_compute/core/UtilsEx.h | 26 +-
.../core/utils/misc/ShapeCalculatorEx.h | 25 +-
.../runtime/CL/functions/CLArgOperation.h | 25 +-
.../runtime/CL/functions/CLBatchToSpaceND.h | 26 +-
.../runtime/CL/functions/CLBinaryLogicalOp.h | 26 +-
.../arm_compute/runtime/CL/functions/CLCast.h | 25 +-
.../runtime/CL/functions/CLDepthToSpace.h | 26 +-
.../runtime/CL/functions/CLEmbeddingLookup.h | 25 +-
.../CL/functions/CLFullyConnectedHybridLayer.h | 186 +
.../runtime/CL/functions/CLFullyConnectedLayerEx.h | 235 +
.../CL/functions/CLFullyConnectedReshapingLayer.h | 22 +-
.../CL/functions/CLGEMMLowpMatrixMultiplyCoreEx.h | 142 +
.../arm_compute/runtime/CL/functions/CLGatherEx.h | 25 +-
.../runtime/CL/functions/CLHashtableLookup.h | 25 +-
.../CL/functions/CLInstanceNormalizationLayerEx.h | 16 +
.../runtime/CL/functions/CLLogicalNot.h | 26 +-
.../arm_compute/runtime/CL/functions/CLNeg.h | 26 +-
.../arm_compute/runtime/CL/functions/CLPReLU.h | 26 +-
.../runtime/CL/functions/CLPixelWiseDivision.h | 25 +-
.../runtime/CL/functions/CLRNNLayerEx.h | 18 +-
.../runtime/CL/functions/CLReduceOperation.h | 29 +-
.../runtime/CL/functions/CLSpaceToBatchND.h | 26 +-
.../runtime/CL/functions/CLSpaceToDepth.h | 26 +-
.../runtime/CL/functions/CLStridedSliceEx.h | 25 +-
.../arm_compute/runtime/CL/functions/CLTopKV2.h | 25 +-
.../runtime/CL/functions/CLTransposeConvLayer.h | 19 +-
.../CL/functions/CLTransposeConvLayerUpsample.h | 27 +-
.../runtime/CPP/functions/CPPOneHotEx.h | 68 +
.../runtime/CPP/functions/CPPUpsampleEx.h | 16 +
.../arm_compute/runtime/NEON/NEFunctionsEx.h | 3 +-
.../runtime/NEON/functions/NEActivationLayerEx.h | 103 +
.../runtime/NEON/functions/NEArgMinMax.h | 81 -
.../NEON/functions/NEBinaryLogicalOperation.h | 16 +
.../arm_compute/runtime/NEON/functions/NECast.h | 16 +
.../runtime/NEON/functions/NEDepthToSpaceLayerEx.h | 16 +
.../NEON/functions/NEElementwiseUnaryLayerEx.h | 16 +
.../runtime/NEON/functions/NEEmbeddingLookup.h | 25 +-
.../NEON/functions/NEFullyConnectedHybridLayer.h | 16 +
.../NEON/functions/NEFullyConnectedLayerEx.h | 16 +
.../functions/NEGEMMLowpMatrixMultiplyCoreEx.h | 19 +-
.../runtime/NEON/functions/NEGatherEx.h | 15 +
.../runtime/NEON/functions/NEHashtableLookup.h | 25 +-
.../functions/NEInstanceNormalizationLayerEx.h | 16 +
.../arm_compute/runtime/NEON/functions/NEPReLU.h | 16 +
.../runtime/NEON/functions/NERNNLayerEx.h | 16 +
.../runtime/NEON/functions/NEReduceMeanEx.h | 16 +
.../runtime/NEON/functions/NEReduceOperation.h | 17 +
.../runtime/NEON/functions/NEReduceSum.h | 16 +
.../NEON/functions/NEReductionOperationEx.h | 16 +
.../runtime/NEON/functions/NESpaceToBatchLayerEx.h | 16 +
.../runtime/NEON/functions/NESpaceToDepthLayerEx.h | 16 +
.../runtime/NEON/functions/NETransposeConvLayer.h | 16 +
.../arm_compute/runtime/misc/functions/Utils.h | 4 +-
compute/ARMComputeEx/resolve_includes.py | 14 +
.../ARMComputeEx/src/core/CL/CLKernelLibrary.cpp | 44 +-
.../src/core/CL/cl_kernels/arg_operation.cl | 26 +-
.../core/CL/cl_kernels/arithmetic_op_quantized.cl | 26 +-
.../src/core/CL/cl_kernels/binary_logical_op.cl | 26 +-
.../ARMComputeEx/src/core/CL/cl_kernels/cast.cl | 26 +-
.../src/core/CL/cl_kernels/depth_to_space.cl | 26 +-
.../src/core/CL/cl_kernels/embedding_lookup.cl | 26 +-
.../src/core/CL/cl_kernels/gather_ex.cl | 26 +-
.../src/core/CL/cl_kernels/gemmlowp_ex.cl | 354 +
.../src/core/CL/cl_kernels/hashtable_lookup.cl | 26 +-
.../ARMComputeEx/src/core/CL/cl_kernels/helpers.h | 17 +
.../src/core/CL/cl_kernels/helpers_asymm.h | 19 +-
.../CL/cl_kernels/instance_normalization_ex.cl | 16 +
.../core/CL/cl_kernels/multiply_scale_factor.cl | 122 +
.../src/core/CL/cl_kernels/neg_tensor.cl | 26 +-
.../core/CL/cl_kernels/pixelwise_mul_quantized.cl | 26 +-
.../ARMComputeEx/src/core/CL/cl_kernels/prelu.cl | 26 +-
.../src/core/CL/cl_kernels/prelu_quantized.cl | 26 +-
.../src/core/CL/cl_kernels/quantization_symm8.cl | 136 +
.../src/core/CL/cl_kernels/reduce_operation.cl | 26 +-
.../src/core/CL/cl_kernels/scale_factor.cl | 108 +
.../src/core/CL/cl_kernels/space_to_batch.cl | 26 +-
.../src/core/CL/cl_kernels/space_to_depth.cl | 26 +-
.../ARMComputeEx/src/core/CL/cl_kernels/topkv2.cl | 25 +-
.../src/core/CL/cl_kernels/topkv2_quicksort.cl | 25 +-
.../src/core/CL/cl_kernels/topkv2_radixsort.cl | 25 +-
.../src/core/CL/kernels/CLArgOperationKernel.cpp | 26 +-
.../core/CL/kernels/CLBinaryLogicalOpKernel.cpp | 26 +-
.../src/core/CL/kernels/CLCastKernel.cpp | 37 +-
.../src/core/CL/kernels/CLDepthToSpaceKernel.cpp | 26 +-
.../core/CL/kernels/CLEmbeddingLookupKernel.cpp | 26 +-
.../kernels/CLGEMMLowpMatrixMultiplyKernelEx.cpp | 372 +
.../src/core/CL/kernels/CLGatherExKernel.cpp | 26 +-
.../core/CL/kernels/CLHashtableLookupKernel.cpp | 26 +-
.../CLInstanceNormalizationLayerKernelEx.cpp | 16 +
.../CL/kernels/CLMultiplyScaleFactorKernel.cpp | 173 +
.../src/core/CL/kernels/CLNegKernel.cpp | 26 +-
.../src/core/CL/kernels/CLPReLUKernel.cpp | 50 +-
.../CL/kernels/CLQuantizationSymmetricKernel.cpp | 172 +
.../core/CL/kernels/CLReduceOperationKernel.cpp | 26 +-
.../core/CL/kernels/CLScaleFactorSymm8Kernel.cpp | 154 +
.../src/core/CL/kernels/CLSpaceToBatchNDKernel.cpp | 30 +-
.../src/core/CL/kernels/CLSpaceToDepthKernel.cpp | 26 +-
.../src/core/CL/kernels/CLTopKV2Kernel.cpp | 26 +-
.../kernels/CLTransposeConvLayerUpsampleKernel.cpp | 26 +-
.../src/core/CPP/kernels/CPPOneHotKernelEx.cpp | 103 +
.../src/core/CPP/kernels/CPPUpsampleKernelEx.cpp | 18 +-
.../src/core/NEON/NEElementwiseOperationFuncs.cpp | 78 +-
.../NEON/kernels/NEActivationLayerKernelEx.cpp | 730 +
.../kernels/NEBinaryLogicalOperationKernel.cpp | 16 +
.../src/core/NEON/kernels/NECastKernel.cpp | 30 +-
.../NEON/kernels/NEDepthToSpaceLayerKernelEx.cpp | 16 +
.../NEON/kernels/NEElementwiseUnaryKernelEx.cpp | 16 +
.../core/NEON/kernels/NEEmbeddingLookupKernel.cpp | 16 +
.../src/core/NEON/kernels/NEGatherKernelEx.cpp | 16 +
.../core/NEON/kernels/NEHashtableLookupKernel.cpp | 18 +-
.../NEInstanceNormalizationLayerKernelEx.cpp | 16 +
.../NEON/kernels/NEMultiplyScaleFactorKernel.cpp | 22 +-
.../src/core/NEON/kernels/NEPReLUKernel.cpp | 19 +-
.../NEON/kernels/NEQuantizationSymmetricKernel.cpp | 16 +
.../NEON/kernels/NEReductionOperationKernelEx.cpp | 16 +
.../NEON/kernels/NESpaceToDepthLayerKernelEx.cpp | 16 +
compute/ARMComputeEx/src/core/UtilsEx.cpp | 26 +-
.../src/runtime/CL/functions/CLArgOperation.cpp | 26 +-
.../src/runtime/CL/functions/CLBinaryLogicalOp.cpp | 26 +-
.../src/runtime/CL/functions/CLCast.cpp | 26 +-
.../src/runtime/CL/functions/CLDepthToSpace.cpp | 26 +-
.../src/runtime/CL/functions/CLEmbeddingLookup.cpp | 26 +-
.../CL/functions/CLFullyConnectedHybridLayer.cpp | 337 +
.../CL/functions/CLFullyConnectedLayerEx.cpp | 583 +
.../functions/CLFullyConnectedReshapingLayer.cpp | 50 +-
.../functions/CLGEMMLowpMatrixMultiplyCoreEx.cpp | 180 +
.../src/runtime/CL/functions/CLGatherEx.cpp | 26 +-
.../src/runtime/CL/functions/CLHashtableLookup.cpp | 26 +-
.../functions/CLInstanceNormalizationLayerEx.cpp | 16 +
.../src/runtime/CL/functions/CLNeg.cpp | 26 +-
.../src/runtime/CL/functions/CLPReLU.cpp | 26 +-
.../src/runtime/CL/functions/CLRNNLayerEx.cpp | 16 +
.../src/runtime/CL/functions/CLReduceOperation.cpp | 26 +-
.../src/runtime/CL/functions/CLSpaceToBatchND.cpp | 26 +-
.../src/runtime/CL/functions/CLSpaceToDepth.cpp | 26 +-
.../src/runtime/CL/functions/CLTopKV2.cpp | 26 +-
.../runtime/CL/functions/CLTransposeConvLayer.cpp | 16 +
.../CL/functions/CLTransposeConvLayerUpsample.cpp | 29 +-
.../src/runtime/CPP/functions/CPPOneHotEx.cpp | 54 +
.../src/runtime/CPP/functions/CPPUpsampleEx.cpp | 16 +
.../runtime/NEON/functions/NEActivationLayerEx.cpp | 66 +
.../src/runtime/NEON/functions/NEArgMinMax.cpp | 109 -
.../NEON/functions/NEBinaryLogicalOperation.cpp | 16 +
.../src/runtime/NEON/functions/NECast.cpp | 15 +
.../NEON/functions/NEDepthToSpaceLayerEx.cpp | 15 +
.../NEON/functions/NEElementwiseUnaryLayerEx.cpp | 44 -
.../runtime/NEON/functions/NEEmbeddingLookup.cpp | 26 +-
.../NEON/functions/NEFullyConnectedHybridLayer.cpp | 20 +-
.../NEON/functions/NEFullyConnectedLayerEx.cpp | 41 +-
.../functions/NEGEMMLowpMatrixMultiplyCoreEx.cpp | 36 +-
.../src/runtime/NEON/functions/NEGatherEx.cpp | 16 +
.../runtime/NEON/functions/NEHashtableLookup.cpp | 26 +-
.../functions/NEInstanceNormalizationLayerEx.cpp | 16 +
.../src/runtime/NEON/functions/NEPReLU.cpp | 16 +
.../src/runtime/NEON/functions/NERNNLayerEx.cpp | 15 +
.../src/runtime/NEON/functions/NEReduceMeanEx.cpp | 16 +
.../runtime/NEON/functions/NEReduceOperation.cpp | 18 +
.../src/runtime/NEON/functions/NEReduceSum.cpp | 16 +
.../NEON/functions/NEReductionOperationEx.cpp | 16 +
.../NEON/functions/NESpaceToBatchLayerEx.cpp | 15 +
.../NEON/functions/NESpaceToDepthLayerEx.cpp | 15 +
.../NEON/functions/NETransposeConvLayer.cpp | 16 +
compute/cker/CMakeLists.txt | 14 +-
compute/cker/README.md | 4 +-
compute/cker/include/cker/NeonTensorUtils.h | 319 +
compute/cker/include/cker/PortableTensorUtils.h | 167 +
compute/cker/include/cker/Shape.h | 45 +-
compute/cker/include/cker/TensorUtils.h | 78 +
compute/cker/include/cker/Types.h | 231 +-
compute/cker/include/cker/Utils.h | 106 +-
compute/cker/include/cker/eigen/EigenSupport.h | 122 +
compute/cker/include/cker/eigen/Utils.h | 23 +-
.../include/cker/eigen/eigen_convolution_helpers.h | 88 +
.../cker/eigen/eigen_spatial_convolutions-inl.h | 1754 ++
.../cker/eigen/eigen_spatial_convolutions.h | 27 +
.../eigen_tensor_reduced_instantiations_oss.h | 170 +
compute/cker/include/cker/gemmlowp/FixedPoint.h | 289 -
compute/cker/include/cker/gemmlowp/GEMMSupport.h | 67 +
compute/cker/include/cker/neon/neon_check.h | 48 +
compute/cker/include/cker/operation/AveragePool.h | 361 +-
.../include/cker/operation/BinaryArithmeticOps.h | 128 +-
compute/cker/include/cker/operation/Common.h | 103 +
compute/cker/include/cker/operation/Comparison.h | 146 +
.../cker/include/cker/operation/Concatenation.h | 88 +-
compute/cker/include/cker/operation/Conv.h | 259 +-
.../cker/include/cker/operation/DepthwiseConv.h | 126 +-
compute/cker/include/cker/operation/Elementwise.h | 62 +
compute/cker/include/cker/operation/Exp.h | 43 +
.../cker/include/cker/operation/FullyConnected.h | 138 +-
compute/cker/include/cker/operation/Gather.h | 5 -
compute/cker/include/cker/operation/InstanceNorm.h | 7 -
compute/cker/include/cker/operation/MaxMin.h | 104 +
compute/cker/include/cker/operation/MaxPool.h | 152 +-
compute/cker/include/cker/operation/OneHot.h | 64 +
compute/cker/include/cker/operation/Pack.h | 62 +
compute/cker/include/cker/operation/Reduce.h | 170 +
compute/cker/include/cker/operation/Slice.h | 82 +
compute/cker/include/cker/operation/SoftMax.h | 30 +-
compute/cker/include/cker/operation/Split.h | 65 +
compute/cker/include/cker/operation/StridedSlice.h | 308 +
compute/cker/include/cker/operation/Tanh.h | 42 +
compute/cker/include/cker/operation/Transpose.h | 580 +
.../cker/include/cker/operation/TransposeConv.h | 24 -
compute/cker/include/cker/operation/Unpack.h | 63 +
.../include/cker/operation/optimized/AveragePool.h | 105 -
.../cker/operation/optimized/BinaryArithmeticOps.h | 202 +
.../cker/include/cker/operation/optimized/Conv.h | 290 +
.../cker/operation/optimized/DepthwiseConvUint8.h | 2123 ++
.../include/cker/operation/optimized/MaxPool.h | 97 -
.../cker/operation/optimized/OptimizedUtils.h | 176 +
.../include/cker/operation/optimized/SoftMax.h | 59 -
.../include/cker/operation/reference/AveragePool.h | 90 -
.../cker/operation/reference/BinaryArithmeticOps.h | 68 +
.../cker/include/cker/operation/reference/Conv.h | 197 +
.../include/cker/operation/reference/MaxPool.h | 84 -
.../include/cker/operation/reference/SoftMax.h | 70 -
compute/ncnn/CMakeLists.txt | 34 -
compute/ncnn/README.md | 9 -
compute/ncnn/include/ncnn/layer/binaryop.h | 69 -
compute/ncnn/include/ncnn/layer/instance_norm.h | 59 -
compute/ncnn/include/ncnn/mat.h | 738 -
compute/ncnn/include/ncnn/srcn/conv_type.h | 74 -
compute/ncnn/include/ncnn/srcn/srcn_conv.h | 65 -
compute/ncnn/src/layer/arm/neon_mathfun.h | 315 -
compute/ncnn/src/layer/binaryop.cc | 1640 --
compute/ncnn/src/layer/instance_norm.cc | 371 -
compute/ncnn/src/mat.cc | 940 -
compute/ncnn/src/srcn/common.h | 162 -
compute/ncnn/src/srcn/conv_sgemm_multithreads.cc | 483 -
compute/ncnn/src/srcn/conv_sgemm_multithreads.h | 86 -
compute/ncnn/src/srcn/conv_sgemm_singlethread.cc | 366 -
compute/ncnn/src/srcn/conv_sgemm_singlethread.h | 73 -
compute/ncnn/src/srcn/conv_sparse.cc | 271 -
compute/ncnn/src/srcn/conv_sparse.h | 79 -
compute/ncnn/src/srcn/conv_winograd.cc | 341 -
compute/ncnn/src/srcn/conv_winograd.h | 72 -
compute/ncnn/src/srcn/conv_winograd_batch.cc | 304 -
compute/ncnn/src/srcn/conv_winograd_batch.h | 67 -
compute/ncnn/src/srcn/deconv_sgemm_multithreads.cc | 387 -
compute/ncnn/src/srcn/deconv_sgemm_multithreads.h | 85 -
compute/ncnn/src/srcn/depthwise_conv.cc | 2684 --
compute/ncnn/src/srcn/direct_conv_colmajor.cc | 5872 ----
compute/ncnn/src/srcn/direct_conv_colmajor.h | 33 -
compute/ncnn/src/srcn/sgemm_kernel.cc | 2508 --
compute/ncnn/src/srcn/sgemm_kernel.h | 52 -
compute/ncnn/src/srcn/sgemm_pack.cc | 2316 --
compute/ncnn/src/srcn/sgemm_pack.h | 73 -
compute/ncnn/src/srcn/sgemm_singlethread.cc | 689 -
compute/ncnn/src/srcn/sgemm_singlethread.h | 88 -
compute/ncnn/src/srcn/sgemm_test.cc | 1883 --
compute/ncnn/src/srcn/srcn_conv.cc | 614 -
compute/ncnn/src/srcn/winograd.h | 148 -
docs/HowToContribute.md | 72 -
docs/UseDoxygen.md | 36 -
docs/fig/compiler_flow.png | Bin 56456 -> 0 bytes
docs/fig/nnfw_compiler_structure.png | Bin 75343 -> 0 bytes
docs/fig/nnfw_compiler_structure.pptx | Bin 40532 -> 0 bytes
docs/fig/nnfw_components.png | Bin 82620 -> 0 bytes
docs/fig/nnfw_components.pptx | Bin 46596 -> 0 bytes
docs/fig/nnfw_nativeapi_flow.png | Bin 105745 -> 0 bytes
docs/fig/nnfw_nativeapi_flow.pptx | Bin 51156 -> 0 bytes
docs/fig/nnfw_nnapi_flow.png | Bin 52314 -> 0 bytes
docs/fig/nnfw_nnapi_flow.pptx | Bin 45988 -> 0 bytes
docs/fig/nnfw_runtime_behavior.png | Bin 51473 -> 0 bytes
docs/fig/nnfw_runtime_behavior.pptx | Bin 45204 -> 0 bytes
docs/fig/nnfw_runtime_structure.png | Bin 64652 -> 0 bytes
docs/fig/nnfw_runtime_structure.pptx | Bin 41044 -> 0 bytes
docs/fig/runtime_nativeapi_flow.png | Bin 63638 -> 0 bytes
docs/nncc/README.md | 56 -
docs/nncc/design.md | 10 -
docs/nncc/getting_started.md | 73 -
docs/nncc/images/nncc_components.png | Bin 45359 -> 0 bytes
docs/nncc/images/nncc_idef0_a0.png | Bin 50434 -> 0 bytes
docs/nncc/images/nncc_idef0_a1.png | Bin 86576 -> 0 bytes
docs/nncc/images/nncc_idef0_a12.png | Bin 42778 -> 0 bytes
docs/nncc/project/detailed_level_design.md | 329 -
docs/nncc/project/development_document.md | 257 -
docs/nncc/project/high_level_design.md | 457 -
docs/nncc/project/requirements_specification.md | 272 -
docs/nncc/project/test_plan.md | 442 -
docs/nncc/project_guide.md | 27 -
docs/nncc/roadmap.md | 6 -
docs/nncc/v1.0.0/getting_started.md | 59 -
docs/nncc/v1.0.0/operation-list.md | 34 -
docs/nncc/v1.0.0/tutorial.md | 49 -
docs/nncc/v1.1.0/nncc_in_tizen_studio.md | 52 -
docs/nncc/v1.1.0/nncc_in_visual_studio.md | 61 -
docs/nnfw/2018/fig/nnfw_architecture.png | Bin 28876 -> 0 bytes
docs/nnfw/2018/fig/nnfw_architecture.pptx | Bin 72036 -> 0 bytes
docs/nnfw/2018/roadmap.md | 123 -
docs/nnfw/HowToImplementOperatorKernel.md | 1 -
docs/nnfw/fig/nnfw_architecture.png | Bin 280284 -> 0 bytes
docs/nnfw/fig/nnfw_architecture.pptx | Bin 45709 -> 0 bytes
docs/nnfw/fig/nnfw_behavior.png | Bin 14254 -> 0 bytes
docs/nnfw/fig/nnfw_behavior.pptx | Bin 59844 -> 0 bytes
docs/nnfw/howto.md | 38 -
docs/nnfw/howto/BuildTFfromSource.md | 66 -
docs/nnfw/howto/CrossBuildForAarch64.md | 77 -
docs/nnfw/howto/CrossBuildForAndroid.md | 52 -
docs/nnfw/howto/CrossBuildForArm.md | 118 -
docs/nnfw/howto/HowToAddUnittest.md | 31 -
docs/nnfw/howto/HowToRunNnpackge.md | 75 -
docs/nnfw/howto/HowToTestManualy.md | 62 -
docs/nnfw/howto/HowToUseDockerImage.md | 154 -
docs/nnfw/howto/HowToUseNNFWAPI.md | 63 -
docs/nnfw/howto/HowtoMakeSampleAppOnNnfw.md | 132 -
docs/nnfw/howto/RemoteDebuggingForVSCode.md | 147 -
docs/nnfw/howto/device/xu3-dip.png | Bin 262925 -> 0 bytes
docs/nnfw/howto/device/xu3_tizen.md | 140 -
docs/nnfw/howto/device/xu3_ubuntu.md | 114 -
docs/nnfw/howto/device/xu4_tizen.md | 228 -
docs/nnfw/howto/device/xu4_ubuntu.md | 99 -
docs/nnfw/op_list.md | 71 -
docs/nnfw/roadmap.md | 76 -
docs/nnfw/tests/Convolution_manual_3x3.xlsx | Bin 19844 -> 0 bytes
docs/nnfw/tests/Softmax_manual.xlsx | Bin 15940 -> 0 bytes
docs/release/release_note_1.0.0.md | 65 -
docs/release/release_note_1.1.0.md | 40 -
docs/release/release_note_1.4.0.md | 23 +
infra/cmake/modules/ExternalBuildTools.cmake | 7 +-
infra/cmake/packages/ARMComputeConfig.cmake | 3 +-
infra/cmake/packages/ARMComputeSourceConfig.cmake | 2 +-
infra/cmake/packages/BoostConfig.cmake | 29 +-
infra/cmake/packages/EigenConfig.cmake | 2 +
infra/cmake/packages/NNPACKSourceConfig.cmake | 2 +-
.../TensorFlowSourceConfig.cmake | 18 +
.../TensorFlowSourceConfigVersion.cmake | 10 +
infra/cmake/packages/TensorFlowVersionChecker.c | 16 +
infra/command/format | 83 +-
infra/command/gen-coverage-report | 4 +
infra/command/install-githooks | 68 +-
infra/docker/Dockerfile | 2 +-
infra/docker/Dockerfile.1804 | 4 +-
infra/doxygen/Doxyfile | 2 +-
infra/git-hooks/pre-commit.sh | 32 +
infra/git-hooks/pre-push.sh | 2 +-
infra/nncc/CMakeLists.txt | 2 +-
infra/nncc/command/utcount | 41 +
infra/nnfw/CMakeLists.txt | 8 +-
infra/nnfw/cmake/ApplyCompileFlags.cmake | 2 +-
infra/nnfw/cmake/CfgOptionFlags.cmake | 9 +-
.../buildtool/config/config_armv7l-linux.cmake | 2 +-
.../cross/toolchain_aarch64-android.cmake | 3 +-
.../cmake/options/options_aarch64-android.cmake | 2 -
.../nnfw/cmake/options/options_aarch64-tizen.cmake | 2 +-
.../nnfw/cmake/options/options_armv7l-tizen.cmake | 3 +-
infra/nnfw/cmake/packages/EigenConfig.cmake | 2 +
infra/nnfw/cmake/packages/GEMMLowpConfig.cmake | 20 +
infra/nnfw/command/copyright-check | 5 +-
infra/nnfw/command/gen-coverage-report | 59 -
infra/nnfw/config/docker.configuration | 2 +
infra/packaging/preset/20191231_windows | 3 +
infra/packaging/preset/20200115_windows | 3 +
infra/packaging/preset/20200220 | 44 +
infra/packaging/res/tf2nnpkg.20200220 | 89 +
infra/scripts/build_android_runtime_release.sh | 21 +
infra/scripts/common.sh | 0
.../scripts/docker_build_cross_aarch64_runtime.sh | 48 +
.../docker_build_cross_arm_benchmark_model.sh | 2 +-
infra/scripts/docker_build_cross_arm_neurun.sh | 48 -
.../docker_build_cross_arm_neurun_release.sh | 49 -
infra/scripts/docker_build_cross_arm_runtime.sh | 48 +
.../docker_build_cross_arm_runtime_release.sh | 49 +
infra/scripts/docker_build_test_x64.sh | 5 +-
infra/scripts/test_arm_neurun_acl_cl.sh | 31 -
infra/scripts/test_arm_neurun_acl_neon.sh | 27 -
infra/scripts/test_arm_neurun_cpu.sh | 23 -
infra/scripts/test_arm_neurun_mixed.sh | 30 -
infra/scripts/test_arm_nnpkg.sh | 2 +-
infra/scripts/test_coverage.sh | 12 +-
infra/scripts/test_neurun_interp.sh | 11 -
infra/scripts/test_ubuntu_runtime.sh | 84 +
infra/scripts/test_ubuntu_runtime_interp.sh | 12 +
infra/scripts/test_ubuntu_runtime_mixed.sh | 37 +
infra/scripts/test_x64_neurun_cpu.sh | 12 -
infra/scripts/tizen_xu4_test.sh | 28 +-
nnpackage/schema/circle_schema.fbs | 325 +-
nnpackage/schema/circle_schema_v0.fbs | 811 +
nnpackage/spec/30_custom_op.md | 2 +-
packaging/eigen.tar.gz | Bin 0 -> 2502909 bytes
packaging/gemmlowp.tar.gz | Bin 0 -> 830368 bytes
packaging/nnfw.spec | 61 +-
res/ONNXTests/UNIT_Gemm_000/test.pbtxt | 79 +
res/ONNXTests/UNIT_Gemm_001/test.pbtxt | 70 +
res/TensorFlowLiteRecipes/Abs_000/test.recipe | 17 +
res/TensorFlowLiteRecipes/Abs_000/test.reverse | 0
res/TensorFlowLiteRecipes/Add_000/test.recipe | 27 +
res/TensorFlowLiteRecipes/Add_000/test.reverse | 0
res/TensorFlowLiteRecipes/Add_U8_000/test.recipe | 30 +
res/TensorFlowLiteRecipes/Add_U8_000/test.reverse | 0
res/TensorFlowLiteRecipes/ArgMax_000/test.recipe | 30 +
res/TensorFlowLiteRecipes/ArgMax_000/test.reverse | 0
res/TensorFlowLiteRecipes/ArgMax_001/test.recipe | 30 +
res/TensorFlowLiteRecipes/ArgMax_001/test.reverse | 0
res/TensorFlowLiteRecipes/ArgMax_002/test.recipe | 30 +
res/TensorFlowLiteRecipes/ArgMax_002/test.reverse | 0
res/TensorFlowLiteRecipes/ArgMax_003/test.recipe | 30 +
res/TensorFlowLiteRecipes/ArgMax_003/test.reverse | 0
.../ArgMax_U8_000/test.recipe | 31 +
.../ArgMax_U8_000/test.reverse | 0
.../ArgMax_U8_001/test.recipe | 31 +
.../ArgMax_U8_001/test.reverse | 0
.../ArgMax_U8_002/test.recipe | 31 +
.../ArgMax_U8_002/test.reverse | 0
.../ArgMax_U8_003/test.recipe | 31 +
.../ArgMax_U8_003/test.reverse | 0
.../AveragePool2D_000/test.recipe | 24 +
.../AveragePool2D_000/test.reverse | 0
.../BatchToSpaceND_000/test.recipe | 38 +
.../BatchToSpaceND_000/test.reverse | 0
.../Concatenation_000/test.recipe | 28 +
.../Concatenation_000/test.reverse | 0
.../Concatenation_U8_000/test.recipe | 31 +
res/TensorFlowLiteRecipes/Conv2D_000/test.recipe | 44 +
res/TensorFlowLiteRecipes/Conv2D_000/test.reverse | 0
res/TensorFlowLiteRecipes/Conv2D_001/test.recipe | 44 +
res/TensorFlowLiteRecipes/Conv2D_001/test.reverse | 0
res/TensorFlowLiteRecipes/Conv2D_002/test.recipe | 45 +
.../Conv2D_U8_000/test.recipe | 48 +
res/TensorFlowLiteRecipes/Cos_000/test.recipe | 17 +
res/TensorFlowLiteRecipes/Cos_000/test.reverse | 0
.../DepthwiseConv2D_000/test.recipe | 41 +
.../DepthwiseConv2D_000/test.reverse | 0
.../DepthwiseConv2D_U8_000/test.recipe | 46 +
.../DepthwiseConv2D_U8_000/test.reverse | 0
res/TensorFlowLiteRecipes/Div_000/test.recipe | 27 +
res/TensorFlowLiteRecipes/Div_000/test.reverse | 0
res/TensorFlowLiteRecipes/Equal_000/test.recipe | 26 +
res/TensorFlowLiteRecipes/Equal_000/test.reverse | 0
res/TensorFlowLiteRecipes/Exp_000/test.recipe | 17 +
res/TensorFlowLiteRecipes/Exp_000/test.reverse | 0
.../FullyConnected_000/test.recipe | 34 +
.../FullyConnected_000/test.reverse | 0
.../FullyConnected_001/test.recipe | 34 +
.../FullyConnected_001/test.reverse | 0
.../FullyConnected_U8_000/test.recipe | 35 +
.../FullyConnected_U8_000/test.reverse | 0
.../LogicalNot_000/test.recipe | 17 +
.../LogicalNot_000/test.reverse | 0
.../LogicalOr_000/test.recipe | 24 +
.../LogicalOr_000/test.reverse | 0
.../MaxPool2D_000/test.recipe | 24 +
.../MaxPool2D_000/test.reverse | 0
.../MaxPool2D_U8_000/test.recipe | 26 +
res/TensorFlowLiteRecipes/Mean_000/test.recipe | 27 +
res/TensorFlowLiteRecipes/Mean_000/test.reverse | 0
res/TensorFlowLiteRecipes/Mul_000/test.recipe | 27 +
res/TensorFlowLiteRecipes/Mul_U8_000/test.recipe | 30 +
res/TensorFlowLiteRecipes/Pack_000/test.recipe | 28 +
res/TensorFlowLiteRecipes/Pack_000/test.reverse | 0
res/TensorFlowLiteRecipes/Pack_U8_000/test.recipe | 31 +
res/TensorFlowLiteRecipes/Pack_U8_000/test.reverse | 0
res/TensorFlowLiteRecipes/Pad_000/test.recipe | 30 +
res/TensorFlowLiteRecipes/Pad_000/test.reverse | 0
res/TensorFlowLiteRecipes/Pad_U8_000/test.recipe | 32 +
res/TensorFlowLiteRecipes/Pad_U8_000/test.reverse | 0
.../Quantization_000/test.recipe | 46 +
.../Quantization_000/test.reverse | 0
res/TensorFlowLiteRecipes/ReLU6_000/test.recipe | 17 +
res/TensorFlowLiteRecipes/ReLU6_000/test.reverse | 0
res/TensorFlowLiteRecipes/ReLU_000/test.recipe | 17 +
res/TensorFlowLiteRecipes/ReLU_000/test.reverse | 0
res/TensorFlowLiteRecipes/Reshape_000/test.recipe | 20 +
res/TensorFlowLiteRecipes/Reshape_000/test.reverse | 0
res/TensorFlowLiteRecipes/Reshape_001/test.recipe | 28 +
res/TensorFlowLiteRecipes/Reshape_001/test.reverse | 0
.../Reshape_U8_000/test.recipe | 22 +
.../Reshape_U8_000/test.reverse | 0
res/TensorFlowLiteRecipes/Rsqrt_000/test.recipe | 17 +
res/TensorFlowLiteRecipes/Rsqrt_000/test.reverse | 0
res/TensorFlowLiteRecipes/Softmax_000/test.recipe | 20 +
res/TensorFlowLiteRecipes/Softmax_000/test.reverse | 0
.../Softmax_U8_000/test.recipe | 22 +
.../Softmax_U8_000/test.reverse | 0
res/TensorFlowLiteRecipes/Sqrt_000/test.recipe | 18 +
res/TensorFlowLiteRecipes/Sqrt_000/test.reverse | 0
res/TensorFlowLiteRecipes/Sub_000/test.recipe | 27 +
res/TensorFlowLiteRecipes/Sub_000/test.reverse | 0
res/TensorFlowLiteRecipes/Sub_001/test.recipe | 42 +
res/TensorFlowLiteRecipes/Sub_001/test.reverse | 0
res/TensorFlowLiteRecipes/Sub_U8_000/test.recipe | 30 +
res/TensorFlowLiteRecipes/Sub_U8_000/test.reverse | 0
.../Transpose_000/test.recipe | 27 +
.../Transpose_000/test.reverse | 0
res/TensorFlowLiteSchema/1.13.1/schema.fbs | 794 +
res/TensorFlowLiteSchema/1.14.0/schema.fbs | 873 +
res/TensorFlowLiteSchema/1.15.2/schema.fbs | 922 +
res/TensorFlowLiteSchema/2.1.0/schema.fbs | 940 +
res/TensorFlowLiteSchema/README.md | 7 +
res/TensorFlowLiteSchema/SCHEMA.lst | 5 +
res/TensorFlowLiteSchema/download.sh | 9 +
res/TensorFlowPythonExamples/.gitignore | 1 +
res/TensorFlowPythonExamples/README.md | 31 +
.../examples/abs/__init__.py | 4 +
.../examples/add/__init__.py | 5 +
.../examples/argmax/__init__.py | 4 +
.../examples/biasadd/__init__.py | 4 +
.../examples/cos/__init__.py | 4 +
.../examples/div/__init__.py | 5 +
.../examples/elu/__init__.py | 4 +
.../examples/exp/__init__.py | 4 +
.../examples/floor/__init__.py | 4 +
.../examples/floordiv/__init__.py | 5 +
.../examples/greater/__init__.py | 5 +
.../examples/greater_equal/__init__.py | 5 +
.../examples/leaky_relu/__init__.py | 4 +
.../examples/less/__init__.py | 5 +
.../examples/less_equal/__init__.py | 5 +
.../examples/logical_not/__init__.py | 4 +
.../examples/logical_or/__init__.py | 5 +
.../examples/matmul/__init__.py | 5 +
.../examples/multiply/__init__.py | 5 +
.../examples/not_equal/__init__.py | 5 +
.../examples/pack/__init__.py | 5 +
.../examples/pad/__init__.py | 5 +
.../examples/pow/__init__.py | 5 +
.../examples/prelu/__init__.py | 7 +
.../examples/relu/__init__.py | 4 +
.../examples/relu6/__init__.py | 4 +
.../examples/reshape/__init.py__ | 4 +
.../examples/resize_bilinear/__init__.py | 4 +
.../examples/resize_nearest_neighbor/__init__.py | 4 +
.../examples/rsqrt/__init__.py | 4 +
.../examples/sigmoid/__init__.py | 4 +
.../examples/softmax/__init__.py | 4 +
.../examples/sqrt/__init__.py | 4 +
.../examples/subtract/__init__.py | 5 +
.../examples/tanh/__init__.py | 4 +
.../examples/yuv_to_rgb/__init__.py | 4 +
res/TensorFlowPythonExamples/requirements.txt | 18 +
res/TensorFlowPythonExamples/tfpem.py | 25 +
res/TensorFlowTests/NET_0003/test.py | 0
res/TensorFlowTests/NET_0004/test.py | 0
res/TensorFlowTests/UNIT_Maximum_000/test.info | 3 +
res/TensorFlowTests/UNIT_Maximum_000/test.pbtxt | 70 +
res/TensorFlowTests/UNIT_Maximum_001/test.info | 3 +
res/TensorFlowTests/UNIT_Maximum_001/test.pbtxt | 70 +
res/TensorFlowTests/UNIT_Maximum_002/test.info | 3 +
res/TensorFlowTests/UNIT_Maximum_002/test.pbtxt | 61 +
runtime/contrib/README.md | 10 -
.../TFLiteSharp/TFLiteNative/include/tflite_log.h | 2 +-
.../TFLiteNative/include/tflite_nativewrapper.h | 2 +-
.../TFLiteNative/src/tflite_nativewrapper.cpp | 2 +-
.../contrib/android_benchmark_app/CMakeLists.txt | 10 +-
runtime/contrib/android_benchmark_app/README.md | 4 +-
.../contrib/android_benchmark_app/cpp/ndk_main.cpp | 16 +
.../contrib/android_benchmark_app/cpp/ndk_main.h | 16 +
runtime/contrib/android_tflite/builtin_ops_jni.cc | 31 +-
runtime/contrib/custom_op/customOp-workflow.png | Bin 22082 -> 0 bytes
runtime/contrib/heap_trace/CMakeLists.txt | 5 +
.../contrib/heap_trace/src/aligned_alloc_stub.cc | 45 +
runtime/contrib/heap_trace/src/calloc_stub.cc | 46 +
.../heap_trace/src/cl_retain_mem_object_stub.cc | 43 +
runtime/contrib/heap_trace/src/free_stub.cc | 7 +
runtime/contrib/heap_trace/src/malloc_stub.cc | 6 +
.../memory_pool_for_symbol_searcher_internals.cc | 21 +
.../memory_pool_for_symbol_searcher_internals.h | 78 +
.../contrib/heap_trace/src/posix_memalign_stub.cc | 46 +
runtime/contrib/heap_trace/src/realloc_stub.cc | 6 +
runtime/contrib/heap_trace/src/symbol_searcher.cc | 22 +-
runtime/contrib/heap_trace/src/symbol_searcher.h | 4 +
runtime/contrib/heap_trace/src/trace.cc | 32 +-
runtime/contrib/heap_trace/src/trace.h | 15 +-
runtime/contrib/heap_trace/src/valloc_stub.cc | 6 +
runtime/contrib/heap_trace/tests/CMakeLists.txt | 5 +
.../tests/src/aligned_alloc_interception_test.cc | 90 +
.../tests/src/calloc_interception_test.cc | 91 +
.../src/cl_release_mem_object_interception_test.cc | 23 +
.../src/cl_retain_mem_object_interception_test.cc | 85 +
.../heap_trace/tests/src/free_interception_test.cc | 17 +
.../tests/src/malloc_interception_test.cc | 18 +-
...mory_pool_for_symbol_searcher_internals_test.cc | 69 +
.../tests/src/posix_memalign_interception_test.cc | 101 +
.../tests/src/realloc_interception_test.cc | 20 +-
.../heap_trace/tests/src/symbol_searcher_test.cc | 28 +-
.../tests/src/valloc_interception_test.cc | 18 +-
runtime/contrib/hi_perf_cpu/CMakeLists.txt | 47 +
.../hi_perf_cpu/HighPerformanceBackend.test.cc | 42 +
runtime/contrib/hi_perf_cpu/KernelGenerator.cc | 18 +
runtime/contrib/hi_perf_cpu/KernelGenerator.h | 47 +
runtime/contrib/hi_perf_cpu/TensorBuilder.cc | 18 +
runtime/contrib/hi_perf_cpu/TensorBuilder.h | 44 +
runtime/contrib/labs/jniacl/src/jniacl_main.cc | 23 +-
runtime/contrib/labs/tflite_examples/src/conv.cpp | 6 +-
runtime/contrib/logging/src/nnapi_logging.cc | 18 +-
runtime/contrib/mlapse/tfl/CMakeLists.txt | 1 -
runtime/contrib/mlapse/tfl/driver.cc | 11 +-
.../contrib/mlapse/tfl/mlapse/benchmark_observer.h | 2 +-
.../contrib/mlapse/tfl/mlapse/benchmark_runner.h | 2 +-
runtime/contrib/pure_arm_compute/CMakeLists.txt | 2 +-
.../contrib/pure_arm_compute/src/compilation.cc | 159 +-
.../pure_arm_compute/src/internal/MatrixSink.h | 4 +-
.../pure_arm_compute/src/internal/MatrixSource.h | 4 +-
.../contrib/pure_arm_compute/src/internal/Sinks.h | 2 +-
.../pure_arm_compute/src/internal/Tensor3DSink.h | 4 +-
.../pure_arm_compute/src/internal/Tensor3DSource.h | 4 +-
.../pure_arm_compute/src/internal/arm_compute.cc | 6 +-
.../pure_arm_compute/src/internal/arm_compute.h | 13 +-
.../src/internal/arm_compute/Cast.h | 10 +-
.../src/internal/op/BatchToSpaceNd.cc | 3 +-
.../pure_arm_compute/src/internal/op/Mean.h | 12 +-
runtime/contrib/pure_arm_compute/src/memory.cc | 4 +-
runtime/contrib/pure_arm_compute/src/model.cc | 128 +-
runtime/contrib/style_transfer_app/CMakeLists.txt | 40 +
runtime/contrib/style_transfer_app/README.md | 23 +
runtime/contrib/style_transfer_app/src/args.cc | 96 +
runtime/contrib/style_transfer_app/src/args.h | 53 +
.../style_transfer_app/src/bitmap_helper.cc | 236 +
.../contrib/style_transfer_app/src/bitmap_helper.h | 61 +
.../contrib/style_transfer_app/src/jpeg_helper.cc | 132 +
.../contrib/style_transfer_app/src/jpeg_helper.h | 43 +
.../style_transfer_app/src/style_transfer_app.cc | 301 +
.../contrib/tflite_classify/src/tflite_classify.cc | 14 +-
runtime/contrib/tflite_test/tflite_test.cpp | 7 +-
.../libs/benchmark/include/benchmark/CsvWriter.h | 1 +
runtime/libs/benchmark/include/benchmark/Phase.h | 14 +
runtime/libs/benchmark/include/benchmark/Result.h | 2 +-
runtime/libs/benchmark/include/benchmark/Util.h | 9 +-
runtime/libs/benchmark/src/CsvWriter.cpp | 7 +-
runtime/libs/benchmark/src/MemoryPoller.cpp | 2 +-
runtime/libs/cpp14/CMakeLists.txt | 2 -
runtime/libs/cpp14/include/cpp14/memory.h | 66 -
runtime/libs/jsoncpp/.FORMATDENY | 0
runtime/libs/misc/CMakeLists.txt | 6 +
.../libs/misc/examples/tensor_index_iterator.cpp | 2 +-
runtime/libs/misc/include/misc/EventRecorder.h | 1 +
runtime/libs/misc/include/misc/benchmark.h | 4 +-
runtime/libs/misc/include/misc/string_helpers.h | 2 +-
runtime/libs/misc/src/tensor/Comparator.cpp | 16 +
.../libs/profiling/include/profiling/profiling.h | 2 +-
runtime/libs/profiling/include/profiling/time.h | 30 +-
runtime/libs/profiling/src/profiling/time.cpp | 30 +-
runtime/libs/rua/core/include/rua/Service.h | 1 +
runtime/libs/rua/dyn/include/rua/DynamicBinder.h | 2 +-
runtime/libs/rua/dyn/src/DynamicBinder.cpp | 1 +
runtime/libs/rua/shim/include/rua/Shim.h | 1 +
runtime/libs/tflite/CMakeLists.txt | 10 +
runtime/libs/tflite/include/tflite/Diff.h | 1 +
runtime/libs/tflite/port/1.13.1/CMakeLists.txt | 2 -
.../port/1.13.1/include/tflite/ext/kernels/Abs.h | 41 -
.../1.13.1/include/tflite/ext/kernels/CustomOps.h | 6 -
.../include/tflite/ext/kernels/TensorFlowMax.h | 75 -
.../include/tflite/ext/kernels/TensorFlowSum.h | 41 -
.../libs/tflite/port/1.13.1/src/kernels/Abs.cpp | 103 -
.../port/1.13.1/src/kernels/TensorFlowMax.cpp | 405 -
.../port/1.13.1/src/kernels/TensorFlowSum.cpp | 400 -
.../tflite/port/1.13.1/src/kernels/register.cpp | 3 -
.../libs/tflite/port/1.13.1/src/nnapi_delegate.cpp | 196 +-
.../nnapi_delegate_ex_AddOpsAndParams_lambda.inc | 32 +-
runtime/libs/tflite/src/Diff.cpp | 17 +-
runtime/libs/tflite/src/TensorShapeUtils.cpp | 16 +
runtime/neurun/CMakeLists.txt | 16 -
runtime/neurun/api/CMakeLists.txt | 21 -
runtime/neurun/api/include/nnfw.h | 378 -
runtime/neurun/api/include/nnfw_debug.h | 24 -
runtime/neurun/api/include/nnfw_dev.h | 65 -
runtime/neurun/api/src/CustomKernel.cc | 98 -
runtime/neurun/api/src/CustomKernel.h | 59 -
runtime/neurun/api/src/CustomKernelRegistry.cc | 64 -
runtime/neurun/api/src/CustomKernelRegistry.h | 64 -
runtime/neurun/api/src/OpMap.lst | 89 -
runtime/neurun/api/src/nnfw_api.cc | 267 -
runtime/neurun/api/src/nnfw_api_internal.cc | 435 -
runtime/neurun/api/src/nnfw_api_internal.h | 84 -
runtime/neurun/api/src/nnfw_debug.cc | 24 -
runtime/neurun/api/src/nnfw_debug_internal.cc | 25 -
runtime/neurun/api/src/nnfw_debug_internal.h | 29 -
runtime/neurun/backend/CMakeLists.txt | 10 -
runtime/neurun/backend/acl_cl/Backend.h | 65 -
runtime/neurun/backend/acl_cl/CLTimer.h | 108 -
runtime/neurun/backend/acl_cl/CMakeLists.txt | 21 -
runtime/neurun/backend/acl_cl/Config.cc | 50 -
runtime/neurun/backend/acl_cl/Config.h | 45 -
.../neurun/backend/acl_cl/ConstantInitializer.cc | 266 -
.../neurun/backend/acl_cl/ConstantInitializer.h | 63 -
runtime/neurun/backend/acl_cl/KernelGenerator.cc | 2151 --
runtime/neurun/backend/acl_cl/KernelGenerator.h | 112 -
.../backend/acl_cl/PluginClassesAllocator.cc | 33 -
runtime/neurun/backend/acl_cl/ShapeFixer.cc | 434 -
runtime/neurun/backend/acl_cl/ShapeFixer.h | 110 -
runtime/neurun/backend/acl_cl/TensorBuilder.h | 39 -
runtime/neurun/backend/acl_cl/TensorManager.h | 80 -
runtime/neurun/backend/acl_cl/TensorRegister.h | 51 -
.../neurun/backend/acl_cl/operand/CLSubTensor.cc | 44 -
.../neurun/backend/acl_cl/operand/CLSubTensor.h | 63 -
runtime/neurun/backend/acl_cl/operand/CLTensor.cc | 62 -
runtime/neurun/backend/acl_cl/operand/CLTensor.h | 75 -
runtime/neurun/backend/acl_cl/operand/ICLTensor.cc | 45 -
runtime/neurun/backend/acl_cl/operand/ICLTensor.h | 50 -
runtime/neurun/backend/acl_common/AclFunction.h | 60 -
.../backend/acl_common/AclInternalBufferManager.h | 97 -
.../backend/acl_common/AclLinearMemoryManager.h | 110 -
.../neurun/backend/acl_common/AclMemoryManager.h | 98 -
.../neurun/backend/acl_common/AclTensorManager.h | 300 -
.../neurun/backend/acl_common/AclTensorRegister.cc | 49 -
.../neurun/backend/acl_common/AclTensorRegister.h | 56 -
runtime/neurun/backend/acl_common/CMakeLists.txt | 19 -
runtime/neurun/backend/acl_common/Convert.cc | 193 -
runtime/neurun/backend/acl_common/Convert.h | 68 -
runtime/neurun/backend/acl_common/IACLTensor.cc | 63 -
runtime/neurun/backend/acl_common/IACLTensor.h | 62 -
runtime/neurun/backend/acl_common/Swizzle.h | 160 -
.../neurun/backend/acl_common/TemplTensorBuilder.h | 612 -
runtime/neurun/backend/acl_neon/Backend.h | 65 -
runtime/neurun/backend/acl_neon/CMakeLists.txt | 21 -
runtime/neurun/backend/acl_neon/Config.cc | 30 -
runtime/neurun/backend/acl_neon/Config.h | 49 -
.../neurun/backend/acl_neon/ConstantInitializer.cc | 246 -
.../neurun/backend/acl_neon/ConstantInitializer.h | 60 -
runtime/neurun/backend/acl_neon/KernelGenerator.cc | 2152 --
runtime/neurun/backend/acl_neon/KernelGenerator.h | 111 -
.../backend/acl_neon/PluginClassesAllocator.cc | 33 -
runtime/neurun/backend/acl_neon/ShapeFixer.cc | 439 -
runtime/neurun/backend/acl_neon/ShapeFixer.h | 109 -
runtime/neurun/backend/acl_neon/TensorBuilder.h | 39 -
runtime/neurun/backend/acl_neon/TensorManager.h | 78 -
runtime/neurun/backend/acl_neon/TensorRegister.cc | 30 -
runtime/neurun/backend/acl_neon/TensorRegister.h | 51 -
.../neurun/backend/acl_neon/operand/INETensor.cc | 33 -
.../neurun/backend/acl_neon/operand/INETensor.h | 46 -
.../neurun/backend/acl_neon/operand/NESubTensor.cc | 44 -
.../neurun/backend/acl_neon/operand/NESubTensor.h | 63 -
.../neurun/backend/acl_neon/operand/NETensor.cc | 45 -
runtime/neurun/backend/acl_neon/operand/NETensor.h | 64 -
runtime/neurun/backend/cpu/Backend.h | 64 -
runtime/neurun/backend/cpu/CMakeLists.txt | 16 -
runtime/neurun/backend/cpu/Config.cc | 30 -
runtime/neurun/backend/cpu/Config.h | 53 -
runtime/neurun/backend/cpu/ConstantInitializer.cc | 68 -
runtime/neurun/backend/cpu/ConstantInitializer.h | 55 -
runtime/neurun/backend/cpu/KernelGenerator.cc | 624 -
runtime/neurun/backend/cpu/KernelGenerator.h | 71 -
runtime/neurun/backend/cpu/MemoryManager.cc | 91 -
runtime/neurun/backend/cpu/MemoryManager.h | 63 -
.../neurun/backend/cpu/PluginClassesAllocator.cc | 33 -
runtime/neurun/backend/cpu/ShapeFixer.cc | 135 -
runtime/neurun/backend/cpu/ShapeFixer.h | 65 -
runtime/neurun/backend/cpu/TensorBuilder.cc | 104 -
runtime/neurun/backend/cpu/TensorBuilder.h | 88 -
runtime/neurun/backend/cpu/TensorManager.cc | 95 -
runtime/neurun/backend/cpu/TensorManager.h | 64 -
runtime/neurun/backend/cpu/TensorRegister.cc | 35 -
runtime/neurun/backend/cpu/TensorRegister.h | 50 -
runtime/neurun/backend/cpu/kernel/AddLayer.cc | 101 -
runtime/neurun/backend/cpu/kernel/AddLayer.h | 77 -
runtime/neurun/backend/cpu/kernel/AvgPoolLayer.cc | 116 -
runtime/neurun/backend/cpu/kernel/AvgPoolLayer.h | 85 -
runtime/neurun/backend/cpu/kernel/ConcatLayer.cc | 137 -
runtime/neurun/backend/cpu/kernel/ConcatLayer.h | 73 -
.../neurun/backend/cpu/kernel/ConvolutionLayer.cc | 140 -
.../neurun/backend/cpu/kernel/ConvolutionLayer.h | 88 -
.../cpu/kernel/DepthwiseConvolutionLayer.cc | 143 -
.../backend/cpu/kernel/DepthwiseConvolutionLayer.h | 90 -
.../backend/cpu/kernel/FullyConnectedLayer.cc | 119 -
.../backend/cpu/kernel/FullyConnectedLayer.h | 77 -
runtime/neurun/backend/cpu/kernel/GatherLayer.cc | 79 -
runtime/neurun/backend/cpu/kernel/GatherLayer.h | 74 -
runtime/neurun/backend/cpu/kernel/LogisticLayer.cc | 75 -
runtime/neurun/backend/cpu/kernel/LogisticLayer.h | 69 -
runtime/neurun/backend/cpu/kernel/MaxPoolLayer.cc | 116 -
runtime/neurun/backend/cpu/kernel/MaxPoolLayer.h | 85 -
runtime/neurun/backend/cpu/kernel/MulLayer.cc | 101 -
runtime/neurun/backend/cpu/kernel/MulLayer.h | 77 -
.../neurun/backend/cpu/kernel/OperationUtils.cc | 273 -
runtime/neurun/backend/cpu/kernel/OperationUtils.h | 152 -
runtime/neurun/backend/cpu/kernel/PadLayer.cc | 76 -
runtime/neurun/backend/cpu/kernel/PadLayer.h | 75 -
runtime/neurun/backend/cpu/kernel/PermuteLayer.cc | 71 -
runtime/neurun/backend/cpu/kernel/PermuteLayer.h | 209 -
runtime/neurun/backend/cpu/kernel/ReshapeLayer.cc | 54 -
runtime/neurun/backend/cpu/kernel/ReshapeLayer.h | 65 -
runtime/neurun/backend/cpu/kernel/SoftMaxLayer.cc | 172 -
runtime/neurun/backend/cpu/kernel/SoftMaxLayer.h | 71 -
runtime/neurun/backend/cpu/kernel/SubLayer.cc | 100 -
runtime/neurun/backend/cpu/kernel/SubLayer.h | 77 -
runtime/neurun/backend/cpu/operand/Tensor.cc | 45 -
runtime/neurun/backend/cpu/operand/Tensor.h | 77 -
runtime/neurun/backend/cpu_common/CMakeLists.txt | 28 -
runtime/neurun/backend/cpu_common/MemoryPlanner.cc | 220 -
runtime/neurun/backend/cpu_common/MemoryPlanner.h | 217 -
.../backend/cpu_common/MemoryPlanner.test.cc | 193 -
.../backend/cpu_common/MemoryPlannerFactory.cc | 51 -
.../backend/cpu_common/MemoryPlannerFactory.h | 45 -
runtime/neurun/backend/hi_perf_cpu/CMakeLists.txt | 44 -
.../hi_perf_cpu/HighPerformanceBackend.test.cc | 42 -
.../neurun/backend/hi_perf_cpu/KernelGenerator.cc | 18 -
.../neurun/backend/hi_perf_cpu/KernelGenerator.h | 47 -
.../neurun/backend/hi_perf_cpu/TensorBuilder.cc | 18 -
runtime/neurun/backend/hi_perf_cpu/TensorBuilder.h | 44 -
runtime/neurun/backend/srcn/Backend.h | 64 -
runtime/neurun/backend/srcn/CMakeLists.txt | 21 -
runtime/neurun/backend/srcn/Config.cc | 30 -
runtime/neurun/backend/srcn/Config.h | 46 -
runtime/neurun/backend/srcn/ConstantInitializer.cc | 191 -
runtime/neurun/backend/srcn/ConstantInitializer.h | 60 -
runtime/neurun/backend/srcn/Convert.cc | 75 -
runtime/neurun/backend/srcn/Convert.h | 46 -
runtime/neurun/backend/srcn/KernelGenerator.cc | 275 -
runtime/neurun/backend/srcn/KernelGenerator.h | 59 -
runtime/neurun/backend/srcn/MemoryManager.cc | 92 -
runtime/neurun/backend/srcn/MemoryManager.h | 63 -
.../neurun/backend/srcn/PluginClassesAllocator.cc | 33 -
runtime/neurun/backend/srcn/ShapeFixer.cc | 47 -
runtime/neurun/backend/srcn/ShapeFixer.h | 53 -
runtime/neurun/backend/srcn/Swizzle.h | 84 -
runtime/neurun/backend/srcn/TensorBuilder.cc | 107 -
runtime/neurun/backend/srcn/TensorBuilder.h | 89 -
runtime/neurun/backend/srcn/TensorManager.cc | 95 -
runtime/neurun/backend/srcn/TensorManager.h | 65 -
runtime/neurun/backend/srcn/TensorRegister.cc | 118 -
runtime/neurun/backend/srcn/TensorRegister.h | 55 -
runtime/neurun/backend/srcn/kernel/AddLayer.cc | 123 -
runtime/neurun/backend/srcn/kernel/AddLayer.h | 80 -
.../neurun/backend/srcn/kernel/ConvolutionLayer.cc | 233 -
.../neurun/backend/srcn/kernel/ConvolutionLayer.h | 89 -
.../srcn/kernel/DepthwiseConvolutionLayer.cc | 212 -
.../srcn/kernel/DepthwiseConvolutionLayer.h | 85 -
.../backend/srcn/kernel/InstanceNormLayer.cc | 155 -
.../neurun/backend/srcn/kernel/InstanceNormLayer.h | 77 -
.../neurun/backend/srcn/kernel/OperationUtils.cc | 139 -
.../neurun/backend/srcn/kernel/OperationUtils.h | 84 -
.../backend/srcn/kernel/TransposeConvLayer.cc | 136 -
.../backend/srcn/kernel/TransposeConvLayer.h | 83 -
runtime/neurun/backend/srcn/operand/Tensor.cc | 45 -
runtime/neurun/backend/srcn/operand/Tensor.h | 79 -
runtime/neurun/core/CMakeLists.txt | 18 -
runtime/neurun/core/include/backend/Backend.h | 67 -
.../core/include/backend/CustomKernelBuilder.h | 69 -
runtime/neurun/core/include/backend/ExecTime.h | 111 -
runtime/neurun/core/include/backend/IConfig.h | 47 -
.../core/include/backend/IConstantInitializer.h | 288 -
.../neurun/core/include/backend/IKernelGenerator.h | 63 -
.../neurun/core/include/backend/IMemoryManager.h | 49 -
runtime/neurun/core/include/backend/IShapeFixer.h | 55 -
.../neurun/core/include/backend/ITensorBuilder.h | 89 -
.../neurun/core/include/backend/ITensorManager.h | 56 -
.../neurun/core/include/backend/ITensorRegister.h | 164 -
runtime/neurun/core/include/backend/JSONExecTime.h | 96 -
.../neurun/core/include/backend/operand/ITensor.h | 54 -
runtime/neurun/core/include/compiler/Compiler.h | 91 -
.../core/include/compiler/IExecutionBuilder.h | 39 -
.../neurun/core/include/compiler/SubTensorInfo.h | 83 -
runtime/neurun/core/include/exec/Execution.h | 144 -
.../neurun/core/include/exec/ExecutionObservers.h | 83 -
runtime/neurun/core/include/exec/IExecutor.h | 72 -
runtime/neurun/core/include/exec/IFunction.h | 37 -
runtime/neurun/core/include/exec/IODescription.h | 66 -
runtime/neurun/core/include/exec/NopFunction.h | 54 -
runtime/neurun/core/include/ir/BackendSet.h | 40 -
runtime/neurun/core/include/ir/Data.h | 75 -
runtime/neurun/core/include/ir/DataType.h | 62 -
runtime/neurun/core/include/ir/Graph.h | 153 -
runtime/neurun/core/include/ir/Index.h | 42 -
runtime/neurun/core/include/ir/InternalType.h | 68 -
runtime/neurun/core/include/ir/Layout.h | 67 -
runtime/neurun/core/include/ir/LowerInfoMap.h | 42 -
runtime/neurun/core/include/ir/OpCode.h | 56 -
runtime/neurun/core/include/ir/OpSequence.h | 106 -
runtime/neurun/core/include/ir/Operand.h | 130 -
runtime/neurun/core/include/ir/OperandConstraint.h | 58 -
runtime/neurun/core/include/ir/OperandIndexMap.h | 34 -
.../neurun/core/include/ir/OperandIndexSequence.h | 60 -
runtime/neurun/core/include/ir/OperandInfo.h | 90 -
runtime/neurun/core/include/ir/Operands.h | 39 -
runtime/neurun/core/include/ir/Operation.h | 71 -
.../neurun/core/include/ir/OperationIndexList.h | 59 -
runtime/neurun/core/include/ir/OperationIndexMap.h | 34 -
runtime/neurun/core/include/ir/OperationVisitor.h | 52 -
.../neurun/core/include/ir/Operations.Include.h | 83 -
runtime/neurun/core/include/ir/Operations.h | 36 -
runtime/neurun/core/include/ir/Operations.lst | 86 -
runtime/neurun/core/include/ir/Shape.h | 84 -
runtime/neurun/core/include/ir/Subgraphs.h | 87 -
runtime/neurun/core/include/ir/TypeInfo.h | 59 -
runtime/neurun/core/include/ir/operand/LowerInfo.h | 93 -
.../neurun/core/include/ir/operand/ParentInfo.h | 77 -
.../neurun/core/include/ir/operand/PermuteFactor.h | 130 -
runtime/neurun/core/include/ir/operation/Abs.h | 49 -
runtime/neurun/core/include/ir/operation/Add.h | 62 -
runtime/neurun/core/include/ir/operation/ArgMax.h | 62 -
.../neurun/core/include/ir/operation/AvgPool2D.h | 69 -
.../core/include/ir/operation/BatchToSpaceND.h | 50 -
runtime/neurun/core/include/ir/operation/Cast.h | 49 -
.../neurun/core/include/ir/operation/Comparison.h | 72 -
runtime/neurun/core/include/ir/operation/Concat.h | 59 -
runtime/neurun/core/include/ir/operation/Conv2D.h | 68 -
runtime/neurun/core/include/ir/operation/Custom.h | 66 -
.../core/include/ir/operation/DepthToSpace.h | 63 -
.../core/include/ir/operation/DepthwiseConv2D.h | 69 -
.../neurun/core/include/ir/operation/Dequantize.h | 49 -
runtime/neurun/core/include/ir/operation/Div.h | 62 -
.../core/include/ir/operation/EmbeddingLookup.h | 50 -
runtime/neurun/core/include/ir/operation/Exp.h | 49 -
runtime/neurun/core/include/ir/operation/Floor.h | 51 -
.../core/include/ir/operation/FullyConnected.h | 66 -
runtime/neurun/core/include/ir/operation/Gather.h | 65 -
.../core/include/ir/operation/HashtableLookup.h | 57 -
.../core/include/ir/operation/InstanceNorm.h | 65 -
.../core/include/ir/operation/L2Normalization.h | 62 -
.../neurun/core/include/ir/operation/L2Pool2D.h | 68 -
runtime/neurun/core/include/ir/operation/LSTM.h | 89 -
.../ir/operation/LocalResponseNormalization.h | 66 -
.../neurun/core/include/ir/operation/LogicalAnd.h | 50 -
.../neurun/core/include/ir/operation/LogicalNot.h | 49 -
.../neurun/core/include/ir/operation/LogicalOr.h | 50 -
.../neurun/core/include/ir/operation/Logistic.h | 49 -
.../neurun/core/include/ir/operation/LowerInfo.h | 54 -
runtime/neurun/core/include/ir/operation/Max.h | 50 -
.../neurun/core/include/ir/operation/MaxPool2D.h | 68 -
runtime/neurun/core/include/ir/operation/Mean.h | 62 -
runtime/neurun/core/include/ir/operation/Min.h | 50 -
runtime/neurun/core/include/ir/operation/Mul.h | 62 -
runtime/neurun/core/include/ir/operation/Neg.h | 49 -
runtime/neurun/core/include/ir/operation/OneHot.h | 60 -
runtime/neurun/core/include/ir/operation/PReLU.h | 50 -
runtime/neurun/core/include/ir/operation/Pack.h | 53 -
runtime/neurun/core/include/ir/operation/Pad.h | 63 -
runtime/neurun/core/include/ir/operation/Permute.h | 78 -
runtime/neurun/core/include/ir/operation/RNN.h | 70 -
runtime/neurun/core/include/ir/operation/RSQRT.h | 49 -
runtime/neurun/core/include/ir/operation/ReLU.h | 49 -
runtime/neurun/core/include/ir/operation/ReLU1.h | 49 -
runtime/neurun/core/include/ir/operation/ReLU6.h | 49 -
.../neurun/core/include/ir/operation/ReduceMax.h | 65 -
.../neurun/core/include/ir/operation/ReduceMin.h | 65 -
.../neurun/core/include/ir/operation/ReduceSum.h | 63 -
runtime/neurun/core/include/ir/operation/Reshape.h | 51 -
.../core/include/ir/operation/ResizeBilinear.h | 64 -
runtime/neurun/core/include/ir/operation/SQRT.h | 49 -
runtime/neurun/core/include/ir/operation/Slice.h | 64 -
runtime/neurun/core/include/ir/operation/Softmax.h | 63 -
.../core/include/ir/operation/SpaceToBatchND.h | 53 -
.../core/include/ir/operation/SpaceToDepth.h | 63 -
runtime/neurun/core/include/ir/operation/Split.h | 59 -
.../core/include/ir/operation/SquaredDifference.h | 50 -
runtime/neurun/core/include/ir/operation/Squeeze.h | 62 -
.../core/include/ir/operation/StridedSlice.h | 69 -
runtime/neurun/core/include/ir/operation/Sub.h | 62 -
runtime/neurun/core/include/ir/operation/Tanh.h | 49 -
runtime/neurun/core/include/ir/operation/TopKV2.h | 69 -
.../neurun/core/include/ir/operation/Transpose.h | 64 -
.../core/include/ir/operation/TransposeConv.h | 67 -
runtime/neurun/core/include/ir/operation/Unpack.h | 59 -
runtime/neurun/core/include/util/Config.lst | 43 -
runtime/neurun/core/include/util/ConfigSource.h | 55 -
runtime/neurun/core/include/util/Coordinates.h | 103 -
runtime/neurun/core/include/util/EnvConfigSource.h | 41 -
.../core/include/util/EventCollectorGlobal.h | 155 -
.../neurun/core/include/util/GeneralConfigSource.h | 44 -
runtime/neurun/core/include/util/IConfigSource.h | 46 -
runtime/neurun/core/include/util/ITimer.h | 59 -
runtime/neurun/core/include/util/Index.h | 154 -
runtime/neurun/core/include/util/ObjectManager.h | 144 -
runtime/neurun/core/include/util/Padding.h | 41 -
runtime/neurun/core/include/util/Set.h | 166 -
runtime/neurun/core/include/util/ShapeInference.h | 59 -
runtime/neurun/core/include/util/Utils.h | 51 -
.../core/include/util/feature/Coordinate4D.h | 111 -
.../neurun/core/include/util/feature/nchw/Reader.h | 120 -
.../neurun/core/include/util/feature/nchw/View.h | 138 -
.../neurun/core/include/util/feature/nhwc/Reader.h | 121 -
.../neurun/core/include/util/feature/nhwc/View.h | 140 -
runtime/neurun/core/include/util/logging.h | 63 -
runtime/neurun/core/src/backend/Backend.cc | 30 -
runtime/neurun/core/src/backend/BackendManager.cc | 150 -
runtime/neurun/core/src/backend/BackendManager.h | 82 -
runtime/neurun/core/src/backend/ExecTime.cc | 133 -
runtime/neurun/core/src/backend/JSONExecTime.cc | 231 -
.../neurun/core/src/compiler/BackendResolver.cc | 47 -
runtime/neurun/core/src/compiler/BackendResolver.h | 102 -
runtime/neurun/core/src/compiler/CodeWithInfo.h | 44 -
runtime/neurun/core/src/compiler/Compiler.cc | 143 -
.../neurun/core/src/compiler/ExecutorFactory.cc | 379 -
runtime/neurun/core/src/compiler/ExecutorFactory.h | 52 -
runtime/neurun/core/src/compiler/HEScheduler.cc | 628 -
runtime/neurun/core/src/compiler/HEScheduler.h | 175 -
runtime/neurun/core/src/compiler/IScheduler.h | 38 -
runtime/neurun/core/src/compiler/Linear.cc | 317 -
runtime/neurun/core/src/compiler/Linear.h | 81 -
.../neurun/core/src/compiler/ManualScheduler.cc | 142 -
runtime/neurun/core/src/compiler/ManualScheduler.h | 36 -
runtime/neurun/core/src/compiler/OperandContext.cc | 45 -
runtime/neurun/core/src/compiler/OperandContext.h | 60 -
.../neurun/core/src/compiler/OperationValidator.cc | 985 -
.../neurun/core/src/compiler/OperationValidator.h | 86 -
runtime/neurun/core/src/compiler/ParamChecker.cc | 33 -
runtime/neurun/core/src/compiler/ParamChecker.h | 73 -
.../neurun/core/src/compiler/SubTensorAnalyzer.cc | 96 -
.../neurun/core/src/compiler/SubTensorAnalyzer.h | 59 -
runtime/neurun/core/src/dumper/dot/DotBuilder.cc | 83 -
runtime/neurun/core/src/dumper/dot/DotBuilder.h | 62 -
runtime/neurun/core/src/dumper/dot/DotDumper.cc | 199 -
runtime/neurun/core/src/dumper/dot/DotDumper.h | 60 -
.../neurun/core/src/dumper/dot/DotSubgraphInfo.cc | 56 -
.../neurun/core/src/dumper/dot/DotSubgraphInfo.h | 59 -
runtime/neurun/core/src/dumper/dot/Node.cc | 56 -
runtime/neurun/core/src/dumper/dot/Node.h | 127 -
runtime/neurun/core/src/dumper/dot/OperandNode.cc | 60 -
runtime/neurun/core/src/dumper/dot/OperandNode.h | 79 -
.../neurun/core/src/dumper/dot/OperationNode.cc | 46 -
runtime/neurun/core/src/dumper/dot/OperationNode.h | 62 -
runtime/neurun/core/src/exec/DataflowExecutor.cc | 176 -
runtime/neurun/core/src/exec/DataflowExecutor.h | 97 -
runtime/neurun/core/src/exec/Execution.cc | 135 -
runtime/neurun/core/src/exec/ExecutionObservee.cc | 64 -
runtime/neurun/core/src/exec/ExecutionObservee.h | 56 -
runtime/neurun/core/src/exec/ExecutionObservers.cc | 130 -
runtime/neurun/core/src/exec/ExecutorBase.cc | 145 -
runtime/neurun/core/src/exec/ExecutorBase.h | 127 -
runtime/neurun/core/src/exec/FunctionSequence.cc | 62 -
runtime/neurun/core/src/exec/FunctionSequence.h | 56 -
runtime/neurun/core/src/exec/Job.cc | 33 -
runtime/neurun/core/src/exec/Job.h | 69 -
runtime/neurun/core/src/exec/LinearExecutor.cc | 39 -
runtime/neurun/core/src/exec/LinearExecutor.h | 64 -
runtime/neurun/core/src/exec/ParallelExecutor.cc | 147 -
runtime/neurun/core/src/exec/ParallelExecutor.h | 69 -
runtime/neurun/core/src/exec/ParallelScheduler.cc | 55 -
runtime/neurun/core/src/exec/ParallelScheduler.h | 60 -
runtime/neurun/core/src/exec/Sink.h | 205 -
runtime/neurun/core/src/exec/Source.h | 211 -
runtime/neurun/core/src/exec/ThreadPool.cc | 65 -
runtime/neurun/core/src/exec/ThreadPool.h | 73 -
runtime/neurun/core/src/exec/WorkQueue.cc | 104 -
runtime/neurun/core/src/exec/WorkQueue.h | 87 -
runtime/neurun/core/src/exec/interp/Buffer.h | 94 -
runtime/neurun/core/src/exec/interp/ExecEnv.h | 165 -
runtime/neurun/core/src/exec/interp/ExecManager.cc | 125 -
runtime/neurun/core/src/exec/interp/ExecManager.h | 71 -
runtime/neurun/core/src/exec/interp/Interpreter.cc | 210 -
runtime/neurun/core/src/exec/interp/Interpreter.h | 67 -
runtime/neurun/core/src/exec/interp/Registration.h | 63 -
runtime/neurun/core/src/exec/interp/Tensor.cc | 59 -
runtime/neurun/core/src/exec/interp/Tensor.h | 180 -
.../core/src/exec/interp/operations/AvgPool2D.cc | 129 -
.../exec/interp/operations/BinaryArithmeticOps.cc | 202 -
.../core/src/exec/interp/operations/Concat.cc | 150 -
.../core/src/exec/interp/operations/Conv2D.cc | 152 -
.../src/exec/interp/operations/DepthwiseConv.cc | 159 -
.../src/exec/interp/operations/FullyConnected.cc | 137 -
.../core/src/exec/interp/operations/Gather.cc | 141 -
.../src/exec/interp/operations/InstanceNorm.cc | 124 -
.../core/src/exec/interp/operations/Logistic.cc | 102 -
.../core/src/exec/interp/operations/MaxPool2D.cc | 128 -
.../src/exec/interp/operations/OperationUtil.h | 177 -
.../neurun/core/src/exec/interp/operations/Pad.cc | 109 -
.../core/src/exec/interp/operations/Reshape.cc | 66 -
.../core/src/exec/interp/operations/SoftMax.cc | 163 -
.../src/exec/interp/operations/TransposeConv.cc | 145 -
.../src/exec/interp/operations/UnaryActivations.cc | 156 -
runtime/neurun/core/src/ir/Graph.cc | 551 -
runtime/neurun/core/src/ir/GraphIterator.cc | 84 -
runtime/neurun/core/src/ir/GraphIterator.h | 74 -
runtime/neurun/core/src/ir/LayoutSet.cc | 66 -
runtime/neurun/core/src/ir/LayoutSet.h | 58 -
runtime/neurun/core/src/ir/OpCode.cc | 37 -
runtime/neurun/core/src/ir/OpSequence.cc | 83 -
runtime/neurun/core/src/ir/Operand.cc | 70 -
runtime/neurun/core/src/ir/OperandIndexSequence.cc | 58 -
runtime/neurun/core/src/ir/Operation.cc | 55 -
runtime/neurun/core/src/ir/OperationIndexList.cc | 37 -
runtime/neurun/core/src/ir/Shape.cc | 85 -
runtime/neurun/core/src/ir/Subgraphs.cc | 87 -
runtime/neurun/core/src/ir/TypeInfo.cc | 47 -
runtime/neurun/core/src/ir/dumper/Dumper.cc | 633 -
runtime/neurun/core/src/ir/dumper/Dumper.h | 102 -
.../neurun/core/src/ir/operand/Shape4DConvert.h | 57 -
runtime/neurun/core/src/ir/operation/Abs.cc | 39 -
runtime/neurun/core/src/ir/operation/Add.cc | 40 -
runtime/neurun/core/src/ir/operation/ArgMax.cc | 40 -
runtime/neurun/core/src/ir/operation/AvgPool2D.cc | 40 -
.../neurun/core/src/ir/operation/BatchToSpaceND.cc | 40 -
runtime/neurun/core/src/ir/operation/Cast.cc | 39 -
runtime/neurun/core/src/ir/operation/Comparison.cc | 40 -
runtime/neurun/core/src/ir/operation/Concat.cc | 40 -
runtime/neurun/core/src/ir/operation/Conv2D.cc | 40 -
runtime/neurun/core/src/ir/operation/Custom.cc | 46 -
.../neurun/core/src/ir/operation/DepthToSpace.cc | 40 -
.../core/src/ir/operation/DepthwiseConv2D.cc | 40 -
runtime/neurun/core/src/ir/operation/Dequantize.cc | 39 -
runtime/neurun/core/src/ir/operation/Div.cc | 40 -
.../core/src/ir/operation/EmbeddingLookup.cc | 40 -
runtime/neurun/core/src/ir/operation/Exp.cc | 39 -
runtime/neurun/core/src/ir/operation/Floor.cc | 39 -
.../neurun/core/src/ir/operation/FullyConnected.cc | 40 -
runtime/neurun/core/src/ir/operation/Gather.cc | 40 -
.../core/src/ir/operation/HashtableLookup.cc | 40 -
.../neurun/core/src/ir/operation/InstanceNorm.cc | 40 -
.../core/src/ir/operation/L2Normalization.cc | 40 -
runtime/neurun/core/src/ir/operation/L2Pool2D.cc | 40 -
runtime/neurun/core/src/ir/operation/LSTM.cc | 40 -
.../src/ir/operation/LocalResponseNormalization.cc | 41 -
runtime/neurun/core/src/ir/operation/LogicalAnd.cc | 39 -
runtime/neurun/core/src/ir/operation/LogicalNot.cc | 39 -
runtime/neurun/core/src/ir/operation/LogicalOr.cc | 39 -
runtime/neurun/core/src/ir/operation/Logistic.cc | 39 -
runtime/neurun/core/src/ir/operation/LowerInfo.cc | 34 -
runtime/neurun/core/src/ir/operation/Max.cc | 39 -
runtime/neurun/core/src/ir/operation/MaxPool2D.cc | 40 -
runtime/neurun/core/src/ir/operation/Mean.cc | 40 -
runtime/neurun/core/src/ir/operation/Min.cc | 39 -
runtime/neurun/core/src/ir/operation/Mul.cc | 40 -
runtime/neurun/core/src/ir/operation/Neg.cc | 39 -
runtime/neurun/core/src/ir/operation/OneHot.cc | 37 -
runtime/neurun/core/src/ir/operation/PReLU.cc | 39 -
runtime/neurun/core/src/ir/operation/Pack.cc | 33 -
runtime/neurun/core/src/ir/operation/Pad.cc | 38 -
runtime/neurun/core/src/ir/operation/Permute.cc | 44 -
runtime/neurun/core/src/ir/operation/RNN.cc | 40 -
runtime/neurun/core/src/ir/operation/RSQRT.cc | 39 -
runtime/neurun/core/src/ir/operation/ReLU.cc | 39 -
runtime/neurun/core/src/ir/operation/ReLU1.cc | 39 -
runtime/neurun/core/src/ir/operation/ReLU6.cc | 39 -
runtime/neurun/core/src/ir/operation/ReduceMax.cc | 40 -
runtime/neurun/core/src/ir/operation/ReduceMin.cc | 40 -
runtime/neurun/core/src/ir/operation/ReduceSum.cc | 40 -
runtime/neurun/core/src/ir/operation/Reshape.cc | 39 -
.../neurun/core/src/ir/operation/ResizeBilinear.cc | 40 -
runtime/neurun/core/src/ir/operation/SQRT.cc | 39 -
runtime/neurun/core/src/ir/operation/Slice.cc | 37 -
runtime/neurun/core/src/ir/operation/Softmax.cc | 40 -
.../neurun/core/src/ir/operation/SpaceToBatchND.cc | 40 -
.../neurun/core/src/ir/operation/SpaceToDepth.cc | 40 -
runtime/neurun/core/src/ir/operation/Split.cc | 33 -
.../core/src/ir/operation/SquaredDifference.cc | 40 -
runtime/neurun/core/src/ir/operation/Squeeze.cc | 37 -
.../neurun/core/src/ir/operation/StridedSlice.cc | 40 -
runtime/neurun/core/src/ir/operation/Sub.cc | 40 -
runtime/neurun/core/src/ir/operation/Tanh.cc | 39 -
runtime/neurun/core/src/ir/operation/TopKV2.cc | 40 -
runtime/neurun/core/src/ir/operation/Transpose.cc | 40 -
.../neurun/core/src/ir/operation/TransposeConv.cc | 40 -
runtime/neurun/core/src/ir/operation/Unpack.cc | 33 -
.../core/src/ir/pass/ConstantInsertionPass.cc | 104 -
.../core/src/ir/pass/ConstantInsertionPass.h | 75 -
runtime/neurun/core/src/ir/pass/OperandPass.cc | 36 -
runtime/neurun/core/src/ir/pass/OperandPass.h | 53 -
runtime/neurun/core/src/ir/pass/OperationPass.cc | 38 -
runtime/neurun/core/src/ir/pass/OperationPass.h | 76 -
runtime/neurun/core/src/ir/pass/Pass.h | 55 -
.../core/src/ir/pass/PermutationEliminationPass.cc | 195 -
.../core/src/ir/pass/PermutationEliminationPass.h | 86 -
.../core/src/ir/pass/PermutationInsertionPass.cc | 209 -
.../core/src/ir/pass/PermutationInsertionPass.h | 59 -
.../core/src/ir/pass/PermutationOperationPass.cc | 230 -
.../core/src/ir/pass/PermutationOperationPass.h | 54 -
runtime/neurun/core/src/ir/verifier/Verifier.cc | 96 -
runtime/neurun/core/src/ir/verifier/Verifier.h | 68 -
runtime/neurun/core/src/library_info.cc | 17 -
runtime/neurun/core/src/util/ConfigSource.cc | 116 -
runtime/neurun/core/src/util/EnvConfigSource.cc | 40 -
.../neurun/core/src/util/EventCollectorGlobal.cc | 86 -
.../neurun/core/src/util/GeneralConfigSource.cc | 45 -
runtime/neurun/core/src/util/Padding.cc | 119 -
runtime/neurun/core/src/util/ShapeInference.cc | 200 -
runtime/neurun/core/src/util/Utils.cc | 68 -
runtime/neurun/core/src/util/logging.cc | 7 -
runtime/neurun/frontend/CMakeLists.txt | 1 -
runtime/neurun/frontend/base_loader/CMakeLists.txt | 7 -
.../frontend/base_loader/include/base_loader.h | 1278 -
runtime/neurun/frontend/circle/CMakeLists.txt | 17 -
.../neurun/frontend/circle/include/circle_loader.h | 32 -
.../neurun/frontend/circle/src/circle_loader.cc | 116 -
.../frontend/circle/src/circle_schema_generated.h | 7546 -----
.../frontend/nnapi/ANeuralNetworksModel.test.cc | 25 -
runtime/neurun/frontend/nnapi/CMakeLists.txt | 23 -
runtime/neurun/frontend/nnapi/compilation.cc | 110 -
runtime/neurun/frontend/nnapi/event.cc | 36 -
runtime/neurun/frontend/nnapi/execution.cc | 480 -
runtime/neurun/frontend/nnapi/memory.cc | 42 -
runtime/neurun/frontend/nnapi/model.cc | 411 -
.../nnapi/wrapper/ANeuralNetworksCompilation.cc | 42 -
.../nnapi/wrapper/ANeuralNetworksCompilation.h | 42 -
.../frontend/nnapi/wrapper/ANeuralNetworksEvent.cc | 43 -
.../frontend/nnapi/wrapper/ANeuralNetworksEvent.h | 44 -
.../nnapi/wrapper/ANeuralNetworksExecution.cc | 289 -
.../nnapi/wrapper/ANeuralNetworksExecution.h | 74 -
.../nnapi/wrapper/ANeuralNetworksMemory.cc | 46 -
.../frontend/nnapi/wrapper/ANeuralNetworksMemory.h | 39 -
.../frontend/nnapi/wrapper/ANeuralNetworksModel.cc | 268 -
.../frontend/nnapi/wrapper/ANeuralNetworksModel.h | 71 -
.../neurun/frontend/nnapi/wrapper/NNAPIConvert.cc | 100 -
.../neurun/frontend/nnapi/wrapper/NNAPIConvert.h | 78 -
.../frontend/nnapi/wrapper/OperationFactory.cc | 1680 --
.../frontend/nnapi/wrapper/OperationFactory.h | 60 -
runtime/neurun/frontend/tflite/CMakeLists.txt | 17 -
.../neurun/frontend/tflite/include/tflite_loader.h | 34 -
.../neurun/frontend/tflite/src/tflite_loader.cc | 105 -
.../frontend/tflite/src/tflite_schema_generated.h | 7275 -----
runtime/neurun/frontend/tflite/tflite_schema.fbs | 795 -
runtime/neurun/sample/CMakeLists.txt | 1 -
runtime/neurun/sample/minimal/CMakeLists.txt | 10 -
runtime/neurun/sample/minimal/README.md | 13 -
runtime/neurun/sample/minimal/src/minimal.cc | 67 -
runtime/neurun/test/CMakeLists.txt | 15 -
runtime/neurun/test/core/backend/ExecTime.test.cc | 98 -
runtime/neurun/test/core/compiler/Scheduler.cc | 550 -
runtime/neurun/test/core/exec/ExecInstance.cc | 307 -
.../neurun/test/core/exec/interp/ExecManager.cc | 334 -
runtime/neurun/test/graph/Graph.cc | 52 -
runtime/neurun/test/graph/Index.cc | 34 -
runtime/neurun/test/graph/MockNode.h | 47 -
runtime/neurun/test/graph/operand/IndexSet.cc | 52 -
runtime/neurun/test/graph/operand/LayoutSet.cc | 43 -
runtime/neurun/test/graph/operand/Set.cc | 45 -
runtime/neurun/test/graph/operand/UseDef.cc | 85 -
runtime/neurun/test/graph/operation/Set.cc | 33 -
runtime/neurun/test/graph/operation/SetIO.cc | 99 -
runtime/neurun/test/graph/verifier/Verifier.cc | 49 -
runtime/neurun/test/util/ShapeInference.cc | 233 -
runtime/nnapi-header/include/NeuralNetworksEx.h | 309 +-
runtime/onert/CMakeLists.txt | 15 +
runtime/onert/api/CMakeLists.txt | 21 +
runtime/onert/api/include/nnfw.h | 409 +
runtime/onert/api/include/nnfw_debug.h | 26 +
runtime/onert/api/include/nnfw_dev.h | 65 +
runtime/onert/api/include/nnfw_version.h | 26 +
runtime/onert/api/src/CustomKernel.cc | 98 +
runtime/onert/api/src/CustomKernel.h | 60 +
runtime/onert/api/src/CustomKernelRegistry.cc | 64 +
runtime/onert/api/src/CustomKernelRegistry.h | 64 +
runtime/onert/api/src/OpMap.lst | 89 +
runtime/onert/api/src/nnfw_api.cc | 299 +
runtime/onert/api/src/nnfw_api_internal.cc | 518 +
runtime/onert/api/src/nnfw_api_internal.h | 92 +
runtime/onert/api/src/nnfw_debug.cc | 29 +
runtime/onert/api/src/nnfw_debug_internal.cc | 25 +
runtime/onert/api/src/nnfw_debug_internal.h | 29 +
runtime/onert/backend/CMakeLists.txt | 8 +
runtime/onert/backend/acl_cl/Backend.h | 68 +
runtime/onert/backend/acl_cl/CLTimer.h | 108 +
runtime/onert/backend/acl_cl/CMakeLists.txt | 19 +
runtime/onert/backend/acl_cl/Config.cc | 50 +
runtime/onert/backend/acl_cl/Config.h | 44 +
.../onert/backend/acl_cl/ConstantInitializer.cc | 196 +
runtime/onert/backend/acl_cl/ConstantInitializer.h | 63 +
runtime/onert/backend/acl_cl/KernelGenerator.cc | 2023 ++
runtime/onert/backend/acl_cl/KernelGenerator.h | 112 +
runtime/onert/backend/acl_cl/Optimizer.cc | 58 +
runtime/onert/backend/acl_cl/Optimizer.h | 47 +
runtime/onert/backend/acl_cl/ShapeFixer.cc | 431 +
runtime/onert/backend/acl_cl/ShapeFixer.h | 110 +
runtime/onert/backend/acl_cl/TensorBuilder.h | 39 +
runtime/onert/backend/acl_cl/TensorManager.h | 78 +
runtime/onert/backend/acl_cl/acl_cl.cc | 33 +
.../onert/backend/acl_cl/operand/CLSubTensor.cc | 44 +
runtime/onert/backend/acl_cl/operand/CLSubTensor.h | 62 +
runtime/onert/backend/acl_cl/operand/CLTensor.cc | 62 +
runtime/onert/backend/acl_cl/operand/CLTensor.h | 75 +
runtime/onert/backend/acl_cl/operand/ICLTensor.cc | 45 +
runtime/onert/backend/acl_cl/operand/ICLTensor.h | 50 +
.../backend/acl_common/AclActivationBuilder.h | 125 +
runtime/onert/backend/acl_common/AclFunction.h | 69 +
.../backend/acl_common/AclInternalBufferManager.h | 97 +
.../backend/acl_common/AclLinearMemoryManager.h | 110 +
.../onert/backend/acl_common/AclMemoryManager.h | 98 +
.../backend/acl_common/AclSubTensorAnalyzer.h | 105 +
.../onert/backend/acl_common/AclTensorBuilder.h | 483 +
.../onert/backend/acl_common/AclTensorManager.h | 301 +
runtime/onert/backend/acl_common/CMakeLists.txt | 19 +
runtime/onert/backend/acl_common/Convert.cc | 198 +
runtime/onert/backend/acl_common/Convert.h | 74 +
runtime/onert/backend/acl_common/IACLTensor.cc | 63 +
runtime/onert/backend/acl_common/IACLTensor.h | 68 +
runtime/onert/backend/acl_common/ParentInfo.h | 44 +
runtime/onert/backend/acl_common/Swizzle.h | 160 +
runtime/onert/backend/acl_neon/Backend.h | 69 +
runtime/onert/backend/acl_neon/CMakeLists.txt | 19 +
runtime/onert/backend/acl_neon/Config.cc | 30 +
runtime/onert/backend/acl_neon/Config.h | 45 +
.../onert/backend/acl_neon/ConstantInitializer.cc | 183 +
.../onert/backend/acl_neon/ConstantInitializer.h | 60 +
runtime/onert/backend/acl_neon/KernelGenerator.cc | 2030 ++
runtime/onert/backend/acl_neon/KernelGenerator.h | 112 +
runtime/onert/backend/acl_neon/Optimizer.cc | 58 +
runtime/onert/backend/acl_neon/Optimizer.h | 47 +
runtime/onert/backend/acl_neon/ShapeFixer.cc | 437 +
runtime/onert/backend/acl_neon/ShapeFixer.h | 110 +
runtime/onert/backend/acl_neon/TensorBuilder.h | 39 +
runtime/onert/backend/acl_neon/TensorManager.h | 77 +
runtime/onert/backend/acl_neon/acl_neon.cc | 33 +
.../onert/backend/acl_neon/operand/INETensor.cc | 33 +
runtime/onert/backend/acl_neon/operand/INETensor.h | 46 +
.../onert/backend/acl_neon/operand/NESubTensor.cc | 44 +
.../onert/backend/acl_neon/operand/NESubTensor.h | 62 +
runtime/onert/backend/acl_neon/operand/NETensor.cc | 45 +
runtime/onert/backend/acl_neon/operand/NETensor.h | 64 +
runtime/onert/backend/cpu/Backend.h | 67 +
runtime/onert/backend/cpu/CMakeLists.txt | 14 +
runtime/onert/backend/cpu/Config.cc | 30 +
runtime/onert/backend/cpu/Config.h | 45 +
runtime/onert/backend/cpu/ConstantInitializer.cc | 68 +
runtime/onert/backend/cpu/ConstantInitializer.h | 54 +
runtime/onert/backend/cpu/KernelGenerator.cc | 932 +
runtime/onert/backend/cpu/KernelGenerator.h | 93 +
runtime/onert/backend/cpu/ShapeFixer.cc | 181 +
runtime/onert/backend/cpu/ShapeFixer.h | 85 +
runtime/onert/backend/cpu/TensorBuilder.cc | 93 +
runtime/onert/backend/cpu/TensorBuilder.h | 76 +
runtime/onert/backend/cpu/TensorManager.cc | 114 +
runtime/onert/backend/cpu/TensorManager.h | 65 +
runtime/onert/backend/cpu/cpu.cc | 33 +
runtime/onert/backend/cpu/kernel/AbsLayer.cc | 67 +
runtime/onert/backend/cpu/kernel/AbsLayer.h | 63 +
runtime/onert/backend/cpu/kernel/AddLayer.cc | 96 +
runtime/onert/backend/cpu/kernel/AddLayer.h | 71 +
runtime/onert/backend/cpu/kernel/AvgPoolLayer.cc | 116 +
runtime/onert/backend/cpu/kernel/AvgPoolLayer.h | 81 +
runtime/onert/backend/cpu/kernel/CastLayer.cc | 108 +
runtime/onert/backend/cpu/kernel/CastLayer.h | 63 +
runtime/onert/backend/cpu/kernel/CompareLayer.cc | 180 +
runtime/onert/backend/cpu/kernel/CompareLayer.h | 65 +
runtime/onert/backend/cpu/kernel/ConcatLayer.cc | 134 +
runtime/onert/backend/cpu/kernel/ConcatLayer.h | 65 +
.../onert/backend/cpu/kernel/ConvolutionLayer.cc | 159 +
.../onert/backend/cpu/kernel/ConvolutionLayer.h | 96 +
.../cpu/kernel/DepthwiseConvolutionLayer.cc | 136 +
.../backend/cpu/kernel/DepthwiseConvolutionLayer.h | 83 +
runtime/onert/backend/cpu/kernel/DivLayer.cc | 92 +
runtime/onert/backend/cpu/kernel/DivLayer.h | 71 +
runtime/onert/backend/cpu/kernel/ExpLayer.cc | 71 +
runtime/onert/backend/cpu/kernel/ExpLayer.h | 63 +
.../backend/cpu/kernel/FullyConnectedLayer.cc | 141 +
.../onert/backend/cpu/kernel/FullyConnectedLayer.h | 81 +
runtime/onert/backend/cpu/kernel/GatherLayer.cc | 77 +
runtime/onert/backend/cpu/kernel/GatherLayer.h | 66 +
runtime/onert/backend/cpu/kernel/LogisticLayer.cc | 71 +
runtime/onert/backend/cpu/kernel/LogisticLayer.h | 63 +
runtime/onert/backend/cpu/kernel/MaxLayer.cc | 78 +
runtime/onert/backend/cpu/kernel/MaxLayer.h | 67 +
runtime/onert/backend/cpu/kernel/MaxPoolLayer.cc | 113 +
runtime/onert/backend/cpu/kernel/MaxPoolLayer.h | 81 +
runtime/onert/backend/cpu/kernel/MinLayer.cc | 78 +
runtime/onert/backend/cpu/kernel/MinLayer.h | 67 +
runtime/onert/backend/cpu/kernel/MulLayer.cc | 92 +
runtime/onert/backend/cpu/kernel/MulLayer.h | 71 +
runtime/onert/backend/cpu/kernel/OneHotLayer.cc | 70 +
runtime/onert/backend/cpu/kernel/OneHotLayer.h | 73 +
runtime/onert/backend/cpu/kernel/OperationUtils.cc | 269 +
runtime/onert/backend/cpu/kernel/OperationUtils.h | 162 +
runtime/onert/backend/cpu/kernel/PackLayer.cc | 98 +
runtime/onert/backend/cpu/kernel/PackLayer.h | 65 +
runtime/onert/backend/cpu/kernel/PadLayer.cc | 70 +
runtime/onert/backend/cpu/kernel/PadLayer.h | 71 +
runtime/onert/backend/cpu/kernel/PermuteLayer.cc | 71 +
runtime/onert/backend/cpu/kernel/PermuteLayer.h | 209 +
runtime/onert/backend/cpu/kernel/ReduceLayer.cc | 137 +
runtime/onert/backend/cpu/kernel/ReduceLayer.h | 84 +
runtime/onert/backend/cpu/kernel/ReshapeLayer.cc | 55 +
runtime/onert/backend/cpu/kernel/ReshapeLayer.h | 63 +
runtime/onert/backend/cpu/kernel/RsqrtLayer.cc | 70 +
runtime/onert/backend/cpu/kernel/RsqrtLayer.h | 59 +
runtime/onert/backend/cpu/kernel/ShapeLayer.cc | 81 +
runtime/onert/backend/cpu/kernel/ShapeLayer.h | 61 +
runtime/onert/backend/cpu/kernel/SinLayer.cc | 69 +
runtime/onert/backend/cpu/kernel/SinLayer.h | 60 +
runtime/onert/backend/cpu/kernel/SliceLayer.cc | 111 +
runtime/onert/backend/cpu/kernel/SliceLayer.h | 71 +
runtime/onert/backend/cpu/kernel/SoftMaxLayer.cc | 173 +
runtime/onert/backend/cpu/kernel/SoftMaxLayer.h | 65 +
runtime/onert/backend/cpu/kernel/SplitLayer.cc | 98 +
runtime/onert/backend/cpu/kernel/SplitLayer.h | 66 +
.../onert/backend/cpu/kernel/StridedSliceLayer.cc | 96 +
.../onert/backend/cpu/kernel/StridedSliceLayer.h | 78 +
runtime/onert/backend/cpu/kernel/SubLayer.cc | 92 +
runtime/onert/backend/cpu/kernel/SubLayer.h | 71 +
runtime/onert/backend/cpu/kernel/TanhLayer.cc | 71 +
runtime/onert/backend/cpu/kernel/TanhLayer.h | 63 +
runtime/onert/backend/cpu/kernel/TransposeLayer.cc | 81 +
runtime/onert/backend/cpu/kernel/TransposeLayer.h | 61 +
runtime/onert/backend/cpu/kernel/UnpackLayer.cc | 104 +
runtime/onert/backend/cpu/kernel/UnpackLayer.h | 66 +
runtime/onert/backend/cpu/operand/Tensor.cc | 45 +
runtime/onert/backend/cpu/operand/Tensor.h | 124 +
runtime/onert/backend/cpu_common/Allocator.cc | 38 +
runtime/onert/backend/cpu_common/Allocator.h | 56 +
runtime/onert/backend/cpu_common/CMakeLists.txt | 35 +
runtime/onert/backend/cpu_common/MemoryManager.cc | 91 +
runtime/onert/backend/cpu_common/MemoryManager.h | 72 +
runtime/onert/backend/cpu_common/MemoryPlanner.cc | 212 +
runtime/onert/backend/cpu_common/MemoryPlanner.h | 200 +
.../onert/backend/cpu_common/MemoryPlanner.test.cc | 193 +
.../backend/cpu_common/MemoryPlannerFactory.cc | 51 +
.../backend/cpu_common/MemoryPlannerFactory.h | 47 +
runtime/onert/core/CMakeLists.txt | 21 +
runtime/onert/core/include/backend/Backend.h | 50 +
.../onert/core/include/backend/BackendContext.h | 91 +
.../core/include/backend/CustomKernelBuilder.h | 77 +
runtime/onert/core/include/backend/IConfig.h | 45 +
.../core/include/backend/IConstantInitializer.h | 280 +
.../onert/core/include/backend/IKernelGenerator.h | 76 +
.../onert/core/include/backend/IMemoryManager.h | 49 +
runtime/onert/core/include/backend/IOptimizer.h | 51 +
runtime/onert/core/include/backend/IShapeFixer.h | 55 +
runtime/onert/core/include/backend/ITensor.h | 58 +
.../onert/core/include/backend/ITensorBuilder.h | 77 +
.../onert/core/include/backend/ITensorManager.h | 51 +
.../onert/core/include/backend/ITensorRegister.h | 97 +
.../onert/core/include/compiler/BackendManager.h | 81 +
.../onert/core/include/compiler/BackendResolver.h | 60 +
runtime/onert/core/include/compiler/CodeMap.h | 45 +
runtime/onert/core/include/compiler/Compiler.h | 118 +
.../onert/core/include/compiler/ExecutionBuilder.h | 49 +
runtime/onert/core/include/exec/ExecTime.h | 112 +
runtime/onert/core/include/exec/Execution.h | 144 +
.../onert/core/include/exec/ExecutionObservers.h | 83 +
runtime/onert/core/include/exec/FunctionSequence.h | 72 +
runtime/onert/core/include/exec/IExecutor.h | 72 +
runtime/onert/core/include/exec/IFunction.h | 37 +
runtime/onert/core/include/exec/IODescription.h | 66 +
runtime/onert/core/include/exec/JSONExecTime.h | 97 +
runtime/onert/core/include/exec/NopFunction.h | 54 +
runtime/onert/core/include/interp/InterpExecutor.h | 70 +
runtime/onert/core/include/ir/BackendSet.h | 40 +
runtime/onert/core/include/ir/Coordinates.h | 113 +
runtime/onert/core/include/ir/Data.h | 75 +
runtime/onert/core/include/ir/DataType.h | 62 +
runtime/onert/core/include/ir/Graph.h | 114 +
runtime/onert/core/include/ir/Index.h | 45 +
runtime/onert/core/include/ir/InternalType.h | 46 +
runtime/onert/core/include/ir/Layout.h | 67 +
runtime/onert/core/include/ir/LowerInfoMap.h | 42 +
runtime/onert/core/include/ir/LoweredGraph.h | 78 +
runtime/onert/core/include/ir/OpCode.h | 56 +
runtime/onert/core/include/ir/OpSequence.h | 106 +
runtime/onert/core/include/ir/OpSequences.h | 87 +
runtime/onert/core/include/ir/Operand.h | 114 +
runtime/onert/core/include/ir/OperandConstraint.h | 58 +
runtime/onert/core/include/ir/OperandIndexMap.h | 34 +
.../onert/core/include/ir/OperandIndexSequence.h | 63 +
runtime/onert/core/include/ir/OperandInfo.h | 129 +
runtime/onert/core/include/ir/Operands.h | 46 +
runtime/onert/core/include/ir/Operation.h | 71 +
runtime/onert/core/include/ir/OperationIndexList.h | 59 +
runtime/onert/core/include/ir/OperationIndexMap.h | 34 +
runtime/onert/core/include/ir/OperationVisitor.h | 52 +
runtime/onert/core/include/ir/Operations.Include.h | 87 +
runtime/onert/core/include/ir/Operations.h | 43 +
runtime/onert/core/include/ir/Operations.lst | 90 +
runtime/onert/core/include/ir/Padding.h | 73 +
runtime/onert/core/include/ir/Shape.h | 86 +
runtime/onert/core/include/ir/TypeInfo.h | 59 +
runtime/onert/core/include/ir/operand/LowerInfo.h | 69 +
.../onert/core/include/ir/operand/PermuteFactor.h | 130 +
runtime/onert/core/include/ir/operation/Abs.h | 49 +
runtime/onert/core/include/ir/operation/Add.h | 62 +
runtime/onert/core/include/ir/operation/ArgMax.h | 62 +
.../onert/core/include/ir/operation/AvgPool2D.h | 70 +
.../core/include/ir/operation/BatchToSpaceND.h | 50 +
runtime/onert/core/include/ir/operation/Cast.h | 49 +
.../onert/core/include/ir/operation/Comparison.h | 72 +
runtime/onert/core/include/ir/operation/Concat.h | 59 +
runtime/onert/core/include/ir/operation/Conv2D.h | 69 +
.../core/include/ir/operation/ConvertFp16ToFp32.h | 49 +
.../core/include/ir/operation/ConvertFp32ToFp16.h | 49 +
runtime/onert/core/include/ir/operation/Custom.h | 75 +
.../onert/core/include/ir/operation/DepthToSpace.h | 63 +
.../core/include/ir/operation/DepthwiseConv2D.h | 70 +
.../onert/core/include/ir/operation/Dequantize.h | 49 +
runtime/onert/core/include/ir/operation/Div.h | 62 +
.../core/include/ir/operation/EmbeddingLookup.h | 50 +
runtime/onert/core/include/ir/operation/Exp.h | 49 +
runtime/onert/core/include/ir/operation/Floor.h | 51 +
.../core/include/ir/operation/FullyConnected.h | 66 +
runtime/onert/core/include/ir/operation/Gather.h | 65 +
.../core/include/ir/operation/HashtableLookup.h | 57 +
.../onert/core/include/ir/operation/InstanceNorm.h | 65 +
.../core/include/ir/operation/L2Normalization.h | 62 +
runtime/onert/core/include/ir/operation/L2Pool2D.h | 69 +
runtime/onert/core/include/ir/operation/LSTM.h | 89 +
.../ir/operation/LocalResponseNormalization.h | 66 +
.../onert/core/include/ir/operation/LogicalAnd.h | 50 +
.../onert/core/include/ir/operation/LogicalNot.h | 49 +
.../onert/core/include/ir/operation/LogicalOr.h | 50 +
runtime/onert/core/include/ir/operation/Logistic.h | 49 +
.../onert/core/include/ir/operation/LowerInfo.h | 54 +
runtime/onert/core/include/ir/operation/Max.h | 50 +
.../onert/core/include/ir/operation/MaxPool2D.h | 69 +
runtime/onert/core/include/ir/operation/Mean.h | 62 +
runtime/onert/core/include/ir/operation/Min.h | 50 +
runtime/onert/core/include/ir/operation/Mul.h | 62 +
runtime/onert/core/include/ir/operation/Neg.h | 49 +
runtime/onert/core/include/ir/operation/OneHot.h | 63 +
runtime/onert/core/include/ir/operation/PReLU.h | 50 +
runtime/onert/core/include/ir/operation/Pack.h | 53 +
runtime/onert/core/include/ir/operation/Pad.h | 63 +
runtime/onert/core/include/ir/operation/Permute.h | 78 +
runtime/onert/core/include/ir/operation/RNN.h | 70 +
runtime/onert/core/include/ir/operation/RSQRT.h | 49 +
runtime/onert/core/include/ir/operation/ReLU.h | 49 +
runtime/onert/core/include/ir/operation/ReLU1.h | 49 +
runtime/onert/core/include/ir/operation/ReLU6.h | 49 +
.../onert/core/include/ir/operation/ReduceMax.h | 65 +
.../onert/core/include/ir/operation/ReduceMin.h | 65 +
.../onert/core/include/ir/operation/ReduceSum.h | 63 +
runtime/onert/core/include/ir/operation/Reshape.h | 52 +
.../core/include/ir/operation/ResizeBilinear.h | 64 +
runtime/onert/core/include/ir/operation/SQRT.h | 49 +
runtime/onert/core/include/ir/operation/Shape.h | 51 +
runtime/onert/core/include/ir/operation/Sin.h | 49 +
runtime/onert/core/include/ir/operation/Slice.h | 64 +
runtime/onert/core/include/ir/operation/Softmax.h | 63 +
.../core/include/ir/operation/SpaceToBatchND.h | 53 +
.../onert/core/include/ir/operation/SpaceToDepth.h | 63 +
runtime/onert/core/include/ir/operation/Split.h | 59 +
.../core/include/ir/operation/SquaredDifference.h | 50 +
runtime/onert/core/include/ir/operation/Squeeze.h | 62 +
.../onert/core/include/ir/operation/StridedSlice.h | 69 +
runtime/onert/core/include/ir/operation/Sub.h | 62 +
runtime/onert/core/include/ir/operation/Tanh.h | 49 +
runtime/onert/core/include/ir/operation/TopKV2.h | 69 +
.../onert/core/include/ir/operation/Transpose.h | 64 +
.../core/include/ir/operation/TransposeConv.h | 68 +
runtime/onert/core/include/ir/operation/Unpack.h | 59 +
runtime/onert/core/include/util/Config.lst | 44 +
runtime/onert/core/include/util/ConfigSource.h | 58 +
runtime/onert/core/include/util/EnvConfigSource.h | 41 +
.../onert/core/include/util/EventCollectorGlobal.h | 155 +
.../onert/core/include/util/GeneralConfigSource.h | 44 +
runtime/onert/core/include/util/IConfigSource.h | 46 +
runtime/onert/core/include/util/ITimer.h | 59 +
runtime/onert/core/include/util/Index.h | 154 +
runtime/onert/core/include/util/ObjectManager.h | 148 +
runtime/onert/core/include/util/Set.h | 166 +
runtime/onert/core/include/util/ShapeInference.h | 90 +
runtime/onert/core/include/util/Utils.h | 27 +
.../onert/core/include/util/feature/nchw/Reader.h | 118 +
.../onert/core/include/util/feature/nchw/View.h | 137 +
.../onert/core/include/util/feature/nhwc/Reader.h | 120 +
.../onert/core/include/util/feature/nhwc/View.h | 139 +
runtime/onert/core/include/util/logging.h | 63 +
runtime/onert/core/src/backend/BackendContext.cc | 64 +
runtime/onert/core/src/compiler/BackendManager.cc | 140 +
runtime/onert/core/src/compiler/BackendResolver.cc | 25 +
.../onert/core/src/compiler/CachedDataDeleter.h | 103 +
runtime/onert/core/src/compiler/Compiler.cc | 209 +
runtime/onert/core/src/compiler/ExecutorFactory.cc | 379 +
runtime/onert/core/src/compiler/ExecutorFactory.h | 62 +
runtime/onert/core/src/compiler/HEScheduler.cc | 615 +
runtime/onert/core/src/compiler/HEScheduler.h | 186 +
runtime/onert/core/src/compiler/IScheduler.h | 38 +
runtime/onert/core/src/compiler/Linear.cc | 280 +
runtime/onert/core/src/compiler/Linear.h | 54 +
runtime/onert/core/src/compiler/ManualScheduler.cc | 103 +
runtime/onert/core/src/compiler/ManualScheduler.h | 41 +
runtime/onert/core/src/compiler/OperandContext.cc | 45 +
runtime/onert/core/src/compiler/OperandContext.h | 55 +
.../onert/core/src/compiler/OperationValidator.cc | 1079 +
.../onert/core/src/compiler/OperationValidator.h | 93 +
runtime/onert/core/src/compiler/ParamChecker.cc | 33 +
runtime/onert/core/src/compiler/ParamChecker.h | 73 +
runtime/onert/core/src/dumper/dot/DotBuilder.cc | 83 +
runtime/onert/core/src/dumper/dot/DotBuilder.h | 62 +
runtime/onert/core/src/dumper/dot/DotDumper.cc | 199 +
runtime/onert/core/src/dumper/dot/DotDumper.h | 69 +
.../onert/core/src/dumper/dot/DotOpSequenceInfo.cc | 56 +
.../onert/core/src/dumper/dot/DotOpSequenceInfo.h | 59 +
runtime/onert/core/src/dumper/dot/Node.cc | 56 +
runtime/onert/core/src/dumper/dot/Node.h | 127 +
runtime/onert/core/src/dumper/dot/OperandNode.cc | 60 +
runtime/onert/core/src/dumper/dot/OperandNode.h | 79 +
runtime/onert/core/src/dumper/dot/OperationNode.cc | 46 +
runtime/onert/core/src/dumper/dot/OperationNode.h | 62 +
runtime/onert/core/src/exec/DataflowExecutor.cc | 175 +
runtime/onert/core/src/exec/DataflowExecutor.h | 96 +
runtime/onert/core/src/exec/ExecTime.cc | 137 +
runtime/onert/core/src/exec/Execution.cc | 131 +
runtime/onert/core/src/exec/ExecutionObservee.cc | 64 +
runtime/onert/core/src/exec/ExecutionObservee.h | 56 +
runtime/onert/core/src/exec/ExecutionObservers.cc | 126 +
runtime/onert/core/src/exec/ExecutorBase.cc | 165 +
runtime/onert/core/src/exec/ExecutorBase.h | 133 +
runtime/onert/core/src/exec/FunctionSequence.cc | 62 +
runtime/onert/core/src/exec/JSONExecTime.cc | 231 +
runtime/onert/core/src/exec/Job.cc | 33 +
runtime/onert/core/src/exec/Job.h | 69 +
runtime/onert/core/src/exec/LinearExecutor.cc | 39 +
runtime/onert/core/src/exec/LinearExecutor.h | 70 +
runtime/onert/core/src/exec/ParallelExecutor.cc | 146 +
runtime/onert/core/src/exec/ParallelExecutor.h | 67 +
runtime/onert/core/src/exec/ParallelScheduler.cc | 55 +
runtime/onert/core/src/exec/ParallelScheduler.h | 60 +
runtime/onert/core/src/exec/Sink.h | 199 +
runtime/onert/core/src/exec/Source.h | 208 +
runtime/onert/core/src/exec/ThreadPool.cc | 65 +
runtime/onert/core/src/exec/ThreadPool.h | 73 +
runtime/onert/core/src/exec/WorkQueue.cc | 104 +
runtime/onert/core/src/exec/WorkQueue.h | 87 +
runtime/onert/core/src/interp/Buffer.h | 91 +
runtime/onert/core/src/interp/ExecEnv.h | 162 +
runtime/onert/core/src/interp/InterpExecutor.cc | 114 +
runtime/onert/core/src/interp/InterpOps.lst | 89 +
runtime/onert/core/src/interp/Interpreter.cc | 184 +
runtime/onert/core/src/interp/Interpreter.h | 64 +
runtime/onert/core/src/interp/Registration.h | 43 +
runtime/onert/core/src/interp/Tensor.cc | 53 +
runtime/onert/core/src/interp/Tensor.h | 177 +
.../onert/core/src/interp/operations/AvgPool2D.cc | 125 +
.../src/interp/operations/BinaryArithmeticOps.cc | 193 +
runtime/onert/core/src/interp/operations/Concat.cc | 147 +
runtime/onert/core/src/interp/operations/Conv2D.cc | 150 +
.../core/src/interp/operations/DepthwiseConv2D.cc | 155 +
.../core/src/interp/operations/FullyConnected.cc | 135 +
runtime/onert/core/src/interp/operations/Gather.cc | 138 +
.../core/src/interp/operations/InstanceNorm.cc | 121 +
.../onert/core/src/interp/operations/Logistic.cc | 99 +
.../onert/core/src/interp/operations/MaxPool2D.cc | 124 +
.../core/src/interp/operations/OperationUtil.h | 210 +
runtime/onert/core/src/interp/operations/Pad.cc | 106 +
.../onert/core/src/interp/operations/Reshape.cc | 63 +
.../onert/core/src/interp/operations/Softmax.cc | 160 +
.../core/src/interp/operations/TransposeConv.cc | 141 +
.../core/src/interp/operations/UnaryActivations.cc | 153 +
runtime/onert/core/src/ir/Coordinates.cc | 50 +
runtime/onert/core/src/ir/Graph.cc | 103 +
runtime/onert/core/src/ir/GraphIterator.cc | 84 +
runtime/onert/core/src/ir/GraphIterator.h | 74 +
runtime/onert/core/src/ir/LayoutSet.cc | 66 +
runtime/onert/core/src/ir/LayoutSet.h | 58 +
runtime/onert/core/src/ir/LoweredGraph.cc | 496 +
runtime/onert/core/src/ir/OpCode.cc | 37 +
runtime/onert/core/src/ir/OpSequence.cc | 93 +
runtime/onert/core/src/ir/OpSequences.cc | 88 +
runtime/onert/core/src/ir/Operand.cc | 61 +
runtime/onert/core/src/ir/OperandIndexSequence.cc | 65 +
runtime/onert/core/src/ir/Operands.cc | 36 +
runtime/onert/core/src/ir/Operation.cc | 55 +
runtime/onert/core/src/ir/OperationCloner.cc | 42 +
runtime/onert/core/src/ir/OperationCloner.h | 46 +
runtime/onert/core/src/ir/OperationDumper.cc | 634 +
runtime/onert/core/src/ir/OperationDumper.h | 99 +
runtime/onert/core/src/ir/OperationIndexList.cc | 37 +
runtime/onert/core/src/ir/Operations.cc | 37 +
runtime/onert/core/src/ir/Padding.cc | 154 +
runtime/onert/core/src/ir/Shape.cc | 104 +
runtime/onert/core/src/ir/TypeInfo.cc | 47 +
runtime/onert/core/src/ir/operation/Abs.cc | 39 +
runtime/onert/core/src/ir/operation/Add.cc | 40 +
runtime/onert/core/src/ir/operation/ArgMax.cc | 40 +
runtime/onert/core/src/ir/operation/AvgPool2D.cc | 40 +
.../onert/core/src/ir/operation/BatchToSpaceND.cc | 40 +
runtime/onert/core/src/ir/operation/Cast.cc | 39 +
runtime/onert/core/src/ir/operation/Comparison.cc | 40 +
runtime/onert/core/src/ir/operation/Concat.cc | 40 +
runtime/onert/core/src/ir/operation/Conv2D.cc | 40 +
.../core/src/ir/operation/ConvertFp16ToFp32.cc | 40 +
.../core/src/ir/operation/ConvertFp32ToFp16.cc | 40 +
runtime/onert/core/src/ir/operation/Custom.cc | 44 +
.../onert/core/src/ir/operation/DepthToSpace.cc | 40 +
.../onert/core/src/ir/operation/DepthwiseConv2D.cc | 40 +
runtime/onert/core/src/ir/operation/Dequantize.cc | 39 +
runtime/onert/core/src/ir/operation/Div.cc | 40 +
.../onert/core/src/ir/operation/EmbeddingLookup.cc | 40 +
runtime/onert/core/src/ir/operation/Exp.cc | 39 +
runtime/onert/core/src/ir/operation/Floor.cc | 39 +
.../onert/core/src/ir/operation/FullyConnected.cc | 40 +
runtime/onert/core/src/ir/operation/Gather.cc | 40 +
.../onert/core/src/ir/operation/HashtableLookup.cc | 40 +
.../onert/core/src/ir/operation/InstanceNorm.cc | 40 +
.../onert/core/src/ir/operation/L2Normalization.cc | 40 +
runtime/onert/core/src/ir/operation/L2Pool2D.cc | 40 +
runtime/onert/core/src/ir/operation/LSTM.cc | 40 +
.../src/ir/operation/LocalResponseNormalization.cc | 41 +
runtime/onert/core/src/ir/operation/LogicalAnd.cc | 39 +
runtime/onert/core/src/ir/operation/LogicalNot.cc | 39 +
runtime/onert/core/src/ir/operation/LogicalOr.cc | 39 +
runtime/onert/core/src/ir/operation/Logistic.cc | 39 +
runtime/onert/core/src/ir/operation/LowerInfo.cc | 34 +
runtime/onert/core/src/ir/operation/Max.cc | 39 +
runtime/onert/core/src/ir/operation/MaxPool2D.cc | 40 +
runtime/onert/core/src/ir/operation/Mean.cc | 40 +
runtime/onert/core/src/ir/operation/Min.cc | 39 +
runtime/onert/core/src/ir/operation/Mul.cc | 40 +
runtime/onert/core/src/ir/operation/Neg.cc | 39 +
runtime/onert/core/src/ir/operation/OneHot.cc | 37 +
runtime/onert/core/src/ir/operation/PReLU.cc | 39 +
runtime/onert/core/src/ir/operation/Pack.cc | 33 +
runtime/onert/core/src/ir/operation/Pad.cc | 38 +
runtime/onert/core/src/ir/operation/Permute.cc | 44 +
runtime/onert/core/src/ir/operation/RNN.cc | 40 +
runtime/onert/core/src/ir/operation/RSQRT.cc | 39 +
runtime/onert/core/src/ir/operation/ReLU.cc | 39 +
runtime/onert/core/src/ir/operation/ReLU1.cc | 39 +
runtime/onert/core/src/ir/operation/ReLU6.cc | 39 +
runtime/onert/core/src/ir/operation/ReduceMax.cc | 40 +
runtime/onert/core/src/ir/operation/ReduceMin.cc | 40 +
runtime/onert/core/src/ir/operation/ReduceSum.cc | 40 +
runtime/onert/core/src/ir/operation/Reshape.cc | 39 +
.../onert/core/src/ir/operation/ResizeBilinear.cc | 40 +
runtime/onert/core/src/ir/operation/SQRT.cc | 39 +
runtime/onert/core/src/ir/operation/Shape.cc | 39 +
runtime/onert/core/src/ir/operation/Sin.cc | 39 +
runtime/onert/core/src/ir/operation/Slice.cc | 37 +
runtime/onert/core/src/ir/operation/Softmax.cc | 40 +
.../onert/core/src/ir/operation/SpaceToBatchND.cc | 40 +
.../onert/core/src/ir/operation/SpaceToDepth.cc | 40 +
runtime/onert/core/src/ir/operation/Split.cc | 33 +
.../core/src/ir/operation/SquaredDifference.cc | 40 +
runtime/onert/core/src/ir/operation/Squeeze.cc | 37 +
.../onert/core/src/ir/operation/StridedSlice.cc | 40 +
runtime/onert/core/src/ir/operation/Sub.cc | 40 +
runtime/onert/core/src/ir/operation/Tanh.cc | 39 +
runtime/onert/core/src/ir/operation/TopKV2.cc | 40 +
runtime/onert/core/src/ir/operation/Transpose.cc | 40 +
.../onert/core/src/ir/operation/TransposeConv.cc | 40 +
runtime/onert/core/src/ir/operation/Unpack.cc | 33 +
.../core/src/ir/pass/ConstantInsertionPass.cc | 102 +
.../onert/core/src/ir/pass/ConstantInsertionPass.h | 75 +
.../onert/core/src/ir/pass/LoweredOperandPass.h | 52 +
.../onert/core/src/ir/pass/LoweredOperationPass.h | 52 +
runtime/onert/core/src/ir/pass/OperandPass.cc | 36 +
runtime/onert/core/src/ir/pass/OperandPass.h | 54 +
runtime/onert/core/src/ir/pass/OperationPass.cc | 38 +
runtime/onert/core/src/ir/pass/OperationPass.h | 77 +
runtime/onert/core/src/ir/pass/Pass.h | 55 +
.../core/src/ir/pass/PermutationEliminationPass.cc | 195 +
.../core/src/ir/pass/PermutationEliminationPass.h | 86 +
.../core/src/ir/pass/PermutationInsertionPass.cc | 207 +
.../core/src/ir/pass/PermutationInsertionPass.h | 59 +
.../core/src/ir/pass/PermutationOperationPass.cc | 231 +
.../core/src/ir/pass/PermutationOperationPass.h | 54 +
runtime/onert/core/src/ir/verifier/Verifier.cc | 96 +
runtime/onert/core/src/ir/verifier/Verifier.h | 68 +
runtime/onert/core/src/library_info.cc | 17 +
runtime/onert/core/src/util/ConfigSource.cc | 122 +
runtime/onert/core/src/util/EnvConfigSource.cc | 40 +
.../onert/core/src/util/EventCollectorGlobal.cc | 85 +
runtime/onert/core/src/util/GeneralConfigSource.cc | 45 +
runtime/onert/core/src/util/ShapeInference.cc | 241 +
runtime/onert/core/src/util/logging.cc | 23 +
runtime/onert/frontend/CMakeLists.txt | 1 +
runtime/onert/frontend/base_loader/CMakeLists.txt | 7 +
.../frontend/base_loader/include/base_loader.h | 1362 +
runtime/onert/frontend/circle/CMakeLists.txt | 17 +
.../onert/frontend/circle/include/circle_loader.h | 32 +
runtime/onert/frontend/circle/src/circle_loader.cc | 134 +
.../frontend/circle/src/circle_schema_generated.h | 9952 +++++++
.../frontend/nnapi/ANeuralNetworksModel.test.cc | 25 +
runtime/onert/frontend/nnapi/CMakeLists.txt | 27 +
runtime/onert/frontend/nnapi/compilation.cc | 110 +
runtime/onert/frontend/nnapi/event.cc | 36 +
runtime/onert/frontend/nnapi/execution.cc | 480 +
runtime/onert/frontend/nnapi/memory.cc | 42 +
runtime/onert/frontend/nnapi/model.cc | 411 +
.../nnapi/wrapper/ANeuralNetworksCompilation.cc | 42 +
.../nnapi/wrapper/ANeuralNetworksCompilation.h | 42 +
.../frontend/nnapi/wrapper/ANeuralNetworksEvent.cc | 42 +
.../frontend/nnapi/wrapper/ANeuralNetworksEvent.h | 44 +
.../nnapi/wrapper/ANeuralNetworksExecution.cc | 288 +
.../nnapi/wrapper/ANeuralNetworksExecution.h | 74 +
.../nnapi/wrapper/ANeuralNetworksMemory.cc | 46 +
.../frontend/nnapi/wrapper/ANeuralNetworksMemory.h | 39 +
.../frontend/nnapi/wrapper/ANeuralNetworksModel.cc | 267 +
.../frontend/nnapi/wrapper/ANeuralNetworksModel.h | 71 +
.../onert/frontend/nnapi/wrapper/NNAPIConvert.cc | 100 +
.../onert/frontend/nnapi/wrapper/NNAPIConvert.h | 79 +
.../frontend/nnapi/wrapper/OperationFactory.cc | 1899 ++
.../frontend/nnapi/wrapper/OperationFactory.h | 60 +
runtime/onert/frontend/tflite/CMakeLists.txt | 17 +
.../onert/frontend/tflite/include/tflite_loader.h | 34 +
runtime/onert/frontend/tflite/src/tflite_loader.cc | 110 +
.../frontend/tflite/src/tflite_schema_generated.h | 9553 ++++++
.../onert/frontend/tflite/tflite_schema-1.13.1.fbs | 795 +
runtime/onert/frontend/tflite/tflite_schema.fbs | 1095 +
runtime/onert/sample/CMakeLists.txt | 1 +
runtime/onert/sample/minimal/CMakeLists.txt | 10 +
runtime/onert/sample/minimal/README.md | 13 +
runtime/onert/sample/minimal/src/minimal.cc | 69 +
runtime/onert/test/CMakeLists.txt | 15 +
runtime/onert/test/core/compiler/Scheduler.cc | 569 +
runtime/onert/test/core/exec/ExecInstance.cc | 306 +
runtime/onert/test/core/exec/ExecTime.test.cc | 99 +
runtime/onert/test/core/interp/ExecManager.cc | 333 +
runtime/onert/test/graph/Graph.cc | 52 +
runtime/onert/test/graph/Index.cc | 34 +
runtime/onert/test/graph/MockNode.h | 47 +
runtime/onert/test/graph/operand/IndexSet.cc | 52 +
runtime/onert/test/graph/operand/LayoutSet.cc | 43 +
runtime/onert/test/graph/operand/Set.cc | 45 +
runtime/onert/test/graph/operand/UseDef.cc | 85 +
runtime/onert/test/graph/operation/Set.cc | 33 +
runtime/onert/test/graph/operation/SetIO.cc | 99 +
runtime/onert/test/graph/verifier/Verifier.cc | 49 +
runtime/onert/test/util/ObjectManager.cc | 97 +
runtime/onert/test/util/ShapeInference.cc | 230 +
tests/CMakeLists.txt | 8 +-
tests/custom_op/CMakeLists.txt | 64 +-
tests/custom_op/FillFrom/CMakeLists.txt | 7 +-
tests/custom_op/FillFrom/FillFrom_runner.cc | 2 +-
tests/framework/run_test.sh | 277 -
.../tests/MODELS/inception_module/config.sh | 1 -
.../tests/MODELS/inception_nonslim/config.sh | 2 -
.../tests/MODELS/inception_slim/config.sh | 2 -
tests/framework/tests/MODELS/mobilenet/config.sh | 2 -
tests/framework/tests/add/1D/config.sh | 1 -
tests/framework/tests/add/4D/config.sh | 1 -
.../tests/average_pool_2d/avgpool1/config.sh | 1 -
.../tests/average_pool_2d/avgpool2/config.sh | 1 -
tests/framework/tests/batch_to_space_nd2/config.sh | 1 -
tests/framework/tests/cast/config.sh | 1 -
tests/framework/tests/concat/2D/config.sh | 1 -
tests/framework/tests/concat/concat1/config.sh | 1 -
tests/framework/tests/concat/concat2/config.sh | 1 -
.../framework/tests/conv_2d/convolution1/config.sh | 1 -
.../framework/tests/conv_2d/convolution2/config.sh | 1 -
tests/framework/tests/custom/abs/config.sh | 1 -
.../tests/custom/squared_difference/config.sh | 1 -
.../framework/tests/custom/tensorflowmax/config.sh | 1 -
.../framework/tests/custom/tensorflowsum/config.sh | 1 -
.../tests/depthwise_conv_2d/depthconv1/config.sh | 1 -
.../tests/depthwise_conv_2d/depthconv2/config.sh | 1 -
tests/framework/tests/div/broadcast/config.sh | 1 -
tests/framework/tests/embedding_lookup/config.sh | 1 -
tests/framework/tests/exp/config.sh | 1 -
tests/framework/tests/floor/floor1/config.sh | 1 -
tests/framework/tests/floor/floor2/config.sh | 1 -
tests/framework/tests/fullyconnected/fc1/config.sh | 1 -
.../tests/fullyconnected/matmul2x2/config.sh | 6 -
tests/framework/tests/gather/config.sh | 1 -
tests/framework/tests/hashtable_lookup/config.sh | 1 -
tests/framework/tests/l2_normalization/config.sh | 1 -
tests/framework/tests/l2_pool_2d/config.sh | 1 -
tests/framework/tests/logistic/config.sh | 1 -
tests/framework/tests/max/config.sh | 1 -
.../framework/tests/max_pool_2d/maxpool1/config.sh | 1 -
.../framework/tests/max_pool_2d/maxpool2/config.sh | 1 -
tests/framework/tests/mean/config.sh | 1 -
tests/framework/tests/min/config.sh | 1 -
tests/framework/tests/mul/broadcast/config.sh | 1 -
tests/framework/tests/neg/config.sh | 1 -
tests/framework/tests/pack/config.sh | 1 -
tests/framework/tests/pad/4D_2D/config.sh | 1 -
tests/framework/tests/pad/pad1/config.sh | 1 -
tests/framework/tests/pad/pad2/config.sh | 1 -
tests/framework/tests/reduce_max/config.sh | 1 -
tests/framework/tests/reduce_mean/test1/config.sh | 1 -
tests/framework/tests/reduce_mean/test2/config.sh | 1 -
tests/framework/tests/reduce_sum/config.sh | 1 -
tests/framework/tests/relu/config.sh | 1 -
tests/framework/tests/relu6/config.sh | 1 -
tests/framework/tests/reshape/3D/config.sh | 1 -
tests/framework/tests/reshape/reshape1/config.sh | 1 -
tests/framework/tests/reshape/reshape2/config.sh | 1 -
tests/framework/tests/resize_bilinear/config.sh | 1 -
tests/framework/tests/rnn/config.sh | 1 -
tests/framework/tests/rsqrt/config.sh | 1 -
tests/framework/tests/slice/config.sh | 1 -
tests/framework/tests/softmax/config.sh | 1 -
tests/framework/tests/space_to_batch_nd2/config.sh | 1 -
tests/framework/tests/space_to_depth/config.sh | 1 -
tests/framework/tests/sqrt/config.sh | 1 -
tests/framework/tests/squeeze/config.sh | 1 -
tests/framework/tests/strided_slice/config.sh | 1 -
tests/framework/tests/sub/broadcast/config.sh | 1 -
tests/framework/tests/tanh/config.sh | 1 -
tests/framework/tests/topk_v2/config.sh | 1 -
tests/framework/tests/transpose/config.sh | 1 -
.../framework/tests/transpose_conv/same/config.sh | 1 -
.../framework/tests/transpose_conv/valid/config.sh | 1 -
tests/nnapi/CMakeLists.txt | 7 +-
tests/nnapi/include/NeuralNetworksWrapper.h | 10 +-
tests/nnapi/include/TestHarness.h | 72 +-
tests/nnapi/nnapi_gtest.skip.aarch64-linux.acl_cl | 36 +
.../nnapi/nnapi_gtest.skip.aarch64-linux.acl_neon | 51 +
tests/nnapi/nnapi_gtest.skip.aarch64-linux.cpu | 84 +
tests/nnapi/nnapi_gtest.skip.aarch64-linux.srcn | 79 +
tests/nnapi/nnapi_gtest.skip.armv7l-linux | 31 -
tests/nnapi/nnapi_gtest.skip.armv7l-linux.acl_cl | 36 +
tests/nnapi/nnapi_gtest.skip.armv7l-linux.acl_neon | 58 +-
tests/nnapi/nnapi_gtest.skip.armv7l-linux.cpu | 84 +-
tests/nnapi/nnapi_gtest.skip.armv7l-linux.ncnn | 77 -
tests/nnapi/nnapi_gtest.skip.armv7l-linux.srcn | 79 +
tests/nnapi/nnapi_gtest.skip.armv7l-tizen | 35 -
tests/nnapi/nnapi_gtest.skip.armv7l-tizen.acl_cl | 41 +
tests/nnapi/nnapi_gtest.skip.noarch.interp | 72 +-
tests/nnapi/nnapi_gtest.skip.x86_64-linux | 68 -
tests/nnapi/nnapi_gtest.skip.x86_64-linux.cpu | 74 +
.../nnapi_test_generator/android-10/README.md | 6 +-
.../android-10/cts_generator.py | 36 +-
.../android-10/test_generator.py | 15 +-
tests/nnapi/specs/Ex/argmax_ex_float_1.mod.py | 18 -
tests/nnapi/specs/Ex/argmax_ex_float_2.mod.py | 18 -
tests/nnapi/specs/Ex/argmax_ex_int32.mod.py | 18 -
.../nnapi/specs/Ex/argmax_ex_neg_axis_float.mod.py | 17 -
.../nnapi/specs/Ex/argmax_ex_neg_axis_int32.mod.py | 17 -
tests/nnapi/specs/Ex/argmax_ex_quant8.mod.py | 18 -
.../specs/Ex/argmax_ex_quant8_neg_axis.mod.py | 17 -
tests/nnapi/specs/Ex/equal_ex_1D_float.mod.py | 18 -
tests/nnapi/specs/Ex/equal_ex_4D_float.mod.py | 18 -
.../specs/Ex/equal_ex_broadcast_4D_2D_float.mod.py | 30 -
.../nnapi/specs/Ex/equal_ex_broadcast_float.mod.py | 19 -
tests/nnapi/specs/Ex/equal_ex_quant8.mod.py | 18 -
...ully_connected_float_2_weights_as_inputs.mod.py | 0
tests/nnapi/specs/Ex/greater_equal_ex.mod.py | 35 -
tests/nnapi/specs/Ex/less_ex.mod.py | 35 -
tests/nnapi/specs/Ex/logical_and_ex_1D.mod.py | 19 -
tests/nnapi/specs/Ex/logical_and_ex_2D.mod.py | 19 -
tests/nnapi/specs/Ex/logical_and_ex_3D.mod.py | 19 -
tests/nnapi/specs/Ex/logical_and_ex_4D.mod.py | 19 -
.../nnapi/specs/Ex/logical_and_ex_broadcast.mod.py | 19 -
.../specs/Ex/logical_and_ex_broadcast_4D_2D.mod.py | 25 -
tests/nnapi/specs/Ex/logical_not_ex_1D.mod.py | 16 -
tests/nnapi/specs/Ex/logical_not_ex_4D.mod.py | 16 -
tests/nnapi/specs/Ex/logical_or_ex_1D.mod.py | 19 -
tests/nnapi/specs/Ex/logical_or_ex_2D.mod.py | 19 -
tests/nnapi/specs/Ex/logical_or_ex_3D.mod.py | 19 -
tests/nnapi/specs/Ex/logical_or_ex_4D.mod.py | 19 -
.../nnapi/specs/Ex/logical_or_ex_broadcast.mod.py | 19 -
.../specs/Ex/logical_or_ex_broadcast_4D_2D.mod.py | 25 -
.../Ex/notequal_ex_broadcast_4D_2D_float.mod.py | 30 -
.../specs/Ex/notequal_ex_broadcast_float.mod.py | 19 -
tests/nnapi/specs/Ex/notequal_ex_float.mod.py | 18 -
tests/nnapi/specs/Ex/notequal_ex_quant8.mod.py | 18 -
tests/nnapi/specs/Ex/pack_ex_2D_float_1.mod.py | 0
tests/nnapi/specs/Ex/pack_ex_2D_float_2.mod.py | 0
tests/nnapi/specs/Ex/pack_ex_2D_int_1.mod.py | 0
tests/nnapi/specs/Ex/pack_ex_2D_int_2.mod.py | 0
.../specs/Ex/prelu_ex_broadcast_float_1.mod.py | 23 -
.../specs/Ex/prelu_ex_broadcast_quant8_1.mod.py | 24 -
tests/nnapi/specs/Ex/prelu_ex_float_1.mod.py | 22 -
tests/nnapi/specs/Ex/prelu_ex_quant8_1.mod.py | 23 -
tests/nnapi/specs/Ex/reduce_min_ex_float.mod.py | 19 -
tests/nnapi/specs/Ex/reduce_min_ex_float_1.mod.py | 18 -
tests/nnapi/specs/Ex/reduce_min_ex_float_2.mod.py | 18 -
tests/nnapi/specs/Ex/reduce_sum_ex_2D_float.mod.py | 19 -
tests/nnapi/specs/Ex/reduce_sum_ex_4D_float.mod.py | 19 -
.../Ex/reduce_sum_ex_4D_float_reducing_C.mod.py | 33 -
.../Ex/reduce_sum_ex_4D_float_reducing_HW.mod.py | 33 -
tests/nnapi/specs/Ex/split_ex_1D_float.mod.py | 40 -
tests/nnapi/specs/Ex/split_ex_1D_int32.mod.py | 40 -
tests/nnapi/specs/Ex/split_ex_4D_float_1.mod.py | 21 -
tests/nnapi/specs/Ex/split_ex_4D_float_2.mod.py | 21 -
tests/nnapi/specs/Ex/split_ex_4D_float_3.mod.py | 21 -
tests/nnapi/specs/Ex/split_ex_4D_int32_1.mod.py | 21 -
tests/nnapi/specs/Ex/split_ex_4D_int32_2.mod.py | 21 -
tests/nnapi/specs/Ex/split_ex_4D_int32_3.mod.py | 21 -
tests/nnapi/specs/Ex/split_ex_4D_int32_4.mod.py | 21 -
tests/nnapi/specs/Ex/split_ex_4D_int32_5.mod.py | 21 -
tests/nnapi/specs/Ex/split_ex_4D_quant8.mod.py | 21 -
.../specs/Ex/squared_difference_ex_1D_float.mod.py | 0
.../specs/Ex/squared_difference_ex_2D_float.mod.py | 0
.../specs/Ex/squared_difference_ex_3D_float.mod.py | 0
.../specs/Ex/squared_difference_ex_4D_float.mod.py | 0
...ared_difference_ex_broadcast_4D_2D_float.mod.py | 0
.../squared_difference_ex_broadcast_float.mod.py | 0
.../specs/Ex/transpose_conv_ex_float_1.mod.py | 0
.../specs/Ex/transpose_conv_ex_float_2.mod.py | 0
.../specs/Ex/transpose_conv_ex_float_3.mod.py | 0
.../specs/Ex/transpose_conv_ex_float_4.mod.py | 0
tests/nnapi/specs/Ex/unpack_ex_3D_float_1.mod.py | 0
tests/nnapi/specs/Ex/unpack_ex_3D_float_2.mod.py | 0
tests/nnapi/specs/Ex/unpack_ex_3D_int_1.mod.py | 0
tests/nnapi/specs/Ex/unpack_ex_3D_int_2.mod.py | 0
tests/nnapi/specs/V1_0/add.mod.py | 0
...dd_broadcast_4D_2D_after_nops_float_nnfw.mod.py | 0
tests/nnapi/specs/V1_0/add_broadcast_quant8.mod.py | 0
tests/nnapi/specs/V1_0/add_quant8.mod.py | 0
tests/nnapi/specs/V1_0/avg_pool_float_1.mod.py | 0
tests/nnapi/specs/V1_0/avg_pool_float_2.mod.py | 0
tests/nnapi/specs/V1_0/avg_pool_float_3.mod.py | 0
tests/nnapi/specs/V1_0/avg_pool_float_4.mod.py | 0
tests/nnapi/specs/V1_0/avg_pool_float_5.mod.py | 0
tests/nnapi/specs/V1_0/avg_pool_quant8_1.mod.py | 0
tests/nnapi/specs/V1_0/avg_pool_quant8_2.mod.py | 0
tests/nnapi/specs/V1_0/avg_pool_quant8_3.mod.py | 0
tests/nnapi/specs/V1_0/avg_pool_quant8_4.mod.py | 0
tests/nnapi/specs/V1_0/avg_pool_quant8_5.mod.py | 0
tests/nnapi/specs/V1_0/concat_float_1.mod.py | 0
tests/nnapi/specs/V1_0/concat_float_2.mod.py | 0
tests/nnapi/specs/V1_0/concat_float_3.mod.py | 0
.../specs/V1_0/concat_float_4D_axis3_1_nnfw.mod.py | 0
tests/nnapi/specs/V1_0/concat_quant8_1.mod.py | 0
tests/nnapi/specs/V1_0/concat_quant8_2.mod.py | 0
tests/nnapi/specs/V1_0/concat_quant8_3.mod.py | 0
tests/nnapi/specs/V1_0/conv_1_h3_w2_SAME.mod.py | 0
tests/nnapi/specs/V1_0/conv_1_h3_w2_VALID.mod.py | 0
tests/nnapi/specs/V1_0/conv_3_h3_w2_SAME.mod.py | 0
tests/nnapi/specs/V1_0/conv_3_h3_w2_VALID.mod.py | 0
tests/nnapi/specs/V1_0/conv_float.mod.py | 0
tests/nnapi/specs/V1_0/conv_float_2.mod.py | 0
tests/nnapi/specs/V1_0/conv_float_channels.mod.py | 0
.../conv_float_channels_weights_as_inputs.mod.py | 0
tests/nnapi/specs/V1_0/conv_float_large.mod.py | 0
.../V1_0/conv_float_large_weights_as_inputs.mod.py | 0
.../specs/V1_0/conv_float_weights_as_inputs.mod.py | 0
tests/nnapi/specs/V1_0/conv_quant8.mod.py | 0
tests/nnapi/specs/V1_0/conv_quant8_2.mod.py | 0
tests/nnapi/specs/V1_0/conv_quant8_channels.mod.py | 0
.../conv_quant8_channels_weights_as_inputs.mod.py | 0
tests/nnapi/specs/V1_0/conv_quant8_large.mod.py | 0
.../conv_quant8_large_weights_as_inputs.mod.py | 0
tests/nnapi/specs/V1_0/conv_quant8_overflow.mod.py | 0
.../conv_quant8_overflow_weights_as_inputs.mod.py | 0
.../V1_0/conv_quant8_weights_as_inputs.mod.py | 0
.../nnapi/specs/V1_0/depth_to_space_float_1.mod.py | 0
.../nnapi/specs/V1_0/depth_to_space_float_2.mod.py | 0
.../nnapi/specs/V1_0/depth_to_space_float_3.mod.py | 0
.../specs/V1_0/depth_to_space_quant8_1.mod.py | 0
.../specs/V1_0/depth_to_space_quant8_2.mod.py | 0
tests/nnapi/specs/V1_0/depthwise_conv.mod.py | 0
.../nnapi/specs/V1_0/depthwise_conv2d_float.mod.py | 0
.../specs/V1_0/depthwise_conv2d_float_2.mod.py | 0
.../specs/V1_0/depthwise_conv2d_float_large.mod.py | 0
.../V1_0/depthwise_conv2d_float_large_2.mod.py | 0
...e_conv2d_float_large_2_weights_as_inputs.mod.py | 0
...ise_conv2d_float_large_weights_as_inputs.mod.py | 0
...depthwise_conv2d_float_weights_as_inputs.mod.py | 0
.../specs/V1_0/depthwise_conv2d_quant8.mod.py | 0
.../specs/V1_0/depthwise_conv2d_quant8_2.mod.py | 0
.../V1_0/depthwise_conv2d_quant8_large.mod.py | 0
...se_conv2d_quant8_large_weights_as_inputs.mod.py | 0
...epthwise_conv2d_quant8_weights_as_inputs.mod.py | 0
tests/nnapi/specs/V1_0/dequantize.mod.py | 0
tests/nnapi/specs/V1_0/embedding_lookup.mod.py | 0
.../specs/V1_0/embedding_lookup_2d_nnfw.mod.py | 0
.../specs/V1_0/embedding_lookup_4d_nnfw.mod.py | 0
tests/nnapi/specs/V1_0/floor_.mod.py | 0
.../nnapi/specs/V1_0/fully_connected_float.mod.py | 0
.../specs/V1_0/fully_connected_float_1_nnfw.mod.py | 0
.../specs/V1_0/fully_connected_float_2.mod.py | 0
.../specs/V1_0/fully_connected_float_3.mod.py | 0
.../specs/V1_0/fully_connected_float_large.mod.py | 0
..._connected_float_large_weights_as_inputs.mod.py | 0
.../fully_connected_float_weights_as_inputs.mod.py | 0
.../V1_0/fully_connected_hybrid_1_nnfw.mod.py | 0
.../V1_0/fully_connected_hybrid_2_nnfw.mod.py | 0
.../nnapi/specs/V1_0/fully_connected_quant8.mod.py | 0
.../specs/V1_0/fully_connected_quant8_2.mod.py | 0
.../specs/V1_0/fully_connected_quant8_large.mod.py | 0
...connected_quant8_large_weights_as_inputs.mod.py | 0
...fully_connected_quant8_weights_as_inputs.mod.py | 0
.../nnapi/specs/V1_0/hashtable_lookup_float.mod.py | 0
.../V1_0/hashtable_lookup_float_4D_nnfw.mod.py | 0
.../specs/V1_0/hashtable_lookup_quant8.mod.py | 0
tests/nnapi/specs/V1_0/l2_normalization.mod.py | 0
tests/nnapi/specs/V1_0/l2_normalization_2.mod.py | 0
.../nnapi/specs/V1_0/l2_normalization_large.mod.py | 0
tests/nnapi/specs/V1_0/l2_pool_float.mod.py | 0
tests/nnapi/specs/V1_0/l2_pool_float_2.mod.py | 0
tests/nnapi/specs/V1_0/l2_pool_float_large.mod.py | 0
.../specs/V1_0/local_response_norm_float_1.mod.py | 0
.../specs/V1_0/local_response_norm_float_2.mod.py | 0
.../specs/V1_0/local_response_norm_float_3.mod.py | 0
.../specs/V1_0/local_response_norm_float_4.mod.py | 0
tests/nnapi/specs/V1_0/logistic_float_1.mod.py | 0
tests/nnapi/specs/V1_0/logistic_float_2.mod.py | 0
tests/nnapi/specs/V1_0/logistic_quant8_1.mod.py | 0
tests/nnapi/specs/V1_0/logistic_quant8_2.mod.py | 0
tests/nnapi/specs/V1_0/lsh_projection.mod.py | 0
tests/nnapi/specs/V1_0/lsh_projection_2.mod.py | 0
.../V1_0/lsh_projection_weights_as_inputs.mod.py | 0
tests/nnapi/specs/V1_0/lstm.mod.py | 0
tests/nnapi/specs/V1_0/lstm2.mod.py | 0
tests/nnapi/specs/V1_0/lstm2_state.mod.py | 0
tests/nnapi/specs/V1_0/lstm2_state2.mod.py | 0
tests/nnapi/specs/V1_0/lstm3.mod.py | 0
tests/nnapi/specs/V1_0/lstm3_state.mod.py | 0
tests/nnapi/specs/V1_0/lstm3_state2.mod.py | 0
tests/nnapi/specs/V1_0/lstm3_state3.mod.py | 0
tests/nnapi/specs/V1_0/lstm_state.mod.py | 0
tests/nnapi/specs/V1_0/lstm_state2.mod.py | 0
tests/nnapi/specs/V1_0/max_pool_float_1.mod.py | 0
tests/nnapi/specs/V1_0/max_pool_float_2.mod.py | 0
tests/nnapi/specs/V1_0/max_pool_float_3.mod.py | 0
tests/nnapi/specs/V1_0/max_pool_float_4.mod.py | 0
tests/nnapi/specs/V1_0/max_pool_quant8_1.mod.py | 0
tests/nnapi/specs/V1_0/max_pool_quant8_2.mod.py | 0
tests/nnapi/specs/V1_0/max_pool_quant8_3.mod.py | 0
tests/nnapi/specs/V1_0/max_pool_quant8_4.mod.py | 0
tests/nnapi/specs/V1_0/mul.mod.py | 0
tests/nnapi/specs/V1_0/mul_4D_nnfw.mod.py | 0
.../specs/V1_0/mul_broadcast_3D_1D_1_nnfw.mod.py | 0
.../specs/V1_0/mul_broadcast_3D_1D_2_nnfw.mod.py | 0
tests/nnapi/specs/V1_0/mul_broadcast_quant8.mod.py | 0
.../nnapi/specs/V1_0/mul_float_square_nnfw.mod.py | 0
tests/nnapi/specs/V1_0/mul_quant8.mod.py | 0
tests/nnapi/specs/V1_0/mul_relu.mod.py | 0
tests/nnapi/specs/V1_0/relu1_float_1.mod.py | 0
tests/nnapi/specs/V1_0/relu1_float_2.mod.py | 0
tests/nnapi/specs/V1_0/relu1_quant8_1.mod.py | 0
tests/nnapi/specs/V1_0/relu1_quant8_2.mod.py | 0
tests/nnapi/specs/V1_0/relu6_float_1.mod.py | 0
tests/nnapi/specs/V1_0/relu6_float_2.mod.py | 0
tests/nnapi/specs/V1_0/relu6_quant8_1.mod.py | 0
tests/nnapi/specs/V1_0/relu6_quant8_2.mod.py | 0
tests/nnapi/specs/V1_0/relu_float_1.mod.py | 0
tests/nnapi/specs/V1_0/relu_float_2.mod.py | 0
tests/nnapi/specs/V1_0/relu_quant8_1.mod.py | 0
tests/nnapi/specs/V1_0/relu_quant8_2.mod.py | 0
tests/nnapi/specs/V1_0/reshape.mod.py | 0
tests/nnapi/specs/V1_0/reshape_quant8.mod.py | 0
.../V1_0/reshape_quant8_weights_as_inputs.mod.py | 0
.../specs/V1_0/reshape_weights_as_inputs.mod.py | 0
tests/nnapi/specs/V1_0/resize_bilinear.mod.py | 0
tests/nnapi/specs/V1_0/resize_bilinear_2.mod.py | 0
tests/nnapi/specs/V1_0/rnn.mod.py | 0
tests/nnapi/specs/V1_0/rnn_state.mod.py | 0
tests/nnapi/specs/V1_0/softmax_float_1.mod.py | 0
tests/nnapi/specs/V1_0/softmax_float_2.mod.py | 0
tests/nnapi/specs/V1_0/softmax_quant8_1.mod.py | 0
tests/nnapi/specs/V1_0/softmax_quant8_2.mod.py | 0
.../nnapi/specs/V1_0/space_to_depth_float_1.mod.py | 0
.../nnapi/specs/V1_0/space_to_depth_float_2.mod.py | 0
.../nnapi/specs/V1_0/space_to_depth_float_3.mod.py | 0
.../specs/V1_0/space_to_depth_quant8_1.mod.py | 0
.../specs/V1_0/space_to_depth_quant8_2.mod.py | 0
tests/nnapi/specs/V1_0/svdf.mod.py | 0
tests/nnapi/specs/V1_0/svdf2.mod.py | 0
tests/nnapi/specs/V1_0/svdf_bias_present.mod.py | 0
tests/nnapi/specs/V1_0/svdf_state.mod.py | 0
tests/nnapi/specs/V1_0/tanh_.mod.py | 0
tests/nnapi/specs/V1_1/batch_to_space.mod.py | 0
.../nnapi/specs/V1_1/batch_to_space_float_1.mod.py | 2 +-
.../specs/V1_1/batch_to_space_quant8_1.mod.py | 2 +-
tests/nnapi/specs/V1_1/div_.mod.py | 0
tests/nnapi/specs/V1_1/div_broadcast_float.mod.py | 0
.../V1_1/div_broadcast_float_4D_2D_nnfw.mod.py | 0
.../V1_1/fully_connected_float_4d_simple.mod.py | 0
tests/nnapi/specs/V1_1/mean.mod.py | 0
.../V1_1/mean_4D_float_reducing_C_nnfw.mod.py | 0
.../V1_1/mean_4D_float_reducing_HW_nnfw.mod.py | 0
tests/nnapi/specs/V1_1/mean_axis01_1_nnfw.mod.py | 0
tests/nnapi/specs/V1_1/mean_axis01_2_nnfw.mod.py | 0
tests/nnapi/specs/V1_1/mean_float_1.mod.py | 0
tests/nnapi/specs/V1_1/mean_float_2.mod.py | 0
tests/nnapi/specs/V1_1/mean_quant8_1.mod.py | 0
tests/nnapi/specs/V1_1/mean_quant8_2.mod.py | 0
tests/nnapi/specs/V1_1/pad.mod.py | 0
tests/nnapi/specs/V1_1/pad_2D_HW_nnfw.mod.py | 0
tests/nnapi/specs/V1_1/pad_3D_HWC_nnfw.mod.py | 0
tests/nnapi/specs/V1_1/pad_BHWC_nnfw.mod.py | 0
tests/nnapi/specs/V1_1/pad_BHW_nnfw.mod.py | 0
tests/nnapi/specs/V1_1/pad_HWD_nnfw.mod.py | 0
tests/nnapi/specs/V1_1/pad_float_1.mod.py | 0
tests/nnapi/specs/V1_1/pad_quant8_nnfw.mod.py | 0
tests/nnapi/specs/V1_1/space_to_batch.mod.py | 0
.../nnapi/specs/V1_1/space_to_batch_float_1.mod.py | 0
.../specs/V1_1/space_to_batch_float_1_nnfw.mod.py | 0
.../nnapi/specs/V1_1/space_to_batch_float_2.mod.py | 0
.../nnapi/specs/V1_1/space_to_batch_float_3.mod.py | 0
.../specs/V1_1/space_to_batch_quant8_1.mod.py | 0
.../specs/V1_1/space_to_batch_quant8_1_nnfw.mod.py | 0
.../specs/V1_1/space_to_batch_quant8_2.mod.py | 0
.../specs/V1_1/space_to_batch_quant8_2_nnfw.mod.py | 0
.../specs/V1_1/space_to_batch_quant8_3.mod.py | 0
tests/nnapi/specs/V1_1/squeeze.mod.py | 0
.../specs/V1_1/squeeze_2D_float_1_nnfw.mod.py | 0
tests/nnapi/specs/V1_1/squeeze_float_1.mod.py | 0
tests/nnapi/specs/V1_1/squeeze_quant8_1.mod.py | 0
tests/nnapi/specs/V1_1/strided_slice.mod.py | 0
.../nnapi/specs/V1_1/strided_slice_float_1.mod.py | 0
.../nnapi/specs/V1_1/strided_slice_float_10.mod.py | 0
.../nnapi/specs/V1_1/strided_slice_float_11.mod.py | 0
.../nnapi/specs/V1_1/strided_slice_float_2.mod.py | 0
.../nnapi/specs/V1_1/strided_slice_float_3.mod.py | 0
.../nnapi/specs/V1_1/strided_slice_float_4.mod.py | 0
.../nnapi/specs/V1_1/strided_slice_float_5.mod.py | 0
.../nnapi/specs/V1_1/strided_slice_float_6.mod.py | 0
.../nnapi/specs/V1_1/strided_slice_float_7.mod.py | 0
.../nnapi/specs/V1_1/strided_slice_float_8.mod.py | 0
.../nnapi/specs/V1_1/strided_slice_float_9.mod.py | 0
.../specs/V1_1/strided_slice_qaunt8_10.mod.py | 0
.../specs/V1_1/strided_slice_qaunt8_11.mod.py | 0
.../nnapi/specs/V1_1/strided_slice_quant8_1.mod.py | 0
.../nnapi/specs/V1_1/strided_slice_quant8_2.mod.py | 0
.../nnapi/specs/V1_1/strided_slice_quant8_3.mod.py | 0
.../nnapi/specs/V1_1/strided_slice_quant8_4.mod.py | 0
.../nnapi/specs/V1_1/strided_slice_quant8_5.mod.py | 0
.../nnapi/specs/V1_1/strided_slice_quant8_6.mod.py | 0
.../nnapi/specs/V1_1/strided_slice_quant8_7.mod.py | 0
.../nnapi/specs/V1_1/strided_slice_quant8_8.mod.py | 0
.../nnapi/specs/V1_1/strided_slice_quant8_9.mod.py | 0
tests/nnapi/specs/V1_1/sub.mod.py | 0
.../V1_1/sub_broadcast_4D_2D_float_nnfw.mod.py | 0
tests/nnapi/specs/V1_1/sub_broadcast_float.mod.py | 0
tests/nnapi/specs/V1_1/transpose.mod.py | 0
tests/nnapi/specs/V1_1/transpose_2D_nnfw.mod.py | 0
tests/nnapi/specs/V1_1/transpose_3D_nnfw.mod.py | 0
tests/nnapi/specs/V1_1/transpose_float_1.mod.py | 0
tests/nnapi/specs/V1_1/transpose_quant8_1.mod.py | 0
tests/nnapi/specs/V1_2/abs_.mod.py | 0
tests/nnapi/specs/V1_2/abs_1D_float_nnfw.mod.py | 20 +
tests/nnapi/specs/V1_2/abs_2D_float_nnfw.mod.py | 20 +
tests/nnapi/specs/V1_2/abs_3D_float_nnfw.mod.py | 20 +
tests/nnapi/specs/V1_2/abs_4D_float_nnfw.mod.py | 18 +
tests/nnapi/specs/V1_2/argmax_1.mod.py | 31 +
tests/nnapi/specs/V1_2/argmax_2.mod.py | 31 +
tests/nnapi/specs/V1_2/argmax_3.mod.py | 33 +
tests/nnapi/specs/V1_2/argmax_float_1_nnfw.mod.py | 18 +
tests/nnapi/specs/V1_2/argmax_float_2_nnfw.mod.py | 18 +
tests/nnapi/specs/V1_2/argmax_int32_nnfw.mod.py | 18 +
.../specs/V1_2/argmax_neg_axis_float_nnfw.mod.py | 17 +
.../specs/V1_2/argmax_neg_axis_int32_nnfw.mod.py | 17 +
.../specs/V1_2/argmax_quant8_neg_axis_nnfw.mod.py | 17 +
tests/nnapi/specs/V1_2/argmax_quant8_nnfw.mod.py | 18 +
tests/nnapi/specs/V1_2/cast.mod.py | 0
.../specs/V1_2/cast_float32_to_int32_nnfw.mod.py | 0
.../specs/V1_2/cast_int32_to_float32_nnfw.mod.py | 0
tests/nnapi/specs/V1_2/equal.mod.py | 99 +
tests/nnapi/specs/V1_2/equal_1D_float_nnfw.mod.py | 18 +
tests/nnapi/specs/V1_2/equal_4D_float_nnfw.mod.py | 18 +
.../V1_2/equal_broadcast_4D_2D_float_nnfw.mod.py | 30 +
.../specs/V1_2/equal_broadcast_float_nnfw.mod.py | 19 +
tests/nnapi/specs/V1_2/equal_quant8_nnfw.mod.py | 18 +
tests/nnapi/specs/V1_2/exp_.mod.py | 0
tests/nnapi/specs/V1_2/exp_1D_float_nnfw.mod.py | 0
tests/nnapi/specs/V1_2/exp_2D_float_nnfw.mod.py | 0
tests/nnapi/specs/V1_2/exp_3D_float_nnfw.mod.py | 0
tests/nnapi/specs/V1_2/exp_4D_float_nnfw.mod.py | 0
tests/nnapi/specs/V1_2/gather.mod.py | 0
tests/nnapi/specs/V1_2/gather_1D_float_nnfw.mod.py | 0
tests/nnapi/specs/V1_2/gather_1D_int32_nnfw.mod.py | 0
.../nnapi/specs/V1_2/gather_1D_quant8_nnfw.mod.py | 0
.../specs/V1_2/gather_2D_2D_float_1_nnfw.mod.py | 0
.../specs/V1_2/gather_2D_2D_float_2_nnfw.mod.py | 0
.../specs/V1_2/gather_2D_3D_float_1_nnfw.mod.py | 0
.../specs/V1_2/gather_2D_3D_float_2_nnfw.mod.py | 0
tests/nnapi/specs/V1_2/gather_2D_float_nnfw.mod.py | 0
tests/nnapi/specs/V1_2/gather_2D_int32_nnfw.mod.py | 0
.../nnapi/specs/V1_2/gather_2D_quant8_nnfw.mod.py | 0
.../specs/V1_2/gather_3D_2D_float_1_nnfw.mod.py | 0
.../specs/V1_2/gather_3D_2D_float_2_nnfw.mod.py | 0
.../specs/V1_2/gather_3D_2D_float_3_nnfw.mod.py | 0
tests/nnapi/specs/V1_2/gather_4D_float_nnfw.mod.py | 0
tests/nnapi/specs/V1_2/gather_higher_rank.mod.py | 0
tests/nnapi/specs/V1_2/greater_equal.mod.py | 99 +
tests/nnapi/specs/V1_2/greater_equal_nnfw.mod.py | 35 +
tests/nnapi/specs/V1_2/less.mod.py | 99 +
tests/nnapi/specs/V1_2/less_nnfw.mod.py | 35 +
tests/nnapi/specs/V1_2/logical_and.mod.py | 43 +
tests/nnapi/specs/V1_2/logical_and_1D_nnfw.mod.py | 19 +
tests/nnapi/specs/V1_2/logical_and_2D_nnfw.mod.py | 19 +
tests/nnapi/specs/V1_2/logical_and_3D_nnfw.mod.py | 19 +
tests/nnapi/specs/V1_2/logical_and_4D_nnfw.mod.py | 19 +
.../V1_2/logical_and_broadcast_4D_2D_nnfw.mod.py | 25 +
.../specs/V1_2/logical_and_broadcast_nnfw.mod.py | 19 +
tests/nnapi/specs/V1_2/logical_not.mod.py | 25 +
tests/nnapi/specs/V1_2/logical_not_1D_nnfw.mod.py | 16 +
tests/nnapi/specs/V1_2/logical_not_4D_nnfw.mod.py | 16 +
tests/nnapi/specs/V1_2/logical_or.mod.py | 43 +
tests/nnapi/specs/V1_2/logical_or_1D_nnfw.mod.py | 19 +
tests/nnapi/specs/V1_2/logical_or_2D_nnfw.mod.py | 19 +
tests/nnapi/specs/V1_2/logical_or_3D_nnfw.mod.py | 19 +
tests/nnapi/specs/V1_2/logical_or_4D_nnfw.mod.py | 19 +
.../V1_2/logical_or_broadcast_4D_2D_nnfw.mod.py | 25 +
.../specs/V1_2/logical_or_broadcast_nnfw.mod.py | 19 +
tests/nnapi/specs/V1_2/maximum.mod.py | 64 +
tests/nnapi/specs/V1_2/minimum.mod.py | 64 +
tests/nnapi/specs/V1_2/neg.mod.py | 0
tests/nnapi/specs/V1_2/neg_1D_float_nnfw.mod.py | 0
tests/nnapi/specs/V1_2/neg_2D_float_nnfw.mod.py | 0
tests/nnapi/specs/V1_2/neg_3D_float_nnfw.mod.py | 0
tests/nnapi/specs/V1_2/neg_3D_int_nnfw.mod.py | 0
tests/nnapi/specs/V1_2/neg_4D_float_nnfw.mod.py | 0
tests/nnapi/specs/V1_2/neg_4D_int_nnfw.mod.py | 0
tests/nnapi/specs/V1_2/not_equal.mod.py | 99 +
.../not_equal_broadcast_4D_2D_float_nnfw.mod.py | 30 +
.../V1_2/not_equal_broadcast_float_nnfw.mod.py | 19 +
tests/nnapi/specs/V1_2/not_equal_float_nnfw.mod.py | 18 +
.../nnapi/specs/V1_2/not_equal_quant8_nnfw.mod.py | 18 +
tests/nnapi/specs/V1_2/prelu.mod.py | 61 +
.../specs/V1_2/prelu_broadcast_float_1_nnfw.mod.py | 23 +
.../V1_2/prelu_broadcast_quant8_1_nnfw.mod.py | 24 +
tests/nnapi/specs/V1_2/prelu_float_1_nnfw.mod.py | 22 +
tests/nnapi/specs/V1_2/prelu_quant8_1_nnfw.mod.py | 23 +
tests/nnapi/specs/V1_2/reduce_max.mod.py | 0
.../specs/V1_2/reduce_max_2D_float_nnfw.mod.py | 0
.../specs/V1_2/reduce_max_2D_int32_nnfw.mod.py | 0
.../reduce_max_4D_float_reducing_C_nnfw.mod.py | 0
.../reduce_max_4D_float_reducing_HW_nnfw.mod.py | 0
.../specs/V1_2/reduce_max_float_1_nnfw.mod.py | 0
.../specs/V1_2/reduce_max_float_2_nnfw.mod.py | 0
.../nnapi/specs/V1_2/reduce_max_float_nnfw.mod.py | 0
.../specs/V1_2/reduce_max_quant8_1_nnfw.mod.py | 0
.../specs/V1_2/reduce_max_quant8_2_nnfw.mod.py | 0
tests/nnapi/specs/V1_2/reduce_min.mod.py | 70 +
.../specs/V1_2/reduce_min_float_1_nnfw.mod.py | 18 +
.../specs/V1_2/reduce_min_float_2_nnfw.mod.py | 18 +
.../nnapi/specs/V1_2/reduce_min_float_nnfw.mod.py | 19 +
tests/nnapi/specs/V1_2/reduce_sum.mod.py | 66 +
.../specs/V1_2/reduce_sum_2D_float_nnfw.mod.py | 19 +
.../specs/V1_2/reduce_sum_4D_float_nnfw.mod.py | 19 +
.../reduce_sum_4D_float_reducing_C_nnfw.mod.py | 33 +
.../reduce_sum_4D_float_reducing_HW_nnfw.mod.py | 33 +
tests/nnapi/specs/V1_2/rsqrt.mod.py | 0
tests/nnapi/specs/V1_2/rsqrt_1D_float_nnfw.mod.py | 0
tests/nnapi/specs/V1_2/rsqrt_2D_float_nnfw.mod.py | 0
tests/nnapi/specs/V1_2/rsqrt_3D_float_nnfw.mod.py | 0
tests/nnapi/specs/V1_2/rsqrt_4D_float_nnfw.mod.py | 0
tests/nnapi/specs/V1_2/sin_1D_float_nnfw.mod.py | 13 +
tests/nnapi/specs/V1_2/sin_4D_float_nnfw.mod.py | 18 +
tests/nnapi/specs/V1_2/slice.mod.py | 147 +
tests/nnapi/specs/V1_2/split_1D_float_nnfw.mod.py | 40 +
tests/nnapi/specs/V1_2/split_1D_int32_nnfw.mod.py | 40 +
.../nnapi/specs/V1_2/split_4D_float_1_nnfw.mod.py | 21 +
.../nnapi/specs/V1_2/split_4D_float_2_nnfw.mod.py | 21 +
.../nnapi/specs/V1_2/split_4D_float_3_nnfw.mod.py | 21 +
.../nnapi/specs/V1_2/split_4D_int32_1_nnfw.mod.py | 21 +
.../nnapi/specs/V1_2/split_4D_int32_2_nnfw.mod.py | 21 +
.../nnapi/specs/V1_2/split_4D_int32_3_nnfw.mod.py | 21 +
.../nnapi/specs/V1_2/split_4D_int32_4_nnfw.mod.py | 21 +
.../nnapi/specs/V1_2/split_4D_int32_5_nnfw.mod.py | 21 +
tests/nnapi/specs/V1_2/split_4D_quant8_nnfw.mod.py | 21 +
tests/nnapi/specs/V1_2/split_float_1.mod.py | 38 +
tests/nnapi/specs/V1_2/split_float_2.mod.py | 37 +
tests/nnapi/specs/V1_2/split_float_3.mod.py | 39 +
tests/nnapi/specs/V1_2/split_float_4.mod.py | 36 +
tests/nnapi/specs/V1_2/split_float_5.mod.py | 36 +
tests/nnapi/specs/V1_2/split_int32_1.mod.py | 38 +
tests/nnapi/specs/V1_2/split_int32_2.mod.py | 37 +
tests/nnapi/specs/V1_2/split_int32_3.mod.py | 39 +
tests/nnapi/specs/V1_2/split_int32_4.mod.py | 36 +
tests/nnapi/specs/V1_2/split_quant8_1.mod.py | 38 +
tests/nnapi/specs/V1_2/split_quant8_2.mod.py | 37 +
tests/nnapi/specs/V1_2/split_quant8_3.mod.py | 39 +
tests/nnapi/specs/V1_2/split_quant8_4.mod.py | 36 +
tests/nnapi/specs/V1_2/sqrt_.mod.py | 0
tests/nnapi/specs/V1_2/sqrt_1D_float_nnfw.mod.py | 0
tests/nnapi/specs/V1_2/sqrt_2D_float_nnfw.mod.py | 0
tests/nnapi/specs/V1_2/sqrt_3D_float_nnfw.mod.py | 0
tests/nnapi/specs/V1_2/sqrt_4D_float_nnfw.mod.py | 0
tests/nnapi/specs/V1_2/sub_v1_2.mod.py | 99 +
tests/nnapi/specs/V1_2/sub_v1_2_broadcast.mod.py | 60 +
tests/nnapi/specs/V1_2/tanh_v1_2.mod.py | 89 +
tests/nnapi/specs/V1_2/topk_v2.mod.py | 0
.../nnapi/specs/V1_2/topk_v2_1D_float_nnfw.mod.py | 2 +-
.../nnapi/specs/V1_2/topk_v2_1D_int32_nnfw.mod.py | 2 +-
.../nnapi/specs/V1_2/topk_v2_1D_quant8_nnfw.mod.py | 2 +-
.../nnapi/specs/V1_2/topk_v2_2D_float_nnfw.mod.py | 4 +-
.../nnapi/specs/V1_2/topk_v2_2D_int32_nnfw.mod.py | 2 +-
.../nnapi/specs/V1_2/topk_v2_2D_quant8_nnfw.mod.py | 2 +-
tests/nnapi/specs/V1_2/transpose_v1_2.mod.py | 81 +
.../V1_0/mobilenet_224_gender_basic_fixed.mod.py | 0
.../specs/skip/V1_0/mobilenet_quantized.mod.py | 0
tests/nnapi/specs/skip/V1_1/add_relaxed.mod.py | 0
.../skip/V1_1/avg_pool_float_1_relaxed.mod.py | 0
.../skip/V1_1/avg_pool_float_2_relaxed.mod.py | 0
.../skip/V1_1/avg_pool_float_3_relaxed.mod.py | 0
.../skip/V1_1/avg_pool_float_4_relaxed.mod.py | 0
.../skip/V1_1/avg_pool_float_5_relaxed.mod.py | 0
.../V1_1/batch_to_space_float_1_relaxed.mod.py | 0
.../specs/skip/V1_1/batch_to_space_relaxed.mod.py | 0
.../specs/skip/V1_1/concat_float_1_relaxed.mod.py | 0
.../specs/skip/V1_1/concat_float_2_relaxed.mod.py | 0
.../specs/skip/V1_1/concat_float_3_relaxed.mod.py | 0
.../skip/V1_1/conv_1_h3_w2_SAME_relaxed.mod.py | 0
.../skip/V1_1/conv_1_h3_w2_VALID_relaxed.mod.py | 0
.../skip/V1_1/conv_3_h3_w2_SAME_relaxed.mod.py | 0
.../skip/V1_1/conv_3_h3_w2_VALID_relaxed.mod.py | 0
.../specs/skip/V1_1/conv_float_2_relaxed.mod.py | 0
.../skip/V1_1/conv_float_channels_relaxed.mod.py | 0
...float_channels_weights_as_inputs_relaxed.mod.py | 0
.../skip/V1_1/conv_float_large_relaxed.mod.py | 0
...nv_float_large_weights_as_inputs_relaxed.mod.py | 0
.../specs/skip/V1_1/conv_float_relaxed.mod.py | 0
.../conv_float_weights_as_inputs_relaxed.mod.py | 0
.../V1_1/depth_to_space_float_1_relaxed.mod.py | 0
.../V1_1/depth_to_space_float_2_relaxed.mod.py | 0
.../V1_1/depth_to_space_float_3_relaxed.mod.py | 0
.../V1_1/depthwise_conv2d_float_2_relaxed.mod.py | 0
.../depthwise_conv2d_float_large_2_relaxed.mod.py | 0
..._float_large_2_weights_as_inputs_relaxed.mod.py | 0
.../depthwise_conv2d_float_large_relaxed.mod.py | 0
...2d_float_large_weights_as_inputs_relaxed.mod.py | 0
.../V1_1/depthwise_conv2d_float_relaxed.mod.py | 0
...e_conv2d_float_weights_as_inputs_relaxed.mod.py | 0
.../specs/skip/V1_1/depthwise_conv_relaxed.mod.py | 0
.../specs/skip/V1_1/dequantize_relaxed.mod.py | 0
.../skip/V1_1/div_broadcast_float_relaxed.mod.py | 0
tests/nnapi/specs/skip/V1_1/div_relaxed.mod.py | 0
.../skip/V1_1/embedding_lookup_relaxed.mod.py | 0
tests/nnapi/specs/skip/V1_1/floor_relaxed.mod.py | 0
.../V1_1/fully_connected_float_2_relaxed.mod.py | 0
.../fully_connected_float_4d_simple_relaxed.mod.py | 0
.../fully_connected_float_large_relaxed.mod.py | 0
...ed_float_large_weights_as_inputs_relaxed.mod.py | 0
.../skip/V1_1/fully_connected_float_relaxed.mod.py | 0
...onnected_float_weights_as_inputs_relaxed.mod.py | 0
.../V1_1/hashtable_lookup_float_relaxed.mod.py | 0
.../skip/V1_1/l2_normalization_2_relaxed.mod.py | 0
.../V1_1/l2_normalization_large_relaxed.mod.py | 0
.../skip/V1_1/l2_normalization_relaxed.mod.py | 0
.../specs/skip/V1_1/l2_pool_float_2_relaxed.mod.py | 0
.../skip/V1_1/l2_pool_float_large_relaxed.mod.py | 0
.../specs/skip/V1_1/l2_pool_float_relaxed.mod.py | 0
.../local_response_norm_float_1_relaxed.mod.py | 0
.../local_response_norm_float_2_relaxed.mod.py | 0
.../local_response_norm_float_3_relaxed.mod.py | 0
.../local_response_norm_float_4_relaxed.mod.py | 0
.../skip/V1_1/logistic_float_1_relaxed.mod.py | 0
.../skip/V1_1/logistic_float_2_relaxed.mod.py | 0
.../skip/V1_1/lsh_projection_2_relaxed.mod.py | 0
.../specs/skip/V1_1/lsh_projection_relaxed.mod.py | 0
...lsh_projection_weights_as_inputs_relaxed.mod.py | 0
tests/nnapi/specs/skip/V1_1/lstm2_relaxed.mod.py | 0
.../specs/skip/V1_1/lstm2_state2_relaxed.mod.py | 0
.../specs/skip/V1_1/lstm2_state_relaxed.mod.py | 0
tests/nnapi/specs/skip/V1_1/lstm3_relaxed.mod.py | 0
.../specs/skip/V1_1/lstm3_state2_relaxed.mod.py | 0
.../specs/skip/V1_1/lstm3_state3_relaxed.mod.py | 0
.../specs/skip/V1_1/lstm3_state_relaxed.mod.py | 0
tests/nnapi/specs/skip/V1_1/lstm_relaxed.mod.py | 0
.../specs/skip/V1_1/lstm_state2_relaxed.mod.py | 0
.../specs/skip/V1_1/lstm_state_relaxed.mod.py | 0
.../skip/V1_1/max_pool_float_1_relaxed.mod.py | 0
.../skip/V1_1/max_pool_float_2_relaxed.mod.py | 0
.../skip/V1_1/max_pool_float_3_relaxed.mod.py | 0
.../skip/V1_1/max_pool_float_4_relaxed.mod.py | 0
.../specs/skip/V1_1/mean_float_1_relaxed.mod.py | 0
.../specs/skip/V1_1/mean_float_2_relaxed.mod.py | 0
tests/nnapi/specs/skip/V1_1/mean_relaxed.mod.py | 0
...mobilenet_224_gender_basic_fixed_relaxed.mod.py | 0
tests/nnapi/specs/skip/V1_1/mul_relaxed.mod.py | 0
.../nnapi/specs/skip/V1_1/mul_relu_relaxed.mod.py | 0
.../specs/skip/V1_1/pad_float_1_relaxed.mod.py | 0
tests/nnapi/specs/skip/V1_1/pad_relaxed.mod.py | 0
.../specs/skip/V1_1/relu1_float_1_relaxed.mod.py | 0
.../specs/skip/V1_1/relu1_float_2_relaxed.mod.py | 0
.../specs/skip/V1_1/relu6_float_1_relaxed.mod.py | 0
.../specs/skip/V1_1/relu6_float_2_relaxed.mod.py | 0
.../specs/skip/V1_1/relu_float_1_relaxed.mod.py | 0
.../specs/skip/V1_1/relu_float_2_relaxed.mod.py | 0
tests/nnapi/specs/skip/V1_1/reshape_relaxed.mod.py | 0
.../V1_1/reshape_weights_as_inputs_relaxed.mod.py | 0
.../skip/V1_1/resize_bilinear_2_relaxed.mod.py | 0
.../specs/skip/V1_1/resize_bilinear_relaxed.mod.py | 0
tests/nnapi/specs/skip/V1_1/rnn_relaxed.mod.py | 0
.../nnapi/specs/skip/V1_1/rnn_state_relaxed.mod.py | 0
.../specs/skip/V1_1/softmax_float_1_relaxed.mod.py | 0
.../specs/skip/V1_1/softmax_float_2_relaxed.mod.py | 0
.../V1_1/space_to_batch_float_1_relaxed.mod.py | 0
.../V1_1/space_to_batch_float_2_relaxed.mod.py | 0
.../V1_1/space_to_batch_float_3_relaxed.mod.py | 0
.../specs/skip/V1_1/space_to_batch_relaxed.mod.py | 0
.../V1_1/space_to_depth_float_1_relaxed.mod.py | 0
.../V1_1/space_to_depth_float_2_relaxed.mod.py | 0
.../V1_1/space_to_depth_float_3_relaxed.mod.py | 0
.../specs/skip/V1_1/squeeze_float_1_relaxed.mod.py | 0
tests/nnapi/specs/skip/V1_1/squeeze_relaxed.mod.py | 0
.../V1_1/strided_slice_float_10_relaxed.mod.py | 0
.../V1_1/strided_slice_float_11_relaxed.mod.py | 0
.../skip/V1_1/strided_slice_float_1_relaxed.mod.py | 0
.../skip/V1_1/strided_slice_float_2_relaxed.mod.py | 0
.../skip/V1_1/strided_slice_float_3_relaxed.mod.py | 0
.../skip/V1_1/strided_slice_float_4_relaxed.mod.py | 0
.../skip/V1_1/strided_slice_float_5_relaxed.mod.py | 0
.../skip/V1_1/strided_slice_float_6_relaxed.mod.py | 0
.../skip/V1_1/strided_slice_float_7_relaxed.mod.py | 0
.../skip/V1_1/strided_slice_float_8_relaxed.mod.py | 0
.../skip/V1_1/strided_slice_float_9_relaxed.mod.py | 0
.../specs/skip/V1_1/strided_slice_relaxed.mod.py | 0
.../skip/V1_1/sub_broadcast_float_relaxed.mod.py | 0
tests/nnapi/specs/skip/V1_1/sub_relaxed.mod.py | 0
tests/nnapi/specs/skip/V1_1/svdf2_relaxed.mod.py | 0
.../skip/V1_1/svdf_bias_present_relaxed.mod.py | 0
tests/nnapi/specs/skip/V1_1/svdf_relaxed.mod.py | 0
.../specs/skip/V1_1/svdf_state_relaxed.mod.py | 0
tests/nnapi/specs/skip/V1_1/tanh_relaxed.mod.py | 0
.../skip/V1_1/transpose_float_1_relaxed.mod.py | 0
.../nnapi/specs/skip/V1_1/transpose_relaxed.mod.py | 0
tests/nnapi/specs/skip/V1_2/add_v1_2.mod.py | 0
tests/nnapi/specs/skip/V1_2/argmax_1.mod.py | 31 -
tests/nnapi/specs/skip/V1_2/argmax_2.mod.py | 31 -
tests/nnapi/specs/skip/V1_2/argmax_3.mod.py | 33 -
tests/nnapi/specs/skip/V1_2/argmin_1.mod.py | 0
tests/nnapi/specs/skip/V1_2/argmin_2.mod.py | 0
tests/nnapi/specs/skip/V1_2/argmin_3.mod.py | 0
tests/nnapi/specs/skip/V1_2/avg_pool_v1_2.mod.py | 0
.../skip/V1_2/axis_aligned_bbox_transform.mod.py | 0
.../specs/skip/V1_2/batch_to_space_v1_2.mod.py | 0
tests/nnapi/specs/skip/V1_2/bbox_graph.mod.py | 0
.../skip/V1_2/bidirectional_sequence_lstm.mod.py | 0
.../bidirectional_sequence_lstm_aux_input.mod.py | 0
...idirectional_sequence_lstm_cifg_peephole.mod.py | 0
...tional_sequence_lstm_float16_batch_major.mod.py | 0
...uence_lstm_float16_batch_major_aux_input.mod.py | 0
...e_lstm_float16_batch_major_merge_outputs.mod.py | 0
...idirectional_sequence_lstm_merge_outputs.mod.py | 0
...directional_sequence_lstm_norm_fw_output.mod.py | 0
.../skip/V1_2/bidirectional_sequence_rnn.mod.py | 0
.../skip/V1_2/box_with_nms_limit_gaussian.mod.py | 0
.../specs/skip/V1_2/box_with_nms_limit_hard.mod.py | 0
.../skip/V1_2/box_with_nms_limit_linear.mod.py | 0
tests/nnapi/specs/skip/V1_2/channel_shuffle.mod.py | 0
.../nnapi/specs/skip/V1_2/concat_float16_1.mod.py | 0
.../nnapi/specs/skip/V1_2/concat_float16_2.mod.py | 0
.../nnapi/specs/skip/V1_2/concat_float16_3.mod.py | 0
.../specs/skip/V1_2/concat_mixed_quant.mod.py | 0
.../nnapi/specs/skip/V1_2/concat_zero_sized.mod.py | 0
tests/nnapi/specs/skip/V1_2/conv2d_dilation.mod.py | 0
.../specs/skip/V1_2/conv2d_per_channel.mod.py | 0
tests/nnapi/specs/skip/V1_2/conv2d_v1_2.mod.py | 0
.../specs/skip/V1_2/depth_to_space_v1_2.mod.py | 0
.../skip/V1_2/depthwise_conv2d_dilation.mod.py | 0
.../skip/V1_2/depthwise_conv2d_per_channel.mod.py | 0
.../specs/skip/V1_2/depthwise_conv2d_v1_2.mod.py | 0
tests/nnapi/specs/skip/V1_2/dequantize_v1_2.mod.py | 0
.../specs/skip/V1_2/detection_postprocess.mod.py | 0
tests/nnapi/specs/skip/V1_2/div_v1_2.mod.py | 0
tests/nnapi/specs/skip/V1_2/equal.mod.py | 99 -
tests/nnapi/specs/skip/V1_2/expand_dims.mod.py | 0
tests/nnapi/specs/skip/V1_2/floor_float16.mod.py | 0
.../specs/skip/V1_2/fully_connected_v1_2.mod.py | 0
.../specs/skip/V1_2/generate_proposals.mod.py | 0
tests/nnapi/specs/skip/V1_2/greater.mod.py | 0
tests/nnapi/specs/skip/V1_2/greater_equal.mod.py | 99 -
tests/nnapi/specs/skip/V1_2/grouped_conv2d.mod.py | 0
.../specs/skip/V1_2/heatmap_max_keypoint.mod.py | 0
.../specs/skip/V1_2/instance_normalization.mod.py | 0
.../specs/skip/V1_2/l2_normalization_axis.mod.py | 0
.../specs/skip/V1_2/l2_normalization_v1_2.mod.py | 0
tests/nnapi/specs/skip/V1_2/l2_pool_v1_2.mod.py | 0
tests/nnapi/specs/skip/V1_2/layer_norm_lstm.mod.py | 0
tests/nnapi/specs/skip/V1_2/less.mod.py | 99 -
tests/nnapi/specs/skip/V1_2/less_equal.mod.py | 0
.../V1_2/local_response_normalization_v1_2.mod.py | 0
tests/nnapi/specs/skip/V1_2/log.mod.py | 0
tests/nnapi/specs/skip/V1_2/log_softmax.mod.py | 0
tests/nnapi/specs/skip/V1_2/logical_and.mod.py | 43 -
tests/nnapi/specs/skip/V1_2/logical_not.mod.py | 25 -
tests/nnapi/specs/skip/V1_2/logical_or.mod.py | 43 -
tests/nnapi/specs/skip/V1_2/logistic_v1_2.mod.py | 0
.../skip/V1_2/lsh_projection_3_relaxed.mod.py | 0
.../skip/V1_2/lsh_projection_4_relaxed.mod.py | 0
.../skip/V1_2/lsh_projection_deprecated.mod.py | 0
.../specs/skip/V1_2/lsh_projection_float16.mod.py | 0
tests/nnapi/specs/skip/V1_2/lstm2_float16.mod.py | 0
.../specs/skip/V1_2/lstm2_state2_float16.mod.py | 0
.../specs/skip/V1_2/lstm2_state_float16.mod.py | 0
tests/nnapi/specs/skip/V1_2/lstm3_float16.mod.py | 0
.../specs/skip/V1_2/lstm3_state2_float16.mod.py | 0
.../specs/skip/V1_2/lstm3_state3_float16.mod.py | 0
.../specs/skip/V1_2/lstm3_state_float16.mod.py | 0
tests/nnapi/specs/skip/V1_2/lstm_float16.mod.py | 0
.../specs/skip/V1_2/lstm_state2_float16.mod.py | 0
.../specs/skip/V1_2/lstm_state_float16.mod.py | 0
tests/nnapi/specs/skip/V1_2/max_pool_v1_2.mod.py | 0
tests/nnapi/specs/skip/V1_2/maximum.mod.py | 64 -
tests/nnapi/specs/skip/V1_2/mean_float16.mod.py | 0
tests/nnapi/specs/skip/V1_2/minimum.mod.py | 64 -
tests/nnapi/specs/skip/V1_2/mul_v1_2.mod.py | 0
tests/nnapi/specs/skip/V1_2/not_equal.mod.py | 99 -
tests/nnapi/specs/skip/V1_2/pad_all_dims.mod.py | 0
tests/nnapi/specs/skip/V1_2/pad_float16.mod.py | 0
tests/nnapi/specs/skip/V1_2/pad_low_rank.mod.py | 0
.../specs/skip/V1_2/pad_low_rank_quant8.mod.py | 0
tests/nnapi/specs/skip/V1_2/pad_quant8.mod.py | 0
.../specs/skip/V1_2/pad_quant8_nonzero.mod.py | 0
tests/nnapi/specs/skip/V1_2/pad_v2_1_float.mod.py | 0
tests/nnapi/specs/skip/V1_2/pad_v2_1_quant8.mod.py | 0
tests/nnapi/specs/skip/V1_2/pad_v2_all_dims.mod.py | 0
.../specs/skip/V1_2/pad_v2_all_dims_quant8.mod.py | 0
tests/nnapi/specs/skip/V1_2/pad_v2_low_rank.mod.py | 0
.../specs/skip/V1_2/pad_v2_low_rank_quant8.mod.py | 0
tests/nnapi/specs/skip/V1_2/pow.mod.py | 0
tests/nnapi/specs/skip/V1_2/prelu.mod.py | 61 -
tests/nnapi/specs/skip/V1_2/quantize.mod.py | 0
tests/nnapi/specs/skip/V1_2/quantized_lstm.mod.py | 0
.../specs/skip/V1_2/random_multinomial.mod.py | 0
.../skip/V1_2/random_multinomial_float16.mod.py | 0
tests/nnapi/specs/skip/V1_2/reduce_all.mod.py | 0
tests/nnapi/specs/skip/V1_2/reduce_any.mod.py | 0
tests/nnapi/specs/skip/V1_2/reduce_min.mod.py | 70 -
tests/nnapi/specs/skip/V1_2/reduce_prod.mod.py | 0
tests/nnapi/specs/skip/V1_2/reduce_sum.mod.py | 66 -
tests/nnapi/specs/skip/V1_2/relu1_v1_2.mod.py | 0
tests/nnapi/specs/skip/V1_2/relu6_v1_2.mod.py | 0
tests/nnapi/specs/skip/V1_2/relu_v1_2.mod.py | 0
tests/nnapi/specs/skip/V1_2/reshape_float16.mod.py | 0
.../specs/skip/V1_2/resize_bilinear_v1_2.mod.py | 0
.../specs/skip/V1_2/resize_nearest_neighbor.mod.py | 0
tests/nnapi/specs/skip/V1_2/rnn_float16.mod.py | 0
tests/nnapi/specs/skip/V1_2/roi_align.mod.py | 0
tests/nnapi/specs/skip/V1_2/roi_pooling.mod.py | 0
tests/nnapi/specs/skip/V1_2/select_v1_2.mod.py | 0
tests/nnapi/specs/skip/V1_2/sin.mod.py | 0
tests/nnapi/specs/skip/V1_2/slice.mod.py | 147 -
tests/nnapi/specs/skip/V1_2/softmax_v1_2.mod.py | 0
.../skip/V1_2/space_to_batch_quant8_nonzero.mod.py | 0
.../specs/skip/V1_2/space_to_batch_v1_2.mod.py | 0
.../specs/skip/V1_2/space_to_depth_v1_2.mod.py | 0
tests/nnapi/specs/skip/V1_2/split_float_1.mod.py | 38 -
tests/nnapi/specs/skip/V1_2/split_float_2.mod.py | 37 -
tests/nnapi/specs/skip/V1_2/split_float_3.mod.py | 39 -
tests/nnapi/specs/skip/V1_2/split_float_4.mod.py | 36 -
tests/nnapi/specs/skip/V1_2/split_float_5.mod.py | 36 -
tests/nnapi/specs/skip/V1_2/split_int32_1.mod.py | 38 -
tests/nnapi/specs/skip/V1_2/split_int32_2.mod.py | 37 -
tests/nnapi/specs/skip/V1_2/split_int32_3.mod.py | 39 -
tests/nnapi/specs/skip/V1_2/split_int32_4.mod.py | 36 -
tests/nnapi/specs/skip/V1_2/split_quant8_1.mod.py | 38 -
tests/nnapi/specs/skip/V1_2/split_quant8_2.mod.py | 37 -
tests/nnapi/specs/skip/V1_2/split_quant8_3.mod.py | 39 -
tests/nnapi/specs/skip/V1_2/split_quant8_4.mod.py | 36 -
tests/nnapi/specs/skip/V1_2/squeeze_float16.mod.py | 0
.../specs/skip/V1_2/strided_slice_float16.mod.py | 0
.../V1_2/sub_quantized_different_scales.mod.py | 0
tests/nnapi/specs/skip/V1_2/sub_v1_2.mod.py | 99 -
.../specs/skip/V1_2/sub_v1_2_broadcast.mod.py | 60 -
.../skip/V1_2/svdf_bias_present_float16.mod.py | 0
tests/nnapi/specs/skip/V1_2/svdf_float16.mod.py | 0
.../specs/skip/V1_2/svdf_state_float16.mod.py | 0
tests/nnapi/specs/skip/V1_2/tanh_v1_2.mod.py | 89 -
tests/nnapi/specs/skip/V1_2/tile_1.mod.py | 0
tests/nnapi/specs/skip/V1_2/tile_2.mod.py | 0
tests/nnapi/specs/skip/V1_2/tile_3.mod.py | 0
.../nnapi/specs/skip/V1_2/transpose_conv2d.mod.py | 0
.../specs/skip/V1_2/transpose_conv2d_large.mod.py | 0
.../nnapi/specs/skip/V1_2/transpose_float16.mod.py | 0
tests/nnapi/specs/skip/V1_2/transpose_v1_2.mod.py | 81 -
.../V1_2/unidirectional_sequence_lstm_1step.mod.py | 0
...stm_batch_major_norm_peephole_projection.mod.py | 0
...stm_batch_major_peephole_projection_bias.mod.py | 0
...idirectional_sequence_lstm_cifg_peephole.mod.py | 0
...irectional_sequence_lstm_f16_batch_major.mod.py | 0
...quence_lstm_f16_norm_peephole_projection.mod.py | 0
...l_sequence_lstm_layer_norm_cifg_peephole.mod.py | 0
...l_sequence_lstm_norm_peephole_projection.mod.py | 0
.../skip/V1_2/unidirectional_sequence_rnn.mod.py | 0
tests/nnapi/src/TestGenerated.cpp | 28 +-
tests/nnapi/src/TestMain.cpp | 8 +-
tests/nnapi/src/TestNeuralNetworksWrapper.h | 8 +-
tests/nnapi/src/TestValidation.cpp | 6 +-
tests/nnfw_api/CMakeLists.txt | 25 +
tests/nnfw_api/src/FourOneOpModelSetInput.cc | 36 +
tests/nnfw_api/src/create_session.cc | 30 +
tests/nnfw_api/src/fixtures.h | 132 +
tests/nnfw_api/src/load_model.cc | 47 +
tests/nnfw_api/src/main.cc | 55 +
tests/nnfw_api/src/model_path.cc | 58 +
tests/nnfw_api/src/model_path.h | 62 +
tests/nnfw_api/src/prepare.cc | 27 +
tests/scripts/CMakeLists.txt | 19 +
tests/scripts/README.md | 6 +-
tests/scripts/benchmark_nnapi.sh | 28 +-
tests/scripts/benchmark_nnpkg.sh | 6 +-
tests/scripts/framework/run_test.sh | 277 +
.../tests/MODELS/inception_module/config.sh | 1 +
.../tests/MODELS/inception_nonslim/config.sh | 2 +
.../tests/MODELS/inception_slim/config.sh | 2 +
.../framework/tests/MODELS/mobilenet/config.sh | 2 +
tests/scripts/framework/tests/abs/config.sh | 1 +
tests/scripts/framework/tests/add/1D/config.sh | 1 +
tests/scripts/framework/tests/add/4D/config.sh | 1 +
.../tests/average_pool_2d/aligned/config.sh | 1 +
.../tests/average_pool_2d/avgpool1/config.sh | 1 +
.../tests/average_pool_2d/avgpool2/config.sh | 1 +
.../framework/tests/batch_to_space_nd2/config.sh | 1 +
tests/scripts/framework/tests/cast/config.sh | 1 +
tests/scripts/framework/tests/concat/2D/config.sh | 1 +
.../framework/tests/concat/concat1/config.sh | 1 +
.../framework/tests/concat/concat2/config.sh | 1 +
.../framework/tests/conv_2d/convolution1/config.sh | 1 +
.../framework/tests/conv_2d/convolution2/config.sh | 1 +
.../tests/custom/squared_difference/config.sh | 1 +
.../tests/depthwise_conv_2d/depthconv1/config.sh | 1 +
.../tests/depthwise_conv_2d/depthconv2/config.sh | 1 +
.../tests/depthwise_conv_2d_no_fuse/config.sh | 1 +
.../framework/tests/div/broadcast/config.sh | 1 +
.../framework/tests/embedding_lookup/config.sh | 1 +
tests/scripts/framework/tests/equal/config.sh | 1 +
tests/scripts/framework/tests/exp/config.sh | 1 +
.../scripts/framework/tests/floor/floor1/config.sh | 1 +
.../scripts/framework/tests/floor/floor2/config.sh | 1 +
.../framework/tests/fullyconnected/fc1/config.sh | 1 +
.../tests/fullyconnected/hybrid/config.sh | 1 +
.../tests/fullyconnected/matmul2x2/config.sh | 6 +
.../fullyconnected/weights_as_input/config.sh | 1 +
tests/scripts/framework/tests/gather/config.sh | 1 +
tests/scripts/framework/tests/greater/config.sh | 1 +
.../framework/tests/greater_equal/config.sh | 1 +
.../framework/tests/hashtable_lookup/config.sh | 1 +
.../framework/tests/l2_normalization/config.sh | 1 +
tests/scripts/framework/tests/l2_pool_2d/config.sh | 1 +
tests/scripts/framework/tests/less/config.sh | 1 +
tests/scripts/framework/tests/less_equal/config.sh | 1 +
tests/scripts/framework/tests/logistic/config.sh | 1 +
tests/scripts/framework/tests/max/config.sh | 1 +
.../framework/tests/max_pool_2d/maxpool1/config.sh | 1 +
.../framework/tests/max_pool_2d/maxpool2/config.sh | 1 +
tests/scripts/framework/tests/mean/config.sh | 1 +
tests/scripts/framework/tests/min/config.sh | 1 +
.../framework/tests/mul/broadcast/config.sh | 1 +
tests/scripts/framework/tests/neg/config.sh | 1 +
tests/scripts/framework/tests/not_equal/config.sh | 1 +
tests/scripts/framework/tests/one_hot/config.sh | 1 +
tests/scripts/framework/tests/pack/config.sh | 1 +
tests/scripts/framework/tests/pad/4D_2D/config.sh | 1 +
tests/scripts/framework/tests/pad/pad1/config.sh | 1 +
tests/scripts/framework/tests/pad/pad2/config.sh | 1 +
tests/scripts/framework/tests/reduce_max/config.sh | 1 +
.../framework/tests/reduce_mean/test1/config.sh | 1 +
.../framework/tests/reduce_mean/test2/config.sh | 1 +
tests/scripts/framework/tests/reduce_sum/config.sh | 1 +
tests/scripts/framework/tests/relu/config.sh | 1 +
tests/scripts/framework/tests/relu6/config.sh | 1 +
tests/scripts/framework/tests/reshape/3D/config.sh | 1 +
.../framework/tests/reshape/reshape1/config.sh | 1 +
.../framework/tests/reshape/reshape2/config.sh | 1 +
.../framework/tests/resize_bilinear/config.sh | 1 +
tests/scripts/framework/tests/rnn/config.sh | 1 +
tests/scripts/framework/tests/rsqrt/config.sh | 1 +
tests/scripts/framework/tests/shape/config.sh | 1 +
tests/scripts/framework/tests/sin/config.sh | 1 +
tests/scripts/framework/tests/slice/config.sh | 1 +
tests/scripts/framework/tests/softmax/config.sh | 1 +
.../framework/tests/space_to_batch_nd2/config.sh | 1 +
.../framework/tests/space_to_depth/config.sh | 1 +
tests/scripts/framework/tests/sqrt/config.sh | 1 +
tests/scripts/framework/tests/squeeze/config.sh | 1 +
.../framework/tests/strided_slice/config.sh | 1 +
.../framework/tests/sub/broadcast/config.sh | 1 +
tests/scripts/framework/tests/tanh/config.sh | 1 +
tests/scripts/framework/tests/topk_v2/config.sh | 1 +
tests/scripts/framework/tests/transpose/config.sh | 1 +
.../framework/tests/transpose_conv/same/config.sh | 1 +
.../framework/tests/transpose_conv/valid/config.sh | 1 +
tests/scripts/list/benchmark_nnpkg_model_list.txt | 8 +-
.../list/frameworktest_list.aarch64.acl_cl.txt | 46 +
.../list/frameworktest_list.aarch64.acl_neon.txt | 41 +
.../list/frameworktest_list.aarch64.cpu.txt | 33 +
.../list/frameworktest_list.armv7l.acl_cl.txt | 46 +
.../list/frameworktest_list.armv7l.acl_neon.txt | 42 +
.../scripts/list/frameworktest_list.armv7l.cpu.txt | 38 +
.../list/frameworktest_list.noarch.interp.txt | 16 +
.../scripts/list/frameworktest_list.x86_64.cpu.txt | 15 +
.../neurun_frameworktest_list.armv7l.acl_cl.txt | 46 -
.../neurun_frameworktest_list.armv7l.acl_neon.txt | 41 -
.../list/neurun_frameworktest_list.armv7l.cpu.txt | 13 -
.../list/neurun_frameworktest_list.armv7l.ncnn.txt | 2 -
.../neurun_frameworktest_list.noarch.interp.txt | 16 -
.../list/neurun_frameworktest_list.x86-64.cpu.txt | 12 -
tests/scripts/list/tflite_loader_list.aarch64.txt | 35 +
tests/scripts/list/tflite_loader_list.armv7l.txt | 44 +-
tests/scripts/merge_result_of_benchmark_nnpkg.py | 32 +-
.../oneapi_test/install_oneapi_test_nnpackages.sh | 142 +
tests/scripts/oneapi_test/models/add/config.sh | 1 +
tests/scripts/test-driver.sh | 20 +-
tests/scripts/test_framework.sh | 4 +-
tests/scripts/test_scheduler_with_profiling.sh | 6 +-
tests/scripts/unittest.sh | 22 +-
tests/tools/nnapi_test/src/nnapi_test.cc | 6 +
tests/tools/nnpackage_run/CMakeLists.txt | 10 +-
tests/tools/nnpackage_run/src/args.cc | 20 +-
tests/tools/nnpackage_run/src/args.h | 2 +
tests/tools/nnpackage_run/src/nnpackage_run.cc | 43 +-
.../tools/tflite_benchmark/src/tflite_benchmark.cc | 44 +-
tests/tools/tflite_loader/CMakeLists.txt | 8 +-
tests/tools/tflite_loader/src/tflite_loader.cc | 22 +-
tests/tools/tflite_run/CMakeLists.txt | 2 +-
tests/tools/tflite_run/src/args.cc | 7 +-
tests/tools/tflite_run/src/tensor_loader.cc | 16 +
tests/tools/tflite_run/src/tensor_loader.h | 16 +
tests/tools/tflite_run/src/tflite_run.cc | 32 +-
tools/cross/build_android_ndk.sh | 2 +-
tools/cross/install_android_sdk.sh | 167 +
tools/kernel_report/kernel_report.py | 171 +
.../nnpkg_test/list.armv7l-linux.acl_cl | 2 +-
.../nnpkg_test/list.armv7l-linux.acl_neon | 4 +-
.../nnpkg_test/list.armv7l-linux.cpu | 16 +-
tools/nnpackage_tool/nnpkg_test/list.noarch.interp | 6 +-
tools/nnpackage_tool/sth2nnpkgtc/tflite2nnpkgtc.md | 2 +-
tools/nnpackage_tool/tf2tfliteV2/README.md | 47 +
tools/nnpackage_tool/tf2tfliteV2/tf2tfliteV2.py | 173 +
.../tflite2circle/tflitejson2circlejson.py | 1 +
tools/pbfile_tool/convert_ckpt_to_pb.py | 0
tools/pbfile_tool/convert_pb_to_pbtxt.py | 0
tools/pbfile_tool/extract_subgraph.py | 0
tools/tensorflow_model_freezer/__init__.py | 0
tools/tensorflow_model_freezer/base_freezer.py | 0
.../tensorflow_model_freezer/model_freezer_util.py | 0
.../sample/Operation_gen.py | 0
.../tensorflow_model_freezer/sample/UNSTACK_gen.py | 0
tools/tensorflow_model_freezer/sample/__init__.py | 0
tools/tflite_accuracy/README.md | 2 +-
tools/tflitefile_tool/config_saver.py | 5 +-
tools/tflitefile_tool/graph_stats.py | 84 +
tools/tflitefile_tool/model_parser.py | 31 +-
tools/tflitefile_tool/model_printer.py | 146 -
tools/tflitefile_tool/model_saver.py | 0
tools/tflitefile_tool/operator_parser.py | 6 +-
tools/tflitefile_tool/operator_printer.py | 15 +-
tools/tflitefile_tool/option_printer.py | 0
tools/tflitefile_tool/perf_predictor.py | 28 -
tools/tflitefile_tool/select_operator.py | 27 +-
tools/tflitefile_tool/subgraph_printer.py | 92 +
tools/tflitefile_tool/tensor_printer.py | 0
tools/tflitefile_tool/tensor_wrapping.py | 8 +-
tools/tflitefile_tool/tflite/AbsOptions.py | 0
.../tflite/ActivationFunctionType.py | 0
tools/tflitefile_tool/tflite/AddNOptions.py | 28 +
tools/tflitefile_tool/tflite/AddOptions.py | 0
tools/tflitefile_tool/tflite/ArgMaxOptions.py | 0
tools/tflitefile_tool/tflite/ArgMinOptions.py | 0
.../tflite/BatchToSpaceNDOptions.py | 0
.../tflite/BidirectionalSequenceLSTMOptions.py | 14 +-
.../tflite/BidirectionalSequenceRNNOptions.py | 0
tools/tflitefile_tool/tflite/Buffer.py | 0
tools/tflitefile_tool/tflite/BuiltinOperator.py | 21 +
tools/tflitefile_tool/tflite/BuiltinOptions.py | 18 +
tools/tflitefile_tool/tflite/CallOptions.py | 0
tools/tflitefile_tool/tflite/CastOptions.py | 0
tools/tflitefile_tool/tflite/CombinerType.py | 0
.../tflite/ConcatEmbeddingsOptions.py | 0
.../tflitefile_tool/tflite/ConcatenationOptions.py | 0
tools/tflitefile_tool/tflite/Conv2DOptions.py | 0
tools/tflitefile_tool/tflite/CosOptions.py | 28 +
.../tflitefile_tool/tflite/CustomOptionsFormat.py | 0
tools/tflitefile_tool/tflite/CustomQuantization.py | 0
.../tflitefile_tool/tflite/DepthToSpaceOptions.py | 39 +
.../tflite/DepthwiseConv2DOptions.py | 0
tools/tflitefile_tool/tflite/DequantizeOptions.py | 0
tools/tflitefile_tool/tflite/DivOptions.py | 0
.../tflite/EmbeddingLookupSparseOptions.py | 0
tools/tflitefile_tool/tflite/EqualOptions.py | 0
tools/tflitefile_tool/tflite/ExpOptions.py | 0
tools/tflitefile_tool/tflite/ExpandDimsOptions.py | 0
tools/tflitefile_tool/tflite/FakeQuantOptions.py | 8 +-
tools/tflitefile_tool/tflite/FillOptions.py | 0
tools/tflitefile_tool/tflite/FloorDivOptions.py | 0
tools/tflitefile_tool/tflite/FloorModOptions.py | 0
.../tflite/FullyConnectedOptions.py | 14 +-
.../tflite/FullyConnectedOptionsWeightsFormat.py | 0
tools/tflitefile_tool/tflite/GatherNdOptions.py | 28 +
tools/tflitefile_tool/tflite/GatherOptions.py | 0
.../tflitefile_tool/tflite/GreaterEqualOptions.py | 0
tools/tflitefile_tool/tflite/GreaterOptions.py | 0
tools/tflitefile_tool/tflite/HardSwishOptions.py | 28 +
tools/tflitefile_tool/tflite/IfOptions.py | 50 +
tools/tflitefile_tool/tflite/L2NormOptions.py | 0
.../tflitefile_tool/tflite/LSHProjectionOptions.py | 4 +-
tools/tflitefile_tool/tflite/LSHProjectionType.py | 0
tools/tflitefile_tool/tflite/LSTMKernelType.py | 0
tools/tflitefile_tool/tflite/LSTMOptions.py | 0
tools/tflitefile_tool/tflite/LeakyReluOptions.py | 0
tools/tflitefile_tool/tflite/LessEqualOptions.py | 0
tools/tflitefile_tool/tflite/LessOptions.py | 0
.../tflite/LocalResponseNormalizationOptions.py | 0
tools/tflitefile_tool/tflite/LogSoftmaxOptions.py | 0
tools/tflitefile_tool/tflite/LogicalAndOptions.py | 0
tools/tflitefile_tool/tflite/LogicalNotOptions.py | 0
tools/tflitefile_tool/tflite/LogicalOrOptions.py | 0
tools/tflitefile_tool/tflite/MatrixDiagOptions.py | 28 +
.../tflitefile_tool/tflite/MatrixSetDiagOptions.py | 28 +
.../tflite/MaximumMinimumOptions.py | 0
tools/tflitefile_tool/tflite/MeanOptions.py | 39 -
tools/tflitefile_tool/tflite/Metadata.py | 51 +
tools/tflitefile_tool/tflite/MirrorPadMode.py | 0
tools/tflitefile_tool/tflite/MirrorPadOptions.py | 0
tools/tflitefile_tool/tflite/Model.py | 31 +-
tools/tflitefile_tool/tflite/MulOptions.py | 0
tools/tflitefile_tool/tflite/NegOptions.py | 0
.../tflite/NonMaxSuppressionV4Options.py | 28 +
.../tflite/NonMaxSuppressionV5Options.py | 28 +
tools/tflitefile_tool/tflite/NotEqualOptions.py | 0
tools/tflitefile_tool/tflite/OneHotOptions.py | 0
tools/tflitefile_tool/tflite/Operator.py | 35 +-
tools/tflitefile_tool/tflite/OperatorCode.py | 0
tools/tflitefile_tool/tflite/PackOptions.py | 0
tools/tflitefile_tool/tflite/PadOptions.py | 0
tools/tflitefile_tool/tflite/PadV2Options.py | 0
tools/tflitefile_tool/tflite/Padding.py | 0
tools/tflitefile_tool/tflite/Pool2DOptions.py | 0
tools/tflitefile_tool/tflite/PowOptions.py | 0
.../tflitefile_tool/tflite/QuantizationDetails.py | 0
.../tflite/QuantizationParameters.py | 21 +-
tools/tflitefile_tool/tflite/QuantizeOptions.py | 28 +
tools/tflitefile_tool/tflite/RNNOptions.py | 0
tools/tflitefile_tool/tflite/RangeOptions.py | 0
tools/tflitefile_tool/tflite/RankOptions.py | 28 +
tools/tflitefile_tool/tflite/ReducerOptions.py | 0
tools/tflitefile_tool/tflite/ReshapeOptions.py | 0
.../tflite/ResizeBilinearOptions.py | 0
.../tflite/ResizeNearestNeighborOptions.py | 0
.../tflite/ReverseSequenceOptions.py | 50 +
tools/tflitefile_tool/tflite/ReverseV2Options.py | 28 +
tools/tflitefile_tool/tflite/SVDFOptions.py | 0
tools/tflitefile_tool/tflite/ScatterNdOptions.py | 28 +
tools/tflitefile_tool/tflite/SelectOptions.py | 0
tools/tflitefile_tool/tflite/SequenceRNNOptions.py | 0
tools/tflitefile_tool/tflite/ShapeOptions.py | 0
tools/tflitefile_tool/tflite/SkipGramOptions.py | 0
tools/tflitefile_tool/tflite/SliceOptions.py | 0
tools/tflitefile_tool/tflite/SoftmaxOptions.py | 0
.../tflite/SpaceToBatchNDOptions.py | 0
.../tflitefile_tool/tflite/SpaceToDepthOptions.py | 0
.../tflitefile_tool/tflite/SparseToDenseOptions.py | 0
tools/tflitefile_tool/tflite/SplitOptions.py | 0
tools/tflitefile_tool/tflite/SplitVOptions.py | 0
tools/tflitefile_tool/tflite/SquareOptions.py | 0
.../tflite/SquaredDifferenceOptions.py | 0
tools/tflitefile_tool/tflite/SqueezeOptions.py | 0
.../tflitefile_tool/tflite/StridedSliceOptions.py | 0
tools/tflitefile_tool/tflite/SubGraph.py | 0
tools/tflitefile_tool/tflite/SubOptions.py | 0
tools/tflitefile_tool/tflite/Tensor.py | 4 +-
tools/tflitefile_tool/tflite/TensorType.py | 0
tools/tflitefile_tool/tflite/TileOptions.py | 0
tools/tflitefile_tool/tflite/TopKV2Options.py | 0
.../tflitefile_tool/tflite/TransposeConvOptions.py | 0
tools/tflitefile_tool/tflite/TransposeOptions.py | 0
.../tflite/UnidirectionalSequenceLSTMOptions.py | 0
tools/tflitefile_tool/tflite/UniqueOptions.py | 39 +
tools/tflitefile_tool/tflite/UnpackOptions.py | 0
tools/tflitefile_tool/tflite/WhereOptions.py | 28 +
tools/tflitefile_tool/tflite/WhileOptions.py | 50 +
tools/tflitefile_tool/tflite/ZerosLikeOptions.py | 0
tools/tflitefile_tool/tflite/__init__.py | 0
tools/tflkit/README.md | 2 +-
tools/tflkit/summarize_pb.py | 0
6010 files changed, 371936 insertions(+), 108668 deletions(-)
create mode 100644 compiler/CMakeLists.txt
create mode 100644 compiler/adtidas/CMakeLists.txt
create mode 100644 compiler/adtidas/include/adtidas/SmallVector.h
create mode 100644 compiler/angkor/CMakeLists.txt
create mode 100644 compiler/angkor/README.md
create mode 100644 compiler/angkor/include/angkor/TensorIndex.h
create mode 100644 compiler/angkor/include/angkor/TensorShape.h
create mode 100644 compiler/angkor/include/nncc/core/ADT/feature/Accessor.h
create mode 100644 compiler/angkor/include/nncc/core/ADT/feature/Buffer.h
create mode 100644 compiler/angkor/include/nncc/core/ADT/feature/CHWLayout.h
create mode 100644 compiler/angkor/include/nncc/core/ADT/feature/HWCLayout.h
create mode 100644 compiler/angkor/include/nncc/core/ADT/feature/Layout.h
create mode 100644 compiler/angkor/include/nncc/core/ADT/feature/Overlay.h
create mode 100644 compiler/angkor/include/nncc/core/ADT/feature/Reader.h
create mode 100644 compiler/angkor/include/nncc/core/ADT/feature/Shape.h
create mode 100644 compiler/angkor/include/nncc/core/ADT/feature/View.h
create mode 100644 compiler/angkor/include/nncc/core/ADT/kernel/Accessor.h
create mode 100644 compiler/angkor/include/nncc/core/ADT/kernel/Buffer.h
create mode 100644 compiler/angkor/include/nncc/core/ADT/kernel/IndexEnumerator.h
create mode 100644 compiler/angkor/include/nncc/core/ADT/kernel/Layout.h
create mode 100644 compiler/angkor/include/nncc/core/ADT/kernel/NCHWLayout.h
create mode 100644 compiler/angkor/include/nncc/core/ADT/kernel/NHWCLayout.h
create mode 100644 compiler/angkor/include/nncc/core/ADT/kernel/Overlay.h
create mode 100644 compiler/angkor/include/nncc/core/ADT/kernel/Reader.h
create mode 100644 compiler/angkor/include/nncc/core/ADT/kernel/Shape.h
create mode 100644 compiler/angkor/include/nncc/core/ADT/kernel/View.h
create mode 100644 compiler/angkor/include/nncc/core/ADT/kernel/ViewImpl.h
create mode 100644 compiler/angkor/include/nncc/core/ADT/tensor/Accessor.h
create mode 100644 compiler/angkor/include/nncc/core/ADT/tensor/Buffer.h
create mode 100644 compiler/angkor/include/nncc/core/ADT/tensor/Index.h
create mode 100644 compiler/angkor/include/nncc/core/ADT/tensor/IndexEnumerator.h
create mode 100644 compiler/angkor/include/nncc/core/ADT/tensor/Layout.h
create mode 100644 compiler/angkor/include/nncc/core/ADT/tensor/LexicalLayout.h
create mode 100644 compiler/angkor/include/nncc/core/ADT/tensor/Overlay.h
create mode 100644 compiler/angkor/include/nncc/core/ADT/tensor/Reader.h
create mode 100644 compiler/angkor/include/nncc/core/ADT/tensor/Shape.h
create mode 100644 compiler/angkor/include/nncc/core/ADT/tensor/View.h
create mode 100644 compiler/angkor/src/ADT/feature/Accessor.cpp
create mode 100644 compiler/angkor/src/ADT/feature/Buffer.test.cpp
create mode 100644 compiler/angkor/src/ADT/feature/CHWLayout.cpp
create mode 100644 compiler/angkor/src/ADT/feature/CHWLayout.test.cpp
create mode 100644 compiler/angkor/src/ADT/feature/HWCLayout.cpp
create mode 100644 compiler/angkor/src/ADT/feature/HWCLayout.test.cpp
create mode 100644 compiler/angkor/src/ADT/feature/Layout.cpp
create mode 100644 compiler/angkor/src/ADT/feature/Layout.test.cpp
create mode 100644 compiler/angkor/src/ADT/feature/Overlay.test.cpp
create mode 100644 compiler/angkor/src/ADT/feature/Reader.cpp
create mode 100644 compiler/angkor/src/ADT/feature/Shape.test.cpp
create mode 100644 compiler/angkor/src/ADT/kernel/Buffer.test.cpp
create mode 100644 compiler/angkor/src/ADT/kernel/IndexEnumerator.cpp
create mode 100644 compiler/angkor/src/ADT/kernel/IndexEnumerator.test.cpp
create mode 100644 compiler/angkor/src/ADT/kernel/Layout.cpp
create mode 100644 compiler/angkor/src/ADT/kernel/Layout.test.cpp
create mode 100644 compiler/angkor/src/ADT/kernel/NCHWLayout.cpp
create mode 100644 compiler/angkor/src/ADT/kernel/NCHWLayout.test.cpp
create mode 100644 compiler/angkor/src/ADT/kernel/NHWCLayout.cpp
create mode 100644 compiler/angkor/src/ADT/kernel/NHWCLayout.test.cpp
create mode 100644 compiler/angkor/src/ADT/kernel/Overlay.test.cpp
create mode 100644 compiler/angkor/src/ADT/kernel/Reader.cpp
create mode 100644 compiler/angkor/src/ADT/kernel/Shape.cpp
create mode 100644 compiler/angkor/src/ADT/kernel/Shape.test.cpp
create mode 100644 compiler/angkor/src/ADT/tensor/Buffer.test.cpp
create mode 100644 compiler/angkor/src/ADT/tensor/Index.cpp
create mode 100644 compiler/angkor/src/ADT/tensor/Index.test.cpp
create mode 100644 compiler/angkor/src/ADT/tensor/IndexEnumerator.cpp
create mode 100644 compiler/angkor/src/ADT/tensor/IndexEnumerator.test.cpp
create mode 100644 compiler/angkor/src/ADT/tensor/Layout.cpp
create mode 100644 compiler/angkor/src/ADT/tensor/Layout.test.cpp
create mode 100644 compiler/angkor/src/ADT/tensor/LexicalLayout.cpp
create mode 100644 compiler/angkor/src/ADT/tensor/LexicalLayout.test.cpp
create mode 100644 compiler/angkor/src/ADT/tensor/Overlay.test.cpp
create mode 100644 compiler/angkor/src/ADT/tensor/Reader.cpp
create mode 100644 compiler/angkor/src/ADT/tensor/Shape.cpp
create mode 100644 compiler/angkor/src/ADT/tensor/Shape.test.cpp
create mode 100644 compiler/angkor/src/TensorIndex.test.cpp
create mode 100644 compiler/angkor/src/TensorShape.test.cpp
create mode 100644 compiler/ann-api/CMakeLists.txt
create mode 100644 compiler/ann-api/include/.FORMATDENY
create mode 100644 compiler/ann-api/include/NeuralNetworks.h
create mode 100644 compiler/ann-ref/.FORMATDENY
create mode 100644 compiler/ann-ref/CMakeLists.txt
create mode 100644 compiler/ann-ref/README.md
create mode 100644 compiler/ann-ref/requires.cmake
create mode 100644 compiler/ann-ref/src/Assert.h
create mode 100644 compiler/ann-ref/src/CompilationBuilder.cpp
create mode 100644 compiler/ann-ref/src/CompilationBuilder.h
create mode 100644 compiler/ann-ref/src/ExecutionBuilder.cpp
create mode 100644 compiler/ann-ref/src/ExecutionBuilder.h
create mode 100644 compiler/ann-ref/src/Executor.cpp
create mode 100644 compiler/ann-ref/src/Executor.h
create mode 100644 compiler/ann-ref/src/Logging.cpp
create mode 100644 compiler/ann-ref/src/Logging.h
create mode 100644 compiler/ann-ref/src/Macro.h
create mode 100644 compiler/ann-ref/src/Memory.cpp
create mode 100644 compiler/ann-ref/src/Memory.h
create mode 100644 compiler/ann-ref/src/MemoryTracker.cpp
create mode 100644 compiler/ann-ref/src/MemoryTracker.h
create mode 100644 compiler/ann-ref/src/Model.h
create mode 100644 compiler/ann-ref/src/ModelArgumentInfo.cpp
create mode 100644 compiler/ann-ref/src/ModelArgumentInfo.h
create mode 100644 compiler/ann-ref/src/ModelBuilder.cpp
create mode 100644 compiler/ann-ref/src/ModelBuilder.h
create mode 100644 compiler/ann-ref/src/NeuralNetworks.cpp
create mode 100644 compiler/ann-ref/src/Operand.h
create mode 100644 compiler/ann-ref/src/OperandType.cpp
create mode 100644 compiler/ann-ref/src/OperandType.h
create mode 100644 compiler/ann-ref/src/OperandType.probe.cpp
create mode 100644 compiler/ann-ref/src/Operation.h
create mode 100644 compiler/ann-ref/src/OperationType.cpp
create mode 100644 compiler/ann-ref/src/OperationType.h
create mode 100644 compiler/ann-ref/src/OperationType.probe.cpp
create mode 100644 compiler/ann-ref/src/Probe.cpp
create mode 100644 compiler/ann-ref/src/Request.h
create mode 100644 compiler/ann-ref/src/Shape.cpp
create mode 100644 compiler/ann-ref/src/Shape.h
create mode 100644 compiler/ann-ref/src/Validation.cpp
create mode 100644 compiler/ann-ref/src/Validation.h
create mode 100644 compiler/ann-ref/src/ops/Add.cpp
create mode 100644 compiler/ann-ref/src/ops/Add.float.cpp
create mode 100644 compiler/ann-ref/src/ops/Add.float.h
create mode 100644 compiler/ann-ref/src/ops/Add.h
create mode 100644 compiler/ann-ref/src/ops/AvgPool2D.cpp
create mode 100644 compiler/ann-ref/src/ops/AvgPool2D.float.cpp
create mode 100644 compiler/ann-ref/src/ops/AvgPool2D.float.h
create mode 100644 compiler/ann-ref/src/ops/AvgPool2D.h
create mode 100644 compiler/ann-ref/src/ops/Concatenation.cpp
create mode 100644 compiler/ann-ref/src/ops/Concatenation.float.cpp
create mode 100644 compiler/ann-ref/src/ops/Concatenation.float.h
create mode 100644 compiler/ann-ref/src/ops/Concatenation.h
create mode 100644 compiler/ann-ref/src/ops/Conv2D.cpp
create mode 100644 compiler/ann-ref/src/ops/Conv2D.float.cpp
create mode 100644 compiler/ann-ref/src/ops/Conv2D.float.h
create mode 100644 compiler/ann-ref/src/ops/Conv2D.h
create mode 100644 compiler/ann-ref/src/ops/DepthwiseConv2D.cpp
create mode 100644 compiler/ann-ref/src/ops/DepthwiseConv2D.float.cpp
create mode 100644 compiler/ann-ref/src/ops/DepthwiseConv2D.float.h
create mode 100644 compiler/ann-ref/src/ops/DepthwiseConv2D.h
create mode 100644 compiler/ann-ref/src/ops/Div.cpp
create mode 100644 compiler/ann-ref/src/ops/Div.float.cpp
create mode 100644 compiler/ann-ref/src/ops/Div.float.h
create mode 100644 compiler/ann-ref/src/ops/Div.h
create mode 100644 compiler/ann-ref/src/ops/FullyConnected.cpp
create mode 100644 compiler/ann-ref/src/ops/FullyConnected.float.cpp
create mode 100644 compiler/ann-ref/src/ops/FullyConnected.float.h
create mode 100644 compiler/ann-ref/src/ops/FullyConnected.h
create mode 100644 compiler/ann-ref/src/ops/MaxPool2D.cpp
create mode 100644 compiler/ann-ref/src/ops/MaxPool2D.float.cpp
create mode 100644 compiler/ann-ref/src/ops/MaxPool2D.float.h
create mode 100644 compiler/ann-ref/src/ops/MaxPool2D.h
create mode 100644 compiler/ann-ref/src/ops/Mul.cpp
create mode 100644 compiler/ann-ref/src/ops/Mul.float.cpp
create mode 100644 compiler/ann-ref/src/ops/Mul.float.h
create mode 100644 compiler/ann-ref/src/ops/Mul.h
create mode 100644 compiler/ann-ref/src/ops/Pad.cpp
create mode 100644 compiler/ann-ref/src/ops/Pad.h
create mode 100644 compiler/ann-ref/src/ops/ReLU.cpp
create mode 100644 compiler/ann-ref/src/ops/ReLU.float.cpp
create mode 100644 compiler/ann-ref/src/ops/ReLU.float.h
create mode 100644 compiler/ann-ref/src/ops/ReLU.h
create mode 100644 compiler/ann-ref/src/ops/ReLU6.cpp
create mode 100644 compiler/ann-ref/src/ops/ReLU6.float.cpp
create mode 100644 compiler/ann-ref/src/ops/ReLU6.float.h
create mode 100644 compiler/ann-ref/src/ops/ReLU6.h
create mode 100644 compiler/ann-ref/src/ops/Reshape.cpp
create mode 100644 compiler/ann-ref/src/ops/Reshape.h
create mode 100644 compiler/ann-ref/src/ops/Softmax.cpp
create mode 100644 compiler/ann-ref/src/ops/Softmax.float.cpp
create mode 100644 compiler/ann-ref/src/ops/Softmax.float.h
create mode 100644 compiler/ann-ref/src/ops/Softmax.h
create mode 100644 compiler/ann-ref/src/ops/Sub.cpp
create mode 100644 compiler/ann-ref/src/ops/Sub.float.cpp
create mode 100644 compiler/ann-ref/src/ops/Sub.float.h
create mode 100644 compiler/ann-ref/src/ops/Sub.h
create mode 100644 compiler/ann-ref/src/ops/internal/ActivationUtils.h
create mode 100644 compiler/ann-ref/src/ops/internal/Array.h
create mode 100644 compiler/ann-ref/src/ops/internal/Dims.h
create mode 100644 compiler/ann-ref/src/ops/internal/Elementwise.cpp
create mode 100644 compiler/ann-ref/src/ops/internal/Elementwise.h
create mode 100644 compiler/ann-ref/src/ops/internal/FeatureMap.h
create mode 100644 compiler/ann-ref/src/ops/internal/Fused.cpp
create mode 100644 compiler/ann-ref/src/ops/internal/Fused.h
create mode 100644 compiler/ann-ref/src/ops/internal/GEMM.h
create mode 100644 compiler/ann-ref/src/ops/internal/Macro.h
create mode 100644 compiler/ann-ref/src/ops/internal/Matrix.h
create mode 100644 compiler/ann-ref/src/ops/internal/NDArray.h
create mode 100644 compiler/ann-ref/src/ops/internal/Pooling.cpp
create mode 100644 compiler/ann-ref/src/ops/internal/Pooling.h
create mode 100644 compiler/ann-ref/src/ops/internal/Spatial.h
create mode 100644 compiler/bino/CMakeLists.txt
create mode 100644 compiler/bino/README.md
create mode 100644 compiler/bino/include/bino.h
create mode 100644 compiler/bino/tests/Functional.tests.cpp
create mode 100644 compiler/caffe2circle/CMakeLists.txt
create mode 100644 compiler/caffe2circle/README.md
create mode 100644 compiler/caffe2circle/requires.cmake
create mode 100644 compiler/caffe2circle/src/caffe2circle.cpp
create mode 100644 compiler/caffegen/CMakeLists.txt
create mode 100644 compiler/caffegen/README.md
create mode 100644 compiler/caffegen/src/DecodeCommand.cpp
create mode 100644 compiler/caffegen/src/DecodeCommand.h
create mode 100644 compiler/caffegen/src/Driver.cpp
create mode 100644 compiler/caffegen/src/EncodeCommand.cpp
create mode 100644 compiler/caffegen/src/EncodeCommand.h
create mode 100644 compiler/caffegen/src/InitCommand.cpp
create mode 100644 compiler/caffegen/src/InitCommand.h
create mode 100644 compiler/caffegen/src/MergeCommand.cpp
create mode 100644 compiler/caffegen/src/MergeCommand.h
create mode 100644 compiler/circle-inspect/CMakeLists.txt
create mode 100644 compiler/circle-inspect/README.md
create mode 100644 compiler/circle-inspect/driver/Driver.cpp
create mode 100644 compiler/circle-inspect/requires.cmake
create mode 100644 compiler/circle-inspect/src/Dump.cpp
create mode 100644 compiler/circle-inspect/src/Dump.h
create mode 100644 compiler/circle-inspect/src/Model.cpp
create mode 100644 compiler/circle-inspect/src/Model.h
create mode 100644 compiler/circle-inspect/src/Reader.cpp
create mode 100644 compiler/circle-inspect/src/Reader.h
create mode 100644 compiler/circle-verify/CMakeLists.txt
create mode 100644 compiler/circle-verify/README.md
create mode 100644 compiler/circle-verify/requires.cmake
create mode 100644 compiler/circle-verify/src/Driver.cpp
create mode 100644 compiler/circle-verify/src/Model.cpp
create mode 100644 compiler/circle-verify/src/Model.h
create mode 100644 compiler/circle-verify/src/VerifyFlatBuffers.cpp
create mode 100644 compiler/circle-verify/src/VerifyFlatBuffers.h
create mode 100644 compiler/circle2circle/CMakeLists.txt
create mode 100644 compiler/circle2circle/README.md
create mode 100644 compiler/circle2circle/include/CircleExpContract.h
create mode 100644 compiler/circle2circle/include/Model.h
create mode 100644 compiler/circle2circle/requires.cmake
create mode 100644 compiler/circle2circle/src/Circle2Circle.cpp
create mode 100644 compiler/circle2circle/src/Circle2Circle.test.cpp
create mode 100644 compiler/circle2circle/src/CircleExpContract.cpp
create mode 100644 compiler/circle2circle/src/Model.cpp
create mode 100644 compiler/circle2circle/src/TestHelper.h
create mode 100644 compiler/circledump/CMakeLists.txt
create mode 100644 compiler/circledump/README.md
create mode 100644 compiler/circledump/driver/Driver.cpp
create mode 100644 compiler/circledump/include/circledump/Dump.h
create mode 100644 compiler/circledump/include/circleread/Model.h
create mode 100644 compiler/circledump/requires.cmake
create mode 100644 compiler/circledump/src/Dump.cpp
create mode 100644 compiler/circledump/src/Load.cpp
create mode 100644 compiler/circledump/src/OpPrinter.cpp
create mode 100644 compiler/circledump/src/OpPrinter.h
create mode 100644 compiler/circledump/src/Read.cpp
create mode 100644 compiler/circledump/src/Read.h
create mode 100644 compiler/cli/CMakeLists.txt
create mode 100644 compiler/cli/README.md
create mode 100644 compiler/cli/include/cli/App.h
create mode 100644 compiler/cli/include/cli/Command.h
create mode 100644 compiler/cli/include/cli/FunctionCommand.h
create mode 100644 compiler/cli/src/App.cpp
create mode 100644 compiler/cli/src/App.test.cpp
create mode 100644 compiler/coco/CMakeLists.txt
create mode 100644 compiler/coco/README.md
create mode 100644 compiler/coco/core/CMakeLists.txt
create mode 100644 compiler/coco/core/include/coco/ADT/DLinkedList.h
create mode 100644 compiler/coco/core/include/coco/ADT/PtrList.h
create mode 100644 compiler/coco/core/include/coco/ADT/PtrManager.h
create mode 100644 compiler/coco/core/include/coco/IR.h
create mode 100644 compiler/coco/core/include/coco/IR/Arg.h
create mode 100644 compiler/coco/core/include/coco/IR/Bag.h
create mode 100644 compiler/coco/core/include/coco/IR/BagManager.h
create mode 100644 compiler/coco/core/include/coco/IR/Block.forward.h
create mode 100644 compiler/coco/core/include/coco/IR/Block.h
create mode 100644 compiler/coco/core/include/coco/IR/BlockIndex.h
create mode 100644 compiler/coco/core/include/coco/IR/BlockManager.h
create mode 100644 compiler/coco/core/include/coco/IR/Def.forward.h
create mode 100644 compiler/coco/core/include/coco/IR/Def.h
create mode 100644 compiler/coco/core/include/coco/IR/Dep.forward.h
create mode 100644 compiler/coco/core/include/coco/IR/Dep.h
create mode 100644 compiler/coco/core/include/coco/IR/DepSet.h
create mode 100644 compiler/coco/core/include/coco/IR/ElemID.h
create mode 100644 compiler/coco/core/include/coco/IR/Entity.h
create mode 100644 compiler/coco/core/include/coco/IR/EntityBuilder.h
create mode 100644 compiler/coco/core/include/coco/IR/EntityManager.h
create mode 100644 compiler/coco/core/include/coco/IR/FeatureLayout.h
create mode 100644 compiler/coco/core/include/coco/IR/FeatureLayouts.h
create mode 100644 compiler/coco/core/include/coco/IR/FeatureObject.forward.h
create mode 100644 compiler/coco/core/include/coco/IR/FeatureObject.h
create mode 100644 compiler/coco/core/include/coco/IR/FeatureShape.h
create mode 100644 compiler/coco/core/include/coco/IR/Input.forward.h
create mode 100644 compiler/coco/core/include/coco/IR/Input.h
create mode 100644 compiler/coco/core/include/coco/IR/InputList.h
create mode 100644 compiler/coco/core/include/coco/IR/InputManager.h
create mode 100644 compiler/coco/core/include/coco/IR/Instr.forward.h
create mode 100644 compiler/coco/core/include/coco/IR/Instr.h
create mode 100644 compiler/coco/core/include/coco/IR/Instr.lst
create mode 100644 compiler/coco/core/include/coco/IR/InstrIndex.h
create mode 100644 compiler/coco/core/include/coco/IR/InstrManager.h
create mode 100644 compiler/coco/core/include/coco/IR/Instrs.h
create mode 100644 compiler/coco/core/include/coco/IR/KernelLayout.h
create mode 100644 compiler/coco/core/include/coco/IR/KernelLayouts.h
create mode 100644 compiler/coco/core/include/coco/IR/KernelObject.forward.h
create mode 100644 compiler/coco/core/include/coco/IR/KernelObject.h
create mode 100644 compiler/coco/core/include/coco/IR/Locatable.h
create mode 100644 compiler/coco/core/include/coco/IR/Module.forward.h
create mode 100644 compiler/coco/core/include/coco/IR/Module.h
create mode 100644 compiler/coco/core/include/coco/IR/Object.forward.h
create mode 100644 compiler/coco/core/include/coco/IR/Object.h
create mode 100644 compiler/coco/core/include/coco/IR/ObjectManager.h
create mode 100644 compiler/coco/core/include/coco/IR/ObjectSet.h
create mode 100644 compiler/coco/core/include/coco/IR/Op.forward.h
create mode 100644 compiler/coco/core/include/coco/IR/Op.h
create mode 100644 compiler/coco/core/include/coco/IR/Op.lst
create mode 100644 compiler/coco/core/include/coco/IR/OpManager.h
create mode 100644 compiler/coco/core/include/coco/IR/Ops.h
create mode 100644 compiler/coco/core/include/coco/IR/Output.forward.h
create mode 100644 compiler/coco/core/include/coco/IR/Output.h
create mode 100644 compiler/coco/core/include/coco/IR/OutputList.h
create mode 100644 compiler/coco/core/include/coco/IR/OutputManager.h
create mode 100644 compiler/coco/core/include/coco/IR/Padding2D.h
create mode 100644 compiler/coco/core/include/coco/IR/Part.forward.h
create mode 100644 compiler/coco/core/include/coco/IR/Part.h
create mode 100644 compiler/coco/core/include/coco/IR/Read.forward.h
create mode 100644 compiler/coco/core/include/coco/IR/Read.h
create mode 100644 compiler/coco/core/include/coco/IR/ReadSet.h
create mode 100644 compiler/coco/core/include/coco/IR/Step.forward.h
create mode 100644 compiler/coco/core/include/coco/IR/Step.h
create mode 100644 compiler/coco/core/include/coco/IR/Stride2D.h
create mode 100644 compiler/coco/core/include/coco/IR/Update.forward.h
create mode 100644 compiler/coco/core/include/coco/IR/Update.h
create mode 100644 compiler/coco/core/include/coco/IR/UpdateSet.h
create mode 100644 compiler/coco/core/include/coco/IR/Use.forward.h
create mode 100644 compiler/coco/core/include/coco/IR/Use.h
create mode 100644 compiler/coco/core/include/coco/IR/UseSet.h
create mode 100644 compiler/coco/core/include/coco/IR/Window2D.h
create mode 100644 compiler/coco/core/src/ADT/DLinkedList.test.cpp
create mode 100644 compiler/coco/core/src/ADT/PtrList.cpp
create mode 100644 compiler/coco/core/src/ADT/PtrList.test.cpp
create mode 100644 compiler/coco/core/src/ADT/PtrManager.test.cpp
create mode 100644 compiler/coco/core/src/IR.test.cpp
create mode 100644 compiler/coco/core/src/IR/Arg.cpp
create mode 100644 compiler/coco/core/src/IR/Arg.test.cpp
create mode 100644 compiler/coco/core/src/IR/AvgPool2D.test.cpp
create mode 100644 compiler/coco/core/src/IR/Bag.cpp
create mode 100644 compiler/coco/core/src/IR/Bag.test.cpp
create mode 100644 compiler/coco/core/src/IR/BagManager.cpp
create mode 100644 compiler/coco/core/src/IR/BagManager.test.cpp
create mode 100644 compiler/coco/core/src/IR/Block.cpp
create mode 100644 compiler/coco/core/src/IR/Block.test.cpp
create mode 100644 compiler/coco/core/src/IR/BlockIndex.cpp
create mode 100644 compiler/coco/core/src/IR/BlockIndex.test.cpp
create mode 100644 compiler/coco/core/src/IR/BlockManager.cpp
create mode 100644 compiler/coco/core/src/IR/BlockManager.test.cpp
create mode 100644 compiler/coco/core/src/IR/Consumer.mock.h
create mode 100644 compiler/coco/core/src/IR/Conv2D.cpp
create mode 100644 compiler/coco/core/src/IR/Conv2D.test.cpp
create mode 100644 compiler/coco/core/src/IR/Def.cpp
create mode 100644 compiler/coco/core/src/IR/Def.test.cpp
create mode 100644 compiler/coco/core/src/IR/Dep.cpp
create mode 100644 compiler/coco/core/src/IR/Dep.test.cpp
create mode 100644 compiler/coco/core/src/IR/ElemID.cpp
create mode 100644 compiler/coco/core/src/IR/ElemID.test.cpp
create mode 100644 compiler/coco/core/src/IR/EntityManager.cpp
create mode 100644 compiler/coco/core/src/IR/Eval.cpp
create mode 100644 compiler/coco/core/src/IR/Eval.test.cpp
create mode 100644 compiler/coco/core/src/IR/FeatureLayouts.cpp
create mode 100644 compiler/coco/core/src/IR/FeatureLayouts.test.cpp
create mode 100644 compiler/coco/core/src/IR/FeatureObject.cpp
create mode 100644 compiler/coco/core/src/IR/FeatureObject.test.cpp
create mode 100644 compiler/coco/core/src/IR/FeatureShape.test.cpp
create mode 100644 compiler/coco/core/src/IR/Input.cpp
create mode 100644 compiler/coco/core/src/IR/Input.test.cpp
create mode 100644 compiler/coco/core/src/IR/InputManager.cpp
create mode 100644 compiler/coco/core/src/IR/InputManager.test.cpp
create mode 100644 compiler/coco/core/src/IR/Instr.cpp
create mode 100644 compiler/coco/core/src/IR/InstrIndex.cpp
create mode 100644 compiler/coco/core/src/IR/InstrIndex.test.cpp
create mode 100644 compiler/coco/core/src/IR/InstrManager.cpp
create mode 100644 compiler/coco/core/src/IR/InstrManager.test.cpp
create mode 100644 compiler/coco/core/src/IR/KernelLayouts.cpp
create mode 100644 compiler/coco/core/src/IR/KernelLayouts.test.cpp
create mode 100644 compiler/coco/core/src/IR/KernelObject.cpp
create mode 100644 compiler/coco/core/src/IR/KernelObject.test.cpp
create mode 100644 compiler/coco/core/src/IR/Load.cpp
create mode 100644 compiler/coco/core/src/IR/MaxPool2D.test.cpp
create mode 100644 compiler/coco/core/src/IR/Module.cpp
create mode 100644 compiler/coco/core/src/IR/Module.test.cpp
create mode 100644 compiler/coco/core/src/IR/Object.cpp
create mode 100644 compiler/coco/core/src/IR/Object.test.cpp
create mode 100644 compiler/coco/core/src/IR/ObjectManager.cpp
create mode 100644 compiler/coco/core/src/IR/ObjectManager.test.cpp
create mode 100644 compiler/coco/core/src/IR/Op.cpp
create mode 100644 compiler/coco/core/src/IR/OpManager.cpp
create mode 100644 compiler/coco/core/src/IR/OpManager.test.cpp
create mode 100644 compiler/coco/core/src/IR/Ops.cpp
create mode 100644 compiler/coco/core/src/IR/Ops.test.cpp
create mode 100644 compiler/coco/core/src/IR/Output.cpp
create mode 100644 compiler/coco/core/src/IR/Output.test.cpp
create mode 100644 compiler/coco/core/src/IR/OutputManager.cpp
create mode 100644 compiler/coco/core/src/IR/OutputManager.test.cpp
create mode 100644 compiler/coco/core/src/IR/PadF.test.cpp
create mode 100644 compiler/coco/core/src/IR/Padding2D.cpp
create mode 100644 compiler/coco/core/src/IR/Padding2D.test.cpp
create mode 100644 compiler/coco/core/src/IR/Part.cpp
create mode 100644 compiler/coco/core/src/IR/Part.test.cpp
create mode 100644 compiler/coco/core/src/IR/Producer.mock.h
create mode 100644 compiler/coco/core/src/IR/ReLU.test.cpp
create mode 100644 compiler/coco/core/src/IR/ReLU6.test.cpp
create mode 100644 compiler/coco/core/src/IR/Read.cpp
create mode 100644 compiler/coco/core/src/IR/Read.test.cpp
create mode 100644 compiler/coco/core/src/IR/Reader.mock.h
create mode 100644 compiler/coco/core/src/IR/Shuffle.cpp
create mode 100644 compiler/coco/core/src/IR/Shuffle.test.cpp
create mode 100644 compiler/coco/core/src/IR/Sqrt.test.cpp
create mode 100644 compiler/coco/core/src/IR/Step.cpp
create mode 100644 compiler/coco/core/src/IR/Stride2D.cpp
create mode 100644 compiler/coco/core/src/IR/Stride2D.test.cpp
create mode 100644 compiler/coco/core/src/IR/Sub.test.cpp
create mode 100644 compiler/coco/core/src/IR/Update.cpp
create mode 100644 compiler/coco/core/src/IR/Update.test.cpp
create mode 100644 compiler/coco/core/src/IR/Updater.mock.h
create mode 100644 compiler/coco/core/src/IR/Use.cpp
create mode 100644 compiler/coco/core/src/IR/Use.test.cpp
create mode 100644 compiler/coco/core/src/IR/Window2D.test.cpp
create mode 100644 compiler/coco/generic/CMakeLists.txt
create mode 100644 compiler/coco/generic/include/coco/ADT/Span.h
create mode 100644 compiler/coco/generic/include/coco/IR/Data.h
create mode 100644 compiler/coco/generic/include/coco/IR/PlainWeightContext.h
create mode 100644 compiler/coco/generic/src/ADT/Span.test.cpp
create mode 100644 compiler/coco/generic/src/IR/Data.cpp
create mode 100644 compiler/coco/generic/src/IR/Data.test.cpp
create mode 100644 compiler/coco/requires.cmake
create mode 100644 compiler/cwrap/CMakeLists.txt
create mode 100644 compiler/cwrap/README.md
create mode 100644 compiler/cwrap/include/cwrap/Fildes.h
create mode 100644 compiler/cwrap/src/Fildes.cpp
create mode 100644 compiler/cwrap/src/Fildes.test.cpp
create mode 100644 compiler/dredd-rule-lib/CMakeLists.txt
create mode 100644 compiler/dredd-rule-lib/README.md
create mode 100755 compiler/dredd-rule-lib/rule-lib.sh
create mode 100644 compiler/enco-intf/CMakeLists.txt
create mode 100644 compiler/enco-intf/cmdline/CMakeLists.txt
create mode 100644 compiler/enco-intf/cmdline/include/cmdline/View.h
create mode 100644 compiler/enco-intf/frontend/CMakeLists.txt
create mode 100644 compiler/enco-intf/frontend/include/enco/Bundle.h
create mode 100644 compiler/enco-intf/frontend/include/enco/Frontend.h
create mode 100644 compiler/enco/CMakeLists.txt
create mode 100644 compiler/enco/README.md
create mode 100644 compiler/enco/cli/CMakeLists.txt
create mode 100644 compiler/enco/cli/src/Driver.cpp
create mode 100644 compiler/enco/core/CMakeLists.txt
create mode 100644 compiler/enco/core/include/enco/Backend.h
create mode 100644 compiler/enco/core/src/ANN/Binder.h
create mode 100644 compiler/enco/core/src/ANN/Context.cpp
create mode 100644 compiler/enco/core/src/ANN/Context.h
create mode 100644 compiler/enco/core/src/ANN/Context.test.cpp
create mode 100644 compiler/enco/core/src/ANN/IR/DType.cpp
create mode 100644 compiler/enco/core/src/ANN/IR/DType.h
create mode 100644 compiler/enco/core/src/ANN/IR/DType.test.cpp
create mode 100644 compiler/enco/core/src/ANN/IR/InputList.h
create mode 100644 compiler/enco/core/src/ANN/IR/Module.h
create mode 100644 compiler/enco/core/src/ANN/IR/Module.test.cpp
create mode 100644 compiler/enco/core/src/ANN/IR/Operand.h
create mode 100644 compiler/enco/core/src/ANN/IR/Operand.test.cpp
create mode 100644 compiler/enco/core/src/ANN/IR/OperandID.h
create mode 100644 compiler/enco/core/src/ANN/IR/OperandID.test.cpp
create mode 100644 compiler/enco/core/src/ANN/IR/OperandInventory.cpp
create mode 100644 compiler/enco/core/src/ANN/IR/OperandInventory.h
create mode 100644 compiler/enco/core/src/ANN/IR/OperandInventory.test.cpp
create mode 100644 compiler/enco/core/src/ANN/IR/Operation.def
create mode 100644 compiler/enco/core/src/ANN/IR/Operation.h
create mode 100644 compiler/enco/core/src/ANN/IR/Operation.test.cpp
create mode 100644 compiler/enco/core/src/ANN/IR/OperationInventory.cpp
create mode 100644 compiler/enco/core/src/ANN/IR/OperationInventory.h
create mode 100644 compiler/enco/core/src/ANN/IR/OperationInventory.test.cpp
create mode 100644 compiler/enco/core/src/ANN/IR/OutputList.h
create mode 100644 compiler/enco/core/src/ANN/IR/Weight.h
create mode 100644 compiler/enco/core/src/ANN/IR/Weight.test.cpp
create mode 100644 compiler/enco/core/src/ANN/IR/WeightInventory.cpp
create mode 100644 compiler/enco/core/src/ANN/IR/WeightInventory.h
create mode 100644 compiler/enco/core/src/ANN/IR/WeightInventory.test.cpp
create mode 100644 compiler/enco/core/src/AsmCode.cpp
create mode 100644 compiler/enco/core/src/AsmCode.h
create mode 100644 compiler/enco/core/src/Backend.cpp
create mode 100644 compiler/enco/core/src/Code.h
create mode 100644 compiler/enco/core/src/Code.test.cpp
create mode 100644 compiler/enco/core/src/CodeIndex.h
create mode 100644 compiler/enco/core/src/CppCode.cpp
create mode 100644 compiler/enco/core/src/CppCode.h
create mode 100644 compiler/enco/core/src/CppGen/Host.cpp
create mode 100644 compiler/enco/core/src/CppGen/Host.h
create mode 100644 compiler/enco/core/src/CppGen/MemoryContext.cpp
create mode 100644 compiler/enco/core/src/CppGen/MemoryContext.h
create mode 100644 compiler/enco/core/src/CppGen/Subnet.cpp
create mode 100644 compiler/enco/core/src/CppGen/Subnet.h
create mode 100644 compiler/enco/core/src/Dims.h
create mode 100644 compiler/enco/core/src/IRUtils.cpp
create mode 100644 compiler/enco/core/src/IRUtils.h
create mode 100644 compiler/enco/core/src/IRValidator.cpp
create mode 100644 compiler/enco/core/src/IRValidator.h
create mode 100644 compiler/enco/core/src/IRValidator.test.cpp
create mode 100644 compiler/enco/core/src/Pass.h
create mode 100644 compiler/enco/core/src/Pass.test.cpp
create mode 100644 compiler/enco/core/src/Pipeline.h
create mode 100644 compiler/enco/core/src/Pipeline.test.cpp
create mode 100644 compiler/enco/core/src/Session.cpp
create mode 100644 compiler/enco/core/src/Session.h
create mode 100644 compiler/enco/core/src/String.h
create mode 100644 compiler/enco/core/src/Support/Debugging.cpp
create mode 100644 compiler/enco/core/src/Support/Debugging.h
create mode 100644 compiler/enco/core/src/Support/Debugging.test.cpp
create mode 100644 compiler/enco/core/src/Transforms/AvgPoolLowering.cpp
create mode 100644 compiler/enco/core/src/Transforms/AvgPoolLowering.h
create mode 100644 compiler/enco/core/src/Transforms/ConcatLowering.cpp
create mode 100644 compiler/enco/core/src/Transforms/ConcatLowering.h
create mode 100644 compiler/enco/core/src/Transforms/ConstantFolding.cpp
create mode 100644 compiler/enco/core/src/Transforms/ConstantFolding.h
create mode 100644 compiler/enco/core/src/Transforms/ConstantFolding.test.cpp
create mode 100644 compiler/enco/core/src/Transforms/CopyLowering.cpp
create mode 100644 compiler/enco/core/src/Transforms/CopyLowering.h
create mode 100644 compiler/enco/core/src/Transforms/DataLayoutConversion.cpp
create mode 100644 compiler/enco/core/src/Transforms/DataLayoutConversion.h
create mode 100644 compiler/enco/core/src/Transforms/DataLayoutConversion.test.cpp
create mode 100644 compiler/enco/core/src/Transforms/DeadBagElimination.cpp
create mode 100644 compiler/enco/core/src/Transforms/DeadBagElimination.h
create mode 100644 compiler/enco/core/src/Transforms/DeadObjectElimination.cpp
create mode 100644 compiler/enco/core/src/Transforms/DeadObjectElimination.h
create mode 100644 compiler/enco/core/src/Transforms/Duplicate.cpp
create mode 100644 compiler/enco/core/src/Transforms/Duplicate.h
create mode 100644 compiler/enco/core/src/Transforms/DuplicatedObjectReduction.cpp
create mode 100644 compiler/enco/core/src/Transforms/DuplicatedObjectReduction.h
create mode 100644 compiler/enco/core/src/Transforms/FeatureUnification.cpp
create mode 100644 compiler/enco/core/src/Transforms/FeatureUnification.h
create mode 100644 compiler/enco/core/src/Transforms/FreeInstrElimination.cpp
create mode 100644 compiler/enco/core/src/Transforms/FreeInstrElimination.h
create mode 100644 compiler/enco/core/src/Transforms/FreeInstrElimination.test.cpp
create mode 100644 compiler/enco/core/src/Transforms/FreeOpElimination.cpp
create mode 100644 compiler/enco/core/src/Transforms/FreeOpElimination.h
create mode 100644 compiler/enco/core/src/Transforms/FreeOpElimination.test.cpp
create mode 100644 compiler/enco/core/src/Transforms/GlobalDataGeneration.cpp
create mode 100644 compiler/enco/core/src/Transforms/GlobalDataGeneration.h
create mode 100644 compiler/enco/core/src/Transforms/IdenticalObjectReduction.cpp
create mode 100644 compiler/enco/core/src/Transforms/IdenticalObjectReduction.h
create mode 100644 compiler/enco/core/src/Transforms/IdenticalObjectReduction.test.cpp
create mode 100644 compiler/enco/core/src/Transforms/IndirectCopyElimination.cpp
create mode 100644 compiler/enco/core/src/Transforms/IndirectCopyElimination.h
create mode 100644 compiler/enco/core/src/Transforms/IntrinsicSelection.cpp
create mode 100644 compiler/enco/core/src/Transforms/IntrinsicSelection.h
create mode 100644 compiler/enco/core/src/Transforms/Optimizations.cpp
create mode 100644 compiler/enco/core/src/Transforms/Optimizations.h
create mode 100644 compiler/enco/core/src/Transforms/Split.cpp
create mode 100644 compiler/enco/core/src/Transforms/Split.h
create mode 100644 compiler/enco/core/src/Usage.cpp
create mode 100644 compiler/enco/core/src/Usage.h
create mode 100644 compiler/enco/core/src/coex/IR.h
create mode 100644 compiler/enco/core/src/coex/IR.test.cpp
create mode 100644 compiler/enco/frontend/CMakeLists.txt
create mode 100644 compiler/enco/frontend/caffe/CMakeLists.txt
create mode 100644 compiler/enco/frontend/caffe/src/ConcatSpec.cpp
create mode 100644 compiler/enco/frontend/caffe/src/ConcatSpec.h
create mode 100644 compiler/enco/frontend/caffe/src/ConcatSpec.test.cpp
create mode 100644 compiler/enco/frontend/caffe/src/Context.cpp
create mode 100644 compiler/enco/frontend/caffe/src/Context.h
create mode 100644 compiler/enco/frontend/caffe/src/Convert.cpp
create mode 100644 compiler/enco/frontend/caffe/src/Convert.h
create mode 100644 compiler/enco/frontend/caffe/src/ConvolutionSpec.cpp
create mode 100644 compiler/enco/frontend/caffe/src/ConvolutionSpec.h
create mode 100644 compiler/enco/frontend/caffe/src/ConvolutionSpec.test.cpp
create mode 100644 compiler/enco/frontend/caffe/src/Entry.cpp
create mode 100644 compiler/enco/frontend/caffe/src/Frontend.cpp
create mode 100644 compiler/enco/frontend/caffe/src/Frontend.h
create mode 100644 compiler/enco/frontend/caffe/src/GraphBuilder.cpp
create mode 100644 compiler/enco/frontend/caffe/src/GraphBuilder.h
create mode 100644 compiler/enco/frontend/caffe/src/GraphBuilderRegistry.cpp
create mode 100644 compiler/enco/frontend/caffe/src/GraphBuilderRegistry.h
create mode 100644 compiler/enco/frontend/caffe/src/IRBuilder.h
create mode 100644 compiler/enco/frontend/caffe/src/Importer.cpp
create mode 100644 compiler/enco/frontend/caffe/src/Importer.h
create mode 100644 compiler/enco/frontend/caffe/src/Layer/BatchNorm.cpp
create mode 100644 compiler/enco/frontend/caffe/src/Layer/BatchNorm.h
create mode 100644 compiler/enco/frontend/caffe/src/Layer/Concatenation.cpp
create mode 100644 compiler/enco/frontend/caffe/src/Layer/Concatenation.h
create mode 100644 compiler/enco/frontend/caffe/src/Layer/Convolution.cpp
create mode 100644 compiler/enco/frontend/caffe/src/Layer/Convolution.h
create mode 100644 compiler/enco/frontend/caffe/src/Layer/Eltwise.cpp
create mode 100644 compiler/enco/frontend/caffe/src/Layer/Eltwise.h
create mode 100644 compiler/enco/frontend/caffe/src/Layer/Input.cpp
create mode 100644 compiler/enco/frontend/caffe/src/Layer/Input.h
create mode 100644 compiler/enco/frontend/caffe/src/Layer/Pooling.cpp
create mode 100644 compiler/enco/frontend/caffe/src/Layer/Pooling.h
create mode 100644 compiler/enco/frontend/caffe/src/Layer/ReLU.cpp
create mode 100644 compiler/enco/frontend/caffe/src/Layer/ReLU.h
create mode 100644 compiler/enco/frontend/caffe/src/Layer/Scale.cpp
create mode 100644 compiler/enco/frontend/caffe/src/Layer/Scale.h
create mode 100644 compiler/enco/frontend/caffe/src/Padding.h
create mode 100644 compiler/enco/frontend/caffe/src/Padding.test.cpp
create mode 100644 compiler/enco/frontend/caffe/src/PaddingUtils.cpp
create mode 100644 compiler/enco/frontend/caffe/src/PaddingUtils.h
create mode 100644 compiler/enco/frontend/caffe/src/PoolingSpec.cpp
create mode 100644 compiler/enco/frontend/caffe/src/PoolingSpec.h
create mode 100644 compiler/enco/frontend/caffe/src/PoolingSpec.test.cpp
create mode 100644 compiler/enco/frontend/caffe/src/ShapeQuery.cpp
create mode 100644 compiler/enco/frontend/caffe/src/ShapeQuery.h
create mode 100644 compiler/enco/frontend/tflite/CMakeLists.txt
create mode 100644 compiler/enco/frontend/tflite/schema/schema.fbs
create mode 100644 compiler/enco/frontend/tflite/schema/schema.meta
create mode 100644 compiler/enco/frontend/tflite/src/Context.cpp
create mode 100644 compiler/enco/frontend/tflite/src/Context.h
create mode 100644 compiler/enco/frontend/tflite/src/Convert.cpp
create mode 100644 compiler/enco/frontend/tflite/src/Convert.h
create mode 100644 compiler/enco/frontend/tflite/src/Entry.cpp
create mode 100644 compiler/enco/frontend/tflite/src/Frontend.cpp
create mode 100644 compiler/enco/frontend/tflite/src/Frontend.h
create mode 100644 compiler/enco/frontend/tflite/src/Frontend.test.cpp
create mode 100644 compiler/enco/frontend/tflite/src/GraphBuilder.h
create mode 100644 compiler/enco/frontend/tflite/src/GraphBuilderRegistry.h
create mode 100644 compiler/enco/frontend/tflite/src/IRBuilder.h
create mode 100644 compiler/enco/frontend/tflite/src/Op/Activation.cpp
create mode 100644 compiler/enco/frontend/tflite/src/Op/Activation.h
create mode 100644 compiler/enco/frontend/tflite/src/Op/AveragePool2D.cpp
create mode 100644 compiler/enco/frontend/tflite/src/Op/AveragePool2D.h
create mode 100644 compiler/enco/frontend/tflite/src/Op/Concatenation.cpp
create mode 100644 compiler/enco/frontend/tflite/src/Op/Concatenation.h
create mode 100644 compiler/enco/frontend/tflite/src/Op/Conv2D.cpp
create mode 100644 compiler/enco/frontend/tflite/src/Op/Conv2D.h
create mode 100644 compiler/enco/frontend/tflite/src/Op/DepthwiseConv2D.cpp
create mode 100644 compiler/enco/frontend/tflite/src/Op/DepthwiseConv2D.h
create mode 100644 compiler/enco/frontend/tflite/src/Op/Div.cpp
create mode 100644 compiler/enco/frontend/tflite/src/Op/Div.h
create mode 100644 compiler/enco/frontend/tflite/src/Op/MaxPool2D.cpp
create mode 100644 compiler/enco/frontend/tflite/src/Op/MaxPool2D.h
create mode 100644 compiler/enco/frontend/tflite/src/Op/Padding.cpp
create mode 100644 compiler/enco/frontend/tflite/src/Op/Padding.h
create mode 100644 compiler/enco/frontend/tflite/src/Op/ReLU.cpp
create mode 100644 compiler/enco/frontend/tflite/src/Op/ReLU.h
create mode 100644 compiler/enco/frontend/tflite/src/Op/ReLU6.cpp
create mode 100644 compiler/enco/frontend/tflite/src/Op/ReLU6.h
create mode 100644 compiler/enco/frontend/tflite/src/Op/Reshape.cpp
create mode 100644 compiler/enco/frontend/tflite/src/Op/Reshape.h
create mode 100644 compiler/enco/frontend/tflite/src/Op/Sub.cpp
create mode 100644 compiler/enco/frontend/tflite/src/Op/Sub.h
create mode 100644 compiler/enco/frontend/tflite/src/RawModel.h
create mode 100644 compiler/enco/frontend/tflite/src/RawModelLoader.cpp
create mode 100644 compiler/enco/frontend/tflite/src/RawModelLoader.h
create mode 100644 compiler/enco/frontend/tflite/src/TensorBags.h
create mode 100644 compiler/enco/requires.cmake
create mode 100644 compiler/enco/test/CMakeLists.txt
create mode 100644 compiler/enco/test/basic/000/CMakeLists.txt
create mode 100644 compiler/enco/test/basic/000/enco.test.cpp
create mode 100644 compiler/enco/test/basic/CMakeLists.txt
create mode 100644 compiler/enco/test/binder.cpp
create mode 100644 compiler/enco/test/caffe/CMakeLists.txt
create mode 100755 compiler/enco/test/caffe/runall.sh
create mode 100644 compiler/enco/test/tflite/AveragePool2D_000/INFERENCE
create mode 100644 compiler/enco/test/tflite/AveragePool2D_000/test.recipe
create mode 100644 compiler/enco/test/tflite/AveragePool2D_001/INFERENCE
create mode 100644 compiler/enco/test/tflite/AveragePool2D_001/test.recipe
create mode 100644 compiler/enco/test/tflite/CMakeLists.txt
create mode 100644 compiler/enco/test/tflite/Concat_000/INFERENCE
create mode 100644 compiler/enco/test/tflite/Concat_000/test.recipe
create mode 100644 compiler/enco/test/tflite/Concat_001/INFERENCE
create mode 100644 compiler/enco/test/tflite/Concat_001/test.recipe
create mode 100644 compiler/enco/test/tflite/Concat_002/INFERENCE
create mode 100644 compiler/enco/test/tflite/Concat_002/test.recipe
create mode 100644 compiler/enco/test/tflite/Concat_003/INFERENCE
create mode 100644 compiler/enco/test/tflite/Concat_003/test.recipe
create mode 100644 compiler/enco/test/tflite/Conv2D_000/INFERENCE
create mode 100644 compiler/enco/test/tflite/Conv2D_000/test.recipe
create mode 100644 compiler/enco/test/tflite/Conv2D_001/INFERENCE
create mode 100644 compiler/enco/test/tflite/Conv2D_001/test.recipe
create mode 100644 compiler/enco/test/tflite/Conv2D_002/INFERENCE
create mode 100644 compiler/enco/test/tflite/Conv2D_002/test.recipe
create mode 100644 compiler/enco/test/tflite/Conv2D_003/INFERENCE
create mode 100644 compiler/enco/test/tflite/Conv2D_003/test.recipe
create mode 100644 compiler/enco/test/tflite/Conv2D_004/INFERENCE
create mode 100644 compiler/enco/test/tflite/Conv2D_004/test.recipe
create mode 100644 compiler/enco/test/tflite/DepthwiseConv2D_000/INFERENCE
create mode 100644 compiler/enco/test/tflite/DepthwiseConv2D_000/test.recipe
create mode 100644 compiler/enco/test/tflite/DepthwiseConv2D_001/INFERENCE
create mode 100644 compiler/enco/test/tflite/DepthwiseConv2D_001/test.recipe
create mode 100644 compiler/enco/test/tflite/Div_000/INFERENCE
create mode 100644 compiler/enco/test/tflite/Div_000/test.recipe
create mode 100644 compiler/enco/test/tflite/MaxPool2D_000/INFERENCE
create mode 100644 compiler/enco/test/tflite/MaxPool2D_000/test.recipe
create mode 100644 compiler/enco/test/tflite/ReLU6_000/INFERENCE
create mode 100644 compiler/enco/test/tflite/ReLU6_000/test.recipe
create mode 100644 compiler/enco/test/tflite/ReLU_000/INFERENCE
create mode 100644 compiler/enco/test/tflite/ReLU_000/test.recipe
create mode 100644 compiler/enco/test/tflite/Regression_0000/INFERENCE
create mode 100644 compiler/enco/test/tflite/Regression_0000/test.recipe
create mode 100644 compiler/enco/test/tflite/Regression_0001/INFERENCE
create mode 100644 compiler/enco/test/tflite/Regression_0001/test.recipe
create mode 100644 compiler/enco/test/tflite/Regression_0002/INFERENCE
create mode 100644 compiler/enco/test/tflite/Regression_0002/test.recipe
create mode 100644 compiler/enco/test/tflite/Regression_0003/INFERENCE
create mode 100644 compiler/enco/test/tflite/Regression_0003/test.recipe
create mode 100644 compiler/enco/test/tflite/Regression_0004/INFERENCE
create mode 100644 compiler/enco/test/tflite/Regression_0004/test.recipe
create mode 100644 compiler/enco/test/tflite/Reshape_000/INFERENCE
create mode 100644 compiler/enco/test/tflite/Reshape_000/test.recipe
create mode 100644 compiler/enco/test/tflite/Sub_000/INFERENCE
create mode 100644 compiler/enco/test/tflite/Sub_000/test.recipe
create mode 100644 compiler/enco/test/tflite/empty/INFERENCE
create mode 100644 compiler/enco/test/tflite/empty/test.recipe
create mode 100755 compiler/enco/test/tflite/runall.sh
create mode 100644 compiler/encodump/CMakeLists.txt
create mode 100644 compiler/encodump/README.md
create mode 100644 compiler/encodump/requires.cmake
create mode 100644 compiler/encodump/src/Driver.cpp
create mode 100644 compiler/encodump/src/Dump.cpp
create mode 100644 compiler/encodump/src/Dump.h
create mode 100644 compiler/exo/CMakeLists.txt
create mode 100644 compiler/exo/README.md
create mode 100644 compiler/exo/include/exo/CircleExporter.h
create mode 100644 compiler/exo/include/exo/LoggingContext.h
create mode 100644 compiler/exo/include/exo/TFLExporter.h
create mode 100644 compiler/exo/requires.cmake
create mode 100644 compiler/exo/src/Check.h
create mode 100644 compiler/exo/src/Circle/CircleExporter.cpp
create mode 100644 compiler/exo/src/Circle/CircleExporterImpl.cpp
create mode 100644 compiler/exo/src/Circle/CircleExporterImpl.h
create mode 100644 compiler/exo/src/Circle/CircleExporterUtils.cpp
create mode 100644 compiler/exo/src/Circle/CircleExporterUtils.h
create mode 100644 compiler/exo/src/Circle/CircleOperationExporter.cpp
create mode 100644 compiler/exo/src/Circle/CircleOperationExporter.h
create mode 100644 compiler/exo/src/Circle/CircleTensorExporter.cpp
create mode 100644 compiler/exo/src/Circle/CircleTensorExporter.h
create mode 100644 compiler/exo/src/Circle/CircleTypeInference.cpp
create mode 100644 compiler/exo/src/Circle/CircleTypeInference.h
create mode 100644 compiler/exo/src/Conversion/AvgPool2DConverter.cpp
create mode 100644 compiler/exo/src/Conversion/AvgPool2DConverter.h
create mode 100644 compiler/exo/src/Conversion/CanonicalNodeConverter.cpp
create mode 100644 compiler/exo/src/Conversion/CanonicalNodeConverter.h
create mode 100644 compiler/exo/src/Conversion/ConstGenConverter.cpp
create mode 100644 compiler/exo/src/Conversion/ConstGenConverter.h
create mode 100644 compiler/exo/src/Conversion/ConstGenConverter.test.cpp
create mode 100644 compiler/exo/src/Conversion/Conv2DConverter.cpp
create mode 100644 compiler/exo/src/Conversion/Conv2DConverter.h
create mode 100644 compiler/exo/src/Conversion/DepthwiseConv2DConverter.cpp
create mode 100644 compiler/exo/src/Conversion/DepthwiseConv2DConverter.h
create mode 100644 compiler/exo/src/Conversion/EltwiseAddConverter.cpp
create mode 100644 compiler/exo/src/Conversion/EltwiseAddConverter.h
create mode 100644 compiler/exo/src/Conversion/EltwiseBinaryConverter.h
create mode 100644 compiler/exo/src/Conversion/EltwiseDivConverter.cpp
create mode 100644 compiler/exo/src/Conversion/EltwiseDivConverter.h
create mode 100644 compiler/exo/src/Conversion/EltwiseMaxConverter.cpp
create mode 100644 compiler/exo/src/Conversion/EltwiseMaxConverter.h
create mode 100644 compiler/exo/src/Conversion/EltwiseMulConverter.cpp
create mode 100644 compiler/exo/src/Conversion/EltwiseMulConverter.h
create mode 100644 compiler/exo/src/Conversion/EltwiseSqrtConverter.cpp
create mode 100644 compiler/exo/src/Conversion/EltwiseSqrtConverter.h
create mode 100644 compiler/exo/src/Conversion/EltwiseSubConverter.cpp
create mode 100644 compiler/exo/src/Conversion/EltwiseSubConverter.h
create mode 100644 compiler/exo/src/Conversion/FeatureBiasAddConverter.cpp
create mode 100644 compiler/exo/src/Conversion/FeatureBiasAddConverter.h
create mode 100644 compiler/exo/src/Conversion/FeatureBiasAddConverter.test.cpp
create mode 100644 compiler/exo/src/Conversion/MatMulConverter.cpp
create mode 100644 compiler/exo/src/Conversion/MatMulConverter.h
create mode 100644 compiler/exo/src/Conversion/MaxPool2DConverter.cpp
create mode 100644 compiler/exo/src/Conversion/MaxPool2DConverter.h
create mode 100644 compiler/exo/src/Conversion/Relu6Converter.cpp
create mode 100644 compiler/exo/src/Conversion/Relu6Converter.h
create mode 100644 compiler/exo/src/Conversion/ReluConverter.cpp
create mode 100644 compiler/exo/src/Conversion/ReluConverter.h
create mode 100644 compiler/exo/src/Conversion/ReluConverter.test.cpp
create mode 100644 compiler/exo/src/Conversion/TensorBroadcastConverter.cpp
create mode 100644 compiler/exo/src/Conversion/TensorBroadcastConverter.h
create mode 100644 compiler/exo/src/Conversion/TensorConcatConverter.cpp
create mode 100644 compiler/exo/src/Conversion/TensorConcatConverter.h
create mode 100644 compiler/exo/src/Conversion/TensorReduceConverter.cpp
create mode 100644 compiler/exo/src/Conversion/TensorReduceConverter.h
create mode 100644 compiler/exo/src/Conversion/TensorTransposeConverter.cpp
create mode 100644 compiler/exo/src/Conversion/TensorTransposeConverter.h
create mode 100644 compiler/exo/src/Conversion/TransposedConv2DConverter.cpp
create mode 100644 compiler/exo/src/Conversion/TransposedConv2DConverter.h
create mode 100644 compiler/exo/src/Conversions.h
create mode 100644 compiler/exo/src/Convert.cpp
create mode 100644 compiler/exo/src/Convert.h
create mode 100644 compiler/exo/src/Dialect/IR/CircleDialect.cpp
create mode 100644 compiler/exo/src/Dialect/IR/CircleDialect.h
create mode 100644 compiler/exo/src/Dialect/IR/CircleDialect.test.cpp
create mode 100644 compiler/exo/src/Dialect/IR/CircleNode.cpp
create mode 100644 compiler/exo/src/Dialect/IR/CircleNode.h
create mode 100644 compiler/exo/src/Dialect/IR/CircleNodeDecl.h
create mode 100644 compiler/exo/src/Dialect/IR/CircleNodeImpl.h
create mode 100644 compiler/exo/src/Dialect/IR/CircleNodeVisitor.forward.h
create mode 100644 compiler/exo/src/Dialect/IR/CircleNodeVisitor.h
create mode 100644 compiler/exo/src/Dialect/IR/CircleNodes.cpp
create mode 100644 compiler/exo/src/Dialect/IR/CircleNodes.h
create mode 100644 compiler/exo/src/Dialect/IR/CircleNodes.lst
create mode 100644 compiler/exo/src/Dialect/IR/CircleNodes.test.cpp
create mode 100644 compiler/exo/src/Dialect/IR/CircleOpcode.h
create mode 100644 compiler/exo/src/Dialect/IR/FusedActFunc.h
create mode 100644 compiler/exo/src/Dialect/IR/NodeMixins.cpp
create mode 100644 compiler/exo/src/Dialect/IR/NodeMixins.h
create mode 100644 compiler/exo/src/Dialect/IR/TFLDialect.cpp
create mode 100644 compiler/exo/src/Dialect/IR/TFLDialect.h
create mode 100644 compiler/exo/src/Dialect/IR/TFLDialect.test.cpp
create mode 100644 compiler/exo/src/Dialect/IR/TFLNode.cpp
create mode 100644 compiler/exo/src/Dialect/IR/TFLNode.h
create mode 100644 compiler/exo/src/Dialect/IR/TFLNodeDecl.h
create mode 100644 compiler/exo/src/Dialect/IR/TFLNodeImpl.h
create mode 100644 compiler/exo/src/Dialect/IR/TFLNodeVisitor.forward.h
create mode 100644 compiler/exo/src/Dialect/IR/TFLNodeVisitor.h
create mode 100644 compiler/exo/src/Dialect/IR/TFLNodes.cpp
create mode 100644 compiler/exo/src/Dialect/IR/TFLNodes.h
create mode 100644 compiler/exo/src/Dialect/IR/TFLNodes.lst
create mode 100644 compiler/exo/src/Dialect/IR/TFLNodes.test.cpp
create mode 100644 compiler/exo/src/Dialect/IR/TFLOpcode.h
create mode 100644 compiler/exo/src/Dialect/Service/CircleShapeInferenceRule.cpp
create mode 100644 compiler/exo/src/Dialect/Service/CircleShapeInferenceRule.h
create mode 100644 compiler/exo/src/Dialect/Service/CircleTypeInferenceRule.cpp
create mode 100644 compiler/exo/src/Dialect/Service/CircleTypeInferenceRule.h
create mode 100644 compiler/exo/src/Dialect/Service/TFLShapeInferenceRule.cpp
create mode 100644 compiler/exo/src/Dialect/Service/TFLShapeInferenceRule.h
create mode 100644 compiler/exo/src/Dialect/Service/TFLShapeInferenceRule.test.cpp
create mode 100644 compiler/exo/src/Dialect/Service/TFLTypeInferenceRule.cpp
create mode 100644 compiler/exo/src/Dialect/Service/TFLTypeInferenceRule.h
create mode 100644 compiler/exo/src/Dialect/Service/TFLTypeInferenceRule.test.cpp
create mode 100644 compiler/exo/src/ExoFormattedGraph.cpp
create mode 100644 compiler/exo/src/ExoFormattedGraph.h
create mode 100644 compiler/exo/src/ExoOptimize.cpp
create mode 100644 compiler/exo/src/ExoOptimize.h
create mode 100644 compiler/exo/src/ExporterUtils.cpp
create mode 100644 compiler/exo/src/ExporterUtils.h
create mode 100644 compiler/exo/src/GraphBlock.cpp
create mode 100644 compiler/exo/src/GraphBlock.h
create mode 100644 compiler/exo/src/Knob.cpp
create mode 100644 compiler/exo/src/Knob.h
create mode 100644 compiler/exo/src/Knob.lst
create mode 100644 compiler/exo/src/Log.cpp
create mode 100644 compiler/exo/src/Log.h
create mode 100644 compiler/exo/src/LogHelper.cpp
create mode 100644 compiler/exo/src/LogHelper.h
create mode 100644 compiler/exo/src/LoggingContext.cpp
create mode 100644 compiler/exo/src/Pass/FoldReshapeOfConstPass.cpp
create mode 100644 compiler/exo/src/Pass/FoldReshapeOfConstPass.h
create mode 100644 compiler/exo/src/Pass/FoldTransposeOfConstPass.cpp
create mode 100644 compiler/exo/src/Pass/FoldTransposeOfConstPass.h
create mode 100644 compiler/exo/src/Pass/FuseBiasAddPass.cpp
create mode 100644 compiler/exo/src/Pass/FuseBiasAddPass.h
create mode 100644 compiler/exo/src/Pass/FuseBiasAddPass.test.cpp
create mode 100644 compiler/exo/src/Pass/FuseInstanceNormPass.cpp
create mode 100644 compiler/exo/src/Pass/FuseInstanceNormPass.h
create mode 100644 compiler/exo/src/Pass/FuseReluPass.cpp
create mode 100644 compiler/exo/src/Pass/FuseReluPass.h
create mode 100644 compiler/exo/src/Pass/FuseReluPass.test.cpp
create mode 100644 compiler/exo/src/Pass/FuseRsqrtPass.cpp
create mode 100644 compiler/exo/src/Pass/FuseRsqrtPass.h
create mode 100644 compiler/exo/src/Pass/FuseSquaredDifferencePass.cpp
create mode 100644 compiler/exo/src/Pass/FuseSquaredDifferencePass.h
create mode 100644 compiler/exo/src/Pass/MergeConcatNodesPass.cpp
create mode 100644 compiler/exo/src/Pass/MergeConcatNodesPass.h
create mode 100644 compiler/exo/src/Pass/ShapeInferencePass.cpp
create mode 100644 compiler/exo/src/Pass/ShapeInferencePass.h
create mode 100644 compiler/exo/src/Pass/TypeInferencePass.cpp
create mode 100644 compiler/exo/src/Pass/TypeInferencePass.h
create mode 100644 compiler/exo/src/Passes.cpp
create mode 100644 compiler/exo/src/Passes.h
create mode 100644 compiler/exo/src/ProgressReporter.cpp
create mode 100644 compiler/exo/src/ProgressReporter.h
create mode 100644 compiler/exo/src/ShapeInference.cpp
create mode 100644 compiler/exo/src/ShapeInference.h
create mode 100644 compiler/exo/src/TFLite/TFLExporter.cpp
create mode 100644 compiler/exo/src/TFLite/TFLExporterImpl.cpp
create mode 100644 compiler/exo/src/TFLite/TFLExporterImpl.h
create mode 100644 compiler/exo/src/TFLite/TFLExporterImpl.test.cpp
create mode 100644 compiler/exo/src/TFLite/TFLExporterUtils.cpp
create mode 100644 compiler/exo/src/TFLite/TFLExporterUtils.h
create mode 100644 compiler/exo/src/TFLite/TFLExporterUtils.test.cpp
create mode 100644 compiler/exo/src/TFLite/TFLOperationExporter.cpp
create mode 100644 compiler/exo/src/TFLite/TFLOperationExporter.h
create mode 100644 compiler/exo/src/TFLite/TFLTensorExporter.cpp
create mode 100644 compiler/exo/src/TFLite/TFLTensorExporter.h
create mode 100644 compiler/exo/src/TFLite/TFLTypeInference.cpp
create mode 100644 compiler/exo/src/TFLite/TFLTypeInference.h
create mode 100644 compiler/exo/src/TFLite/TFLTypeInference.test.cpp
create mode 100644 compiler/exo/src/TestGraph.h
create mode 100644 compiler/exo/src/TestHelper.h
create mode 100644 compiler/fipe/CMakeLists.txt
create mode 100644 compiler/fipe/fipe.test.cpp
create mode 100644 compiler/fipe/include/fipe.h
create mode 100644 compiler/gen-core/CMakeLists.txt
create mode 100644 compiler/gen-core/README.md
create mode 100644 compiler/gen-core/include/gencore/HDF5Common.h
create mode 100644 compiler/gen-core/include/gencore/HDF5Exporter.h
create mode 100644 compiler/gen-core/include/gencore/HDF5Importer.h
create mode 100644 compiler/gen-core/requires.cmake
create mode 100644 compiler/gen-core/src/HDF5Common.cpp
create mode 100644 compiler/gen-core/src/HDF5Exporter.cpp
create mode 100644 compiler/gen-core/src/HDF5Importer.cpp
create mode 100644 compiler/gen-tf-input/CMakeLists.txt
create mode 100644 compiler/gen-tf-input/README.md
create mode 100644 compiler/gen-tf-input/src/Driver.cpp
create mode 100644 compiler/gen-tf-output/CMakeLists.txt
create mode 100644 compiler/gen-tf-output/README.md
create mode 100644 compiler/gen-tf-output/src/Driver.cpp
create mode 100644 compiler/gen-tflite-output/CMakeLists.txt
create mode 100644 compiler/gen-tflite-output/README.md
create mode 100644 compiler/gen-tflite-output/src/Driver.cpp
create mode 100644 compiler/hermes-std/CMakeLists.txt
create mode 100644 compiler/hermes-std/README.md
create mode 100644 compiler/hermes-std/include/hermes/ConsoleReporter.h
create mode 100644 compiler/hermes-std/include/hermes/EnvConfig.h
create mode 100644 compiler/hermes-std/requires.cmake
create mode 100644 compiler/hermes-std/src/ConsoleReporter.cpp
create mode 100644 compiler/hermes-std/src/ConsoleReporter.test.cpp
create mode 100644 compiler/hermes-std/src/EnvConfig.cpp
create mode 100644 compiler/hermes/CMakeLists.txt
create mode 100644 compiler/hermes/README.md
create mode 100644 compiler/hermes/include/hermes.h
create mode 100644 compiler/hermes/include/hermes/core/Config.h
create mode 100644 compiler/hermes/include/hermes/core/Context.h
create mode 100644 compiler/hermes/include/hermes/core/Message.h
create mode 100644 compiler/hermes/include/hermes/core/MessageBuffer.h
create mode 100644 compiler/hermes/include/hermes/core/MessageBus.h
create mode 100644 compiler/hermes/include/hermes/core/Severity.h
create mode 100644 compiler/hermes/include/hermes/core/Sink.h
create mode 100644 compiler/hermes/include/hermes/core/Source.h
create mode 100644 compiler/hermes/include/hermes/core/SourceSetting.h
create mode 100644 compiler/hermes/requires.cmake
create mode 100644 compiler/hermes/src/core/Context.cpp
create mode 100644 compiler/hermes/src/core/Context.test.cpp
create mode 100644 compiler/hermes/src/core/Message.cpp
create mode 100644 compiler/hermes/src/core/Message.test.cpp
create mode 100644 compiler/hermes/src/core/MessageBuffer.cpp
create mode 100644 compiler/hermes/src/core/MessageBuffer.test.cpp
create mode 100644 compiler/hermes/src/core/MessageBus.cpp
create mode 100644 compiler/hermes/src/core/Severity.test.cpp
create mode 100644 compiler/hermes/src/core/Sink.cpp
create mode 100644 compiler/hermes/src/core/Source.cpp
create mode 100644 compiler/hermes/src/core/Source.test.cpp
create mode 100644 compiler/hermes/src/hermes.cpp
create mode 100644 compiler/hermes/src/hermes.test.cpp
create mode 100644 compiler/i5diff/CMakeLists.txt
create mode 100644 compiler/i5diff/README.md
create mode 100644 compiler/i5diff/requires.cmake
create mode 100644 compiler/i5diff/src/entry.cpp
create mode 100644 compiler/kuma/CMakeLists.txt
create mode 100644 compiler/kuma/README.md
create mode 100644 compiler/kuma/include/kuma.h
create mode 100644 compiler/kuma/src/IntervalSet.cpp
create mode 100644 compiler/kuma/src/IntervalSet.h
create mode 100644 compiler/kuma/src/IntervalSet.test.cpp
create mode 100644 compiler/kuma/src/kuma.cpp
create mode 100644 compiler/kuma/src/kuma.test.cpp
create mode 100644 compiler/loco/CMakeLists.txt
create mode 100644 compiler/loco/README.md
create mode 100644 compiler/loco/doc/LEP_000_Dialect_Service.md
create mode 100644 compiler/loco/include/loco.h
create mode 100644 compiler/loco/include/loco/ADT/AnnotatedItem.h
create mode 100644 compiler/loco/include/loco/ADT/ObjectPool.h
create mode 100644 compiler/loco/include/loco/IR/Algorithm.h
create mode 100644 compiler/loco/include/loco/IR/BiasShape.h
create mode 100644 compiler/loco/include/loco/IR/CanonicalDialect.h
create mode 100644 compiler/loco/include/loco/IR/CanonicalNode.h
create mode 100644 compiler/loco/include/loco/IR/CanonicalNodeDecl.h
create mode 100644 compiler/loco/include/loco/IR/CanonicalNodeImpl.h
create mode 100644 compiler/loco/include/loco/IR/CanonicalNodeVisitor.forward.h
create mode 100644 compiler/loco/include/loco/IR/CanonicalNodeVisitor.h
create mode 100644 compiler/loco/include/loco/IR/CanonicalNodes.lst
create mode 100644 compiler/loco/include/loco/IR/CanonicalOpcode.h
create mode 100644 compiler/loco/include/loco/IR/DataType.h
create mode 100644 compiler/loco/include/loco/IR/DataTypeTraits.h
create mode 100644 compiler/loco/include/loco/IR/DepthwiseFilterAxis.h
create mode 100644 compiler/loco/include/loco/IR/DepthwiseFilterCodec.h
create mode 100644 compiler/loco/include/loco/IR/DepthwiseFilterIndex.h
create mode 100644 compiler/loco/include/loco/IR/DepthwiseFilterShape.h
create mode 100644 compiler/loco/include/loco/IR/Dialect.h
create mode 100644 compiler/loco/include/loco/IR/DialectService.h
create mode 100644 compiler/loco/include/loco/IR/Dimension.h
create mode 100644 compiler/loco/include/loco/IR/Domain.h
create mode 100644 compiler/loco/include/loco/IR/FeatureAxis.h
create mode 100644 compiler/loco/include/loco/IR/FeatureCodec.h
create mode 100644 compiler/loco/include/loco/IR/FeatureIndex.h
create mode 100644 compiler/loco/include/loco/IR/FeatureShape.h
create mode 100644 compiler/loco/include/loco/IR/FilterAxis.h
create mode 100644 compiler/loco/include/loco/IR/FilterCodec.h
create mode 100644 compiler/loco/include/loco/IR/FilterIndex.h
create mode 100644 compiler/loco/include/loco/IR/FilterShape.h
create mode 100644 compiler/loco/include/loco/IR/Graph.forward.h
create mode 100644 compiler/loco/include/loco/IR/Graph.h
create mode 100644 compiler/loco/include/loco/IR/GraphInputIndex.h
create mode 100644 compiler/loco/include/loco/IR/GraphOutputIndex.h
create mode 100644 compiler/loco/include/loco/IR/MatrixAxis.h
create mode 100644 compiler/loco/include/loco/IR/MatrixCodec.h
create mode 100644 compiler/loco/include/loco/IR/MatrixIndex.h
create mode 100644 compiler/loco/include/loco/IR/MatrixShape.h
create mode 100644 compiler/loco/include/loco/IR/Node.forward.h
create mode 100644 compiler/loco/include/loco/IR/Node.h
create mode 100644 compiler/loco/include/loco/IR/NodeMixins.h
create mode 100644 compiler/loco/include/loco/IR/NodePool.forward.h
create mode 100644 compiler/loco/include/loco/IR/NodePool.h
create mode 100644 compiler/loco/include/loco/IR/NodeShape.h
create mode 100644 compiler/loco/include/loco/IR/Nodes.h
create mode 100644 compiler/loco/include/loco/IR/Padding2D.h
create mode 100644 compiler/loco/include/loco/IR/PaddingND.h
create mode 100644 compiler/loco/include/loco/IR/PermutingCodec.h
create mode 100644 compiler/loco/include/loco/IR/Stride.h
create mode 100644 compiler/loco/include/loco/IR/TensorAxis.h
create mode 100644 compiler/loco/include/loco/IR/TensorAxisSet.h
create mode 100644 compiler/loco/include/loco/IR/TensorIndex.h
create mode 100644 compiler/loco/include/loco/IR/TensorShape.h
create mode 100644 compiler/loco/include/loco/IR/Use.h
create mode 100644 compiler/loco/include/loco/IR/Verifier.h
create mode 100644 compiler/loco/include/loco/IR/Window.h
create mode 100644 compiler/loco/include/loco/Service/CanonicalShapeInferenceRule.h
create mode 100644 compiler/loco/include/loco/Service/MultiDialectShapeInferenceRule.h
create mode 100644 compiler/loco/include/loco/Service/ShapeInference.h
create mode 100644 compiler/loco/include/loco/Service/ShapeInferenceRule.h
create mode 100644 compiler/loco/include/loco/Service/TypeInference.h
create mode 100644 compiler/loco/src/ADT/AnnotatedItem.test.cpp
create mode 100644 compiler/loco/src/ADT/ObjectPool.cpp
create mode 100644 compiler/loco/src/IR/Algorithm.cpp
create mode 100644 compiler/loco/src/IR/Algorithm.test.cpp
create mode 100644 compiler/loco/src/IR/BiasShape.test.cpp
create mode 100644 compiler/loco/src/IR/CanonicalDialect.cpp
create mode 100644 compiler/loco/src/IR/CanonicalDialect.test.cpp
create mode 100644 compiler/loco/src/IR/CanonicalNode.cpp
create mode 100644 compiler/loco/src/IR/CanonicalNode.test.cpp
create mode 100644 compiler/loco/src/IR/CanonicalOpcode.cpp
create mode 100644 compiler/loco/src/IR/DataType.cpp
create mode 100644 compiler/loco/src/IR/DataTypeTraits.test.cpp
create mode 100644 compiler/loco/src/IR/DepthwiseFilterAxis.cpp
create mode 100644 compiler/loco/src/IR/DepthwiseFilterCodec.cpp
create mode 100644 compiler/loco/src/IR/DepthwiseFilterIndex.test.cpp
create mode 100644 compiler/loco/src/IR/DepthwiseFilterShape.test.cpp
create mode 100644 compiler/loco/src/IR/Dialect.cpp
create mode 100644 compiler/loco/src/IR/Dialect.test.cpp
create mode 100644 compiler/loco/src/IR/DialectService.cpp
create mode 100644 compiler/loco/src/IR/Dimension.cpp
create mode 100644 compiler/loco/src/IR/Dimension.test.cpp
create mode 100644 compiler/loco/src/IR/Domain.cpp
create mode 100644 compiler/loco/src/IR/FeatureAxis.cpp
create mode 100644 compiler/loco/src/IR/FeatureCodec.cpp
create mode 100644 compiler/loco/src/IR/FeatureIndex.test.cpp
create mode 100644 compiler/loco/src/IR/FeatureShape.test.cpp
create mode 100644 compiler/loco/src/IR/FilterAxis.cpp
create mode 100644 compiler/loco/src/IR/FilterCodec.cpp
create mode 100644 compiler/loco/src/IR/FilterIndex.test.cpp
create mode 100644 compiler/loco/src/IR/FilterShape.test.cpp
create mode 100644 compiler/loco/src/IR/Graph.cpp
create mode 100644 compiler/loco/src/IR/Graph.test.cpp
create mode 100644 compiler/loco/src/IR/GraphInputIndex.cpp
create mode 100644 compiler/loco/src/IR/GraphOutputIndex.cpp
create mode 100644 compiler/loco/src/IR/MatrixAxis.cpp
create mode 100644 compiler/loco/src/IR/MatrixCodec.cpp
create mode 100644 compiler/loco/src/IR/MockupNode.h
create mode 100644 compiler/loco/src/IR/Node.cpp
create mode 100644 compiler/loco/src/IR/Node.test.cpp
create mode 100644 compiler/loco/src/IR/NodeMixins.cpp
create mode 100644 compiler/loco/src/IR/NodePool.cpp
create mode 100644 compiler/loco/src/IR/NodeShape.cpp
create mode 100644 compiler/loco/src/IR/NodeShape.test.cpp
create mode 100644 compiler/loco/src/IR/Nodes.cpp
create mode 100644 compiler/loco/src/IR/Nodes.test.cpp
create mode 100644 compiler/loco/src/IR/Padding2D.test.cpp
create mode 100644 compiler/loco/src/IR/PaddingND.test.cpp
create mode 100644 compiler/loco/src/IR/PermutingCodec.cpp
create mode 100644 compiler/loco/src/IR/PermutingCodec.test.cpp
create mode 100644 compiler/loco/src/IR/Stride.test.cpp
create mode 100644 compiler/loco/src/IR/TensorAxis.cpp
create mode 100644 compiler/loco/src/IR/TensorAxisSet.cpp
create mode 100644 compiler/loco/src/IR/TensorIndex.cpp
create mode 100644 compiler/loco/src/IR/TensorShape.cpp
create mode 100644 compiler/loco/src/IR/TensorShape.test.cpp
create mode 100644 compiler/loco/src/IR/Use.cpp
create mode 100644 compiler/loco/src/IR/Use.test.cpp
create mode 100644 compiler/loco/src/IR/Verifier.cpp
create mode 100644 compiler/loco/src/IR/Verifier.test.cpp
create mode 100644 compiler/loco/src/IR/Window.test.cpp
create mode 100644 compiler/loco/src/Service/CanonicalShapeInferenceRule.cpp
create mode 100644 compiler/loco/src/Service/CanonicalShapeInferenceRule.test.cpp
create mode 100644 compiler/loco/src/Service/GraphBuilder.h
create mode 100644 compiler/loco/src/Service/GraphBuilder.test.cpp
create mode 100644 compiler/loco/src/Service/GraphTestcase.h
create mode 100644 compiler/loco/src/Service/MultiDialectShapeInferenceRule.cpp
create mode 100644 compiler/loco/src/Service/MultiDialectShapeInferenceRule.test.cpp
create mode 100644 compiler/loco/src/Service/ShapeInference.cpp
create mode 100644 compiler/loco/src/Service/ShapeInference.test.cpp
create mode 100644 compiler/loco/src/Service/ShapeInferenceRule.cpp
create mode 100644 compiler/loco/src/Service/TypeInference.cpp
create mode 100644 compiler/loco/src/Service/TypeInference.test.cpp
create mode 100644 compiler/loco/src/loco.test.cpp
create mode 100644 compiler/loco/src/tensorflow.test.cpp
create mode 100644 compiler/locoex-customop/CMakeLists.txt
create mode 100644 compiler/locoex-customop/README.md
create mode 100644 compiler/locoex-customop/include/locoex/COpAttrTypes.h
create mode 100644 compiler/locoex-customop/include/locoex/COpCall.h
create mode 100644 compiler/locoex-customop/include/locoex/COpDialect.h
create mode 100644 compiler/locoex-customop/include/locoex/COpNode.h
create mode 100644 compiler/locoex-customop/include/locoex/Service/COpFormattedGraph.h
create mode 100644 compiler/locoex-customop/include/locoex/Service/COpShapeInferenceRule.h
create mode 100644 compiler/locoex-customop/include/locoex/Service/COpTypeInference.h
create mode 100644 compiler/locoex-customop/include/locoex/VariadicArityNode.h
create mode 100644 compiler/locoex-customop/requires.cmake
create mode 100644 compiler/locoex-customop/src/COpCall.cpp
create mode 100644 compiler/locoex-customop/src/COpCall.test.cpp
create mode 100644 compiler/locoex-customop/src/COpDialect.cpp
create mode 100644 compiler/locoex-customop/src/COpDialect.test.cpp
create mode 100644 compiler/locoex-customop/src/COpNode.cpp
create mode 100644 compiler/locoex-customop/src/Service/COpFormattedGraph.cpp
create mode 100644 compiler/locoex-customop/src/Service/COpShapeInferenceRule.cpp
create mode 100644 compiler/locoex-customop/src/Service/COpShapeInferenceRule.test.cpp
create mode 100644 compiler/locoex-customop/src/Service/COpTypeInference.cpp
create mode 100644 compiler/locoex-customop/src/Service/COpTypeInference.test.cpp
create mode 100644 compiler/locoex-customop/src/VariadicArityNode.test.cpp
create mode 100644 compiler/locomotiv/CMakeLists.txt
create mode 100644 compiler/locomotiv/README.md
create mode 100644 compiler/locomotiv/include/locomotiv/NodeData.h
create mode 100644 compiler/locomotiv/include/locomotiv/Session.h
create mode 100644 compiler/locomotiv/requires.cmake
create mode 100644 compiler/locomotiv/src/Node.lst
create mode 100644 compiler/locomotiv/src/Node/AvgPool2D.cpp
create mode 100644 compiler/locomotiv/src/Node/AvgPool2D.test.cpp
create mode 100644 compiler/locomotiv/src/Node/BiasAdd.cpp
create mode 100644 compiler/locomotiv/src/Node/BiasAdd.test.cpp
create mode 100644 compiler/locomotiv/src/Node/BiasEncode.cpp
create mode 100644 compiler/locomotiv/src/Node/BiasEncode.test.cpp
create mode 100644 compiler/locomotiv/src/Node/ConstGen.cpp
create mode 100644 compiler/locomotiv/src/Node/ConstGen.test.cpp
create mode 100644 compiler/locomotiv/src/Node/Conv2D.cpp
create mode 100644 compiler/locomotiv/src/Node/Conv2D.test.cpp
create mode 100644 compiler/locomotiv/src/Node/DepthwiseConv2D.cpp
create mode 100644 compiler/locomotiv/src/Node/DepthwiseConv2D.test.cpp
create mode 100644 compiler/locomotiv/src/Node/DepthwiseFilterEncode.cpp
create mode 100644 compiler/locomotiv/src/Node/DepthwiseFilterEncode.test.cpp
create mode 100644 compiler/locomotiv/src/Node/EltwiseAdd.cpp
create mode 100644 compiler/locomotiv/src/Node/EltwiseAdd.test.cpp
create mode 100644 compiler/locomotiv/src/Node/EltwiseDiv.cpp
create mode 100644 compiler/locomotiv/src/Node/EltwiseDiv.test.cpp
create mode 100644 compiler/locomotiv/src/Node/EltwiseMax.cpp
create mode 100644 compiler/locomotiv/src/Node/EltwiseMax.test.cpp
create mode 100644 compiler/locomotiv/src/Node/EltwiseMul.cpp
create mode 100644 compiler/locomotiv/src/Node/EltwiseMul.test.cpp
create mode 100644 compiler/locomotiv/src/Node/EltwiseSqrt.cpp
create mode 100644 compiler/locomotiv/src/Node/EltwiseSqrt.test.cpp
create mode 100644 compiler/locomotiv/src/Node/EltwiseSub.cpp
create mode 100644 compiler/locomotiv/src/Node/EltwiseSub.test.cpp
create mode 100644 compiler/locomotiv/src/Node/FeatureCodec.test.cpp
create mode 100644 compiler/locomotiv/src/Node/FeatureDecode.cpp
create mode 100644 compiler/locomotiv/src/Node/FeatureEncode.cpp
create mode 100644 compiler/locomotiv/src/Node/FilterEncode.cpp
create mode 100644 compiler/locomotiv/src/Node/FilterEncode.test.cpp
create mode 100644 compiler/locomotiv/src/Node/Forward.cpp
create mode 100644 compiler/locomotiv/src/Node/Forward.test.cpp
create mode 100644 compiler/locomotiv/src/Node/MatMul.cpp
create mode 100644 compiler/locomotiv/src/Node/MatMul.test.cpp
create mode 100644 compiler/locomotiv/src/Node/MatrixCodec.test.cpp
create mode 100644 compiler/locomotiv/src/Node/MatrixDecode.cpp
create mode 100644 compiler/locomotiv/src/Node/MatrixEncode.cpp
create mode 100644 compiler/locomotiv/src/Node/MaxPool2D.cpp
create mode 100644 compiler/locomotiv/src/Node/MaxPool2D.test.cpp
create mode 100644 compiler/locomotiv/src/Node/Pull.cpp
create mode 100644 compiler/locomotiv/src/Node/Pull.test.cpp
create mode 100644 compiler/locomotiv/src/Node/Push.cpp
create mode 100644 compiler/locomotiv/src/Node/Push.test.cpp
create mode 100644 compiler/locomotiv/src/Node/ReLU.cpp
create mode 100644 compiler/locomotiv/src/Node/ReLU.test.cpp
create mode 100644 compiler/locomotiv/src/Node/ReLU6.cpp
create mode 100644 compiler/locomotiv/src/Node/ReLU6.test.cpp
create mode 100644 compiler/locomotiv/src/Node/Reshape.cpp
create mode 100644 compiler/locomotiv/src/Node/Reshape.test.cpp
create mode 100644 compiler/locomotiv/src/Node/Softmax.cpp
create mode 100644 compiler/locomotiv/src/Node/Softmax.test.cpp
create mode 100644 compiler/locomotiv/src/Node/Tanh.cpp
create mode 100644 compiler/locomotiv/src/Node/Tanh.test.cpp
create mode 100644 compiler/locomotiv/src/Node/TensorBroadcast.cpp
create mode 100644 compiler/locomotiv/src/Node/TensorBroadcast.test.cpp
create mode 100644 compiler/locomotiv/src/Node/TensorConcat.cpp
create mode 100644 compiler/locomotiv/src/Node/TensorConcat.test.cpp
create mode 100644 compiler/locomotiv/src/Node/TensorConstantPad.cpp
create mode 100644 compiler/locomotiv/src/Node/TensorConstantPad.test.cpp
create mode 100644 compiler/locomotiv/src/Node/TensorReduce.cpp
create mode 100644 compiler/locomotiv/src/Node/TensorReduce.test.cpp
create mode 100644 compiler/locomotiv/src/Node/TransposedConv2D.cpp
create mode 100644 compiler/locomotiv/src/Node/TransposedConv2D.test.cpp
create mode 100644 compiler/locomotiv/src/NodeData.cpp
create mode 100644 compiler/locomotiv/src/NodeData.test.cpp
create mode 100644 compiler/locomotiv/src/NodeDataImpl.cpp
create mode 100644 compiler/locomotiv/src/NodeDataImpl.h
create mode 100644 compiler/locomotiv/src/NodeDataImpl.test.cpp
create mode 100644 compiler/locomotiv/src/NodeDomain.cpp
create mode 100644 compiler/locomotiv/src/NodeDomain.h
create mode 100644 compiler/locomotiv/src/NodeDomain.test.cpp
create mode 100644 compiler/locomotiv/src/NodeExecution.cpp
create mode 100644 compiler/locomotiv/src/NodeExecution.h
create mode 100644 compiler/locomotiv/src/Session.cpp
create mode 100644 compiler/locomotiv/src/Session.test.cpp
create mode 100644 compiler/locomotiv/src/UserData.cpp
create mode 100644 compiler/locomotiv/src/UserData.h
create mode 100644 compiler/locomotiv/src/Validation.h
create mode 100644 compiler/locop/CMakeLists.txt
create mode 100644 compiler/locop/README.md
create mode 100644 compiler/locop/include/locop/CanonicalNodeSummaryBuilder.h
create mode 100644 compiler/locop/include/locop/FormattedGraph.h
create mode 100644 compiler/locop/include/locop/FormattedTensorShape.h
create mode 100644 compiler/locop/include/locop/GenericNodeSummaryBuilder.h
create mode 100644 compiler/locop/include/locop/Interfaces.h
create mode 100644 compiler/locop/include/locop/NodeSummary.h
create mode 100644 compiler/locop/include/locop/NodeSummaryBuilder.h
create mode 100644 compiler/locop/include/locop/SymbolTable.h
create mode 100644 compiler/locop/src/CanonicalNodeSummaryBuilder.cpp
create mode 100644 compiler/locop/src/ExampleGraph.h
create mode 100644 compiler/locop/src/FormattedGraph.cpp
create mode 100644 compiler/locop/src/FormattedGraph.test.cpp
create mode 100644 compiler/locop/src/FormattedTensorShape.cpp
create mode 100644 compiler/locop/src/FormattedTensorShape.test.cpp
create mode 100644 compiler/locop/src/GenericNodeSummaryBuilder.cpp
create mode 100644 compiler/locop/src/GenericNodeSummaryBuilder.test.cpp
create mode 100644 compiler/locop/src/Interfaces.cpp
create mode 100644 compiler/locop/src/NodeSummary.cpp
create mode 100644 compiler/locop/src/NodeSummaryBuilder.cpp
create mode 100644 compiler/logo-core/CMakeLists.txt
create mode 100644 compiler/logo-core/README.md
create mode 100644 compiler/logo-core/include/logo/Pass.h
create mode 100644 compiler/logo-core/include/logo/Phase.h
create mode 100644 compiler/logo-core/requires.cmake
create mode 100644 compiler/logo-core/src/Pass.cpp
create mode 100644 compiler/logo-core/src/Pass.test.cpp
create mode 100644 compiler/logo-core/src/Phase.cpp
create mode 100644 compiler/logo/CMakeLists.txt
create mode 100644 compiler/logo/README.md
create mode 100644 compiler/logo/include/logo/ConstantFoldingPass.h
create mode 100644 compiler/logo/include/logo/Passes.h
create mode 100644 compiler/logo/include/logo/RemoveDeadNodePass.h
create mode 100644 compiler/logo/include/logo/RemoveForwardNodePass.h
create mode 100644 compiler/logo/include/logo/ReorderDecodePass.h
create mode 100644 compiler/logo/include/logo/ResolveDuplicateReshapePass.h
create mode 100644 compiler/logo/include/logo/ResolveRedundantReshapePass.h
create mode 100644 compiler/logo/include/logo/SimplifyDomainConversionPass.h
create mode 100644 compiler/logo/requires.cmake
create mode 100644 compiler/logo/src/Passes/ConstantFoldingPass.cpp
create mode 100644 compiler/logo/src/Passes/ConstantFoldingPass.test.cpp
create mode 100644 compiler/logo/src/Passes/RemoveDeadNodePass.cpp
create mode 100644 compiler/logo/src/Passes/RemoveForwardNodePass.cpp
create mode 100644 compiler/logo/src/Passes/ReorderDecodePass.cpp
create mode 100644 compiler/logo/src/Passes/ResolveDuplicateReshapePass.cpp
create mode 100644 compiler/logo/src/Passes/ResolveRedundantReshapePass.cpp
create mode 100644 compiler/logo/src/Passes/SimplifyDomainConversionPass.cpp
create mode 100644 compiler/logo/src/Passes/SimplifyDomainConversionPass.test.cpp
create mode 100644 compiler/logo/src/TestHelper.h
create mode 100644 compiler/luci/CMakeLists.txt
create mode 100644 compiler/luci/README.md
create mode 100644 compiler/luci/export/CMakeLists.txt
create mode 100644 compiler/luci/export/README.md
create mode 100644 compiler/luci/export/include/luci/CircleExporter.h
create mode 100644 compiler/luci/export/src/Check.h
create mode 100644 compiler/luci/export/src/CircleExporter.cpp
create mode 100644 compiler/luci/export/src/CircleExporterImpl.cpp
create mode 100644 compiler/luci/export/src/CircleExporterImpl.h
create mode 100644 compiler/luci/export/src/CircleExporterUtils.cpp
create mode 100644 compiler/luci/export/src/CircleExporterUtils.h
create mode 100644 compiler/luci/export/src/CircleOperationExporter.cpp
create mode 100644 compiler/luci/export/src/CircleOperationExporter.h
create mode 100644 compiler/luci/export/src/CircleTensorExporter.cpp
create mode 100644 compiler/luci/export/src/CircleTensorExporter.h
create mode 100644 compiler/luci/export/src/Optimize.cpp
create mode 100644 compiler/luci/export/src/Optimize.h
create mode 100644 compiler/luci/export/src/ProgressReporter.cpp
create mode 100644 compiler/luci/export/src/ProgressReporter.h
create mode 100644 compiler/luci/export/src/SerializedData.h
create mode 100644 compiler/luci/import/CMakeLists.txt
create mode 100644 compiler/luci/import/README.md
create mode 100644 compiler/luci/import/include/luci/Import/CircleReader.h
create mode 100644 compiler/luci/import/include/luci/Import/GraphBuilder.h
create mode 100644 compiler/luci/import/include/luci/Import/GraphBuilderContext.h
create mode 100644 compiler/luci/import/include/luci/Import/GraphBuilderRegistry.h
create mode 100644 compiler/luci/import/include/luci/Import/Nodes.h
create mode 100644 compiler/luci/import/include/luci/Import/Nodes/CircleAbs.h
create mode 100644 compiler/luci/import/include/luci/Import/Nodes/CircleAdd.h
create mode 100644 compiler/luci/import/include/luci/Import/Nodes/CircleArgMax.h
create mode 100644 compiler/luci/import/include/luci/Import/Nodes/CircleAveragePool2D.h
create mode 100644 compiler/luci/import/include/luci/Import/Nodes/CircleBatchToSpaceND.h
create mode 100644 compiler/luci/import/include/luci/Import/Nodes/CircleConcatenation.h
create mode 100644 compiler/luci/import/include/luci/Import/Nodes/CircleConst.h
create mode 100644 compiler/luci/import/include/luci/Import/Nodes/CircleConv2D.h
create mode 100644 compiler/luci/import/include/luci/Import/Nodes/CircleCos.h
create mode 100644 compiler/luci/import/include/luci/Import/Nodes/CircleDepthwiseConv2D.h
create mode 100644 compiler/luci/import/include/luci/Import/Nodes/CircleDiv.h
create mode 100644 compiler/luci/import/include/luci/Import/Nodes/CircleEqual.h
create mode 100644 compiler/luci/import/include/luci/Import/Nodes/CircleExp.h
create mode 100644 compiler/luci/import/include/luci/Import/Nodes/CircleFullyConnected.h
create mode 100644 compiler/luci/import/include/luci/Import/Nodes/CircleLogicalNot.h
create mode 100644 compiler/luci/import/include/luci/Import/Nodes/CircleLogicalOr.h
create mode 100644 compiler/luci/import/include/luci/Import/Nodes/CircleMaxPool2D.h
create mode 100644 compiler/luci/import/include/luci/Import/Nodes/CircleMean.h
create mode 100644 compiler/luci/import/include/luci/Import/Nodes/CircleMul.h
create mode 100644 compiler/luci/import/include/luci/Import/Nodes/CirclePack.h
create mode 100644 compiler/luci/import/include/luci/Import/Nodes/CirclePad.h
create mode 100644 compiler/luci/import/include/luci/Import/Nodes/CircleRelu.h
create mode 100644 compiler/luci/import/include/luci/Import/Nodes/CircleReshape.h
create mode 100644 compiler/luci/import/include/luci/Import/Nodes/CircleRsqrt.h
create mode 100644 compiler/luci/import/include/luci/Import/Nodes/CircleSoftmax.h
create mode 100644 compiler/luci/import/include/luci/Import/Nodes/CircleSub.h
create mode 100644 compiler/luci/import/include/luci/Import/Nodes/CircleTranspose.h
create mode 100644 compiler/luci/import/include/luci/Importer.h
create mode 100644 compiler/luci/import/src/CircleReader.cpp
create mode 100644 compiler/luci/import/src/GraphBuilder.cpp
create mode 100644 compiler/luci/import/src/GraphBuilderContext.cpp
create mode 100644 compiler/luci/import/src/GraphBuilderRegistry.cpp
create mode 100644 compiler/luci/import/src/Importer.cpp
create mode 100644 compiler/luci/import/src/Importer.test.cpp
create mode 100644 compiler/luci/import/src/Nodes/CircleAbs.cpp
create mode 100644 compiler/luci/import/src/Nodes/CircleAdd.cpp
create mode 100644 compiler/luci/import/src/Nodes/CircleArgMax.cpp
create mode 100644 compiler/luci/import/src/Nodes/CircleAveragePool2D.cpp
create mode 100644 compiler/luci/import/src/Nodes/CircleBatchToSpaceND.cpp
create mode 100644 compiler/luci/import/src/Nodes/CircleConcatenation.cpp
create mode 100644 compiler/luci/import/src/Nodes/CircleConst.cpp
create mode 100644 compiler/luci/import/src/Nodes/CircleConv2D.cpp
create mode 100644 compiler/luci/import/src/Nodes/CircleCos.cpp
create mode 100644 compiler/luci/import/src/Nodes/CircleDepthwiseConv2D.cpp
create mode 100644 compiler/luci/import/src/Nodes/CircleDiv.cpp
create mode 100644 compiler/luci/import/src/Nodes/CircleEqual.cpp
create mode 100644 compiler/luci/import/src/Nodes/CircleExp.cpp
create mode 100644 compiler/luci/import/src/Nodes/CircleFullyConnected.cpp
create mode 100644 compiler/luci/import/src/Nodes/CircleLogicalNot.cpp
create mode 100644 compiler/luci/import/src/Nodes/CircleLogicalOr.cpp
create mode 100644 compiler/luci/import/src/Nodes/CircleMaxPool2D.cpp
create mode 100644 compiler/luci/import/src/Nodes/CircleMean.cpp
create mode 100644 compiler/luci/import/src/Nodes/CircleMul.cpp
create mode 100644 compiler/luci/import/src/Nodes/CirclePack.cpp
create mode 100644 compiler/luci/import/src/Nodes/CirclePad.cpp
create mode 100644 compiler/luci/import/src/Nodes/CircleRelu.cpp
create mode 100644 compiler/luci/import/src/Nodes/CircleReshape.cpp
create mode 100644 compiler/luci/import/src/Nodes/CircleRsqrt.cpp
create mode 100644 compiler/luci/import/src/Nodes/CircleSoftmax.cpp
create mode 100644 compiler/luci/import/src/Nodes/CircleSub.cpp
create mode 100644 compiler/luci/import/src/Nodes/CircleTranspose.cpp
create mode 100644 compiler/luci/lang/CMakeLists.txt
create mode 100644 compiler/luci/lang/README.md
create mode 100644 compiler/luci/lang/include/luci/IR/AttrFilter.h
create mode 100644 compiler/luci/lang/include/luci/IR/AttrFusedActFunc.h
create mode 100644 compiler/luci/lang/include/luci/IR/AttrPadding.h
create mode 100644 compiler/luci/lang/include/luci/IR/AttrStride.h
create mode 100644 compiler/luci/lang/include/luci/IR/CircleDialect.h
create mode 100644 compiler/luci/lang/include/luci/IR/CircleNode.h
create mode 100644 compiler/luci/lang/include/luci/IR/CircleNodeDecl.h
create mode 100644 compiler/luci/lang/include/luci/IR/CircleNodeImpl.h
create mode 100644 compiler/luci/lang/include/luci/IR/CircleNodeVisitor.forward.h
create mode 100644 compiler/luci/lang/include/luci/IR/CircleNodeVisitor.h
create mode 100644 compiler/luci/lang/include/luci/IR/CircleNodes.h
create mode 100644 compiler/luci/lang/include/luci/IR/CircleNodes.lst
create mode 100644 compiler/luci/lang/include/luci/IR/CircleOpcode.h
create mode 100644 compiler/luci/lang/include/luci/IR/CircleQuantParam.h
create mode 100644 compiler/luci/lang/include/luci/IR/LuciNodeMixins.h
create mode 100644 compiler/luci/lang/include/luci/IR/Module.h
create mode 100644 compiler/luci/lang/include/luci/IR/Nodes/CircleAbs.h
create mode 100644 compiler/luci/lang/include/luci/IR/Nodes/CircleAdd.h
create mode 100644 compiler/luci/lang/include/luci/IR/Nodes/CircleArgMax.h
create mode 100644 compiler/luci/lang/include/luci/IR/Nodes/CircleAveragePool2D.h
create mode 100644 compiler/luci/lang/include/luci/IR/Nodes/CircleBatchToSpaceND.h
create mode 100644 compiler/luci/lang/include/luci/IR/Nodes/CircleConcatenation.h
create mode 100644 compiler/luci/lang/include/luci/IR/Nodes/CircleConst.h
create mode 100644 compiler/luci/lang/include/luci/IR/Nodes/CircleConv2D.h
create mode 100644 compiler/luci/lang/include/luci/IR/Nodes/CircleCos.h
create mode 100644 compiler/luci/lang/include/luci/IR/Nodes/CircleDepthwiseConv2D.h
create mode 100644 compiler/luci/lang/include/luci/IR/Nodes/CircleDiv.h
create mode 100644 compiler/luci/lang/include/luci/IR/Nodes/CircleEqual.h
create mode 100644 compiler/luci/lang/include/luci/IR/Nodes/CircleExp.h
create mode 100644 compiler/luci/lang/include/luci/IR/Nodes/CircleFullyConnected.h
create mode 100644 compiler/luci/lang/include/luci/IR/Nodes/CircleGather.h
create mode 100644 compiler/luci/lang/include/luci/IR/Nodes/CircleInput.h
create mode 100644 compiler/luci/lang/include/luci/IR/Nodes/CircleInstanceNorm.h
create mode 100644 compiler/luci/lang/include/luci/IR/Nodes/CircleLogicalNot.h
create mode 100644 compiler/luci/lang/include/luci/IR/Nodes/CircleLogicalOr.h
create mode 100644 compiler/luci/lang/include/luci/IR/Nodes/CircleMaxPool2D.h
create mode 100644 compiler/luci/lang/include/luci/IR/Nodes/CircleMaximum.h
create mode 100644 compiler/luci/lang/include/luci/IR/Nodes/CircleMean.h
create mode 100644 compiler/luci/lang/include/luci/IR/Nodes/CircleMul.h
create mode 100644 compiler/luci/lang/include/luci/IR/Nodes/CircleOutput.h
create mode 100644 compiler/luci/lang/include/luci/IR/Nodes/CirclePack.h
create mode 100644 compiler/luci/lang/include/luci/IR/Nodes/CirclePad.h
create mode 100644 compiler/luci/lang/include/luci/IR/Nodes/CircleRelu.h
create mode 100644 compiler/luci/lang/include/luci/IR/Nodes/CircleRelu6.h
create mode 100644 compiler/luci/lang/include/luci/IR/Nodes/CircleReshape.h
create mode 100644 compiler/luci/lang/include/luci/IR/Nodes/CircleRsqrt.h
create mode 100644 compiler/luci/lang/include/luci/IR/Nodes/CircleSoftmax.h
create mode 100644 compiler/luci/lang/include/luci/IR/Nodes/CircleSqrt.h
create mode 100644 compiler/luci/lang/include/luci/IR/Nodes/CircleSquaredDifference.h
create mode 100644 compiler/luci/lang/include/luci/IR/Nodes/CircleSub.h
create mode 100644 compiler/luci/lang/include/luci/IR/Nodes/CircleTranspose.h
create mode 100644 compiler/luci/lang/include/luci/IR/Nodes/CircleTransposeConv.h
create mode 100644 compiler/luci/lang/include/luci/IR/VariadicArityNode.h
create mode 100644 compiler/luci/lang/src/Check.h
create mode 100644 compiler/luci/lang/src/CircleDialect.cpp
create mode 100644 compiler/luci/lang/src/CircleDialect.test.cpp
create mode 100644 compiler/luci/lang/src/CircleNode.cpp
create mode 100644 compiler/luci/lang/src/CircleNodes.cpp
create mode 100644 compiler/luci/lang/src/LuciNodeMixins.cpp
create mode 100644 compiler/luci/lang/src/Module.cpp
create mode 100644 compiler/luci/lang/src/Module.test.cpp
create mode 100644 compiler/luci/lang/src/Nodes/CircleAbs.test.cpp
create mode 100644 compiler/luci/lang/src/Nodes/CircleAdd.test.cpp
create mode 100644 compiler/luci/lang/src/Nodes/CircleArgMax.test.cpp
create mode 100644 compiler/luci/lang/src/Nodes/CircleBatchToSpaceND.test.cpp
create mode 100644 compiler/luci/lang/src/Nodes/CircleConcatenation.test.cpp
create mode 100644 compiler/luci/lang/src/Nodes/CircleConst.cpp
create mode 100644 compiler/luci/lang/src/Nodes/CircleConv2D.test.cpp
create mode 100644 compiler/luci/lang/src/Nodes/CircleCos.test.cpp
create mode 100644 compiler/luci/lang/src/Nodes/CircleDepthwiseConv2D.test.cpp
create mode 100644 compiler/luci/lang/src/Nodes/CircleDiv.test.cpp
create mode 100644 compiler/luci/lang/src/Nodes/CircleEqual.test.cpp
create mode 100644 compiler/luci/lang/src/Nodes/CircleExp.test.cpp
create mode 100644 compiler/luci/lang/src/Nodes/CircleFullyConnected.test.cpp
create mode 100644 compiler/luci/lang/src/Nodes/CircleGather.test.cpp
create mode 100644 compiler/luci/lang/src/Nodes/CircleInput.cpp
create mode 100644 compiler/luci/lang/src/Nodes/CircleInstanceNorm.test.cpp
create mode 100644 compiler/luci/lang/src/Nodes/CircleLogicalNot.test.cpp
create mode 100644 compiler/luci/lang/src/Nodes/CircleLogicalOr.test.cpp
create mode 100644 compiler/luci/lang/src/Nodes/CircleMaxPool2D.test.cpp
create mode 100644 compiler/luci/lang/src/Nodes/CircleMaximum.test.cpp
create mode 100644 compiler/luci/lang/src/Nodes/CircleMul.test.cpp
create mode 100644 compiler/luci/lang/src/Nodes/CircleOutput.cpp
create mode 100644 compiler/luci/lang/src/Nodes/CirclePack.test.cpp
create mode 100644 compiler/luci/lang/src/Nodes/CirclePad.test.cpp
create mode 100644 compiler/luci/lang/src/Nodes/CircleRelu.test.cpp
create mode 100644 compiler/luci/lang/src/Nodes/CircleRelu6.test.cpp
create mode 100644 compiler/luci/lang/src/Nodes/CircleReshape.test.cpp
create mode 100644 compiler/luci/lang/src/Nodes/CircleRsqrt.test.cpp
create mode 100644 compiler/luci/lang/src/Nodes/CircleSoftmax.test.cpp
create mode 100644 compiler/luci/lang/src/Nodes/CircleSqrt.test.cpp
create mode 100644 compiler/luci/lang/src/Nodes/CircleSquaredDifference.test.cpp
create mode 100644 compiler/luci/lang/src/Nodes/CircleSub.test.cpp
create mode 100644 compiler/luci/lang/src/Nodes/CircleTranspose.test.cpp
create mode 100644 compiler/luci/lang/src/Nodes/CircleTransposeConv.test.cpp
create mode 100644 compiler/luci/log/CMakeLists.txt
create mode 100644 compiler/luci/log/README.md
create mode 100644 compiler/luci/log/include/luci/Log.h
create mode 100644 compiler/luci/log/include/luci/LoggingContext.h
create mode 100644 compiler/luci/log/src/Log.cpp
create mode 100644 compiler/luci/log/src/LoggingContext.cpp
create mode 100644 compiler/luci/logex/CMakeLists.txt
create mode 100644 compiler/luci/logex/README.md
create mode 100644 compiler/luci/logex/include/luci/FormattedGraph.h
create mode 100644 compiler/luci/logex/include/luci/LogHelper.h
create mode 100644 compiler/luci/logex/src/FormattedGraph.cpp
create mode 100644 compiler/luci/logex/src/LogHelper.cpp
create mode 100644 compiler/luci/pass/CMakeLists.txt
create mode 100644 compiler/luci/pass/README.md
create mode 100644 compiler/luci/pass/include/luci/CircleOptimizer.h
create mode 100644 compiler/luci/pass/include/luci/Pass/FuseInstanceNormPass.h
create mode 100644 compiler/luci/pass/include/luci/Pass/ShapeInferencePass.h
create mode 100644 compiler/luci/pass/include/luci/Pass/TypeInferencePass.h
create mode 100644 compiler/luci/pass/src/CircleOptimizer.cpp
create mode 100644 compiler/luci/pass/src/FuseInstanceNormPass.cpp
create mode 100644 compiler/luci/pass/src/ProgressReporter.cpp
create mode 100644 compiler/luci/pass/src/ProgressReporter.h
create mode 100644 compiler/luci/pass/src/ShapeInferencePass.cpp
create mode 100644 compiler/luci/pass/src/TypeInferencePass.cpp
create mode 100644 compiler/luci/requires.cmake
create mode 100644 compiler/luci/service/CMakeLists.txt
create mode 100644 compiler/luci/service/README.md
create mode 100644 compiler/luci/service/include/luci/Service/CircleShapeInference.h
create mode 100644 compiler/luci/service/include/luci/Service/CircleShapeInferenceRule.h
create mode 100644 compiler/luci/service/include/luci/Service/CircleTypeInference.h
create mode 100644 compiler/luci/service/include/luci/Service/CircleTypeInferenceRule.h
create mode 100644 compiler/luci/service/include/luci/Service/ShapeDescription.h
create mode 100644 compiler/luci/service/include/luci/Service/Validate.h
create mode 100644 compiler/luci/service/src/Check.h
create mode 100644 compiler/luci/service/src/CircleShapeInference.cpp
create mode 100644 compiler/luci/service/src/CircleShapeInferenceRule.cpp
create mode 100644 compiler/luci/service/src/CircleShapeInferenceRule.test.cpp
create mode 100644 compiler/luci/service/src/CircleTypeInference.cpp
create mode 100644 compiler/luci/service/src/CircleTypeInferenceRule.cpp
create mode 100644 compiler/luci/service/src/CircleTypeInferenceRule.test.cpp
create mode 100644 compiler/luci/service/src/GraphBlock.h
create mode 100644 compiler/luci/service/src/GraphBlock.test.cpp
create mode 100644 compiler/luci/service/src/ShapeDescription.cpp
create mode 100644 compiler/luci/service/src/TestGraph.h
create mode 100644 compiler/luci/service/src/Validate.cpp
create mode 100644 compiler/luci/tester/CMakeLists.txt
create mode 100644 compiler/luci/tester/src/Model.cpp
create mode 100644 compiler/luci/tester/src/Model.h
create mode 100644 compiler/luci/tester/src/ReadTester.cpp
create mode 100644 compiler/luci/tester/src/WriteTester.cpp
create mode 100644 compiler/luci/tests/.gitignore
create mode 100644 compiler/luci/tests/CMakeLists.txt
create mode 100755 compiler/luci/tests/readverify.sh
create mode 100644 compiler/luci/tests/test.lst
create mode 100755 compiler/luci/tests/writeverify.sh
create mode 100644 compiler/mio-circle/CMakeLists.txt
create mode 100644 compiler/mio-circle/README.md
create mode 100644 compiler/mio-circle/example.cpp
create mode 100644 compiler/mio-tf/CMakeLists.txt
create mode 100644 compiler/mio-tf/README.md
create mode 100644 compiler/mio-tf/src/mio_tf.test.cpp
create mode 100644 compiler/mio-tflite/CMakeLists.txt
create mode 100644 compiler/mio-tflite/README.md
create mode 100644 compiler/mio-tflite/example.cpp
create mode 100644 compiler/mir-caffe-importer/CMakeLists.txt
create mode 100644 compiler/mir-caffe-importer/caffe_importer.cpp
create mode 100644 compiler/mir-caffe-importer/caffe_importer.h
create mode 100644 compiler/mir-caffe-importer/caffe_op_creator.cpp
create mode 100644 compiler/mir-caffe-importer/caffe_op_creator.h
create mode 100644 compiler/mir-caffe-importer/caffe_op_types.h
create mode 100644 compiler/mir-caffe-importer/requires.cmake
create mode 100644 compiler/mir-caffe2-importer/CMakeLists.txt
create mode 100644 compiler/mir-caffe2-importer/caffe2_importer.cpp
create mode 100644 compiler/mir-caffe2-importer/caffe2_importer.h
create mode 100644 compiler/mir-caffe2-importer/caffe2_op_creator.cpp
create mode 100644 compiler/mir-caffe2-importer/caffe2_op_creator.h
create mode 100644 compiler/mir-caffe2-importer/caffe2_op_types.h
create mode 100644 compiler/mir-caffe2-importer/caffe2_proto_helper.cpp
create mode 100644 compiler/mir-caffe2-importer/caffe2_proto_helper.h
create mode 100644 compiler/mir-caffe2-importer/requires.cmake
create mode 100644 compiler/mir-interpreter/CMakeLists.txt
create mode 100644 compiler/mir-interpreter/include/MirInterpreter.h
create mode 100644 compiler/mir-interpreter/requires.cmake
create mode 100644 compiler/mir-interpreter/src/MirInterpreter.cpp
create mode 100644 compiler/mir-interpreter/src/ops/Abs.cpp
create mode 100644 compiler/mir-interpreter/src/ops/Abs.h
create mode 100644 compiler/mir-interpreter/src/ops/Add.cpp
create mode 100644 compiler/mir-interpreter/src/ops/Add.h
create mode 100644 compiler/mir-interpreter/src/ops/AvgPool2D.cpp
create mode 100644 compiler/mir-interpreter/src/ops/AvgPool2D.h
create mode 100644 compiler/mir-interpreter/src/ops/CappedReLU.cpp
create mode 100644 compiler/mir-interpreter/src/ops/CappedReLU.h
create mode 100644 compiler/mir-interpreter/src/ops/Common.cpp
create mode 100644 compiler/mir-interpreter/src/ops/Common.h
create mode 100644 compiler/mir-interpreter/src/ops/Concat.cpp
create mode 100644 compiler/mir-interpreter/src/ops/Concat.h
create mode 100644 compiler/mir-interpreter/src/ops/Conv2D.cpp
create mode 100644 compiler/mir-interpreter/src/ops/Conv2D.h
create mode 100644 compiler/mir-interpreter/src/ops/DeConv2D.cpp
create mode 100644 compiler/mir-interpreter/src/ops/DeConv2D.h
create mode 100644 compiler/mir-interpreter/src/ops/DepthwiseConv2D.cpp
create mode 100644 compiler/mir-interpreter/src/ops/DepthwiseConv2D.h
create mode 100644 compiler/mir-interpreter/src/ops/Div.cpp
create mode 100644 compiler/mir-interpreter/src/ops/Div.h
create mode 100644 compiler/mir-interpreter/src/ops/ELU.cpp
create mode 100644 compiler/mir-interpreter/src/ops/ELU.h
create mode 100644 compiler/mir-interpreter/src/ops/Equal.cpp
create mode 100644 compiler/mir-interpreter/src/ops/Equal.h
create mode 100644 compiler/mir-interpreter/src/ops/Fill.h
create mode 100644 compiler/mir-interpreter/src/ops/FullyConnected.cpp
create mode 100644 compiler/mir-interpreter/src/ops/FullyConnected.h
create mode 100644 compiler/mir-interpreter/src/ops/Gather.cpp
create mode 100644 compiler/mir-interpreter/src/ops/Gather.h
create mode 100644 compiler/mir-interpreter/src/ops/Greater.cpp
create mode 100644 compiler/mir-interpreter/src/ops/Greater.h
create mode 100644 compiler/mir-interpreter/src/ops/HardSwish.cpp
create mode 100644 compiler/mir-interpreter/src/ops/HardSwish.h
create mode 100644 compiler/mir-interpreter/src/ops/LeakyReLU.cpp
create mode 100644 compiler/mir-interpreter/src/ops/LeakyReLU.h
create mode 100644 compiler/mir-interpreter/src/ops/Less.cpp
create mode 100644 compiler/mir-interpreter/src/ops/Less.h
create mode 100644 compiler/mir-interpreter/src/ops/Max.cpp
create mode 100644 compiler/mir-interpreter/src/ops/Max.h
create mode 100644 compiler/mir-interpreter/src/ops/MaxPool2D.cpp
create mode 100644 compiler/mir-interpreter/src/ops/MaxPool2D.h
create mode 100644 compiler/mir-interpreter/src/ops/Mul.cpp
create mode 100644 compiler/mir-interpreter/src/ops/Mul.h
create mode 100644 compiler/mir-interpreter/src/ops/Pad.cpp
create mode 100644 compiler/mir-interpreter/src/ops/Pad.h
create mode 100644 compiler/mir-interpreter/src/ops/Quantization.cpp
create mode 100644 compiler/mir-interpreter/src/ops/Quantization.h
create mode 100644 compiler/mir-interpreter/src/ops/QuantizationHelpers.h
create mode 100644 compiler/mir-interpreter/src/ops/ReLU.cpp
create mode 100644 compiler/mir-interpreter/src/ops/ReLU.h
create mode 100644 compiler/mir-interpreter/src/ops/ReduceMean.cpp
create mode 100644 compiler/mir-interpreter/src/ops/ReduceMean.h
create mode 100644 compiler/mir-interpreter/src/ops/Reshape.cpp
create mode 100644 compiler/mir-interpreter/src/ops/Reshape.h
create mode 100644 compiler/mir-interpreter/src/ops/Sigmoid.cpp
create mode 100644 compiler/mir-interpreter/src/ops/Sigmoid.h
create mode 100644 compiler/mir-interpreter/src/ops/Slice.cpp
create mode 100644 compiler/mir-interpreter/src/ops/Slice.h
create mode 100644 compiler/mir-interpreter/src/ops/Softmax.cpp
create mode 100644 compiler/mir-interpreter/src/ops/Softmax.h
create mode 100644 compiler/mir-interpreter/src/ops/Sqrt.cpp
create mode 100644 compiler/mir-interpreter/src/ops/Sqrt.h
create mode 100644 compiler/mir-interpreter/src/ops/Sub.cpp
create mode 100644 compiler/mir-interpreter/src/ops/Sub.h
create mode 100644 compiler/mir-interpreter/src/ops/Tanh.cpp
create mode 100644 compiler/mir-interpreter/src/ops/Tanh.h
create mode 100644 compiler/mir-interpreter/src/ops/Transpose.cpp
create mode 100644 compiler/mir-interpreter/src/ops/Transpose.h
create mode 100644 compiler/mir-onnx-importer/AttributeHelpers.h
create mode 100644 compiler/mir-onnx-importer/CMakeLists.txt
create mode 100644 compiler/mir-onnx-importer/ConvPoolHelpers.cpp
create mode 100644 compiler/mir-onnx-importer/ConvPoolHelpers.h
create mode 100644 compiler/mir-onnx-importer/ONNXHelpers.cpp
create mode 100644 compiler/mir-onnx-importer/ONNXHelpers.h
create mode 100644 compiler/mir-onnx-importer/ONNXImporterImpl.cpp
create mode 100644 compiler/mir-onnx-importer/ONNXImporterImpl.h
create mode 100644 compiler/mir-onnx-importer/ONNXNodeConverterRegistry.cpp
create mode 100644 compiler/mir-onnx-importer/ONNXNodeConverterRegistry.h
create mode 100644 compiler/mir-onnx-importer/ONNXNodeConverterRegistry.test.cpp
create mode 100644 compiler/mir-onnx-importer/ONNXOpRegistration.h
create mode 100644 compiler/mir-onnx-importer/Op/Abs.cpp
create mode 100644 compiler/mir-onnx-importer/Op/Abs.h
create mode 100644 compiler/mir-onnx-importer/Op/Add.cpp
create mode 100644 compiler/mir-onnx-importer/Op/Add.h
create mode 100644 compiler/mir-onnx-importer/Op/AveragePool.cpp
create mode 100644 compiler/mir-onnx-importer/Op/AveragePool.h
create mode 100644 compiler/mir-onnx-importer/Op/BatchNormalization.cpp
create mode 100644 compiler/mir-onnx-importer/Op/BatchNormalization.h
create mode 100644 compiler/mir-onnx-importer/Op/Concat.cpp
create mode 100644 compiler/mir-onnx-importer/Op/Concat.h
create mode 100644 compiler/mir-onnx-importer/Op/Constant.cpp
create mode 100644 compiler/mir-onnx-importer/Op/Constant.h
create mode 100644 compiler/mir-onnx-importer/Op/Conv.cpp
create mode 100644 compiler/mir-onnx-importer/Op/Conv.h
create mode 100644 compiler/mir-onnx-importer/Op/ConvTranspose.cpp
create mode 100644 compiler/mir-onnx-importer/Op/ConvTranspose.h
create mode 100644 compiler/mir-onnx-importer/Op/Div.cpp
create mode 100644 compiler/mir-onnx-importer/Op/Div.h
create mode 100644 compiler/mir-onnx-importer/Op/Dropout.cpp
create mode 100644 compiler/mir-onnx-importer/Op/Dropout.h
create mode 100644 compiler/mir-onnx-importer/Op/Equal.cpp
create mode 100644 compiler/mir-onnx-importer/Op/Equal.h
create mode 100644 compiler/mir-onnx-importer/Op/Expand.cpp
create mode 100644 compiler/mir-onnx-importer/Op/Expand.h
create mode 100644 compiler/mir-onnx-importer/Op/Flatten.cpp
create mode 100644 compiler/mir-onnx-importer/Op/Flatten.h
create mode 100644 compiler/mir-onnx-importer/Op/Gather.cpp
create mode 100644 compiler/mir-onnx-importer/Op/Gather.h
create mode 100644 compiler/mir-onnx-importer/Op/Gemm.cpp
create mode 100644 compiler/mir-onnx-importer/Op/Gemm.h
create mode 100644 compiler/mir-onnx-importer/Op/GlobalAveragePool.cpp
create mode 100644 compiler/mir-onnx-importer/Op/GlobalAveragePool.h
create mode 100644 compiler/mir-onnx-importer/Op/Greater.cpp
create mode 100644 compiler/mir-onnx-importer/Op/Greater.h
create mode 100644 compiler/mir-onnx-importer/Op/Identity.cpp
create mode 100644 compiler/mir-onnx-importer/Op/Identity.h
create mode 100644 compiler/mir-onnx-importer/Op/Less.cpp
create mode 100644 compiler/mir-onnx-importer/Op/Less.h
create mode 100644 compiler/mir-onnx-importer/Op/MatMul.cpp
create mode 100644 compiler/mir-onnx-importer/Op/MatMul.h
create mode 100644 compiler/mir-onnx-importer/Op/Max.cpp
create mode 100644 compiler/mir-onnx-importer/Op/Max.h
create mode 100644 compiler/mir-onnx-importer/Op/MaxPool.cpp
create mode 100644 compiler/mir-onnx-importer/Op/MaxPool.h
create mode 100644 compiler/mir-onnx-importer/Op/Mul.cpp
create mode 100644 compiler/mir-onnx-importer/Op/Mul.h
create mode 100644 compiler/mir-onnx-importer/Op/Pad.cpp
create mode 100644 compiler/mir-onnx-importer/Op/Pad.h
create mode 100644 compiler/mir-onnx-importer/Op/Reciprocal.cpp
create mode 100644 compiler/mir-onnx-importer/Op/Reciprocal.h
create mode 100644 compiler/mir-onnx-importer/Op/ReduceMean.cpp
create mode 100644 compiler/mir-onnx-importer/Op/ReduceMean.h
create mode 100644 compiler/mir-onnx-importer/Op/Relu.cpp
create mode 100644 compiler/mir-onnx-importer/Op/Relu.h
create mode 100644 compiler/mir-onnx-importer/Op/Reshape.cpp
create mode 100644 compiler/mir-onnx-importer/Op/Reshape.h
create mode 100644 compiler/mir-onnx-importer/Op/Shape.cpp
create mode 100644 compiler/mir-onnx-importer/Op/Shape.h
create mode 100644 compiler/mir-onnx-importer/Op/Sigmoid.cpp
create mode 100644 compiler/mir-onnx-importer/Op/Sigmoid.h
create mode 100644 compiler/mir-onnx-importer/Op/Softmax.cpp
create mode 100644 compiler/mir-onnx-importer/Op/Softmax.h
create mode 100644 compiler/mir-onnx-importer/Op/Sqrt.cpp
create mode 100644 compiler/mir-onnx-importer/Op/Sqrt.h
create mode 100644 compiler/mir-onnx-importer/Op/Sub.cpp
create mode 100644 compiler/mir-onnx-importer/Op/Sub.h
create mode 100644 compiler/mir-onnx-importer/Op/Sum.cpp
create mode 100644 compiler/mir-onnx-importer/Op/Sum.h
create mode 100644 compiler/mir-onnx-importer/Op/Tanh.cpp
create mode 100644 compiler/mir-onnx-importer/Op/Tanh.h
create mode 100644 compiler/mir-onnx-importer/Op/Transpose.cpp
create mode 100644 compiler/mir-onnx-importer/Op/Transpose.h
create mode 100644 compiler/mir-onnx-importer/Op/Unsqueeze.cpp
create mode 100644 compiler/mir-onnx-importer/Op/Unsqueeze.h
create mode 100644 compiler/mir-onnx-importer/Op/Upsample.cpp
create mode 100644 compiler/mir-onnx-importer/Op/Upsample.h
create mode 100644 compiler/mir-onnx-importer/requires.cmake
create mode 100644 compiler/mir-tflite-importer/CMakeLists.txt
create mode 100644 compiler/mir-tflite-importer/requires.cmake
create mode 100644 compiler/mir-tflite-importer/schema/schema.fbs
create mode 100644 compiler/mir-tflite-importer/schema/schema.meta
create mode 100644 compiler/mir-tflite-importer/schema/schema_v0.fbs
create mode 100644 compiler/mir-tflite-importer/schema/schema_v0.meta
create mode 100644 compiler/mir-tflite-importer/schema/schema_v1.fbs
create mode 100644 compiler/mir-tflite-importer/schema/schema_v1.meta
create mode 100644 compiler/mir-tflite-importer/schema/schema_v2.fbs
create mode 100644 compiler/mir-tflite-importer/schema/schema_v2.meta
create mode 100644 compiler/mir-tflite-importer/schema/schema_v3.fbs
create mode 100644 compiler/mir-tflite-importer/schema/schema_v3.meta
create mode 100644 compiler/mir-tflite-importer/tflite_importer.cpp
create mode 100644 compiler/mir-tflite-importer/tflite_importer.h
create mode 100644 compiler/mir-tflite-importer/tflite_op_creator.cpp
create mode 100644 compiler/mir-tflite-importer/tflite_op_creator.h
create mode 100644 compiler/mir/CMakeLists.txt
create mode 100644 compiler/mir/Readme.md
create mode 100644 compiler/mir/include/mir/Attributes.h
create mode 100644 compiler/mir/include/mir/Common.h
create mode 100644 compiler/mir/include/mir/DataFormat.h
create mode 100644 compiler/mir/include/mir/DataType.h
create mode 100644 compiler/mir/include/mir/ExternalRegion.h
create mode 100644 compiler/mir/include/mir/Graph.h
create mode 100644 compiler/mir/include/mir/GraphPatternMatcher.h
create mode 100644 compiler/mir/include/mir/Index.h
create mode 100644 compiler/mir/include/mir/IrDotDumper.h
create mode 100644 compiler/mir/include/mir/OpDefs.h
create mode 100644 compiler/mir/include/mir/Operation.h
create mode 100644 compiler/mir/include/mir/Operations.inc
create mode 100644 compiler/mir/include/mir/Quantization.h
create mode 100644 compiler/mir/include/mir/Region.h
create mode 100644 compiler/mir/include/mir/Shape.h
create mode 100644 compiler/mir/include/mir/ShapeRange.h
create mode 100644 compiler/mir/include/mir/Tensor.h
create mode 100644 compiler/mir/include/mir/TensorType.h
create mode 100644 compiler/mir/include/mir/TensorUtil.h
create mode 100644 compiler/mir/include/mir/TensorVariant.h
create mode 100644 compiler/mir/include/mir/Visitor.h
create mode 100644 compiler/mir/include/mir/ops/AbsOp.h
create mode 100644 compiler/mir/include/mir/ops/AddOp.h
create mode 100644 compiler/mir/include/mir/ops/AvgPool2DOp.h
create mode 100644 compiler/mir/include/mir/ops/BinaryElementwiseOp.h
create mode 100644 compiler/mir/include/mir/ops/BroadcastOp.h
create mode 100644 compiler/mir/include/mir/ops/CappedReluOp.h
create mode 100644 compiler/mir/include/mir/ops/ConcatOp.h
create mode 100644 compiler/mir/include/mir/ops/ConstantOp.h
create mode 100644 compiler/mir/include/mir/ops/Conv2DOp.h
create mode 100644 compiler/mir/include/mir/ops/Deconv2DOp.h
create mode 100644 compiler/mir/include/mir/ops/DepthwiseConv2DOp.h
create mode 100644 compiler/mir/include/mir/ops/DequantizeOp.h
create mode 100644 compiler/mir/include/mir/ops/DivOp.h
create mode 100644 compiler/mir/include/mir/ops/EluOp.h
create mode 100644 compiler/mir/include/mir/ops/EqualOp.h
create mode 100644 compiler/mir/include/mir/ops/FullyConnectedOp.h
create mode 100644 compiler/mir/include/mir/ops/GatherOp.h
create mode 100644 compiler/mir/include/mir/ops/GreaterOp.h
create mode 100644 compiler/mir/include/mir/ops/HardSwishOp.h
create mode 100644 compiler/mir/include/mir/ops/InputOp.h
create mode 100644 compiler/mir/include/mir/ops/LeakyReluOp.h
create mode 100644 compiler/mir/include/mir/ops/LessOp.h
create mode 100644 compiler/mir/include/mir/ops/MaxOp.h
create mode 100644 compiler/mir/include/mir/ops/MaxPool2DOp.h
create mode 100644 compiler/mir/include/mir/ops/MulOp.h
create mode 100644 compiler/mir/include/mir/ops/OutputOp.h
create mode 100644 compiler/mir/include/mir/ops/PadOp.h
create mode 100644 compiler/mir/include/mir/ops/PaddingType.h
create mode 100644 compiler/mir/include/mir/ops/QuantizeOp.h
create mode 100644 compiler/mir/include/mir/ops/ReduceMeanOp.h
create mode 100644 compiler/mir/include/mir/ops/ReduceOp.h
create mode 100644 compiler/mir/include/mir/ops/ReluOp.h
create mode 100644 compiler/mir/include/mir/ops/ReshapeOp.h
create mode 100644 compiler/mir/include/mir/ops/ResizeOp.h
create mode 100644 compiler/mir/include/mir/ops/SigmoidOp.h
create mode 100644 compiler/mir/include/mir/ops/SliceOp.h
create mode 100644 compiler/mir/include/mir/ops/SoftmaxOp.h
create mode 100644 compiler/mir/include/mir/ops/SqrtOp.h
create mode 100644 compiler/mir/include/mir/ops/SqueezeOp.h
create mode 100644 compiler/mir/include/mir/ops/SubOp.h
create mode 100644 compiler/mir/include/mir/ops/TanhOp.h
create mode 100644 compiler/mir/include/mir/ops/TransposeOp.h
create mode 100644 compiler/mir/src/DotGraph.cpp
create mode 100644 compiler/mir/src/DotGraph.h
create mode 100644 compiler/mir/src/DotNodeBuilder.cpp
create mode 100644 compiler/mir/src/DotNodeBuilder.h
create mode 100644 compiler/mir/src/Graph.cpp
create mode 100644 compiler/mir/src/GraphPatternMatcher.cpp
create mode 100644 compiler/mir/src/Index.cpp
create mode 100644 compiler/mir/src/IrDotDumper.cpp
create mode 100644 compiler/mir/src/Operation.cpp
create mode 100644 compiler/mir/src/Shape.cpp
create mode 100644 compiler/mir/src/Tensor.cpp
create mode 100644 compiler/mir/src/TensorVariant.cpp
create mode 100644 compiler/mir/src/Visitor.cpp
create mode 100644 compiler/mir/src/ops/AvgPool2DOp.cpp
create mode 100644 compiler/mir/src/ops/BinaryElementwiseOp.cpp
create mode 100644 compiler/mir/src/ops/BroadcastOp.cpp
create mode 100644 compiler/mir/src/ops/ConcatOp.cpp
create mode 100644 compiler/mir/src/ops/Conv2DOp.cpp
create mode 100644 compiler/mir/src/ops/DeConv2DOp.cpp
create mode 100644 compiler/mir/src/ops/DepthwiseConv2DOp.cpp
create mode 100644 compiler/mir/src/ops/FullyConnectedOp.cpp
create mode 100644 compiler/mir/src/ops/GatherOp.cpp
create mode 100644 compiler/mir/src/ops/MaxPool2DOp.cpp
create mode 100644 compiler/mir/src/ops/PadOp.cpp
create mode 100644 compiler/mir/src/ops/ReduceOp.cpp
create mode 100644 compiler/mir/src/ops/SliceOp.cpp
create mode 100644 compiler/mir/src/ops/SqueezeOp.cpp
create mode 100644 compiler/mir/src/ops/TransposeOp.cpp
create mode 100644 compiler/mir/unittests/CMakeLists.txt
create mode 100644 compiler/mir/unittests/Index.cpp
create mode 100644 compiler/mir/unittests/NodeReplacer.cpp
create mode 100644 compiler/mir/unittests/Operation.cpp
create mode 100644 compiler/mir/unittests/ShapeInference.cpp
create mode 100644 compiler/mir/unittests/ShapeRange.cpp
create mode 100644 compiler/mir/unittests/TensorVariant.cpp
create mode 100644 compiler/mir2loco/CMakeLists.txt
create mode 100644 compiler/mir2loco/include/mir2loco.h
create mode 100644 compiler/mir2loco/requires.cmake
create mode 100644 compiler/mir2loco/src/mir2loco.cpp
create mode 100644 compiler/mir2loco/src/mir2loco.test.cpp
create mode 100644 compiler/moco-log/CMakeLists.txt
create mode 100644 compiler/moco-log/README.md
create mode 100644 compiler/moco-log/include/moco/Log.h
create mode 100644 compiler/moco-log/include/moco/LoggingContext.h
create mode 100644 compiler/moco-log/requires.cmake
create mode 100644 compiler/moco-log/src/Log.cpp
create mode 100644 compiler/moco-log/src/LoggingContext.cpp
create mode 100644 compiler/moco-tf/CMakeLists.txt
create mode 100644 compiler/moco-tf/README.md
create mode 100644 compiler/moco-tf/doc/Conversion.md
create mode 100644 compiler/moco-tf/include/moco/tf/Frontend.h
create mode 100644 compiler/moco-tf/requires.cmake
create mode 100644 compiler/moco-tf/src/BroadcastHelper.cpp
create mode 100644 compiler/moco-tf/src/BroadcastHelper.h
create mode 100644 compiler/moco-tf/src/BroadcastHelper.test.cpp
create mode 100644 compiler/moco-tf/src/CanonicalEltwiseInputConnector.cpp
create mode 100644 compiler/moco-tf/src/CanonicalEltwiseInputConnector.h
create mode 100644 compiler/moco-tf/src/Canonicalization/AddCanonicalizer.cpp
create mode 100644 compiler/moco-tf/src/Canonicalization/AddCanonicalizer.h
create mode 100644 compiler/moco-tf/src/Canonicalization/AvgPoolCanonicalizer.cpp
create mode 100644 compiler/moco-tf/src/Canonicalization/AvgPoolCanonicalizer.h
create mode 100644 compiler/moco-tf/src/Canonicalization/BiasAddCanonicalizer.cpp
create mode 100644 compiler/moco-tf/src/Canonicalization/BiasAddCanonicalizer.h
create mode 100644 compiler/moco-tf/src/Canonicalization/ConcatV2Canonicalizer.cpp
create mode 100644 compiler/moco-tf/src/Canonicalization/ConcatV2Canonicalizer.h
create mode 100644 compiler/moco-tf/src/Canonicalization/ConstCanonicalizer.cpp
create mode 100644 compiler/moco-tf/src/Canonicalization/ConstCanonicalizer.h
create mode 100644 compiler/moco-tf/src/Canonicalization/Conv2DBackpropInputCanonicalizer.cpp
create mode 100644 compiler/moco-tf/src/Canonicalization/Conv2DBackpropInputCanonicalizer.h
create mode 100644 compiler/moco-tf/src/Canonicalization/Conv2DCanonicalizer.cpp
create mode 100644 compiler/moco-tf/src/Canonicalization/Conv2DCanonicalizer.h
create mode 100644 compiler/moco-tf/src/Canonicalization/DepthwiseConv2dNativeCanonicalizer.cpp
create mode 100644 compiler/moco-tf/src/Canonicalization/DepthwiseConv2dNativeCanonicalizer.h
create mode 100644 compiler/moco-tf/src/Canonicalization/IdentityCanonicalizer.cpp
create mode 100644 compiler/moco-tf/src/Canonicalization/IdentityCanonicalizer.h
create mode 100644 compiler/moco-tf/src/Canonicalization/MaxPoolCanonicalizer.cpp
create mode 100644 compiler/moco-tf/src/Canonicalization/MaxPoolCanonicalizer.h
create mode 100644 compiler/moco-tf/src/Canonicalization/MaximumCanonicalizer.cpp
create mode 100644 compiler/moco-tf/src/Canonicalization/MaximumCanonicalizer.h
create mode 100644 compiler/moco-tf/src/Canonicalization/MeanCanonicalizer.cpp
create mode 100644 compiler/moco-tf/src/Canonicalization/MeanCanonicalizer.h
create mode 100644 compiler/moco-tf/src/Canonicalization/MulCanonicalizer.cpp
create mode 100644 compiler/moco-tf/src/Canonicalization/MulCanonicalizer.h
create mode 100644 compiler/moco-tf/src/Canonicalization/PadCanonicalizer.cpp
create mode 100644 compiler/moco-tf/src/Canonicalization/PadCanonicalizer.h
create mode 100644 compiler/moco-tf/src/Canonicalization/PlaceholderCanonicalizer.cpp
create mode 100644 compiler/moco-tf/src/Canonicalization/PlaceholderCanonicalizer.h
create mode 100644 compiler/moco-tf/src/Canonicalization/RealDivCanonicalizer.cpp
create mode 100644 compiler/moco-tf/src/Canonicalization/RealDivCanonicalizer.h
create mode 100644 compiler/moco-tf/src/Canonicalization/Relu6Canonicalizer.cpp
create mode 100644 compiler/moco-tf/src/Canonicalization/Relu6Canonicalizer.h
create mode 100644 compiler/moco-tf/src/Canonicalization/ReluCanonicalizer.cpp
create mode 100644 compiler/moco-tf/src/Canonicalization/ReluCanonicalizer.h
create mode 100644 compiler/moco-tf/src/Canonicalization/ReshapeCanonicalizer.cpp
create mode 100644 compiler/moco-tf/src/Canonicalization/ReshapeCanonicalizer.h
create mode 100644 compiler/moco-tf/src/Canonicalization/RsqrtCanonicalizer.cpp
create mode 100644 compiler/moco-tf/src/Canonicalization/RsqrtCanonicalizer.h
create mode 100644 compiler/moco-tf/src/Canonicalization/SoftmaxCanonicalizer.cpp
create mode 100644 compiler/moco-tf/src/Canonicalization/SoftmaxCanonicalizer.h
create mode 100644 compiler/moco-tf/src/Canonicalization/SqrtCanonicalizer.cpp
create mode 100644 compiler/moco-tf/src/Canonicalization/SqrtCanonicalizer.h
create mode 100644 compiler/moco-tf/src/Canonicalization/SqueezeCanonicalizer.cpp
create mode 100644 compiler/moco-tf/src/Canonicalization/SqueezeCanonicalizer.h
create mode 100644 compiler/moco-tf/src/Canonicalization/StopGradientCanonicalizer.cpp
create mode 100644 compiler/moco-tf/src/Canonicalization/StopGradientCanonicalizer.h
create mode 100644 compiler/moco-tf/src/Canonicalization/SubCanonicalizer.cpp
create mode 100644 compiler/moco-tf/src/Canonicalization/SubCanonicalizer.h
create mode 100644 compiler/moco-tf/src/Canonicalization/TFPushCanonicalizer.cpp
create mode 100644 compiler/moco-tf/src/Canonicalization/TFPushCanonicalizer.h
create mode 100644 compiler/moco-tf/src/Canonicalization/TanhCanonicalizer.cpp
create mode 100644 compiler/moco-tf/src/Canonicalization/TanhCanonicalizer.h
create mode 100644 compiler/moco-tf/src/Canonicalizer.cpp
create mode 100644 compiler/moco-tf/src/Canonicalizer.h
create mode 100644 compiler/moco-tf/src/Canonicalizer.test.cpp
create mode 100644 compiler/moco-tf/src/CodecHelper.h
create mode 100644 compiler/moco-tf/src/Convert.cpp
create mode 100644 compiler/moco-tf/src/Convert.h
create mode 100644 compiler/moco-tf/src/Convert.test.cpp
create mode 100644 compiler/moco-tf/src/Frontend.cpp
create mode 100644 compiler/moco-tf/src/Frontend.test.cpp
create mode 100644 compiler/moco-tf/src/Knob.cpp
create mode 100644 compiler/moco-tf/src/Knob.h
create mode 100644 compiler/moco-tf/src/Knob.lst
create mode 100644 compiler/moco-tf/src/LogHelper.cpp
create mode 100644 compiler/moco-tf/src/LogHelper.h
create mode 100644 compiler/moco-tf/src/Op/COpCall.cpp
create mode 100644 compiler/moco-tf/src/Op/COpCall.h
create mode 100644 compiler/moco-tf/src/Op/COpCall.test.cpp
create mode 100644 compiler/moco-tf/src/Optimizer.cpp
create mode 100644 compiler/moco-tf/src/Optimizer.h
create mode 100644 compiler/moco-tf/src/Optimizer.test.cpp
create mode 100644 compiler/moco-tf/src/ProgressReporter.cpp
create mode 100644 compiler/moco-tf/src/ProgressReporter.h
create mode 100644 compiler/moco-tf/src/SimpleNodeTransform.h
create mode 100644 compiler/moco-tf/src/SimpleNodeTransform.test.cpp
create mode 100644 compiler/moco-tf/src/TFEltwiseBinaryCanonicalzeHelper.h
create mode 100644 compiler/moco-tf/src/TFFormattedGraph.cpp
create mode 100644 compiler/moco-tf/src/TFFormattedGraph.h
create mode 100644 compiler/moco-tf/src/TFOptimizer.cpp
create mode 100644 compiler/moco-tf/src/TFOptimizer.h
create mode 100644 compiler/moco-tf/src/TFOptimizer.test.cpp
create mode 100644 compiler/moco-tf/src/TFReduceCanonicalzeHelper.h
create mode 100644 compiler/moco-tf/src/TestHelper.h
create mode 100644 compiler/moco-tf/src/TestHelper.test.cpp
create mode 100644 compiler/moco-tf/src/Transform.cpp
create mode 100644 compiler/moco-tf/src/Transform.h
create mode 100644 compiler/moco-tf/src/Transform.test.cpp
create mode 100644 compiler/moco-tf/src/Transforms.h
create mode 100644 compiler/moco-tf/src/Transforms/ShapeInferencePass.cpp
create mode 100644 compiler/moco-tf/src/Transforms/ShapeInferencePass.h
create mode 100644 compiler/moco-tf/src/Transforms/TypeInferencePass.cpp
create mode 100644 compiler/moco-tf/src/Transforms/TypeInferencePass.h
create mode 100644 compiler/moco-value-pbtxt-test/.gitignore
create mode 100644 compiler/moco-value-pbtxt-test/CMakeLists.txt
create mode 100644 compiler/moco-value-pbtxt-test/README.md
create mode 100644 compiler/moco-value-pbtxt-test/requires.cmake
create mode 100755 compiler/moco-value-pbtxt-test/runall.sh
create mode 100644 compiler/moco-value-pbtxt-test/test.lst
create mode 100644 compiler/moco/CMakeLists.txt
create mode 100644 compiler/moco/README.md
create mode 100644 compiler/moco/import/CMakeLists.txt
create mode 100644 compiler/moco/import/README.md
create mode 100644 compiler/moco/import/include/moco/GraphHelper.h
create mode 100644 compiler/moco/import/include/moco/Import/GraphBuilder.h
create mode 100644 compiler/moco/import/include/moco/Import/GraphBuilderContext.h
create mode 100644 compiler/moco/import/include/moco/Import/GraphBuilderRegistry.h
create mode 100644 compiler/moco/import/include/moco/Import/ModelSignature.h
create mode 100644 compiler/moco/import/include/moco/Import/Nodes.h
create mode 100644 compiler/moco/import/include/moco/Import/Nodes/Add.h
create mode 100644 compiler/moco/import/include/moco/Import/Nodes/AvgPool.h
create mode 100644 compiler/moco/import/include/moco/Import/Nodes/BiasAdd.h
create mode 100644 compiler/moco/import/include/moco/Import/Nodes/Concat.h
create mode 100644 compiler/moco/import/include/moco/Import/Nodes/Const.h
create mode 100644 compiler/moco/import/include/moco/Import/Nodes/Conv2D.h
create mode 100644 compiler/moco/import/include/moco/Import/Nodes/Conv2DBackpropInput.h
create mode 100644 compiler/moco/import/include/moco/Import/Nodes/DepthwiseConv2dNative.h
create mode 100644 compiler/moco/import/include/moco/Import/Nodes/FakeQuantWithMinMaxVars.h
create mode 100644 compiler/moco/import/include/moco/Import/Nodes/FusedBatchNorm.h
create mode 100644 compiler/moco/import/include/moco/Import/Nodes/Identity.h
create mode 100644 compiler/moco/import/include/moco/Import/Nodes/MaxPool.h
create mode 100644 compiler/moco/import/include/moco/Import/Nodes/Maximum.h
create mode 100644 compiler/moco/import/include/moco/Import/Nodes/Mean.h
create mode 100644 compiler/moco/import/include/moco/Import/Nodes/Mul.h
create mode 100644 compiler/moco/import/include/moco/Import/Nodes/Pack.h
create mode 100644 compiler/moco/import/include/moco/Import/Nodes/Pad.h
create mode 100644 compiler/moco/import/include/moco/Import/Nodes/Placeholder.h
create mode 100644 compiler/moco/import/include/moco/Import/Nodes/RealDiv.h
create mode 100644 compiler/moco/import/include/moco/Import/Nodes/Relu.h
create mode 100644 compiler/moco/import/include/moco/Import/Nodes/Relu6.h
create mode 100644 compiler/moco/import/include/moco/Import/Nodes/Reshape.h
create mode 100644 compiler/moco/import/include/moco/Import/Nodes/Rsqrt.h
create mode 100644 compiler/moco/import/include/moco/Import/Nodes/Shape.h
create mode 100644 compiler/moco/import/include/moco/Import/Nodes/Softmax.h
create mode 100644 compiler/moco/import/include/moco/Import/Nodes/Sqrt.h
create mode 100644 compiler/moco/import/include/moco/Import/Nodes/SquaredDifference.h
create mode 100644 compiler/moco/import/include/moco/Import/Nodes/Squeeze.h
create mode 100644 compiler/moco/import/include/moco/Import/Nodes/StopGradient.h
create mode 100644 compiler/moco/import/include/moco/Import/Nodes/StridedSlice.h
create mode 100644 compiler/moco/import/include/moco/Import/Nodes/Sub.h
create mode 100644 compiler/moco/import/include/moco/Import/Nodes/Tanh.h
create mode 100644 compiler/moco/import/include/moco/Importer.h
create mode 100644 compiler/moco/import/src/Convert.cpp
create mode 100644 compiler/moco/import/src/Convert.h
create mode 100644 compiler/moco/import/src/GraphBuilderContext.cpp
create mode 100644 compiler/moco/import/src/GraphBuilderContext.test.cpp
create mode 100644 compiler/moco/import/src/GraphBuilderRegistry.cpp
create mode 100644 compiler/moco/import/src/Importer.cpp
create mode 100644 compiler/moco/import/src/Importer.test.cpp
create mode 100644 compiler/moco/import/src/ModelSignature.cpp
create mode 100644 compiler/moco/import/src/Nodes/Add.cpp
create mode 100644 compiler/moco/import/src/Nodes/Add.test.cpp
create mode 100644 compiler/moco/import/src/Nodes/AvgPool.cpp
create mode 100644 compiler/moco/import/src/Nodes/AvgPool.test.cpp
create mode 100644 compiler/moco/import/src/Nodes/BiasAdd.cpp
create mode 100644 compiler/moco/import/src/Nodes/BiasAdd.test.cpp
create mode 100644 compiler/moco/import/src/Nodes/Concat.cpp
create mode 100644 compiler/moco/import/src/Nodes/Concat.test.cpp
create mode 100644 compiler/moco/import/src/Nodes/Const.cpp
create mode 100644 compiler/moco/import/src/Nodes/Const.test.cpp
create mode 100644 compiler/moco/import/src/Nodes/Conv2D.cpp
create mode 100644 compiler/moco/import/src/Nodes/Conv2D.test.cpp
create mode 100644 compiler/moco/import/src/Nodes/Conv2DBackpropInput.cpp
create mode 100644 compiler/moco/import/src/Nodes/Conv2DBackpropInput.test.cpp
create mode 100644 compiler/moco/import/src/Nodes/DepthwiseConv2dNative.cpp
create mode 100644 compiler/moco/import/src/Nodes/DepthwiseConv2dNative.test.cpp
create mode 100644 compiler/moco/import/src/Nodes/FakeQuantWithMinMaxVars.cpp
create mode 100644 compiler/moco/import/src/Nodes/FakeQuantWithMinMaxVars.test.cpp
create mode 100644 compiler/moco/import/src/Nodes/FusedBatchNorm.cpp
create mode 100644 compiler/moco/import/src/Nodes/FusedBatchNorm.test.cpp
create mode 100644 compiler/moco/import/src/Nodes/Identity.cpp
create mode 100644 compiler/moco/import/src/Nodes/MaxPool.cpp
create mode 100644 compiler/moco/import/src/Nodes/MaxPool.test.cpp
create mode 100644 compiler/moco/import/src/Nodes/Maximum.cpp
create mode 100644 compiler/moco/import/src/Nodes/Maximum.test.cpp
create mode 100644 compiler/moco/import/src/Nodes/Mean.cpp
create mode 100644 compiler/moco/import/src/Nodes/Mean.test.cpp
create mode 100644 compiler/moco/import/src/Nodes/Mul.cpp
create mode 100644 compiler/moco/import/src/Nodes/Mul.test.cpp
create mode 100644 compiler/moco/import/src/Nodes/Pack.cpp
create mode 100644 compiler/moco/import/src/Nodes/Pack.test.cpp
create mode 100644 compiler/moco/import/src/Nodes/Pad.cpp
create mode 100644 compiler/moco/import/src/Nodes/Pad.test.cpp
create mode 100644 compiler/moco/import/src/Nodes/Placeholder.cpp
create mode 100644 compiler/moco/import/src/Nodes/Placeholder.test.cpp
create mode 100644 compiler/moco/import/src/Nodes/RealDiv.cpp
create mode 100644 compiler/moco/import/src/Nodes/RealDiv.test.cpp
create mode 100644 compiler/moco/import/src/Nodes/Relu.cpp
create mode 100644 compiler/moco/import/src/Nodes/Relu.test.cpp
create mode 100644 compiler/moco/import/src/Nodes/Relu6.cpp
create mode 100644 compiler/moco/import/src/Nodes/Relu6.test.cpp
create mode 100644 compiler/moco/import/src/Nodes/Reshape.cpp
create mode 100644 compiler/moco/import/src/Nodes/Reshape.test.cpp
create mode 100644 compiler/moco/import/src/Nodes/Rsqrt.cpp
create mode 100644 compiler/moco/import/src/Nodes/Rsqrt.test.cpp
create mode 100644 compiler/moco/import/src/Nodes/Shape.cpp
create mode 100644 compiler/moco/import/src/Nodes/Shape.test.cpp
create mode 100644 compiler/moco/import/src/Nodes/Softmax.cpp
create mode 100644 compiler/moco/import/src/Nodes/Softmax.test.cpp
create mode 100644 compiler/moco/import/src/Nodes/Sqrt.cpp
create mode 100644 compiler/moco/import/src/Nodes/Sqrt.test.cpp
create mode 100644 compiler/moco/import/src/Nodes/SquaredDifference.cpp
create mode 100644 compiler/moco/import/src/Nodes/SquaredDifference.test.cpp
create mode 100644 compiler/moco/import/src/Nodes/Squeeze.cpp
create mode 100644 compiler/moco/import/src/Nodes/Squeeze.test.cpp
create mode 100644 compiler/moco/import/src/Nodes/StopGradient.cpp
create mode 100644 compiler/moco/import/src/Nodes/StopGradient.test.cpp
create mode 100644 compiler/moco/import/src/Nodes/StridedSlice.cpp
create mode 100644 compiler/moco/import/src/Nodes/StridedSlice.test.cpp
create mode 100644 compiler/moco/import/src/Nodes/Sub.cpp
create mode 100644 compiler/moco/import/src/Nodes/Sub.test.cpp
create mode 100644 compiler/moco/import/src/Nodes/Tanh.cpp
create mode 100644 compiler/moco/import/src/Nodes/Tanh.test.cpp
create mode 100644 compiler/moco/import/src/TestHelper.h
create mode 100644 compiler/moco/import/src/TestHelper.test.cpp
create mode 100644 compiler/moco/lang/CMakeLists.txt
create mode 100644 compiler/moco/lang/README.md
create mode 100644 compiler/moco/lang/include/moco/IR/Nodes/TFAdd.h
create mode 100644 compiler/moco/lang/include/moco/IR/Nodes/TFAvgPool.h
create mode 100644 compiler/moco/lang/include/moco/IR/Nodes/TFBiasAdd.h
create mode 100644 compiler/moco/lang/include/moco/IR/Nodes/TFConcatV2.h
create mode 100644 compiler/moco/lang/include/moco/IR/Nodes/TFConst.h
create mode 100644 compiler/moco/lang/include/moco/IR/Nodes/TFConv2D.h
create mode 100644 compiler/moco/lang/include/moco/IR/Nodes/TFConv2DBackpropInput.h
create mode 100644 compiler/moco/lang/include/moco/IR/Nodes/TFDepthwiseConv2dNative.h
create mode 100644 compiler/moco/lang/include/moco/IR/Nodes/TFFakeQuantWithMinMaxVars.h
create mode 100644 compiler/moco/lang/include/moco/IR/Nodes/TFFusedBatchNorm.h
create mode 100644 compiler/moco/lang/include/moco/IR/Nodes/TFIdentity.h
create mode 100644 compiler/moco/lang/include/moco/IR/Nodes/TFMaxPool.h
create mode 100644 compiler/moco/lang/include/moco/IR/Nodes/TFMaximum.h
create mode 100644 compiler/moco/lang/include/moco/IR/Nodes/TFMean.h
create mode 100644 compiler/moco/lang/include/moco/IR/Nodes/TFMul.h
create mode 100644 compiler/moco/lang/include/moco/IR/Nodes/TFPack.h
create mode 100644 compiler/moco/lang/include/moco/IR/Nodes/TFPad.h
create mode 100644 compiler/moco/lang/include/moco/IR/Nodes/TFPlaceholder.h
create mode 100644 compiler/moco/lang/include/moco/IR/Nodes/TFPush.h
create mode 100644 compiler/moco/lang/include/moco/IR/Nodes/TFRealDiv.h
create mode 100644 compiler/moco/lang/include/moco/IR/Nodes/TFRelu.h
create mode 100644 compiler/moco/lang/include/moco/IR/Nodes/TFRelu6.h
create mode 100644 compiler/moco/lang/include/moco/IR/Nodes/TFReshape.h
create mode 100644 compiler/moco/lang/include/moco/IR/Nodes/TFRsqrt.h
create mode 100644 compiler/moco/lang/include/moco/IR/Nodes/TFShape.h
create mode 100644 compiler/moco/lang/include/moco/IR/Nodes/TFSoftmax.h
create mode 100644 compiler/moco/lang/include/moco/IR/Nodes/TFSqrt.h
create mode 100644 compiler/moco/lang/include/moco/IR/Nodes/TFSquaredDifference.h
create mode 100644 compiler/moco/lang/include/moco/IR/Nodes/TFSqueeze.h
create mode 100644 compiler/moco/lang/include/moco/IR/Nodes/TFStopGradient.h
create mode 100644 compiler/moco/lang/include/moco/IR/Nodes/TFStridedSlice.h
create mode 100644 compiler/moco/lang/include/moco/IR/Nodes/TFSub.h
create mode 100644 compiler/moco/lang/include/moco/IR/Nodes/TFTanh.h
create mode 100644 compiler/moco/lang/include/moco/IR/TFDataLayout.h
create mode 100644 compiler/moco/lang/include/moco/IR/TFDialect.h
create mode 100644 compiler/moco/lang/include/moco/IR/TFNode.h
create mode 100644 compiler/moco/lang/include/moco/IR/TFNodeDecl.h
create mode 100644 compiler/moco/lang/include/moco/IR/TFNodeImpl.h
create mode 100644 compiler/moco/lang/include/moco/IR/TFNodeVisitor.forward.h
create mode 100644 compiler/moco/lang/include/moco/IR/TFNodeVisitor.h
create mode 100644 compiler/moco/lang/include/moco/IR/TFNodes.h
create mode 100644 compiler/moco/lang/include/moco/IR/TFNodes.lst
create mode 100644 compiler/moco/lang/include/moco/IR/TFOpcode.h
create mode 100644 compiler/moco/lang/include/moco/IR/TFPadding.h
create mode 100644 compiler/moco/lang/include/moco/IR/VariadicArityNode.h
create mode 100644 compiler/moco/lang/include/moco/Names.h
create mode 100644 compiler/moco/lang/src/IR/Nodes/TFAdd.test.cpp
create mode 100644 compiler/moco/lang/src/IR/Nodes/TFAvgPool.test.cpp
create mode 100644 compiler/moco/lang/src/IR/Nodes/TFBiasAdd.test.cpp
create mode 100644 compiler/moco/lang/src/IR/Nodes/TFConcatV2.test.cpp
create mode 100644 compiler/moco/lang/src/IR/Nodes/TFConst.cpp
create mode 100644 compiler/moco/lang/src/IR/Nodes/TFConst.test.cpp
create mode 100644 compiler/moco/lang/src/IR/Nodes/TFConv2D.test.cpp
create mode 100644 compiler/moco/lang/src/IR/Nodes/TFConv2DBackpropInput.test.cpp
create mode 100644 compiler/moco/lang/src/IR/Nodes/TFDepthwiseConv2dNative.test.cpp
create mode 100644 compiler/moco/lang/src/IR/Nodes/TFFakeQuantWithMinMaxVars.test.cpp
create mode 100644 compiler/moco/lang/src/IR/Nodes/TFFusedBatchNorm.test.cpp
create mode 100644 compiler/moco/lang/src/IR/Nodes/TFIdentity.test.cpp
create mode 100644 compiler/moco/lang/src/IR/Nodes/TFMaxPool.test.cpp
create mode 100644 compiler/moco/lang/src/IR/Nodes/TFMaximum.test.cpp
create mode 100644 compiler/moco/lang/src/IR/Nodes/TFMean.test.cpp
create mode 100644 compiler/moco/lang/src/IR/Nodes/TFMul.test.cpp
create mode 100644 compiler/moco/lang/src/IR/Nodes/TFPack.test.cpp
create mode 100644 compiler/moco/lang/src/IR/Nodes/TFPad.test.cpp
create mode 100644 compiler/moco/lang/src/IR/Nodes/TFPlaceholder.test.cpp
create mode 100644 compiler/moco/lang/src/IR/Nodes/TFRealDiv.test.cpp
create mode 100644 compiler/moco/lang/src/IR/Nodes/TFRelu.test.cpp
create mode 100644 compiler/moco/lang/src/IR/Nodes/TFRelu6.test.cpp
create mode 100644 compiler/moco/lang/src/IR/Nodes/TFReshape.test.cpp
create mode 100644 compiler/moco/lang/src/IR/Nodes/TFRsqrt.test.cpp
create mode 100644 compiler/moco/lang/src/IR/Nodes/TFShape.test.cpp
create mode 100644 compiler/moco/lang/src/IR/Nodes/TFSoftmax.test.cpp
create mode 100644 compiler/moco/lang/src/IR/Nodes/TFSqrt.test.cpp
create mode 100644 compiler/moco/lang/src/IR/Nodes/TFSquaredDifference.test.cpp
create mode 100644 compiler/moco/lang/src/IR/Nodes/TFSqueeze.test.cpp
create mode 100644 compiler/moco/lang/src/IR/Nodes/TFStopGradient.test.cpp
create mode 100644 compiler/moco/lang/src/IR/Nodes/TFStridedSlice.test.cpp
create mode 100644 compiler/moco/lang/src/IR/Nodes/TFSub.test.cpp
create mode 100644 compiler/moco/lang/src/IR/Nodes/TFTanh.test.cpp
create mode 100644 compiler/moco/lang/src/IR/TFDialect.cpp
create mode 100644 compiler/moco/lang/src/IR/TFDialect.test.cpp
create mode 100644 compiler/moco/lang/src/IR/TFNode.cpp
create mode 100644 compiler/moco/lang/src/IR/TFNode.test.cpp
create mode 100644 compiler/moco/lang/src/IR/VariadicArityNode.test.cpp
create mode 100644 compiler/moco/pass/CMakeLists.txt
create mode 100644 compiler/moco/pass/README.md
create mode 100644 compiler/moco/pass/include/moco/Pass/Passes.h
create mode 100644 compiler/moco/pass/include/moco/Pass/Passes/ConstantFoldAdd.h
create mode 100644 compiler/moco/pass/include/moco/Pass/Passes/ConstantFoldMul.h
create mode 100644 compiler/moco/pass/include/moco/Pass/Passes/ConstantFoldPack.h
create mode 100644 compiler/moco/pass/include/moco/Pass/Passes/ConstantFoldStridedSlice.h
create mode 100644 compiler/moco/pass/include/moco/Pass/Passes/FuseBinaryIntoPreceding.h
create mode 100644 compiler/moco/pass/include/moco/Pass/Passes/RemoveTFIdentityNode.h
create mode 100644 compiler/moco/pass/include/moco/Pass/Passes/ResolveConstantShape.h
create mode 100644 compiler/moco/pass/include/moco/Pass/Passes/ResolveFusedBatchNorm.h
create mode 100644 compiler/moco/pass/include/moco/Pass/Passes/ResolveReshapeWildcardDim.h
create mode 100644 compiler/moco/pass/include/moco/Pass/Passes/ResolveSquaredDifference.h
create mode 100644 compiler/moco/pass/include/moco/Pass/Passes/SqueezeReduceNode.h
create mode 100644 compiler/moco/pass/src/ConstantFoldAdd.test.cpp
create mode 100644 compiler/moco/pass/src/ConstantFoldHelper.cpp
create mode 100644 compiler/moco/pass/src/ConstantFoldHelper.h
create mode 100644 compiler/moco/pass/src/ConstantFoldMul.test.cpp
create mode 100644 compiler/moco/pass/src/ConstantFoldPack.test.cpp
create mode 100644 compiler/moco/pass/src/ConstantFoldStridedSlice.test.cpp
create mode 100644 compiler/moco/pass/src/Passes/ConstantFoldAdd.cpp
create mode 100644 compiler/moco/pass/src/Passes/ConstantFoldMul.cpp
create mode 100644 compiler/moco/pass/src/Passes/ConstantFoldPack.cpp
create mode 100644 compiler/moco/pass/src/Passes/ConstantFoldStridedSlice.cpp
create mode 100644 compiler/moco/pass/src/Passes/FuseBinaryIntoPreceding.cpp
create mode 100644 compiler/moco/pass/src/Passes/RemoveTFIdentityNode.cpp
create mode 100644 compiler/moco/pass/src/Passes/ResolveConstantShape.cpp
create mode 100644 compiler/moco/pass/src/Passes/ResolveFusedBatchNorm.cpp
create mode 100644 compiler/moco/pass/src/Passes/ResolveReshapeWildcardDim.cpp
create mode 100644 compiler/moco/pass/src/Passes/ResolveSquaredDifference.cpp
create mode 100644 compiler/moco/pass/src/Passes/SqueezeReduceNode.cpp
create mode 100644 compiler/moco/pass/src/TensorPackEnumerator.cpp
create mode 100644 compiler/moco/pass/src/TensorPackEnumerator.h
create mode 100644 compiler/moco/pass/src/TensorSliceEnumerator.cpp
create mode 100644 compiler/moco/pass/src/TensorSliceEnumerator.h
create mode 100644 compiler/moco/pass/src/TensorSliceEnumerator.test.cpp
create mode 100644 compiler/moco/pass/src/TestHelper.h
create mode 100644 compiler/moco/pass/src/TestHelper.test.cpp
create mode 100644 compiler/moco/requires.cmake
create mode 100644 compiler/moco/service/CMakeLists.txt
create mode 100644 compiler/moco/service/README.md
create mode 100644 compiler/moco/service/include/moco/Service/TFShapeInferenceRule.h
create mode 100644 compiler/moco/service/include/moco/Service/TFTypeInferenceRule.h
create mode 100644 compiler/moco/service/src/Service/TFShapeInferenceRule.cpp
create mode 100644 compiler/moco/service/src/Service/TFShapeInferenceRule.test.cpp
create mode 100644 compiler/moco/service/src/Service/TFTypeInferenceRule.cpp
create mode 100644 compiler/moco/service/src/TestHelper.h
create mode 100644 compiler/moco/service/src/TestHelper.test.cpp
create mode 100644 compiler/moco/support/CMakeLists.txt
create mode 100644 compiler/moco/support/README.md
create mode 100644 compiler/moco/support/include/moco/Support/NodeAs.h
create mode 100644 compiler/moco/support/include/moco/Support/TFShapeInferenceHelper.h
create mode 100644 compiler/moco/support/src/TFShapeInferenceHelper.cpp
create mode 100644 compiler/morph/CMakeLists.txt
create mode 100644 compiler/morph/README.md
create mode 100644 compiler/morph/include/morph/caffe.h
create mode 100644 compiler/morph/include/morph/dims.h
create mode 100644 compiler/morph/include/morph/nnapi.h
create mode 100644 compiler/morph/include/morph/tflite.h
create mode 100644 compiler/morph/requires.cmake
create mode 100644 compiler/morph/src/caffe.cpp
create mode 100644 compiler/morph/src/caffe.test.cpp
create mode 100644 compiler/morph/src/dims.cpp
create mode 100644 compiler/morph/src/dims.test.cpp
create mode 100644 compiler/morph/src/nnapi.cpp
create mode 100644 compiler/morph/src/nnapi.test.cpp
create mode 100644 compiler/morph/src/tflite.cpp
create mode 100644 compiler/morph/src/tflite.test.cpp
create mode 100644 compiler/nest/CMakeLists.txt
create mode 100644 compiler/nest/README.md
create mode 100644 compiler/nest/core/CMakeLists.txt
create mode 100644 compiler/nest/core/examples/conv2d.cpp
create mode 100644 compiler/nest/core/include/nest/Block.h
create mode 100644 compiler/nest/core/include/nest/Bound.h
create mode 100644 compiler/nest/core/include/nest/Closure.h
create mode 100644 compiler/nest/core/include/nest/Domain.h
create mode 100644 compiler/nest/core/include/nest/DomainContext.h
create mode 100644 compiler/nest/core/include/nest/DomainID.h
create mode 100644 compiler/nest/core/include/nest/DomainInfo.h
create mode 100644 compiler/nest/core/include/nest/Expr.h
create mode 100644 compiler/nest/core/include/nest/FV.h
create mode 100644 compiler/nest/core/include/nest/Level.h
create mode 100644 compiler/nest/core/include/nest/Module.h
create mode 100644 compiler/nest/core/include/nest/Ret.h
create mode 100644 compiler/nest/core/include/nest/Schedule.h
create mode 100644 compiler/nest/core/include/nest/Stmt.h
create mode 100644 compiler/nest/core/include/nest/Var.h
create mode 100644 compiler/nest/core/include/nest/VarContext.h
create mode 100644 compiler/nest/core/include/nest/VarID.h
create mode 100644 compiler/nest/core/include/nest/expr/AddNode.h
create mode 100644 compiler/nest/core/include/nest/expr/DerefNode.h
create mode 100644 compiler/nest/core/include/nest/expr/Forward.h
create mode 100644 compiler/nest/core/include/nest/expr/Macro.h
create mode 100644 compiler/nest/core/include/nest/expr/MulNode.h
create mode 100644 compiler/nest/core/include/nest/expr/Node.def
create mode 100644 compiler/nest/core/include/nest/expr/Node.h
create mode 100644 compiler/nest/core/include/nest/expr/Subscript.h
create mode 100644 compiler/nest/core/include/nest/expr/VarNode.h
create mode 100644 compiler/nest/core/include/nest/expr/Visitor.h
create mode 100644 compiler/nest/core/include/nest/stmt/Forward.h
create mode 100644 compiler/nest/core/include/nest/stmt/Macro.h
create mode 100644 compiler/nest/core/include/nest/stmt/Node.def
create mode 100644 compiler/nest/core/include/nest/stmt/Node.h
create mode 100644 compiler/nest/core/include/nest/stmt/PushNode.h
create mode 100644 compiler/nest/core/include/nest/stmt/Visitor.h
create mode 100644 compiler/nest/core/src/Block.test.cpp
create mode 100644 compiler/nest/core/src/Bound.test.cpp
create mode 100644 compiler/nest/core/src/Closure.cpp
create mode 100644 compiler/nest/core/src/Closure.test.cpp
create mode 100644 compiler/nest/core/src/Domain.test.cpp
create mode 100644 compiler/nest/core/src/DomainContext.cpp
create mode 100644 compiler/nest/core/src/DomainContext.test.cpp
create mode 100644 compiler/nest/core/src/DomainID.cpp
create mode 100644 compiler/nest/core/src/DomainID.test.cpp
create mode 100644 compiler/nest/core/src/DomainInfo.test.cpp
create mode 100644 compiler/nest/core/src/Expr.cpp
create mode 100644 compiler/nest/core/src/Expr.test.cpp
create mode 100644 compiler/nest/core/src/FV.cpp
create mode 100644 compiler/nest/core/src/FV.test.cpp
create mode 100644 compiler/nest/core/src/Level.cpp
create mode 100644 compiler/nest/core/src/Level.test.cpp
create mode 100644 compiler/nest/core/src/Module.cpp
create mode 100644 compiler/nest/core/src/Module.test.cpp
create mode 100644 compiler/nest/core/src/Ret.test.cpp
create mode 100644 compiler/nest/core/src/Schedule.cpp
create mode 100644 compiler/nest/core/src/Schedule.test.cpp
create mode 100644 compiler/nest/core/src/Var.cpp
create mode 100644 compiler/nest/core/src/Var.test.cpp
create mode 100644 compiler/nest/core/src/VarContext.cpp
create mode 100644 compiler/nest/core/src/VarContext.test.cpp
create mode 100644 compiler/nest/core/src/VarID.cpp
create mode 100644 compiler/nest/core/src/VarID.test.cpp
create mode 100644 compiler/nest/core/src/expr/AddNode.test.cpp
create mode 100644 compiler/nest/core/src/expr/DerefNode.test.cpp
create mode 100644 compiler/nest/core/src/expr/Macro.cpp
create mode 100644 compiler/nest/core/src/expr/MulNode.test.cpp
create mode 100644 compiler/nest/core/src/expr/Node.cpp
create mode 100644 compiler/nest/core/src/expr/Subscript.test.cpp
create mode 100644 compiler/nest/core/src/expr/VarNode.test.cpp
create mode 100644 compiler/nest/core/src/expr/Visitor.cpp
create mode 100644 compiler/nest/core/src/stmt/Macro.cpp
create mode 100644 compiler/nest/core/src/stmt/Node.cpp
create mode 100644 compiler/nest/core/src/stmt/PushNode.test.cpp
create mode 100644 compiler/nest/core/src/stmt/Visitor.cpp
create mode 100644 compiler/nike/CMakeLists.txt
create mode 100644 compiler/nike/README.md
create mode 100644 compiler/nike/include/nike/AbsoluteEpsilonEqual.h
create mode 100644 compiler/nike/include/nike/RelativeEpsilonEqual.h
create mode 100644 compiler/nike/src/AbsoluteEpsilonEqual.cpp
create mode 100644 compiler/nike/src/AbsoluteEpsilonEqual.test.cpp
create mode 100644 compiler/nike/src/RelativeEpsilonEqual.cpp
create mode 100644 compiler/nike/src/RelativeEpsilonEqual.test.cpp
create mode 100644 compiler/nnc/CMakeLists.txt
create mode 100644 compiler/nnc/README.md
create mode 100644 compiler/nnc/backends/CMakeLists.txt
create mode 100644 compiler/nnc/backends/acl_soft_backend/AclArtifactUtilities.in
create mode 100644 compiler/nnc/backends/acl_soft_backend/AclCppGenerator.cpp
create mode 100644 compiler/nnc/backends/acl_soft_backend/AclCppOpGenerator.cpp
create mode 100644 compiler/nnc/backends/acl_soft_backend/AclCppOpGenerator.h
create mode 100644 compiler/nnc/backends/acl_soft_backend/ArtifactGeneratorCppCode.cpp
create mode 100644 compiler/nnc/backends/acl_soft_backend/ArtifactGeneratorCppCode.h
create mode 100644 compiler/nnc/backends/acl_soft_backend/ArtifactGeneratorCppDecl.cpp
create mode 100644 compiler/nnc/backends/acl_soft_backend/ArtifactGeneratorCppDecl.h
create mode 100644 compiler/nnc/backends/acl_soft_backend/ArtifactIndent.h
create mode 100644 compiler/nnc/backends/acl_soft_backend/ArtifactModel.cpp
create mode 100644 compiler/nnc/backends/acl_soft_backend/ArtifactModel.h
create mode 100644 compiler/nnc/backends/acl_soft_backend/CMakeLists.txt
create mode 100644 compiler/nnc/backends/acl_soft_backend/IArtifactGenerator.h
create mode 100644 compiler/nnc/backends/interpreter/CMakeLists.txt
create mode 100644 compiler/nnc/backends/interpreter/InterpreterBackend.cpp
create mode 100644 compiler/nnc/backends/soft_backend/CMakeLists.txt
create mode 100644 compiler/nnc/backends/soft_backend/CPPGenerator.cpp
create mode 100644 compiler/nnc/backends/soft_backend/CommonData.def
create mode 100644 compiler/nnc/backends/soft_backend/ModelAnalyzer.cpp
create mode 100644 compiler/nnc/backends/soft_backend/ModelAnalyzer.h
create mode 100644 compiler/nnc/backends/soft_backend/SBSerializer.cpp
create mode 100644 compiler/nnc/backends/soft_backend/SBSerializer.h
create mode 100644 compiler/nnc/backends/soft_backend/SequencedIR.cpp
create mode 100644 compiler/nnc/backends/soft_backend/SequencedIR.h
create mode 100644 compiler/nnc/backends/soft_backend/code_snippets/cpp_broadcast.def
create mode 100644 compiler/nnc/backends/soft_backend/code_snippets/cpp_capped_relu.def
create mode 100644 compiler/nnc/backends/soft_backend/code_snippets/cpp_common_funcs.def
create mode 100644 compiler/nnc/backends/soft_backend/code_snippets/cpp_concat.def
create mode 100644 compiler/nnc/backends/soft_backend/code_snippets/cpp_conv.def
create mode 100644 compiler/nnc/backends/soft_backend/code_snippets/cpp_conv_transpose.def
create mode 100644 compiler/nnc/backends/soft_backend/code_snippets/cpp_depthwise_conv.def
create mode 100644 compiler/nnc/backends/soft_backend/code_snippets/cpp_elementwise.def
create mode 100644 compiler/nnc/backends/soft_backend/code_snippets/cpp_elu.def
create mode 100644 compiler/nnc/backends/soft_backend/code_snippets/cpp_fully_connected.def
create mode 100644 compiler/nnc/backends/soft_backend/code_snippets/cpp_gather.def
create mode 100644 compiler/nnc/backends/soft_backend/code_snippets/cpp_header_types.def
create mode 100644 compiler/nnc/backends/soft_backend/code_snippets/cpp_leaky_relu.def
create mode 100644 compiler/nnc/backends/soft_backend/code_snippets/cpp_operations.def
create mode 100644 compiler/nnc/backends/soft_backend/code_snippets/cpp_pad.def
create mode 100644 compiler/nnc/backends/soft_backend/code_snippets/cpp_pool.def
create mode 100644 compiler/nnc/backends/soft_backend/code_snippets/cpp_reduce.def
create mode 100644 compiler/nnc/backends/soft_backend/code_snippets/cpp_relu.def
create mode 100644 compiler/nnc/backends/soft_backend/code_snippets/cpp_resize.def
create mode 100644 compiler/nnc/backends/soft_backend/code_snippets/cpp_sigmoid.def
create mode 100644 compiler/nnc/backends/soft_backend/code_snippets/cpp_slice.def
create mode 100644 compiler/nnc/backends/soft_backend/code_snippets/cpp_softmax.def
create mode 100644 compiler/nnc/backends/soft_backend/code_snippets/cpp_sqrt.def
create mode 100644 compiler/nnc/backends/soft_backend/code_snippets/cpp_tanh.def
create mode 100644 compiler/nnc/backends/soft_backend/code_snippets/cpp_transpose.def
create mode 100644 compiler/nnc/backends/soft_backend/code_snippets/eigen.def
create mode 100644 compiler/nnc/cmake/config.cmake
create mode 100644 compiler/nnc/cmake/utils.cmake
create mode 100644 compiler/nnc/doxygen.config
create mode 100644 compiler/nnc/driver/Driver.cpp
create mode 100644 compiler/nnc/driver/Driver.h
create mode 100644 compiler/nnc/driver/Options.cpp
create mode 100644 compiler/nnc/driver/Options.h
create mode 100644 compiler/nnc/driver/main.cpp
create mode 100644 compiler/nnc/include/Definitions.h.in
create mode 100644 compiler/nnc/include/backends/acl_soft_backend/AclCppException.h
create mode 100644 compiler/nnc/include/backends/acl_soft_backend/AclCppGenerator.h
create mode 100644 compiler/nnc/include/backends/interpreter/InterpreterBackend.h
create mode 100644 compiler/nnc/include/backends/soft_backend/CPPGenerator.h
create mode 100644 compiler/nnc/include/pass/Pass.h
create mode 100644 compiler/nnc/include/pass/PassData.h
create mode 100644 compiler/nnc/include/pass/PassException.h
create mode 100644 compiler/nnc/include/pass/PassManager.h
create mode 100644 compiler/nnc/include/passes/dot_dumper/DumperPass.h
create mode 100644 compiler/nnc/include/passes/optimizations/CombineTransposes.h
create mode 100644 compiler/nnc/include/passes/optimizations/ConstantFoldTranspose.h
create mode 100644 compiler/nnc/include/passes/optimizations/DeadCodeElimination.h
create mode 100644 compiler/nnc/include/passes/optimizations/FuseArithmeticOps.h
create mode 100644 compiler/nnc/include/passes/optimizations/OptimizationUtils.h
create mode 100644 compiler/nnc/include/passes/optimizations/SinkRelu.h
create mode 100644 compiler/nnc/include/passes/optimizations/SinkTranspose.h
create mode 100644 compiler/nnc/include/passes/transformations/DataFormatSwitcher.h
create mode 100644 compiler/nnc/include/passes/transformations/LowerConv2D.h
create mode 100644 compiler/nnc/include/support/CommandLine.h
create mode 100644 compiler/nnc/pass/CMakeLists.txt
create mode 100644 compiler/nnc/pass/PassManager.cpp
create mode 100644 compiler/nnc/passes/CMakeLists.txt
create mode 100644 compiler/nnc/passes/dot_dumper/CMakeLists.txt
create mode 100644 compiler/nnc/passes/dot_dumper/DumperPass.cpp
create mode 100644 compiler/nnc/passes/optimizations/CMakeLists.txt
create mode 100644 compiler/nnc/passes/optimizations/CombineTransposes.cpp
create mode 100644 compiler/nnc/passes/optimizations/ConstantFoldTranspose.cpp
create mode 100644 compiler/nnc/passes/optimizations/DeadCodeElimination.cpp
create mode 100644 compiler/nnc/passes/optimizations/FuseArithmeticOps.cpp
create mode 100644 compiler/nnc/passes/optimizations/OptimizationUtils.cpp
create mode 100644 compiler/nnc/passes/optimizations/SinkRelu.cpp
create mode 100644 compiler/nnc/passes/optimizations/SinkTranspose.cpp
create mode 100644 compiler/nnc/passes/transformations/CMakeLists.txt
create mode 100644 compiler/nnc/passes/transformations/DataFormatSwitcher.cpp
create mode 100644 compiler/nnc/passes/transformations/LowerConv2D.cpp
create mode 100644 compiler/nnc/requires.cmake
create mode 100644 compiler/nnc/support/CLOptionChecker.cpp
create mode 100644 compiler/nnc/support/CMakeLists.txt
create mode 100644 compiler/nnc/support/CommandLine.cpp
create mode 100644 compiler/nnc/tests/CMakeLists.txt
create mode 100644 compiler/nnc/tests/acl_soft_backend/AclCppOperations.cpp
create mode 100644 compiler/nnc/tests/acl_soft_backend/BuildInfo.h.in
create mode 100644 compiler/nnc/tests/acl_soft_backend/CMakeLists.txt
create mode 100644 compiler/nnc/tests/acl_soft_backend/artifact_cmake/CMakeLists.txt
create mode 100644 compiler/nnc/tests/acl_soft_backend/artifact_cmake/main.cpp
create mode 100644 compiler/nnc/tests/acl_soft_backend/artifact_cmake/odroid.cmake
create mode 100644 compiler/nnc/tests/acl_soft_backend/models/concatenate.prototxt
create mode 100644 compiler/nnc/tests/acl_soft_backend/models/convolution.prototxt
create mode 100644 compiler/nnc/tests/acl_soft_backend/models/convolution_with_bias.prototxt
create mode 100644 compiler/nnc/tests/acl_soft_backend/models/depthwise_convolution.prototxt
create mode 100644 compiler/nnc/tests/acl_soft_backend/models/fully_connected.prototxt
create mode 100644 compiler/nnc/tests/acl_soft_backend/models/pooling_avg.prototxt
create mode 100644 compiler/nnc/tests/acl_soft_backend/models/pooling_max.prototxt
create mode 100644 compiler/nnc/tests/acl_soft_backend/models/relu.prototxt
create mode 100644 compiler/nnc/tests/acl_soft_backend/models/reshape.prototxt
create mode 100644 compiler/nnc/tests/acl_soft_backend/models/scale.prototxt
create mode 100644 compiler/nnc/tests/import/CMakeLists.txt
create mode 100644 compiler/nnc/tests/import/caffe.cpp
create mode 100644 compiler/nnc/tests/import/tflite.cpp
create mode 100644 compiler/nnc/tests/soft_backend/CMakeLists.txt
create mode 100644 compiler/nnc/tests/soft_backend/CompileCPP.cpp
create mode 100644 compiler/nnc/tests/soft_backend/test_main.def
create mode 100644 compiler/nnc/unittests/CMakeLists.txt
create mode 100644 compiler/nnc/unittests/acl_backend/CMakeLists.txt
create mode 100644 compiler/nnc/unittests/acl_backend/DOMToText.cpp
create mode 100644 compiler/nnc/unittests/acl_backend/MIRToDOM.cpp
create mode 100644 compiler/nnc/unittests/caffe_frontend/test_data/unsupported.caffemodel
create mode 100644 compiler/nnc/unittests/optimizations/CMakeLists.txt
create mode 100644 compiler/nnc/unittests/optimizations/CombineTransposes.cpp
create mode 100644 compiler/nnc/unittests/optimizations/DeadCodeElimination.cpp
create mode 100644 compiler/nnc/unittests/optimizations/FuseArithmeticOps.cpp
create mode 100644 compiler/nnc/unittests/optimizations/SinkTest.cpp
create mode 100644 compiler/nnc/unittests/optimizations/Util.h
create mode 100644 compiler/nnc/unittests/pass/CMakeLists.txt
create mode 100644 compiler/nnc/unittests/pass/PassExceptionTest.cpp
create mode 100644 compiler/nnc/unittests/pass/PassManagerTest.cpp
create mode 100644 compiler/nnc/unittests/soft_backend/CMakeLists.txt
create mode 100644 compiler/nnc/unittests/soft_backend/CPPHeaderTypes.cpp
create mode 100644 compiler/nnc/unittests/soft_backend/CPPOperations.cpp
create mode 100644 compiler/nnc/unittests/soft_backend/Generator.cpp
create mode 100644 compiler/nnc/unittests/soft_backend/ModelAnalyzer.cpp
create mode 100644 compiler/nnc/unittests/support/CMakeLists.txt
create mode 100644 compiler/nnc/unittests/support/CommandLineTest.cpp
create mode 100644 compiler/nnc/unittests/transformations/CMakeLists.txt
create mode 100644 compiler/nnc/unittests/transformations/Switcher.cpp
create mode 100644 compiler/nnc/utils/CMakeLists.txt
create mode 100644 compiler/nnc/utils/caffe2_dot_dumper/CMakeLists.txt
create mode 100644 compiler/nnc/utils/caffe2_dot_dumper/model_dump.cpp
create mode 100644 compiler/nnc/utils/caffe_dot_dumper/CMakeLists.txt
create mode 100644 compiler/nnc/utils/caffe_dot_dumper/model_dump.cpp
create mode 100755 compiler/nnc/utils/caffe_model_maker/AllFill.sh
create mode 100755 compiler/nnc/utils/caffe_model_maker/Filler.sh
create mode 100755 compiler/nnc/utils/caffe_model_maker/GenerateCaffeModels.py
create mode 100755 compiler/nnc/utils/caffe_model_maker/Pyloss.py
create mode 100644 compiler/nnc/utils/caffe_model_maker/README.md
create mode 100644 compiler/nnc/utils/def2src.cpp
create mode 100644 compiler/nnc/utils/infer_tests/README.md
create mode 100755 compiler/nnc/utils/infer_tests/infer_testcases.py
create mode 100755 compiler/nnc/utils/infer_tests/res2bin.py
create mode 100644 compiler/nnc/utils/input_gen/CMakeLists.txt
create mode 100644 compiler/nnc/utils/input_gen/tensor_gen.cpp
create mode 100755 compiler/nnc/utils/model_runner/common_place.py
create mode 100755 compiler/nnc/utils/model_runner/model_runner_caffe.py
create mode 100755 compiler/nnc/utils/model_runner/model_runner_caffe2.py
create mode 100755 compiler/nnc/utils/model_runner/model_runner_onnx.py
create mode 100755 compiler/nnc/utils/model_runner/model_runner_tflite.py
create mode 100644 compiler/nnc/utils/model_runner/readme.md
create mode 100644 compiler/nnc/utils/prepare_inputs/README.md
create mode 100755 compiler/nnc/utils/prepare_inputs/jpeg2hdf5.py
create mode 100644 compiler/nnc/utils/tflite_dot_dumper/CMakeLists.txt
create mode 100644 compiler/nnc/utils/tflite_dot_dumper/model_dump.cpp
create mode 100644 compiler/nnkit-caffe/CMakeLists.txt
create mode 100644 compiler/nnkit-caffe/backend/CMakeLists.txt
create mode 100644 compiler/nnkit-caffe/backend/Module.cpp
create mode 100644 compiler/nnkit-caffe/requires.cmake
create mode 100644 compiler/nnkit-caffe/support/CMakeLists.txt
create mode 100644 compiler/nnkit-caffe/support/include/nnkit/support/caffe/Backend.h
create mode 100644 compiler/nnkit-caffe/support/include/nnkit/support/caffe/BlobContext.h
create mode 100644 compiler/nnkit-caffe/support/include/nnkit/support/caffe/InputBlobContext.h
create mode 100644 compiler/nnkit-caffe/support/include/nnkit/support/caffe/OutputBlobContext.h
create mode 100644 compiler/nnkit-caffe/support/include/nnkit/support/caffe/TensorContext.h
create mode 100644 compiler/nnkit-intf/CMakeLists.txt
create mode 100644 compiler/nnkit-intf/README.md
create mode 100644 compiler/nnkit-intf/action/CMakeLists.txt
create mode 100644 compiler/nnkit-intf/action/include/nnkit/Action.h
create mode 100644 compiler/nnkit-intf/backend/CMakeLists.txt
create mode 100644 compiler/nnkit-intf/backend/include/nnkit/Backend.h
create mode 100644 compiler/nnkit-intf/cmdline/CMakeLists.txt
create mode 100644 compiler/nnkit-intf/cmdline/include/nnkit/CmdlineArguments.h
create mode 100644 compiler/nnkit-intf/tensor/CMakeLists.txt
create mode 100644 compiler/nnkit-intf/tensor/include/nnkit/TensorContext.h
create mode 100644 compiler/nnkit-misc/CMakeLists.txt
create mode 100644 compiler/nnkit-misc/README.md
create mode 100644 compiler/nnkit-misc/backend/CMakeLists.txt
create mode 100644 compiler/nnkit-misc/backend/include/nnkit/BackendPlugin.h
create mode 100644 compiler/nnkit-misc/backend/src/BackendPlugin.cpp
create mode 100644 compiler/nnkit-misc/cmdline/CMakeLists.txt
create mode 100644 compiler/nnkit-misc/cmdline/include/nnkit/VectorArguments.h
create mode 100644 compiler/nnkit-misc/cmdline/src/VectorArguments.cpp
create mode 100644 compiler/nnkit-mocotf/CMakeLists.txt
create mode 100644 compiler/nnkit-mocotf/backend/Backend.cpp
create mode 100644 compiler/nnkit-mocotf/backend/CMakeLists.txt
create mode 100644 compiler/nnkit-mocotf/requires.cmake
create mode 100644 compiler/nnkit-mocotf/support/CMakeLists.txt
create mode 100644 compiler/nnkit-mocotf/support/include/nnkit/support/moco/tf/Backend.h
create mode 100644 compiler/nnkit-mocotf/support/src/Backend.cpp
create mode 100644 compiler/nnkit-mocotf/support/src/InputTensorContext.cpp
create mode 100644 compiler/nnkit-mocotf/support/src/InputTensorContext.h
create mode 100644 compiler/nnkit-mocotf/support/src/OutputTensorContext.cpp
create mode 100644 compiler/nnkit-mocotf/support/src/OutputTensorContext.h
create mode 100644 compiler/nnkit-mocotf/support/src/TensorContext.h
create mode 100644 compiler/nnkit-onnxrt/CMakeLists.txt
create mode 100644 compiler/nnkit-onnxrt/backend/Backend.cpp
create mode 100644 compiler/nnkit-onnxrt/backend/CMakeLists.txt
create mode 100644 compiler/nnkit-onnxrt/requires.cmake
create mode 100644 compiler/nnkit-onnxrt/support/CMakeLists.txt
create mode 100644 compiler/nnkit-onnxrt/support/include/nnkit/support/onnx/Allocator.h
create mode 100644 compiler/nnkit-onnxrt/support/include/nnkit/support/onnx/Backend.h
create mode 100644 compiler/nnkit-onnxrt/support/include/nnkit/support/onnx/Runner.h
create mode 100644 compiler/nnkit-onnxrt/support/include/nnkit/support/onnx/Status.h
create mode 100644 compiler/nnkit-onnxrt/support/include/nnkit/support/onnx/TensorContext.h
create mode 100644 compiler/nnkit-onnxrt/support/include/nnkit/support/onnx/TensorSet.h
create mode 100644 compiler/nnkit-onnxrt/support/src/Allocator.cpp
create mode 100644 compiler/nnkit-onnxrt/support/src/Backend.cpp
create mode 100644 compiler/nnkit-onnxrt/support/src/Runner.cpp
create mode 100644 compiler/nnkit-tf/CMakeLists.txt
create mode 100644 compiler/nnkit-tf/backend/Backend.cpp
create mode 100644 compiler/nnkit-tf/backend/CMakeLists.txt
create mode 100644 compiler/nnkit-tf/requires.cmake
create mode 100644 compiler/nnkit-tf/support/CMakeLists.txt
create mode 100644 compiler/nnkit-tf/support/include/nnkit/support/tf/Backend.h
create mode 100644 compiler/nnkit-tf/support/include/nnkit/support/tf/Runner.h
create mode 100644 compiler/nnkit-tf/support/include/nnkit/support/tf/TensorContext.h
create mode 100644 compiler/nnkit-tf/support/include/nnkit/support/tf/TensorDataMap.h
create mode 100644 compiler/nnkit-tf/support/src/Backend.cpp
create mode 100644 compiler/nnkit-tf/support/src/Runner.cpp
create mode 100644 compiler/nnkit-tf/support/src/TensorContext.cpp
create mode 100644 compiler/nnkit-tflite/CMakeLists.txt
create mode 100644 compiler/nnkit-tflite/backend/Backend.cpp
create mode 100644 compiler/nnkit-tflite/backend/CMakeLists.txt
create mode 100644 compiler/nnkit-tflite/requires.cmake
create mode 100644 compiler/nnkit-tflite/support/CMakeLists.txt
create mode 100644 compiler/nnkit-tflite/support/include/nnkit/support/tflite/AbstractBackend.h
create mode 100644 compiler/nnkit-tflite/support/include/nnkit/support/tflite/TensorContext.h
create mode 100644 compiler/nnkit-tflite/support/include/nnkit/support/tflite/TensorSet.h
create mode 100644 compiler/nnkit-tflite/support/include/nnkit/support/tflite/TensorSets.h
create mode 100644 compiler/nnkit-tflite/support/include/nnkit/support/tflite/TensorUtils.h
create mode 100644 compiler/nnkit-tflite/support/src/Backend.cpp
create mode 100644 compiler/nnkit-tflite/support/src/TensorContext.cpp
create mode 100644 compiler/nnkit-tflite/support/src/TensorUtils.cpp
create mode 100644 compiler/nnkit/CMakeLists.txt
create mode 100644 compiler/nnkit/README.md
create mode 100644 compiler/nnkit/actions/CMakeLists.txt
create mode 100644 compiler/nnkit/actions/HDF5/CMakeLists.txt
create mode 100644 compiler/nnkit/actions/HDF5/Common.cpp
create mode 100644 compiler/nnkit/actions/HDF5/Common.h
create mode 100644 compiler/nnkit/actions/HDF5/Export.cpp
create mode 100644 compiler/nnkit/actions/HDF5/Import.cpp
create mode 100644 compiler/nnkit/actions/builtin/CMakeLists.txt
create mode 100644 compiler/nnkit/actions/builtin/Randomize.cpp
create mode 100644 compiler/nnkit/actions/builtin/Show.cpp
create mode 100644 compiler/nnkit/requires.cmake
create mode 100644 compiler/nnkit/tools/CMakeLists.txt
create mode 100644 compiler/nnkit/tools/benchmark/CMakeLists.txt
create mode 100644 compiler/nnkit/tools/benchmark/src/Benchmark.cpp
create mode 100644 compiler/nnkit/tools/run/CMakeLists.txt
create mode 100644 compiler/nnkit/tools/run/nnkit-run.cpp
create mode 100644 compiler/nnop/CMakeLists.txt
create mode 100644 compiler/nnop/include/nnop/Conv2D.h
create mode 100644 compiler/nnop/include/nnop/PadInfo.h
create mode 100644 compiler/nnop/include/nnop/StrideInfo.h
create mode 100644 compiler/nnop/requires.cmake
create mode 100644 compiler/nnop/src/Conv2D.test.cpp
create mode 100644 compiler/nnop/src/PadInfo.test.cpp
create mode 100644 compiler/nnop/src/StrideInfo.test.cpp
create mode 100644 compiler/nnsuite/CMakeLists.txt
create mode 100644 compiler/nnsuite/conv/CMakeLists.txt
create mode 100644 compiler/nnsuite/conv/model/CMakeLists.txt
create mode 100644 compiler/nnsuite/conv/model/include/nnsuite/conv/Model.h
create mode 100644 compiler/nnsuite/conv/model/include/nnsuite/conv/RandomModel.h
create mode 100644 compiler/nnsuite/conv/model/src/RandomModel.cpp
create mode 100644 compiler/nnsuite/conv/nnkit-caffe/CMakeLists.txt
create mode 100644 compiler/nnsuite/conv/nnkit-caffe/ConvBackend.cpp
create mode 100644 compiler/nnsuite/conv/nnkit-caffe/ConvBackend.h
create mode 100644 compiler/nnsuite/conv/nnkit-caffe/ConvBackend.test.cpp
create mode 100644 compiler/nnsuite/conv/nnkit-caffe/Entry.cpp
create mode 100644 compiler/nnsuite/conv/nnkit-tflite/CMakeLists.txt
create mode 100644 compiler/nnsuite/conv/nnkit-tflite/ConvBackend.cpp
create mode 100644 compiler/nnsuite/conv/nnkit-tflite/ConvBackend.h
create mode 100644 compiler/nnsuite/conv/nnkit-tflite/ConvBackend.test.cpp
create mode 100644 compiler/nnsuite/conv/nnkit-tflite/Entry.cpp
create mode 100644 compiler/nnsuite/requires.cmake
create mode 100644 compiler/oneco-value-pbtxt-test/CMakeLists.txt
create mode 100644 compiler/oneco-value-pbtxt-test/Const_000/test.pbtxt
create mode 100644 compiler/oneco-value-pbtxt-test/Identity_000/test.pbtxt
create mode 100644 compiler/oneco-value-pbtxt-test/requires.cmake
create mode 100644 compiler/oneco/CMakeLists.txt
create mode 100644 compiler/oneco/include/moco/onnx/Frontend.h
create mode 100644 compiler/oneco/proto/CMakeLists.txt
create mode 100644 compiler/oneco/requires.cmake
create mode 100644 compiler/oneco/src/Convert.cpp
create mode 100644 compiler/oneco/src/Convert.h
create mode 100644 compiler/oneco/src/Frontend.cpp
create mode 100644 compiler/oneco/src/Frontend.test.cpp
create mode 100644 compiler/oneco/src/GraphBuilder.h
create mode 100644 compiler/oneco/src/GraphBuilderContext.cpp
create mode 100644 compiler/oneco/src/GraphBuilderContext.h
create mode 100644 compiler/oneco/src/GraphBuilderRegistry.h
create mode 100644 compiler/oneco/src/Onnxutil.cpp
create mode 100644 compiler/oneco/src/Onnxutil.h
create mode 100644 compiler/oneco/src/Op/Constant.cpp
create mode 100644 compiler/oneco/src/Op/Constant.h
create mode 100644 compiler/oneco/src/Op/Constant_V1.cpp
create mode 100644 compiler/oneco/src/Op/Constant_V9.cpp
create mode 100644 compiler/oneco/src/Op/Identity.cpp
create mode 100644 compiler/oneco/src/Op/Identity.h
create mode 100644 compiler/oneco/src/Op/Identity_V1.cpp
create mode 100644 compiler/onnx2circle/CMakeLists.txt
create mode 100644 compiler/onnx2circle/README.md
create mode 100644 compiler/onnx2circle/requires.cmake
create mode 100644 compiler/onnx2circle/src/onnx2circle.cpp
create mode 100644 compiler/onnx2tflite-integration-test/CMakeLists.txt
create mode 100644 compiler/onnx2tflite-integration-test/requires.cmake
create mode 100644 compiler/onnx2tflite-integration-test/test.lst
create mode 100755 compiler/onnx2tflite-integration-test/testall.sh
create mode 100644 compiler/onnx2tflite/CMakeLists.txt
create mode 100644 compiler/onnx2tflite/requires.cmake
create mode 100644 compiler/onnx2tflite/src/Driver.cpp
create mode 100644 compiler/onnxkit/CMakeLists.txt
create mode 100644 compiler/onnxkit/README.md
create mode 100644 compiler/onnxkit/src/DecodeCommand.cpp
create mode 100644 compiler/onnxkit/src/DecodeCommand.hpp
create mode 100644 compiler/onnxkit/src/EncodeCommand.cpp
create mode 100644 compiler/onnxkit/src/EncodeCommand.hpp
create mode 100644 compiler/onnxkit/src/Main.cpp
create mode 100644 compiler/onnxkit/src/Support.cpp
create mode 100644 compiler/onnxkit/src/Support.hpp
create mode 100644 compiler/oops/CMakeLists.txt
create mode 100644 compiler/oops/include/oops/InternalExn.h
create mode 100644 compiler/oops/include/oops/UserExn.h
create mode 100644 compiler/oops/test.cpp
create mode 100644 compiler/pepper-assert/CMakeLists.txt
create mode 100644 compiler/pepper-assert/include/pepper/assert.h
create mode 100644 compiler/pepper-env/CMakeLists.txt
create mode 100644 compiler/pepper-env/README.md
create mode 100644 compiler/pepper-env/include/pepper/env.h
create mode 100644 compiler/pepper-env/src/env.cpp
create mode 100644 compiler/pepper-env/src/env.test.cpp
create mode 100644 compiler/pepper-str/CMakeLists.txt
create mode 100644 compiler/pepper-str/README.md
create mode 100644 compiler/pepper-str/include/pepper/str.h
create mode 100644 compiler/pepper-str/test.cpp
create mode 100644 compiler/pepper-strcast/CMakeLists.txt
create mode 100644 compiler/pepper-strcast/README.md
create mode 100644 compiler/pepper-strcast/include/pepper/strcast.h
create mode 100644 compiler/pepper-strcast/src/strcast.cpp
create mode 100644 compiler/pepper-strcast/src/strcast.test.cpp
create mode 100644 compiler/plier-tf/CMakeLists.txt
create mode 100644 compiler/plier-tf/README.md
create mode 100644 compiler/plier-tf/include/plier/tf/Convert.h
create mode 100644 compiler/plier-tf/include/plier/tf/TestHelper.h
create mode 100644 compiler/plier-tf/requires.cmake
create mode 100644 compiler/plier-tf/src/Convert.cpp
create mode 100644 compiler/plier-tf/src/Convert.test.cpp
create mode 100644 compiler/plier-tf/src/TestHelper.cpp
create mode 100644 compiler/pp/CMakeLists.txt
create mode 100644 compiler/pp/README.md
create mode 100644 compiler/pp/include/pp/EnclosedDocument.h
create mode 100644 compiler/pp/include/pp/Format.h
create mode 100644 compiler/pp/include/pp/IndentedStringBuilder.h
create mode 100644 compiler/pp/include/pp/LinearDocument.h
create mode 100644 compiler/pp/include/pp/MultiLineText.h
create mode 100644 compiler/pp/include/pp/MultiLineTextUtils.h
create mode 100644 compiler/pp/src/EnclosedDocument.cpp
create mode 100644 compiler/pp/src/EnclosedDocument.test.cpp
create mode 100644 compiler/pp/src/Format.test.cpp
create mode 100644 compiler/pp/src/IndentedStringBuilder.cpp
create mode 100644 compiler/pp/src/IndentedStringBuilder.test.cpp
create mode 100644 compiler/pp/src/LinearDocument.cpp
create mode 100644 compiler/pp/src/LinearDocument.test.cpp
create mode 100644 compiler/pp/src/MultiLineTextUtils.cpp
create mode 100644 compiler/pp/src/MultiLineTextUtils.test.cpp
create mode 100644 compiler/safemain/CMakeLists.txt
create mode 100644 compiler/safemain/SafeMain.cpp
create mode 100644 compiler/stdex/CMakeLists.txt
create mode 100644 compiler/stdex/README.md
create mode 100644 compiler/stdex/include/stdex/Memory.h
create mode 100644 compiler/stdex/include/stdex/Queue.h
create mode 100644 compiler/stdex/include/stdex/Set.h
create mode 100644 compiler/stdex/src/Memory.test.cpp
create mode 100644 compiler/stdex/src/Queue.test.cpp
create mode 100644 compiler/stdex/src/Set.test.cpp
create mode 100644 compiler/tf2circle-conversion-test/.gitignore
create mode 100644 compiler/tf2circle-conversion-test/CMakeLists.txt
create mode 100644 compiler/tf2circle-conversion-test/README.md
create mode 100644 compiler/tf2circle-conversion-test/requires.cmake
create mode 100644 compiler/tf2circle-conversion-test/test.lst
create mode 100755 compiler/tf2circle-conversion-test/testall.sh
create mode 100644 compiler/tf2circle-dredd-pb-test/.gitignore
create mode 100644 compiler/tf2circle-dredd-pb-test/CMakeLists.txt
create mode 100644 compiler/tf2circle-dredd-pb-test/README.md
create mode 100644 compiler/tf2circle-dredd-pb-test/contrib/.gitignore
create mode 100644 compiler/tf2circle-dredd-pb-test/requires.cmake
create mode 100755 compiler/tf2circle-dredd-pb-test/runner.sh
create mode 100644 compiler/tf2circle-dredd-pbtxt-test/.gitignore
create mode 100644 compiler/tf2circle-dredd-pbtxt-test/CMakeLists.txt
create mode 100644 compiler/tf2circle-dredd-pbtxt-test/README.md
create mode 100644 compiler/tf2circle-dredd-pbtxt-test/requires.cmake
create mode 100755 compiler/tf2circle-dredd-pbtxt-test/runner.sh
create mode 100644 compiler/tf2circle-dredd-pbtxt-test/test.lst
create mode 100644 compiler/tf2circle-model-test/.gitignore
create mode 100644 compiler/tf2circle-model-test/CMakeLists.txt
create mode 100644 compiler/tf2circle-model-test/README.md
create mode 100644 compiler/tf2circle-model-test/contrib/.gitignore
create mode 100644 compiler/tf2circle-model-test/requires.cmake
create mode 100755 compiler/tf2circle-model-test/runner.sh
create mode 100644 compiler/tf2circle-ui-check/.gitignore
create mode 100644 compiler/tf2circle-ui-check/CMakeLists.txt
create mode 100644 compiler/tf2circle-ui-check/README.md
create mode 100755 compiler/tf2circle-ui-check/checkall.sh
create mode 100644 compiler/tf2circle-ui-check/requires.cmake
create mode 100644 compiler/tf2circle-value-pbtxt-remote-test/.gitignore
create mode 100644 compiler/tf2circle-value-pbtxt-remote-test/CMakeLists.txt
create mode 100644 compiler/tf2circle-value-pbtxt-remote-test/README.md
create mode 100644 compiler/tf2circle-value-pbtxt-remote-test/requires.cmake
create mode 100755 compiler/tf2circle-value-pbtxt-remote-test/testall.sh
create mode 100644 compiler/tf2circle/CMakeLists.txt
create mode 100644 compiler/tf2circle/README.md
create mode 100644 compiler/tf2circle/proto/CustomOpInfo.proto
create mode 100644 compiler/tf2circle/requires.cmake
create mode 100644 compiler/tf2circle/src/CustomopConfLoader.cpp
create mode 100644 compiler/tf2circle/src/CustomopConfLoader.h
create mode 100644 compiler/tf2circle/src/tf2circle.cpp
create mode 100644 compiler/tf2nnpkg/CMakeLists.txt
create mode 100644 compiler/tf2nnpkg/requires.cmake
create mode 100644 compiler/tf2nnpkg/src/filesystem.h
create mode 100644 compiler/tf2nnpkg/src/filesystem_common.cpp
create mode 100644 compiler/tf2nnpkg/src/filesystem_linux.cpp
create mode 100644 compiler/tf2nnpkg/src/filesystem_windows.cpp
create mode 100644 compiler/tf2nnpkg/src/tf2nnpkg.cpp
create mode 100644 compiler/tf2tflite-dredd-pb-test/.gitignore
create mode 100644 compiler/tf2tflite-dredd-pb-test/CMakeLists.txt
create mode 100644 compiler/tf2tflite-dredd-pb-test/README.md
create mode 100644 compiler/tf2tflite-dredd-pb-test/contrib/.gitignore
create mode 100644 compiler/tf2tflite-dredd-pb-test/requires.cmake
create mode 100755 compiler/tf2tflite-dredd-pb-test/runner.sh
create mode 100644 compiler/tf2tflite-dredd-pbtxt-test/.gitignore
create mode 100644 compiler/tf2tflite-dredd-pbtxt-test/CMakeLists.txt
create mode 100644 compiler/tf2tflite-dredd-pbtxt-test/requires.cmake
create mode 100755 compiler/tf2tflite-dredd-pbtxt-test/runner.sh
create mode 100644 compiler/tf2tflite-dredd-pbtxt-test/test.lst
create mode 100644 compiler/tf2tflite-value-pb-test/.gitignore
create mode 100644 compiler/tf2tflite-value-pb-test/CMakeLists.txt
create mode 100644 compiler/tf2tflite-value-pb-test/README.md
create mode 100644 compiler/tf2tflite-value-pb-test/contrib/.gitignore
create mode 100644 compiler/tf2tflite-value-pb-test/requires.cmake
create mode 100755 compiler/tf2tflite-value-pb-test/runner.sh
create mode 100644 compiler/tf2tflite-value-pbtxt-test/.gitignore
create mode 100644 compiler/tf2tflite-value-pbtxt-test/CMakeLists.txt
create mode 100644 compiler/tf2tflite-value-pbtxt-test/README.md
create mode 100644 compiler/tf2tflite-value-pbtxt-test/requires.cmake
create mode 100644 compiler/tf2tflite-value-pbtxt-test/test.lst
create mode 100755 compiler/tf2tflite-value-pbtxt-test/testall.sh
create mode 100644 compiler/tf2tflite/.gitignore
create mode 100644 compiler/tf2tflite/CMakeLists.txt
create mode 100644 compiler/tf2tflite/README.md
create mode 100644 compiler/tf2tflite/proto/CustomOpInfo.proto
create mode 100644 compiler/tf2tflite/requires.cmake
create mode 100644 compiler/tf2tflite/src/CustomopConfLoader.cpp
create mode 100644 compiler/tf2tflite/src/CustomopConfLoader.h
create mode 100644 compiler/tf2tflite/src/Driver.cpp
create mode 100644 compiler/tf2tfliteV2-value-pbtxt-test/CMakeLists.txt
create mode 100644 compiler/tf2tfliteV2-value-pbtxt-test/requirements.txt
create mode 100644 compiler/tf2tfliteV2-value-pbtxt-test/requires.cmake
create mode 100644 compiler/tf2tfliteV2-value-pbtxt-test/test.lst
create mode 100755 compiler/tf2tfliteV2-value-pbtxt-test/testall.sh
create mode 100644 compiler/tf2tfliteV2/CMakeLists.txt
create mode 100644 compiler/tf2tfliteV2/README.md
create mode 100755 compiler/tf2tfliteV2/tf2tfliteV2.py
create mode 100644 compiler/tfgraph-xform/CMakeLists.txt
create mode 100644 compiler/tfgraph-xform/README.md
create mode 100644 compiler/tfinfo-v2/CMakeLists.txt
create mode 100644 compiler/tfinfo-v2/include/tfinfo-v2/TensorInfoLoader.h
create mode 100644 compiler/tfinfo-v2/include/tfinfo-v2/TensorSignature.h
create mode 100644 compiler/tfinfo-v2/proto/tfinfo-v2.proto
create mode 100644 compiler/tfinfo-v2/requires.cmake
create mode 100644 compiler/tfinfo-v2/src/TFInfo_v2.test.cpp
create mode 100644 compiler/tfinfo-v2/src/TensorInfoLoader.cpp
create mode 100644 compiler/tfinfo-v2/src/TensorSignature.cpp
create mode 100644 compiler/tfinfo/CMakeLists.txt
create mode 100644 compiler/tfinfo/README.md
create mode 100644 compiler/tfinfo/include/nnkit/support/tftestinfo/ParsedTensor.h
create mode 100644 compiler/tfinfo/include/nnkit/support/tftestinfo/TensorInfoParser.h
create mode 100644 compiler/tfinfo/requires.cmake
create mode 100644 compiler/tfinfo/src/Compat.h
create mode 100644 compiler/tfinfo/src/TensorInfoParser.cpp
create mode 100644 compiler/tfinfo/src/TensorInfoParser.test.cpp
create mode 100644 compiler/tfkit/CMakeLists.txt
create mode 100644 compiler/tfkit/README.md
create mode 100644 compiler/tfkit/src/ConvertCommand.cpp
create mode 100644 compiler/tfkit/src/ConvertCommand.hpp
create mode 100644 compiler/tfkit/src/DecodeCommand.cpp
create mode 100644 compiler/tfkit/src/DecodeCommand.hpp
create mode 100644 compiler/tfkit/src/EncodeCommand.cpp
create mode 100644 compiler/tfkit/src/EncodeCommand.hpp
create mode 100644 compiler/tfkit/src/Main.cpp
create mode 100644 compiler/tfkit/src/PackCommand.cpp
create mode 100644 compiler/tfkit/src/PackCommand.hpp
create mode 100644 compiler/tfkit/src/Support.cpp
create mode 100644 compiler/tfkit/src/Support.hpp
create mode 100644 compiler/tfkit/src/UnpackCommand.cpp
create mode 100644 compiler/tfkit/src/UnpackCommand.hpp
create mode 100644 compiler/tfl-inspect/CMakeLists.txt
create mode 100644 compiler/tfl-inspect/README.md
create mode 100644 compiler/tfl-inspect/driver/Driver.cpp
create mode 100644 compiler/tfl-inspect/requires.cmake
create mode 100644 compiler/tfl-inspect/src/Dump.cpp
create mode 100644 compiler/tfl-inspect/src/Dump.h
create mode 100644 compiler/tfl-inspect/src/Model.cpp
create mode 100644 compiler/tfl-inspect/src/Model.h
create mode 100644 compiler/tfl-inspect/src/Reader.cpp
create mode 100644 compiler/tfl-inspect/src/Reader.h
create mode 100644 compiler/tfl-verify/CMakeLists.txt
create mode 100644 compiler/tfl-verify/README.md
create mode 100644 compiler/tfl-verify/requires.cmake
create mode 100644 compiler/tfl-verify/src/Driver.cpp
create mode 100644 compiler/tfl-verify/src/Model.cpp
create mode 100644 compiler/tfl-verify/src/Model.h
create mode 100644 compiler/tfl-verify/src/VerifyFlatBuffers.cpp
create mode 100644 compiler/tfl-verify/src/VerifyFlatBuffers.h
create mode 100644 compiler/tflchef/CMakeLists.txt
create mode 100644 compiler/tflchef/README.md
create mode 100644 compiler/tflchef/core/CMakeLists.txt
create mode 100644 compiler/tflchef/core/include/tflchef/ModelChef.h
create mode 100644 compiler/tflchef/core/src/Arguments.h
create mode 100644 compiler/tflchef/core/src/Convert.cpp
create mode 100644 compiler/tflchef/core/src/Convert.h
create mode 100644 compiler/tflchef/core/src/Data/Constant.h
create mode 100644 compiler/tflchef/core/src/Data/Explicit.h
create mode 100644 compiler/tflchef/core/src/Data/Gaussian.cpp
create mode 100644 compiler/tflchef/core/src/Data/Gaussian.h
create mode 100644 compiler/tflchef/core/src/DataChef.def
create mode 100644 compiler/tflchef/core/src/DataChef.h
create mode 100644 compiler/tflchef/core/src/DataChefs.h
create mode 100644 compiler/tflchef/core/src/Dataset.h
create mode 100644 compiler/tflchef/core/src/LexicalCast.cpp
create mode 100644 compiler/tflchef/core/src/LexicalCast.h
create mode 100644 compiler/tflchef/core/src/ModelChef.cpp
create mode 100644 compiler/tflchef/core/src/Op/Abs.cpp
create mode 100644 compiler/tflchef/core/src/Op/Abs.h
create mode 100644 compiler/tflchef/core/src/Op/Add.cpp
create mode 100644 compiler/tflchef/core/src/Op/Add.h
create mode 100644 compiler/tflchef/core/src/Op/ArgMax.cpp
create mode 100644 compiler/tflchef/core/src/Op/ArgMax.h
create mode 100644 compiler/tflchef/core/src/Op/AveragePool2D.cpp
create mode 100644 compiler/tflchef/core/src/Op/AveragePool2D.h
create mode 100644 compiler/tflchef/core/src/Op/BatchToSpaceND.cpp
create mode 100644 compiler/tflchef/core/src/Op/BatchToSpaceND.h
create mode 100644 compiler/tflchef/core/src/Op/Concatenation.cpp
create mode 100644 compiler/tflchef/core/src/Op/Concatenation.h
create mode 100644 compiler/tflchef/core/src/Op/Conv2D.cpp
create mode 100644 compiler/tflchef/core/src/Op/Conv2D.h
create mode 100644 compiler/tflchef/core/src/Op/Cos.cpp
create mode 100644 compiler/tflchef/core/src/Op/Cos.h
create mode 100644 compiler/tflchef/core/src/Op/DepthwiseConv2D.cpp
create mode 100644 compiler/tflchef/core/src/Op/DepthwiseConv2D.h
create mode 100644 compiler/tflchef/core/src/Op/Div.cpp
create mode 100644 compiler/tflchef/core/src/Op/Div.h
create mode 100644 compiler/tflchef/core/src/Op/Equal.cpp
create mode 100644 compiler/tflchef/core/src/Op/Equal.h
create mode 100644 compiler/tflchef/core/src/Op/Exp.cpp
create mode 100644 compiler/tflchef/core/src/Op/Exp.h
create mode 100644 compiler/tflchef/core/src/Op/FloorDiv.cpp
create mode 100644 compiler/tflchef/core/src/Op/FloorDiv.h
create mode 100644 compiler/tflchef/core/src/Op/FullyConnected.cpp
create mode 100644 compiler/tflchef/core/src/Op/FullyConnected.h
create mode 100644 compiler/tflchef/core/src/Op/LogicalNot.cpp
create mode 100644 compiler/tflchef/core/src/Op/LogicalNot.h
create mode 100644 compiler/tflchef/core/src/Op/LogicalOr.cpp
create mode 100644 compiler/tflchef/core/src/Op/LogicalOr.h
create mode 100644 compiler/tflchef/core/src/Op/MaxPool2D.cpp
create mode 100644 compiler/tflchef/core/src/Op/MaxPool2D.h
create mode 100644 compiler/tflchef/core/src/Op/Mean.cpp
create mode 100644 compiler/tflchef/core/src/Op/Mean.h
create mode 100644 compiler/tflchef/core/src/Op/Mul.cpp
create mode 100644 compiler/tflchef/core/src/Op/Mul.h
create mode 100644 compiler/tflchef/core/src/Op/Pack.cpp
create mode 100644 compiler/tflchef/core/src/Op/Pack.h
create mode 100644 compiler/tflchef/core/src/Op/Pad.cpp
create mode 100644 compiler/tflchef/core/src/Op/Pad.h
create mode 100644 compiler/tflchef/core/src/Op/ReLU.cpp
create mode 100644 compiler/tflchef/core/src/Op/ReLU.h
create mode 100644 compiler/tflchef/core/src/Op/ReLU6.cpp
create mode 100644 compiler/tflchef/core/src/Op/ReLU6.h
create mode 100644 compiler/tflchef/core/src/Op/Reshape.cpp
create mode 100644 compiler/tflchef/core/src/Op/Reshape.h
create mode 100644 compiler/tflchef/core/src/Op/Rsqrt.cpp
create mode 100644 compiler/tflchef/core/src/Op/Rsqrt.h
create mode 100644 compiler/tflchef/core/src/Op/Shape.cpp
create mode 100644 compiler/tflchef/core/src/Op/Shape.h
create mode 100644 compiler/tflchef/core/src/Op/Softmax.cpp
create mode 100644 compiler/tflchef/core/src/Op/Softmax.h
create mode 100644 compiler/tflchef/core/src/Op/Sqrt.cpp
create mode 100644 compiler/tflchef/core/src/Op/Sqrt.h
create mode 100644 compiler/tflchef/core/src/Op/Sub.cpp
create mode 100644 compiler/tflchef/core/src/Op/Sub.h
create mode 100644 compiler/tflchef/core/src/Op/Tanh.cpp
create mode 100644 compiler/tflchef/core/src/Op/Tanh.h
create mode 100644 compiler/tflchef/core/src/Op/Transpose.cpp
create mode 100644 compiler/tflchef/core/src/Op/Transpose.h
create mode 100644 compiler/tflchef/core/src/OpChef.def
create mode 100644 compiler/tflchef/core/src/OpChef.h
create mode 100644 compiler/tflchef/core/src/OpChefs.h
create mode 100644 compiler/tflchef/proto/CMakeLists.txt
create mode 100644 compiler/tflchef/proto/tflchef.proto
create mode 100644 compiler/tflchef/requires.cmake
create mode 100644 compiler/tflchef/tests/CMakeLists.txt
create mode 100644 compiler/tflchef/tests/explicit_datachef/test.recipe
create mode 100644 compiler/tflchef/tests/explicit_datachef/test.reverse
create mode 100644 compiler/tflchef/tests/multisubgraph/test.recipe
create mode 100644 compiler/tflchef/tests/readme/test.recipe
create mode 100644 compiler/tflchef/tests/readme/test.reverse
create mode 100755 compiler/tflchef/tests/runall.sh
create mode 100755 compiler/tflchef/tests/runvalidate.sh
create mode 100644 compiler/tflchef/tflite/CMakeLists.txt
create mode 100644 compiler/tflchef/tflite/include/tflchef/RawModel.h
create mode 100644 compiler/tflchef/tflite/include/tflchef/RecipeChef.h
create mode 100644 compiler/tflchef/tflite/src/Convert.cpp
create mode 100644 compiler/tflchef/tflite/src/Convert.h
create mode 100644 compiler/tflchef/tflite/src/Op/Abs.cpp
create mode 100644 compiler/tflchef/tflite/src/Op/Abs.h
create mode 100644 compiler/tflchef/tflite/src/Op/Add.cpp
create mode 100644 compiler/tflchef/tflite/src/Op/Add.h
create mode 100644 compiler/tflchef/tflite/src/Op/ArgMax.cpp
create mode 100644 compiler/tflchef/tflite/src/Op/ArgMax.h
create mode 100644 compiler/tflchef/tflite/src/Op/AveragePool2D.cpp
create mode 100644 compiler/tflchef/tflite/src/Op/AveragePool2D.h
create mode 100644 compiler/tflchef/tflite/src/Op/BatchToSpaceND.cpp
create mode 100644 compiler/tflchef/tflite/src/Op/BatchToSpaceND.h
create mode 100644 compiler/tflchef/tflite/src/Op/Concatenation.cpp
create mode 100644 compiler/tflchef/tflite/src/Op/Concatenation.h
create mode 100644 compiler/tflchef/tflite/src/Op/Conv2D.cpp
create mode 100644 compiler/tflchef/tflite/src/Op/Conv2D.h
create mode 100644 compiler/tflchef/tflite/src/Op/Cos.cpp
create mode 100644 compiler/tflchef/tflite/src/Op/Cos.h
create mode 100644 compiler/tflchef/tflite/src/Op/DepthwiseConv2D.cpp
create mode 100644 compiler/tflchef/tflite/src/Op/DepthwiseConv2D.h
create mode 100644 compiler/tflchef/tflite/src/Op/Div.cpp
create mode 100644 compiler/tflchef/tflite/src/Op/Div.h
create mode 100644 compiler/tflchef/tflite/src/Op/Equal.cpp
create mode 100644 compiler/tflchef/tflite/src/Op/Equal.h
create mode 100644 compiler/tflchef/tflite/src/Op/Exp.cpp
create mode 100644 compiler/tflchef/tflite/src/Op/Exp.h
create mode 100644 compiler/tflchef/tflite/src/Op/FloorDiv.cpp
create mode 100644 compiler/tflchef/tflite/src/Op/FloorDiv.h
create mode 100644 compiler/tflchef/tflite/src/Op/FullyConnected.cpp
create mode 100644 compiler/tflchef/tflite/src/Op/FullyConnected.h
create mode 100644 compiler/tflchef/tflite/src/Op/LogicalNot.cpp
create mode 100644 compiler/tflchef/tflite/src/Op/LogicalNot.h
create mode 100644 compiler/tflchef/tflite/src/Op/LogicalOr.cpp
create mode 100644 compiler/tflchef/tflite/src/Op/LogicalOr.h
create mode 100644 compiler/tflchef/tflite/src/Op/MaxPool2D.cpp
create mode 100644 compiler/tflchef/tflite/src/Op/MaxPool2D.h
create mode 100644 compiler/tflchef/tflite/src/Op/Mean.cpp
create mode 100644 compiler/tflchef/tflite/src/Op/Mean.h
create mode 100644 compiler/tflchef/tflite/src/Op/Pack.cpp
create mode 100644 compiler/tflchef/tflite/src/Op/Pack.h
create mode 100644 compiler/tflchef/tflite/src/Op/Pad.cpp
create mode 100644 compiler/tflchef/tflite/src/Op/Pad.h
create mode 100644 compiler/tflchef/tflite/src/Op/ReLU.cpp
create mode 100644 compiler/tflchef/tflite/src/Op/ReLU.h
create mode 100644 compiler/tflchef/tflite/src/Op/ReLU6.cpp
create mode 100644 compiler/tflchef/tflite/src/Op/ReLU6.h
create mode 100644 compiler/tflchef/tflite/src/Op/Reshape.cpp
create mode 100644 compiler/tflchef/tflite/src/Op/Reshape.h
create mode 100644 compiler/tflchef/tflite/src/Op/Rsqrt.cpp
create mode 100644 compiler/tflchef/tflite/src/Op/Rsqrt.h
create mode 100644 compiler/tflchef/tflite/src/Op/Softmax.cpp
create mode 100644 compiler/tflchef/tflite/src/Op/Softmax.h
create mode 100644 compiler/tflchef/tflite/src/Op/Sqrt.cpp
create mode 100644 compiler/tflchef/tflite/src/Op/Sqrt.h
create mode 100644 compiler/tflchef/tflite/src/Op/Sub.cpp
create mode 100644 compiler/tflchef/tflite/src/Op/Sub.h
create mode 100644 compiler/tflchef/tflite/src/Op/Tanh.cpp
create mode 100644 compiler/tflchef/tflite/src/Op/Tanh.h
create mode 100644 compiler/tflchef/tflite/src/Op/Transpose.cpp
create mode 100644 compiler/tflchef/tflite/src/Op/Transpose.h
create mode 100644 compiler/tflchef/tflite/src/RawModelLoader.cpp
create mode 100644 compiler/tflchef/tflite/src/RecipeChef.cpp
create mode 100644 compiler/tflchef/tflite/src/TFliteImport.cpp
create mode 100644 compiler/tflchef/tflite/src/TFliteImport.h
create mode 100644 compiler/tflchef/tflite/src/TFliteOpChef.h
create mode 100644 compiler/tflchef/tflite/src/TFliteOpChefs.h
create mode 100644 compiler/tflchef/tflite/src/TFliteOpRegistry.h
create mode 100644 compiler/tflchef/tools/CMakeLists.txt
create mode 100644 compiler/tflchef/tools/console/CMakeLists.txt
create mode 100644 compiler/tflchef/tools/console/Driver.cpp
create mode 100644 compiler/tflchef/tools/file/CMakeLists.txt
create mode 100644 compiler/tflchef/tools/file/Driver.cpp
create mode 100644 compiler/tflchef/tools/reverse/CMakeLists.txt
create mode 100644 compiler/tflchef/tools/reverse/Driver.cpp
create mode 100644 compiler/tfldump/CMakeLists.txt
create mode 100644 compiler/tfldump/README.md
create mode 100644 compiler/tfldump/driver/Driver.cpp
create mode 100644 compiler/tfldump/include/tfldump/Dump.h
create mode 100644 compiler/tfldump/include/tflread/Model.h
create mode 100644 compiler/tfldump/requires.cmake
create mode 100644 compiler/tfldump/src/Dump.cpp
create mode 100644 compiler/tfldump/src/Load.cpp
create mode 100644 compiler/tfldump/src/OpPrinter.cpp
create mode 100644 compiler/tfldump/src/OpPrinter.h
create mode 100644 compiler/tfldump/src/Read.cpp
create mode 100644 compiler/tfldump/src/Read.h
create mode 100644 compiler/tflite2circle-conversion-test/CMakeLists.txt
create mode 100644 compiler/tflite2circle-conversion-test/README.md
create mode 100644 compiler/tflite2circle-conversion-test/requires.cmake
create mode 100644 compiler/tflite2circle-conversion-test/test.lst
create mode 100755 compiler/tflite2circle-conversion-test/testall.sh
create mode 100644 compiler/tflite2circle/CMakeLists.txt
create mode 100644 compiler/tflite2circle/README.md
create mode 100644 compiler/tflite2circle/driver/Driver.cpp
create mode 100644 compiler/tflite2circle/include/CircleModel.h
create mode 100644 compiler/tflite2circle/include/TFLModel.h
create mode 100644 compiler/tflite2circle/requires.cmake
create mode 100644 compiler/tflite2circle/src/BuildBuiltinOptions.h
create mode 100644 compiler/tflite2circle/src/BuildBuiltinOptions/AbsOptions.cpp
create mode 100644 compiler/tflite2circle/src/BuildBuiltinOptions/AbsOptions.h
create mode 100644 compiler/tflite2circle/src/BuildBuiltinOptions/AddOptions.cpp
create mode 100644 compiler/tflite2circle/src/BuildBuiltinOptions/AddOptions.h
create mode 100644 compiler/tflite2circle/src/BuildBuiltinOptions/ArgMaxOptions.cpp
create mode 100644 compiler/tflite2circle/src/BuildBuiltinOptions/ArgMaxOptions.h
create mode 100644 compiler/tflite2circle/src/BuildBuiltinOptions/BatchToSpaceNDOptions.cpp
create mode 100644 compiler/tflite2circle/src/BuildBuiltinOptions/BatchToSpaceNDOptions.h
create mode 100644 compiler/tflite2circle/src/BuildBuiltinOptions/CastOptions.cpp
create mode 100644 compiler/tflite2circle/src/BuildBuiltinOptions/CastOptions.h
create mode 100644 compiler/tflite2circle/src/BuildBuiltinOptions/ConcatenationOptions.cpp
create mode 100644 compiler/tflite2circle/src/BuildBuiltinOptions/ConcatenationOptions.h
create mode 100644 compiler/tflite2circle/src/BuildBuiltinOptions/Conv2DOptions.cpp
create mode 100644 compiler/tflite2circle/src/BuildBuiltinOptions/Conv2DOptions.h
create mode 100644 compiler/tflite2circle/src/BuildBuiltinOptions/CosOptions.cpp
create mode 100644 compiler/tflite2circle/src/BuildBuiltinOptions/CosOptions.h
create mode 100644 compiler/tflite2circle/src/BuildBuiltinOptions/DepthwiseConv2DOptions.cpp
create mode 100644 compiler/tflite2circle/src/BuildBuiltinOptions/DepthwiseConv2DOptions.h
create mode 100644 compiler/tflite2circle/src/BuildBuiltinOptions/DivOptions.cpp
create mode 100644 compiler/tflite2circle/src/BuildBuiltinOptions/DivOptions.h
create mode 100644 compiler/tflite2circle/src/BuildBuiltinOptions/EqualOptions.cpp
create mode 100644 compiler/tflite2circle/src/BuildBuiltinOptions/EqualOptions.h
create mode 100644 compiler/tflite2circle/src/BuildBuiltinOptions/ExpOptions.cpp
create mode 100644 compiler/tflite2circle/src/BuildBuiltinOptions/ExpOptions.h
create mode 100644 compiler/tflite2circle/src/BuildBuiltinOptions/ExpandDimsOptions.cpp
create mode 100644 compiler/tflite2circle/src/BuildBuiltinOptions/ExpandDimsOptions.h
create mode 100644 compiler/tflite2circle/src/BuildBuiltinOptions/FillOptions.cpp
create mode 100644 compiler/tflite2circle/src/BuildBuiltinOptions/FillOptions.h
create mode 100644 compiler/tflite2circle/src/BuildBuiltinOptions/FullyConnectedOptions.cpp
create mode 100644 compiler/tflite2circle/src/BuildBuiltinOptions/FullyConnectedOptions.h
create mode 100644 compiler/tflite2circle/src/BuildBuiltinOptions/GreaterEqualOptions.cpp
create mode 100644 compiler/tflite2circle/src/BuildBuiltinOptions/GreaterEqualOptions.h
create mode 100644 compiler/tflite2circle/src/BuildBuiltinOptions/LogicalNotOptions.cpp
create mode 100644 compiler/tflite2circle/src/BuildBuiltinOptions/LogicalNotOptions.h
create mode 100644 compiler/tflite2circle/src/BuildBuiltinOptions/LogicalOrOptions.cpp
create mode 100644 compiler/tflite2circle/src/BuildBuiltinOptions/LogicalOrOptions.h
create mode 100644 compiler/tflite2circle/src/BuildBuiltinOptions/MulOptions.cpp
create mode 100644 compiler/tflite2circle/src/BuildBuiltinOptions/MulOptions.h
create mode 100644 compiler/tflite2circle/src/BuildBuiltinOptions/NotEqualOptions.cpp
create mode 100644 compiler/tflite2circle/src/BuildBuiltinOptions/NotEqualOptions.h
create mode 100644 compiler/tflite2circle/src/BuildBuiltinOptions/PackOptions.cpp
create mode 100644 compiler/tflite2circle/src/BuildBuiltinOptions/PackOptions.h
create mode 100644 compiler/tflite2circle/src/BuildBuiltinOptions/PadOptions.cpp
create mode 100644 compiler/tflite2circle/src/BuildBuiltinOptions/PadOptions.h
create mode 100644 compiler/tflite2circle/src/BuildBuiltinOptions/Pool2DOptions.cpp
create mode 100644 compiler/tflite2circle/src/BuildBuiltinOptions/Pool2DOptions.h
create mode 100644 compiler/tflite2circle/src/BuildBuiltinOptions/ReducerOptions.cpp
create mode 100644 compiler/tflite2circle/src/BuildBuiltinOptions/ReducerOptions.h
create mode 100644 compiler/tflite2circle/src/BuildBuiltinOptions/ReshapeOptions.cpp
create mode 100644 compiler/tflite2circle/src/BuildBuiltinOptions/ReshapeOptions.h
create mode 100644 compiler/tflite2circle/src/BuildBuiltinOptions/ShapeOptions.cpp
create mode 100644 compiler/tflite2circle/src/BuildBuiltinOptions/ShapeOptions.h
create mode 100644 compiler/tflite2circle/src/BuildBuiltinOptions/SoftmaxOptions.cpp
create mode 100644 compiler/tflite2circle/src/BuildBuiltinOptions/SoftmaxOptions.h
create mode 100644 compiler/tflite2circle/src/BuildBuiltinOptions/SplitOptions.cpp
create mode 100644 compiler/tflite2circle/src/BuildBuiltinOptions/SplitOptions.h
create mode 100644 compiler/tflite2circle/src/BuildBuiltinOptions/SqueezeOptions.cpp
create mode 100644 compiler/tflite2circle/src/BuildBuiltinOptions/SqueezeOptions.h
create mode 100644 compiler/tflite2circle/src/BuildBuiltinOptions/SubOptions.cpp
create mode 100644 compiler/tflite2circle/src/BuildBuiltinOptions/SubOptions.h
create mode 100644 compiler/tflite2circle/src/BuildBuiltinOptions/TransposeOptions.cpp
create mode 100644 compiler/tflite2circle/src/BuildBuiltinOptions/TransposeOptions.h
create mode 100644 compiler/tflite2circle/src/CircleModel.cpp
create mode 100644 compiler/tflite2circle/src/DataLookup.cpp
create mode 100644 compiler/tflite2circle/src/DataLookup.h
create mode 100644 compiler/tflite2circle/src/TFLActivationFunctionType.lst
create mode 100644 compiler/tflite2circle/src/TFLBuiltinOptions.lst
create mode 100644 compiler/tflite2circle/src/TFLModel.cpp
create mode 100644 compiler/tflite2circle/src/TFLOperator.lst
create mode 100644 compiler/tflite2circle/src/TFLTensorType.lst
create mode 100644 compiler/tfts/CMakeLists.txt
create mode 100644 compiler/tfts/README.md
create mode 100755 compiler/tfts/check_all.sh
create mode 100644 compiler/tfts/requires.cmake
create mode 100644 compiler/v4tf/README.md
create mode 100644 compute/ARMComputeEx/arm_compute/core/CL/kernels/CLGEMMLowpMatrixMultiplyKernelEx.h
create mode 100644 compute/ARMComputeEx/arm_compute/core/CL/kernels/CLMultiplyScaleFactorKernel.h
create mode 100644 compute/ARMComputeEx/arm_compute/core/CL/kernels/CLQuantizationSymmetricKernel.h
create mode 100644 compute/ARMComputeEx/arm_compute/core/CL/kernels/CLScaleFactorSymm8Kernel.h
create mode 100644 compute/ARMComputeEx/arm_compute/core/CPP/kernels/CPPOneHotKernelEx.h
create mode 100644 compute/ARMComputeEx/arm_compute/core/NEON/kernels/NEActivationLayerKernelEx.h
create mode 100644 compute/ARMComputeEx/arm_compute/runtime/CL/functions/CLFullyConnectedHybridLayer.h
create mode 100644 compute/ARMComputeEx/arm_compute/runtime/CL/functions/CLFullyConnectedLayerEx.h
create mode 100644 compute/ARMComputeEx/arm_compute/runtime/CL/functions/CLGEMMLowpMatrixMultiplyCoreEx.h
create mode 100644 compute/ARMComputeEx/arm_compute/runtime/CPP/functions/CPPOneHotEx.h
create mode 100644 compute/ARMComputeEx/arm_compute/runtime/NEON/functions/NEActivationLayerEx.h
delete mode 100644 compute/ARMComputeEx/arm_compute/runtime/NEON/functions/NEArgMinMax.h
mode change 100644 => 100755 compute/ARMComputeEx/resolve_includes.py
create mode 100644 compute/ARMComputeEx/src/core/CL/cl_kernels/gemmlowp_ex.cl
create mode 100644 compute/ARMComputeEx/src/core/CL/cl_kernels/multiply_scale_factor.cl
create mode 100644 compute/ARMComputeEx/src/core/CL/cl_kernels/quantization_symm8.cl
create mode 100644 compute/ARMComputeEx/src/core/CL/cl_kernels/scale_factor.cl
create mode 100644 compute/ARMComputeEx/src/core/CL/kernels/CLGEMMLowpMatrixMultiplyKernelEx.cpp
create mode 100644 compute/ARMComputeEx/src/core/CL/kernels/CLMultiplyScaleFactorKernel.cpp
create mode 100644 compute/ARMComputeEx/src/core/CL/kernels/CLQuantizationSymmetricKernel.cpp
create mode 100644 compute/ARMComputeEx/src/core/CL/kernels/CLScaleFactorSymm8Kernel.cpp
create mode 100644 compute/ARMComputeEx/src/core/CPP/kernels/CPPOneHotKernelEx.cpp
create mode 100644 compute/ARMComputeEx/src/core/NEON/kernels/NEActivationLayerKernelEx.cpp
create mode 100644 compute/ARMComputeEx/src/runtime/CL/functions/CLFullyConnectedHybridLayer.cpp
create mode 100644 compute/ARMComputeEx/src/runtime/CL/functions/CLFullyConnectedLayerEx.cpp
create mode 100644 compute/ARMComputeEx/src/runtime/CL/functions/CLGEMMLowpMatrixMultiplyCoreEx.cpp
create mode 100644 compute/ARMComputeEx/src/runtime/CPP/functions/CPPOneHotEx.cpp
create mode 100644 compute/ARMComputeEx/src/runtime/NEON/functions/NEActivationLayerEx.cpp
delete mode 100644 compute/ARMComputeEx/src/runtime/NEON/functions/NEArgMinMax.cpp
delete mode 100644 compute/ARMComputeEx/src/runtime/NEON/functions/NEElementwiseUnaryLayerEx.cpp
create mode 100644 compute/cker/include/cker/NeonTensorUtils.h
create mode 100644 compute/cker/include/cker/PortableTensorUtils.h
create mode 100644 compute/cker/include/cker/TensorUtils.h
create mode 100644 compute/cker/include/cker/eigen/EigenSupport.h
create mode 100644 compute/cker/include/cker/eigen/eigen_convolution_helpers.h
create mode 100644 compute/cker/include/cker/eigen/eigen_spatial_convolutions-inl.h
create mode 100644 compute/cker/include/cker/eigen/eigen_spatial_convolutions.h
create mode 100644 compute/cker/include/cker/eigen/eigen_tensor_reduced_instantiations_oss.h
delete mode 100644 compute/cker/include/cker/gemmlowp/FixedPoint.h
create mode 100644 compute/cker/include/cker/gemmlowp/GEMMSupport.h
create mode 100644 compute/cker/include/cker/neon/neon_check.h
create mode 100644 compute/cker/include/cker/operation/Common.h
create mode 100644 compute/cker/include/cker/operation/Comparison.h
create mode 100644 compute/cker/include/cker/operation/Elementwise.h
create mode 100644 compute/cker/include/cker/operation/Exp.h
create mode 100644 compute/cker/include/cker/operation/MaxMin.h
create mode 100644 compute/cker/include/cker/operation/OneHot.h
create mode 100644 compute/cker/include/cker/operation/Pack.h
create mode 100644 compute/cker/include/cker/operation/Reduce.h
create mode 100644 compute/cker/include/cker/operation/Slice.h
create mode 100644 compute/cker/include/cker/operation/Split.h
create mode 100644 compute/cker/include/cker/operation/StridedSlice.h
create mode 100644 compute/cker/include/cker/operation/Tanh.h
create mode 100644 compute/cker/include/cker/operation/Transpose.h
create mode 100644 compute/cker/include/cker/operation/Unpack.h
delete mode 100644 compute/cker/include/cker/operation/optimized/AveragePool.h
create mode 100644 compute/cker/include/cker/operation/optimized/BinaryArithmeticOps.h
create mode 100644 compute/cker/include/cker/operation/optimized/Conv.h
create mode 100644 compute/cker/include/cker/operation/optimized/DepthwiseConvUint8.h
delete mode 100644 compute/cker/include/cker/operation/optimized/MaxPool.h
create mode 100644 compute/cker/include/cker/operation/optimized/OptimizedUtils.h
delete mode 100644 compute/cker/include/cker/operation/optimized/SoftMax.h
delete mode 100644 compute/cker/include/cker/operation/reference/AveragePool.h
create mode 100644 compute/cker/include/cker/operation/reference/BinaryArithmeticOps.h
create mode 100644 compute/cker/include/cker/operation/reference/Conv.h
delete mode 100644 compute/cker/include/cker/operation/reference/MaxPool.h
delete mode 100644 compute/cker/include/cker/operation/reference/SoftMax.h
delete mode 100644 compute/ncnn/CMakeLists.txt
delete mode 100644 compute/ncnn/README.md
delete mode 100644 compute/ncnn/include/ncnn/layer/binaryop.h
delete mode 100644 compute/ncnn/include/ncnn/layer/instance_norm.h
delete mode 100644 compute/ncnn/include/ncnn/mat.h
delete mode 100644 compute/ncnn/include/ncnn/srcn/conv_type.h
delete mode 100644 compute/ncnn/include/ncnn/srcn/srcn_conv.h
delete mode 100644 compute/ncnn/src/layer/arm/neon_mathfun.h
delete mode 100644 compute/ncnn/src/layer/binaryop.cc
delete mode 100644 compute/ncnn/src/layer/instance_norm.cc
delete mode 100644 compute/ncnn/src/mat.cc
delete mode 100644 compute/ncnn/src/srcn/common.h
delete mode 100644 compute/ncnn/src/srcn/conv_sgemm_multithreads.cc
delete mode 100644 compute/ncnn/src/srcn/conv_sgemm_multithreads.h
delete mode 100644 compute/ncnn/src/srcn/conv_sgemm_singlethread.cc
delete mode 100644 compute/ncnn/src/srcn/conv_sgemm_singlethread.h
delete mode 100644 compute/ncnn/src/srcn/conv_sparse.cc
delete mode 100644 compute/ncnn/src/srcn/conv_sparse.h
delete mode 100644 compute/ncnn/src/srcn/conv_winograd.cc
delete mode 100644 compute/ncnn/src/srcn/conv_winograd.h
delete mode 100644 compute/ncnn/src/srcn/conv_winograd_batch.cc
delete mode 100644 compute/ncnn/src/srcn/conv_winograd_batch.h
delete mode 100644 compute/ncnn/src/srcn/deconv_sgemm_multithreads.cc
delete mode 100644 compute/ncnn/src/srcn/deconv_sgemm_multithreads.h
delete mode 100644 compute/ncnn/src/srcn/depthwise_conv.cc
delete mode 100644 compute/ncnn/src/srcn/direct_conv_colmajor.cc
delete mode 100644 compute/ncnn/src/srcn/direct_conv_colmajor.h
delete mode 100644 compute/ncnn/src/srcn/sgemm_kernel.cc
delete mode 100644 compute/ncnn/src/srcn/sgemm_kernel.h
delete mode 100644 compute/ncnn/src/srcn/sgemm_pack.cc
delete mode 100644 compute/ncnn/src/srcn/sgemm_pack.h
delete mode 100644 compute/ncnn/src/srcn/sgemm_singlethread.cc
delete mode 100644 compute/ncnn/src/srcn/sgemm_singlethread.h
delete mode 100644 compute/ncnn/src/srcn/sgemm_test.cc
delete mode 100644 compute/ncnn/src/srcn/srcn_conv.cc
delete mode 100644 compute/ncnn/src/srcn/winograd.h
delete mode 100644 docs/HowToContribute.md
delete mode 100644 docs/UseDoxygen.md
delete mode 100644 docs/fig/compiler_flow.png
delete mode 100644 docs/fig/nnfw_compiler_structure.png
delete mode 100644 docs/fig/nnfw_compiler_structure.pptx
delete mode 100644 docs/fig/nnfw_components.png
delete mode 100644 docs/fig/nnfw_components.pptx
delete mode 100644 docs/fig/nnfw_nativeapi_flow.png
delete mode 100644 docs/fig/nnfw_nativeapi_flow.pptx
delete mode 100644 docs/fig/nnfw_nnapi_flow.png
delete mode 100644 docs/fig/nnfw_nnapi_flow.pptx
delete mode 100644 docs/fig/nnfw_runtime_behavior.png
delete mode 100644 docs/fig/nnfw_runtime_behavior.pptx
delete mode 100644 docs/fig/nnfw_runtime_structure.png
delete mode 100644 docs/fig/nnfw_runtime_structure.pptx
delete mode 100644 docs/fig/runtime_nativeapi_flow.png
delete mode 100644 docs/nncc/README.md
delete mode 100644 docs/nncc/design.md
delete mode 100644 docs/nncc/getting_started.md
delete mode 100644 docs/nncc/images/nncc_components.png
delete mode 100644 docs/nncc/images/nncc_idef0_a0.png
delete mode 100644 docs/nncc/images/nncc_idef0_a1.png
delete mode 100644 docs/nncc/images/nncc_idef0_a12.png
delete mode 100644 docs/nncc/project/detailed_level_design.md
delete mode 100644 docs/nncc/project/development_document.md
delete mode 100644 docs/nncc/project/high_level_design.md
delete mode 100644 docs/nncc/project/requirements_specification.md
delete mode 100644 docs/nncc/project/test_plan.md
delete mode 100644 docs/nncc/project_guide.md
delete mode 100644 docs/nncc/roadmap.md
delete mode 100644 docs/nncc/v1.0.0/getting_started.md
delete mode 100644 docs/nncc/v1.0.0/operation-list.md
delete mode 100644 docs/nncc/v1.0.0/tutorial.md
delete mode 100644 docs/nncc/v1.1.0/nncc_in_tizen_studio.md
delete mode 100644 docs/nncc/v1.1.0/nncc_in_visual_studio.md
delete mode 100644 docs/nnfw/2018/fig/nnfw_architecture.png
delete mode 100644 docs/nnfw/2018/fig/nnfw_architecture.pptx
delete mode 100644 docs/nnfw/2018/roadmap.md
delete mode 100644 docs/nnfw/HowToImplementOperatorKernel.md
delete mode 100644 docs/nnfw/fig/nnfw_architecture.png
delete mode 100644 docs/nnfw/fig/nnfw_architecture.pptx
delete mode 100644 docs/nnfw/fig/nnfw_behavior.png
delete mode 100644 docs/nnfw/fig/nnfw_behavior.pptx
delete mode 100644 docs/nnfw/howto.md
delete mode 100644 docs/nnfw/howto/BuildTFfromSource.md
delete mode 100644 docs/nnfw/howto/CrossBuildForAarch64.md
delete mode 100644 docs/nnfw/howto/CrossBuildForAndroid.md
delete mode 100644 docs/nnfw/howto/CrossBuildForArm.md
delete mode 100644 docs/nnfw/howto/HowToAddUnittest.md
delete mode 100644 docs/nnfw/howto/HowToRunNnpackge.md
delete mode 100644 docs/nnfw/howto/HowToTestManualy.md
delete mode 100644 docs/nnfw/howto/HowToUseDockerImage.md
delete mode 100644 docs/nnfw/howto/HowToUseNNFWAPI.md
delete mode 100644 docs/nnfw/howto/HowtoMakeSampleAppOnNnfw.md
delete mode 100644 docs/nnfw/howto/RemoteDebuggingForVSCode.md
delete mode 100644 docs/nnfw/howto/device/xu3-dip.png
delete mode 100644 docs/nnfw/howto/device/xu3_tizen.md
delete mode 100644 docs/nnfw/howto/device/xu3_ubuntu.md
delete mode 100644 docs/nnfw/howto/device/xu4_tizen.md
delete mode 100644 docs/nnfw/howto/device/xu4_ubuntu.md
delete mode 100644 docs/nnfw/op_list.md
delete mode 100644 docs/nnfw/roadmap.md
delete mode 100644 docs/nnfw/tests/Convolution_manual_3x3.xlsx
delete mode 100644 docs/nnfw/tests/Softmax_manual.xlsx
delete mode 100644 docs/release/release_note_1.0.0.md
delete mode 100644 docs/release/release_note_1.1.0.md
create mode 100644 docs/release/release_note_1.4.0.md
create mode 100644 infra/cmake/packages/TensorFlowSource-2.1.0/TensorFlowSourceConfig.cmake
create mode 100644 infra/cmake/packages/TensorFlowSource-2.1.0/TensorFlowSourceConfigVersion.cmake
create mode 100755 infra/git-hooks/pre-commit.sh
create mode 100644 infra/nncc/command/utcount
create mode 100644 infra/nnfw/cmake/packages/GEMMLowpConfig.cmake
delete mode 100644 infra/nnfw/command/gen-coverage-report
create mode 100644 infra/packaging/preset/20200220
create mode 100644 infra/packaging/res/tf2nnpkg.20200220
create mode 100755 infra/scripts/build_android_runtime_release.sh
mode change 100644 => 100755 infra/scripts/common.sh
create mode 100755 infra/scripts/docker_build_cross_aarch64_runtime.sh
delete mode 100755 infra/scripts/docker_build_cross_arm_neurun.sh
delete mode 100755 infra/scripts/docker_build_cross_arm_neurun_release.sh
create mode 100755 infra/scripts/docker_build_cross_arm_runtime.sh
create mode 100755 infra/scripts/docker_build_cross_arm_runtime_release.sh
delete mode 100755 infra/scripts/test_arm_neurun_acl_cl.sh
delete mode 100755 infra/scripts/test_arm_neurun_acl_neon.sh
delete mode 100755 infra/scripts/test_arm_neurun_cpu.sh
delete mode 100755 infra/scripts/test_arm_neurun_mixed.sh
delete mode 100755 infra/scripts/test_neurun_interp.sh
create mode 100755 infra/scripts/test_ubuntu_runtime.sh
create mode 100755 infra/scripts/test_ubuntu_runtime_interp.sh
create mode 100755 infra/scripts/test_ubuntu_runtime_mixed.sh
delete mode 100755 infra/scripts/test_x64_neurun_cpu.sh
create mode 100644 nnpackage/schema/circle_schema_v0.fbs
create mode 100644 packaging/eigen.tar.gz
create mode 100644 packaging/gemmlowp.tar.gz
create mode 100644 res/ONNXTests/UNIT_Gemm_000/test.pbtxt
create mode 100644 res/ONNXTests/UNIT_Gemm_001/test.pbtxt
create mode 100644 res/TensorFlowLiteRecipes/Abs_000/test.recipe
create mode 100644 res/TensorFlowLiteRecipes/Abs_000/test.reverse
create mode 100644 res/TensorFlowLiteRecipes/Add_000/test.recipe
create mode 100644 res/TensorFlowLiteRecipes/Add_000/test.reverse
create mode 100644 res/TensorFlowLiteRecipes/Add_U8_000/test.recipe
create mode 100644 res/TensorFlowLiteRecipes/Add_U8_000/test.reverse
create mode 100644 res/TensorFlowLiteRecipes/ArgMax_000/test.recipe
create mode 100644 res/TensorFlowLiteRecipes/ArgMax_000/test.reverse
create mode 100644 res/TensorFlowLiteRecipes/ArgMax_001/test.recipe
create mode 100644 res/TensorFlowLiteRecipes/ArgMax_001/test.reverse
create mode 100644 res/TensorFlowLiteRecipes/ArgMax_002/test.recipe
create mode 100644 res/TensorFlowLiteRecipes/ArgMax_002/test.reverse
create mode 100644 res/TensorFlowLiteRecipes/ArgMax_003/test.recipe
create mode 100644 res/TensorFlowLiteRecipes/ArgMax_003/test.reverse
create mode 100644 res/TensorFlowLiteRecipes/ArgMax_U8_000/test.recipe
create mode 100644 res/TensorFlowLiteRecipes/ArgMax_U8_000/test.reverse
create mode 100644 res/TensorFlowLiteRecipes/ArgMax_U8_001/test.recipe
create mode 100644 res/TensorFlowLiteRecipes/ArgMax_U8_001/test.reverse
create mode 100644 res/TensorFlowLiteRecipes/ArgMax_U8_002/test.recipe
create mode 100644 res/TensorFlowLiteRecipes/ArgMax_U8_002/test.reverse
create mode 100644 res/TensorFlowLiteRecipes/ArgMax_U8_003/test.recipe
create mode 100644 res/TensorFlowLiteRecipes/ArgMax_U8_003/test.reverse
create mode 100644 res/TensorFlowLiteRecipes/AveragePool2D_000/test.recipe
create mode 100644 res/TensorFlowLiteRecipes/AveragePool2D_000/test.reverse
create mode 100644 res/TensorFlowLiteRecipes/BatchToSpaceND_000/test.recipe
create mode 100644 res/TensorFlowLiteRecipes/BatchToSpaceND_000/test.reverse
create mode 100644 res/TensorFlowLiteRecipes/Concatenation_000/test.recipe
create mode 100644 res/TensorFlowLiteRecipes/Concatenation_000/test.reverse
create mode 100644 res/TensorFlowLiteRecipes/Concatenation_U8_000/test.recipe
create mode 100644 res/TensorFlowLiteRecipes/Conv2D_000/test.recipe
create mode 100644 res/TensorFlowLiteRecipes/Conv2D_000/test.reverse
create mode 100644 res/TensorFlowLiteRecipes/Conv2D_001/test.recipe
create mode 100644 res/TensorFlowLiteRecipes/Conv2D_001/test.reverse
create mode 100644 res/TensorFlowLiteRecipes/Conv2D_002/test.recipe
create mode 100644 res/TensorFlowLiteRecipes/Conv2D_U8_000/test.recipe
create mode 100644 res/TensorFlowLiteRecipes/Cos_000/test.recipe
create mode 100644 res/TensorFlowLiteRecipes/Cos_000/test.reverse
create mode 100644 res/TensorFlowLiteRecipes/DepthwiseConv2D_000/test.recipe
create mode 100644 res/TensorFlowLiteRecipes/DepthwiseConv2D_000/test.reverse
create mode 100644 res/TensorFlowLiteRecipes/DepthwiseConv2D_U8_000/test.recipe
create mode 100644 res/TensorFlowLiteRecipes/DepthwiseConv2D_U8_000/test.reverse
create mode 100644 res/TensorFlowLiteRecipes/Div_000/test.recipe
create mode 100644 res/TensorFlowLiteRecipes/Div_000/test.reverse
create mode 100644 res/TensorFlowLiteRecipes/Equal_000/test.recipe
create mode 100644 res/TensorFlowLiteRecipes/Equal_000/test.reverse
create mode 100644 res/TensorFlowLiteRecipes/Exp_000/test.recipe
create mode 100644 res/TensorFlowLiteRecipes/Exp_000/test.reverse
create mode 100644 res/TensorFlowLiteRecipes/FullyConnected_000/test.recipe
create mode 100644 res/TensorFlowLiteRecipes/FullyConnected_000/test.reverse
create mode 100644 res/TensorFlowLiteRecipes/FullyConnected_001/test.recipe
create mode 100644 res/TensorFlowLiteRecipes/FullyConnected_001/test.reverse
create mode 100644 res/TensorFlowLiteRecipes/FullyConnected_U8_000/test.recipe
create mode 100644 res/TensorFlowLiteRecipes/FullyConnected_U8_000/test.reverse
create mode 100644 res/TensorFlowLiteRecipes/LogicalNot_000/test.recipe
create mode 100644 res/TensorFlowLiteRecipes/LogicalNot_000/test.reverse
create mode 100644 res/TensorFlowLiteRecipes/LogicalOr_000/test.recipe
create mode 100644 res/TensorFlowLiteRecipes/LogicalOr_000/test.reverse
create mode 100644 res/TensorFlowLiteRecipes/MaxPool2D_000/test.recipe
create mode 100644 res/TensorFlowLiteRecipes/MaxPool2D_000/test.reverse
create mode 100644 res/TensorFlowLiteRecipes/MaxPool2D_U8_000/test.recipe
create mode 100644 res/TensorFlowLiteRecipes/Mean_000/test.recipe
create mode 100644 res/TensorFlowLiteRecipes/Mean_000/test.reverse
create mode 100644 res/TensorFlowLiteRecipes/Mul_000/test.recipe
create mode 100644 res/TensorFlowLiteRecipes/Mul_U8_000/test.recipe
create mode 100644 res/TensorFlowLiteRecipes/Pack_000/test.recipe
create mode 100644 res/TensorFlowLiteRecipes/Pack_000/test.reverse
create mode 100644 res/TensorFlowLiteRecipes/Pack_U8_000/test.recipe
create mode 100644 res/TensorFlowLiteRecipes/Pack_U8_000/test.reverse
create mode 100644 res/TensorFlowLiteRecipes/Pad_000/test.recipe
create mode 100644 res/TensorFlowLiteRecipes/Pad_000/test.reverse
create mode 100644 res/TensorFlowLiteRecipes/Pad_U8_000/test.recipe
create mode 100644 res/TensorFlowLiteRecipes/Pad_U8_000/test.reverse
create mode 100644 res/TensorFlowLiteRecipes/Quantization_000/test.recipe
create mode 100644 res/TensorFlowLiteRecipes/Quantization_000/test.reverse
create mode 100644 res/TensorFlowLiteRecipes/ReLU6_000/test.recipe
create mode 100644 res/TensorFlowLiteRecipes/ReLU6_000/test.reverse
create mode 100644 res/TensorFlowLiteRecipes/ReLU_000/test.recipe
create mode 100644 res/TensorFlowLiteRecipes/ReLU_000/test.reverse
create mode 100644 res/TensorFlowLiteRecipes/Reshape_000/test.recipe
create mode 100644 res/TensorFlowLiteRecipes/Reshape_000/test.reverse
create mode 100644 res/TensorFlowLiteRecipes/Reshape_001/test.recipe
create mode 100644 res/TensorFlowLiteRecipes/Reshape_001/test.reverse
create mode 100644 res/TensorFlowLiteRecipes/Reshape_U8_000/test.recipe
create mode 100644 res/TensorFlowLiteRecipes/Reshape_U8_000/test.reverse
create mode 100644 res/TensorFlowLiteRecipes/Rsqrt_000/test.recipe
create mode 100644 res/TensorFlowLiteRecipes/Rsqrt_000/test.reverse
create mode 100644 res/TensorFlowLiteRecipes/Softmax_000/test.recipe
create mode 100644 res/TensorFlowLiteRecipes/Softmax_000/test.reverse
create mode 100644 res/TensorFlowLiteRecipes/Softmax_U8_000/test.recipe
create mode 100644 res/TensorFlowLiteRecipes/Softmax_U8_000/test.reverse
create mode 100644 res/TensorFlowLiteRecipes/Sqrt_000/test.recipe
create mode 100644 res/TensorFlowLiteRecipes/Sqrt_000/test.reverse
create mode 100644 res/TensorFlowLiteRecipes/Sub_000/test.recipe
create mode 100644 res/TensorFlowLiteRecipes/Sub_000/test.reverse
create mode 100644 res/TensorFlowLiteRecipes/Sub_001/test.recipe
create mode 100644 res/TensorFlowLiteRecipes/Sub_001/test.reverse
create mode 100644 res/TensorFlowLiteRecipes/Sub_U8_000/test.recipe
create mode 100644 res/TensorFlowLiteRecipes/Sub_U8_000/test.reverse
create mode 100644 res/TensorFlowLiteRecipes/Transpose_000/test.recipe
create mode 100644 res/TensorFlowLiteRecipes/Transpose_000/test.reverse
create mode 100644 res/TensorFlowLiteSchema/1.13.1/schema.fbs
create mode 100644 res/TensorFlowLiteSchema/1.14.0/schema.fbs
create mode 100644 res/TensorFlowLiteSchema/1.15.2/schema.fbs
create mode 100644 res/TensorFlowLiteSchema/2.1.0/schema.fbs
create mode 100644 res/TensorFlowLiteSchema/README.md
create mode 100644 res/TensorFlowLiteSchema/SCHEMA.lst
create mode 100755 res/TensorFlowLiteSchema/download.sh
create mode 100644 res/TensorFlowPythonExamples/.gitignore
create mode 100644 res/TensorFlowPythonExamples/README.md
create mode 100755 res/TensorFlowPythonExamples/examples/abs/__init__.py
create mode 100755 res/TensorFlowPythonExamples/examples/add/__init__.py
create mode 100755 res/TensorFlowPythonExamples/examples/argmax/__init__.py
create mode 100755 res/TensorFlowPythonExamples/examples/biasadd/__init__.py
create mode 100755 res/TensorFlowPythonExamples/examples/cos/__init__.py
create mode 100755 res/TensorFlowPythonExamples/examples/div/__init__.py
create mode 100755 res/TensorFlowPythonExamples/examples/elu/__init__.py
create mode 100644 res/TensorFlowPythonExamples/examples/exp/__init__.py
create mode 100755 res/TensorFlowPythonExamples/examples/floor/__init__.py
create mode 100755 res/TensorFlowPythonExamples/examples/floordiv/__init__.py
create mode 100755 res/TensorFlowPythonExamples/examples/greater/__init__.py
create mode 100755 res/TensorFlowPythonExamples/examples/greater_equal/__init__.py
create mode 100755 res/TensorFlowPythonExamples/examples/leaky_relu/__init__.py
create mode 100755 res/TensorFlowPythonExamples/examples/less/__init__.py
create mode 100755 res/TensorFlowPythonExamples/examples/less_equal/__init__.py
create mode 100755 res/TensorFlowPythonExamples/examples/logical_not/__init__.py
create mode 100755 res/TensorFlowPythonExamples/examples/logical_or/__init__.py
create mode 100755 res/TensorFlowPythonExamples/examples/matmul/__init__.py
create mode 100755 res/TensorFlowPythonExamples/examples/multiply/__init__.py
create mode 100755 res/TensorFlowPythonExamples/examples/not_equal/__init__.py
create mode 100755 res/TensorFlowPythonExamples/examples/pack/__init__.py
create mode 100755 res/TensorFlowPythonExamples/examples/pad/__init__.py
create mode 100755 res/TensorFlowPythonExamples/examples/pow/__init__.py
create mode 100755 res/TensorFlowPythonExamples/examples/prelu/__init__.py
create mode 100755 res/TensorFlowPythonExamples/examples/relu/__init__.py
create mode 100755 res/TensorFlowPythonExamples/examples/relu6/__init__.py
create mode 100644 res/TensorFlowPythonExamples/examples/reshape/__init.py__
create mode 100755 res/TensorFlowPythonExamples/examples/resize_bilinear/__init__.py
create mode 100755 res/TensorFlowPythonExamples/examples/resize_nearest_neighbor/__init__.py
create mode 100755 res/TensorFlowPythonExamples/examples/rsqrt/__init__.py
create mode 100755 res/TensorFlowPythonExamples/examples/sigmoid/__init__.py
create mode 100755 res/TensorFlowPythonExamples/examples/softmax/__init__.py
create mode 100755 res/TensorFlowPythonExamples/examples/sqrt/__init__.py
create mode 100755 res/TensorFlowPythonExamples/examples/subtract/__init__.py
create mode 100755 res/TensorFlowPythonExamples/examples/tanh/__init__.py
create mode 100755 res/TensorFlowPythonExamples/examples/yuv_to_rgb/__init__.py
create mode 100644 res/TensorFlowPythonExamples/requirements.txt
create mode 100755 res/TensorFlowPythonExamples/tfpem.py
mode change 100644 => 100755 res/TensorFlowTests/NET_0003/test.py
mode change 100644 => 100755 res/TensorFlowTests/NET_0004/test.py
create mode 100644 res/TensorFlowTests/UNIT_Maximum_000/test.info
create mode 100644 res/TensorFlowTests/UNIT_Maximum_000/test.pbtxt
create mode 100644 res/TensorFlowTests/UNIT_Maximum_001/test.info
create mode 100644 res/TensorFlowTests/UNIT_Maximum_001/test.pbtxt
create mode 100644 res/TensorFlowTests/UNIT_Maximum_002/test.info
create mode 100644 res/TensorFlowTests/UNIT_Maximum_002/test.pbtxt
delete mode 100644 runtime/contrib/README.md
delete mode 100644 runtime/contrib/custom_op/customOp-workflow.png
create mode 100644 runtime/contrib/heap_trace/src/aligned_alloc_stub.cc
create mode 100644 runtime/contrib/heap_trace/src/calloc_stub.cc
create mode 100644 runtime/contrib/heap_trace/src/cl_retain_mem_object_stub.cc
create mode 100644 runtime/contrib/heap_trace/src/memory_pool_for_symbol_searcher_internals.cc
create mode 100644 runtime/contrib/heap_trace/src/memory_pool_for_symbol_searcher_internals.h
create mode 100644 runtime/contrib/heap_trace/src/posix_memalign_stub.cc
create mode 100644 runtime/contrib/heap_trace/tests/src/aligned_alloc_interception_test.cc
create mode 100644 runtime/contrib/heap_trace/tests/src/calloc_interception_test.cc
create mode 100644 runtime/contrib/heap_trace/tests/src/cl_retain_mem_object_interception_test.cc
create mode 100644 runtime/contrib/heap_trace/tests/src/memory_pool_for_symbol_searcher_internals_test.cc
create mode 100644 runtime/contrib/heap_trace/tests/src/posix_memalign_interception_test.cc
create mode 100644 runtime/contrib/hi_perf_cpu/CMakeLists.txt
create mode 100644 runtime/contrib/hi_perf_cpu/HighPerformanceBackend.test.cc
create mode 100644 runtime/contrib/hi_perf_cpu/KernelGenerator.cc
create mode 100644 runtime/contrib/hi_perf_cpu/KernelGenerator.h
create mode 100644 runtime/contrib/hi_perf_cpu/TensorBuilder.cc
create mode 100644 runtime/contrib/hi_perf_cpu/TensorBuilder.h
create mode 100644 runtime/contrib/style_transfer_app/CMakeLists.txt
create mode 100644 runtime/contrib/style_transfer_app/README.md
create mode 100644 runtime/contrib/style_transfer_app/src/args.cc
create mode 100644 runtime/contrib/style_transfer_app/src/args.h
create mode 100644 runtime/contrib/style_transfer_app/src/bitmap_helper.cc
create mode 100644 runtime/contrib/style_transfer_app/src/bitmap_helper.h
create mode 100644 runtime/contrib/style_transfer_app/src/jpeg_helper.cc
create mode 100644 runtime/contrib/style_transfer_app/src/jpeg_helper.h
create mode 100644 runtime/contrib/style_transfer_app/src/style_transfer_app.cc
delete mode 100644 runtime/libs/cpp14/CMakeLists.txt
delete mode 100644 runtime/libs/cpp14/include/cpp14/memory.h
create mode 100644 runtime/libs/jsoncpp/.FORMATDENY
delete mode 100644 runtime/libs/tflite/port/1.13.1/include/tflite/ext/kernels/Abs.h
delete mode 100644 runtime/libs/tflite/port/1.13.1/include/tflite/ext/kernels/TensorFlowMax.h
delete mode 100644 runtime/libs/tflite/port/1.13.1/include/tflite/ext/kernels/TensorFlowSum.h
delete mode 100644 runtime/libs/tflite/port/1.13.1/src/kernels/Abs.cpp
delete mode 100644 runtime/libs/tflite/port/1.13.1/src/kernels/TensorFlowMax.cpp
delete mode 100644 runtime/libs/tflite/port/1.13.1/src/kernels/TensorFlowSum.cpp
delete mode 100644 runtime/neurun/CMakeLists.txt
delete mode 100644 runtime/neurun/api/CMakeLists.txt
delete mode 100644 runtime/neurun/api/include/nnfw.h
delete mode 100644 runtime/neurun/api/include/nnfw_debug.h
delete mode 100644 runtime/neurun/api/include/nnfw_dev.h
delete mode 100644 runtime/neurun/api/src/CustomKernel.cc
delete mode 100644 runtime/neurun/api/src/CustomKernel.h
delete mode 100644 runtime/neurun/api/src/CustomKernelRegistry.cc
delete mode 100644 runtime/neurun/api/src/CustomKernelRegistry.h
delete mode 100644 runtime/neurun/api/src/OpMap.lst
delete mode 100644 runtime/neurun/api/src/nnfw_api.cc
delete mode 100644 runtime/neurun/api/src/nnfw_api_internal.cc
delete mode 100644 runtime/neurun/api/src/nnfw_api_internal.h
delete mode 100644 runtime/neurun/api/src/nnfw_debug.cc
delete mode 100644 runtime/neurun/api/src/nnfw_debug_internal.cc
delete mode 100644 runtime/neurun/api/src/nnfw_debug_internal.h
delete mode 100644 runtime/neurun/backend/CMakeLists.txt
delete mode 100644 runtime/neurun/backend/acl_cl/Backend.h
delete mode 100644 runtime/neurun/backend/acl_cl/CLTimer.h
delete mode 100644 runtime/neurun/backend/acl_cl/CMakeLists.txt
delete mode 100644 runtime/neurun/backend/acl_cl/Config.cc
delete mode 100644 runtime/neurun/backend/acl_cl/Config.h
delete mode 100644 runtime/neurun/backend/acl_cl/ConstantInitializer.cc
delete mode 100644 runtime/neurun/backend/acl_cl/ConstantInitializer.h
delete mode 100644 runtime/neurun/backend/acl_cl/KernelGenerator.cc
delete mode 100644 runtime/neurun/backend/acl_cl/KernelGenerator.h
delete mode 100644 runtime/neurun/backend/acl_cl/PluginClassesAllocator.cc
delete mode 100644 runtime/neurun/backend/acl_cl/ShapeFixer.cc
delete mode 100644 runtime/neurun/backend/acl_cl/ShapeFixer.h
delete mode 100644 runtime/neurun/backend/acl_cl/TensorBuilder.h
delete mode 100644 runtime/neurun/backend/acl_cl/TensorManager.h
delete mode 100644 runtime/neurun/backend/acl_cl/TensorRegister.h
delete mode 100644 runtime/neurun/backend/acl_cl/operand/CLSubTensor.cc
delete mode 100644 runtime/neurun/backend/acl_cl/operand/CLSubTensor.h
delete mode 100644 runtime/neurun/backend/acl_cl/operand/CLTensor.cc
delete mode 100644 runtime/neurun/backend/acl_cl/operand/CLTensor.h
delete mode 100644 runtime/neurun/backend/acl_cl/operand/ICLTensor.cc
delete mode 100644 runtime/neurun/backend/acl_cl/operand/ICLTensor.h
delete mode 100644 runtime/neurun/backend/acl_common/AclFunction.h
delete mode 100644 runtime/neurun/backend/acl_common/AclInternalBufferManager.h
delete mode 100644 runtime/neurun/backend/acl_common/AclLinearMemoryManager.h
delete mode 100644 runtime/neurun/backend/acl_common/AclMemoryManager.h
delete mode 100644 runtime/neurun/backend/acl_common/AclTensorManager.h
delete mode 100644 runtime/neurun/backend/acl_common/AclTensorRegister.cc
delete mode 100644 runtime/neurun/backend/acl_common/AclTensorRegister.h
delete mode 100644 runtime/neurun/backend/acl_common/CMakeLists.txt
delete mode 100644 runtime/neurun/backend/acl_common/Convert.cc
delete mode 100644 runtime/neurun/backend/acl_common/Convert.h
delete mode 100644 runtime/neurun/backend/acl_common/IACLTensor.cc
delete mode 100644 runtime/neurun/backend/acl_common/IACLTensor.h
delete mode 100644 runtime/neurun/backend/acl_common/Swizzle.h
delete mode 100644 runtime/neurun/backend/acl_common/TemplTensorBuilder.h
delete mode 100644 runtime/neurun/backend/acl_neon/Backend.h
delete mode 100644 runtime/neurun/backend/acl_neon/CMakeLists.txt
delete mode 100644 runtime/neurun/backend/acl_neon/Config.cc
delete mode 100644 runtime/neurun/backend/acl_neon/Config.h
delete mode 100644 runtime/neurun/backend/acl_neon/ConstantInitializer.cc
delete mode 100644 runtime/neurun/backend/acl_neon/ConstantInitializer.h
delete mode 100644 runtime/neurun/backend/acl_neon/KernelGenerator.cc
delete mode 100644 runtime/neurun/backend/acl_neon/KernelGenerator.h
delete mode 100644 runtime/neurun/backend/acl_neon/PluginClassesAllocator.cc
delete mode 100644 runtime/neurun/backend/acl_neon/ShapeFixer.cc
delete mode 100644 runtime/neurun/backend/acl_neon/ShapeFixer.h
delete mode 100644 runtime/neurun/backend/acl_neon/TensorBuilder.h
delete mode 100644 runtime/neurun/backend/acl_neon/TensorManager.h
delete mode 100644 runtime/neurun/backend/acl_neon/TensorRegister.cc
delete mode 100644 runtime/neurun/backend/acl_neon/TensorRegister.h
delete mode 100644 runtime/neurun/backend/acl_neon/operand/INETensor.cc
delete mode 100644 runtime/neurun/backend/acl_neon/operand/INETensor.h
delete mode 100644 runtime/neurun/backend/acl_neon/operand/NESubTensor.cc
delete mode 100644 runtime/neurun/backend/acl_neon/operand/NESubTensor.h
delete mode 100644 runtime/neurun/backend/acl_neon/operand/NETensor.cc
delete mode 100644 runtime/neurun/backend/acl_neon/operand/NETensor.h
delete mode 100644 runtime/neurun/backend/cpu/Backend.h
delete mode 100644 runtime/neurun/backend/cpu/CMakeLists.txt
delete mode 100644 runtime/neurun/backend/cpu/Config.cc
delete mode 100644 runtime/neurun/backend/cpu/Config.h
delete mode 100644 runtime/neurun/backend/cpu/ConstantInitializer.cc
delete mode 100644 runtime/neurun/backend/cpu/ConstantInitializer.h
delete mode 100644 runtime/neurun/backend/cpu/KernelGenerator.cc
delete mode 100644 runtime/neurun/backend/cpu/KernelGenerator.h
delete mode 100644 runtime/neurun/backend/cpu/MemoryManager.cc
delete mode 100644 runtime/neurun/backend/cpu/MemoryManager.h
delete mode 100644 runtime/neurun/backend/cpu/PluginClassesAllocator.cc
delete mode 100644 runtime/neurun/backend/cpu/ShapeFixer.cc
delete mode 100644 runtime/neurun/backend/cpu/ShapeFixer.h
delete mode 100644 runtime/neurun/backend/cpu/TensorBuilder.cc
delete mode 100644 runtime/neurun/backend/cpu/TensorBuilder.h
delete mode 100644 runtime/neurun/backend/cpu/TensorManager.cc
delete mode 100644 runtime/neurun/backend/cpu/TensorManager.h
delete mode 100644 runtime/neurun/backend/cpu/TensorRegister.cc
delete mode 100644 runtime/neurun/backend/cpu/TensorRegister.h
delete mode 100644 runtime/neurun/backend/cpu/kernel/AddLayer.cc
delete mode 100644 runtime/neurun/backend/cpu/kernel/AddLayer.h
delete mode 100644 runtime/neurun/backend/cpu/kernel/AvgPoolLayer.cc
delete mode 100644 runtime/neurun/backend/cpu/kernel/AvgPoolLayer.h
delete mode 100644 runtime/neurun/backend/cpu/kernel/ConcatLayer.cc
delete mode 100644 runtime/neurun/backend/cpu/kernel/ConcatLayer.h
delete mode 100644 runtime/neurun/backend/cpu/kernel/ConvolutionLayer.cc
delete mode 100644 runtime/neurun/backend/cpu/kernel/ConvolutionLayer.h
delete mode 100644 runtime/neurun/backend/cpu/kernel/DepthwiseConvolutionLayer.cc
delete mode 100644 runtime/neurun/backend/cpu/kernel/DepthwiseConvolutionLayer.h
delete mode 100644 runtime/neurun/backend/cpu/kernel/FullyConnectedLayer.cc
delete mode 100644 runtime/neurun/backend/cpu/kernel/FullyConnectedLayer.h
delete mode 100644 runtime/neurun/backend/cpu/kernel/GatherLayer.cc
delete mode 100644 runtime/neurun/backend/cpu/kernel/GatherLayer.h
delete mode 100644 runtime/neurun/backend/cpu/kernel/LogisticLayer.cc
delete mode 100644 runtime/neurun/backend/cpu/kernel/LogisticLayer.h
delete mode 100644 runtime/neurun/backend/cpu/kernel/MaxPoolLayer.cc
delete mode 100644 runtime/neurun/backend/cpu/kernel/MaxPoolLayer.h
delete mode 100644 runtime/neurun/backend/cpu/kernel/MulLayer.cc
delete mode 100644 runtime/neurun/backend/cpu/kernel/MulLayer.h
delete mode 100644 runtime/neurun/backend/cpu/kernel/OperationUtils.cc
delete mode 100644 runtime/neurun/backend/cpu/kernel/OperationUtils.h
delete mode 100644 runtime/neurun/backend/cpu/kernel/PadLayer.cc
delete mode 100644 runtime/neurun/backend/cpu/kernel/PadLayer.h
delete mode 100644 runtime/neurun/backend/cpu/kernel/PermuteLayer.cc
delete mode 100644 runtime/neurun/backend/cpu/kernel/PermuteLayer.h
delete mode 100644 runtime/neurun/backend/cpu/kernel/ReshapeLayer.cc
delete mode 100644 runtime/neurun/backend/cpu/kernel/ReshapeLayer.h
delete mode 100644 runtime/neurun/backend/cpu/kernel/SoftMaxLayer.cc
delete mode 100644 runtime/neurun/backend/cpu/kernel/SoftMaxLayer.h
delete mode 100644 runtime/neurun/backend/cpu/kernel/SubLayer.cc
delete mode 100644 runtime/neurun/backend/cpu/kernel/SubLayer.h
delete mode 100644 runtime/neurun/backend/cpu/operand/Tensor.cc
delete mode 100644 runtime/neurun/backend/cpu/operand/Tensor.h
delete mode 100644 runtime/neurun/backend/cpu_common/CMakeLists.txt
delete mode 100644 runtime/neurun/backend/cpu_common/MemoryPlanner.cc
delete mode 100644 runtime/neurun/backend/cpu_common/MemoryPlanner.h
delete mode 100644 runtime/neurun/backend/cpu_common/MemoryPlanner.test.cc
delete mode 100644 runtime/neurun/backend/cpu_common/MemoryPlannerFactory.cc
delete mode 100644 runtime/neurun/backend/cpu_common/MemoryPlannerFactory.h
delete mode 100644 runtime/neurun/backend/hi_perf_cpu/CMakeLists.txt
delete mode 100644 runtime/neurun/backend/hi_perf_cpu/HighPerformanceBackend.test.cc
delete mode 100644 runtime/neurun/backend/hi_perf_cpu/KernelGenerator.cc
delete mode 100644 runtime/neurun/backend/hi_perf_cpu/KernelGenerator.h
delete mode 100644 runtime/neurun/backend/hi_perf_cpu/TensorBuilder.cc
delete mode 100644 runtime/neurun/backend/hi_perf_cpu/TensorBuilder.h
delete mode 100644 runtime/neurun/backend/srcn/Backend.h
delete mode 100644 runtime/neurun/backend/srcn/CMakeLists.txt
delete mode 100644 runtime/neurun/backend/srcn/Config.cc
delete mode 100644 runtime/neurun/backend/srcn/Config.h
delete mode 100644 runtime/neurun/backend/srcn/ConstantInitializer.cc
delete mode 100644 runtime/neurun/backend/srcn/ConstantInitializer.h
delete mode 100644 runtime/neurun/backend/srcn/Convert.cc
delete mode 100644 runtime/neurun/backend/srcn/Convert.h
delete mode 100644 runtime/neurun/backend/srcn/KernelGenerator.cc
delete mode 100644 runtime/neurun/backend/srcn/KernelGenerator.h
delete mode 100644 runtime/neurun/backend/srcn/MemoryManager.cc
delete mode 100644 runtime/neurun/backend/srcn/MemoryManager.h
delete mode 100644 runtime/neurun/backend/srcn/PluginClassesAllocator.cc
delete mode 100644 runtime/neurun/backend/srcn/ShapeFixer.cc
delete mode 100644 runtime/neurun/backend/srcn/ShapeFixer.h
delete mode 100644 runtime/neurun/backend/srcn/Swizzle.h
delete mode 100644 runtime/neurun/backend/srcn/TensorBuilder.cc
delete mode 100644 runtime/neurun/backend/srcn/TensorBuilder.h
delete mode 100644 runtime/neurun/backend/srcn/TensorManager.cc
delete mode 100644 runtime/neurun/backend/srcn/TensorManager.h
delete mode 100644 runtime/neurun/backend/srcn/TensorRegister.cc
delete mode 100644 runtime/neurun/backend/srcn/TensorRegister.h
delete mode 100644 runtime/neurun/backend/srcn/kernel/AddLayer.cc
delete mode 100644 runtime/neurun/backend/srcn/kernel/AddLayer.h
delete mode 100644 runtime/neurun/backend/srcn/kernel/ConvolutionLayer.cc
delete mode 100644 runtime/neurun/backend/srcn/kernel/ConvolutionLayer.h
delete mode 100644 runtime/neurun/backend/srcn/kernel/DepthwiseConvolutionLayer.cc
delete mode 100644 runtime/neurun/backend/srcn/kernel/DepthwiseConvolutionLayer.h
delete mode 100644 runtime/neurun/backend/srcn/kernel/InstanceNormLayer.cc
delete mode 100644 runtime/neurun/backend/srcn/kernel/InstanceNormLayer.h
delete mode 100644 runtime/neurun/backend/srcn/kernel/OperationUtils.cc
delete mode 100644 runtime/neurun/backend/srcn/kernel/OperationUtils.h
delete mode 100644 runtime/neurun/backend/srcn/kernel/TransposeConvLayer.cc
delete mode 100644 runtime/neurun/backend/srcn/kernel/TransposeConvLayer.h
delete mode 100644 runtime/neurun/backend/srcn/operand/Tensor.cc
delete mode 100644 runtime/neurun/backend/srcn/operand/Tensor.h
delete mode 100644 runtime/neurun/core/CMakeLists.txt
delete mode 100644 runtime/neurun/core/include/backend/Backend.h
delete mode 100644 runtime/neurun/core/include/backend/CustomKernelBuilder.h
delete mode 100644 runtime/neurun/core/include/backend/ExecTime.h
delete mode 100644 runtime/neurun/core/include/backend/IConfig.h
delete mode 100644 runtime/neurun/core/include/backend/IConstantInitializer.h
delete mode 100644 runtime/neurun/core/include/backend/IKernelGenerator.h
delete mode 100644 runtime/neurun/core/include/backend/IMemoryManager.h
delete mode 100644 runtime/neurun/core/include/backend/IShapeFixer.h
delete mode 100644 runtime/neurun/core/include/backend/ITensorBuilder.h
delete mode 100644 runtime/neurun/core/include/backend/ITensorManager.h
delete mode 100644 runtime/neurun/core/include/backend/ITensorRegister.h
delete mode 100644 runtime/neurun/core/include/backend/JSONExecTime.h
delete mode 100644 runtime/neurun/core/include/backend/operand/ITensor.h
delete mode 100644 runtime/neurun/core/include/compiler/Compiler.h
delete mode 100644 runtime/neurun/core/include/compiler/IExecutionBuilder.h
delete mode 100644 runtime/neurun/core/include/compiler/SubTensorInfo.h
delete mode 100644 runtime/neurun/core/include/exec/Execution.h
delete mode 100644 runtime/neurun/core/include/exec/ExecutionObservers.h
delete mode 100644 runtime/neurun/core/include/exec/IExecutor.h
delete mode 100644 runtime/neurun/core/include/exec/IFunction.h
delete mode 100644 runtime/neurun/core/include/exec/IODescription.h
delete mode 100644 runtime/neurun/core/include/exec/NopFunction.h
delete mode 100644 runtime/neurun/core/include/ir/BackendSet.h
delete mode 100644 runtime/neurun/core/include/ir/Data.h
delete mode 100644 runtime/neurun/core/include/ir/DataType.h
delete mode 100644 runtime/neurun/core/include/ir/Graph.h
delete mode 100644 runtime/neurun/core/include/ir/Index.h
delete mode 100644 runtime/neurun/core/include/ir/InternalType.h
delete mode 100644 runtime/neurun/core/include/ir/Layout.h
delete mode 100644 runtime/neurun/core/include/ir/LowerInfoMap.h
delete mode 100644 runtime/neurun/core/include/ir/OpCode.h
delete mode 100644 runtime/neurun/core/include/ir/OpSequence.h
delete mode 100644 runtime/neurun/core/include/ir/Operand.h
delete mode 100644 runtime/neurun/core/include/ir/OperandConstraint.h
delete mode 100644 runtime/neurun/core/include/ir/OperandIndexMap.h
delete mode 100644 runtime/neurun/core/include/ir/OperandIndexSequence.h
delete mode 100644 runtime/neurun/core/include/ir/OperandInfo.h
delete mode 100644 runtime/neurun/core/include/ir/Operands.h
delete mode 100644 runtime/neurun/core/include/ir/Operation.h
delete mode 100644 runtime/neurun/core/include/ir/OperationIndexList.h
delete mode 100644 runtime/neurun/core/include/ir/OperationIndexMap.h
delete mode 100644 runtime/neurun/core/include/ir/OperationVisitor.h
delete mode 100644 runtime/neurun/core/include/ir/Operations.Include.h
delete mode 100644 runtime/neurun/core/include/ir/Operations.h
delete mode 100644 runtime/neurun/core/include/ir/Operations.lst
delete mode 100644 runtime/neurun/core/include/ir/Shape.h
delete mode 100644 runtime/neurun/core/include/ir/Subgraphs.h
delete mode 100644 runtime/neurun/core/include/ir/TypeInfo.h
delete mode 100644 runtime/neurun/core/include/ir/operand/LowerInfo.h
delete mode 100644 runtime/neurun/core/include/ir/operand/ParentInfo.h
delete mode 100644 runtime/neurun/core/include/ir/operand/PermuteFactor.h
delete mode 100644 runtime/neurun/core/include/ir/operation/Abs.h
delete mode 100644 runtime/neurun/core/include/ir/operation/Add.h
delete mode 100644 runtime/neurun/core/include/ir/operation/ArgMax.h
delete mode 100644 runtime/neurun/core/include/ir/operation/AvgPool2D.h
delete mode 100644 runtime/neurun/core/include/ir/operation/BatchToSpaceND.h
delete mode 100644 runtime/neurun/core/include/ir/operation/Cast.h
delete mode 100644 runtime/neurun/core/include/ir/operation/Comparison.h
delete mode 100644 runtime/neurun/core/include/ir/operation/Concat.h
delete mode 100644 runtime/neurun/core/include/ir/operation/Conv2D.h
delete mode 100644 runtime/neurun/core/include/ir/operation/Custom.h
delete mode 100644 runtime/neurun/core/include/ir/operation/DepthToSpace.h
delete mode 100644 runtime/neurun/core/include/ir/operation/DepthwiseConv2D.h
delete mode 100644 runtime/neurun/core/include/ir/operation/Dequantize.h
delete mode 100644 runtime/neurun/core/include/ir/operation/Div.h
delete mode 100644 runtime/neurun/core/include/ir/operation/EmbeddingLookup.h
delete mode 100644 runtime/neurun/core/include/ir/operation/Exp.h
delete mode 100644 runtime/neurun/core/include/ir/operation/Floor.h
delete mode 100644 runtime/neurun/core/include/ir/operation/FullyConnected.h
delete mode 100644 runtime/neurun/core/include/ir/operation/Gather.h
delete mode 100644 runtime/neurun/core/include/ir/operation/HashtableLookup.h
delete mode 100644 runtime/neurun/core/include/ir/operation/InstanceNorm.h
delete mode 100644 runtime/neurun/core/include/ir/operation/L2Normalization.h
delete mode 100644 runtime/neurun/core/include/ir/operation/L2Pool2D.h
delete mode 100644 runtime/neurun/core/include/ir/operation/LSTM.h
delete mode 100644 runtime/neurun/core/include/ir/operation/LocalResponseNormalization.h
delete mode 100644 runtime/neurun/core/include/ir/operation/LogicalAnd.h
delete mode 100644 runtime/neurun/core/include/ir/operation/LogicalNot.h
delete mode 100644 runtime/neurun/core/include/ir/operation/LogicalOr.h
delete mode 100644 runtime/neurun/core/include/ir/operation/Logistic.h
delete mode 100644 runtime/neurun/core/include/ir/operation/LowerInfo.h
delete mode 100644 runtime/neurun/core/include/ir/operation/Max.h
delete mode 100644 runtime/neurun/core/include/ir/operation/MaxPool2D.h
delete mode 100644 runtime/neurun/core/include/ir/operation/Mean.h
delete mode 100644 runtime/neurun/core/include/ir/operation/Min.h
delete mode 100644 runtime/neurun/core/include/ir/operation/Mul.h
delete mode 100644 runtime/neurun/core/include/ir/operation/Neg.h
delete mode 100644 runtime/neurun/core/include/ir/operation/OneHot.h
delete mode 100644 runtime/neurun/core/include/ir/operation/PReLU.h
delete mode 100644 runtime/neurun/core/include/ir/operation/Pack.h
delete mode 100644 runtime/neurun/core/include/ir/operation/Pad.h
delete mode 100644 runtime/neurun/core/include/ir/operation/Permute.h
delete mode 100644 runtime/neurun/core/include/ir/operation/RNN.h
delete mode 100644 runtime/neurun/core/include/ir/operation/RSQRT.h
delete mode 100644 runtime/neurun/core/include/ir/operation/ReLU.h
delete mode 100644 runtime/neurun/core/include/ir/operation/ReLU1.h
delete mode 100644 runtime/neurun/core/include/ir/operation/ReLU6.h
delete mode 100644 runtime/neurun/core/include/ir/operation/ReduceMax.h
delete mode 100644 runtime/neurun/core/include/ir/operation/ReduceMin.h
delete mode 100644 runtime/neurun/core/include/ir/operation/ReduceSum.h
delete mode 100644 runtime/neurun/core/include/ir/operation/Reshape.h
delete mode 100644 runtime/neurun/core/include/ir/operation/ResizeBilinear.h
delete mode 100644 runtime/neurun/core/include/ir/operation/SQRT.h
delete mode 100644 runtime/neurun/core/include/ir/operation/Slice.h
delete mode 100644 runtime/neurun/core/include/ir/operation/Softmax.h
delete mode 100644 runtime/neurun/core/include/ir/operation/SpaceToBatchND.h
delete mode 100644 runtime/neurun/core/include/ir/operation/SpaceToDepth.h
delete mode 100644 runtime/neurun/core/include/ir/operation/Split.h
delete mode 100644 runtime/neurun/core/include/ir/operation/SquaredDifference.h
delete mode 100644 runtime/neurun/core/include/ir/operation/Squeeze.h
delete mode 100644 runtime/neurun/core/include/ir/operation/StridedSlice.h
delete mode 100644 runtime/neurun/core/include/ir/operation/Sub.h
delete mode 100644 runtime/neurun/core/include/ir/operation/Tanh.h
delete mode 100644 runtime/neurun/core/include/ir/operation/TopKV2.h
delete mode 100644 runtime/neurun/core/include/ir/operation/Transpose.h
delete mode 100644 runtime/neurun/core/include/ir/operation/TransposeConv.h
delete mode 100644 runtime/neurun/core/include/ir/operation/Unpack.h
delete mode 100644 runtime/neurun/core/include/util/Config.lst
delete mode 100644 runtime/neurun/core/include/util/ConfigSource.h
delete mode 100644 runtime/neurun/core/include/util/Coordinates.h
delete mode 100644 runtime/neurun/core/include/util/EnvConfigSource.h
delete mode 100644 runtime/neurun/core/include/util/EventCollectorGlobal.h
delete mode 100644 runtime/neurun/core/include/util/GeneralConfigSource.h
delete mode 100644 runtime/neurun/core/include/util/IConfigSource.h
delete mode 100644 runtime/neurun/core/include/util/ITimer.h
delete mode 100644 runtime/neurun/core/include/util/Index.h
delete mode 100644 runtime/neurun/core/include/util/ObjectManager.h
delete mode 100644 runtime/neurun/core/include/util/Padding.h
delete mode 100644 runtime/neurun/core/include/util/Set.h
delete mode 100644 runtime/neurun/core/include/util/ShapeInference.h
delete mode 100644 runtime/neurun/core/include/util/Utils.h
delete mode 100644 runtime/neurun/core/include/util/feature/Coordinate4D.h
delete mode 100644 runtime/neurun/core/include/util/feature/nchw/Reader.h
delete mode 100644 runtime/neurun/core/include/util/feature/nchw/View.h
delete mode 100644 runtime/neurun/core/include/util/feature/nhwc/Reader.h
delete mode 100644 runtime/neurun/core/include/util/feature/nhwc/View.h
delete mode 100644 runtime/neurun/core/include/util/logging.h
delete mode 100644 runtime/neurun/core/src/backend/Backend.cc
delete mode 100644 runtime/neurun/core/src/backend/BackendManager.cc
delete mode 100644 runtime/neurun/core/src/backend/BackendManager.h
delete mode 100644 runtime/neurun/core/src/backend/ExecTime.cc
delete mode 100644 runtime/neurun/core/src/backend/JSONExecTime.cc
delete mode 100644 runtime/neurun/core/src/compiler/BackendResolver.cc
delete mode 100644 runtime/neurun/core/src/compiler/BackendResolver.h
delete mode 100644 runtime/neurun/core/src/compiler/CodeWithInfo.h
delete mode 100644 runtime/neurun/core/src/compiler/Compiler.cc
delete mode 100644 runtime/neurun/core/src/compiler/ExecutorFactory.cc
delete mode 100644 runtime/neurun/core/src/compiler/ExecutorFactory.h
delete mode 100644 runtime/neurun/core/src/compiler/HEScheduler.cc
delete mode 100644 runtime/neurun/core/src/compiler/HEScheduler.h
delete mode 100644 runtime/neurun/core/src/compiler/IScheduler.h
delete mode 100644 runtime/neurun/core/src/compiler/Linear.cc
delete mode 100644 runtime/neurun/core/src/compiler/Linear.h
delete mode 100644 runtime/neurun/core/src/compiler/ManualScheduler.cc
delete mode 100644 runtime/neurun/core/src/compiler/ManualScheduler.h
delete mode 100644 runtime/neurun/core/src/compiler/OperandContext.cc
delete mode 100644 runtime/neurun/core/src/compiler/OperandContext.h
delete mode 100644 runtime/neurun/core/src/compiler/OperationValidator.cc
delete mode 100644 runtime/neurun/core/src/compiler/OperationValidator.h
delete mode 100644 runtime/neurun/core/src/compiler/ParamChecker.cc
delete mode 100644 runtime/neurun/core/src/compiler/ParamChecker.h
delete mode 100644 runtime/neurun/core/src/compiler/SubTensorAnalyzer.cc
delete mode 100644 runtime/neurun/core/src/compiler/SubTensorAnalyzer.h
delete mode 100644 runtime/neurun/core/src/dumper/dot/DotBuilder.cc
delete mode 100644 runtime/neurun/core/src/dumper/dot/DotBuilder.h
delete mode 100644 runtime/neurun/core/src/dumper/dot/DotDumper.cc
delete mode 100644 runtime/neurun/core/src/dumper/dot/DotDumper.h
delete mode 100644 runtime/neurun/core/src/dumper/dot/DotSubgraphInfo.cc
delete mode 100644 runtime/neurun/core/src/dumper/dot/DotSubgraphInfo.h
delete mode 100644 runtime/neurun/core/src/dumper/dot/Node.cc
delete mode 100644 runtime/neurun/core/src/dumper/dot/Node.h
delete mode 100644 runtime/neurun/core/src/dumper/dot/OperandNode.cc
delete mode 100644 runtime/neurun/core/src/dumper/dot/OperandNode.h
delete mode 100644 runtime/neurun/core/src/dumper/dot/OperationNode.cc
delete mode 100644 runtime/neurun/core/src/dumper/dot/OperationNode.h
delete mode 100644 runtime/neurun/core/src/exec/DataflowExecutor.cc
delete mode 100644 runtime/neurun/core/src/exec/DataflowExecutor.h
delete mode 100644 runtime/neurun/core/src/exec/Execution.cc
delete mode 100644 runtime/neurun/core/src/exec/ExecutionObservee.cc
delete mode 100644 runtime/neurun/core/src/exec/ExecutionObservee.h
delete mode 100644 runtime/neurun/core/src/exec/ExecutionObservers.cc
delete mode 100644 runtime/neurun/core/src/exec/ExecutorBase.cc
delete mode 100644 runtime/neurun/core/src/exec/ExecutorBase.h
delete mode 100644 runtime/neurun/core/src/exec/FunctionSequence.cc
delete mode 100644 runtime/neurun/core/src/exec/FunctionSequence.h
delete mode 100644 runtime/neurun/core/src/exec/Job.cc
delete mode 100644 runtime/neurun/core/src/exec/Job.h
delete mode 100644 runtime/neurun/core/src/exec/LinearExecutor.cc
delete mode 100644 runtime/neurun/core/src/exec/LinearExecutor.h
delete mode 100644 runtime/neurun/core/src/exec/ParallelExecutor.cc
delete mode 100644 runtime/neurun/core/src/exec/ParallelExecutor.h
delete mode 100644 runtime/neurun/core/src/exec/ParallelScheduler.cc
delete mode 100644 runtime/neurun/core/src/exec/ParallelScheduler.h
delete mode 100644 runtime/neurun/core/src/exec/Sink.h
delete mode 100644 runtime/neurun/core/src/exec/Source.h
delete mode 100644 runtime/neurun/core/src/exec/ThreadPool.cc
delete mode 100644 runtime/neurun/core/src/exec/ThreadPool.h
delete mode 100644 runtime/neurun/core/src/exec/WorkQueue.cc
delete mode 100644 runtime/neurun/core/src/exec/WorkQueue.h
delete mode 100644 runtime/neurun/core/src/exec/interp/Buffer.h
delete mode 100644 runtime/neurun/core/src/exec/interp/ExecEnv.h
delete mode 100644 runtime/neurun/core/src/exec/interp/ExecManager.cc
delete mode 100644 runtime/neurun/core/src/exec/interp/ExecManager.h
delete mode 100644 runtime/neurun/core/src/exec/interp/Interpreter.cc
delete mode 100644 runtime/neurun/core/src/exec/interp/Interpreter.h
delete mode 100644 runtime/neurun/core/src/exec/interp/Registration.h
delete mode 100644 runtime/neurun/core/src/exec/interp/Tensor.cc
delete mode 100644 runtime/neurun/core/src/exec/interp/Tensor.h
delete mode 100644 runtime/neurun/core/src/exec/interp/operations/AvgPool2D.cc
delete mode 100644 runtime/neurun/core/src/exec/interp/operations/BinaryArithmeticOps.cc
delete mode 100644 runtime/neurun/core/src/exec/interp/operations/Concat.cc
delete mode 100644 runtime/neurun/core/src/exec/interp/operations/Conv2D.cc
delete mode 100644 runtime/neurun/core/src/exec/interp/operations/DepthwiseConv.cc
delete mode 100644 runtime/neurun/core/src/exec/interp/operations/FullyConnected.cc
delete mode 100644 runtime/neurun/core/src/exec/interp/operations/Gather.cc
delete mode 100644 runtime/neurun/core/src/exec/interp/operations/InstanceNorm.cc
delete mode 100644 runtime/neurun/core/src/exec/interp/operations/Logistic.cc
delete mode 100644 runtime/neurun/core/src/exec/interp/operations/MaxPool2D.cc
delete mode 100644 runtime/neurun/core/src/exec/interp/operations/OperationUtil.h
delete mode 100644 runtime/neurun/core/src/exec/interp/operations/Pad.cc
delete mode 100644 runtime/neurun/core/src/exec/interp/operations/Reshape.cc
delete mode 100644 runtime/neurun/core/src/exec/interp/operations/SoftMax.cc
delete mode 100644 runtime/neurun/core/src/exec/interp/operations/TransposeConv.cc
delete mode 100644 runtime/neurun/core/src/exec/interp/operations/UnaryActivations.cc
delete mode 100644 runtime/neurun/core/src/ir/Graph.cc
delete mode 100644 runtime/neurun/core/src/ir/GraphIterator.cc
delete mode 100644 runtime/neurun/core/src/ir/GraphIterator.h
delete mode 100644 runtime/neurun/core/src/ir/LayoutSet.cc
delete mode 100644 runtime/neurun/core/src/ir/LayoutSet.h
delete mode 100644 runtime/neurun/core/src/ir/OpCode.cc
delete mode 100644 runtime/neurun/core/src/ir/OpSequence.cc
delete mode 100644 runtime/neurun/core/src/ir/Operand.cc
delete mode 100644 runtime/neurun/core/src/ir/OperandIndexSequence.cc
delete mode 100644 runtime/neurun/core/src/ir/Operation.cc
delete mode 100644 runtime/neurun/core/src/ir/OperationIndexList.cc
delete mode 100644 runtime/neurun/core/src/ir/Shape.cc
delete mode 100644 runtime/neurun/core/src/ir/Subgraphs.cc
delete mode 100644 runtime/neurun/core/src/ir/TypeInfo.cc
delete mode 100644 runtime/neurun/core/src/ir/dumper/Dumper.cc
delete mode 100644 runtime/neurun/core/src/ir/dumper/Dumper.h
delete mode 100644 runtime/neurun/core/src/ir/operand/Shape4DConvert.h
delete mode 100644 runtime/neurun/core/src/ir/operation/Abs.cc
delete mode 100644 runtime/neurun/core/src/ir/operation/Add.cc
delete mode 100644 runtime/neurun/core/src/ir/operation/ArgMax.cc
delete mode 100644 runtime/neurun/core/src/ir/operation/AvgPool2D.cc
delete mode 100644 runtime/neurun/core/src/ir/operation/BatchToSpaceND.cc
delete mode 100644 runtime/neurun/core/src/ir/operation/Cast.cc
delete mode 100644 runtime/neurun/core/src/ir/operation/Comparison.cc
delete mode 100644 runtime/neurun/core/src/ir/operation/Concat.cc
delete mode 100644 runtime/neurun/core/src/ir/operation/Conv2D.cc
delete mode 100644 runtime/neurun/core/src/ir/operation/Custom.cc
delete mode 100644 runtime/neurun/core/src/ir/operation/DepthToSpace.cc
delete mode 100644 runtime/neurun/core/src/ir/operation/DepthwiseConv2D.cc
delete mode 100644 runtime/neurun/core/src/ir/operation/Dequantize.cc
delete mode 100644 runtime/neurun/core/src/ir/operation/Div.cc
delete mode 100644 runtime/neurun/core/src/ir/operation/EmbeddingLookup.cc
delete mode 100644 runtime/neurun/core/src/ir/operation/Exp.cc
delete mode 100644 runtime/neurun/core/src/ir/operation/Floor.cc
delete mode 100644 runtime/neurun/core/src/ir/operation/FullyConnected.cc
delete mode 100644 runtime/neurun/core/src/ir/operation/Gather.cc
delete mode 100644 runtime/neurun/core/src/ir/operation/HashtableLookup.cc
delete mode 100644 runtime/neurun/core/src/ir/operation/InstanceNorm.cc
delete mode 100644 runtime/neurun/core/src/ir/operation/L2Normalization.cc
delete mode 100644 runtime/neurun/core/src/ir/operation/L2Pool2D.cc
delete mode 100644 runtime/neurun/core/src/ir/operation/LSTM.cc
delete mode 100644 runtime/neurun/core/src/ir/operation/LocalResponseNormalization.cc
delete mode 100644 runtime/neurun/core/src/ir/operation/LogicalAnd.cc
delete mode 100644 runtime/neurun/core/src/ir/operation/LogicalNot.cc
delete mode 100644 runtime/neurun/core/src/ir/operation/LogicalOr.cc
delete mode 100644 runtime/neurun/core/src/ir/operation/Logistic.cc
delete mode 100644 runtime/neurun/core/src/ir/operation/LowerInfo.cc
delete mode 100644 runtime/neurun/core/src/ir/operation/Max.cc
delete mode 100644 runtime/neurun/core/src/ir/operation/MaxPool2D.cc
delete mode 100644 runtime/neurun/core/src/ir/operation/Mean.cc
delete mode 100644 runtime/neurun/core/src/ir/operation/Min.cc
delete mode 100644 runtime/neurun/core/src/ir/operation/Mul.cc
delete mode 100644 runtime/neurun/core/src/ir/operation/Neg.cc
delete mode 100644 runtime/neurun/core/src/ir/operation/OneHot.cc
delete mode 100644 runtime/neurun/core/src/ir/operation/PReLU.cc
delete mode 100644 runtime/neurun/core/src/ir/operation/Pack.cc
delete mode 100644 runtime/neurun/core/src/ir/operation/Pad.cc
delete mode 100644 runtime/neurun/core/src/ir/operation/Permute.cc
delete mode 100644 runtime/neurun/core/src/ir/operation/RNN.cc
delete mode 100644 runtime/neurun/core/src/ir/operation/RSQRT.cc
delete mode 100644 runtime/neurun/core/src/ir/operation/ReLU.cc
delete mode 100644 runtime/neurun/core/src/ir/operation/ReLU1.cc
delete mode 100644 runtime/neurun/core/src/ir/operation/ReLU6.cc
delete mode 100644 runtime/neurun/core/src/ir/operation/ReduceMax.cc
delete mode 100644 runtime/neurun/core/src/ir/operation/ReduceMin.cc
delete mode 100644 runtime/neurun/core/src/ir/operation/ReduceSum.cc
delete mode 100644 runtime/neurun/core/src/ir/operation/Reshape.cc
delete mode 100644 runtime/neurun/core/src/ir/operation/ResizeBilinear.cc
delete mode 100644 runtime/neurun/core/src/ir/operation/SQRT.cc
delete mode 100644 runtime/neurun/core/src/ir/operation/Slice.cc
delete mode 100644 runtime/neurun/core/src/ir/operation/Softmax.cc
delete mode 100644 runtime/neurun/core/src/ir/operation/SpaceToBatchND.cc
delete mode 100644 runtime/neurun/core/src/ir/operation/SpaceToDepth.cc
delete mode 100644 runtime/neurun/core/src/ir/operation/Split.cc
delete mode 100644 runtime/neurun/core/src/ir/operation/SquaredDifference.cc
delete mode 100644 runtime/neurun/core/src/ir/operation/Squeeze.cc
delete mode 100644 runtime/neurun/core/src/ir/operation/StridedSlice.cc
delete mode 100644 runtime/neurun/core/src/ir/operation/Sub.cc
delete mode 100644 runtime/neurun/core/src/ir/operation/Tanh.cc
delete mode 100644 runtime/neurun/core/src/ir/operation/TopKV2.cc
delete mode 100644 runtime/neurun/core/src/ir/operation/Transpose.cc
delete mode 100644 runtime/neurun/core/src/ir/operation/TransposeConv.cc
delete mode 100644 runtime/neurun/core/src/ir/operation/Unpack.cc
delete mode 100644 runtime/neurun/core/src/ir/pass/ConstantInsertionPass.cc
delete mode 100644 runtime/neurun/core/src/ir/pass/ConstantInsertionPass.h
delete mode 100644 runtime/neurun/core/src/ir/pass/OperandPass.cc
delete mode 100644 runtime/neurun/core/src/ir/pass/OperandPass.h
delete mode 100644 runtime/neurun/core/src/ir/pass/OperationPass.cc
delete mode 100644 runtime/neurun/core/src/ir/pass/OperationPass.h
delete mode 100644 runtime/neurun/core/src/ir/pass/Pass.h
delete mode 100644 runtime/neurun/core/src/ir/pass/PermutationEliminationPass.cc
delete mode 100644 runtime/neurun/core/src/ir/pass/PermutationEliminationPass.h
delete mode 100644 runtime/neurun/core/src/ir/pass/PermutationInsertionPass.cc
delete mode 100644 runtime/neurun/core/src/ir/pass/PermutationInsertionPass.h
delete mode 100644 runtime/neurun/core/src/ir/pass/PermutationOperationPass.cc
delete mode 100644 runtime/neurun/core/src/ir/pass/PermutationOperationPass.h
delete mode 100644 runtime/neurun/core/src/ir/verifier/Verifier.cc
delete mode 100644 runtime/neurun/core/src/ir/verifier/Verifier.h
delete mode 100644 runtime/neurun/core/src/library_info.cc
delete mode 100644 runtime/neurun/core/src/util/ConfigSource.cc
delete mode 100644 runtime/neurun/core/src/util/EnvConfigSource.cc
delete mode 100644 runtime/neurun/core/src/util/EventCollectorGlobal.cc
delete mode 100644 runtime/neurun/core/src/util/GeneralConfigSource.cc
delete mode 100644 runtime/neurun/core/src/util/Padding.cc
delete mode 100644 runtime/neurun/core/src/util/ShapeInference.cc
delete mode 100644 runtime/neurun/core/src/util/Utils.cc
delete mode 100644 runtime/neurun/core/src/util/logging.cc
delete mode 100644 runtime/neurun/frontend/CMakeLists.txt
delete mode 100644 runtime/neurun/frontend/base_loader/CMakeLists.txt
delete mode 100644 runtime/neurun/frontend/base_loader/include/base_loader.h
delete mode 100644 runtime/neurun/frontend/circle/CMakeLists.txt
delete mode 100644 runtime/neurun/frontend/circle/include/circle_loader.h
delete mode 100644 runtime/neurun/frontend/circle/src/circle_loader.cc
delete mode 100644 runtime/neurun/frontend/circle/src/circle_schema_generated.h
delete mode 100644 runtime/neurun/frontend/nnapi/ANeuralNetworksModel.test.cc
delete mode 100644 runtime/neurun/frontend/nnapi/CMakeLists.txt
delete mode 100644 runtime/neurun/frontend/nnapi/compilation.cc
delete mode 100644 runtime/neurun/frontend/nnapi/event.cc
delete mode 100644 runtime/neurun/frontend/nnapi/execution.cc
delete mode 100644 runtime/neurun/frontend/nnapi/memory.cc
delete mode 100644 runtime/neurun/frontend/nnapi/model.cc
delete mode 100644 runtime/neurun/frontend/nnapi/wrapper/ANeuralNetworksCompilation.cc
delete mode 100644 runtime/neurun/frontend/nnapi/wrapper/ANeuralNetworksCompilation.h
delete mode 100644 runtime/neurun/frontend/nnapi/wrapper/ANeuralNetworksEvent.cc
delete mode 100644 runtime/neurun/frontend/nnapi/wrapper/ANeuralNetworksEvent.h
delete mode 100644 runtime/neurun/frontend/nnapi/wrapper/ANeuralNetworksExecution.cc
delete mode 100644 runtime/neurun/frontend/nnapi/wrapper/ANeuralNetworksExecution.h
delete mode 100644 runtime/neurun/frontend/nnapi/wrapper/ANeuralNetworksMemory.cc
delete mode 100644 runtime/neurun/frontend/nnapi/wrapper/ANeuralNetworksMemory.h
delete mode 100644 runtime/neurun/frontend/nnapi/wrapper/ANeuralNetworksModel.cc
delete mode 100644 runtime/neurun/frontend/nnapi/wrapper/ANeuralNetworksModel.h
delete mode 100644 runtime/neurun/frontend/nnapi/wrapper/NNAPIConvert.cc
delete mode 100644 runtime/neurun/frontend/nnapi/wrapper/NNAPIConvert.h
delete mode 100644 runtime/neurun/frontend/nnapi/wrapper/OperationFactory.cc
delete mode 100644 runtime/neurun/frontend/nnapi/wrapper/OperationFactory.h
delete mode 100644 runtime/neurun/frontend/tflite/CMakeLists.txt
delete mode 100644 runtime/neurun/frontend/tflite/include/tflite_loader.h
delete mode 100644 runtime/neurun/frontend/tflite/src/tflite_loader.cc
delete mode 100644 runtime/neurun/frontend/tflite/src/tflite_schema_generated.h
delete mode 100644 runtime/neurun/frontend/tflite/tflite_schema.fbs
delete mode 100644 runtime/neurun/sample/CMakeLists.txt
delete mode 100644 runtime/neurun/sample/minimal/CMakeLists.txt
delete mode 100644 runtime/neurun/sample/minimal/README.md
delete mode 100644 runtime/neurun/sample/minimal/src/minimal.cc
delete mode 100644 runtime/neurun/test/CMakeLists.txt
delete mode 100644 runtime/neurun/test/core/backend/ExecTime.test.cc
delete mode 100644 runtime/neurun/test/core/compiler/Scheduler.cc
delete mode 100644 runtime/neurun/test/core/exec/ExecInstance.cc
delete mode 100644 runtime/neurun/test/core/exec/interp/ExecManager.cc
delete mode 100644 runtime/neurun/test/graph/Graph.cc
delete mode 100644 runtime/neurun/test/graph/Index.cc
delete mode 100644 runtime/neurun/test/graph/MockNode.h
delete mode 100644 runtime/neurun/test/graph/operand/IndexSet.cc
delete mode 100644 runtime/neurun/test/graph/operand/LayoutSet.cc
delete mode 100644 runtime/neurun/test/graph/operand/Set.cc
delete mode 100644 runtime/neurun/test/graph/operand/UseDef.cc
delete mode 100644 runtime/neurun/test/graph/operation/Set.cc
delete mode 100644 runtime/neurun/test/graph/operation/SetIO.cc
delete mode 100644 runtime/neurun/test/graph/verifier/Verifier.cc
delete mode 100644 runtime/neurun/test/util/ShapeInference.cc
create mode 100644 runtime/onert/CMakeLists.txt
create mode 100644 runtime/onert/api/CMakeLists.txt
create mode 100644 runtime/onert/api/include/nnfw.h
create mode 100644 runtime/onert/api/include/nnfw_debug.h
create mode 100644 runtime/onert/api/include/nnfw_dev.h
create mode 100644 runtime/onert/api/include/nnfw_version.h
create mode 100644 runtime/onert/api/src/CustomKernel.cc
create mode 100644 runtime/onert/api/src/CustomKernel.h
create mode 100644 runtime/onert/api/src/CustomKernelRegistry.cc
create mode 100644 runtime/onert/api/src/CustomKernelRegistry.h
create mode 100644 runtime/onert/api/src/OpMap.lst
create mode 100644 runtime/onert/api/src/nnfw_api.cc
create mode 100644 runtime/onert/api/src/nnfw_api_internal.cc
create mode 100644 runtime/onert/api/src/nnfw_api_internal.h
create mode 100644 runtime/onert/api/src/nnfw_debug.cc
create mode 100644 runtime/onert/api/src/nnfw_debug_internal.cc
create mode 100644 runtime/onert/api/src/nnfw_debug_internal.h
create mode 100644 runtime/onert/backend/CMakeLists.txt
create mode 100644 runtime/onert/backend/acl_cl/Backend.h
create mode 100644 runtime/onert/backend/acl_cl/CLTimer.h
create mode 100644 runtime/onert/backend/acl_cl/CMakeLists.txt
create mode 100644 runtime/onert/backend/acl_cl/Config.cc
create mode 100644 runtime/onert/backend/acl_cl/Config.h
create mode 100644 runtime/onert/backend/acl_cl/ConstantInitializer.cc
create mode 100644 runtime/onert/backend/acl_cl/ConstantInitializer.h
create mode 100644 runtime/onert/backend/acl_cl/KernelGenerator.cc
create mode 100644 runtime/onert/backend/acl_cl/KernelGenerator.h
create mode 100644 runtime/onert/backend/acl_cl/Optimizer.cc
create mode 100644 runtime/onert/backend/acl_cl/Optimizer.h
create mode 100644 runtime/onert/backend/acl_cl/ShapeFixer.cc
create mode 100644 runtime/onert/backend/acl_cl/ShapeFixer.h
create mode 100644 runtime/onert/backend/acl_cl/TensorBuilder.h
create mode 100644 runtime/onert/backend/acl_cl/TensorManager.h
create mode 100644 runtime/onert/backend/acl_cl/acl_cl.cc
create mode 100644 runtime/onert/backend/acl_cl/operand/CLSubTensor.cc
create mode 100644 runtime/onert/backend/acl_cl/operand/CLSubTensor.h
create mode 100644 runtime/onert/backend/acl_cl/operand/CLTensor.cc
create mode 100644 runtime/onert/backend/acl_cl/operand/CLTensor.h
create mode 100644 runtime/onert/backend/acl_cl/operand/ICLTensor.cc
create mode 100644 runtime/onert/backend/acl_cl/operand/ICLTensor.h
create mode 100644 runtime/onert/backend/acl_common/AclActivationBuilder.h
create mode 100644 runtime/onert/backend/acl_common/AclFunction.h
create mode 100644 runtime/onert/backend/acl_common/AclInternalBufferManager.h
create mode 100644 runtime/onert/backend/acl_common/AclLinearMemoryManager.h
create mode 100644 runtime/onert/backend/acl_common/AclMemoryManager.h
create mode 100644 runtime/onert/backend/acl_common/AclSubTensorAnalyzer.h
create mode 100644 runtime/onert/backend/acl_common/AclTensorBuilder.h
create mode 100644 runtime/onert/backend/acl_common/AclTensorManager.h
create mode 100644 runtime/onert/backend/acl_common/CMakeLists.txt
create mode 100644 runtime/onert/backend/acl_common/Convert.cc
create mode 100644 runtime/onert/backend/acl_common/Convert.h
create mode 100644 runtime/onert/backend/acl_common/IACLTensor.cc
create mode 100644 runtime/onert/backend/acl_common/IACLTensor.h
create mode 100644 runtime/onert/backend/acl_common/ParentInfo.h
create mode 100644 runtime/onert/backend/acl_common/Swizzle.h
create mode 100644 runtime/onert/backend/acl_neon/Backend.h
create mode 100644 runtime/onert/backend/acl_neon/CMakeLists.txt
create mode 100644 runtime/onert/backend/acl_neon/Config.cc
create mode 100644 runtime/onert/backend/acl_neon/Config.h
create mode 100644 runtime/onert/backend/acl_neon/ConstantInitializer.cc
create mode 100644 runtime/onert/backend/acl_neon/ConstantInitializer.h
create mode 100644 runtime/onert/backend/acl_neon/KernelGenerator.cc
create mode 100644 runtime/onert/backend/acl_neon/KernelGenerator.h
create mode 100644 runtime/onert/backend/acl_neon/Optimizer.cc
create mode 100644 runtime/onert/backend/acl_neon/Optimizer.h
create mode 100644 runtime/onert/backend/acl_neon/ShapeFixer.cc
create mode 100644 runtime/onert/backend/acl_neon/ShapeFixer.h
create mode 100644 runtime/onert/backend/acl_neon/TensorBuilder.h
create mode 100644 runtime/onert/backend/acl_neon/TensorManager.h
create mode 100644 runtime/onert/backend/acl_neon/acl_neon.cc
create mode 100644 runtime/onert/backend/acl_neon/operand/INETensor.cc
create mode 100644 runtime/onert/backend/acl_neon/operand/INETensor.h
create mode 100644 runtime/onert/backend/acl_neon/operand/NESubTensor.cc
create mode 100644 runtime/onert/backend/acl_neon/operand/NESubTensor.h
create mode 100644 runtime/onert/backend/acl_neon/operand/NETensor.cc
create mode 100644 runtime/onert/backend/acl_neon/operand/NETensor.h
create mode 100644 runtime/onert/backend/cpu/Backend.h
create mode 100644 runtime/onert/backend/cpu/CMakeLists.txt
create mode 100644 runtime/onert/backend/cpu/Config.cc
create mode 100644 runtime/onert/backend/cpu/Config.h
create mode 100644 runtime/onert/backend/cpu/ConstantInitializer.cc
create mode 100644 runtime/onert/backend/cpu/ConstantInitializer.h
create mode 100644 runtime/onert/backend/cpu/KernelGenerator.cc
create mode 100644 runtime/onert/backend/cpu/KernelGenerator.h
create mode 100644 runtime/onert/backend/cpu/ShapeFixer.cc
create mode 100644 runtime/onert/backend/cpu/ShapeFixer.h
create mode 100644 runtime/onert/backend/cpu/TensorBuilder.cc
create mode 100644 runtime/onert/backend/cpu/TensorBuilder.h
create mode 100644 runtime/onert/backend/cpu/TensorManager.cc
create mode 100644 runtime/onert/backend/cpu/TensorManager.h
create mode 100644 runtime/onert/backend/cpu/cpu.cc
create mode 100644 runtime/onert/backend/cpu/kernel/AbsLayer.cc
create mode 100644 runtime/onert/backend/cpu/kernel/AbsLayer.h
create mode 100644 runtime/onert/backend/cpu/kernel/AddLayer.cc
create mode 100644 runtime/onert/backend/cpu/kernel/AddLayer.h
create mode 100644 runtime/onert/backend/cpu/kernel/AvgPoolLayer.cc
create mode 100644 runtime/onert/backend/cpu/kernel/AvgPoolLayer.h
create mode 100644 runtime/onert/backend/cpu/kernel/CastLayer.cc
create mode 100644 runtime/onert/backend/cpu/kernel/CastLayer.h
create mode 100644 runtime/onert/backend/cpu/kernel/CompareLayer.cc
create mode 100644 runtime/onert/backend/cpu/kernel/CompareLayer.h
create mode 100644 runtime/onert/backend/cpu/kernel/ConcatLayer.cc
create mode 100644 runtime/onert/backend/cpu/kernel/ConcatLayer.h
create mode 100644 runtime/onert/backend/cpu/kernel/ConvolutionLayer.cc
create mode 100644 runtime/onert/backend/cpu/kernel/ConvolutionLayer.h
create mode 100644 runtime/onert/backend/cpu/kernel/DepthwiseConvolutionLayer.cc
create mode 100644 runtime/onert/backend/cpu/kernel/DepthwiseConvolutionLayer.h
create mode 100644 runtime/onert/backend/cpu/kernel/DivLayer.cc
create mode 100644 runtime/onert/backend/cpu/kernel/DivLayer.h
create mode 100644 runtime/onert/backend/cpu/kernel/ExpLayer.cc
create mode 100644 runtime/onert/backend/cpu/kernel/ExpLayer.h
create mode 100644 runtime/onert/backend/cpu/kernel/FullyConnectedLayer.cc
create mode 100644 runtime/onert/backend/cpu/kernel/FullyConnectedLayer.h
create mode 100644 runtime/onert/backend/cpu/kernel/GatherLayer.cc
create mode 100644 runtime/onert/backend/cpu/kernel/GatherLayer.h
create mode 100644 runtime/onert/backend/cpu/kernel/LogisticLayer.cc
create mode 100644 runtime/onert/backend/cpu/kernel/LogisticLayer.h
create mode 100644 runtime/onert/backend/cpu/kernel/MaxLayer.cc
create mode 100644 runtime/onert/backend/cpu/kernel/MaxLayer.h
create mode 100644 runtime/onert/backend/cpu/kernel/MaxPoolLayer.cc
create mode 100644 runtime/onert/backend/cpu/kernel/MaxPoolLayer.h
create mode 100644 runtime/onert/backend/cpu/kernel/MinLayer.cc
create mode 100644 runtime/onert/backend/cpu/kernel/MinLayer.h
create mode 100644 runtime/onert/backend/cpu/kernel/MulLayer.cc
create mode 100644 runtime/onert/backend/cpu/kernel/MulLayer.h
create mode 100644 runtime/onert/backend/cpu/kernel/OneHotLayer.cc
create mode 100644 runtime/onert/backend/cpu/kernel/OneHotLayer.h
create mode 100644 runtime/onert/backend/cpu/kernel/OperationUtils.cc
create mode 100644 runtime/onert/backend/cpu/kernel/OperationUtils.h
create mode 100644 runtime/onert/backend/cpu/kernel/PackLayer.cc
create mode 100644 runtime/onert/backend/cpu/kernel/PackLayer.h
create mode 100644 runtime/onert/backend/cpu/kernel/PadLayer.cc
create mode 100644 runtime/onert/backend/cpu/kernel/PadLayer.h
create mode 100644 runtime/onert/backend/cpu/kernel/PermuteLayer.cc
create mode 100644 runtime/onert/backend/cpu/kernel/PermuteLayer.h
create mode 100644 runtime/onert/backend/cpu/kernel/ReduceLayer.cc
create mode 100644 runtime/onert/backend/cpu/kernel/ReduceLayer.h
create mode 100644 runtime/onert/backend/cpu/kernel/ReshapeLayer.cc
create mode 100644 runtime/onert/backend/cpu/kernel/ReshapeLayer.h
create mode 100644 runtime/onert/backend/cpu/kernel/RsqrtLayer.cc
create mode 100644 runtime/onert/backend/cpu/kernel/RsqrtLayer.h
create mode 100644 runtime/onert/backend/cpu/kernel/ShapeLayer.cc
create mode 100644 runtime/onert/backend/cpu/kernel/ShapeLayer.h
create mode 100644 runtime/onert/backend/cpu/kernel/SinLayer.cc
create mode 100644 runtime/onert/backend/cpu/kernel/SinLayer.h
create mode 100644 runtime/onert/backend/cpu/kernel/SliceLayer.cc
create mode 100644 runtime/onert/backend/cpu/kernel/SliceLayer.h
create mode 100644 runtime/onert/backend/cpu/kernel/SoftMaxLayer.cc
create mode 100644 runtime/onert/backend/cpu/kernel/SoftMaxLayer.h
create mode 100644 runtime/onert/backend/cpu/kernel/SplitLayer.cc
create mode 100644 runtime/onert/backend/cpu/kernel/SplitLayer.h
create mode 100644 runtime/onert/backend/cpu/kernel/StridedSliceLayer.cc
create mode 100644 runtime/onert/backend/cpu/kernel/StridedSliceLayer.h
create mode 100644 runtime/onert/backend/cpu/kernel/SubLayer.cc
create mode 100644 runtime/onert/backend/cpu/kernel/SubLayer.h
create mode 100644 runtime/onert/backend/cpu/kernel/TanhLayer.cc
create mode 100644 runtime/onert/backend/cpu/kernel/TanhLayer.h
create mode 100644 runtime/onert/backend/cpu/kernel/TransposeLayer.cc
create mode 100644 runtime/onert/backend/cpu/kernel/TransposeLayer.h
create mode 100644 runtime/onert/backend/cpu/kernel/UnpackLayer.cc
create mode 100644 runtime/onert/backend/cpu/kernel/UnpackLayer.h
create mode 100644 runtime/onert/backend/cpu/operand/Tensor.cc
create mode 100644 runtime/onert/backend/cpu/operand/Tensor.h
create mode 100644 runtime/onert/backend/cpu_common/Allocator.cc
create mode 100644 runtime/onert/backend/cpu_common/Allocator.h
create mode 100644 runtime/onert/backend/cpu_common/CMakeLists.txt
create mode 100644 runtime/onert/backend/cpu_common/MemoryManager.cc
create mode 100644 runtime/onert/backend/cpu_common/MemoryManager.h
create mode 100644 runtime/onert/backend/cpu_common/MemoryPlanner.cc
create mode 100644 runtime/onert/backend/cpu_common/MemoryPlanner.h
create mode 100644 runtime/onert/backend/cpu_common/MemoryPlanner.test.cc
create mode 100644 runtime/onert/backend/cpu_common/MemoryPlannerFactory.cc
create mode 100644 runtime/onert/backend/cpu_common/MemoryPlannerFactory.h
create mode 100644 runtime/onert/core/CMakeLists.txt
create mode 100644 runtime/onert/core/include/backend/Backend.h
create mode 100644 runtime/onert/core/include/backend/BackendContext.h
create mode 100644 runtime/onert/core/include/backend/CustomKernelBuilder.h
create mode 100644 runtime/onert/core/include/backend/IConfig.h
create mode 100644 runtime/onert/core/include/backend/IConstantInitializer.h
create mode 100644 runtime/onert/core/include/backend/IKernelGenerator.h
create mode 100644 runtime/onert/core/include/backend/IMemoryManager.h
create mode 100644 runtime/onert/core/include/backend/IOptimizer.h
create mode 100644 runtime/onert/core/include/backend/IShapeFixer.h
create mode 100644 runtime/onert/core/include/backend/ITensor.h
create mode 100644 runtime/onert/core/include/backend/ITensorBuilder.h
create mode 100644 runtime/onert/core/include/backend/ITensorManager.h
create mode 100644 runtime/onert/core/include/backend/ITensorRegister.h
create mode 100644 runtime/onert/core/include/compiler/BackendManager.h
create mode 100644 runtime/onert/core/include/compiler/BackendResolver.h
create mode 100644 runtime/onert/core/include/compiler/CodeMap.h
create mode 100644 runtime/onert/core/include/compiler/Compiler.h
create mode 100644 runtime/onert/core/include/compiler/ExecutionBuilder.h
create mode 100644 runtime/onert/core/include/exec/ExecTime.h
create mode 100644 runtime/onert/core/include/exec/Execution.h
create mode 100644 runtime/onert/core/include/exec/ExecutionObservers.h
create mode 100644 runtime/onert/core/include/exec/FunctionSequence.h
create mode 100644 runtime/onert/core/include/exec/IExecutor.h
create mode 100644 runtime/onert/core/include/exec/IFunction.h
create mode 100644 runtime/onert/core/include/exec/IODescription.h
create mode 100644 runtime/onert/core/include/exec/JSONExecTime.h
create mode 100644 runtime/onert/core/include/exec/NopFunction.h
create mode 100644 runtime/onert/core/include/interp/InterpExecutor.h
create mode 100644 runtime/onert/core/include/ir/BackendSet.h
create mode 100644 runtime/onert/core/include/ir/Coordinates.h
create mode 100644 runtime/onert/core/include/ir/Data.h
create mode 100644 runtime/onert/core/include/ir/DataType.h
create mode 100644 runtime/onert/core/include/ir/Graph.h
create mode 100644 runtime/onert/core/include/ir/Index.h
create mode 100644 runtime/onert/core/include/ir/InternalType.h
create mode 100644 runtime/onert/core/include/ir/Layout.h
create mode 100644 runtime/onert/core/include/ir/LowerInfoMap.h
create mode 100644 runtime/onert/core/include/ir/LoweredGraph.h
create mode 100644 runtime/onert/core/include/ir/OpCode.h
create mode 100644 runtime/onert/core/include/ir/OpSequence.h
create mode 100644 runtime/onert/core/include/ir/OpSequences.h
create mode 100644 runtime/onert/core/include/ir/Operand.h
create mode 100644 runtime/onert/core/include/ir/OperandConstraint.h
create mode 100644 runtime/onert/core/include/ir/OperandIndexMap.h
create mode 100644 runtime/onert/core/include/ir/OperandIndexSequence.h
create mode 100644 runtime/onert/core/include/ir/OperandInfo.h
create mode 100644 runtime/onert/core/include/ir/Operands.h
create mode 100644 runtime/onert/core/include/ir/Operation.h
create mode 100644 runtime/onert/core/include/ir/OperationIndexList.h
create mode 100644 runtime/onert/core/include/ir/OperationIndexMap.h
create mode 100644 runtime/onert/core/include/ir/OperationVisitor.h
create mode 100644 runtime/onert/core/include/ir/Operations.Include.h
create mode 100644 runtime/onert/core/include/ir/Operations.h
create mode 100644 runtime/onert/core/include/ir/Operations.lst
create mode 100644 runtime/onert/core/include/ir/Padding.h
create mode 100644 runtime/onert/core/include/ir/Shape.h
create mode 100644 runtime/onert/core/include/ir/TypeInfo.h
create mode 100644 runtime/onert/core/include/ir/operand/LowerInfo.h
create mode 100644 runtime/onert/core/include/ir/operand/PermuteFactor.h
create mode 100644 runtime/onert/core/include/ir/operation/Abs.h
create mode 100644 runtime/onert/core/include/ir/operation/Add.h
create mode 100644 runtime/onert/core/include/ir/operation/ArgMax.h
create mode 100644 runtime/onert/core/include/ir/operation/AvgPool2D.h
create mode 100644 runtime/onert/core/include/ir/operation/BatchToSpaceND.h
create mode 100644 runtime/onert/core/include/ir/operation/Cast.h
create mode 100644 runtime/onert/core/include/ir/operation/Comparison.h
create mode 100644 runtime/onert/core/include/ir/operation/Concat.h
create mode 100644 runtime/onert/core/include/ir/operation/Conv2D.h
create mode 100644 runtime/onert/core/include/ir/operation/ConvertFp16ToFp32.h
create mode 100644 runtime/onert/core/include/ir/operation/ConvertFp32ToFp16.h
create mode 100644 runtime/onert/core/include/ir/operation/Custom.h
create mode 100644 runtime/onert/core/include/ir/operation/DepthToSpace.h
create mode 100644 runtime/onert/core/include/ir/operation/DepthwiseConv2D.h
create mode 100644 runtime/onert/core/include/ir/operation/Dequantize.h
create mode 100644 runtime/onert/core/include/ir/operation/Div.h
create mode 100644 runtime/onert/core/include/ir/operation/EmbeddingLookup.h
create mode 100644 runtime/onert/core/include/ir/operation/Exp.h
create mode 100644 runtime/onert/core/include/ir/operation/Floor.h
create mode 100644 runtime/onert/core/include/ir/operation/FullyConnected.h
create mode 100644 runtime/onert/core/include/ir/operation/Gather.h
create mode 100644 runtime/onert/core/include/ir/operation/HashtableLookup.h
create mode 100644 runtime/onert/core/include/ir/operation/InstanceNorm.h
create mode 100644 runtime/onert/core/include/ir/operation/L2Normalization.h
create mode 100644 runtime/onert/core/include/ir/operation/L2Pool2D.h
create mode 100644 runtime/onert/core/include/ir/operation/LSTM.h
create mode 100644 runtime/onert/core/include/ir/operation/LocalResponseNormalization.h
create mode 100644 runtime/onert/core/include/ir/operation/LogicalAnd.h
create mode 100644 runtime/onert/core/include/ir/operation/LogicalNot.h
create mode 100644 runtime/onert/core/include/ir/operation/LogicalOr.h
create mode 100644 runtime/onert/core/include/ir/operation/Logistic.h
create mode 100644 runtime/onert/core/include/ir/operation/LowerInfo.h
create mode 100644 runtime/onert/core/include/ir/operation/Max.h
create mode 100644 runtime/onert/core/include/ir/operation/MaxPool2D.h
create mode 100644 runtime/onert/core/include/ir/operation/Mean.h
create mode 100644 runtime/onert/core/include/ir/operation/Min.h
create mode 100644 runtime/onert/core/include/ir/operation/Mul.h
create mode 100644 runtime/onert/core/include/ir/operation/Neg.h
create mode 100644 runtime/onert/core/include/ir/operation/OneHot.h
create mode 100644 runtime/onert/core/include/ir/operation/PReLU.h
create mode 100644 runtime/onert/core/include/ir/operation/Pack.h
create mode 100644 runtime/onert/core/include/ir/operation/Pad.h
create mode 100644 runtime/onert/core/include/ir/operation/Permute.h
create mode 100644 runtime/onert/core/include/ir/operation/RNN.h
create mode 100644 runtime/onert/core/include/ir/operation/RSQRT.h
create mode 100644 runtime/onert/core/include/ir/operation/ReLU.h
create mode 100644 runtime/onert/core/include/ir/operation/ReLU1.h
create mode 100644 runtime/onert/core/include/ir/operation/ReLU6.h
create mode 100644 runtime/onert/core/include/ir/operation/ReduceMax.h
create mode 100644 runtime/onert/core/include/ir/operation/ReduceMin.h
create mode 100644 runtime/onert/core/include/ir/operation/ReduceSum.h
create mode 100644 runtime/onert/core/include/ir/operation/Reshape.h
create mode 100644 runtime/onert/core/include/ir/operation/ResizeBilinear.h
create mode 100644 runtime/onert/core/include/ir/operation/SQRT.h
create mode 100644 runtime/onert/core/include/ir/operation/Shape.h
create mode 100644 runtime/onert/core/include/ir/operation/Sin.h
create mode 100644 runtime/onert/core/include/ir/operation/Slice.h
create mode 100644 runtime/onert/core/include/ir/operation/Softmax.h
create mode 100644 runtime/onert/core/include/ir/operation/SpaceToBatchND.h
create mode 100644 runtime/onert/core/include/ir/operation/SpaceToDepth.h
create mode 100644 runtime/onert/core/include/ir/operation/Split.h
create mode 100644 runtime/onert/core/include/ir/operation/SquaredDifference.h
create mode 100644 runtime/onert/core/include/ir/operation/Squeeze.h
create mode 100644 runtime/onert/core/include/ir/operation/StridedSlice.h
create mode 100644 runtime/onert/core/include/ir/operation/Sub.h
create mode 100644 runtime/onert/core/include/ir/operation/Tanh.h
create mode 100644 runtime/onert/core/include/ir/operation/TopKV2.h
create mode 100644 runtime/onert/core/include/ir/operation/Transpose.h
create mode 100644 runtime/onert/core/include/ir/operation/TransposeConv.h
create mode 100644 runtime/onert/core/include/ir/operation/Unpack.h
create mode 100644 runtime/onert/core/include/util/Config.lst
create mode 100644 runtime/onert/core/include/util/ConfigSource.h
create mode 100644 runtime/onert/core/include/util/EnvConfigSource.h
create mode 100644 runtime/onert/core/include/util/EventCollectorGlobal.h
create mode 100644 runtime/onert/core/include/util/GeneralConfigSource.h
create mode 100644 runtime/onert/core/include/util/IConfigSource.h
create mode 100644 runtime/onert/core/include/util/ITimer.h
create mode 100644 runtime/onert/core/include/util/Index.h
create mode 100644 runtime/onert/core/include/util/ObjectManager.h
create mode 100644 runtime/onert/core/include/util/Set.h
create mode 100644 runtime/onert/core/include/util/ShapeInference.h
create mode 100644 runtime/onert/core/include/util/Utils.h
create mode 100644 runtime/onert/core/include/util/feature/nchw/Reader.h
create mode 100644 runtime/onert/core/include/util/feature/nchw/View.h
create mode 100644 runtime/onert/core/include/util/feature/nhwc/Reader.h
create mode 100644 runtime/onert/core/include/util/feature/nhwc/View.h
create mode 100644 runtime/onert/core/include/util/logging.h
create mode 100644 runtime/onert/core/src/backend/BackendContext.cc
create mode 100644 runtime/onert/core/src/compiler/BackendManager.cc
create mode 100644 runtime/onert/core/src/compiler/BackendResolver.cc
create mode 100644 runtime/onert/core/src/compiler/CachedDataDeleter.h
create mode 100644 runtime/onert/core/src/compiler/Compiler.cc
create mode 100644 runtime/onert/core/src/compiler/ExecutorFactory.cc
create mode 100644 runtime/onert/core/src/compiler/ExecutorFactory.h
create mode 100644 runtime/onert/core/src/compiler/HEScheduler.cc
create mode 100644 runtime/onert/core/src/compiler/HEScheduler.h
create mode 100644 runtime/onert/core/src/compiler/IScheduler.h
create mode 100644 runtime/onert/core/src/compiler/Linear.cc
create mode 100644 runtime/onert/core/src/compiler/Linear.h
create mode 100644 runtime/onert/core/src/compiler/ManualScheduler.cc
create mode 100644 runtime/onert/core/src/compiler/ManualScheduler.h
create mode 100644 runtime/onert/core/src/compiler/OperandContext.cc
create mode 100644 runtime/onert/core/src/compiler/OperandContext.h
create mode 100644 runtime/onert/core/src/compiler/OperationValidator.cc
create mode 100644 runtime/onert/core/src/compiler/OperationValidator.h
create mode 100644 runtime/onert/core/src/compiler/ParamChecker.cc
create mode 100644 runtime/onert/core/src/compiler/ParamChecker.h
create mode 100644 runtime/onert/core/src/dumper/dot/DotBuilder.cc
create mode 100644 runtime/onert/core/src/dumper/dot/DotBuilder.h
create mode 100644 runtime/onert/core/src/dumper/dot/DotDumper.cc
create mode 100644 runtime/onert/core/src/dumper/dot/DotDumper.h
create mode 100644 runtime/onert/core/src/dumper/dot/DotOpSequenceInfo.cc
create mode 100644 runtime/onert/core/src/dumper/dot/DotOpSequenceInfo.h
create mode 100644 runtime/onert/core/src/dumper/dot/Node.cc
create mode 100644 runtime/onert/core/src/dumper/dot/Node.h
create mode 100644 runtime/onert/core/src/dumper/dot/OperandNode.cc
create mode 100644 runtime/onert/core/src/dumper/dot/OperandNode.h
create mode 100644 runtime/onert/core/src/dumper/dot/OperationNode.cc
create mode 100644 runtime/onert/core/src/dumper/dot/OperationNode.h
create mode 100644 runtime/onert/core/src/exec/DataflowExecutor.cc
create mode 100644 runtime/onert/core/src/exec/DataflowExecutor.h
create mode 100644 runtime/onert/core/src/exec/ExecTime.cc
create mode 100644 runtime/onert/core/src/exec/Execution.cc
create mode 100644 runtime/onert/core/src/exec/ExecutionObservee.cc
create mode 100644 runtime/onert/core/src/exec/ExecutionObservee.h
create mode 100644 runtime/onert/core/src/exec/ExecutionObservers.cc
create mode 100644 runtime/onert/core/src/exec/ExecutorBase.cc
create mode 100644 runtime/onert/core/src/exec/ExecutorBase.h
create mode 100644 runtime/onert/core/src/exec/FunctionSequence.cc
create mode 100644 runtime/onert/core/src/exec/JSONExecTime.cc
create mode 100644 runtime/onert/core/src/exec/Job.cc
create mode 100644 runtime/onert/core/src/exec/Job.h
create mode 100644 runtime/onert/core/src/exec/LinearExecutor.cc
create mode 100644 runtime/onert/core/src/exec/LinearExecutor.h
create mode 100644 runtime/onert/core/src/exec/ParallelExecutor.cc
create mode 100644 runtime/onert/core/src/exec/ParallelExecutor.h
create mode 100644 runtime/onert/core/src/exec/ParallelScheduler.cc
create mode 100644 runtime/onert/core/src/exec/ParallelScheduler.h
create mode 100644 runtime/onert/core/src/exec/Sink.h
create mode 100644 runtime/onert/core/src/exec/Source.h
create mode 100644 runtime/onert/core/src/exec/ThreadPool.cc
create mode 100644 runtime/onert/core/src/exec/ThreadPool.h
create mode 100644 runtime/onert/core/src/exec/WorkQueue.cc
create mode 100644 runtime/onert/core/src/exec/WorkQueue.h
create mode 100644 runtime/onert/core/src/interp/Buffer.h
create mode 100644 runtime/onert/core/src/interp/ExecEnv.h
create mode 100644 runtime/onert/core/src/interp/InterpExecutor.cc
create mode 100644 runtime/onert/core/src/interp/InterpOps.lst
create mode 100644 runtime/onert/core/src/interp/Interpreter.cc
create mode 100644 runtime/onert/core/src/interp/Interpreter.h
create mode 100644 runtime/onert/core/src/interp/Registration.h
create mode 100644 runtime/onert/core/src/interp/Tensor.cc
create mode 100644 runtime/onert/core/src/interp/Tensor.h
create mode 100644 runtime/onert/core/src/interp/operations/AvgPool2D.cc
create mode 100644 runtime/onert/core/src/interp/operations/BinaryArithmeticOps.cc
create mode 100644 runtime/onert/core/src/interp/operations/Concat.cc
create mode 100644 runtime/onert/core/src/interp/operations/Conv2D.cc
create mode 100644 runtime/onert/core/src/interp/operations/DepthwiseConv2D.cc
create mode 100644 runtime/onert/core/src/interp/operations/FullyConnected.cc
create mode 100644 runtime/onert/core/src/interp/operations/Gather.cc
create mode 100644 runtime/onert/core/src/interp/operations/InstanceNorm.cc
create mode 100644 runtime/onert/core/src/interp/operations/Logistic.cc
create mode 100644 runtime/onert/core/src/interp/operations/MaxPool2D.cc
create mode 100644 runtime/onert/core/src/interp/operations/OperationUtil.h
create mode 100644 runtime/onert/core/src/interp/operations/Pad.cc
create mode 100644 runtime/onert/core/src/interp/operations/Reshape.cc
create mode 100644 runtime/onert/core/src/interp/operations/Softmax.cc
create mode 100644 runtime/onert/core/src/interp/operations/TransposeConv.cc
create mode 100644 runtime/onert/core/src/interp/operations/UnaryActivations.cc
create mode 100644 runtime/onert/core/src/ir/Coordinates.cc
create mode 100644 runtime/onert/core/src/ir/Graph.cc
create mode 100644 runtime/onert/core/src/ir/GraphIterator.cc
create mode 100644 runtime/onert/core/src/ir/GraphIterator.h
create mode 100644 runtime/onert/core/src/ir/LayoutSet.cc
create mode 100644 runtime/onert/core/src/ir/LayoutSet.h
create mode 100644 runtime/onert/core/src/ir/LoweredGraph.cc
create mode 100644 runtime/onert/core/src/ir/OpCode.cc
create mode 100644 runtime/onert/core/src/ir/OpSequence.cc
create mode 100644 runtime/onert/core/src/ir/OpSequences.cc
create mode 100644 runtime/onert/core/src/ir/Operand.cc
create mode 100644 runtime/onert/core/src/ir/OperandIndexSequence.cc
create mode 100644 runtime/onert/core/src/ir/Operands.cc
create mode 100644 runtime/onert/core/src/ir/Operation.cc
create mode 100644 runtime/onert/core/src/ir/OperationCloner.cc
create mode 100644 runtime/onert/core/src/ir/OperationCloner.h
create mode 100644 runtime/onert/core/src/ir/OperationDumper.cc
create mode 100644 runtime/onert/core/src/ir/OperationDumper.h
create mode 100644 runtime/onert/core/src/ir/OperationIndexList.cc
create mode 100644 runtime/onert/core/src/ir/Operations.cc
create mode 100644 runtime/onert/core/src/ir/Padding.cc
create mode 100644 runtime/onert/core/src/ir/Shape.cc
create mode 100644 runtime/onert/core/src/ir/TypeInfo.cc
create mode 100644 runtime/onert/core/src/ir/operation/Abs.cc
create mode 100644 runtime/onert/core/src/ir/operation/Add.cc
create mode 100644 runtime/onert/core/src/ir/operation/ArgMax.cc
create mode 100644 runtime/onert/core/src/ir/operation/AvgPool2D.cc
create mode 100644 runtime/onert/core/src/ir/operation/BatchToSpaceND.cc
create mode 100644 runtime/onert/core/src/ir/operation/Cast.cc
create mode 100644 runtime/onert/core/src/ir/operation/Comparison.cc
create mode 100644 runtime/onert/core/src/ir/operation/Concat.cc
create mode 100644 runtime/onert/core/src/ir/operation/Conv2D.cc
create mode 100644 runtime/onert/core/src/ir/operation/ConvertFp16ToFp32.cc
create mode 100644 runtime/onert/core/src/ir/operation/ConvertFp32ToFp16.cc
create mode 100644 runtime/onert/core/src/ir/operation/Custom.cc
create mode 100644 runtime/onert/core/src/ir/operation/DepthToSpace.cc
create mode 100644 runtime/onert/core/src/ir/operation/DepthwiseConv2D.cc
create mode 100644 runtime/onert/core/src/ir/operation/Dequantize.cc
create mode 100644 runtime/onert/core/src/ir/operation/Div.cc
create mode 100644 runtime/onert/core/src/ir/operation/EmbeddingLookup.cc
create mode 100644 runtime/onert/core/src/ir/operation/Exp.cc
create mode 100644 runtime/onert/core/src/ir/operation/Floor.cc
create mode 100644 runtime/onert/core/src/ir/operation/FullyConnected.cc
create mode 100644 runtime/onert/core/src/ir/operation/Gather.cc
create mode 100644 runtime/onert/core/src/ir/operation/HashtableLookup.cc
create mode 100644 runtime/onert/core/src/ir/operation/InstanceNorm.cc
create mode 100644 runtime/onert/core/src/ir/operation/L2Normalization.cc
create mode 100644 runtime/onert/core/src/ir/operation/L2Pool2D.cc
create mode 100644 runtime/onert/core/src/ir/operation/LSTM.cc
create mode 100644 runtime/onert/core/src/ir/operation/LocalResponseNormalization.cc
create mode 100644 runtime/onert/core/src/ir/operation/LogicalAnd.cc
create mode 100644 runtime/onert/core/src/ir/operation/LogicalNot.cc
create mode 100644 runtime/onert/core/src/ir/operation/LogicalOr.cc
create mode 100644 runtime/onert/core/src/ir/operation/Logistic.cc
create mode 100644 runtime/onert/core/src/ir/operation/LowerInfo.cc
create mode 100644 runtime/onert/core/src/ir/operation/Max.cc
create mode 100644 runtime/onert/core/src/ir/operation/MaxPool2D.cc
create mode 100644 runtime/onert/core/src/ir/operation/Mean.cc
create mode 100644 runtime/onert/core/src/ir/operation/Min.cc
create mode 100644 runtime/onert/core/src/ir/operation/Mul.cc
create mode 100644 runtime/onert/core/src/ir/operation/Neg.cc
create mode 100644 runtime/onert/core/src/ir/operation/OneHot.cc
create mode 100644 runtime/onert/core/src/ir/operation/PReLU.cc
create mode 100644 runtime/onert/core/src/ir/operation/Pack.cc
create mode 100644 runtime/onert/core/src/ir/operation/Pad.cc
create mode 100644 runtime/onert/core/src/ir/operation/Permute.cc
create mode 100644 runtime/onert/core/src/ir/operation/RNN.cc
create mode 100644 runtime/onert/core/src/ir/operation/RSQRT.cc
create mode 100644 runtime/onert/core/src/ir/operation/ReLU.cc
create mode 100644 runtime/onert/core/src/ir/operation/ReLU1.cc
create mode 100644 runtime/onert/core/src/ir/operation/ReLU6.cc
create mode 100644 runtime/onert/core/src/ir/operation/ReduceMax.cc
create mode 100644 runtime/onert/core/src/ir/operation/ReduceMin.cc
create mode 100644 runtime/onert/core/src/ir/operation/ReduceSum.cc
create mode 100644 runtime/onert/core/src/ir/operation/Reshape.cc
create mode 100644 runtime/onert/core/src/ir/operation/ResizeBilinear.cc
create mode 100644 runtime/onert/core/src/ir/operation/SQRT.cc
create mode 100644 runtime/onert/core/src/ir/operation/Shape.cc
create mode 100644 runtime/onert/core/src/ir/operation/Sin.cc
create mode 100644 runtime/onert/core/src/ir/operation/Slice.cc
create mode 100644 runtime/onert/core/src/ir/operation/Softmax.cc
create mode 100644 runtime/onert/core/src/ir/operation/SpaceToBatchND.cc
create mode 100644 runtime/onert/core/src/ir/operation/SpaceToDepth.cc
create mode 100644 runtime/onert/core/src/ir/operation/Split.cc
create mode 100644 runtime/onert/core/src/ir/operation/SquaredDifference.cc
create mode 100644 runtime/onert/core/src/ir/operation/Squeeze.cc
create mode 100644 runtime/onert/core/src/ir/operation/StridedSlice.cc
create mode 100644 runtime/onert/core/src/ir/operation/Sub.cc
create mode 100644 runtime/onert/core/src/ir/operation/Tanh.cc
create mode 100644 runtime/onert/core/src/ir/operation/TopKV2.cc
create mode 100644 runtime/onert/core/src/ir/operation/Transpose.cc
create mode 100644 runtime/onert/core/src/ir/operation/TransposeConv.cc
create mode 100644 runtime/onert/core/src/ir/operation/Unpack.cc
create mode 100644 runtime/onert/core/src/ir/pass/ConstantInsertionPass.cc
create mode 100644 runtime/onert/core/src/ir/pass/ConstantInsertionPass.h
create mode 100644 runtime/onert/core/src/ir/pass/LoweredOperandPass.h
create mode 100644 runtime/onert/core/src/ir/pass/LoweredOperationPass.h
create mode 100644 runtime/onert/core/src/ir/pass/OperandPass.cc
create mode 100644 runtime/onert/core/src/ir/pass/OperandPass.h
create mode 100644 runtime/onert/core/src/ir/pass/OperationPass.cc
create mode 100644 runtime/onert/core/src/ir/pass/OperationPass.h
create mode 100644 runtime/onert/core/src/ir/pass/Pass.h
create mode 100644 runtime/onert/core/src/ir/pass/PermutationEliminationPass.cc
create mode 100644 runtime/onert/core/src/ir/pass/PermutationEliminationPass.h
create mode 100644 runtime/onert/core/src/ir/pass/PermutationInsertionPass.cc
create mode 100644 runtime/onert/core/src/ir/pass/PermutationInsertionPass.h
create mode 100644 runtime/onert/core/src/ir/pass/PermutationOperationPass.cc
create mode 100644 runtime/onert/core/src/ir/pass/PermutationOperationPass.h
create mode 100644 runtime/onert/core/src/ir/verifier/Verifier.cc
create mode 100644 runtime/onert/core/src/ir/verifier/Verifier.h
create mode 100644 runtime/onert/core/src/library_info.cc
create mode 100644 runtime/onert/core/src/util/ConfigSource.cc
create mode 100644 runtime/onert/core/src/util/EnvConfigSource.cc
create mode 100644 runtime/onert/core/src/util/EventCollectorGlobal.cc
create mode 100644 runtime/onert/core/src/util/GeneralConfigSource.cc
create mode 100644 runtime/onert/core/src/util/ShapeInference.cc
create mode 100644 runtime/onert/core/src/util/logging.cc
create mode 100644 runtime/onert/frontend/CMakeLists.txt
create mode 100644 runtime/onert/frontend/base_loader/CMakeLists.txt
create mode 100644 runtime/onert/frontend/base_loader/include/base_loader.h
create mode 100644 runtime/onert/frontend/circle/CMakeLists.txt
create mode 100644 runtime/onert/frontend/circle/include/circle_loader.h
create mode 100644 runtime/onert/frontend/circle/src/circle_loader.cc
create mode 100644 runtime/onert/frontend/circle/src/circle_schema_generated.h
create mode 100644 runtime/onert/frontend/nnapi/ANeuralNetworksModel.test.cc
create mode 100644 runtime/onert/frontend/nnapi/CMakeLists.txt
create mode 100644 runtime/onert/frontend/nnapi/compilation.cc
create mode 100644 runtime/onert/frontend/nnapi/event.cc
create mode 100644 runtime/onert/frontend/nnapi/execution.cc
create mode 100644 runtime/onert/frontend/nnapi/memory.cc
create mode 100644 runtime/onert/frontend/nnapi/model.cc
create mode 100644 runtime/onert/frontend/nnapi/wrapper/ANeuralNetworksCompilation.cc
create mode 100644 runtime/onert/frontend/nnapi/wrapper/ANeuralNetworksCompilation.h
create mode 100644 runtime/onert/frontend/nnapi/wrapper/ANeuralNetworksEvent.cc
create mode 100644 runtime/onert/frontend/nnapi/wrapper/ANeuralNetworksEvent.h
create mode 100644 runtime/onert/frontend/nnapi/wrapper/ANeuralNetworksExecution.cc
create mode 100644 runtime/onert/frontend/nnapi/wrapper/ANeuralNetworksExecution.h
create mode 100644 runtime/onert/frontend/nnapi/wrapper/ANeuralNetworksMemory.cc
create mode 100644 runtime/onert/frontend/nnapi/wrapper/ANeuralNetworksMemory.h
create mode 100644 runtime/onert/frontend/nnapi/wrapper/ANeuralNetworksModel.cc
create mode 100644 runtime/onert/frontend/nnapi/wrapper/ANeuralNetworksModel.h
create mode 100644 runtime/onert/frontend/nnapi/wrapper/NNAPIConvert.cc
create mode 100644 runtime/onert/frontend/nnapi/wrapper/NNAPIConvert.h
create mode 100644 runtime/onert/frontend/nnapi/wrapper/OperationFactory.cc
create mode 100644 runtime/onert/frontend/nnapi/wrapper/OperationFactory.h
create mode 100644 runtime/onert/frontend/tflite/CMakeLists.txt
create mode 100644 runtime/onert/frontend/tflite/include/tflite_loader.h
create mode 100644 runtime/onert/frontend/tflite/src/tflite_loader.cc
create mode 100644 runtime/onert/frontend/tflite/src/tflite_schema_generated.h
create mode 100644 runtime/onert/frontend/tflite/tflite_schema-1.13.1.fbs
create mode 100644 runtime/onert/frontend/tflite/tflite_schema.fbs
create mode 100644 runtime/onert/sample/CMakeLists.txt
create mode 100644 runtime/onert/sample/minimal/CMakeLists.txt
create mode 100644 runtime/onert/sample/minimal/README.md
create mode 100644 runtime/onert/sample/minimal/src/minimal.cc
create mode 100644 runtime/onert/test/CMakeLists.txt
create mode 100644 runtime/onert/test/core/compiler/Scheduler.cc
create mode 100644 runtime/onert/test/core/exec/ExecInstance.cc
create mode 100644 runtime/onert/test/core/exec/ExecTime.test.cc
create mode 100644 runtime/onert/test/core/interp/ExecManager.cc
create mode 100644 runtime/onert/test/graph/Graph.cc
create mode 100644 runtime/onert/test/graph/Index.cc
create mode 100644 runtime/onert/test/graph/MockNode.h
create mode 100644 runtime/onert/test/graph/operand/IndexSet.cc
create mode 100644 runtime/onert/test/graph/operand/LayoutSet.cc
create mode 100644 runtime/onert/test/graph/operand/Set.cc
create mode 100644 runtime/onert/test/graph/operand/UseDef.cc
create mode 100644 runtime/onert/test/graph/operation/Set.cc
create mode 100644 runtime/onert/test/graph/operation/SetIO.cc
create mode 100644 runtime/onert/test/graph/verifier/Verifier.cc
create mode 100644 runtime/onert/test/util/ObjectManager.cc
create mode 100644 runtime/onert/test/util/ShapeInference.cc
delete mode 100755 tests/framework/run_test.sh
delete mode 100644 tests/framework/tests/MODELS/inception_module/config.sh
delete mode 100644 tests/framework/tests/MODELS/inception_nonslim/config.sh
delete mode 100644 tests/framework/tests/MODELS/inception_slim/config.sh
delete mode 100644 tests/framework/tests/MODELS/mobilenet/config.sh
delete mode 100644 tests/framework/tests/add/1D/config.sh
delete mode 100644 tests/framework/tests/add/4D/config.sh
delete mode 100644 tests/framework/tests/average_pool_2d/avgpool1/config.sh
delete mode 100644 tests/framework/tests/average_pool_2d/avgpool2/config.sh
delete mode 100644 tests/framework/tests/batch_to_space_nd2/config.sh
delete mode 100644 tests/framework/tests/cast/config.sh
delete mode 100644 tests/framework/tests/concat/2D/config.sh
delete mode 100644 tests/framework/tests/concat/concat1/config.sh
delete mode 100644 tests/framework/tests/concat/concat2/config.sh
delete mode 100644 tests/framework/tests/conv_2d/convolution1/config.sh
delete mode 100644 tests/framework/tests/conv_2d/convolution2/config.sh
delete mode 100644 tests/framework/tests/custom/abs/config.sh
delete mode 100644 tests/framework/tests/custom/squared_difference/config.sh
delete mode 100644 tests/framework/tests/custom/tensorflowmax/config.sh
delete mode 100644 tests/framework/tests/custom/tensorflowsum/config.sh
delete mode 100644 tests/framework/tests/depthwise_conv_2d/depthconv1/config.sh
delete mode 100644 tests/framework/tests/depthwise_conv_2d/depthconv2/config.sh
delete mode 100644 tests/framework/tests/div/broadcast/config.sh
delete mode 100644 tests/framework/tests/embedding_lookup/config.sh
delete mode 100644 tests/framework/tests/exp/config.sh
delete mode 100644 tests/framework/tests/floor/floor1/config.sh
delete mode 100644 tests/framework/tests/floor/floor2/config.sh
delete mode 100644 tests/framework/tests/fullyconnected/fc1/config.sh
delete mode 100644 tests/framework/tests/fullyconnected/matmul2x2/config.sh
delete mode 100644 tests/framework/tests/gather/config.sh
delete mode 100644 tests/framework/tests/hashtable_lookup/config.sh
delete mode 100644 tests/framework/tests/l2_normalization/config.sh
delete mode 100644 tests/framework/tests/l2_pool_2d/config.sh
delete mode 100644 tests/framework/tests/logistic/config.sh
delete mode 100644 tests/framework/tests/max/config.sh
delete mode 100644 tests/framework/tests/max_pool_2d/maxpool1/config.sh
delete mode 100644 tests/framework/tests/max_pool_2d/maxpool2/config.sh
delete mode 100644 tests/framework/tests/mean/config.sh
delete mode 100644 tests/framework/tests/min/config.sh
delete mode 100644 tests/framework/tests/mul/broadcast/config.sh
delete mode 100644 tests/framework/tests/neg/config.sh
delete mode 100644 tests/framework/tests/pack/config.sh
delete mode 100644 tests/framework/tests/pad/4D_2D/config.sh
delete mode 100644 tests/framework/tests/pad/pad1/config.sh
delete mode 100644 tests/framework/tests/pad/pad2/config.sh
delete mode 100644 tests/framework/tests/reduce_max/config.sh
delete mode 100644 tests/framework/tests/reduce_mean/test1/config.sh
delete mode 100644 tests/framework/tests/reduce_mean/test2/config.sh
delete mode 100644 tests/framework/tests/reduce_sum/config.sh
delete mode 100644 tests/framework/tests/relu/config.sh
delete mode 100644 tests/framework/tests/relu6/config.sh
delete mode 100644 tests/framework/tests/reshape/3D/config.sh
delete mode 100644 tests/framework/tests/reshape/reshape1/config.sh
delete mode 100644 tests/framework/tests/reshape/reshape2/config.sh
delete mode 100644 tests/framework/tests/resize_bilinear/config.sh
delete mode 100644 tests/framework/tests/rnn/config.sh
delete mode 100644 tests/framework/tests/rsqrt/config.sh
delete mode 100644 tests/framework/tests/slice/config.sh
delete mode 100644 tests/framework/tests/softmax/config.sh
delete mode 100644 tests/framework/tests/space_to_batch_nd2/config.sh
delete mode 100644 tests/framework/tests/space_to_depth/config.sh
delete mode 100644 tests/framework/tests/sqrt/config.sh
delete mode 100644 tests/framework/tests/squeeze/config.sh
delete mode 100644 tests/framework/tests/strided_slice/config.sh
delete mode 100644 tests/framework/tests/sub/broadcast/config.sh
delete mode 100644 tests/framework/tests/tanh/config.sh
delete mode 100644 tests/framework/tests/topk_v2/config.sh
delete mode 100644 tests/framework/tests/transpose/config.sh
delete mode 100644 tests/framework/tests/transpose_conv/same/config.sh
delete mode 100644 tests/framework/tests/transpose_conv/valid/config.sh
create mode 100644 tests/nnapi/nnapi_gtest.skip.aarch64-linux.acl_cl
create mode 100644 tests/nnapi/nnapi_gtest.skip.aarch64-linux.acl_neon
create mode 100644 tests/nnapi/nnapi_gtest.skip.aarch64-linux.cpu
create mode 100644 tests/nnapi/nnapi_gtest.skip.aarch64-linux.srcn
delete mode 100644 tests/nnapi/nnapi_gtest.skip.armv7l-linux
create mode 100644 tests/nnapi/nnapi_gtest.skip.armv7l-linux.acl_cl
delete mode 100644 tests/nnapi/nnapi_gtest.skip.armv7l-linux.ncnn
create mode 100644 tests/nnapi/nnapi_gtest.skip.armv7l-linux.srcn
delete mode 100644 tests/nnapi/nnapi_gtest.skip.armv7l-tizen
create mode 100644 tests/nnapi/nnapi_gtest.skip.armv7l-tizen.acl_cl
delete mode 100644 tests/nnapi/nnapi_gtest.skip.x86_64-linux
create mode 100644 tests/nnapi/nnapi_gtest.skip.x86_64-linux.cpu
delete mode 100644 tests/nnapi/specs/Ex/argmax_ex_float_1.mod.py
delete mode 100644 tests/nnapi/specs/Ex/argmax_ex_float_2.mod.py
delete mode 100644 tests/nnapi/specs/Ex/argmax_ex_int32.mod.py
delete mode 100644 tests/nnapi/specs/Ex/argmax_ex_neg_axis_float.mod.py
delete mode 100644 tests/nnapi/specs/Ex/argmax_ex_neg_axis_int32.mod.py
delete mode 100644 tests/nnapi/specs/Ex/argmax_ex_quant8.mod.py
delete mode 100644 tests/nnapi/specs/Ex/argmax_ex_quant8_neg_axis.mod.py
delete mode 100644 tests/nnapi/specs/Ex/equal_ex_1D_float.mod.py
delete mode 100644 tests/nnapi/specs/Ex/equal_ex_4D_float.mod.py
delete mode 100644 tests/nnapi/specs/Ex/equal_ex_broadcast_4D_2D_float.mod.py
delete mode 100644 tests/nnapi/specs/Ex/equal_ex_broadcast_float.mod.py
delete mode 100644 tests/nnapi/specs/Ex/equal_ex_quant8.mod.py
mode change 100644 => 100755 tests/nnapi/specs/Ex/fully_connected_float_2_weights_as_inputs.mod.py
delete mode 100644 tests/nnapi/specs/Ex/greater_equal_ex.mod.py
delete mode 100644 tests/nnapi/specs/Ex/less_ex.mod.py
delete mode 100644 tests/nnapi/specs/Ex/logical_and_ex_1D.mod.py
delete mode 100644 tests/nnapi/specs/Ex/logical_and_ex_2D.mod.py
delete mode 100644 tests/nnapi/specs/Ex/logical_and_ex_3D.mod.py
delete mode 100644 tests/nnapi/specs/Ex/logical_and_ex_4D.mod.py
delete mode 100644 tests/nnapi/specs/Ex/logical_and_ex_broadcast.mod.py
delete mode 100644 tests/nnapi/specs/Ex/logical_and_ex_broadcast_4D_2D.mod.py
delete mode 100644 tests/nnapi/specs/Ex/logical_not_ex_1D.mod.py
delete mode 100644 tests/nnapi/specs/Ex/logical_not_ex_4D.mod.py
delete mode 100644 tests/nnapi/specs/Ex/logical_or_ex_1D.mod.py
delete mode 100644 tests/nnapi/specs/Ex/logical_or_ex_2D.mod.py
delete mode 100644 tests/nnapi/specs/Ex/logical_or_ex_3D.mod.py
delete mode 100644 tests/nnapi/specs/Ex/logical_or_ex_4D.mod.py
delete mode 100644 tests/nnapi/specs/Ex/logical_or_ex_broadcast.mod.py
delete mode 100644 tests/nnapi/specs/Ex/logical_or_ex_broadcast_4D_2D.mod.py
delete mode 100644 tests/nnapi/specs/Ex/notequal_ex_broadcast_4D_2D_float.mod.py
delete mode 100644 tests/nnapi/specs/Ex/notequal_ex_broadcast_float.mod.py
delete mode 100644 tests/nnapi/specs/Ex/notequal_ex_float.mod.py
delete mode 100644 tests/nnapi/specs/Ex/notequal_ex_quant8.mod.py
mode change 100644 => 100755 tests/nnapi/specs/Ex/pack_ex_2D_float_1.mod.py
mode change 100644 => 100755 tests/nnapi/specs/Ex/pack_ex_2D_float_2.mod.py
mode change 100644 => 100755 tests/nnapi/specs/Ex/pack_ex_2D_int_1.mod.py
mode change 100644 => 100755 tests/nnapi/specs/Ex/pack_ex_2D_int_2.mod.py
delete mode 100644 tests/nnapi/specs/Ex/prelu_ex_broadcast_float_1.mod.py
delete mode 100644 tests/nnapi/specs/Ex/prelu_ex_broadcast_quant8_1.mod.py
delete mode 100644 tests/nnapi/specs/Ex/prelu_ex_float_1.mod.py
delete mode 100644 tests/nnapi/specs/Ex/prelu_ex_quant8_1.mod.py
delete mode 100644 tests/nnapi/specs/Ex/reduce_min_ex_float.mod.py
delete mode 100644 tests/nnapi/specs/Ex/reduce_min_ex_float_1.mod.py
delete mode 100644 tests/nnapi/specs/Ex/reduce_min_ex_float_2.mod.py
delete mode 100644 tests/nnapi/specs/Ex/reduce_sum_ex_2D_float.mod.py
delete mode 100644 tests/nnapi/specs/Ex/reduce_sum_ex_4D_float.mod.py
delete mode 100644 tests/nnapi/specs/Ex/reduce_sum_ex_4D_float_reducing_C.mod.py
delete mode 100644 tests/nnapi/specs/Ex/reduce_sum_ex_4D_float_reducing_HW.mod.py
delete mode 100644 tests/nnapi/specs/Ex/split_ex_1D_float.mod.py
delete mode 100644 tests/nnapi/specs/Ex/split_ex_1D_int32.mod.py
delete mode 100644 tests/nnapi/specs/Ex/split_ex_4D_float_1.mod.py
delete mode 100644 tests/nnapi/specs/Ex/split_ex_4D_float_2.mod.py
delete mode 100644 tests/nnapi/specs/Ex/split_ex_4D_float_3.mod.py
delete mode 100644 tests/nnapi/specs/Ex/split_ex_4D_int32_1.mod.py
delete mode 100644 tests/nnapi/specs/Ex/split_ex_4D_int32_2.mod.py
delete mode 100644 tests/nnapi/specs/Ex/split_ex_4D_int32_3.mod.py
delete mode 100644 tests/nnapi/specs/Ex/split_ex_4D_int32_4.mod.py
delete mode 100644 tests/nnapi/specs/Ex/split_ex_4D_int32_5.mod.py
delete mode 100644 tests/nnapi/specs/Ex/split_ex_4D_quant8.mod.py
mode change 100644 => 100755 tests/nnapi/specs/Ex/squared_difference_ex_1D_float.mod.py
mode change 100644 => 100755 tests/nnapi/specs/Ex/squared_difference_ex_2D_float.mod.py
mode change 100644 => 100755 tests/nnapi/specs/Ex/squared_difference_ex_3D_float.mod.py
mode change 100644 => 100755 tests/nnapi/specs/Ex/squared_difference_ex_4D_float.mod.py
mode change 100644 => 100755 tests/nnapi/specs/Ex/squared_difference_ex_broadcast_4D_2D_float.mod.py
mode change 100644 => 100755 tests/nnapi/specs/Ex/squared_difference_ex_broadcast_float.mod.py
mode change 100644 => 100755 tests/nnapi/specs/Ex/transpose_conv_ex_float_1.mod.py
mode change 100644 => 100755 tests/nnapi/specs/Ex/transpose_conv_ex_float_2.mod.py
mode change 100644 => 100755 tests/nnapi/specs/Ex/transpose_conv_ex_float_3.mod.py
mode change 100644 => 100755 tests/nnapi/specs/Ex/transpose_conv_ex_float_4.mod.py
mode change 100644 => 100755 tests/nnapi/specs/Ex/unpack_ex_3D_float_1.mod.py
mode change 100644 => 100755 tests/nnapi/specs/Ex/unpack_ex_3D_float_2.mod.py
mode change 100644 => 100755 tests/nnapi/specs/Ex/unpack_ex_3D_int_1.mod.py
mode change 100644 => 100755 tests/nnapi/specs/Ex/unpack_ex_3D_int_2.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_0/add.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_0/add_broadcast_4D_2D_after_nops_float_nnfw.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_0/add_broadcast_quant8.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_0/add_quant8.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_0/avg_pool_float_1.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_0/avg_pool_float_2.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_0/avg_pool_float_3.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_0/avg_pool_float_4.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_0/avg_pool_float_5.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_0/avg_pool_quant8_1.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_0/avg_pool_quant8_2.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_0/avg_pool_quant8_3.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_0/avg_pool_quant8_4.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_0/avg_pool_quant8_5.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_0/concat_float_1.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_0/concat_float_2.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_0/concat_float_3.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_0/concat_float_4D_axis3_1_nnfw.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_0/concat_quant8_1.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_0/concat_quant8_2.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_0/concat_quant8_3.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_0/conv_1_h3_w2_SAME.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_0/conv_1_h3_w2_VALID.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_0/conv_3_h3_w2_SAME.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_0/conv_3_h3_w2_VALID.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_0/conv_float.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_0/conv_float_2.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_0/conv_float_channels.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_0/conv_float_channels_weights_as_inputs.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_0/conv_float_large.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_0/conv_float_large_weights_as_inputs.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_0/conv_float_weights_as_inputs.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_0/conv_quant8.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_0/conv_quant8_2.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_0/conv_quant8_channels.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_0/conv_quant8_channels_weights_as_inputs.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_0/conv_quant8_large.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_0/conv_quant8_large_weights_as_inputs.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_0/conv_quant8_overflow.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_0/conv_quant8_overflow_weights_as_inputs.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_0/conv_quant8_weights_as_inputs.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_0/depth_to_space_float_1.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_0/depth_to_space_float_2.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_0/depth_to_space_float_3.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_0/depth_to_space_quant8_1.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_0/depth_to_space_quant8_2.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_0/depthwise_conv.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_0/depthwise_conv2d_float.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_0/depthwise_conv2d_float_2.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_0/depthwise_conv2d_float_large.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_0/depthwise_conv2d_float_large_2.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_0/depthwise_conv2d_float_large_2_weights_as_inputs.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_0/depthwise_conv2d_float_large_weights_as_inputs.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_0/depthwise_conv2d_float_weights_as_inputs.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_0/depthwise_conv2d_quant8.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_0/depthwise_conv2d_quant8_2.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_0/depthwise_conv2d_quant8_large.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_0/depthwise_conv2d_quant8_large_weights_as_inputs.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_0/depthwise_conv2d_quant8_weights_as_inputs.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_0/dequantize.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_0/embedding_lookup.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_0/embedding_lookup_2d_nnfw.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_0/embedding_lookup_4d_nnfw.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_0/floor_.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_0/fully_connected_float.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_0/fully_connected_float_1_nnfw.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_0/fully_connected_float_2.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_0/fully_connected_float_3.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_0/fully_connected_float_large.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_0/fully_connected_float_large_weights_as_inputs.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_0/fully_connected_float_weights_as_inputs.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_0/fully_connected_hybrid_1_nnfw.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_0/fully_connected_hybrid_2_nnfw.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_0/fully_connected_quant8.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_0/fully_connected_quant8_2.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_0/fully_connected_quant8_large.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_0/fully_connected_quant8_large_weights_as_inputs.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_0/fully_connected_quant8_weights_as_inputs.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_0/hashtable_lookup_float.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_0/hashtable_lookup_float_4D_nnfw.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_0/hashtable_lookup_quant8.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_0/l2_normalization.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_0/l2_normalization_2.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_0/l2_normalization_large.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_0/l2_pool_float.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_0/l2_pool_float_2.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_0/l2_pool_float_large.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_0/local_response_norm_float_1.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_0/local_response_norm_float_2.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_0/local_response_norm_float_3.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_0/local_response_norm_float_4.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_0/logistic_float_1.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_0/logistic_float_2.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_0/logistic_quant8_1.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_0/logistic_quant8_2.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_0/lsh_projection.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_0/lsh_projection_2.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_0/lsh_projection_weights_as_inputs.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_0/lstm.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_0/lstm2.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_0/lstm2_state.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_0/lstm2_state2.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_0/lstm3.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_0/lstm3_state.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_0/lstm3_state2.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_0/lstm3_state3.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_0/lstm_state.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_0/lstm_state2.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_0/max_pool_float_1.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_0/max_pool_float_2.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_0/max_pool_float_3.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_0/max_pool_float_4.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_0/max_pool_quant8_1.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_0/max_pool_quant8_2.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_0/max_pool_quant8_3.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_0/max_pool_quant8_4.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_0/mul.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_0/mul_4D_nnfw.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_0/mul_broadcast_3D_1D_1_nnfw.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_0/mul_broadcast_3D_1D_2_nnfw.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_0/mul_broadcast_quant8.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_0/mul_float_square_nnfw.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_0/mul_quant8.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_0/mul_relu.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_0/relu1_float_1.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_0/relu1_float_2.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_0/relu1_quant8_1.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_0/relu1_quant8_2.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_0/relu6_float_1.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_0/relu6_float_2.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_0/relu6_quant8_1.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_0/relu6_quant8_2.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_0/relu_float_1.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_0/relu_float_2.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_0/relu_quant8_1.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_0/relu_quant8_2.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_0/reshape.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_0/reshape_quant8.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_0/reshape_quant8_weights_as_inputs.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_0/reshape_weights_as_inputs.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_0/resize_bilinear.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_0/resize_bilinear_2.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_0/rnn.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_0/rnn_state.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_0/softmax_float_1.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_0/softmax_float_2.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_0/softmax_quant8_1.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_0/softmax_quant8_2.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_0/space_to_depth_float_1.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_0/space_to_depth_float_2.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_0/space_to_depth_float_3.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_0/space_to_depth_quant8_1.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_0/space_to_depth_quant8_2.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_0/svdf.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_0/svdf2.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_0/svdf_bias_present.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_0/svdf_state.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_0/tanh_.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_1/batch_to_space.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_1/batch_to_space_float_1.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_1/batch_to_space_quant8_1.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_1/div_.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_1/div_broadcast_float.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_1/div_broadcast_float_4D_2D_nnfw.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_1/fully_connected_float_4d_simple.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_1/mean.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_1/mean_4D_float_reducing_C_nnfw.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_1/mean_4D_float_reducing_HW_nnfw.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_1/mean_axis01_1_nnfw.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_1/mean_axis01_2_nnfw.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_1/mean_float_1.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_1/mean_float_2.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_1/mean_quant8_1.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_1/mean_quant8_2.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_1/pad.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_1/pad_2D_HW_nnfw.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_1/pad_3D_HWC_nnfw.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_1/pad_BHWC_nnfw.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_1/pad_BHW_nnfw.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_1/pad_HWD_nnfw.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_1/pad_float_1.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_1/pad_quant8_nnfw.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_1/space_to_batch.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_1/space_to_batch_float_1.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_1/space_to_batch_float_1_nnfw.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_1/space_to_batch_float_2.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_1/space_to_batch_float_3.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_1/space_to_batch_quant8_1.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_1/space_to_batch_quant8_1_nnfw.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_1/space_to_batch_quant8_2.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_1/space_to_batch_quant8_2_nnfw.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_1/space_to_batch_quant8_3.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_1/squeeze.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_1/squeeze_2D_float_1_nnfw.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_1/squeeze_float_1.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_1/squeeze_quant8_1.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_1/strided_slice.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_1/strided_slice_float_1.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_1/strided_slice_float_10.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_1/strided_slice_float_11.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_1/strided_slice_float_2.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_1/strided_slice_float_3.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_1/strided_slice_float_4.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_1/strided_slice_float_5.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_1/strided_slice_float_6.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_1/strided_slice_float_7.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_1/strided_slice_float_8.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_1/strided_slice_float_9.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_1/strided_slice_qaunt8_10.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_1/strided_slice_qaunt8_11.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_1/strided_slice_quant8_1.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_1/strided_slice_quant8_2.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_1/strided_slice_quant8_3.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_1/strided_slice_quant8_4.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_1/strided_slice_quant8_5.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_1/strided_slice_quant8_6.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_1/strided_slice_quant8_7.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_1/strided_slice_quant8_8.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_1/strided_slice_quant8_9.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_1/sub.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_1/sub_broadcast_4D_2D_float_nnfw.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_1/sub_broadcast_float.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_1/transpose.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_1/transpose_2D_nnfw.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_1/transpose_3D_nnfw.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_1/transpose_float_1.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_1/transpose_quant8_1.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_2/abs_.mod.py
create mode 100755 tests/nnapi/specs/V1_2/abs_1D_float_nnfw.mod.py
create mode 100755 tests/nnapi/specs/V1_2/abs_2D_float_nnfw.mod.py
create mode 100755 tests/nnapi/specs/V1_2/abs_3D_float_nnfw.mod.py
create mode 100755 tests/nnapi/specs/V1_2/abs_4D_float_nnfw.mod.py
create mode 100755 tests/nnapi/specs/V1_2/argmax_1.mod.py
create mode 100755 tests/nnapi/specs/V1_2/argmax_2.mod.py
create mode 100755 tests/nnapi/specs/V1_2/argmax_3.mod.py
create mode 100755 tests/nnapi/specs/V1_2/argmax_float_1_nnfw.mod.py
create mode 100755 tests/nnapi/specs/V1_2/argmax_float_2_nnfw.mod.py
create mode 100755 tests/nnapi/specs/V1_2/argmax_int32_nnfw.mod.py
create mode 100755 tests/nnapi/specs/V1_2/argmax_neg_axis_float_nnfw.mod.py
create mode 100755 tests/nnapi/specs/V1_2/argmax_neg_axis_int32_nnfw.mod.py
create mode 100755 tests/nnapi/specs/V1_2/argmax_quant8_neg_axis_nnfw.mod.py
create mode 100755 tests/nnapi/specs/V1_2/argmax_quant8_nnfw.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_2/cast.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_2/cast_float32_to_int32_nnfw.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_2/cast_int32_to_float32_nnfw.mod.py
create mode 100755 tests/nnapi/specs/V1_2/equal.mod.py
create mode 100755 tests/nnapi/specs/V1_2/equal_1D_float_nnfw.mod.py
create mode 100755 tests/nnapi/specs/V1_2/equal_4D_float_nnfw.mod.py
create mode 100755 tests/nnapi/specs/V1_2/equal_broadcast_4D_2D_float_nnfw.mod.py
create mode 100755 tests/nnapi/specs/V1_2/equal_broadcast_float_nnfw.mod.py
create mode 100755 tests/nnapi/specs/V1_2/equal_quant8_nnfw.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_2/exp_.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_2/exp_1D_float_nnfw.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_2/exp_2D_float_nnfw.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_2/exp_3D_float_nnfw.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_2/exp_4D_float_nnfw.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_2/gather.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_2/gather_1D_float_nnfw.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_2/gather_1D_int32_nnfw.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_2/gather_1D_quant8_nnfw.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_2/gather_2D_2D_float_1_nnfw.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_2/gather_2D_2D_float_2_nnfw.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_2/gather_2D_3D_float_1_nnfw.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_2/gather_2D_3D_float_2_nnfw.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_2/gather_2D_float_nnfw.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_2/gather_2D_int32_nnfw.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_2/gather_2D_quant8_nnfw.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_2/gather_3D_2D_float_1_nnfw.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_2/gather_3D_2D_float_2_nnfw.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_2/gather_3D_2D_float_3_nnfw.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_2/gather_4D_float_nnfw.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_2/gather_higher_rank.mod.py
create mode 100755 tests/nnapi/specs/V1_2/greater_equal.mod.py
create mode 100755 tests/nnapi/specs/V1_2/greater_equal_nnfw.mod.py
create mode 100755 tests/nnapi/specs/V1_2/less.mod.py
create mode 100755 tests/nnapi/specs/V1_2/less_nnfw.mod.py
create mode 100755 tests/nnapi/specs/V1_2/logical_and.mod.py
create mode 100755 tests/nnapi/specs/V1_2/logical_and_1D_nnfw.mod.py
create mode 100755 tests/nnapi/specs/V1_2/logical_and_2D_nnfw.mod.py
create mode 100755 tests/nnapi/specs/V1_2/logical_and_3D_nnfw.mod.py
create mode 100755 tests/nnapi/specs/V1_2/logical_and_4D_nnfw.mod.py
create mode 100755 tests/nnapi/specs/V1_2/logical_and_broadcast_4D_2D_nnfw.mod.py
create mode 100755 tests/nnapi/specs/V1_2/logical_and_broadcast_nnfw.mod.py
create mode 100755 tests/nnapi/specs/V1_2/logical_not.mod.py
create mode 100755 tests/nnapi/specs/V1_2/logical_not_1D_nnfw.mod.py
create mode 100755 tests/nnapi/specs/V1_2/logical_not_4D_nnfw.mod.py
create mode 100755 tests/nnapi/specs/V1_2/logical_or.mod.py
create mode 100755 tests/nnapi/specs/V1_2/logical_or_1D_nnfw.mod.py
create mode 100755 tests/nnapi/specs/V1_2/logical_or_2D_nnfw.mod.py
create mode 100755 tests/nnapi/specs/V1_2/logical_or_3D_nnfw.mod.py
create mode 100755 tests/nnapi/specs/V1_2/logical_or_4D_nnfw.mod.py
create mode 100755 tests/nnapi/specs/V1_2/logical_or_broadcast_4D_2D_nnfw.mod.py
create mode 100755 tests/nnapi/specs/V1_2/logical_or_broadcast_nnfw.mod.py
create mode 100755 tests/nnapi/specs/V1_2/maximum.mod.py
create mode 100755 tests/nnapi/specs/V1_2/minimum.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_2/neg.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_2/neg_1D_float_nnfw.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_2/neg_2D_float_nnfw.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_2/neg_3D_float_nnfw.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_2/neg_3D_int_nnfw.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_2/neg_4D_float_nnfw.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_2/neg_4D_int_nnfw.mod.py
create mode 100755 tests/nnapi/specs/V1_2/not_equal.mod.py
create mode 100755 tests/nnapi/specs/V1_2/not_equal_broadcast_4D_2D_float_nnfw.mod.py
create mode 100755 tests/nnapi/specs/V1_2/not_equal_broadcast_float_nnfw.mod.py
create mode 100755 tests/nnapi/specs/V1_2/not_equal_float_nnfw.mod.py
create mode 100755 tests/nnapi/specs/V1_2/not_equal_quant8_nnfw.mod.py
create mode 100755 tests/nnapi/specs/V1_2/prelu.mod.py
create mode 100755 tests/nnapi/specs/V1_2/prelu_broadcast_float_1_nnfw.mod.py
create mode 100755 tests/nnapi/specs/V1_2/prelu_broadcast_quant8_1_nnfw.mod.py
create mode 100755 tests/nnapi/specs/V1_2/prelu_float_1_nnfw.mod.py
create mode 100755 tests/nnapi/specs/V1_2/prelu_quant8_1_nnfw.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_2/reduce_max.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_2/reduce_max_2D_float_nnfw.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_2/reduce_max_2D_int32_nnfw.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_2/reduce_max_4D_float_reducing_C_nnfw.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_2/reduce_max_4D_float_reducing_HW_nnfw.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_2/reduce_max_float_1_nnfw.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_2/reduce_max_float_2_nnfw.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_2/reduce_max_float_nnfw.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_2/reduce_max_quant8_1_nnfw.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_2/reduce_max_quant8_2_nnfw.mod.py
create mode 100755 tests/nnapi/specs/V1_2/reduce_min.mod.py
create mode 100755 tests/nnapi/specs/V1_2/reduce_min_float_1_nnfw.mod.py
create mode 100755 tests/nnapi/specs/V1_2/reduce_min_float_2_nnfw.mod.py
create mode 100755 tests/nnapi/specs/V1_2/reduce_min_float_nnfw.mod.py
create mode 100755 tests/nnapi/specs/V1_2/reduce_sum.mod.py
create mode 100755 tests/nnapi/specs/V1_2/reduce_sum_2D_float_nnfw.mod.py
create mode 100755 tests/nnapi/specs/V1_2/reduce_sum_4D_float_nnfw.mod.py
create mode 100755 tests/nnapi/specs/V1_2/reduce_sum_4D_float_reducing_C_nnfw.mod.py
create mode 100755 tests/nnapi/specs/V1_2/reduce_sum_4D_float_reducing_HW_nnfw.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_2/rsqrt.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_2/rsqrt_1D_float_nnfw.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_2/rsqrt_2D_float_nnfw.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_2/rsqrt_3D_float_nnfw.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_2/rsqrt_4D_float_nnfw.mod.py
create mode 100755 tests/nnapi/specs/V1_2/sin_1D_float_nnfw.mod.py
create mode 100755 tests/nnapi/specs/V1_2/sin_4D_float_nnfw.mod.py
create mode 100755 tests/nnapi/specs/V1_2/slice.mod.py
create mode 100755 tests/nnapi/specs/V1_2/split_1D_float_nnfw.mod.py
create mode 100755 tests/nnapi/specs/V1_2/split_1D_int32_nnfw.mod.py
create mode 100755 tests/nnapi/specs/V1_2/split_4D_float_1_nnfw.mod.py
create mode 100755 tests/nnapi/specs/V1_2/split_4D_float_2_nnfw.mod.py
create mode 100755 tests/nnapi/specs/V1_2/split_4D_float_3_nnfw.mod.py
create mode 100755 tests/nnapi/specs/V1_2/split_4D_int32_1_nnfw.mod.py
create mode 100755 tests/nnapi/specs/V1_2/split_4D_int32_2_nnfw.mod.py
create mode 100755 tests/nnapi/specs/V1_2/split_4D_int32_3_nnfw.mod.py
create mode 100755 tests/nnapi/specs/V1_2/split_4D_int32_4_nnfw.mod.py
create mode 100755 tests/nnapi/specs/V1_2/split_4D_int32_5_nnfw.mod.py
create mode 100755 tests/nnapi/specs/V1_2/split_4D_quant8_nnfw.mod.py
create mode 100755 tests/nnapi/specs/V1_2/split_float_1.mod.py
create mode 100755 tests/nnapi/specs/V1_2/split_float_2.mod.py
create mode 100755 tests/nnapi/specs/V1_2/split_float_3.mod.py
create mode 100755 tests/nnapi/specs/V1_2/split_float_4.mod.py
create mode 100755 tests/nnapi/specs/V1_2/split_float_5.mod.py
create mode 100755 tests/nnapi/specs/V1_2/split_int32_1.mod.py
create mode 100755 tests/nnapi/specs/V1_2/split_int32_2.mod.py
create mode 100755 tests/nnapi/specs/V1_2/split_int32_3.mod.py
create mode 100755 tests/nnapi/specs/V1_2/split_int32_4.mod.py
create mode 100755 tests/nnapi/specs/V1_2/split_quant8_1.mod.py
create mode 100755 tests/nnapi/specs/V1_2/split_quant8_2.mod.py
create mode 100755 tests/nnapi/specs/V1_2/split_quant8_3.mod.py
create mode 100755 tests/nnapi/specs/V1_2/split_quant8_4.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_2/sqrt_.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_2/sqrt_1D_float_nnfw.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_2/sqrt_2D_float_nnfw.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_2/sqrt_3D_float_nnfw.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_2/sqrt_4D_float_nnfw.mod.py
create mode 100755 tests/nnapi/specs/V1_2/sub_v1_2.mod.py
create mode 100755 tests/nnapi/specs/V1_2/sub_v1_2_broadcast.mod.py
create mode 100755 tests/nnapi/specs/V1_2/tanh_v1_2.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_2/topk_v2.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_2/topk_v2_1D_float_nnfw.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_2/topk_v2_1D_int32_nnfw.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_2/topk_v2_1D_quant8_nnfw.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_2/topk_v2_2D_float_nnfw.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_2/topk_v2_2D_int32_nnfw.mod.py
mode change 100644 => 100755 tests/nnapi/specs/V1_2/topk_v2_2D_quant8_nnfw.mod.py
create mode 100755 tests/nnapi/specs/V1_2/transpose_v1_2.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_0/mobilenet_224_gender_basic_fixed.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_0/mobilenet_quantized.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_1/add_relaxed.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_1/avg_pool_float_1_relaxed.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_1/avg_pool_float_2_relaxed.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_1/avg_pool_float_3_relaxed.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_1/avg_pool_float_4_relaxed.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_1/avg_pool_float_5_relaxed.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_1/batch_to_space_float_1_relaxed.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_1/batch_to_space_relaxed.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_1/concat_float_1_relaxed.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_1/concat_float_2_relaxed.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_1/concat_float_3_relaxed.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_1/conv_1_h3_w2_SAME_relaxed.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_1/conv_1_h3_w2_VALID_relaxed.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_1/conv_3_h3_w2_SAME_relaxed.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_1/conv_3_h3_w2_VALID_relaxed.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_1/conv_float_2_relaxed.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_1/conv_float_channels_relaxed.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_1/conv_float_channels_weights_as_inputs_relaxed.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_1/conv_float_large_relaxed.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_1/conv_float_large_weights_as_inputs_relaxed.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_1/conv_float_relaxed.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_1/conv_float_weights_as_inputs_relaxed.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_1/depth_to_space_float_1_relaxed.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_1/depth_to_space_float_2_relaxed.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_1/depth_to_space_float_3_relaxed.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_1/depthwise_conv2d_float_2_relaxed.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_1/depthwise_conv2d_float_large_2_relaxed.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_1/depthwise_conv2d_float_large_2_weights_as_inputs_relaxed.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_1/depthwise_conv2d_float_large_relaxed.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_1/depthwise_conv2d_float_large_weights_as_inputs_relaxed.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_1/depthwise_conv2d_float_relaxed.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_1/depthwise_conv2d_float_weights_as_inputs_relaxed.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_1/depthwise_conv_relaxed.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_1/dequantize_relaxed.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_1/div_broadcast_float_relaxed.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_1/div_relaxed.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_1/embedding_lookup_relaxed.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_1/floor_relaxed.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_1/fully_connected_float_2_relaxed.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_1/fully_connected_float_4d_simple_relaxed.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_1/fully_connected_float_large_relaxed.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_1/fully_connected_float_large_weights_as_inputs_relaxed.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_1/fully_connected_float_relaxed.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_1/fully_connected_float_weights_as_inputs_relaxed.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_1/hashtable_lookup_float_relaxed.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_1/l2_normalization_2_relaxed.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_1/l2_normalization_large_relaxed.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_1/l2_normalization_relaxed.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_1/l2_pool_float_2_relaxed.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_1/l2_pool_float_large_relaxed.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_1/l2_pool_float_relaxed.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_1/local_response_norm_float_1_relaxed.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_1/local_response_norm_float_2_relaxed.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_1/local_response_norm_float_3_relaxed.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_1/local_response_norm_float_4_relaxed.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_1/logistic_float_1_relaxed.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_1/logistic_float_2_relaxed.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_1/lsh_projection_2_relaxed.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_1/lsh_projection_relaxed.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_1/lsh_projection_weights_as_inputs_relaxed.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_1/lstm2_relaxed.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_1/lstm2_state2_relaxed.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_1/lstm2_state_relaxed.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_1/lstm3_relaxed.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_1/lstm3_state2_relaxed.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_1/lstm3_state3_relaxed.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_1/lstm3_state_relaxed.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_1/lstm_relaxed.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_1/lstm_state2_relaxed.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_1/lstm_state_relaxed.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_1/max_pool_float_1_relaxed.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_1/max_pool_float_2_relaxed.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_1/max_pool_float_3_relaxed.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_1/max_pool_float_4_relaxed.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_1/mean_float_1_relaxed.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_1/mean_float_2_relaxed.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_1/mean_relaxed.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_1/mobilenet_224_gender_basic_fixed_relaxed.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_1/mul_relaxed.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_1/mul_relu_relaxed.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_1/pad_float_1_relaxed.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_1/pad_relaxed.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_1/relu1_float_1_relaxed.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_1/relu1_float_2_relaxed.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_1/relu6_float_1_relaxed.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_1/relu6_float_2_relaxed.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_1/relu_float_1_relaxed.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_1/relu_float_2_relaxed.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_1/reshape_relaxed.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_1/reshape_weights_as_inputs_relaxed.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_1/resize_bilinear_2_relaxed.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_1/resize_bilinear_relaxed.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_1/rnn_relaxed.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_1/rnn_state_relaxed.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_1/softmax_float_1_relaxed.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_1/softmax_float_2_relaxed.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_1/space_to_batch_float_1_relaxed.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_1/space_to_batch_float_2_relaxed.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_1/space_to_batch_float_3_relaxed.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_1/space_to_batch_relaxed.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_1/space_to_depth_float_1_relaxed.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_1/space_to_depth_float_2_relaxed.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_1/space_to_depth_float_3_relaxed.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_1/squeeze_float_1_relaxed.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_1/squeeze_relaxed.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_1/strided_slice_float_10_relaxed.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_1/strided_slice_float_11_relaxed.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_1/strided_slice_float_1_relaxed.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_1/strided_slice_float_2_relaxed.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_1/strided_slice_float_3_relaxed.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_1/strided_slice_float_4_relaxed.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_1/strided_slice_float_5_relaxed.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_1/strided_slice_float_6_relaxed.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_1/strided_slice_float_7_relaxed.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_1/strided_slice_float_8_relaxed.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_1/strided_slice_float_9_relaxed.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_1/strided_slice_relaxed.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_1/sub_broadcast_float_relaxed.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_1/sub_relaxed.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_1/svdf2_relaxed.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_1/svdf_bias_present_relaxed.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_1/svdf_relaxed.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_1/svdf_state_relaxed.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_1/tanh_relaxed.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_1/transpose_float_1_relaxed.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_1/transpose_relaxed.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_2/add_v1_2.mod.py
delete mode 100644 tests/nnapi/specs/skip/V1_2/argmax_1.mod.py
delete mode 100644 tests/nnapi/specs/skip/V1_2/argmax_2.mod.py
delete mode 100644 tests/nnapi/specs/skip/V1_2/argmax_3.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_2/argmin_1.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_2/argmin_2.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_2/argmin_3.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_2/avg_pool_v1_2.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_2/axis_aligned_bbox_transform.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_2/batch_to_space_v1_2.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_2/bbox_graph.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_2/bidirectional_sequence_lstm.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_2/bidirectional_sequence_lstm_aux_input.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_2/bidirectional_sequence_lstm_cifg_peephole.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_2/bidirectional_sequence_lstm_float16_batch_major.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_2/bidirectional_sequence_lstm_float16_batch_major_aux_input.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_2/bidirectional_sequence_lstm_float16_batch_major_merge_outputs.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_2/bidirectional_sequence_lstm_merge_outputs.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_2/bidirectional_sequence_lstm_norm_fw_output.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_2/bidirectional_sequence_rnn.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_2/box_with_nms_limit_gaussian.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_2/box_with_nms_limit_hard.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_2/box_with_nms_limit_linear.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_2/channel_shuffle.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_2/concat_float16_1.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_2/concat_float16_2.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_2/concat_float16_3.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_2/concat_mixed_quant.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_2/concat_zero_sized.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_2/conv2d_dilation.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_2/conv2d_per_channel.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_2/conv2d_v1_2.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_2/depth_to_space_v1_2.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_2/depthwise_conv2d_dilation.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_2/depthwise_conv2d_per_channel.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_2/depthwise_conv2d_v1_2.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_2/dequantize_v1_2.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_2/detection_postprocess.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_2/div_v1_2.mod.py
delete mode 100644 tests/nnapi/specs/skip/V1_2/equal.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_2/expand_dims.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_2/floor_float16.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_2/fully_connected_v1_2.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_2/generate_proposals.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_2/greater.mod.py
delete mode 100644 tests/nnapi/specs/skip/V1_2/greater_equal.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_2/grouped_conv2d.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_2/heatmap_max_keypoint.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_2/instance_normalization.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_2/l2_normalization_axis.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_2/l2_normalization_v1_2.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_2/l2_pool_v1_2.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_2/layer_norm_lstm.mod.py
delete mode 100644 tests/nnapi/specs/skip/V1_2/less.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_2/less_equal.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_2/local_response_normalization_v1_2.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_2/log.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_2/log_softmax.mod.py
delete mode 100644 tests/nnapi/specs/skip/V1_2/logical_and.mod.py
delete mode 100644 tests/nnapi/specs/skip/V1_2/logical_not.mod.py
delete mode 100644 tests/nnapi/specs/skip/V1_2/logical_or.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_2/logistic_v1_2.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_2/lsh_projection_3_relaxed.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_2/lsh_projection_4_relaxed.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_2/lsh_projection_deprecated.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_2/lsh_projection_float16.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_2/lstm2_float16.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_2/lstm2_state2_float16.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_2/lstm2_state_float16.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_2/lstm3_float16.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_2/lstm3_state2_float16.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_2/lstm3_state3_float16.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_2/lstm3_state_float16.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_2/lstm_float16.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_2/lstm_state2_float16.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_2/lstm_state_float16.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_2/max_pool_v1_2.mod.py
delete mode 100644 tests/nnapi/specs/skip/V1_2/maximum.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_2/mean_float16.mod.py
delete mode 100644 tests/nnapi/specs/skip/V1_2/minimum.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_2/mul_v1_2.mod.py
delete mode 100644 tests/nnapi/specs/skip/V1_2/not_equal.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_2/pad_all_dims.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_2/pad_float16.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_2/pad_low_rank.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_2/pad_low_rank_quant8.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_2/pad_quant8.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_2/pad_quant8_nonzero.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_2/pad_v2_1_float.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_2/pad_v2_1_quant8.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_2/pad_v2_all_dims.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_2/pad_v2_all_dims_quant8.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_2/pad_v2_low_rank.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_2/pad_v2_low_rank_quant8.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_2/pow.mod.py
delete mode 100644 tests/nnapi/specs/skip/V1_2/prelu.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_2/quantize.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_2/quantized_lstm.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_2/random_multinomial.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_2/random_multinomial_float16.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_2/reduce_all.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_2/reduce_any.mod.py
delete mode 100644 tests/nnapi/specs/skip/V1_2/reduce_min.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_2/reduce_prod.mod.py
delete mode 100644 tests/nnapi/specs/skip/V1_2/reduce_sum.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_2/relu1_v1_2.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_2/relu6_v1_2.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_2/relu_v1_2.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_2/reshape_float16.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_2/resize_bilinear_v1_2.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_2/resize_nearest_neighbor.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_2/rnn_float16.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_2/roi_align.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_2/roi_pooling.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_2/select_v1_2.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_2/sin.mod.py
delete mode 100644 tests/nnapi/specs/skip/V1_2/slice.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_2/softmax_v1_2.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_2/space_to_batch_quant8_nonzero.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_2/space_to_batch_v1_2.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_2/space_to_depth_v1_2.mod.py
delete mode 100644 tests/nnapi/specs/skip/V1_2/split_float_1.mod.py
delete mode 100644 tests/nnapi/specs/skip/V1_2/split_float_2.mod.py
delete mode 100644 tests/nnapi/specs/skip/V1_2/split_float_3.mod.py
delete mode 100644 tests/nnapi/specs/skip/V1_2/split_float_4.mod.py
delete mode 100644 tests/nnapi/specs/skip/V1_2/split_float_5.mod.py
delete mode 100644 tests/nnapi/specs/skip/V1_2/split_int32_1.mod.py
delete mode 100644 tests/nnapi/specs/skip/V1_2/split_int32_2.mod.py
delete mode 100644 tests/nnapi/specs/skip/V1_2/split_int32_3.mod.py
delete mode 100644 tests/nnapi/specs/skip/V1_2/split_int32_4.mod.py
delete mode 100644 tests/nnapi/specs/skip/V1_2/split_quant8_1.mod.py
delete mode 100644 tests/nnapi/specs/skip/V1_2/split_quant8_2.mod.py
delete mode 100644 tests/nnapi/specs/skip/V1_2/split_quant8_3.mod.py
delete mode 100644 tests/nnapi/specs/skip/V1_2/split_quant8_4.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_2/squeeze_float16.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_2/strided_slice_float16.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_2/sub_quantized_different_scales.mod.py
delete mode 100644 tests/nnapi/specs/skip/V1_2/sub_v1_2.mod.py
delete mode 100644 tests/nnapi/specs/skip/V1_2/sub_v1_2_broadcast.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_2/svdf_bias_present_float16.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_2/svdf_float16.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_2/svdf_state_float16.mod.py
delete mode 100644 tests/nnapi/specs/skip/V1_2/tanh_v1_2.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_2/tile_1.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_2/tile_2.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_2/tile_3.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_2/transpose_conv2d.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_2/transpose_conv2d_large.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_2/transpose_float16.mod.py
delete mode 100644 tests/nnapi/specs/skip/V1_2/transpose_v1_2.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_2/unidirectional_sequence_lstm_1step.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_2/unidirectional_sequence_lstm_batch_major_norm_peephole_projection.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_2/unidirectional_sequence_lstm_batch_major_peephole_projection_bias.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_2/unidirectional_sequence_lstm_cifg_peephole.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_2/unidirectional_sequence_lstm_f16_batch_major.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_2/unidirectional_sequence_lstm_f16_norm_peephole_projection.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_2/unidirectional_sequence_lstm_layer_norm_cifg_peephole.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_2/unidirectional_sequence_lstm_norm_peephole_projection.mod.py
mode change 100644 => 100755 tests/nnapi/specs/skip/V1_2/unidirectional_sequence_rnn.mod.py
create mode 100644 tests/nnfw_api/CMakeLists.txt
create mode 100644 tests/nnfw_api/src/FourOneOpModelSetInput.cc
create mode 100644 tests/nnfw_api/src/create_session.cc
create mode 100644 tests/nnfw_api/src/fixtures.h
create mode 100644 tests/nnfw_api/src/load_model.cc
create mode 100644 tests/nnfw_api/src/main.cc
create mode 100644 tests/nnfw_api/src/model_path.cc
create mode 100644 tests/nnfw_api/src/model_path.h
create mode 100644 tests/nnfw_api/src/prepare.cc
create mode 100644 tests/scripts/CMakeLists.txt
create mode 100755 tests/scripts/framework/run_test.sh
create mode 100755 tests/scripts/framework/tests/MODELS/inception_module/config.sh
create mode 100755 tests/scripts/framework/tests/MODELS/inception_nonslim/config.sh
create mode 100755 tests/scripts/framework/tests/MODELS/inception_slim/config.sh
create mode 100755 tests/scripts/framework/tests/MODELS/mobilenet/config.sh
create mode 100755 tests/scripts/framework/tests/abs/config.sh
create mode 100755 tests/scripts/framework/tests/add/1D/config.sh
create mode 100755 tests/scripts/framework/tests/add/4D/config.sh
create mode 100755 tests/scripts/framework/tests/average_pool_2d/aligned/config.sh
create mode 100755 tests/scripts/framework/tests/average_pool_2d/avgpool1/config.sh
create mode 100755 tests/scripts/framework/tests/average_pool_2d/avgpool2/config.sh
create mode 100755 tests/scripts/framework/tests/batch_to_space_nd2/config.sh
create mode 100755 tests/scripts/framework/tests/cast/config.sh
create mode 100755 tests/scripts/framework/tests/concat/2D/config.sh
create mode 100755 tests/scripts/framework/tests/concat/concat1/config.sh
create mode 100755 tests/scripts/framework/tests/concat/concat2/config.sh
create mode 100755 tests/scripts/framework/tests/conv_2d/convolution1/config.sh
create mode 100755 tests/scripts/framework/tests/conv_2d/convolution2/config.sh
create mode 100755 tests/scripts/framework/tests/custom/squared_difference/config.sh
create mode 100755 tests/scripts/framework/tests/depthwise_conv_2d/depthconv1/config.sh
create mode 100755 tests/scripts/framework/tests/depthwise_conv_2d/depthconv2/config.sh
create mode 100755 tests/scripts/framework/tests/depthwise_conv_2d_no_fuse/config.sh
create mode 100755 tests/scripts/framework/tests/div/broadcast/config.sh
create mode 100755 tests/scripts/framework/tests/embedding_lookup/config.sh
create mode 100755 tests/scripts/framework/tests/equal/config.sh
create mode 100755 tests/scripts/framework/tests/exp/config.sh
create mode 100755 tests/scripts/framework/tests/floor/floor1/config.sh
create mode 100755 tests/scripts/framework/tests/floor/floor2/config.sh
create mode 100755 tests/scripts/framework/tests/fullyconnected/fc1/config.sh
create mode 100755 tests/scripts/framework/tests/fullyconnected/hybrid/config.sh
create mode 100755 tests/scripts/framework/tests/fullyconnected/matmul2x2/config.sh
create mode 100755 tests/scripts/framework/tests/fullyconnected/weights_as_input/config.sh
create mode 100755 tests/scripts/framework/tests/gather/config.sh
create mode 100755 tests/scripts/framework/tests/greater/config.sh
create mode 100755 tests/scripts/framework/tests/greater_equal/config.sh
create mode 100755 tests/scripts/framework/tests/hashtable_lookup/config.sh
create mode 100755 tests/scripts/framework/tests/l2_normalization/config.sh
create mode 100755 tests/scripts/framework/tests/l2_pool_2d/config.sh
create mode 100755 tests/scripts/framework/tests/less/config.sh
create mode 100755 tests/scripts/framework/tests/less_equal/config.sh
create mode 100755 tests/scripts/framework/tests/logistic/config.sh
create mode 100755 tests/scripts/framework/tests/max/config.sh
create mode 100755 tests/scripts/framework/tests/max_pool_2d/maxpool1/config.sh
create mode 100755 tests/scripts/framework/tests/max_pool_2d/maxpool2/config.sh
create mode 100755 tests/scripts/framework/tests/mean/config.sh
create mode 100755 tests/scripts/framework/tests/min/config.sh
create mode 100755 tests/scripts/framework/tests/mul/broadcast/config.sh
create mode 100755 tests/scripts/framework/tests/neg/config.sh
create mode 100755 tests/scripts/framework/tests/not_equal/config.sh
create mode 100755 tests/scripts/framework/tests/one_hot/config.sh
create mode 100755 tests/scripts/framework/tests/pack/config.sh
create mode 100755 tests/scripts/framework/tests/pad/4D_2D/config.sh
create mode 100755 tests/scripts/framework/tests/pad/pad1/config.sh
create mode 100755 tests/scripts/framework/tests/pad/pad2/config.sh
create mode 100755 tests/scripts/framework/tests/reduce_max/config.sh
create mode 100755 tests/scripts/framework/tests/reduce_mean/test1/config.sh
create mode 100755 tests/scripts/framework/tests/reduce_mean/test2/config.sh
create mode 100755 tests/scripts/framework/tests/reduce_sum/config.sh
create mode 100755 tests/scripts/framework/tests/relu/config.sh
create mode 100755 tests/scripts/framework/tests/relu6/config.sh
create mode 100755 tests/scripts/framework/tests/reshape/3D/config.sh
create mode 100755 tests/scripts/framework/tests/reshape/reshape1/config.sh
create mode 100755 tests/scripts/framework/tests/reshape/reshape2/config.sh
create mode 100755 tests/scripts/framework/tests/resize_bilinear/config.sh
create mode 100755 tests/scripts/framework/tests/rnn/config.sh
create mode 100755 tests/scripts/framework/tests/rsqrt/config.sh
create mode 100644 tests/scripts/framework/tests/shape/config.sh
create mode 100755 tests/scripts/framework/tests/sin/config.sh
create mode 100755 tests/scripts/framework/tests/slice/config.sh
create mode 100755 tests/scripts/framework/tests/softmax/config.sh
create mode 100755 tests/scripts/framework/tests/space_to_batch_nd2/config.sh
create mode 100755 tests/scripts/framework/tests/space_to_depth/config.sh
create mode 100755 tests/scripts/framework/tests/sqrt/config.sh
create mode 100755 tests/scripts/framework/tests/squeeze/config.sh
create mode 100755 tests/scripts/framework/tests/strided_slice/config.sh
create mode 100755 tests/scripts/framework/tests/sub/broadcast/config.sh
create mode 100755 tests/scripts/framework/tests/tanh/config.sh
create mode 100755 tests/scripts/framework/tests/topk_v2/config.sh
create mode 100755 tests/scripts/framework/tests/transpose/config.sh
create mode 100755 tests/scripts/framework/tests/transpose_conv/same/config.sh
create mode 100755 tests/scripts/framework/tests/transpose_conv/valid/config.sh
create mode 100644 tests/scripts/list/frameworktest_list.aarch64.acl_cl.txt
create mode 100644 tests/scripts/list/frameworktest_list.aarch64.acl_neon.txt
create mode 100644 tests/scripts/list/frameworktest_list.aarch64.cpu.txt
create mode 100644 tests/scripts/list/frameworktest_list.armv7l.acl_cl.txt
create mode 100644 tests/scripts/list/frameworktest_list.armv7l.acl_neon.txt
create mode 100644 tests/scripts/list/frameworktest_list.armv7l.cpu.txt
create mode 100644 tests/scripts/list/frameworktest_list.noarch.interp.txt
create mode 100644 tests/scripts/list/frameworktest_list.x86_64.cpu.txt
delete mode 100644 tests/scripts/list/neurun_frameworktest_list.armv7l.acl_cl.txt
delete mode 100644 tests/scripts/list/neurun_frameworktest_list.armv7l.acl_neon.txt
delete mode 100644 tests/scripts/list/neurun_frameworktest_list.armv7l.cpu.txt
delete mode 100644 tests/scripts/list/neurun_frameworktest_list.armv7l.ncnn.txt
delete mode 100644 tests/scripts/list/neurun_frameworktest_list.noarch.interp.txt
delete mode 100644 tests/scripts/list/neurun_frameworktest_list.x86-64.cpu.txt
create mode 100644 tests/scripts/list/tflite_loader_list.aarch64.txt
create mode 100755 tests/scripts/oneapi_test/install_oneapi_test_nnpackages.sh
create mode 100644 tests/scripts/oneapi_test/models/add/config.sh
create mode 100755 tools/cross/install_android_sdk.sh
create mode 100755 tools/kernel_report/kernel_report.py
create mode 100644 tools/nnpackage_tool/tf2tfliteV2/README.md
create mode 100755 tools/nnpackage_tool/tf2tfliteV2/tf2tfliteV2.py
mode change 100644 => 100755 tools/pbfile_tool/convert_ckpt_to_pb.py
mode change 100644 => 100755 tools/pbfile_tool/convert_pb_to_pbtxt.py
mode change 100644 => 100755 tools/pbfile_tool/extract_subgraph.py
mode change 100644 => 100755 tools/tensorflow_model_freezer/__init__.py
mode change 100644 => 100755 tools/tensorflow_model_freezer/base_freezer.py
mode change 100644 => 100755 tools/tensorflow_model_freezer/model_freezer_util.py
mode change 100644 => 100755 tools/tensorflow_model_freezer/sample/Operation_gen.py
mode change 100644 => 100755 tools/tensorflow_model_freezer/sample/UNSTACK_gen.py
mode change 100644 => 100755 tools/tensorflow_model_freezer/sample/__init__.py
mode change 100644 => 100755 tools/tflitefile_tool/config_saver.py
create mode 100755 tools/tflitefile_tool/graph_stats.py
delete mode 100644 tools/tflitefile_tool/model_printer.py
mode change 100644 => 100755 tools/tflitefile_tool/model_saver.py
mode change 100644 => 100755 tools/tflitefile_tool/operator_printer.py
mode change 100644 => 100755 tools/tflitefile_tool/option_printer.py
delete mode 100755 tools/tflitefile_tool/perf_predictor.py
mode change 100644 => 100755 tools/tflitefile_tool/select_operator.py
create mode 100755 tools/tflitefile_tool/subgraph_printer.py
mode change 100644 => 100755 tools/tflitefile_tool/tensor_printer.py
mode change 100644 => 100755 tools/tflitefile_tool/tflite/AbsOptions.py
mode change 100644 => 100755 tools/tflitefile_tool/tflite/ActivationFunctionType.py
create mode 100755 tools/tflitefile_tool/tflite/AddNOptions.py
mode change 100644 => 100755 tools/tflitefile_tool/tflite/AddOptions.py
mode change 100644 => 100755 tools/tflitefile_tool/tflite/ArgMaxOptions.py
mode change 100644 => 100755 tools/tflitefile_tool/tflite/ArgMinOptions.py
mode change 100644 => 100755 tools/tflitefile_tool/tflite/BatchToSpaceNDOptions.py
mode change 100644 => 100755 tools/tflitefile_tool/tflite/BidirectionalSequenceLSTMOptions.py
mode change 100644 => 100755 tools/tflitefile_tool/tflite/BidirectionalSequenceRNNOptions.py
mode change 100644 => 100755 tools/tflitefile_tool/tflite/Buffer.py
mode change 100644 => 100755 tools/tflitefile_tool/tflite/BuiltinOperator.py
mode change 100644 => 100755 tools/tflitefile_tool/tflite/BuiltinOptions.py
mode change 100644 => 100755 tools/tflitefile_tool/tflite/CallOptions.py
mode change 100644 => 100755 tools/tflitefile_tool/tflite/CastOptions.py
mode change 100644 => 100755 tools/tflitefile_tool/tflite/CombinerType.py
mode change 100644 => 100755 tools/tflitefile_tool/tflite/ConcatEmbeddingsOptions.py
mode change 100644 => 100755 tools/tflitefile_tool/tflite/ConcatenationOptions.py
mode change 100644 => 100755 tools/tflitefile_tool/tflite/Conv2DOptions.py
create mode 100755 tools/tflitefile_tool/tflite/CosOptions.py
mode change 100644 => 100755 tools/tflitefile_tool/tflite/CustomOptionsFormat.py
mode change 100644 => 100755 tools/tflitefile_tool/tflite/CustomQuantization.py
create mode 100755 tools/tflitefile_tool/tflite/DepthToSpaceOptions.py
mode change 100644 => 100755 tools/tflitefile_tool/tflite/DepthwiseConv2DOptions.py
mode change 100644 => 100755 tools/tflitefile_tool/tflite/DequantizeOptions.py
mode change 100644 => 100755 tools/tflitefile_tool/tflite/DivOptions.py
mode change 100644 => 100755 tools/tflitefile_tool/tflite/EmbeddingLookupSparseOptions.py
mode change 100644 => 100755 tools/tflitefile_tool/tflite/EqualOptions.py
mode change 100644 => 100755 tools/tflitefile_tool/tflite/ExpOptions.py
mode change 100644 => 100755 tools/tflitefile_tool/tflite/ExpandDimsOptions.py
mode change 100644 => 100755 tools/tflitefile_tool/tflite/FakeQuantOptions.py
mode change 100644 => 100755 tools/tflitefile_tool/tflite/FillOptions.py
mode change 100644 => 100755 tools/tflitefile_tool/tflite/FloorDivOptions.py
mode change 100644 => 100755 tools/tflitefile_tool/tflite/FloorModOptions.py
mode change 100644 => 100755 tools/tflitefile_tool/tflite/FullyConnectedOptions.py
mode change 100644 => 100755 tools/tflitefile_tool/tflite/FullyConnectedOptionsWeightsFormat.py
create mode 100755 tools/tflitefile_tool/tflite/GatherNdOptions.py
mode change 100644 => 100755 tools/tflitefile_tool/tflite/GatherOptions.py
mode change 100644 => 100755 tools/tflitefile_tool/tflite/GreaterEqualOptions.py
mode change 100644 => 100755 tools/tflitefile_tool/tflite/GreaterOptions.py
create mode 100755 tools/tflitefile_tool/tflite/HardSwishOptions.py
create mode 100755 tools/tflitefile_tool/tflite/IfOptions.py
mode change 100644 => 100755 tools/tflitefile_tool/tflite/L2NormOptions.py
mode change 100644 => 100755 tools/tflitefile_tool/tflite/LSHProjectionOptions.py
mode change 100644 => 100755 tools/tflitefile_tool/tflite/LSHProjectionType.py
mode change 100644 => 100755 tools/tflitefile_tool/tflite/LSTMKernelType.py
mode change 100644 => 100755 tools/tflitefile_tool/tflite/LSTMOptions.py
mode change 100644 => 100755 tools/tflitefile_tool/tflite/LeakyReluOptions.py
mode change 100644 => 100755 tools/tflitefile_tool/tflite/LessEqualOptions.py
mode change 100644 => 100755 tools/tflitefile_tool/tflite/LessOptions.py
mode change 100644 => 100755 tools/tflitefile_tool/tflite/LocalResponseNormalizationOptions.py
mode change 100644 => 100755 tools/tflitefile_tool/tflite/LogSoftmaxOptions.py
mode change 100644 => 100755 tools/tflitefile_tool/tflite/LogicalAndOptions.py
mode change 100644 => 100755 tools/tflitefile_tool/tflite/LogicalNotOptions.py
mode change 100644 => 100755 tools/tflitefile_tool/tflite/LogicalOrOptions.py
create mode 100755 tools/tflitefile_tool/tflite/MatrixDiagOptions.py
create mode 100755 tools/tflitefile_tool/tflite/MatrixSetDiagOptions.py
mode change 100644 => 100755 tools/tflitefile_tool/tflite/MaximumMinimumOptions.py
delete mode 100644 tools/tflitefile_tool/tflite/MeanOptions.py
create mode 100755 tools/tflitefile_tool/tflite/Metadata.py
mode change 100644 => 100755 tools/tflitefile_tool/tflite/MirrorPadMode.py
mode change 100644 => 100755 tools/tflitefile_tool/tflite/MirrorPadOptions.py
mode change 100644 => 100755 tools/tflitefile_tool/tflite/Model.py
mode change 100644 => 100755 tools/tflitefile_tool/tflite/MulOptions.py
mode change 100644 => 100755 tools/tflitefile_tool/tflite/NegOptions.py
create mode 100755 tools/tflitefile_tool/tflite/NonMaxSuppressionV4Options.py
create mode 100755 tools/tflitefile_tool/tflite/NonMaxSuppressionV5Options.py
mode change 100644 => 100755 tools/tflitefile_tool/tflite/NotEqualOptions.py
mode change 100644 => 100755 tools/tflitefile_tool/tflite/OneHotOptions.py
mode change 100644 => 100755 tools/tflitefile_tool/tflite/Operator.py
mode change 100644 => 100755 tools/tflitefile_tool/tflite/OperatorCode.py
mode change 100644 => 100755 tools/tflitefile_tool/tflite/PackOptions.py
mode change 100644 => 100755 tools/tflitefile_tool/tflite/PadOptions.py
mode change 100644 => 100755 tools/tflitefile_tool/tflite/PadV2Options.py
mode change 100644 => 100755 tools/tflitefile_tool/tflite/Padding.py
mode change 100644 => 100755 tools/tflitefile_tool/tflite/Pool2DOptions.py
mode change 100644 => 100755 tools/tflitefile_tool/tflite/PowOptions.py
mode change 100644 => 100755 tools/tflitefile_tool/tflite/QuantizationDetails.py
mode change 100644 => 100755 tools/tflitefile_tool/tflite/QuantizationParameters.py
create mode 100755 tools/tflitefile_tool/tflite/QuantizeOptions.py
mode change 100644 => 100755 tools/tflitefile_tool/tflite/RNNOptions.py
mode change 100644 => 100755 tools/tflitefile_tool/tflite/RangeOptions.py
create mode 100755 tools/tflitefile_tool/tflite/RankOptions.py
mode change 100644 => 100755 tools/tflitefile_tool/tflite/ReducerOptions.py
mode change 100644 => 100755 tools/tflitefile_tool/tflite/ReshapeOptions.py
mode change 100644 => 100755 tools/tflitefile_tool/tflite/ResizeBilinearOptions.py
mode change 100644 => 100755 tools/tflitefile_tool/tflite/ResizeNearestNeighborOptions.py
create mode 100755 tools/tflitefile_tool/tflite/ReverseSequenceOptions.py
create mode 100755 tools/tflitefile_tool/tflite/ReverseV2Options.py
mode change 100644 => 100755 tools/tflitefile_tool/tflite/SVDFOptions.py
create mode 100755 tools/tflitefile_tool/tflite/ScatterNdOptions.py
mode change 100644 => 100755 tools/tflitefile_tool/tflite/SelectOptions.py
mode change 100644 => 100755 tools/tflitefile_tool/tflite/SequenceRNNOptions.py
mode change 100644 => 100755 tools/tflitefile_tool/tflite/ShapeOptions.py
mode change 100644 => 100755 tools/tflitefile_tool/tflite/SkipGramOptions.py
mode change 100644 => 100755 tools/tflitefile_tool/tflite/SliceOptions.py
mode change 100644 => 100755 tools/tflitefile_tool/tflite/SoftmaxOptions.py
mode change 100644 => 100755 tools/tflitefile_tool/tflite/SpaceToBatchNDOptions.py
mode change 100644 => 100755 tools/tflitefile_tool/tflite/SpaceToDepthOptions.py
mode change 100644 => 100755 tools/tflitefile_tool/tflite/SparseToDenseOptions.py
mode change 100644 => 100755 tools/tflitefile_tool/tflite/SplitOptions.py
mode change 100644 => 100755 tools/tflitefile_tool/tflite/SplitVOptions.py
mode change 100644 => 100755 tools/tflitefile_tool/tflite/SquareOptions.py
mode change 100644 => 100755 tools/tflitefile_tool/tflite/SquaredDifferenceOptions.py
mode change 100644 => 100755 tools/tflitefile_tool/tflite/SqueezeOptions.py
mode change 100644 => 100755 tools/tflitefile_tool/tflite/StridedSliceOptions.py
mode change 100644 => 100755 tools/tflitefile_tool/tflite/SubGraph.py
mode change 100644 => 100755 tools/tflitefile_tool/tflite/SubOptions.py
mode change 100644 => 100755 tools/tflitefile_tool/tflite/Tensor.py
mode change 100644 => 100755 tools/tflitefile_tool/tflite/TensorType.py
mode change 100644 => 100755 tools/tflitefile_tool/tflite/TileOptions.py
mode change 100644 => 100755 tools/tflitefile_tool/tflite/TopKV2Options.py
mode change 100644 => 100755 tools/tflitefile_tool/tflite/TransposeConvOptions.py
mode change 100644 => 100755 tools/tflitefile_tool/tflite/TransposeOptions.py
mode change 100644 => 100755 tools/tflitefile_tool/tflite/UnidirectionalSequenceLSTMOptions.py
create mode 100755 tools/tflitefile_tool/tflite/UniqueOptions.py
mode change 100644 => 100755 tools/tflitefile_tool/tflite/UnpackOptions.py
create mode 100755 tools/tflitefile_tool/tflite/WhereOptions.py
create mode 100755 tools/tflitefile_tool/tflite/WhileOptions.py
mode change 100644 => 100755 tools/tflitefile_tool/tflite/ZerosLikeOptions.py
mode change 100644 => 100755 tools/tflitefile_tool/tflite/__init__.py
mode change 100644 => 100755 tools/tflkit/summarize_pb.py
diff --git a/.ctags b/.ctags
index 6f33a26d3..13c27abbe 100644
--- a/.ctags
+++ b/.ctags
@@ -2,6 +2,6 @@
--exclude=Product
--exclude=build
--exclude=tags
---exclude=tests/framework/cache
+--exclude=tests/scripts/framework/cache
--exclude=tools/cross/rootfs
--exclude=doxygen
diff --git a/.gitignore b/.gitignore
index 32c33603f..d0931912a 100644
--- a/.gitignore
+++ b/.gitignore
@@ -8,7 +8,7 @@
*.pyc
# Test cache for model download
-/tests/framework/cache
+/tests/scripts/framework/cache
# Test report
/report
diff --git a/LICENSE b/LICENSE
index 2411d90dc..c1507bf42 100644
--- a/LICENSE
+++ b/LICENSE
@@ -3,6 +3,8 @@ 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
...............................................................................
@@ -211,9 +213,9 @@ limitations under the License.
...............................................................................
-Copyright (c) 2016-2018 ARM Limited.
+The MIT License
-SPDX-License-Identifier: MIT
+Copyright (c)
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to
@@ -234,33 +236,19 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
.............................................................................
-COPYRIGHT
-All contributions by the University of California:
-Copyright (c) 2014-2017 The Regents of the University of California (Regents)
-All rights reserved.
+The BSD 2-Clause License
-All other contributions:
-Copyright (c) 2014-2017, the respective contributors
-All rights reserved.
-
-Caffe uses a shared copyright model: each contributor holds copyright over
-their contributions to Caffe. The project versioning records all such
-contribution and copyright details. If a contributor wants to further mark
-their specific copyright on a particular contribution, they should indicate
-their copyright solely in the commit message of the change when it is
-committed.
-
-LICENSE
+Copyright
Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
+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.
+ 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.
+ 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
@@ -273,8 +261,396 @@ 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.
-CONTRIBUTION AGREEMENT
+.............................................................................
+
+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
-By contributing to the BVLC/caffe repository through pull-request, comment,
-or otherwise, the contributor releases their content to the
-license and copyright terms herein.
\ No newline at end of file
+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.
diff --git a/Makefile.template b/Makefile.template
index ef3a44c15..588a30052 100644
--- a/Makefile.template
+++ b/Makefile.template
@@ -155,7 +155,7 @@ build_test_suite: install_internal install_internal_acl
@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 tests/scripts tests/framework infra Product/out --dereference
+ @tar -zcf test-suite.tar.gz tests/scripts infra Product/out --dereference
@mv test-suite.tar.gz $(INSTALL_PATH)/.
build_coverage_suite: install_internal install_internal_acl
@@ -163,7 +163,7 @@ build_coverage_suite: install_internal install_internal_acl
@rm -rf $(INSTALL_PATH)/coverage-suite.tar.gz
@find Product -name "*.gcno" > include_lists.txt
@pwd | grep -o '/' | wc -l > tests/scripts/build_path_depth.txt
- @tar -zcf coverage-suite.tar.gz tests/scripts tests/framework infra Product/out --dereference -T include_lists.txt
+ @tar -zcf coverage-suite.tar.gz tests/scripts infra Product/out --dereference -T include_lists.txt
@rm -rf include_lists.txt tests/scripts/build_path_depth.txt
@mv coverage-suite.tar.gz $(INSTALL_PATH)/.
diff --git a/README.md b/README.md
index 8772bb120..dfa91afa8 100644
--- a/README.md
+++ b/README.md
@@ -34,18 +34,18 @@ the target platform, such as the Linux kernel based OS including Tizen.
You can suggest development of nnfw's features that are not yet available.
-The functions requested so far can be checked in the [popular feature request](https://github.sec.samsung.net/STAR/nnfw/issues?utf8=%E2%9C%93&q=is%3Aopen+is%3Aissue+label%3AFEATURE_REQUEST+sort%3Areactions-%2B1-desc) list.
+The functions requested so far can be checked in the [popular feature request](https://github.com/Samsung/ONE/issues?utf8=%E2%9C%93&q=is%3Aopen+is%3Aissue+label%3AFEATURE_REQUEST+sort%3Areactions-%2B1-desc) 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.sec.samsung.net/STAR/nnfw/issues/new).
+- 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 Implement Operator Kernel](docs/nnfw/HowToImplementOperatorKernel.md), for help.
+[How to Implement Operator Kernel](docs/nnfw/howto/HowToAddNewOperation.md), for help.
We are looking forward to your participation.
Thank you in advance!
@@ -71,25 +71,4 @@ NPU.
## How to Contact
-- Please post questions, issues, or suggestions into [Issues](https://github.sec.samsung.net/STAR/nnfw/issues).
-
-----
-
-## Notice
-
-### 22/07/2019
-
-Congratulations! On July 22nd, 2019, _nnfw_ repo and
-[_nncc_](https://github.sec.samsung.net/STAR/nncc) repo are finally integrated into single one. Now
-all activities related to the development of _nnas(Neural Network Acceleration Solution)_ will
-proceed in this integrated _nnfw_ repo. The old _nncc_ repo will only be maintained for follow up on
-remaining issues and for preserving development history. The following notice will remain in place
-until the update of documents in integrated repo is complete.
-
-### 02/05/2019
-
-~~We are currently working on [_nncc_](https://github.sec.samsung.net/STAR/nncc) as a sibling project.
-In our plan, the two projects will soon be integrated into one, and focusing on their roles as
-front-end(_nncc_) and back-end(_nnfw_), respectively. It will accompany the physical combination of
-the github repo.~~ You can find the latest roadmap of the integrated project
-[here](https://github.sec.samsung.net/orgs/STAR/projects/1).
+- Please post questions, issues, or suggestions into [Issues](https://github.com/Samsung/ONE/issues).
diff --git a/compiler/CMakeLists.txt b/compiler/CMakeLists.txt
new file mode 100644
index 000000000..7cf12f164
--- /dev/null
+++ b/compiler/CMakeLists.txt
@@ -0,0 +1,78 @@
+# TODO Validate the argument of "requires"
+function(get_project_build_order VAR)
+ # This file will describe the dependencies among projects
+ set(DEPS_FILE "${CMAKE_CURRENT_BINARY_DIR}/compiler.deps")
+
+ # Remove .deps file
+ file(REMOVE "${DEPS_FILE}")
+
+ # Let's create .deps file
+ list_subdirectories(PROJECT_DIRS)
+
+ foreach(PROJECT_DIR IN ITEMS ${PROJECT_DIRS})
+ set(SUCC "${PROJECT_DIR}")
+ set(REQUIRES_FILE "${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_DIR}/requires.cmake")
+
+ macro(require PRED)
+ file(APPEND "${DEPS_FILE}" "${PRED} ${SUCC} ")
+ endmacro(require)
+
+ file(APPEND "${DEPS_FILE}" "${SUCC} ${SUCC} ")
+ if(EXISTS "${REQUIRES_FILE}")
+ include(${REQUIRES_FILE})
+ endif(EXISTS "${REQUIRES_FILE}")
+ endforeach(PROJECT_DIR)
+
+ # NOTE "tsort" is a part of the POSIX.1 standard.
+ #
+ # Reference: http://pubs.opengroup.org/onlinepubs/9699919799/utilities/tsort.html
+ execute_process(COMMAND tsort "${DEPS_FILE}"
+ OUTPUT_VARIABLE ORDER
+ OUTPUT_STRIP_TRAILING_WHITESPACE)
+
+ # Remove newline characters
+ # TODO Check which one (UNIX_COMMAND or WINDOWS_COMMAND) is correct
+ separate_arguments(ORDER UNIX_COMMAND ${ORDER})
+
+ set(${VAR} "${ORDER}" PARENT_SCOPE)
+endfunction(get_project_build_order)
+
+function(add_compiler_directory DIR)
+ string(TOUPPER ${DIR} PREFIX)
+
+ option(BUILD_COMPILER_${PREFIX} "Build compiler/${dir}" ON)
+ set(BUILD_WHITELIST "" CACHE STRING "Set modules to be built")
+
+ if(NOT BUILD_WHITELIST STREQUAL "")
+ set(ENABLE OFF)
+ set(CURRENT_DIR ${DIR})
+ foreach(ACCEPTED_DIR IN ITEMS ${BUILD_WHITELIST})
+ if(ACCEPTED_DIR STREQUAL CURRENT_DIR)
+ set(ENABLE ON)
+ endif()
+ endforeach(ACCEPTED_DIR)
+ else()
+ set(ENABLE ${BUILD_COMPILER_${PREFIX}})
+ endif()
+
+ # This line prevents some errors in this CMakeLists.txt
+ if(NOT DEFINED ENABLE)
+ message(FATAL_ERROR "Undefined ENABLE! Please check CMakeLists.txt")
+ endif()
+
+ if(ENABLE)
+ message(STATUS "Configure ${PREFIX}")
+ add_subdirectory(${DIR})
+ message(STATUS "Configure ${PREFIX} - Done")
+ endif(ENABLE)
+endfunction(add_compiler_directory)
+
+function(add_compiler_directories)
+ get_project_build_order(PROJECT_DIRS)
+
+ foreach(PROJECT_DIR IN ITEMS ${PROJECT_DIRS})
+ add_compiler_directory(${PROJECT_DIR})
+ endforeach(PROJECT_DIR)
+endfunction(add_compiler_directories)
+
+add_compiler_directories()
diff --git a/compiler/adtidas/CMakeLists.txt b/compiler/adtidas/CMakeLists.txt
new file mode 100644
index 000000000..0d84740b7
--- /dev/null
+++ b/compiler/adtidas/CMakeLists.txt
@@ -0,0 +1,2 @@
+add_library(adtidas INTERFACE)
+target_include_directories(adtidas INTERFACE include)
diff --git a/compiler/adtidas/include/adtidas/SmallVector.h b/compiler/adtidas/include/adtidas/SmallVector.h
new file mode 100644
index 000000000..1ad630c63
--- /dev/null
+++ b/compiler/adtidas/include/adtidas/SmallVector.h
@@ -0,0 +1,156 @@
+/*
+ * Copyright (c) 2018 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 _ADTIDAS_SMALL_VECTOR_H_
+#define _ADTIDAS_SMALL_VECTOR_H_
+
+#include
+#include
+#include
+
+namespace adt
+{
+
+/**
+ * @brief vector with cheap memory allocation
+ * @tparam T type of elements
+ * @tparam Capacity maximum number of elements
+ * @note much like std::array, but tracks number of used elements. Stored in stack
+ */
+template class small_vector
+{
+public:
+ using value_type = T;
+ using reference = T &;
+ using iterator = T *;
+ using const_iterator = const T *;
+ using reverse_iterator = std::reverse_iterator;
+ using const_reverse_iterator = std::reverse_iterator;
+ using size_type = size_t;
+
+ template small_vector(It begin, It end) : _size(std::distance(begin, end))
+ {
+ assert(_size <= Capacity);
+ std::copy(begin, end, this->begin());
+ }
+
+ explicit small_vector(size_t size, value_type initializer = value_type()) : _size(size)
+ {
+ assert(_size <= Capacity);
+ std::fill(begin(), end(), initializer);
+ }
+
+ explicit small_vector() : _size(0) {}
+
+ small_vector(std::initializer_list l) : _size(l.size())
+ {
+ assert(_size <= Capacity);
+ std::copy(std::begin(l), std::end(l), begin());
+ }
+
+ /**
+ * @return current size
+ */
+ inline size_t size() const noexcept { return _size; }
+
+ /**
+ * @return maximum number of elements this vector can hold
+ */
+ constexpr size_t capacity() const { return Capacity; }
+
+ /**
+ * @brief resize to given new size
+ * @note if new size is greater than current size, new elements are default-initialized
+ */
+ void resize(size_t new_size) noexcept
+ {
+ assert(new_size <= Capacity);
+ if (new_size > _size)
+ {
+ std::fill(_storage + _size, _storage + new_size, T());
+ }
+ _size = new_size;
+ }
+
+ /**
+ * @return reference to the element at position idx
+ */
+ inline reference operator[](size_t idx) noexcept
+ {
+ assert(idx < _size);
+ return _storage[idx];
+ }
+
+ /**
+ * @return value of element at position idx
+ */
+ inline constexpr value_type operator[](size_t idx) const noexcept
+ {
+ // assert on the same line since c++11 does not allow multi-line constexpr functions
+ return assert(idx < _size), _storage[idx];
+ }
+
+ inline iterator begin() noexcept { return std::begin(_storage); }
+ inline iterator end() noexcept { return _storage + _size; }
+
+ inline reverse_iterator rbegin() noexcept { return reverse_iterator{end()}; }
+ inline reverse_iterator rend() noexcept { return reverse_iterator{begin()}; }
+
+ // const overloads
+ inline const_iterator begin() const noexcept { return std::begin(_storage); }
+ inline const_iterator end() const noexcept { return _storage + _size; }
+
+ inline const_reverse_iterator rbegin() const noexcept { return reverse_iterator{end()}; }
+ inline const_reverse_iterator rend() const noexcept { return reverse_iterator{begin()}; }
+
+ inline void push_back(const value_type &e) noexcept
+ {
+ assert(_size < Capacity);
+ _storage[_size++] = e;
+ }
+
+ inline void push_back(value_type &&e) noexcept
+ {
+ assert(_size < Capacity);
+ _storage[_size++] = std::move(e);
+ }
+
+private:
+ size_t _size;
+ value_type _storage[Capacity]{};
+};
+
+template
+bool operator==(const small_vector &lhs, const small_vector &rhs)
+{
+ if (lhs.size() != rhs.size())
+ {
+ return false;
+ }
+
+ bool equal = true;
+ size_t end = lhs.size();
+ for (size_t i = 0; i < end; ++i)
+ {
+ equal &= (lhs[i] == rhs[i]);
+ }
+
+ return equal;
+}
+
+} // namespace adt
+
+#endif //_ADTIDAS_SMALL_VECTOR_H_
diff --git a/compiler/angkor/CMakeLists.txt b/compiler/angkor/CMakeLists.txt
new file mode 100644
index 000000000..44b5e9058
--- /dev/null
+++ b/compiler/angkor/CMakeLists.txt
@@ -0,0 +1,22 @@
+file(GLOB_RECURSE HEADERS "include/*.h")
+file(GLOB_RECURSE SOURCES "src/*.cpp")
+file(GLOB_RECURSE TESTS "src/*.test.cpp")
+list(REMOVE_ITEM SOURCES ${TESTS})
+
+# NOTE STATIC is deliberately used here to allow clients to use 'angkor' without installation
+add_library(angkor STATIC ${HEADERS} ${SOURCES})
+set_target_properties(angkor PROPERTIES POSITION_INDEPENDENT_CODE ON)
+set_target_properties(angkor PROPERTIES LINKER_LANGUAGE CXX)
+target_include_directories(angkor PUBLIC include)
+target_link_libraries(angkor PRIVATE nncc_common)
+target_link_libraries(angkor PUBLIC nncc_coverage)
+
+if(NOT ENABLE_TEST)
+ return()
+endif(NOT ENABLE_TEST)
+
+# Google Test is mandatory for test
+nnas_find_package(GTest REQUIRED)
+
+GTest_AddTest(angkor_test ${TESTS})
+target_link_libraries(angkor_test angkor)
diff --git a/compiler/angkor/README.md b/compiler/angkor/README.md
new file mode 100644
index 000000000..f761b8740
--- /dev/null
+++ b/compiler/angkor/README.md
@@ -0,0 +1,51 @@
+# angkor
+
+## Purpose
+
+_angkor_ is a `nncc` core library
+
+## How to use
+
+_angkor_ implements abstract data type(ADT) for feature, kernel, tensor.
+There are layout, shape information and enumerator and so on.
+
+To use some of these things, just insert `include`!
+```cpp
+#include
+#include
+#include
+```
+
+## Example
+
+- `compiler/coco/core/CMakeLists.txt`
+
+```cmake
+target_link_libraries(coco_core PUBLIC angkor)
+```
+
+- `compiler/coco/core/src/IR/Arg.cpp`
+
+```cpp
+#include "coco/IR/Arg.h"
+
+#include
+#include
+
+namespace
+{
+const nncc::core::ADT::tensor::LexicalLayout l;
+}
+
+namespace coco
+{
+
+Arg::Arg(const nncc::core::ADT::tensor::Shape &shape) : _shape{shape}, _bag{nullptr}
+{
+ _map.resize(nncc::core::ADT::tensor::num_elements(shape));
+}
+
+// ....
+
+}
+```
diff --git a/compiler/angkor/include/angkor/TensorIndex.h b/compiler/angkor/include/angkor/TensorIndex.h
new file mode 100644
index 000000000..2fc10509e
--- /dev/null
+++ b/compiler/angkor/include/angkor/TensorIndex.h
@@ -0,0 +1,29 @@
+/*
+ * Copyright (c) 2019 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 __ANGKOR_TENSOR_INDEX_H__
+#define __ANGKOR_TENSOR_INDEX_H__
+
+#include "nncc/core/ADT/tensor/Index.h"
+
+namespace angkor
+{
+
+using TensorIndex = ::nncc::core::ADT::tensor::Index;
+
+} // namespace angkor
+
+#endif // __ANGKOR_TENSOR_INDEX_H__
diff --git a/compiler/angkor/include/angkor/TensorShape.h b/compiler/angkor/include/angkor/TensorShape.h
new file mode 100644
index 000000000..ab62bd8d9
--- /dev/null
+++ b/compiler/angkor/include/angkor/TensorShape.h
@@ -0,0 +1,29 @@
+/*
+ * Copyright (c) 2019 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 __ANGKOR_TENSOR_SHAPE_H__
+#define __ANGKOR_TENSOR_SHAPE_H__
+
+#include "nncc/core/ADT/tensor/Shape.h"
+
+namespace angkor
+{
+
+using TensorShape = ::nncc::core::ADT::tensor::Shape;
+
+} // namespace angkor
+
+#endif // __ANGKOR_TENSOR_SHAPE_H__
diff --git a/compiler/angkor/include/nncc/core/ADT/feature/Accessor.h b/compiler/angkor/include/nncc/core/ADT/feature/Accessor.h
new file mode 100644
index 000000000..aa4621851
--- /dev/null
+++ b/compiler/angkor/include/nncc/core/ADT/feature/Accessor.h
@@ -0,0 +1,43 @@
+/*
+ * Copyright (c) 2018 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 __NNCC_CORE_ADT_FEATURE_ACCESSOR_H__
+#define __NNCC_CORE_ADT_FEATURE_ACCESSOR_H__
+
+#include
+
+namespace nncc
+{
+namespace core
+{
+namespace ADT
+{
+namespace feature
+{
+
+template struct Accessor
+{
+ virtual ~Accessor() = default;
+
+ virtual T &at(uint32_t ch, uint32_t row, uint32_t col) = 0;
+};
+
+} // namespace feature
+} // namespace ADT
+} // namespace core
+} // namespace nncc
+
+#endif // __NNCC_CORE_ADT_FEATURE_ACCESSOR_H__
diff --git a/compiler/angkor/include/nncc/core/ADT/feature/Buffer.h b/compiler/angkor/include/nncc/core/ADT/feature/Buffer.h
new file mode 100644
index 000000000..86fd60295
--- /dev/null
+++ b/compiler/angkor/include/nncc/core/ADT/feature/Buffer.h
@@ -0,0 +1,59 @@
+/*
+ * Copyright (c) 2018 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 __NNCC_CORE_ADT_FEATURE_BUFFER_H__
+#define __NNCC_CORE_ADT_FEATURE_BUFFER_H__
+
+#include "nncc/core/ADT/feature/View.h"
+
+#include
+
+namespace nncc
+{
+namespace core
+{
+namespace ADT
+{
+namespace feature
+{
+
+template class Buffer final : public View
+{
+public:
+ explicit Buffer(const Shape &shape, const Layout &layout) : View{shape, layout}
+ {
+ _buffer.resize(num_elements(shape));
+ }
+
+public:
+ virtual T *base(void) { return _buffer.data(); }
+ virtual const T *base(void) const { return _buffer.data(); }
+
+private:
+ std::vector _buffer;
+};
+
+template Buffer make_buffer(const Shape &shape)
+{
+ return Buffer{shape, LayoutImpl{}};
+}
+
+} // namespace feature
+} // namespace ADT
+} // namespace core
+} // namespace nncc
+
+#endif // __NNCC_CORE_ADT_FEATURE_BUFFER_H__
diff --git a/compiler/angkor/include/nncc/core/ADT/feature/CHWLayout.h b/compiler/angkor/include/nncc/core/ADT/feature/CHWLayout.h
new file mode 100644
index 000000000..d84841d10
--- /dev/null
+++ b/compiler/angkor/include/nncc/core/ADT/feature/CHWLayout.h
@@ -0,0 +1,41 @@
+/*
+ * Copyright (c) 2018 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 __NNCC_CORE_ADT_FEATURE_CHW_LAYOUT_H__
+#define __NNCC_CORE_ADT_FEATURE_CHW_LAYOUT_H__
+
+#include "nncc/core/ADT/feature/Layout.h"
+
+namespace nncc
+{
+namespace core
+{
+namespace ADT
+{
+namespace feature
+{
+
+struct CHWLayout final : public Layout
+{
+ CHWLayout();
+};
+
+} // namespace feature
+} // namespace ADT
+} // namespace core
+} // namespace nncc
+
+#endif // __NNCC_CORE_ADT_FEATURE_CHW_LAYOUT_H__
diff --git a/compiler/angkor/include/nncc/core/ADT/feature/HWCLayout.h b/compiler/angkor/include/nncc/core/ADT/feature/HWCLayout.h
new file mode 100644
index 000000000..df885ad82
--- /dev/null
+++ b/compiler/angkor/include/nncc/core/ADT/feature/HWCLayout.h
@@ -0,0 +1,41 @@
+/*
+ * Copyright (c) 2018 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 __NNCC_CORE_ADT_FEATURE_HWC_LAYOUT_H__
+#define __NNCC_CORE_ADT_FEATURE_HWC_LAYOUT_H__
+
+#include "nncc/core/ADT/feature/Layout.h"
+
+namespace nncc
+{
+namespace core
+{
+namespace ADT
+{
+namespace feature
+{
+
+struct HWCLayout final : public Layout
+{
+ HWCLayout();
+};
+
+} // namespace feature
+} // namespace ADT
+} // namespace core
+} // namespace nncc
+
+#endif // __NNCC_CORE_ADT_FEATURE_HWC_LAYOUT_H__
diff --git a/compiler/angkor/include/nncc/core/ADT/feature/Layout.h b/compiler/angkor/include/nncc/core/ADT/feature/Layout.h
new file mode 100644
index 000000000..762545a84
--- /dev/null
+++ b/compiler/angkor/include/nncc/core/ADT/feature/Layout.h
@@ -0,0 +1,54 @@
+/*
+ * Copyright (c) 2018 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 __NNCC_CORE_ADT_FEATURE_LAYOUT_H__
+#define __NNCC_CORE_ADT_FEATURE_LAYOUT_H__
+
+#include "nncc/core/ADT/feature/Shape.h"
+
+namespace nncc
+{
+namespace core
+{
+namespace ADT
+{
+namespace feature
+{
+
+class Layout
+{
+public:
+ using Func = uint32_t (*)(const Shape &, uint32_t ch, uint32_t row, uint32_t col);
+
+public:
+ explicit Layout(const Func &func);
+
+public:
+ uint32_t offset(const Shape &shape, uint32_t ch, uint32_t row, uint32_t col) const
+ {
+ return _func(shape, ch, row, col);
+ }
+
+private:
+ Func _func;
+};
+
+} // namespace feature
+} // namespace ADT
+} // namespace core
+} // namespace nncc
+
+#endif // __NNCC_CORE_ADT_FEATURE_LAYOUT_H__
diff --git a/compiler/angkor/include/nncc/core/ADT/feature/Overlay.h b/compiler/angkor/include/nncc/core/ADT/feature/Overlay.h
new file mode 100644
index 000000000..93d86f56b
--- /dev/null
+++ b/compiler/angkor/include/nncc/core/ADT/feature/Overlay.h
@@ -0,0 +1,60 @@
+/*
+ * Copyright (c) 2018 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 __NNCC_CORE_ADT_FEATURE_OVERLAY_H__
+#define __NNCC_CORE_ADT_FEATURE_OVERLAY_H__
+
+#include "nncc/core/ADT/feature/View.h"
+
+#include
+
+namespace nncc
+{
+namespace core
+{
+namespace ADT
+{
+namespace feature
+{
+
+template class Overlay final : public View
+{
+public:
+ explicit Overlay(const Shape &shape, const Layout &layout, T *base)
+ : View{shape, layout}, _base{base}
+ {
+ // DO NOTHING
+ }
+
+public:
+ virtual T *base(void) { return _base; }
+ virtual const T *base(void) const { return _base; }
+
+private:
+ T *const _base;
+};
+
+template Overlay make_overlay(const Shape &shape, T *base)
+{
+ return Overlay{shape, LayoutImpl{}, base};
+}
+
+} // namespace feature
+} // namespace ADT
+} // namespace core
+} // namespace nncc
+
+#endif // __NNCC_CORE_ADT_FEATURE_OVERLAY_H__
diff --git a/compiler/angkor/include/nncc/core/ADT/feature/Reader.h b/compiler/angkor/include/nncc/core/ADT/feature/Reader.h
new file mode 100644
index 000000000..9a6fb724b
--- /dev/null
+++ b/compiler/angkor/include/nncc/core/ADT/feature/Reader.h
@@ -0,0 +1,43 @@
+/*
+ * Copyright (c) 2018 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 __NNCC_CORE_ADT_FEATURE_READER_H__
+#define __NNCC_CORE_ADT_FEATURE_READER_H__
+
+#include
+
+namespace nncc
+{
+namespace core
+{
+namespace ADT
+{
+namespace feature
+{
+
+template struct Reader
+{
+ virtual ~Reader() = default;
+
+ virtual T at(uint32_t ch, uint32_t row, uint32_t col) const = 0;
+};
+
+} // namespace feature
+} // namespace ADT
+} // namespace core
+} // namespace nncc
+
+#endif // __NNCC_CORE_ADT_FEATURE_READER_H__
diff --git a/compiler/angkor/include/nncc/core/ADT/feature/Shape.h b/compiler/angkor/include/nncc/core/ADT/feature/Shape.h
new file mode 100644
index 000000000..319326308
--- /dev/null
+++ b/compiler/angkor/include/nncc/core/ADT/feature/Shape.h
@@ -0,0 +1,74 @@
+/*
+ * Copyright (c) 2018 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 __NNCC_CORE_ADT_FEATURE_SHAPE_H__
+#define __NNCC_CORE_ADT_FEATURE_SHAPE_H__
+
+#include
+
+namespace nncc
+{
+namespace core
+{
+namespace ADT
+{
+namespace feature
+{
+
+//
+// Shape of Feature Map for Convolution
+//
+class Shape
+{
+public:
+ Shape(uint32_t depth, uint32_t height, uint32_t width)
+ : _depth{depth}, _height{height}, _width{width}
+ {
+ // DO NOTHING
+ }
+
+public:
+ uint32_t depth(void) const { return _depth; }
+ uint32_t height(void) const { return _height; }
+ uint32_t width(void) const { return _width; }
+
+private:
+ uint32_t _depth;
+ uint32_t _height;
+ uint32_t _width;
+};
+
+/**
+ * @brief The number of elements of a feature map of a given shape
+ *
+ * WARN The result is valid only when the expected value is less than 2^32 - 1
+ */
+inline uint32_t num_elements(const Shape &shape)
+{
+ return shape.depth() * shape.height() * shape.width();
+}
+
+inline bool operator==(const Shape &l, const Shape &r)
+{
+ return (l.depth() == r.depth()) && (l.height() == r.height()) && (l.width() == r.width());
+}
+
+} // namespace feature
+} // namespace ADT
+} // namespace core
+} // namespace nncc
+
+#endif // __NNCC_CORE_ADT_FEATURE_SHAPE_H__
diff --git a/compiler/angkor/include/nncc/core/ADT/feature/View.h b/compiler/angkor/include/nncc/core/ADT/feature/View.h
new file mode 100644
index 000000000..856e22b4b
--- /dev/null
+++ b/compiler/angkor/include/nncc/core/ADT/feature/View.h
@@ -0,0 +1,71 @@
+/*
+ * Copyright (c) 2018 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 __NNCC_CORE_ADT_FEATURE_VIEW_H__
+#define __NNCC_CORE_ADT_FEATURE_VIEW_H__
+
+#include "nncc/core/ADT/feature/Shape.h"
+#include "nncc/core/ADT/feature/Reader.h"
+#include "nncc/core/ADT/feature/Accessor.h"
+#include "nncc/core/ADT/feature/Layout.h"
+
+namespace nncc
+{
+namespace core
+{
+namespace ADT
+{
+namespace feature
+{
+
+template class View : public Reader, public Accessor
+{
+public:
+ explicit View(const Shape &shape, const Layout &layout) : _shape{shape}, _layout{layout}
+ {
+ // DO NOTHING
+ }
+
+public:
+ virtual T *base(void) = 0;
+ virtual const T *base(void) const = 0;
+
+public:
+ T at(uint32_t ch, uint32_t row, uint32_t col) const override final
+ {
+ return *(base() + _layout.offset(_shape, ch, row, col));
+ }
+
+public:
+ T &at(uint32_t ch, uint32_t row, uint32_t col) override final
+ {
+ return *(base() + _layout.offset(_shape, ch, row, col));
+ }
+
+public:
+ const Shape &shape(void) const { return _shape; }
+
+private:
+ const Shape _shape;
+ const Layout _layout;
+};
+
+} // namespace feature
+} // namespace ADT
+} // namespace core
+} // namespace nncc
+
+#endif // __NNCC_CORE_ADT_FEATURE_VIEW_H__
diff --git a/compiler/angkor/include/nncc/core/ADT/kernel/Accessor.h b/compiler/angkor/include/nncc/core/ADT/kernel/Accessor.h
new file mode 100644
index 000000000..5bc46de36
--- /dev/null
+++ b/compiler/angkor/include/nncc/core/ADT/kernel/Accessor.h
@@ -0,0 +1,43 @@
+/*
+ * Copyright (c) 2018 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 __NNCC_CORE_ADT_KERNEL_ACCESSOR_H__
+#define __NNCC_CORE_ADT_KERNEL_ACCESSOR_H__
+
+#include
+
+namespace nncc
+{
+namespace core
+{
+namespace ADT
+{
+namespace kernel
+{
+
+template struct Accessor
+{
+ virtual ~Accessor() = default;
+
+ virtual T &at(uint32_t nth, uint32_t ch, uint32_t row, uint32_t col) = 0;
+};
+
+} // namespace kernel
+} // namespace ADT
+} // namespace core
+} // namespace nncc
+
+#endif // __NNCC_CORE_ADT_KERNEL_ACCESSOR_H__
diff --git a/compiler/angkor/include/nncc/core/ADT/kernel/Buffer.h b/compiler/angkor/include/nncc/core/ADT/kernel/Buffer.h
new file mode 100644
index 000000000..3497d4829
--- /dev/null
+++ b/compiler/angkor/include/nncc/core/ADT/kernel/Buffer.h
@@ -0,0 +1,72 @@
+/*
+ * Copyright (c) 2018 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 __NNCC_CORE_ADT_KERNEL_BUFFER_H__
+#define __NNCC_CORE_ADT_KERNEL_BUFFER_H__
+
+#include "nncc/core/ADT/kernel/View.h"
+#include "nncc/core/ADT/kernel/ViewImpl.h"
+
+#include
+
+namespace nncc
+{
+namespace core
+{
+namespace ADT
+{
+namespace kernel
+{
+
+template class Buffer final : public View
+{
+public:
+ explicit Buffer(const Shape &shape, const Layout &layout) : _impl{shape, layout}
+ {
+ _buffer.resize(num_elements(shape));
+ }
+
+public:
+ T at(uint32_t nth, uint32_t ch, uint32_t row, uint32_t col) const override
+ {
+ return _impl.at(_buffer.begin(), nth, ch, row, col);
+ }
+
+public:
+ T &at(uint32_t nth, uint32_t ch, uint32_t row, uint32_t col) override
+ {
+ return _impl.at(_buffer.begin(), nth, ch, row, col);
+ }
+
+public:
+ const Shape &shape(void) const override { return _impl.shape(); }
+
+private:
+ std::vector _buffer;
+ ViewImpl _impl;
+};
+
+template Buffer make_buffer(const Shape &shape)
+{
+ return Buffer{shape, LayoutImpl{}};
+}
+
+} // namespace kernel
+} // namespace ADT
+} // namespace core
+} // namespace nncc
+
+#endif // __NNCC_CORE_ADT_KERNEL_BUFFER_H__
diff --git a/compiler/angkor/include/nncc/core/ADT/kernel/IndexEnumerator.h b/compiler/angkor/include/nncc/core/ADT/kernel/IndexEnumerator.h
new file mode 100644
index 000000000..4167ef972
--- /dev/null
+++ b/compiler/angkor/include/nncc/core/ADT/kernel/IndexEnumerator.h
@@ -0,0 +1,70 @@
+/*
+ * Copyright (c) 2018 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 __NNCC_CORE_ADT_KERNEL_INDEX_ENUMERATOR_H__
+#define __NNCC_CORE_ADT_KERNEL_INDEX_ENUMERATOR_H__
+
+#include "nncc/core/ADT/kernel/Shape.h"
+
+namespace nncc
+{
+namespace core
+{
+namespace ADT
+{
+namespace kernel
+{
+
+class IndexEnumerator
+{
+public:
+ explicit IndexEnumerator(const Shape &shape);
+
+public:
+ IndexEnumerator(IndexEnumerator &&) = delete;
+ IndexEnumerator(const IndexEnumerator &) = delete;
+
+public:
+ bool valid(void) const;
+
+public:
+ uint32_t count(void) const;
+ uint32_t depth(void) const;
+ uint32_t height(void) const;
+ uint32_t width(void) const;
+
+public:
+ void advance(void);
+
+private:
+ // Store max and current offset for count/depth/height/width
+ //
+ // NOTE Here explicit array is used instead of kernel::Shape to make
+ // a room for improvement such as enumeration order (NHWC, NCHW)
+ // support
+ uint32_t _max[4];
+ uint32_t _cur[4];
+
+private:
+ uint32_t _cursor;
+};
+
+} // namespace kernel
+} // namespace ADT
+} // namespace core
+} // namespace nncc
+
+#endif // __NNCC_CORE_ADT_KERNEL_INDEX_ENUMERATOR_H__
diff --git a/compiler/angkor/include/nncc/core/ADT/kernel/Layout.h b/compiler/angkor/include/nncc/core/ADT/kernel/Layout.h
new file mode 100644
index 000000000..1e85e1ed4
--- /dev/null
+++ b/compiler/angkor/include/nncc/core/ADT/kernel/Layout.h
@@ -0,0 +1,54 @@
+/*
+ * Copyright (c) 2018 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 __NNCC_CORE_ADT_KERNEL_LAYOUT_H__
+#define __NNCC_CORE_ADT_KERNEL_LAYOUT_H__
+
+#include "nncc/core/ADT/kernel/Shape.h"
+
+namespace nncc
+{
+namespace core
+{
+namespace ADT
+{
+namespace kernel
+{
+
+class Layout
+{
+public:
+ using Func = uint32_t (*)(const Shape &, uint32_t n, uint32_t ch, uint32_t row, uint32_t col);
+
+public:
+ Layout(const Func &func);
+
+public:
+ uint32_t offset(const Shape &shape, uint32_t n, uint32_t ch, uint32_t row, uint32_t col) const
+ {
+ return _func(shape, n, ch, row, col);
+ }
+
+private:
+ Func _func;
+};
+
+} // namespace kernel
+} // namespace ADT
+} // namespace core
+} // namespace nncc
+
+#endif // __NNCC_CORE_ADT_KERNEL_LAYOUT_H__
diff --git a/compiler/angkor/include/nncc/core/ADT/kernel/NCHWLayout.h b/compiler/angkor/include/nncc/core/ADT/kernel/NCHWLayout.h
new file mode 100644
index 000000000..72bd89fb9
--- /dev/null
+++ b/compiler/angkor/include/nncc/core/ADT/kernel/NCHWLayout.h
@@ -0,0 +1,41 @@
+/*
+ * Copyright (c) 2018 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 __NNCC_CORE_ADT_KERNEL_NCHW_LAYOUT_H__
+#define __NNCC_CORE_ADT_KERNEL_NCHW_LAYOUT_H__
+
+#include "nncc/core/ADT/kernel/Layout.h"
+
+namespace nncc
+{
+namespace core
+{
+namespace ADT
+{
+namespace kernel
+{
+
+struct NCHWLayout final : public Layout
+{
+ NCHWLayout();
+};
+
+} // namespace kernel
+} // namespace ADT
+} // namespace core
+} // namespace nncc
+
+#endif // __NNCC_CORE_ADT_KERNEL_NCHW_LAYOUT_H__
diff --git a/compiler/angkor/include/nncc/core/ADT/kernel/NHWCLayout.h b/compiler/angkor/include/nncc/core/ADT/kernel/NHWCLayout.h
new file mode 100644
index 000000000..bb239b91f
--- /dev/null
+++ b/compiler/angkor/include/nncc/core/ADT/kernel/NHWCLayout.h
@@ -0,0 +1,41 @@
+/*
+ * Copyright (c) 2018 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 __NNCC_CORE_ADT_KERNEL_NHWC_LAYOUT_H__
+#define __NNCC_CORE_ADT_KERNEL_NHWC_LAYOUT_H__
+
+#include "nncc/core/ADT/kernel/Layout.h"
+
+namespace nncc
+{
+namespace core
+{
+namespace ADT
+{
+namespace kernel
+{
+
+struct NHWCLayout final : public Layout
+{
+ NHWCLayout();
+};
+
+} // namespace kernel
+} // namespace ADT
+} // namespace core
+} // namespace nncc
+
+#endif // __NNCC_CORE_ADT_KERNEL_NHWC_LAYOUT_H__
diff --git a/compiler/angkor/include/nncc/core/ADT/kernel/Overlay.h b/compiler/angkor/include/nncc/core/ADT/kernel/Overlay.h
new file mode 100644
index 000000000..e348a8769
--- /dev/null
+++ b/compiler/angkor/include/nncc/core/ADT/kernel/Overlay.h
@@ -0,0 +1,81 @@
+/*
+ * Copyright (c) 2018 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 __NNCC_CORE_ADT_KERNEL_OVERLAY_H__
+#define __NNCC_CORE_ADT_KERNEL_OVERLAY_H__
+
+#include "nncc/core/ADT/kernel/View.h"
+#include "nncc/core/ADT/kernel/ViewImpl.h"
+
+#include
+
+namespace nncc
+{
+namespace core
+{
+namespace ADT
+{
+namespace kernel
+{
+
+template class Overlay final : public View
+{
+public:
+ explicit Overlay(const Shape &shape, const Layout &layout, InputIt it)
+ : _impl{shape, layout}, _it{it}
+ {
+ // DO NOTHING
+ }
+
+public:
+ T at(uint32_t nth, uint32_t ch, uint32_t row, uint32_t col) const override
+ {
+ return _impl.at(_it, nth, ch, row, col);
+ }
+
+public:
+ T &at(uint32_t nth, uint32_t ch, uint32_t row, uint32_t col) override
+ {
+ return _impl.at(_it, nth, ch, row, col);
+ }
+
+public:
+ const Shape &shape(void) const override { return _impl.shape(); }
+
+private:
+ InputIt const _it;
+ ViewImpl _impl;
+};
+
+template struct OverlayFactory
+{
+ template static Overlay make(const Shape &shape, InputIt it)
+ {
+ return Overlay{shape, LayoutImpl{}, it};
+ }
+};
+
+template Overlay make_overlay(const Shape &shape, T *base)
+{
+ return OverlayFactory::make(shape, base);
+}
+
+} // namespace kernel
+} // namespace ADT
+} // namespace core
+} // namespace nncc
+
+#endif // __NNCC_CORE_ADT_KERNEL_OVERLAY_H__
diff --git a/compiler/angkor/include/nncc/core/ADT/kernel/Reader.h b/compiler/angkor/include/nncc/core/ADT/kernel/Reader.h
new file mode 100644
index 000000000..af0267745
--- /dev/null
+++ b/compiler/angkor/include/nncc/core/ADT/kernel/Reader.h
@@ -0,0 +1,43 @@
+/*
+ * Copyright (c) 2018 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 __NNCC_CORE_ADT_KERNEL_READER_H__
+#define __NNCC_CORE_ADT_KERNEL_READER_H__
+
+#include
+
+namespace nncc
+{
+namespace core
+{
+namespace ADT
+{
+namespace kernel
+{
+
+template struct Reader
+{
+ virtual ~Reader() = default;
+
+ virtual T at(uint32_t nth, uint32_t ch, uint32_t row, uint32_t col) const = 0;
+};
+
+} // namespace kernel
+} // namespace ADT
+} // namespace core
+} // namespace nncc
+
+#endif // __NNCC_CORE_ADT_KERNEL_READER_H__
diff --git a/compiler/angkor/include/nncc/core/ADT/kernel/Shape.h b/compiler/angkor/include/nncc/core/ADT/kernel/Shape.h
new file mode 100644
index 000000000..d485d526b
--- /dev/null
+++ b/compiler/angkor/include/nncc/core/ADT/kernel/Shape.h
@@ -0,0 +1,73 @@
+/*
+ * Copyright (c) 2018 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 __NNCC_CORE_ADT_KERNEL_SHAPE_H__
+#define __NNCC_CORE_ADT_KERNEL_SHAPE_H__
+
+#include
+
+namespace nncc
+{
+namespace core
+{
+namespace ADT
+{
+namespace kernel
+{
+
+//
+// Shape of Convolution Kernel
+//
+class Shape
+{
+public:
+ Shape(uint32_t count, uint32_t depth, uint32_t height, uint32_t width)
+ : _count{count}, _depth{depth}, _height{height}, _width{width}
+ {
+ // DO NOTHING
+ }
+
+public:
+ uint32_t count(void) const { return _count; }
+ uint32_t depth(void) const { return _depth; }
+ uint32_t height(void) const { return _height; }
+ uint32_t width(void) const { return _width; }
+
+private:
+ uint32_t _count;
+ uint32_t _depth;
+ uint32_t _height;
+ uint32_t _width;
+};
+
+/**
+ * @brief Return the number of elements in a kernel of a given shape
+ *
+ * WARN The result is valid only when the expected value is less than 2^32 - 1
+ */
+inline uint32_t num_elements(const Shape &shape)
+{
+ return shape.count() * shape.depth() * shape.height() * shape.width();
+}
+
+bool operator==(const Shape &lhs, const Shape &rhs);
+
+} // namespace kernel
+} // namespace ADT
+} // namespace core
+} // namespace nncc
+
+#endif // __NNCC_CORE_ADT_KERNEL_SHAPE_H__
diff --git a/compiler/angkor/include/nncc/core/ADT/kernel/View.h b/compiler/angkor/include/nncc/core/ADT/kernel/View.h
new file mode 100644
index 000000000..2ed682a51
--- /dev/null
+++ b/compiler/angkor/include/nncc/core/ADT/kernel/View.h
@@ -0,0 +1,43 @@
+/*
+ * Copyright (c) 2018 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 __NNCC_CORE_ADT_KERNEL_VIEW_H__
+#define __NNCC_CORE_ADT_KERNEL_VIEW_H__
+
+#include "nncc/core/ADT/kernel/Shape.h"
+#include "nncc/core/ADT/kernel/Reader.h"
+#include "nncc/core/ADT/kernel/Accessor.h"
+
+namespace nncc
+{
+namespace core
+{
+namespace ADT
+{
+namespace kernel
+{
+
+template struct View : public Reader, public Accessor
+{
+ virtual const Shape &shape(void) const = 0;
+};
+
+} // namespace kernel
+} // namespace ADT
+} // namespace core
+} // namespace nncc
+
+#endif // __NNCC_CORE_ADT_KERNEL_VIEW_H__
diff --git a/compiler/angkor/include/nncc/core/ADT/kernel/ViewImpl.h b/compiler/angkor/include/nncc/core/ADT/kernel/ViewImpl.h
new file mode 100644
index 000000000..f4e8ed5e2
--- /dev/null
+++ b/compiler/angkor/include/nncc/core/ADT/kernel/ViewImpl.h
@@ -0,0 +1,67 @@
+/*
+ * Copyright (c) 2018 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 __NNCC_CORE_ADT_KERNEL_VIEW_IMPL_H__
+#define __NNCC_CORE_ADT_KERNEL_VIEW_IMPL_H__
+
+#include "nncc/core/ADT/kernel/Shape.h"
+#include "nncc/core/ADT/kernel/Layout.h"
+
+namespace nncc
+{
+namespace core
+{
+namespace ADT
+{
+namespace kernel
+{
+
+template class ViewImpl
+{
+public:
+ explicit ViewImpl(const Shape &shape, const Layout &layout) : _shape{shape}, _layout{layout}
+ {
+ // DO NOTHING
+ }
+
+public:
+ template
+ T at(InputIt it, uint32_t nth, uint32_t ch, uint32_t row, uint32_t col) const
+ {
+ return *(it + _layout.offset(_shape, nth, ch, row, col));
+ }
+
+public:
+ template
+ T &at(InputIt it, uint32_t nth, uint32_t ch, uint32_t row, uint32_t col)
+ {
+ return *(it + _layout.offset(_shape, nth, ch, row, col));
+ }
+
+public:
+ const Shape &shape(void) const { return _shape; }
+
+private:
+ const Shape _shape;
+ const Layout _layout;
+};
+
+} // namespace kernel
+} // namespace ADT
+} // namespace core
+} // namespace nncc
+
+#endif // __NNCC_CORE_ADT_KERNEL_VIEW_IMPL_H__
diff --git a/compiler/angkor/include/nncc/core/ADT/tensor/Accessor.h b/compiler/angkor/include/nncc/core/ADT/tensor/Accessor.h
new file mode 100644
index 000000000..6a60b4b34
--- /dev/null
+++ b/compiler/angkor/include/nncc/core/ADT/tensor/Accessor.h
@@ -0,0 +1,43 @@
+/*
+ * Copyright (c) 2018 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 __NNCC_CORE_ADT_TENSOR_ACCESSOR_H__
+#define __NNCC_CORE_ADT_TENSOR_ACCESSOR_H__
+
+#include "nncc/core/ADT/tensor/Index.h"
+
+namespace nncc
+{
+namespace core
+{
+namespace ADT
+{
+namespace tensor
+{
+
+template struct Accessor
+{
+ virtual ~Accessor() = default;
+
+ virtual T &at(const Index &) = 0;
+};
+
+} // namespace tensor
+} // namespace ADT
+} // namespace core
+} // namespace nncc
+
+#endif // __NNCC_CORE_ADT_TENSOR_ACCESSOR_H__
diff --git a/compiler/angkor/include/nncc/core/ADT/tensor/Buffer.h b/compiler/angkor/include/nncc/core/ADT/tensor/Buffer.h
new file mode 100644
index 000000000..f62f3040f
--- /dev/null
+++ b/compiler/angkor/include/nncc/core/ADT/tensor/Buffer.h
@@ -0,0 +1,57 @@
+/*
+ * Copyright (c) 2018 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 __NNCC_CORE_ADT_TENSOR_BUFFER_H__
+#define __NNCC_CORE_ADT_TENSOR_BUFFER_H__
+
+#include "nncc/core/ADT/tensor/View.h"
+
+namespace nncc
+{
+namespace core
+{
+namespace ADT
+{
+namespace tensor
+{
+
+template class Buffer final : public View
+{
+public:
+ explicit Buffer(const Shape &shape, const Layout &layout) : View{shape, layout}
+ {
+ _buffer.resize(num_elements(shape));
+ }
+
+public:
+ T *base(void) override { return _buffer.data(); }
+ const T *base(void) const override { return _buffer.data(); }
+
+private:
+ std::vector _buffer;
+};
+
+template Buffer make_buffer(const Shape &shape)
+{
+ return Buffer{shape, LayoutImpl{}};
+}
+
+} // namespace tensor
+} // namespace ADT
+} // namespace core
+} // namespace nncc
+
+#endif // __NNCC_CORE_ADT_TENSOR_BUFFER_H__
diff --git a/compiler/angkor/include/nncc/core/ADT/tensor/Index.h b/compiler/angkor/include/nncc/core/ADT/tensor/Index.h
new file mode 100644
index 000000000..19beafafc
--- /dev/null
+++ b/compiler/angkor/include/nncc/core/ADT/tensor/Index.h
@@ -0,0 +1,65 @@
+/*
+ * Copyright (c) 2018 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 __NNCC_CORE_ADT_TENSOR_INDEX_H__
+#define __NNCC_CORE_ADT_TENSOR_INDEX_H__
+
+#include
+#include
+#include
+
+namespace nncc
+{
+namespace core
+{
+namespace ADT
+{
+namespace tensor
+{
+
+class Index
+{
+public:
+ Index() = default;
+ Index(std::initializer_list &&l);
+
+public:
+ uint32_t rank(void) const;
+
+public:
+ Index &resize(uint32_t size);
+
+public:
+ Index &fill(uint32_t index);
+
+public:
+ uint32_t &at(uint32_t axis);
+ uint32_t at(uint32_t axis) const;
+
+private:
+ std::vector _indices;
+};
+
+// It throws an exception when rank of inputs does not match.
+Index operator+(const Index &lhs, const Index &rhs);
+bool operator==(const Index &lhs, const Index &rhs);
+
+} // namespace tensor
+} // namespace ADT
+} // namespace core
+} // namespace nncc
+
+#endif // __NNCC_CORE_ADT_TENSOR_INDEX_H__
diff --git a/compiler/angkor/include/nncc/core/ADT/tensor/IndexEnumerator.h b/compiler/angkor/include/nncc/core/ADT/tensor/IndexEnumerator.h
new file mode 100644
index 000000000..ef85b2c10
--- /dev/null
+++ b/compiler/angkor/include/nncc/core/ADT/tensor/IndexEnumerator.h
@@ -0,0 +1,63 @@
+/*
+ * Copyright (c) 2018 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 __NNCC_CORE_ADT_TENSOR_INDEX_ENUMERATOR_H__
+#define __NNCC_CORE_ADT_TENSOR_INDEX_ENUMERATOR_H__
+
+#include "nncc/core/ADT/tensor/Index.h"
+#include "nncc/core/ADT/tensor/Shape.h"
+
+namespace nncc
+{
+namespace core
+{
+namespace ADT
+{
+namespace tensor
+{
+
+class IndexEnumerator
+{
+public:
+ explicit IndexEnumerator(const Shape &shape);
+
+public:
+ IndexEnumerator(IndexEnumerator &&) = delete;
+ IndexEnumerator(const IndexEnumerator &) = delete;
+
+public:
+ bool valid(void) const { return _cursor < _shape.rank(); }
+
+public:
+ const Index ¤t(void) const { return _index; }
+
+public:
+ void advance(void);
+
+private:
+ const Shape _shape;
+ Index _index;
+
+private:
+ uint32_t _cursor;
+};
+
+} // namespace tensor
+} // namespace ADT
+} // namespace core
+} // namespace nncc
+
+#endif // __NNCC_CORE_ADT_TENSOR_INDEX_ENUMERATOR_H__
diff --git a/compiler/angkor/include/nncc/core/ADT/tensor/Layout.h b/compiler/angkor/include/nncc/core/ADT/tensor/Layout.h
new file mode 100644
index 000000000..0e410ff01
--- /dev/null
+++ b/compiler/angkor/include/nncc/core/ADT/tensor/Layout.h
@@ -0,0 +1,52 @@
+/*
+ * Copyright (c) 2018 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 __NNCC_CORE_ADT_TENSOR_LAYOUT_H__
+#define __NNCC_CORE_ADT_TENSOR_LAYOUT_H__
+
+#include "nncc/core/ADT/tensor/Shape.h"
+#include "nncc/core/ADT/tensor/Index.h"
+
+namespace nncc
+{
+namespace core
+{
+namespace ADT
+{
+namespace tensor
+{
+
+class Layout
+{
+public:
+ using Func = uint32_t (*)(const Shape &, const Index &);
+
+public:
+ explicit Layout(const Func &func);
+
+public:
+ uint32_t offset(const Shape &shape, const Index &index) const { return _func(shape, index); }
+
+private:
+ Func _func;
+};
+
+} // namespace tensor
+} // namespace ADT
+} // namespace core
+} // namespace nncc
+
+#endif // __NNCC_CORE_ADT_TENSOR_LAYOUT_H__
diff --git a/compiler/angkor/include/nncc/core/ADT/tensor/LexicalLayout.h b/compiler/angkor/include/nncc/core/ADT/tensor/LexicalLayout.h
new file mode 100644
index 000000000..b497ad844
--- /dev/null
+++ b/compiler/angkor/include/nncc/core/ADT/tensor/LexicalLayout.h
@@ -0,0 +1,41 @@
+/*
+ * Copyright (c) 2018 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 __NNCC_CORE_ADT_TENSOR_LEXICAL_LAYOUT_H__
+#define __NNCC_CORE_ADT_TENSOR_LEXICAL_LAYOUT_H__
+
+#include "nncc/core/ADT/tensor/Layout.h"
+
+namespace nncc
+{
+namespace core
+{
+namespace ADT
+{
+namespace tensor
+{
+
+struct LexicalLayout final : public Layout
+{
+ LexicalLayout();
+};
+
+} // namespace tensor
+} // namespace ADT
+} // namespace core
+} // namespace nncc
+
+#endif // __NNCC_CORE_ADT_TENSOR_LEXICAL_LAYOUT_H__
diff --git a/compiler/angkor/include/nncc/core/ADT/tensor/Overlay.h b/compiler/angkor/include/nncc/core/ADT/tensor/Overlay.h
new file mode 100644
index 000000000..11ee5350c
--- /dev/null
+++ b/compiler/angkor/include/nncc/core/ADT/tensor/Overlay.h
@@ -0,0 +1,58 @@
+/*
+ * Copyright (c) 2018 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 __NNCC_CORE_ADT_TENSOR_OVERLAY_H__
+#define __NNCC_CORE_ADT_TENSOR_OVERLAY_H__
+
+#include "nncc/core/ADT/tensor/View.h"
+
+namespace nncc
+{
+namespace core
+{
+namespace ADT
+{
+namespace tensor
+{
+
+template class Overlay final : public View
+{
+public:
+ explicit Overlay(const Shape &shape, const Layout &layout, T *base)
+ : View{shape, layout}, _base{base}
+ {
+ // DO NOTHING
+ }
+
+public:
+ T *base(void) override { return _base; }
+ const T *base(void) const override { return _base; }
+
+private:
+ T *const _base;
+};
+
+template Overlay make_overlay(const Shape &shape, T *base)
+{
+ return Overlay{shape, LayoutImpl{}, base};
+}
+
+} // namespace tensor
+} // namespace ADT
+} // namespace core
+} // namespace nncc
+
+#endif // __NNCC_CORE_ADT_TENSOR_OVERLAY_H__
diff --git a/compiler/angkor/include/nncc/core/ADT/tensor/Reader.h b/compiler/angkor/include/nncc/core/ADT/tensor/Reader.h
new file mode 100644
index 000000000..49f1287d2
--- /dev/null
+++ b/compiler/angkor/include/nncc/core/ADT/tensor/Reader.h
@@ -0,0 +1,43 @@
+/*
+ * Copyright (c) 2018 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 __NNCC_CORE_ADT_TENSOR_READER_H__
+#define __NNCC_CORE_ADT_TENSOR_READER_H__
+
+#include "nncc/core/ADT/tensor/Index.h"
+
+namespace nncc
+{
+namespace core
+{
+namespace ADT
+{
+namespace tensor
+{
+
+template struct Reader
+{
+ virtual ~Reader() = default;
+
+ virtual T at(const Index &) const = 0;
+};
+
+} // namespace tensor
+} // namespace ADT
+} // namespace core
+} // namespace nncc
+
+#endif // __NNCC_CORE_ADT_TENSOR_READER_H__
diff --git a/compiler/angkor/include/nncc/core/ADT/tensor/Shape.h b/compiler/angkor/include/nncc/core/ADT/tensor/Shape.h
new file mode 100644
index 000000000..3eaab0e54
--- /dev/null
+++ b/compiler/angkor/include/nncc/core/ADT/tensor/Shape.h
@@ -0,0 +1,70 @@
+/*
+ * Copyright (c) 2018 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 __NNCC_CORE_ADT_TENSOR_SHAPE_H__
+#define __NNCC_CORE_ADT_TENSOR_SHAPE_H__
+
+#include
+#include
+#include
+
+namespace nncc
+{
+namespace core
+{
+namespace ADT
+{
+namespace tensor
+{
+
+class Shape
+{
+public:
+ Shape() = default;
+ Shape(std::initializer_list &&l);
+
+public:
+ uint32_t rank(void) const;
+
+public:
+ Shape &resize(uint32_t size);
+
+public:
+ uint32_t &dim(uint32_t axis);
+ uint32_t dim(uint32_t axis) const;
+
+public:
+ Shape &squeeze(void);
+
+private:
+ std::vector _dims;
+};
+
+/**
+ * NOTE num_elements returns 1 for rank-0 tensors
+ */
+uint64_t num_elements(const Shape &);
+
+Shape squeeze(const Shape &);
+
+bool operator==(const Shape &, const Shape &);
+
+} // namespace tensor
+} // namespace ADT
+} // namespace core
+} // namespace nncc
+
+#endif // __NNCC_CORE_ADT_TENSOR_SHAPE_H__
diff --git a/compiler/angkor/include/nncc/core/ADT/tensor/View.h b/compiler/angkor/include/nncc/core/ADT/tensor/View.h
new file mode 100644
index 000000000..4c9a91539
--- /dev/null
+++ b/compiler/angkor/include/nncc/core/ADT/tensor/View.h
@@ -0,0 +1,70 @@
+/*
+ * Copyright (c) 2018 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 __NNCC_CORE_ADT_TENSOR_VIEW_H__
+#define __NNCC_CORE_ADT_TENSOR_VIEW_H__
+
+#include "nncc/core/ADT/tensor/Shape.h"
+#include "nncc/core/ADT/tensor/Index.h"
+#include "nncc/core/ADT/tensor/Reader.h"
+#include "nncc/core/ADT/tensor/Accessor.h"
+#include "nncc/core/ADT/tensor/Layout.h"
+
+namespace nncc
+{
+namespace core
+{
+namespace ADT
+{
+namespace tensor
+{
+
+template class View : public Reader, public Accessor
+{
+public:
+ explicit View(const Shape &shape, const Layout &layout)
+ : _shape{shape}, _layout{std::move(layout)}
+ {
+ // DO NOTHING
+ }
+
+public:
+ virtual ~View() = default;
+
+public:
+ virtual T *base(void) = 0;
+ virtual const T *base(void) const = 0;
+
+public:
+ T at(const Index &index) const override { return *(base() + _layout.offset(_shape, index)); }
+
+public:
+ T &at(const Index &index) override { return *(base() + _layout.offset(_shape, index)); }
+
+public:
+ const Shape &shape(void) const { return _shape; }
+
+private:
+ const Shape _shape;
+ const Layout _layout;
+};
+
+} // namespace tensor
+} // namespace ADT
+} // namespace core
+} // namespace nncc
+
+#endif // __NNCC_CORE_ADT_TENSOR_VIEW_H__
diff --git a/compiler/angkor/src/ADT/feature/Accessor.cpp b/compiler/angkor/src/ADT/feature/Accessor.cpp
new file mode 100644
index 000000000..03ff9a31e
--- /dev/null
+++ b/compiler/angkor/src/ADT/feature/Accessor.cpp
@@ -0,0 +1,21 @@
+/*
+ * Copyright (c) 2018 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 "nncc/core/ADT/feature/Accessor.h"
+
+// DO NOT REMOVE THIS FILE
+//
+// This file is introduced to check the self-completeness of 'Accessor.h'
diff --git a/compiler/angkor/src/ADT/feature/Buffer.test.cpp b/compiler/angkor/src/ADT/feature/Buffer.test.cpp
new file mode 100644
index 000000000..1e4430251
--- /dev/null
+++ b/compiler/angkor/src/ADT/feature/Buffer.test.cpp
@@ -0,0 +1,48 @@
+/*
+ * Copyright (c) 2018 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 "nncc/core/ADT/feature/Buffer.h"
+#include "nncc/core/ADT/feature/CHWLayout.h"
+
+#include
+
+using nncc::core::ADT::feature::Shape;
+using nncc::core::ADT::feature::CHWLayout;
+using nncc::core::ADT::feature::Buffer;
+
+using nncc::core::ADT::feature::make_buffer;
+
+TEST(ADT_FEATURE_BUFFER, ctor)
+{
+ const Shape shape{4, 6, 3};
+ auto buffer = make_buffer(shape);
+
+ ASSERT_EQ(buffer.shape().depth(), shape.depth());
+ ASSERT_EQ(buffer.shape().height(), shape.height());
+ ASSERT_EQ(buffer.shape().width(), shape.width());
+}
+
+TEST(ADT_FEATURE_BUFFER, access)
+{
+ const Shape shape{4, 6, 3};
+ auto buffer = make_buffer(shape);
+
+ ASSERT_EQ(buffer.at(3, 5, 2), 0);
+ buffer.at(3, 5, 2) = 4;
+
+ // Casting is introduced to use 'const T &at(...) const' method
+ ASSERT_EQ(static_cast &>(buffer).at(3, 5, 2), 4);
+}
diff --git a/compiler/angkor/src/ADT/feature/CHWLayout.cpp b/compiler/angkor/src/ADT/feature/CHWLayout.cpp
new file mode 100644
index 000000000..31415a1bd
--- /dev/null
+++ b/compiler/angkor/src/ADT/feature/CHWLayout.cpp
@@ -0,0 +1,43 @@
+/*
+ * Copyright (c) 2018 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 "nncc/core/ADT/feature/CHWLayout.h"
+
+using nncc::core::ADT::feature::Shape;
+
+static uint32_t CHW_offset(const Shape &shape, uint32_t ch, uint32_t row, uint32_t col)
+{
+ return (ch * shape.height() + row) * shape.width() + col;
+}
+
+namespace nncc
+{
+namespace core
+{
+namespace ADT
+{
+namespace feature
+{
+
+CHWLayout::CHWLayout() : Layout{CHW_offset}
+{
+ // DO NOTHING
+}
+
+} // namespace feature
+} // namespace ADT
+} // namespace core
+} // namespace nncc
diff --git a/compiler/angkor/src/ADT/feature/CHWLayout.test.cpp b/compiler/angkor/src/ADT/feature/CHWLayout.test.cpp
new file mode 100644
index 000000000..5610df8f3
--- /dev/null
+++ b/compiler/angkor/src/ADT/feature/CHWLayout.test.cpp
@@ -0,0 +1,45 @@
+/*
+ * Copyright (c) 2018 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 "nncc/core/ADT/feature/CHWLayout.h"
+
+#include
+
+using namespace nncc::core::ADT::feature;
+
+TEST(ADT_FEATURE_CHW_LAYOUT, col_increase)
+{
+ const Shape shape{4, 3, 6};
+ const CHWLayout l;
+
+ ASSERT_EQ(l.offset(shape, 1, 2, 1) + 1, l.offset(shape, 1, 2, 2));
+}
+
+TEST(ADT_FEATURE_CHW_LAYOUT, row_increase)
+{
+ const Shape shape{4, 3, 6};
+ const CHWLayout l;
+
+ ASSERT_EQ(l.offset(shape, 1, 1, 1) + 6, l.offset(shape, 1, 2, 1));
+}
+
+TEST(ADT_FEATURE_CHW_LAYOUT, ch_increase)
+{
+ const Shape shape{4, 3, 6};
+ const CHWLayout l;
+
+ ASSERT_EQ(l.offset(shape, 1, 1, 1) + 6 * 3, l.offset(shape, 2, 1, 1));
+}
diff --git a/compiler/angkor/src/ADT/feature/HWCLayout.cpp b/compiler/angkor/src/ADT/feature/HWCLayout.cpp
new file mode 100644
index 000000000..016535625
--- /dev/null
+++ b/compiler/angkor/src/ADT/feature/HWCLayout.cpp
@@ -0,0 +1,43 @@
+/*
+ * Copyright (c) 2018 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 "nncc/core/ADT/feature/HWCLayout.h"
+
+using nncc::core::ADT::feature::Shape;
+
+static uint32_t HWC_offset(const Shape &shape, uint32_t ch, uint32_t row, uint32_t col)
+{
+ return (row * shape.width() + col) * shape.depth() + ch;
+}
+
+namespace nncc
+{
+namespace core
+{
+namespace ADT
+{
+namespace feature
+{
+
+HWCLayout::HWCLayout() : Layout{HWC_offset}
+{
+ // DO NOTHING
+}
+
+} // namespace feature
+} // namespace ADT
+} // namespace core
+} // namespace nncc
diff --git a/compiler/angkor/src/ADT/feature/HWCLayout.test.cpp b/compiler/angkor/src/ADT/feature/HWCLayout.test.cpp
new file mode 100644
index 000000000..d1f359753
--- /dev/null
+++ b/compiler/angkor/src/ADT/feature/HWCLayout.test.cpp
@@ -0,0 +1,57 @@
+/*
+ * Copyright (c) 2018 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 "nncc/core/ADT/feature/HWCLayout.h"
+
+#include
+
+using namespace nncc::core::ADT::feature;
+
+TEST(ADT_FEATURE_HWC_LAYOUT, C_increase)
+{
+ const uint32_t C = 4;
+ const uint32_t H = 3;
+ const uint32_t W = 6;
+
+ const Shape shape{C, H, W};
+ const HWCLayout l;
+
+ ASSERT_EQ(l.offset(shape, 1, 1, 1) + 1, l.offset(shape, 2, 1, 1));
+}
+
+TEST(ADT_FEATURE_HWC_LAYOUT, W_increase)
+{
+ const uint32_t C = 4;
+ const uint32_t H = 3;
+ const uint32_t W = 6;
+
+ const Shape shape{C, H, W};
+ const HWCLayout l;
+
+ ASSERT_EQ(l.offset(shape, 1, 2, 1) + C, l.offset(shape, 1, 2, 2));
+}
+
+TEST(ADT_FEATURE_HWC_LAYOUT, H_increase)
+{
+ const uint32_t C = 4;
+ const uint32_t H = 3;
+ const uint32_t W = 6;
+
+ const Shape shape{C, H, W};
+ const HWCLayout l;
+
+ ASSERT_EQ(l.offset(shape, 1, 1, 1) + W * C, l.offset(shape, 1, 2, 1));
+}
diff --git a/compiler/angkor/src/ADT/feature/Layout.cpp b/compiler/angkor/src/ADT/feature/Layout.cpp
new file mode 100644
index 000000000..49ab7cbf9
--- /dev/null
+++ b/compiler/angkor/src/ADT/feature/Layout.cpp
@@ -0,0 +1,35 @@
+/*
+ * Copyright (c) 2018 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 "nncc/core/ADT/feature/Layout.h"
+
+#include
+
+namespace nncc
+{
+namespace core
+{
+namespace ADT
+{
+namespace feature
+{
+
+Layout::Layout(const Func &func) : _func{func} { assert(_func != nullptr); }
+
+} // namespace feature
+} // namespace ADT
+} // namespace core
+} // namespace nncc
diff --git a/compiler/angkor/src/ADT/feature/Layout.test.cpp b/compiler/angkor/src/ADT/feature/Layout.test.cpp
new file mode 100644
index 000000000..023594e16
--- /dev/null
+++ b/compiler/angkor/src/ADT/feature/Layout.test.cpp
@@ -0,0 +1,56 @@
+/*
+ * Copyright (c) 2018 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 "nncc/core/ADT/feature/Layout.h"
+
+#include
+
+using nncc::core::ADT::feature::Shape;
+using nncc::core::ADT::feature::Layout;
+
+static uint32_t offset_0(const Shape &, uint32_t, uint32_t, uint32_t) { return 0; }
+static uint32_t offset_1(const Shape &, uint32_t, uint32_t, uint32_t) { return 1; }
+
+TEST(ADT_FEATURE_LAYOUT, ctor)
+{
+ Layout l{offset_0};
+
+ ASSERT_EQ(l.offset(Shape{4, 3, 6}, 1, 1, 1), 0);
+}
+
+TEST(ADT_FEATURE_LAYOUT, copy)
+{
+ Layout orig{offset_0};
+ Layout copy{offset_1};
+
+ ASSERT_EQ(copy.offset(Shape{4, 3, 6}, 1, 1, 1), 1);
+
+ copy = orig;
+
+ ASSERT_EQ(copy.offset(Shape{4, 3, 6}, 1, 1, 1), 0);
+}
+
+TEST(ADT_FEATURE_LAYOUT, move)
+{
+ Layout orig{offset_0};
+ Layout move{offset_1};
+
+ ASSERT_EQ(move.offset(Shape{4, 3, 6}, 1, 1, 1), 1);
+
+ move = std::move(orig);
+
+ ASSERT_EQ(move.offset(Shape{4, 3, 6}, 1, 1, 1), 0);
+}
diff --git a/compiler/angkor/src/ADT/feature/Overlay.test.cpp b/compiler/angkor/src/ADT/feature/Overlay.test.cpp
new file mode 100644
index 000000000..c8e2943f8
--- /dev/null
+++ b/compiler/angkor/src/ADT/feature/Overlay.test.cpp
@@ -0,0 +1,72 @@
+/*
+ * Copyright (c) 2018 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 "nncc/core/ADT/feature/Overlay.h"
+#include "nncc/core/ADT/feature/CHWLayout.h"
+
+#include
+
+using nncc::core::ADT::feature::Shape;
+using nncc::core::ADT::feature::CHWLayout;
+using nncc::core::ADT::feature::Overlay;
+
+using nncc::core::ADT::feature::make_overlay;
+
+TEST(ADT_FEATURE_OVERLAY, ctor)
+{
+ const Shape shape{4, 6, 3};
+
+ int data[4 * 6 * 3] = {
+ 0,
+ };
+ auto overlay = make_overlay(shape, data);
+
+ ASSERT_EQ(overlay.shape().depth(), shape.depth());
+ ASSERT_EQ(overlay.shape().height(), shape.height());
+ ASSERT_EQ(overlay.shape().width(), shape.width());
+}
+
+TEST(ADT_FEATURE_OVERLAY, read)
+{
+ const Shape shape{4, 6, 3};
+
+ int data[4 * 6 * 3] = {
+ 0,
+ };
+ const auto overlay = make_overlay(shape, data);
+
+ CHWLayout layout{};
+
+ ASSERT_EQ(data[layout.offset(shape, 3, 5, 2)], 0);
+ data[layout.offset(shape, 3, 5, 2)] = 2;
+ ASSERT_EQ(overlay.at(3, 5, 2), 2);
+}
+
+TEST(ADT_FEATURE_OVERLAY, access)
+{
+ const Shape shape{4, 6, 3};
+
+ int data[4 * 6 * 3] = {
+ 0,
+ };
+ auto overlay = make_overlay(shape, data);
+
+ CHWLayout layout{};
+
+ ASSERT_EQ(data[layout.offset(shape, 3, 5, 2)], 0);
+ overlay.at(3, 5, 2) = 4;
+ ASSERT_EQ(data[layout.offset(shape, 3, 5, 2)], 4);
+}
diff --git a/compiler/angkor/src/ADT/feature/Reader.cpp b/compiler/angkor/src/ADT/feature/Reader.cpp
new file mode 100644
index 000000000..5f1c0d22b
--- /dev/null
+++ b/compiler/angkor/src/ADT/feature/Reader.cpp
@@ -0,0 +1,21 @@
+/*
+ * Copyright (c) 2018 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 "nncc/core/ADT/feature/Reader.h"
+
+// DO NOT REMOVE THIS FILE
+//
+// This file is introduced to check the self-completeness of 'Reader.h'
diff --git a/compiler/angkor/src/ADT/feature/Shape.test.cpp b/compiler/angkor/src/ADT/feature/Shape.test.cpp
new file mode 100644
index 000000000..9216182f0
--- /dev/null
+++ b/compiler/angkor/src/ADT/feature/Shape.test.cpp
@@ -0,0 +1,56 @@
+/*
+ * Copyright (c) 2018 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
+
+#include
+
+TEST(ADT_FEATURE_SHAPE, ctor)
+{
+ const uint32_t C = 3;
+ const uint32_t H = 4;
+ const uint32_t W = 5;
+
+ nncc::core::ADT::feature::Shape shape{C, H, W};
+
+ ASSERT_EQ(shape.depth(), C);
+ ASSERT_EQ(shape.height(), H);
+ ASSERT_EQ(shape.width(), W);
+}
+
+TEST(ADT_FEATURE_SHAPE, num_elements)
+{
+ const uint32_t C = 3;
+ const uint32_t H = 4;
+ const uint32_t W = 5;
+
+ using nncc::core::ADT::feature::Shape;
+ using nncc::core::ADT::feature::num_elements;
+
+ ASSERT_EQ(num_elements(Shape{C, H, W}), C * H * W);
+}
+
+TEST(ADT_FEATURE_SHAPE, operator_eq)
+{
+ using nncc::core::ADT::feature::Shape;
+
+ // NOTE We use ASSERT_TRUE/ASSERT_FALSE instead of ASSERT_EQ/ASSERT_NE as it is impossible to
+ // introduce negative tests with ASSERT_NE (it uses operator!= instead of operator==).
+ ASSERT_TRUE(Shape(1, 1, 1) == Shape(1, 1, 1));
+ ASSERT_FALSE(Shape(1, 1, 1) == Shape(2, 1, 1));
+ ASSERT_FALSE(Shape(1, 1, 1) == Shape(1, 2, 1));
+ ASSERT_FALSE(Shape(1, 1, 1) == Shape(1, 1, 2));
+}
diff --git a/compiler/angkor/src/ADT/kernel/Buffer.test.cpp b/compiler/angkor/src/ADT/kernel/Buffer.test.cpp
new file mode 100644
index 000000000..da344593e
--- /dev/null
+++ b/compiler/angkor/src/ADT/kernel/Buffer.test.cpp
@@ -0,0 +1,49 @@
+/*
+ * Copyright (c) 2018 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 "nncc/core/ADT/kernel/Buffer.h"
+#include "nncc/core/ADT/kernel/NCHWLayout.h"
+
+#include
+
+using nncc::core::ADT::kernel::Shape;
+using nncc::core::ADT::kernel::NCHWLayout;
+using nncc::core::ADT::kernel::Buffer;
+
+using nncc::core::ADT::kernel::make_buffer;
+
+TEST(ADT_KERNEL_BUFFER, ctor)
+{
+ const Shape shape{2, 4, 6, 3};
+ auto buffer = make_buffer(shape);
+
+ ASSERT_EQ(buffer.shape().count(), shape.count());
+ ASSERT_EQ(buffer.shape().depth(), shape.depth());
+ ASSERT_EQ(buffer.shape().height(), shape.height());
+ ASSERT_EQ(buffer.shape().width(), shape.width());
+}
+
+TEST(ADT_KERNEL_BUFFER, access)
+{
+ const Shape shape{2, 4, 6, 3};
+ auto buffer = make_buffer(shape);
+
+ ASSERT_EQ(buffer.at(1, 3, 5, 2), 0);
+ buffer.at(1, 3, 5, 2) = 4;
+
+ // Casting is introduced to use 'const T &at(...) const' method
+ ASSERT_EQ(static_cast &>(buffer).at(1, 3, 5, 2), 4);
+}
diff --git a/compiler/angkor/src/ADT/kernel/IndexEnumerator.cpp b/compiler/angkor/src/ADT/kernel/IndexEnumerator.cpp
new file mode 100644
index 000000000..0b1db090d
--- /dev/null
+++ b/compiler/angkor/src/ADT/kernel/IndexEnumerator.cpp
@@ -0,0 +1,84 @@
+/*
+ * Copyright (c) 2018 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 "nncc/core/ADT/kernel/IndexEnumerator.h"
+
+#include
+#include
+
+namespace nncc
+{
+namespace core
+{
+namespace ADT
+{
+namespace kernel
+{
+
+IndexEnumerator::IndexEnumerator(const Shape &shape) : _cursor(0)
+{
+ _max[0] = shape.width();
+ _max[1] = shape.height();
+ _max[2] = shape.depth();
+ _max[3] = shape.count();
+
+ std::fill(_cur, _cur + 4, 0);
+
+ // NOTE Null dimension should NOT exist
+ assert(std::find(_max, _max + 4, 0) == (_max + 4));
+}
+
+bool IndexEnumerator::valid(void) const { return _cursor < 4; }
+
+uint32_t IndexEnumerator::count(void) const { return _cur[3]; }
+uint32_t IndexEnumerator::depth(void) const { return _cur[2]; }
+uint32_t IndexEnumerator::height(void) const { return _cur[1]; }
+uint32_t IndexEnumerator::width(void) const { return _cur[0]; }
+
+void IndexEnumerator::advance(void)
+{
+ while (_cursor < 4)
+ {
+ if (_cur[_cursor] + 1 < _max[_cursor])
+ {
+ break;
+ }
+
+ ++_cursor;
+ }
+
+ if (_cursor == 4)
+ {
+ return;
+ }
+
+ // Increment index
+ _cur[_cursor] += 1;
+
+ // Reset indices for lower dimensions
+ for (uint32_t head = 0; head < _cursor; ++head)
+ {
+ _cur[head] = 0;
+ }
+
+ // Reset cursor
+ _cursor = 0;
+}
+
+} // namespace kernel
+} // namespace ADT
+} // namespace core
+} // namespace nncc
diff --git a/compiler/angkor/src/ADT/kernel/IndexEnumerator.test.cpp b/compiler/angkor/src/ADT/kernel/IndexEnumerator.test.cpp
new file mode 100644
index 000000000..21ba19209
--- /dev/null
+++ b/compiler/angkor/src/ADT/kernel/IndexEnumerator.test.cpp
@@ -0,0 +1,46 @@
+/*
+ * Copyright (c) 2018 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 "nncc/core/ADT/kernel/IndexEnumerator.h"
+
+#include
+#include
+
+#include
+
+using nncc::core::ADT::kernel::Shape;
+using nncc::core::ADT::kernel::IndexEnumerator;
+
+TEST(ADT_KERNEL_INDEX_ENUMERATOR, iterate_full_range)
+{
+ const uint32_t N = 2;
+ const uint32_t C = 3;
+ const uint32_t H = 4;
+ const uint32_t W = 5;
+
+ const Shape shape{N, C, H, W};
+
+ std::vector count;
+ count.resize(N * C * H * W, 0);
+
+ for (IndexEnumerator e{shape}; e.valid(); e.advance())
+ {
+ const uint32_t offset = ((e.count() * C + e.depth()) * H + e.height()) * W + e.width();
+ count.at(offset) += 1;
+ }
+
+ ASSERT_TRUE(std::all_of(count.begin(), count.end(), [](uint32_t n) { return n == 1; }));
+}
diff --git a/compiler/angkor/src/ADT/kernel/Layout.cpp b/compiler/angkor/src/ADT/kernel/Layout.cpp
new file mode 100644
index 000000000..acadd2448
--- /dev/null
+++ b/compiler/angkor/src/ADT/kernel/Layout.cpp
@@ -0,0 +1,38 @@
+/*
+ * Copyright (c) 2018 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 "nncc/core/ADT/kernel/Layout.h"
+
+#include
+
+namespace nncc
+{
+namespace core
+{
+namespace ADT
+{
+namespace kernel
+{
+
+Layout::Layout(const Func &func) : _func{func}
+{
+ // DO NOTHING
+}
+
+} // namespace kernel
+} // namespace ADT
+} // namespace core
+} // namespace nncc
diff --git a/compiler/angkor/src/ADT/kernel/Layout.test.cpp b/compiler/angkor/src/ADT/kernel/Layout.test.cpp
new file mode 100644
index 000000000..94885cd4e
--- /dev/null
+++ b/compiler/angkor/src/ADT/kernel/Layout.test.cpp
@@ -0,0 +1,56 @@
+/*
+ * Copyright (c) 2018 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 "nncc/core/ADT/kernel/Layout.h"
+
+#include
+
+using nncc::core::ADT::kernel::Shape;
+using nncc::core::ADT::kernel::Layout;
+
+static uint32_t offset_0(const Shape &, uint32_t, uint32_t, uint32_t, uint32_t) { return 0; }
+static uint32_t offset_1(const Shape &, uint32_t, uint32_t, uint32_t, uint32_t) { return 1; }
+
+TEST(ADT_KERNEL_LAYOUT, ctor)
+{
+ Layout l{offset_0};
+
+ ASSERT_EQ(l.offset(Shape{4, 3, 6, 5}, 1, 1, 1, 1), 0);
+}
+
+TEST(ADT_KERNEL_LAYOUT, copy)
+{
+ Layout orig{offset_0};
+ Layout copy{offset_1};
+
+ ASSERT_EQ(copy.offset(Shape{4, 3, 6, 5}, 1, 1, 1, 1), 1);
+
+ copy = orig;
+
+ ASSERT_EQ(copy.offset(Shape{4, 3, 6, 5}, 1, 1, 1, 1), 0);
+}
+
+TEST(ADT_KERNEL_LAYOUT, move)
+{
+ Layout orig{offset_0};
+ Layout move{offset_1};
+
+ ASSERT_EQ(move.offset(Shape{4, 3, 6, 5}, 1, 1, 1, 1), 1);
+
+ move = std::move(orig);
+
+ ASSERT_EQ(move.offset(Shape{4, 3, 6, 5}, 1, 1, 1, 1), 0);
+}
diff --git a/compiler/angkor/src/ADT/kernel/NCHWLayout.cpp b/compiler/angkor/src/ADT/kernel/NCHWLayout.cpp
new file mode 100644
index 000000000..be7551182
--- /dev/null
+++ b/compiler/angkor/src/ADT/kernel/NCHWLayout.cpp
@@ -0,0 +1,43 @@
+/*
+ * Copyright (c) 2018 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 "nncc/core/ADT/kernel/NCHWLayout.h"
+
+using nncc::core::ADT::kernel::Shape;
+
+static uint32_t NCHW_offset(const Shape &shape, uint32_t n, uint32_t ch, uint32_t row, uint32_t col)
+{
+ return (((n * shape.depth() + ch) * shape.height() + row) * shape.width() + col);
+}
+
+namespace nncc
+{
+namespace core
+{
+namespace ADT
+{
+namespace kernel
+{
+
+NCHWLayout::NCHWLayout() : Layout{NCHW_offset}
+{
+ // DO NOTHING
+}
+
+} // namespace kernel
+} // namespace ADT
+} // namespace core
+} // namespace nncc
diff --git a/compiler/angkor/src/ADT/kernel/NCHWLayout.test.cpp b/compiler/angkor/src/ADT/kernel/NCHWLayout.test.cpp
new file mode 100644
index 000000000..ba03b7b04
--- /dev/null
+++ b/compiler/angkor/src/ADT/kernel/NCHWLayout.test.cpp
@@ -0,0 +1,53 @@
+/*
+ * Copyright (c) 2018 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 "nncc/core/ADT/kernel/NCHWLayout.h"
+
+#include
+
+using namespace nncc::core::ADT::kernel;
+
+TEST(ADT_KERNEL_KERNEL_NCHW_LAYOUT, col_increment)
+{
+ const Shape shape{4, 3, 6, 5};
+ const NCHWLayout l;
+
+ ASSERT_EQ(l.offset(shape, 1, 1, 1, 1) + 1, l.offset(shape, 1, 1, 1, 2));
+}
+
+TEST(ADT_KERNEL_KERNEL_NCHW_LAYOUT, row_increment)
+{
+ const Shape shape{4, 3, 6, 5};
+ const NCHWLayout l;
+
+ ASSERT_EQ(l.offset(shape, 1, 1, 1, 1) + 5, l.offset(shape, 1, 1, 2, 1));
+}
+
+TEST(ADT_KERNEL_KERNEL_NCHW_LAYOUT, ch_increment)
+{
+ const Shape shape{4, 3, 6, 5};
+ const NCHWLayout l;
+
+ ASSERT_EQ(l.offset(shape, 1, 1, 1, 1) + 6 * 5, l.offset(shape, 1, 2, 1, 1));
+}
+
+TEST(ADT_KERNEL_KERNEL_NCHW_LAYOUT, n_increment)
+{
+ const Shape shape{4, 3, 6, 5};
+ const NCHWLayout l;
+
+ ASSERT_EQ(l.offset(shape, 1, 1, 1, 1) + 3 * 6 * 5, l.offset(shape, 2, 1, 1, 1));
+}
diff --git a/compiler/angkor/src/ADT/kernel/NHWCLayout.cpp b/compiler/angkor/src/ADT/kernel/NHWCLayout.cpp
new file mode 100644
index 000000000..8e0524425
--- /dev/null
+++ b/compiler/angkor/src/ADT/kernel/NHWCLayout.cpp
@@ -0,0 +1,43 @@
+/*
+ * Copyright (c) 2018 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 "nncc/core/ADT/kernel/NHWCLayout.h"
+
+using nncc::core::ADT::kernel::Shape;
+
+static uint32_t NHWC_offset(const Shape &shape, uint32_t n, uint32_t ch, uint32_t row, uint32_t col)
+{
+ return ((n * shape.height() + row) * shape.width() + col) * shape.depth() + ch;
+}
+
+namespace nncc
+{
+namespace core
+{
+namespace ADT
+{
+namespace kernel
+{
+
+NHWCLayout::NHWCLayout() : Layout{NHWC_offset}
+{
+ // DO NOTHING
+}
+
+} // namespace kernel
+} // namespace ADT
+} // namespace core
+} // namespace nncc
diff --git a/compiler/angkor/src/ADT/kernel/NHWCLayout.test.cpp b/compiler/angkor/src/ADT/kernel/NHWCLayout.test.cpp
new file mode 100644
index 000000000..2c5df7d89
--- /dev/null
+++ b/compiler/angkor/src/ADT/kernel/NHWCLayout.test.cpp
@@ -0,0 +1,74 @@
+/*
+ * Copyright (c) 2018 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 "nncc/core/ADT/kernel/NHWCLayout.h"
+
+#include
+
+using nncc::core::ADT::kernel::Shape;
+using nncc::core::ADT::kernel::NHWCLayout;
+
+TEST(ADT_KERNEL_KERNEL_NHWC_LAYOUT, ch_increment)
+{
+ const uint32_t N = 4;
+ const uint32_t C = 3;
+ const uint32_t H = 6;
+ const uint32_t W = 5;
+
+ const Shape shape{N, C, H, W};
+ const NHWCLayout l;
+
+ ASSERT_EQ(l.offset(shape, 1, 1, 1, 1) + 1, l.offset(shape, 1, 2, 1, 1));
+}
+
+TEST(ADT_KERNEL_KERNEL_NHWC_LAYOUT, col_increment)
+{
+ const uint32_t N = 4;
+ const uint32_t C = 3;
+ const uint32_t H = 6;
+ const uint32_t W = 5;
+
+ const Shape shape{N, C, H, W};
+ const NHWCLayout l;
+
+ ASSERT_EQ(l.offset(shape, 1, 1, 1, 1) + C, l.offset(shape, 1, 1, 1, 2));
+}
+
+TEST(ADT_KERNEL_KERNEL_NHWC_LAYOUT, row_increment)
+{
+ const uint32_t N = 4;
+ const uint32_t C = 3;
+ const uint32_t H = 6;
+ const uint32_t W = 5;
+
+ const Shape shape{N, C, H, W};
+ const NHWCLayout l;
+
+ ASSERT_EQ(l.offset(shape, 1, 1, 1, 1) + C * W, l.offset(shape, 1, 1, 2, 1));
+}
+
+TEST(ADT_KERNEL_KERNEL_NHWC_LAYOUT, n_increment)
+{
+ const uint32_t N = 4;
+ const uint32_t C = 3;
+ const uint32_t H = 6;
+ const uint32_t W = 5;
+
+ const Shape shape{N, C, H, W};
+ const NHWCLayout l;
+
+ ASSERT_EQ(l.offset(shape, 1, 1, 1, 1) + H * W * C, l.offset(shape, 2, 1, 1, 1));
+}
diff --git a/compiler/angkor/src/ADT/kernel/Overlay.test.cpp b/compiler/angkor/src/ADT/kernel/Overlay.test.cpp
new file mode 100644
index 000000000..e80ebbc30
--- /dev/null
+++ b/compiler/angkor/src/ADT/kernel/Overlay.test.cpp
@@ -0,0 +1,73 @@
+/*
+ * Copyright (c) 2018 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 "nncc/core/ADT/kernel/Overlay.h"
+#include "nncc/core/ADT/kernel/NCHWLayout.h"
+
+#include
+
+using nncc::core::ADT::kernel::Shape;
+using nncc::core::ADT::kernel::NCHWLayout;
+using nncc::core::ADT::kernel::Overlay;
+
+using nncc::core::ADT::kernel::make_overlay;
+
+TEST(ADT_KERNEL_OVERLAY, ctor)
+{
+ const Shape shape{2, 4, 6, 3};
+
+ int data[2 * 4 * 6 * 3] = {
+ 0,
+ };
+ auto overlay = make_overlay(shape, data);
+
+ ASSERT_EQ(overlay.shape().count(), shape.count());
+ ASSERT_EQ(overlay.shape().depth(), shape.depth());
+ ASSERT_EQ(overlay.shape().height(), shape.height());
+ ASSERT_EQ(overlay.shape().width(), shape.width());
+}
+
+TEST(ADT_KERNEL_OVERLAY, read)
+{
+ const Shape shape{2, 4, 6, 3};
+
+ int data[2 * 4 * 6 * 3] = {
+ 0,
+ };
+ const auto overlay = make_overlay(shape, data);
+
+ NCHWLayout layout{};
+
+ ASSERT_EQ(data[layout.offset(shape, 1, 3, 5, 2)], 0);
+ data[layout.offset(shape, 1, 3, 5, 2)] = 2;
+ ASSERT_EQ(overlay.at(1, 3, 5, 2), 2);
+}
+
+TEST(ADT_KERNEL_OVERLAY, access)
+{
+ const Shape shape{2, 4, 6, 3};
+
+ int data[2 * 4 * 6 * 3] = {
+ 0,
+ };
+ auto overlay = make_overlay(shape, data);
+
+ NCHWLayout layout{};
+
+ ASSERT_EQ(data[layout.offset(shape, 1, 3, 5, 2)], 0);
+ overlay.at(1, 3, 5, 2) = 4;
+ ASSERT_EQ(data[layout.offset(shape, 1, 3, 5, 2)], 4);
+}
diff --git a/compiler/angkor/src/ADT/kernel/Reader.cpp b/compiler/angkor/src/ADT/kernel/Reader.cpp
new file mode 100644
index 000000000..9e34167c8
--- /dev/null
+++ b/compiler/angkor/src/ADT/kernel/Reader.cpp
@@ -0,0 +1,20 @@
+/*
+ * Copyright (c) 2018 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 "nncc/core/ADT/kernel/Reader.h"
+
+// DO NOT REMOVE THIS FILE
+// This file is introduced to test the self-completeness of 'Reader.h'
diff --git a/compiler/angkor/src/ADT/kernel/Shape.cpp b/compiler/angkor/src/ADT/kernel/Shape.cpp
new file mode 100644
index 000000000..8ad1edb67
--- /dev/null
+++ b/compiler/angkor/src/ADT/kernel/Shape.cpp
@@ -0,0 +1,37 @@
+/*
+ * Copyright (c) 2018 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 "nncc/core/ADT/kernel/Shape.h"
+
+namespace nncc
+{
+namespace core
+{
+namespace ADT
+{
+namespace kernel
+{
+
+bool operator==(const Shape &l, const Shape &r)
+{
+ return (l.count() == r.count()) && (l.depth() == r.depth()) && (l.height() == r.height()) &&
+ (l.width() == r.width());
+}
+
+} // namespace kernel
+} // namespace ADT
+} // namespace core
+} // namespace nncc
diff --git a/compiler/angkor/src/ADT/kernel/Shape.test.cpp b/compiler/angkor/src/ADT/kernel/Shape.test.cpp
new file mode 100644
index 000000000..da608fb7f
--- /dev/null
+++ b/compiler/angkor/src/ADT/kernel/Shape.test.cpp
@@ -0,0 +1,58 @@
+/*
+ * Copyright (c) 2018 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
+
+#include
+
+TEST(ADT_KERNEL_SHAPE, ctor)
+{
+ const uint32_t N = 1;
+ const uint32_t C = 3;
+ const uint32_t H = 4;
+ const uint32_t W = 5;
+
+ nncc::core::ADT::kernel::Shape shape{N, C, H, W};
+
+ ASSERT_EQ(shape.count(), N);
+ ASSERT_EQ(shape.depth(), C);
+ ASSERT_EQ(shape.height(), H);
+ ASSERT_EQ(shape.width(), W);
+}
+
+TEST(ADT_KERNEL_SHAPE, num_elements)
+{
+ const uint32_t N = 1;
+ const uint32_t C = 3;
+ const uint32_t H = 4;
+ const uint32_t W = 5;
+
+ using nncc::core::ADT::kernel::Shape;
+ using nncc::core::ADT::kernel::num_elements;
+
+ ASSERT_EQ(num_elements(Shape{N, C, H, W}), N * C * H * W);
+}
+
+TEST(ADT_KERNEL_SHAPE, operator_eq)
+{
+ using nncc::core::ADT::kernel::Shape;
+
+ EXPECT_TRUE(Shape(1, 1, 1, 1) == Shape(1, 1, 1, 1));
+ EXPECT_FALSE(Shape(1, 1, 1, 1) == Shape(1, 1, 1, 2));
+ EXPECT_FALSE(Shape(1, 1, 1, 1) == Shape(1, 1, 2, 1));
+ EXPECT_FALSE(Shape(1, 1, 1, 1) == Shape(1, 2, 1, 1));
+ EXPECT_FALSE(Shape(1, 1, 1, 1) == Shape(2, 1, 1, 1));
+}
diff --git a/compiler/angkor/src/ADT/tensor/Buffer.test.cpp b/compiler/angkor/src/ADT/tensor/Buffer.test.cpp
new file mode 100644
index 000000000..c2b6a9983
--- /dev/null
+++ b/compiler/angkor/src/ADT/tensor/Buffer.test.cpp
@@ -0,0 +1,49 @@
+/*
+ * Copyright (c) 2018 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 "nncc/core/ADT/tensor/Buffer.h"
+#include "nncc/core/ADT/tensor/LexicalLayout.h"
+
+#include
+
+using nncc::core::ADT::tensor::Shape;
+using nncc::core::ADT::tensor::Index;
+using nncc::core::ADT::tensor::LexicalLayout;
+using nncc::core::ADT::tensor::Buffer;
+
+using nncc::core::ADT::tensor::make_buffer;
+
+TEST(ADT_TENSOR_BUFFER, ctor)
+{
+ const Shape shape{2, 3};
+ auto buffer = make_buffer(shape);
+
+ ASSERT_EQ(buffer.shape(), shape);
+}
+
+TEST(ADT_TENSOR_BUFFER, access)
+{
+ const Shape shape{2, 3};
+ auto buffer = make_buffer(shape);
+
+ const Index index{1, 2};
+
+ ASSERT_EQ(buffer.at(index), 0);
+ buffer.at(index) = 4;
+
+ // Casting is introduced to use 'const T &at(...) const' method
+ ASSERT_EQ(static_cast &>(buffer).at(index), 4);
+}
diff --git a/compiler/angkor/src/ADT/tensor/Index.cpp b/compiler/angkor/src/ADT/tensor/Index.cpp
new file mode 100644
index 000000000..61f0a7106
--- /dev/null
+++ b/compiler/angkor/src/ADT/tensor/Index.cpp
@@ -0,0 +1,81 @@
+/*
+ * Copyright (c) 2018 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 "nncc/core/ADT/tensor/Index.h"
+
+#include
+#include
+
+namespace nncc
+{
+namespace core
+{
+namespace ADT
+{
+namespace tensor
+{
+
+Index::Index(std::initializer_list &&l) : _indices{l}
+{
+ // DO NOTHING
+}
+
+uint32_t Index::rank(void) const { return _indices.size(); }
+Index &Index::resize(uint32_t size)
+{
+ _indices.resize(size);
+ return *this;
+}
+
+Index &Index::fill(uint32_t index)
+{
+ std::fill(_indices.begin(), _indices.end(), index);
+ return (*this);
+}
+
+uint32_t &Index::at(uint32_t axis) { return _indices.at(axis); }
+uint32_t Index::at(uint32_t axis) const { return _indices.at(axis); }
+
+Index operator+(const Index &lhs, const Index &rhs)
+{
+ if (lhs.rank() != rhs.rank())
+ throw std::runtime_error("Two tensors should have same rank");
+
+ Index ret;
+ ret.resize(lhs.rank());
+ for (uint32_t axis = 0; axis < lhs.rank(); axis++)
+ {
+ ret.at(axis) = lhs.at(axis) + rhs.at(axis);
+ }
+ return ret;
+}
+
+bool operator==(const Index &lhs, const Index &rhs)
+{
+ if (lhs.rank() != rhs.rank())
+ return false;
+ for (uint32_t axis = 0; axis < lhs.rank(); axis++)
+ {
+ if (lhs.at(axis) != rhs.at(axis))
+ return false;
+ }
+ return true;
+}
+
+} // namespace tensor
+} // namespace ADT
+} // namespace core
+} // namespace nncc
diff --git a/compiler/angkor/src/ADT/tensor/Index.test.cpp b/compiler/angkor/src/ADT/tensor/Index.test.cpp
new file mode 100644
index 000000000..230602816
--- /dev/null
+++ b/compiler/angkor/src/ADT/tensor/Index.test.cpp
@@ -0,0 +1,119 @@
+/*
+ * Copyright (c) 2018 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 "nncc/core/ADT/tensor/Index.h"
+
+#include
+
+TEST(ADT_TENSOR_INDEX, ctor)
+{
+ nncc::core::ADT::tensor::Index index;
+
+ ASSERT_EQ(index.rank(), 0);
+}
+
+TEST(ADT_TENSOR_INDEX, ctor_initializer_list)
+{
+ const nncc::core::ADT::tensor::Index index{1, 3, 5, 7};
+
+ ASSERT_EQ(index.rank(), 4);
+
+ ASSERT_EQ(index.at(0), 1);
+ ASSERT_EQ(index.at(1), 3);
+ ASSERT_EQ(index.at(2), 5);
+ ASSERT_EQ(index.at(3), 7);
+}
+
+TEST(ADT_TENSOR_INDEX, operator_add)
+{
+ nncc::core::ADT::tensor::Index index1{1, 2, 3, 4};
+ nncc::core::ADT::tensor::Index index2{5, 6, 7, 8};
+ nncc::core::ADT::tensor::Index result{index1 + index2};
+
+ ASSERT_EQ(result.at(0), 6);
+ ASSERT_EQ(result.at(1), 8);
+ ASSERT_EQ(result.at(2), 10);
+ ASSERT_EQ(result.at(3), 12);
+}
+
+TEST(ADT_TENSOR_INDEX, operator_eqaul)
+{
+ nncc::core::ADT::tensor::Index index1{1, 2, 3, 4};
+ nncc::core::ADT::tensor::Index index2{1, 2, 3, 4};
+ nncc::core::ADT::tensor::Index index3{5, 6, 7, 8};
+ nncc::core::ADT::tensor::Index index4{1, 2};
+
+ ASSERT_TRUE(index1 == index2);
+ ASSERT_FALSE(index1 == index3);
+ ASSERT_FALSE(index1 == index4);
+}
+
+TEST(ADT_TENSOR_INDEX, operator_add_different_size)
+{
+ nncc::core::ADT::tensor::Index index1{1, 2, 3, 4};
+ nncc::core::ADT::tensor::Index index2{5, 6};
+
+ EXPECT_THROW(index1 + index2, std::runtime_error);
+}
+
+TEST(ADT_TENSOR_INDEX, resize)
+{
+ nncc::core::ADT::tensor::Index index;
+
+ index.resize(4);
+
+ ASSERT_EQ(index.rank(), 4);
+}
+
+TEST(ADT_TENSOR_INDEX, at)
+{
+ nncc::core::ADT::tensor::Index index;
+
+ index.resize(4);
+
+ uint32_t indices[4] = {3, 5, 2, 7};
+
+ for (uint32_t axis = 0; axis < 4; ++axis)
+ {
+ index.at(axis) = indices[axis];
+ ASSERT_EQ(index.at(axis), indices[axis]);
+ }
+}
+
+TEST(ADT_TENSOR_INDEX, copy)
+{
+ const nncc::core::ADT::tensor::Index original{3, 5, 2, 7};
+ const nncc::core::ADT::tensor::Index copied{original};
+
+ ASSERT_EQ(original.rank(), copied.rank());
+
+ for (uint32_t axis = 0; axis < 4; ++axis)
+ {
+ ASSERT_EQ(original.at(axis), copied.at(axis));
+ }
+}
+
+TEST(ADT_TENSOR_INDEX, fill)
+{
+ nncc::core::ADT::tensor::Index index{1, 6};
+
+ index.fill(3);
+
+ ASSERT_EQ(index.rank(), 2);
+
+ ASSERT_EQ(index.at(0), 3);
+ ASSERT_EQ(index.at(1), 3);
+}
diff --git a/compiler/angkor/src/ADT/tensor/IndexEnumerator.cpp b/compiler/angkor/src/ADT/tensor/IndexEnumerator.cpp
new file mode 100644
index 000000000..623313a2e
--- /dev/null
+++ b/compiler/angkor/src/ADT/tensor/IndexEnumerator.cpp
@@ -0,0 +1,100 @@
+/*
+ * Copyright (c) 2018 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 "nncc/core/ADT/tensor/IndexEnumerator.h"
+
+#include
+
+using nncc::core::ADT::tensor::Shape;
+
+inline uint32_t axis_of(const Shape &shape, uint32_t cursor)
+{
+ const uint32_t rank = shape.rank();
+ assert(cursor < rank);
+ return rank - cursor - 1;
+}
+
+namespace nncc
+{
+namespace core
+{
+namespace ADT
+{
+namespace tensor
+{
+
+IndexEnumerator::IndexEnumerator(const Shape &shape) : _shape{shape}, _cursor(0)
+{
+ const uint32_t rank = _shape.rank();
+
+ // Initialize _index
+ _index.resize(rank);
+ for (uint32_t axis = 0; axis < rank; ++axis)
+ {
+ _index.at(axis) = 0;
+ }
+
+ // Initialize _cursor
+ for (_cursor = 0; _cursor < rank; ++_cursor)
+ {
+ const auto axis = axis_of(_shape, _cursor);
+
+ if (_index.at(axis) < _shape.dim(axis))
+ {
+ break;
+ }
+ }
+}
+
+void IndexEnumerator::advance(void)
+{
+ const uint32_t rank = _shape.rank();
+
+ // Find axis to be updated
+ while (_cursor < rank)
+ {
+ const auto axis = axis_of(_shape, _cursor);
+
+ if ((_index.at(axis)) + 1 < _shape.dim(axis))
+ {
+ break;
+ }
+
+ ++_cursor;
+ }
+
+ if (_cursor == rank)
+ {
+ return;
+ }
+
+ // Update index
+ _index.at(axis_of(_shape, _cursor)) += 1;
+
+ for (uint32_t pos = 0; pos < _cursor; ++pos)
+ {
+ const auto axis = axis_of(_shape, pos);
+ _index.at(axis) = 0;
+ }
+
+ // Reset cursor
+ _cursor = 0;
+}
+
+} // namespace tensor
+} // namespace ADT
+} // namespace core
+} // namespace nncc
diff --git a/compiler/angkor/src/ADT/tensor/IndexEnumerator.test.cpp b/compiler/angkor/src/ADT/tensor/IndexEnumerator.test.cpp
new file mode 100644
index 000000000..204a8aa21
--- /dev/null
+++ b/compiler/angkor/src/ADT/tensor/IndexEnumerator.test.cpp
@@ -0,0 +1,48 @@
+/*
+ * Copyright (c) 2018 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 "nncc/core/ADT/tensor/IndexEnumerator.h"
+
+#include
+#include
+
+#include
+
+using nncc::core::ADT::tensor::Shape;
+using nncc::core::ADT::tensor::Index;
+using nncc::core::ADT::tensor::IndexEnumerator;
+
+TEST(ADT_TENSOR_INDEX_ENUMERATOR, iterate_full_range)
+{
+ const uint32_t H = 3;
+ const uint32_t W = 4;
+
+ const Shape shape{H, W};
+
+ std::vector count;
+
+ count.resize(H * W, 0);
+
+ for (IndexEnumerator e{shape}; e.valid(); e.advance())
+ {
+ const auto &ind = e.current();
+
+ ASSERT_EQ(ind.rank(), 2);
+ count.at(ind.at(0) * W + ind.at(1)) += 1;
+ }
+
+ ASSERT_TRUE(std::all_of(count.begin(), count.end(), [](uint32_t n) { return n == 1; }));
+}
diff --git a/compiler/angkor/src/ADT/tensor/Layout.cpp b/compiler/angkor/src/ADT/tensor/Layout.cpp
new file mode 100644
index 000000000..7faf7507d
--- /dev/null
+++ b/compiler/angkor/src/ADT/tensor/Layout.cpp
@@ -0,0 +1,35 @@
+/*
+ * Copyright (c) 2018 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 "nncc/core/ADT/tensor/Layout.h"
+
+#include
+
+namespace nncc
+{
+namespace core
+{
+namespace ADT
+{
+namespace tensor
+{
+
+Layout::Layout(const Func &func) : _func{func} { assert(_func != nullptr); }
+
+} // namespace tensor
+} // namespace ADT
+} // namespace core
+} // namespace nncc
diff --git a/compiler/angkor/src/ADT/tensor/Layout.test.cpp b/compiler/angkor/src/ADT/tensor/Layout.test.cpp
new file mode 100644
index 000000000..145adfecc
--- /dev/null
+++ b/compiler/angkor/src/ADT/tensor/Layout.test.cpp
@@ -0,0 +1,56 @@
+/*
+ * Copyright (c) 2018 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 "nncc/core/ADT/tensor/Layout.h"
+
+#include
+
+using nncc::core::ADT::tensor::Shape;
+using nncc::core::ADT::tensor::Index;
+
+static uint32_t offset_0(const Shape &, const Index &) { return 0; }
+static uint32_t offset_1(const Shape &, const Index &) { return 1; }
+
+TEST(ADT_TENSOR_LAYOUT, ctor)
+{
+ nncc::core::ADT::tensor::Layout l{offset_0};
+
+ ASSERT_EQ(l.offset(Shape{4, 3, 6}, Index{1, 1, 1}), 0);
+}
+
+TEST(ADT_TENSOR_LAYOUT, copy)
+{
+ nncc::core::ADT::tensor::Layout orig{offset_0};
+ nncc::core::ADT::tensor::Layout copy{offset_1};
+
+ ASSERT_EQ(copy.offset(Shape{4, 3, 6}, Index{1, 1, 1}), 1);
+
+ copy = orig;
+
+ ASSERT_EQ(copy.offset(Shape{4, 3, 6}, Index{1, 1, 1}), 0);
+}
+
+TEST(ADT_TENSOR_LAYOUT, move)
+{
+ nncc::core::ADT::tensor::Layout orig{offset_0};
+ nncc::core::ADT::tensor::Layout move{offset_1};
+
+ ASSERT_EQ(move.offset(Shape{4, 3, 6}, Index{1, 1, 1}), 1);
+
+ move = std::move(orig);
+
+ ASSERT_EQ(move.offset(Shape{4, 3, 6}, Index{1, 1, 1}), 0);
+}
diff --git a/compiler/angkor/src/ADT/tensor/LexicalLayout.cpp b/compiler/angkor/src/ADT/tensor/LexicalLayout.cpp
new file mode 100644
index 000000000..671c60cec
--- /dev/null
+++ b/compiler/angkor/src/ADT/tensor/LexicalLayout.cpp
@@ -0,0 +1,60 @@
+/*
+ * Copyright (c) 2018 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 "nncc/core/ADT/tensor/LexicalLayout.h"
+
+#include
+
+using nncc::core::ADT::tensor::Shape;
+using nncc::core::ADT::tensor::Index;
+
+// NOTE This forward declaration is introduced to minimize code diff
+static uint32_t lexical_offset(const Shape &shape, const Index &index)
+{
+ assert(shape.rank() > 0);
+ assert(shape.rank() == index.rank());
+
+ const uint32_t rank = shape.rank();
+
+ uint32_t res = index.at(0);
+
+ for (uint32_t axis = 1; axis < rank; ++axis)
+ {
+ res *= shape.dim(axis);
+ res += index.at(axis);
+ }
+
+ return res;
+}
+
+namespace nncc
+{
+namespace core
+{
+namespace ADT
+{
+namespace tensor
+{
+
+LexicalLayout::LexicalLayout() : Layout(lexical_offset)
+{
+ // DO NOTHING
+}
+
+} // namespace tensor
+} // namespace ADT
+} // namespace core
+} // namespace nncc
diff --git a/compiler/angkor/src/ADT/tensor/LexicalLayout.test.cpp b/compiler/angkor/src/ADT/tensor/LexicalLayout.test.cpp
new file mode 100644
index 000000000..8f9b7296f
--- /dev/null
+++ b/compiler/angkor/src/ADT/tensor/LexicalLayout.test.cpp
@@ -0,0 +1,54 @@
+/*
+ * Copyright (c) 2018 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 "nncc/core/ADT/tensor/LexicalLayout.h"
+
+#include
+
+#include
+
+TEST(ADT_TENSOR_LEXICAL_LAYOUT, last)
+{
+ const nncc::core::ADT::tensor::Shape shape{4, 3, 6};
+ const nncc::core::ADT::tensor::Index curr{1, 1, 1};
+ const nncc::core::ADT::tensor::Index next{1, 1, 2};
+
+ const nncc::core::ADT::tensor::LexicalLayout l;
+
+ ASSERT_EQ(l.offset(shape, curr) + 1, l.offset(shape, next));
+}
+
+TEST(ADT_TENSOR_LEXICAL_LAYOUT, lexical_middle)
+{
+ const nncc::core::ADT::tensor::Shape shape{4, 3, 6};
+ const nncc::core::ADT::tensor::Index curr{1, 1, 1};
+ const nncc::core::ADT::tensor::Index next{1, 2, 1};
+
+ const nncc::core::ADT::tensor::LexicalLayout l;
+
+ ASSERT_EQ(l.offset(shape, curr) + 6, l.offset(shape, next));
+}
+
+TEST(ADT_TENSOR_LEXICAL_LAYOUT, lexical_first)
+{
+ const nncc::core::ADT::tensor::Shape shape{4, 3, 6};
+ const nncc::core::ADT::tensor::Index curr{1, 1, 1};
+ const nncc::core::ADT::tensor::Index next{2, 1, 1};
+
+ const nncc::core::ADT::tensor::LexicalLayout l;
+
+ ASSERT_EQ(l.offset(shape, curr) + 6 * 3, l.offset(shape, next));
+}
diff --git a/compiler/angkor/src/ADT/tensor/Overlay.test.cpp b/compiler/angkor/src/ADT/tensor/Overlay.test.cpp
new file mode 100644
index 000000000..aacb5a9a1
--- /dev/null
+++ b/compiler/angkor/src/ADT/tensor/Overlay.test.cpp
@@ -0,0 +1,75 @@
+/*
+ * Copyright (c) 2018 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 "nncc/core/ADT/tensor/Overlay.h"
+#include "nncc/core/ADT/tensor/LexicalLayout.h"
+
+#include
+
+using nncc::core::ADT::tensor::Shape;
+using nncc::core::ADT::tensor::Index;
+using nncc::core::ADT::tensor::LexicalLayout;
+using nncc::core::ADT::tensor::Overlay;
+
+using nncc::core::ADT::tensor::make_overlay;
+
+TEST(ADT_TENSOR_OVERLAY, ctor)
+{
+ const Shape shape{2, 3};
+
+ int data[2 * 3] = {
+ 0,
+ };
+ auto view = make_overlay(shape, data);
+
+ ASSERT_EQ(view.shape(), shape);
+}
+
+TEST(ADT_TENSOR_OVERLAY, read)
+{
+ const Shape shape{2, 3};
+
+ int data[2 * 3] = {
+ 0,
+ };
+ const auto view = make_overlay(shape, data);
+
+ LexicalLayout layout{};
+
+ const Index index{1, 2};
+
+ ASSERT_EQ(data[layout.offset(shape, index)], 0);
+ data[layout.offset(shape, index)] = 2;
+ ASSERT_EQ(view.at(index), 2);
+}
+
+TEST(ADT_TENSOR_OVERLAY, access)
+{
+ const Shape shape{2, 3};
+
+ int data[2 * 3] = {
+ 0,
+ };
+ auto view = make_overlay(shape, data);
+
+ LexicalLayout layout{};
+
+ const Index index{1, 2};
+
+ ASSERT_EQ(data[layout.offset(shape, index)], 0);
+ view.at(index) = 4;
+ ASSERT_EQ(data[layout.offset(shape, index)], 4);
+}
diff --git a/compiler/angkor/src/ADT/tensor/Reader.cpp b/compiler/angkor/src/ADT/tensor/Reader.cpp
new file mode 100644
index 000000000..d79e66dac
--- /dev/null
+++ b/compiler/angkor/src/ADT/tensor/Reader.cpp
@@ -0,0 +1,21 @@
+/*
+ * Copyright (c) 2018 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 "nncc/core/ADT/tensor/Reader.h"
+
+// DO NOT REMOVE THIS FILE
+//
+// This file is introduced to check the self-completeness of 'Reader.h'
diff --git a/compiler/angkor/src/ADT/tensor/Shape.cpp b/compiler/angkor/src/ADT/tensor/Shape.cpp
new file mode 100644
index 000000000..fb39ba192
--- /dev/null
+++ b/compiler/angkor/src/ADT/tensor/Shape.cpp
@@ -0,0 +1,91 @@
+/*
+ * Copyright (c) 2018 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 "nncc/core/ADT/tensor/Shape.h"
+
+#include
+
+namespace nncc
+{
+namespace core
+{
+namespace ADT
+{
+namespace tensor
+{
+
+Shape::Shape(std::initializer_list &&l) : _dims{l}
+{
+ // DO NOTHING
+}
+
+uint32_t Shape::rank(void) const { return _dims.size(); }
+Shape &Shape::resize(uint32_t size)
+{
+ _dims.resize(size);
+ return *this;
+}
+
+uint32_t &Shape::dim(uint32_t axis) { return _dims.at(axis); }
+uint32_t Shape::dim(uint32_t axis) const { return _dims.at(axis); }
+
+Shape &Shape::squeeze(void)
+{
+ _dims.erase(std::remove(_dims.begin(), _dims.end(), 1), _dims.end());
+ return *this;
+}
+
+uint64_t num_elements(const Shape &shape)
+{
+ uint64_t res = 1;
+
+ for (uint32_t axis = 0; axis < shape.rank(); ++axis)
+ {
+ res *= shape.dim(axis);
+ }
+
+ return res;
+}
+
+Shape squeeze(const Shape &shape)
+{
+ Shape res{shape};
+ res.squeeze();
+ return res;
+}
+
+bool operator==(const Shape &lhs, const Shape &rhs)
+{
+ if (lhs.rank() != rhs.rank())
+ {
+ return false;
+ }
+
+ for (uint32_t axis = 0; axis < lhs.rank(); ++axis)
+ {
+ if (lhs.dim(axis) != rhs.dim(axis))
+ {
+ return false;
+ }
+ }
+
+ return true;
+}
+
+} // namespace tensor
+} // namespace ADT
+} // namespace core
+} // namespace nncc
diff --git a/compiler/angkor/src/ADT/tensor/Shape.test.cpp b/compiler/angkor/src/ADT/tensor/Shape.test.cpp
new file mode 100644
index 000000000..711ae3d40
--- /dev/null
+++ b/compiler/angkor/src/ADT/tensor/Shape.test.cpp
@@ -0,0 +1,185 @@
+/*
+ * Copyright (c) 2018 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 "nncc/core/ADT/tensor/Shape.h"
+
+#include
+
+TEST(ADT_TENSOR_SHAPE, ctor)
+{
+ nncc::core::ADT::tensor::Shape shape;
+
+ ASSERT_EQ(shape.rank(), 0);
+}
+
+TEST(ADT_TENSOR_SHAPE, ctor_initializer_list)
+{
+ nncc::core::ADT::tensor::Shape shape{1, 3, 5, 7};
+
+ ASSERT_EQ(shape.rank(), 4);
+
+ ASSERT_EQ(shape.dim(0), 1);
+ ASSERT_EQ(shape.dim(1), 3);
+ ASSERT_EQ(shape.dim(2), 5);
+ ASSERT_EQ(shape.dim(3), 7);
+}
+
+TEST(ADT_TENSOR_SHAPE, resize)
+{
+ nncc::core::ADT::tensor::Shape shape;
+
+ shape.resize(4);
+
+ ASSERT_EQ(shape.rank(), 4);
+}
+
+TEST(ADT_TENSOR_SHAPE, dim)
+{
+ nncc::core::ADT::tensor::Shape shape;
+
+ shape.resize(4);
+
+ uint32_t dims[4] = {3, 5, 2, 7};
+
+ for (uint32_t axis = 0; axis < 4; ++axis)
+ {
+ shape.dim(axis) = dims[axis];
+ ASSERT_EQ(shape.dim(axis), dims[axis]);
+ }
+}
+
+TEST(ADT_TENSOR_SHAPE, copy)
+{
+ const nncc::core::ADT::tensor::Shape original{3, 5, 2, 7};
+ const nncc::core::ADT::tensor::Shape copied{original};
+
+ ASSERT_EQ(original.rank(), copied.rank());
+
+ for (uint32_t axis = 0; axis < 4; ++axis)
+ {
+ ASSERT_EQ(original.dim(axis), copied.dim(axis));
+ }
+}
+
+TEST(ADT_TENSOR_SHAPE, num_elements_rank_0)
+{
+ using nncc::core::ADT::tensor::Shape;
+ using nncc::core::ADT::tensor::num_elements;
+
+ Shape rank_0_shape;
+
+ ASSERT_EQ(num_elements(rank_0_shape), 1);
+}
+
+TEST(ADT_TENSOR_SHAPE, num_elements_zero)
+{
+ using nncc::core::ADT::tensor::Shape;
+ using nncc::core::ADT::tensor::num_elements;
+
+ ASSERT_EQ(num_elements(Shape{0, 0, 0, 0}), 0);
+}
+
+TEST(ADT_TENSOR_SHAPE, num_elements_nonzero)
+{
+ using nncc::core::ADT::tensor::Shape;
+ using nncc::core::ADT::tensor::num_elements;
+
+ ASSERT_EQ(num_elements(Shape{2, 3}), 6);
+}
+
+TEST(ADT_TENSOR_SHAPE, num_elements_nulldim)
+{
+ using nncc::core::ADT::tensor::Shape;
+ using nncc::core::ADT::tensor::num_elements;
+
+ ASSERT_EQ(num_elements(Shape{2, 0, 3}), 0);
+}
+
+TEST(ADT_TENSOR_SHAPE, squeeze_neg)
+{
+ using nncc::core::ADT::tensor::Shape;
+ using nncc::core::ADT::tensor::squeeze;
+
+ auto squeezed = squeeze(Shape{3, 5, 2});
+
+ ASSERT_EQ(squeezed.rank(), 3);
+ ASSERT_EQ(squeezed.dim(0), 3);
+ ASSERT_EQ(squeezed.dim(1), 5);
+ ASSERT_EQ(squeezed.dim(2), 2);
+}
+
+TEST(ADT_TENSOR_SHAPE, squeeze_neg_0)
+{
+ using nncc::core::ADT::tensor::Shape;
+ using nncc::core::ADT::tensor::squeeze;
+
+ auto squeezed = squeeze(Shape{3, 0, 2});
+
+ ASSERT_EQ(squeezed.rank(), 3);
+ ASSERT_EQ(squeezed.dim(0), 3);
+ ASSERT_EQ(squeezed.dim(1), 0);
+ ASSERT_EQ(squeezed.dim(2), 2);
+}
+
+TEST(ADT_TENSOR_SHAPE, squeeze_pos)
+{
+ using nncc::core::ADT::tensor::Shape;
+ using nncc::core::ADT::tensor::squeeze;
+
+ auto squeezed = squeeze(Shape{3, 1, 2});
+
+ ASSERT_EQ(squeezed.rank(), 2);
+ ASSERT_EQ(squeezed.dim(0), 3);
+ ASSERT_EQ(squeezed.dim(1), 2);
+}
+
+TEST(ADT_TENSOR_SHAPE, squeeze_nested)
+{
+ using nncc::core::ADT::tensor::Shape;
+ using nncc::core::ADT::tensor::squeeze;
+
+ Shape shape{3, 1, 2};
+
+ shape.squeeze().squeeze();
+
+ ASSERT_EQ(shape.rank(), 2);
+ ASSERT_EQ(shape.dim(0), 3);
+ ASSERT_EQ(shape.dim(1), 2);
+}
+
+TEST(ADT_TENSOR_SHAPE, eq_negative_on_unmatched_rank)
+{
+ const nncc::core::ADT::tensor::Shape left{1, 1, 1};
+ const nncc::core::ADT::tensor::Shape right{1, 1, 1, 1};
+
+ ASSERT_FALSE(left == right);
+}
+
+TEST(ADT_TENSOR_SHAPE, eq_negative_on_unmatched_dim)
+{
+ const nncc::core::ADT::tensor::Shape left{2, 3};
+ const nncc::core::ADT::tensor::Shape right{2, 4};
+
+ ASSERT_FALSE(left == right);
+}
+
+TEST(ADT_TENSOR_SHAPE, eq_positive)
+{
+ const nncc::core::ADT::tensor::Shape left{2, 3};
+ const nncc::core::ADT::tensor::Shape right{2, 3};
+
+ ASSERT_TRUE(left == right);
+}
diff --git a/compiler/angkor/src/TensorIndex.test.cpp b/compiler/angkor/src/TensorIndex.test.cpp
new file mode 100644
index 000000000..68cf3917a
--- /dev/null
+++ b/compiler/angkor/src/TensorIndex.test.cpp
@@ -0,0 +1,87 @@
+/*
+ * Copyright (c) 2019 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 "angkor/TensorIndex.h"
+
+#include
+
+TEST(TensorIndexTest, ctor)
+{
+ angkor::TensorIndex index;
+
+ ASSERT_EQ(index.rank(), 0);
+}
+
+TEST(TensorIndexTest, ctor_initializer_list)
+{
+ const angkor::TensorIndex index{1, 3, 5, 7};
+
+ ASSERT_EQ(index.rank(), 4);
+
+ ASSERT_EQ(index.at(0), 1);
+ ASSERT_EQ(index.at(1), 3);
+ ASSERT_EQ(index.at(2), 5);
+ ASSERT_EQ(index.at(3), 7);
+}
+
+TEST(TensorIndexTest, resize)
+{
+ angkor::TensorIndex index;
+
+ index.resize(4);
+
+ ASSERT_EQ(index.rank(), 4);
+}
+
+TEST(TensorIndexTest, at)
+{
+ angkor::TensorIndex index;
+
+ index.resize(4);
+
+ uint32_t indices[4] = {3, 5, 2, 7};
+
+ for (uint32_t axis = 0; axis < 4; ++axis)
+ {
+ index.at(axis) = indices[axis];
+ ASSERT_EQ(index.at(axis), indices[axis]);
+ }
+}
+
+TEST(TensorIndexTest, copy)
+{
+ const angkor::TensorIndex original{3, 5, 2, 7};
+ const angkor::TensorIndex copied{original};
+
+ ASSERT_EQ(original.rank(), copied.rank());
+
+ for (uint32_t axis = 0; axis < 4; ++axis)
+ {
+ ASSERT_EQ(original.at(axis), copied.at(axis));
+ }
+}
+
+TEST(TensorIndexTest, fill)
+{
+ angkor::TensorIndex index{1, 6};
+
+ index.fill(3);
+
+ ASSERT_EQ(index.rank(), 2);
+
+ ASSERT_EQ(index.at(0), 3);
+ ASSERT_EQ(index.at(1), 3);
+}
diff --git a/compiler/angkor/src/TensorShape.test.cpp b/compiler/angkor/src/TensorShape.test.cpp
new file mode 100644
index 000000000..5e6766a96
--- /dev/null
+++ b/compiler/angkor/src/TensorShape.test.cpp
@@ -0,0 +1,99 @@
+/*
+ * Copyright (c) 2019 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 "angkor/TensorShape.h"
+
+#include
+
+TEST(TensorShapeTest, ctor)
+{
+ angkor::TensorShape shape;
+
+ ASSERT_EQ(shape.rank(), 0);
+}
+
+TEST(TensorShapeTest, ctor_initializer_list)
+{
+ angkor::TensorShape shape{1, 3, 5, 7};
+
+ ASSERT_EQ(shape.rank(), 4);
+
+ ASSERT_EQ(shape.dim(0), 1);
+ ASSERT_EQ(shape.dim(1), 3);
+ ASSERT_EQ(shape.dim(2), 5);
+ ASSERT_EQ(shape.dim(3), 7);
+}
+
+TEST(TensorShapeTest, resize)
+{
+ angkor::TensorShape shape;
+
+ shape.resize(4);
+
+ ASSERT_EQ(shape.rank(), 4);
+}
+
+TEST(TensorShapeTest, dim)
+{
+ angkor::TensorShape shape;
+
+ shape.resize(4);
+
+ uint32_t dims[4] = {3, 5, 2, 7};
+
+ for (uint32_t axis = 0; axis < 4; ++axis)
+ {
+ shape.dim(axis) = dims[axis];
+ ASSERT_EQ(shape.dim(axis), dims[axis]);
+ }
+}
+
+TEST(TensorShapeTest, copy)
+{
+ const angkor::TensorShape original{3, 5, 2, 7};
+ const angkor::TensorShape copied{original};
+
+ ASSERT_EQ(original.rank(), copied.rank());
+
+ for (uint32_t axis = 0; axis < 4; ++axis)
+ {
+ ASSERT_EQ(original.dim(axis), copied.dim(axis));
+ }
+}
+
+TEST(TensorShapeTest, eq_negative_on_unmatched_rank)
+{
+ const angkor::TensorShape left{1, 1, 1};
+ const angkor::TensorShape right{1, 1, 1, 1};
+
+ ASSERT_FALSE(left == right);
+}
+
+TEST(TensorShapeTest, eq_negative_on_unmatched_dim)
+{
+ const angkor::TensorShape left{2, 3};
+ const angkor::TensorShape right{2, 4};
+
+ ASSERT_FALSE(left == right);
+}
+
+TEST(TensorShapeTest, eq_positive)
+{
+ const angkor::TensorShape left{2, 3};
+ const angkor::TensorShape right{2, 3};
+
+ ASSERT_TRUE(left == right);
+}
diff --git a/compiler/ann-api/CMakeLists.txt b/compiler/ann-api/CMakeLists.txt
new file mode 100644
index 000000000..d2c45f9f0
--- /dev/null
+++ b/compiler/ann-api/CMakeLists.txt
@@ -0,0 +1,2 @@
+add_library(ann_api INTERFACE)
+target_include_directories(ann_api INTERFACE include)
diff --git a/compiler/ann-api/include/.FORMATDENY b/compiler/ann-api/include/.FORMATDENY
new file mode 100644
index 000000000..e69de29bb
diff --git a/compiler/ann-api/include/NeuralNetworks.h b/compiler/ann-api/include/NeuralNetworks.h
new file mode 100644
index 000000000..606156927
--- /dev/null
+++ b/compiler/ann-api/include/NeuralNetworks.h
@@ -0,0 +1,2075 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * 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.
+ */
+
+/**
+ * @addtogroup NeuralNetworks
+ * @{
+ */
+
+/**
+ * @file NeuralNetworks.h
+ */
+
+#ifndef ANDROID_ML_NN_RUNTIME_NEURAL_NETWORKS_H
+#define ANDROID_ML_NN_RUNTIME_NEURAL_NETWORKS_H
+
+/******************************************************************
+ *
+ * IMPORTANT NOTICE:
+ *
+ * This file is part of Android's set of stable system headers
+ * exposed by the Android NDK (Native Development Kit).
+ *
+ * Third-party source AND binary code relies on the definitions
+ * here to be FROZEN ON ALL UPCOMING PLATFORM RELEASES.
+ *
+ * - DO NOT MODIFY ENUMS (EXCEPT IF YOU ADD NEW 32-BIT VALUES)
+ * - DO NOT MODIFY CONSTANTS OR FUNCTIONAL MACROS
+ * - DO NOT CHANGE THE SIGNATURE OF FUNCTIONS IN ANY WAY
+ * - DO NOT CHANGE THE LAYOUT OR SIZE OF STRUCTURES
+ */
+
+#if __ANDROID_API__ >= __ANDROID_API_O_MR1__
+
+#include
+#include
+#include
+
+__BEGIN_DECLS
+
+/**
+ * Operand types.
+ *
+ * The type of operands that can be added to a model.
+ *
+ * Although we define many types, most operators accept just a few
+ * types. Most used are {@link ANEURALNETWORKS_TENSOR_FLOAT32},
+ * {@link ANEURALNETWORKS_TENSOR_QUANT8_ASYMM},
+ * and {@link ANEURALNETWORKS_INT32}.
+ */
+typedef enum {
+ /** The following entries are used to declare scalars. */
+
+ /** A 32 bit floating point scalar value. */
+ ANEURALNETWORKS_FLOAT32 = 0,
+ /** A signed 32 bit integer scalar value. */
+ ANEURALNETWORKS_INT32 = 1,
+ /** An unsigned 32 bit integer scalar value. */
+ ANEURALNETWORKS_UINT32 = 2,
+
+ /** The following entries are used to declare tensors. */
+
+ /** A tensor of 32 bit floating point values. */
+ ANEURALNETWORKS_TENSOR_FLOAT32 = 3,
+ /** A tensor of 32 bit integer values. */
+ ANEURALNETWORKS_TENSOR_INT32 = 4,
+ /** A tensor of 8 bit integers that represent real numbers.
+ *
+ * Attached to this tensor are two numbers that can be used to convert
+ * the 8 bit integer to the real value and vice versa. These two numbers are:
+ * - scale: a 32 bit non-negative floating point value.
+ * - zeroPoint: an 32 bit integer, in range [0, 255].
+ *
+ * The formula is:
+ * real_value = (integer_value - zeroPoint) * scale.
+ */
+ ANEURALNETWORKS_TENSOR_QUANT8_ASYMM = 5,
+} OperandCode;
+
+/**
+ * Operation types.
+ *
+ * The type of operations that can be added to a model.
+ */
+typedef enum {
+ /** Adds two tensors, element-wise.
+ *
+ * Takes two input tensors of identical type and compatible dimensions. The output
+ * is the sum of both input tensors, optionally modified by an activation function.
+ *
+ * Two dimensions are compatible when:
+ * 1. they are equal, or
+ * 2. one of them is 1
+ *
+ * The size of the output is the maximum size along each dimension of the input operands.
+ * It starts with the trailing dimensions, and works its way forward.
+ *
+ * Example:
+ *
+ * input1.dimension = {4, 1, 2}
+ * input2.dimension = {5, 4, 3, 1}
+ * output.dimension = {5, 4, 3, 2}
+ *
+ * Supported tensor types:
+ * * {@link ANEURALNETWORKS_TENSOR_FLOAT32}
+ * * {@link ANEURALNETWORKS_TENSOR_QUANT8_ASYMM}
+ *
+ * Supported tensor rank: up to 4
+ *
+ * Inputs:
+ * * 0: A tensor.
+ * * 1: A tensor of the same type, and compatible dimensions as input0.
+ * * 2: An INT32 value, and has to be one of the {@link FuseCode} values.
+ * Specifies the activation to invoke on the result of each addition.
+ *
+ * Outputs:
+ * * 0: The sum, a tensor of the same type as input0.
+ */
+ ANEURALNETWORKS_ADD = 0,
+
+ /** Performs a 2-D average pooling operation.
+ *
+ * The output dimensions are functions of the filter dimensions, stride, and padding.
+ *
+ * The values in the output tensor are computed as:
+ *
+ * output[batch, row, col, channel] =
+ * sum_{i, j}(input[batch, row + i, col + j, channel]) / sum(1)
+ *
+ * Supported tensor types:
+ * * {@link ANEURALNETWORKS_TENSOR_FLOAT32}
+ * * {@link ANEURALNETWORKS_TENSOR_QUANT8_ASYMM}
+ *
+ * Supported tensor rank: 4, with "NHWC" (i.e., Num_samples, Height, Width, and Channels)
+ * data layout.
+ *
+ * Both explicit padding and implicit padding are supported.
+ *
+ * Inputs (explicit padding):
+ * * 0: A 4-D tensor, of shape [batches, height, width, depth], specifying the input.
+ * * 1: An INT32 value, specifying the padding on the left, in the ‘width’ dimension.
+ * * 2: An INT32 value, specifying the padding on the right,in the ‘width’ dimension.
+ * * 3: An INT32 value, specifying the padding on the top, in the ‘height’ dimension.
+ * * 4: An INT32 value, specifying the padding on the bottom, in the ‘height’ dimension.
+ * * 5: An INT32 value, specifying the stride when walking through input
+ * in the ‘width’ dimension.
+ * * 6: An INT32 value, specifying the stride when walking through input
+ * in the ‘height’ dimension.
+ * * 7: An INT32 value, specifying the filter width.
+ * * 8: An INT32 value, specifying the filter height.
+ * * 9: An INT32 value, and has to be one of the {@link FuseCode} values.
+ * Specifies the activation to invoke on the result of each addition.
+ *
+ * Inputs (implicit padding):
+ * * 0: A 4-D tensor, of shape [batches, height, width, depth], specifying the input.
+ * * 1: An INT32 value, specifying the implicit padding scheme, has to be one of the
+ * {@link PaddingCode} values.
+ * * 2: An INT32 value, specifying the stride when walking through input
+ * in the ‘width’ dimension.
+ * * 3: An INT32 value, specifying the stride when walking through input
+ * in the ‘height’ dimension.
+ * * 4: An INT32 value, specifying the filter width.
+ * * 5: An INT32 value, specifying the filter height.
+ * * 6: An INT32 value, and has to be one of the {@link FuseCode} values.
+ * Specifies the activation to invoke on the result of each addition.
+ *
+ * Outputs:
+ * * 0: The output 4-D tensor, of shape [batches, out_height, out_width, depth].
+ */
+ ANEURALNETWORKS_AVERAGE_POOL_2D = 1,
+
+ /** Concatenates the input tensors along the given dimension.
+ *
+ * The input tensors must have identical type and the same dimensions except the
+ * dimension along the concatenation axis.
+ *
+ * Supported tensor types:
+ * * {@link ANEURALNETWORKS_TENSOR_FLOAT32}
+ * * {@link ANEURALNETWORKS_TENSOR_QUANT8_ASYMM}
+ *
+ * Supported tensor rank: up to 4
+ *
+ * Inputs:
+ * * 0 ~ n-1: The list of n input tensors, of shape [D0, D1, ..., Daxis(i), ..., Dm].
+ * For inputs of {@link ANEURALNETWORKS_TENSOR_QUANT8_ASYMM} type, all
+ * input tensors must have the same scale and zeroPoint.
+ * * n: An INT32 value, specifying the concatenation axis.
+ *
+ * Outputs:
+ * * 0: The output, a tensor of the same type as the input tensors.
+ * The output shape is [D0, D1, ..., sum(Daxis(i)), ..., Dm].
+ */
+ ANEURALNETWORKS_CONCATENATION = 2,
+
+ /** Performs an 2-D convolution operation.
+ *
+ * The CONV_2D op sweeps a 2-D filter that can mix channels together over a batch of
+ * images, applying the filter to each window of each image of the appropriate size.
+ *
+ * The output dimensions are functions of the filter dimensions, stride, and padding.
+ *
+ * The values in the output tensor are computed as:
+ *
+ * output[batch, row, col, channel] =
+ * sum_{i, j} (
+ * input[batch, row + i, col + j, k] *
+ * filter[channel, row + i, col + j, k] +
+ * bias[channel]
+ * )
+ *
+ * Supported tensor types:
+ * * {@link ANEURALNETWORKS_TENSOR_FLOAT32}
+ * * {@link ANEURALNETWORKS_TENSOR_QUANT8_ASYMM}
+ *
+ * Supported tensor rank: 4, with "NHWC" data layout.
+ *
+ * Both explicit padding and implicit padding are supported.
+ *
+ * Inputs (explicit padding):
+ * * 0: A 4-D tensor, of shape [batches, height, width, depth_in], specifying the input.
+ * * 1: A 4-D tensor, of shape [depth_out, filter_height, filter_width, depth_in],
+ * specifying the filter.
+ * * 2: A 1-D tensor, of shape [depth_out], specifying the bias.
+ * For input tensor of {@link ANEURALNETWORKS_TENSOR_FLOAT32} type, the bias should
+ * also be of {@link ANEURALNETWORKS_TENSOR_FLOAT32}.
+ * For input tensor of {@link ANEURALNETWORKS_TENSOR_QUANT8_ASYMM} type, the bias
+ * should be of {@link ANEURALNETWORKS_TENSOR_INT32}, with zeroPoint of 0 and
+ * bias_scale == input_scale * filter_scale.
+ * * 3: An INT32 value, specifying the padding on the left, in the ‘width’ dimension.
+ * * 4: An INT32 value, specifying the padding on the right,in the ‘width’ dimension.
+ * * 5: An INT32 value, specifying the padding on the top, in the ‘height’ dimension.
+ * * 6: An INT32 value, specifying the padding on the bottom, in the ‘height’ dimension.
+ * * 7: An INT32 value, specifying the stride when walking through input
+ * in the ‘width’ dimension.
+ * * 8: An INT32 value, specifying the stride when walking through input
+ * in the ‘height’ dimension.
+ * * 9: An INT32 value, and has to be one of the {@link FuseCode} values.
+ * Specifies the activation to invoke on the result of each addition.
+ *
+ * Inputs (implicit padding):
+ * * 0: A 4-D tensor, of shape [batches, height, width, depth_in], specifying the input.
+ * * 1: A 4-D tensor, of shape [depth_out, filter_height, filter_width, depth_in],
+ * specifying the filter.
+ * * 2: A 1-D tensor, of shape [depth_out], specifying the bias.
+ * For input tensor of {@link ANEURALNETWORKS_TENSOR_FLOAT32} type, the bias should
+ * also be of {@link ANEURALNETWORKS_TENSOR_FLOAT32}.
+ * For input tensor of {@link ANEURALNETWORKS_TENSOR_QUANT8_ASYMM} type, the bias
+ * should be of {@link ANEURALNETWORKS_TENSOR_INT32}, with zeroPoint of 0 and
+ * bias_scale == input_scale * filter_scale.
+ * * 3: An INT32 value, specifying the implicit padding scheme, has to be one of the
+ * {@link PaddingCode} values.
+ * * 4: An INT32 value, specifying the stride when walking through input
+ * in the ‘width’ dimension.
+ * * 5: An INT32 value, specifying the stride when walking through input
+ * in the ‘height’ dimension.
+ * * 6: An INT32 value, and has to be one of the {@link FuseCode} values.
+ * Specifies the activation to invoke on the result of each addition.
+ *
+ * Outputs:
+ * * 0: The output 4-D tensor, of shape [batches, out_height, out_width, depth_out].
+ * For output tensor of {@link ANEURALNETWORKS_TENSOR_QUANT8_ASYMM} type, the following
+ * condition must be satisfied: output_scale > input_scale * filter_scale.
+ */
+ ANEURALNETWORKS_CONV_2D = 3,
+
+ /** Performs a depthwise 2-D convolution operation.
+ *
+ * Given an input tensor of shape [batches, height, width, depth_in] and a filter
+ * tensor of shape [1, filter_height, filter_width, depth_out] containing
+ * depth_out convolutional filters of depth 1, DEPTHWISE_CONV applies a different
+ * filter to each input channel (expanding from 1 channel to channel_multiplier channels
+ * for each), then concatenates the results together.
+ *
+ * The output has depth_out = depth_in * depth_multiplier channels.
+ * The output dimensions are functions of the filter dimensions, stride, and padding.
+ *
+ * The values in the output tensor are computed as:
+ *
+ * output[b, i, j, k * channel_multiplier + q] =
+ * sum_{di, dj} (
+ * input[b, strides[1] * i + di, strides[2] * j + dj, k] *
+ * filter[1, di, dj, k * channel_multiplier + q]
+ * )
+ *
+ * Supported tensor types:
+ * * {@link ANEURALNETWORKS_TENSOR_FLOAT32}
+ * * {@link ANEURALNETWORKS_TENSOR_QUANT8_ASYMM}
+ *
+ * Supported tensor rank: 4, with "NHWC" data layout.
+ *
+ * Both explicit padding and implicit padding are supported.
+ *
+ * Inputs (explicit padding):
+ * * 0: A 4-D tensor, of shape [batches, height, width, depth_in], specifying the input.
+ * * 1: A 4-D tensor, of shape [1, filter_height, filter_width, depth_out],
+ * specifying the filter.
+ * * 2: A 1-D tensor, of shape [depth_out], specifying the bias.
+ * For input tensor of {@link ANEURALNETWORKS_TENSOR_FLOAT32} type, the bias should
+ * also be of {@link ANEURALNETWORKS_TENSOR_FLOAT32}.
+ * For input tensor of {@link ANEURALNETWORKS_TENSOR_QUANT8_ASYMM} type, the bias
+ * should be of {@link ANEURALNETWORKS_TENSOR_INT32}, with zeroPoint of 0 and
+ * bias_scale == input_scale * filter_scale.
+ * * 3: An INT32 value, specifying the padding on the left, in the ‘width’ dimension.
+ * * 4: An INT32 value, specifying the padding on the right,in the ‘width’ dimension.
+ * * 5: An INT32 value, specifying the padding on the top, in the ‘height’ dimension.
+ * * 6: An INT32 value, specifying the padding on the bottom, in the ‘height’ dimension.
+ * * 7: An INT32 value, specifying the stride when walking through input
+ * in the ‘width’ dimension.
+ * * 8: An INT32 value, specifying the stride when walking through input
+ * in the ‘height’ dimension.
+ * * 9: An INT32 value, specifying the depthwise multiplier.
+ * * 10: An INT32 value, and has to be one of the {@link FuseCode} values.
+ * Specifies the activation to invoke on the result of each addition.
+ *
+ * Inputs (explicit padding):
+ * * 0: A 4-D tensor, of shape [batches, height, width, depth_in], specifying the input.
+ * * 1: A 4-D tensor, of shape [1, filter_height, filter_width, depth_out],
+ * specifying the filter.
+ * * 2: A 1-D tensor, of shape [depth_out], specifying the bias.
+ * For input tensor of {@link ANEURALNETWORKS_TENSOR_FLOAT32} type, the bias should
+ * also be of {@link ANEURALNETWORKS_TENSOR_FLOAT32}.
+ * For input tensor of {@link ANEURALNETWORKS_TENSOR_QUANT8_ASYMM} type, the bias
+ * should be of {@link ANEURALNETWORKS_TENSOR_INT32}, with zeroPoint of 0 and
+ * bias_scale == input_scale * filter_scale.
+ * * 3: An INT32 value, specifying the implicit padding scheme, has to be one of the
+ * {@link PaddingCode} values.
+ * * 4: An INT32 value, specifying the stride when walking through input
+ * in the ‘width’ dimension.
+ * * 5: An INT32 value, specifying the stride when walking through input
+ * in the ‘height’ dimension.
+ * * 6: An INT32 value, specifying the depthwise multiplier.
+ * * 7: An INT32 value, and has to be one of the {@link FuseCode} values.
+ * Specifies the activation to invoke on the result of each addition.
+ *
+ * Outputs:
+ * * 0: The output 4-D tensor, of shape [batches, out_height, out_width, depth_out].
+ * For output tensor of {@link ANEURALNETWORKS_TENSOR_QUANT8_ASYMM} type, the following
+ * condition must be satisfied: output_scale > input_scale * filter_scale.
+ */
+ ANEURALNETWORKS_DEPTHWISE_CONV_2D = 4,
+
+ /** Rearranges data from depth into blocks of spatial data.
+ *
+ * More specifically, this op outputs a copy of the input tensor where values from
+ * the depth dimension are moved in spatial blocks to the height and width dimensions.
+ * The value block_size indicates the input block size and how the data is moved.
+ *
+ * Chunks of data of size block_size * block_size from depth are rearranged into
+ * non-overlapping blocks of size block_size x block_size.
+ *
+ * The width of the output tensor is input_depth * block_size, whereas the height is
+ * input_height * block_size.
+ * The depth of the input tensor must be divisible by block_size * block_size
+ *
+ * Supported tensor types:
+ * * {@link ANEURALNETWORKS_TENSOR_FLOAT32}
+ * * {@link ANEURALNETWORKS_TENSOR_QUANT8_ASYMM}
+ *
+ * Supported tensor rank: 4, with "NHWC" data layout.
+ *
+ * Inputs:
+ * * 0: A 4-D tensor, of shape [batches, height, width, depth_in], specifying the input.
+ * * 1: An INT32 value, specifying the block_size. block_size must be >=1 and
+ * block_size * block_size must be a divisor of the input depth.
+ *
+ * Outputs:
+ * * 0: The output 4-D tensor, of shape [batch, height*block_size, width*block_size,
+ * depth/(block_size*block_size)].
+ */
+ ANEURALNETWORKS_DEPTH_TO_SPACE = 5,
+
+ /** Dequantizes the input tensor.
+ *
+ * The formula is:
+ *
+ * output = (input - zeroPoint) * scale.
+ *
+ * Supported tensor types:
+ * * {@link ANEURALNETWORKS_TENSOR_QUANT8_ASYMM}
+ *
+ * Supported tensor rank: up to 4
+ *
+ * Inputs:
+ * * 0: A tensor of type {@link ANEURALNETWORKS_TENSOR_QUANT8_ASYMM}.
+ *
+ * Outputs:
+ * * 0: The output tensor of same shape as input0, but with type
+ * {@link ANEURALNETWORKS_TENSOR_FLOAT32}.
+ */
+ ANEURALNETWORKS_DEQUANTIZE = 6,
+
+ /** Looks up sub-tensors in the input tensor.
+ *
+ * This operator takes for input a tensor of values (Values) and
+ * a one-dimensional tensor of selection indices (Lookups).
+ * The output tensor is the concatenation of sub-tensors of Values as
+ * selected by Lookups.
+ *
+ * Think of Values as being sliced along its first dimension:
+ * The entries in Lookups select which slices are concatenated together
+ * to create the output tensor.
+ *
+ * For example, if Values has shape of [40, 200, 300] and
+ * Lookups has shape of [3], we would expect all three values
+ * found in Lookups to be between 0 and 39. The resulting tensor will
+ * have shape of [3, 200, 300].
+ *
+ * If a value in Lookups is out of bounds, the operation will fail
+ * and an error will be reported.
+ *
+ * Inputs:
+ * * 0: Lookups. A 1-D tensor of {@link ANEURALNETWORKS_TENSOR_INT32} type.
+ * The values are indices into the first dimension of Values.
+ * * 1: Values. An n-D tensor, where n >= 2, from which sub-tensors are
+ * extracted.
+ *
+ * Output:
+ * * 0: A n-D tensor with the same rank and shape as the Values
+ * tensor, except for the first dimension which has the same size
+ * as Lookups' only dimension.
+ */
+ ANEURALNETWORKS_EMBEDDING_LOOKUP = 7,
+
+ /** Computes element-wise floor() on the input tensor.
+ *
+ * Supported tensor types:
+ * * {@link ANEURALNETWORKS_TENSOR_FLOAT32}
+ *
+ * Supported tensor rank: up to 4
+ *
+ * Inputs:
+ * * 0: A tensor.
+ *
+ * Outputs:
+ * * 0: The output tensor, of the same type and dimensions as the input tensor.
+ */
+ ANEURALNETWORKS_FLOOR = 8,
+
+ /** Denotes a fully (densely) connected layer, which connects all elements in the input
+ * tensor with each element in the output tensor.
+ *
+ * This layer implements the operation:
+ *
+ * outputs = activation(inputs * weights’ + bias)
+ *
+ * Supported tensor types:
+ * * {@link ANEURALNETWORKS_TENSOR_FLOAT32}
+ * * {@link ANEURALNETWORKS_TENSOR_QUANT8_ASYMM}
+ *
+ * Supported tensor rank: up to 4.
+ *
+ * Inputs:
+ * * 0: A tensor, specifying the input. If rank is greater than 2, then it gets flattened to
+ * a 2-D Tensor. The 2-D Tensor is handled as if dimensions corresponded to shape
+ * [batch_size, input_size], where “batch_size” corresponds to the batching dimension,
+ * and “input_size” is the size of the input.
+ * * 1: A 2-D tensor, specifying the weights, of shape [num_units, input_size], where
+ * "num_units" corresponds to the number of output nodes.
+ * * 2: A 1-D tensor, of shape [num_units], specifying the bias.
+ * For input tensor of {@link ANEURALNETWORKS_TENSOR_FLOAT32} type, the bias should
+ * also be of {@link ANEURALNETWORKS_TENSOR_FLOAT32}.
+ * For input tensor of {@link ANEURALNETWORKS_TENSOR_QUANT8_ASYMM} type, the bias
+ * should be of {@link ANEURALNETWORKS_TENSOR_INT32}, with zeroPoint of 0 and
+ * bias_scale == input_scale * filter_scale.
+ * * 3: An INT32 value, and has to be one of the {@link FuseCode} values.
+ * Specifies the activation to invoke on the result of each addition.
+ *
+ * Outputs:
+ * * 0: The output tensor, of shape [batch_size, num_units].
+ * For output tensor of {@link ANEURALNETWORKS_TENSOR_QUANT8_ASYMM} type, the following
+ * condition must be satisfied: output_scale > input_scale * filter_scale.
+ */
+ ANEURALNETWORKS_FULLY_CONNECTED = 9,
+
+ /** Looks up sub-tensors in the input tensor using a key-value map.
+ *
+ * This operator takes for input a tensor of values (Values),
+ * a one-dimensional tensor of selection values (Lookups) and
+ * a one-dimensional tensor that maps these values to Values
+ * indexes. The output tensor is the concatenation of sub-tensors of
+ * Values as selected by Lookups via Keys.
+ *
+ * Think of Values as being sliced along its outer-most dimension.
+ * The output is a concatenation of selected slices, with one slice
+ * for each entry of Lookups. The slice selected is the one at the
+ * same index as the Maps entry that matches the value in Lookups.
+ *
+ * For a hit, the corresponding sub-tensor of Values is included
+ * in the Output tensor. For a miss, the corresponding sub-tensor in
+ * Output will have zero values.
+ *
+ * For example, if Values has shape of [40, 200, 300],
+ * Keys should have a shape of [40]. If Lookups tensor has shape
+ * of [3], we're concatenating three slices, so the resulting tensor
+ * will have the shape of [3, 200, 300]. If the first entry in
+ * Lookups has the value 123456, we'll look for that value in Keys tensor.
+ * If the sixth entry of Keys contains 123456, we'll select the sixth
+ * slice of Values. If no entry in Keys has 123456, a slice of zeroes
+ * will be concatenated.
+ *
+ * Inputs:
+ * * 0: Lookups. A 1-D {@link ANEURALNETWORKS_TENSOR_INT32} tensor with shape [ k ].
+ * * 1: Keys. A 1-D {@link ANEURALNETWORKS_TENSOR_INT32} tensor with shape [ n ];
+ * Keys and Values pair represent a map, i.e., the ith element
+ * in Keys (Keys[i]) is the key to select the ith sub-tensor
+ * in Values (Values[i]), where 0 <= i <= n-1.
+ * Keys tensor *MUST* be sorted in ascending order.
+ * * 2: Values. A tensor with shape of [ n, … ]; i.e., the first dimension must be n.
+ *
+ * Outputs:
+ * * 0: Output. A tensor with shape [ k …].
+ * * 1: Hits. A boolean tensor with shape [ k ] indicates whether the lookup
+ * hits (True) or not (False).
+ * Stored as {@link ANEURALNETWORKS_TENSOR_QUANT8_ASYMM} with offset 0 and scale 1.0f.
+ * A non-zero byte represents True, a hit. A zero indicates otherwise.
+ */
+ ANEURALNETWORKS_HASHTABLE_LOOKUP = 10,
+
+ /** Applies L2 normalization along the depth dimension.
+ *
+ * The values in the output tensor are computed as:
+ *
+ * output[batch, row, col, channel] =
+ * input[batch, row, col, channel] /
+ * sqrt(sum_{c} pow(input[batch, row, col, c], 2))
+ *
+ * For input tensor with more dimensions, independently normalizes each 1-D slice along dimension dim.
+ *
+ * Supported tensor types:
+ * * {@link ANEURALNETWORKS_TENSOR_FLOAT32}
+ *
+ * Supported tensor rank: 4, with "NHWC" data layout (i.e., Num_samples, Height, Width, and Channels).
+ *
+ * Inputs:
+ * * 0: A 4-D tensor, of shape [batches, height, width, depth].
+ *
+ * Outputs:
+ * * 0: The output 4-D tensor, of shape [batches, out_height, out_width, depth].
+ */
+ ANEURALNETWORKS_L2_NORMALIZATION = 11,
+
+ /** Performs an 2-D L2 pooling operation.
+ *
+ * The output dimensions are functions of the filter dimensions, stride, and padding.
+ *
+ * The values in the output tensor are computed as:
+ *
+ * output[batch, row, col, channel] =
+ * sqrt(sum_{i, j} pow(input[batch, row + i, col + j, channel], 2) / sum(1))
+ *
+ * Supported tensor types:
+ * * {@link ANEURALNETWORKS_TENSOR_FLOAT32}
+ *
+ * Supported tensor rank: 4, with "NHWC" data layout.
+ *
+ * Both explicit padding and implicit padding are supported.
+ *
+ * Inputs (explicit padding):
+ * * 0: A 4-D tensor, of shape [batches, height, width, depth], specifying the input.
+ * * 1: An INT32 value, specifying the padding on the left, in the ‘width’ dimension.
+ * * 2: An INT32 value, specifying the padding on the right,in the ‘width’ dimension.
+ * * 3: An INT32 value, specifying the padding on the top, in the ‘height’ dimension.
+ * * 4: An INT32 value, specifying the padding on the bottom, in the ‘height’ dimension.
+ * * 5: An INT32 value, specifying the stride when walking through input
+ * in the ‘width’ dimension.
+ * * 6: An INT32 value, specifying the stride when walking through input
+ * in the ‘height’ dimension.
+ * * 7: An INT32 value, specifying the filter width.
+ * * 8: An INT32 value, specifying the filter height.
+ * * 9: An INT32 value, and has to be one of the {@link FuseCode} values.
+ * Specifies the activation to invoke on the result of each addition.
+ *
+ * Inputs (implicit padding):
+ * * 0: A 4-D tensor, of shape [batches, height, width, depth], specifying the input.
+ * * 1: An INT32 value, specifying the implicit padding scheme, has to be one of the
+ * {@link PaddingCode} values.
+ * * 2: An INT32 value, specifying the stride when walking through input
+ * in the ‘width’ dimension.
+ * * 3: An INT32 value, specifying the stride when walking through input
+ * in the ‘height’ dimension.
+ * * 4: An INT32 value, specifying the filter width.
+ * * 5: An INT32 value, specifying the filter height.
+ * * 6: An INT32 value, and has to be one of the {@link FuseCode} values.
+ * Specifies the activation to invoke on the result of each addition.
+ *
+ * Outputs:
+ * * 0: The output 4-D tensor, of shape [batches, out_height, out_width, depth].
+ */
+ ANEURALNETWORKS_L2_POOL_2D = 12,
+
+ /** Applies Local Response Normalization along the depth dimension.
+ *
+ * The 4-D input tensor is treated as a 3-D array of 1-D vectors (along the last
+ * dimension), and each vector is normalized independently. Within a given vector,
+ * each component is divided by the weighted, squared sum of inputs within depth_radius.
+ *
+ * The output is calculated using this formula:
+ *
+ * sqr_sum[a, b, c, d] =
+ * sum(pow(input[a, b, c, d - depth_radius : d + depth_radius + 1], 2)
+ * output = input / pow((bias + alpha * sqr_sum), beta)
+ *
+ * Supported tensor types:
+ * * {@link ANEURALNETWORKS_TENSOR_FLOAT32}
+ *
+ * Supported tensor rank: 4, with "NHWC" data layout.
+ *
+ * Inputs:
+ * * 0: A 4-D tensor, of shape [batches, height, width, depth], specifying the input.
+ * * 1: An INT32 value, specifying the radius of the normalization window.
+ * * 2: A FLOAT32 value, specifying the bias, must not be zero.
+ * * 3: A FLOAT32 value, specifying the scale factor, alpha.
+ * * 4: A FLOAT32 value, specifying the exponent, beta.
+ *
+ * Outputs:
+ * * 0: The output tensor of same shape as input0.
+ */
+ ANEURALNETWORKS_LOCAL_RESPONSE_NORMALIZATION = 13,
+
+ /** Computes sigmoid activation on the input tensor element-wise.
+ *
+ * The output is calculated using this formula:
+ *
+ * output = 1 / (1 + exp(-input))
+ *
+ * Supported tensor types:
+ * * {@link ANEURALNETWORKS_TENSOR_FLOAT32}
+ * * {@link ANEURALNETWORKS_TENSOR_QUANT8_ASYMM}
+ *
+ * Supported tensor rank: up to 4.
+ *
+ * Inputs:
+ * * 0: A tensor, specifying the input.
+ *
+ * Outputs:
+ * * 0: The output tensor of same shape as input0.
+ * For {@link ANEURALNETWORKS_TENSOR_QUANT8_ASYMM} type,
+ * the scale must be 1.f / 256 and the zeroPoint must be 0.
+ */
+ ANEURALNETWORKS_LOGISTIC = 14,
+
+ /**
+ * Projects an input to a bit vector via locality senstive hashing.
+ *
+ * Inputs:
+ * * 0: Hash functions. Dim.size == 2, DataType: Float.
+ * Tensor[0].Dim[0]: Number of hash functions.
+ * Tensor[0].Dim[1]: Number of seeds per hash functions.
+ * Tensor[0].Dim[1] <= 32 in sparse case.
+ *
+ * * 1: Input. Dim.size >= 1, no restriction on DataType.
+ * * 2: Weight. Optional. Dim.size == 1, DataType: Float.
+ * If not set, each input element is considered to have the same weight of
+ * 1.0.
+ * Tensor[1].Dim[0] == Tensor[2].Dim[0]
+ * * 3: Type:
+ * Sparse: Value LSHProjectionType_SPARSE(=1).
+ * Computed bit vector is considered to be sparse.
+ * Each output element is an int32 made up of multiple bits computed from
+ * hash functions.
+ *
+ * Dense: Value LSHProjectionType_DENSE(=2).
+ * Computed bit vector is considered to be dense. Each output element
+ * represents a bit and can take the value of either 0 or 1.
+ *
+ * Outputs:
+ * * 0: If the projection type is sparse:
+ * Output.Dim == { Tensor[0].Dim[0] }
+ * A tensor of int32 that represents hash signatures.
+ * If the projection type is Dense:
+ * Output.Dim == { Tensor[0].Dim[0] * Tensor[0].Dim[1] }
+ * A flattened tensor that represents projected bit vectors.
+ */
+ ANEURALNETWORKS_LSH_PROJECTION = 15,
+
+ /**
+ * Long short-term memory unit (LSTM) recurrent network layer.
+ *
+ * The default non-peephole implementation is based on:
+ * http://deeplearning.cs.cmu.edu/pdfs/Hochreiter97_lstm.pdf
+ * S. Hochreiter and J. Schmidhuber. "Long Short-Term Memory". Neural
+ * Computation, 9(8):1735-1780, 1997.
+ *
+ * The peephole implementation is based on:
+ * https://research.google.com/pubs/archive/43905.pdf
+ * Hasim Sak, Andrew Senior, and Francoise Beaufays. "Long short-term memory
+ * recurrent neural network architectures for large scale acoustic modeling."
+ * INTERSPEECH, 2014.
+ *
+ * The coupling of input and forget gate (CIFG) is based on:
+ * http://arxiv.org/pdf/1503.04069.pdf
+ * Greff et al. "LSTM: A Search Space Odyssey"
+ *
+ * The class has the following independently optional inputs:
+ * * If input gate (if CIFG): “input_to_forget_weights”,
+ * “recurrent_to_input_weights”, “cell_to_input_weights”, “input_gate_bias”.
+ * * If no peephole connections: “cell_to_input_weights”,
+ * “cell_to_forget_weights”, “cell_to_output_weights”.
+ * * If no projection layer: “projection_weights” and “projection_bias”.
+ * * If no projection bias: “projection_bias”.
+ *
+ * Supported tensor types (type T):
+ * * {@link ANEURALNETWORKS_TENSOR_FLOAT32}
+ *
+ * Inputs:
+ * * 0: Input.
+ * A 2-D tensor of type T, of shape [batch_size, input_size], where
+ * “batch_size” corresponds to the batching dimension, and “input_size”
+ * is the size of the input.
+ * * 1: input_to_input_weights.
+ * A 2-D tensor of type T, of shape [num_units, input_size], where
+ * “num_units” corresponds to the number of cell units.
+ * * 2: input_to_forget_weights.
+ * A 2-D tensor of type T, of shape [num_units, input_size].
+ * * 3: input_to_cell_weights.
+ * A 2-D tensor of type T, of shape [num_units, input_size].
+ * * 4: input_to_output_weights.
+ * A 2-D tensor of type T, of shape [num_units, input_size].
+ * * 5: recurrent_to_input_weights.
+ * A 2-D tensor of type T, of shape [num_units, output_size], where
+ * “output_size” corresponds to either the number of cell units (i.e.,
+ * “num_units”), or the second dimension of the “projection_weights”, if
+ * defined.
+ * * 6: recurrent_to_forget_weights.
+ * A 2-D tensor of type T, of shape [num_units, output_size].
+ * * 7: recurrent_to_cell_weights.
+ * A 2-D tensor of type T, of shape [num_units, output_size].
+ * * 8: recurrent_to_output_weights.
+ * A 2-D tensor of type T, of shape [num_units, output_size].
+ * * 9: cell_to_input_weights.
+ * A 1-D tensor of type T, of shape [num_units].
+ * * 10:cell_to_forget_weights.
+ * A 1-D tensor of type T, of shape [num_units].
+ * * 11:cell_to_output_weights.
+ * A 1-D tensor of type T, of shape [num_units].
+ * * 12:input_gate_bias.
+ * A 1-D tensor of type T, of shape [num_units].
+ * * 13:forget_gate_bias.
+ * A 1-D tensor of type T, of shape [num_units].
+ * * 14:cell_bias.
+ * A 1-D tensor of type T, of shape [num_units].
+ * * 15:output_gate_bias.
+ * A 1-D tensor of type T, of shape [num_units].
+ * * 16:projection_weights.
+ * A 2-D tensor of type T, of shape [output_size, num_units].
+ * * 17:projection_bias.
+ * A 1-D tensor of type T, of shape [output_size].
+ * * 18: output_state (in).
+ * A 2-D tensor of type T, of shape [batch_size, output_size].
+ * * 19: cell_state (in).
+ * A 2-D tensor of type T, of shape [batch_size, num_units].
+ * * 20:fused_activation_function.
+ * An optional {@link FuseCode} value indicating the activation
+ * function.
+ * If “NONE” is specified then it results in a linear activation.
+ * * 21:cell_clip.
+ * A clipping threshold for the cell state, such that values are bound
+ * within [-cell_clip, cell_clip]. If set to 0.0 then clipping is
+ * disabled.
+ * * 22:proj_clip.
+ * A clipping threshold for the output from the projection layer, such
+ * that values are bound within [-proj_clip, proj_clip]. If set to 0.0
+ * then clipping is disabled.
+ *
+ * Outputs:
+ * * 0: scratch_buffer.
+ * A 3-D tensor of type T, of shape [batch_size, num_cell, 4].
+ * * 1: output_state (out).
+ * A 2-D tensor of type T, of shape [batch_size, output_size].
+ * * 2: cell_state (out).
+ * A 2-D tensor of type T, of shape [batch_size, num_units].
+ * * 3: output.
+ * A 2-D tensor of type T, of shape [batch_size, output_size]. This is
+ * effectively the same as the current “output_state” value.
+ */
+ ANEURALNETWORKS_LSTM = 16,
+
+ /** Performs an 2-D max pooling operation.
+ *
+ * The output dimensions are functions of the filter dimensions, stride, and padding.
+ *
+ * The values in the output tensor are computed as:
+ *
+ * output[batch, row, col, channel] =
+ * max_{i, j} (input[batch, row + i, col + j, channel])
+ *
+ * Supported tensor types:
+ * * {@link ANEURALNETWORKS_TENSOR_FLOAT32}
+ * * {@link ANEURALNETWORKS_TENSOR_QUANT8_ASYMM}
+ *
+ * Supported tensor rank: 4, with "NHWC" data layout.
+ *
+ * Both explicit padding and implicit padding are supported.
+ *
+ * Inputs (explicit padding):
+ * * 0: A 4-D tensor, of shape [batches, height, width, depth], specifying the input.
+ * * 1: An INT32 value, specifying the padding on the left, in the ‘width’ dimension.
+ * * 2: An INT32 value, specifying the padding on the right,in the ‘width’ dimension.
+ * * 3: An INT32 value, specifying the padding on the top, in the ‘height’ dimension.
+ * * 4: An INT32 value, specifying the padding on the bottom, in the ‘height’ dimension.
+ * * 5: An INT32 value, specifying the stride when walking through input
+ * in the ‘width’ dimension.
+ * * 6: An INT32 value, specifying the stride when walking through input
+ * in the ‘height’ dimension.
+ * * 7: An INT32 value, specifying the filter width.
+ * * 8: An INT32 value, specifying the filter height.
+ * * 9: An INT32 value, and has to be one of the {@link FuseCode} values.
+ * Specifies the activation to invoke on the result of each addition.
+ *
+ * Inputs (implicit padding):
+ * * 0: A 4-D tensor, of shape [batches, height, width, depth], specifying the input.
+ * * 1: An INT32 value, specifying the implicit padding scheme, has to be one of the
+ * {@link PaddingCode} values.
+ * * 2: An INT32 value, specifying the stride when walking through input
+ * in the ‘width’ dimension.
+ * * 3: An INT32 value, specifying the stride when walking through input
+ * in the ‘height’ dimension.
+ * * 4: An INT32 value, specifying the filter width.
+ * * 5: An INT32 value, specifying the filter height.
+ * * 6: An INT32 value, and has to be one of the {@link FuseCode} values.
+ * Specifies the activation to invoke on the result of each addition.
+ *
+ * Outputs:
+ * * 0: The output 4-D tensor, of shape [batches, out_height, out_width, depth].
+ */
+ ANEURALNETWORKS_MAX_POOL_2D = 17,
+
+ /** Multiplies two tensors, element-wise.
+ *
+ * Takes two input tensors of identical type and compatible dimensions. The output
+ * is the product of both input tensors, optionally modified by an activation function.
+ *
+ * Two dimensions are compatible when:
+ * 1. they are equal, or
+ * 2. one of them is 1
+ *
+ * The size of the resulting output is the maximum size along each dimension of the
+ * input operands. It starts with the trailing dimensions, and works its way forward.
+ *
+ * Supported tensor types:
+ * * {@link ANEURALNETWORKS_TENSOR_FLOAT32}
+ * * {@link ANEURALNETWORKS_TENSOR_QUANT8_ASYMM}
+ *
+ * Supported tensor rank: up to 4
+ *
+ * Inputs:
+ * * 0: A tensor.
+ * * 1: A tensor of the same type, and compatible dimensions as input0.
+ * * 2: An INT32 value, and has to be one of the {@link FuseCode} values.
+ * Specifies the activation to invoke on the result of each addition.
+ *
+ * Outputs:
+ * * 0: The product, a tensor of the same type as input0.
+ * For output tensor of {@link ANEURALNETWORKS_TENSOR_QUANT8_ASYMM} type, the following
+ * condition must be satisfied: output_scale > input1_scale * input2_scale.
+ */
+ ANEURALNETWORKS_MUL = 18,
+
+ /** Computes rectified linear activation on the input tensor element-wise.
+ *
+ * The output is calculated using this formula:
+ *
+ * output = max(0, input)
+ *
+ * Supported tensor types:
+ * * {@link ANEURALNETWORKS_TENSOR_FLOAT32}
+ * * {@link ANEURALNETWORKS_TENSOR_QUANT8_ASYMM}
+ *
+ * Supported tensor rank: up to 4.
+ *
+ * Inputs:
+ * * 0: A tensor, specifying the input.
+ *
+ * Outputs:
+ * * 0: The output tensor of same shape as input0.
+ */
+ ANEURALNETWORKS_RELU = 19,
+
+ /** Computes rectified linear 1 activation on the input tensor element-wise.
+ *
+ * The output is calculated using this formula:
+ *
+ * output = min(1.f, max(-1.f, input))
+ *
+ * Supported tensor types:
+ * * {@link ANEURALNETWORKS_TENSOR_FLOAT32}
+ * * {@link ANEURALNETWORKS_TENSOR_QUANT8_ASYMM}
+ *
+ * Supported tensor rank: up to 4.
+ *
+ * Inputs:
+ * * 0: A tensor, specifying the input.
+ *
+ * Outputs:
+ * * 0: The output tensor of same shape as input0.
+ */
+ ANEURALNETWORKS_RELU1 = 20,
+
+ /** Computes rectified linear 6 activation on the input tensor element-wise.
+ *
+ * The output is calculated using this formula:
+ *
+ * output = min(6, max(0, input))
+ *
+ * Supported tensor types:
+ * * {@link ANEURALNETWORKS_TENSOR_FLOAT32}
+ * * {@link ANEURALNETWORKS_TENSOR_QUANT8_ASYMM}
+ *
+ * Supported tensor rank: up to 4.
+ *
+ * Inputs:
+ * * 0: A tensor, specifying the input.
+ *
+ * Outputs:
+ * * 0: The output tensor of same shape as input0.
+ */
+ ANEURALNETWORKS_RELU6 = 21,
+
+ /** Reshapes a tensor.
+ *
+ * Given tensor, this operation returns a tensor that has the same values as tensor,
+ * but with a newly specified shape.
+ *
+ * Supported tensor types:
+ * * {@link ANEURALNETWORKS_TENSOR_FLOAT32}
+ * * {@link ANEURALNETWORKS_TENSOR_QUANT8_ASYMM}
+ *
+ * Supported tensor rank: up to 4.
+ *
+ * Inputs:
+ * * 0: A tensor, specifying the tensor to be reshaped.
+ * * 1: A 1-D tensor of type {@link ANEURALNETWORKS_TENSOR_INT32}, defining the shape
+ * of the output tensor. The number of elements implied by shape must be the same
+ * as the number of elements in the input tensor.
+ *
+ * Outputs:
+ * * 0: The output tensor, of shape specified by the input shape.
+ */
+ ANEURALNETWORKS_RESHAPE = 22,
+
+ /** Resizes images to given size using the bilinear interpretation.
+ *
+ * Resized images will be distorted if their output aspect ratio is not the same as
+ * input aspect ratio.
+ *
+ * Supported tensor types:
+ * * {@link ANEURALNETWORKS_TENSOR_FLOAT32}
+ *
+ * Supported tensor rank: 4, with "NHWC" data layout.
+ *
+ * Inputs:
+ * * 0: A 4-D tensor, of shape [batches, height, width, depth], specifying the input.
+ * * 1: An INT32 value, specifying the output height of the output tensor.
+ * * 2: An INT32 value, specifying the output width of the output tensor.
+ *
+ * Outputs:
+ * * 0: The output 4-D tensor, of shape [batches, new_height, new_width, depth].
+ */
+ ANEURALNETWORKS_RESIZE_BILINEAR = 23,
+
+ /**
+ * A basic recurrent neural network layer.
+ *
+ * This layer implements the operation:
+ * outputs = state = activation(inputs * input_weights + state * recurrent_weights + bias)
+ *
+ * Where:
+ * * “input_weights” is a weight matrix that multiplies the inputs;
+ * * “recurrent_weights” is a weight matrix that multiplies the current
+ * “state” which itself is the output from the previous time step
+ * computation;
+ * * “bias” is a bias vector (added to each output vector in the batch);
+ * * “activation” is the function passed as the “fused_activation_function”
+ * argument (if not “NONE”).
+ *
+ * Supported tensor types (Type T):
+ * * {@link ANEURALNETWORKS_TENSOR_FLOAT32}
+ *
+ * Inputs:
+ * * 0: input.
+ * A 2-D tensor of type T, of shape [batch_size, input_size], where
+ * “batch_size” corresponds to the batching dimension, and “input_size” is
+ * the size of the input.
+ * * 1: weights.
+ * A 2-D tensor of type T, of shape [num_units, input_size], where
+ * “num_units” corresponds to the number of units.
+ * * 2: recurrent_weights.
+ * A 2-D tensor of type T, of shape [num_units, num_units], with columns
+ * corresponding to the weights from each unit.
+ * * 3: bias.
+ * A 1-D tensor of type T, of shape [num_units].
+ * * 4: hidden state (in).
+ * A 2-D tensor of type T, of shape [batch_size, num_units].
+ * * 5: fused_activation_function.
+ * An optional {@link FuseCode} value indicating the activation
+ * function. If “NONE” is specified then it results in a linear
+ * activation.
+ *
+ * Outputs:
+ * * 0: hidden state (out).
+ * A 2-D tensor of type T, of shape [batch_size, num_units].
+ *
+ * * 1: output.
+ * A 2-D tensor of type T, of shape [batch_size, num_units]. This is
+ * effectively the same as the current state value.
+ */
+ ANEURALNETWORKS_RNN = 24,
+
+ /** Computes the softmax activation on the input tensor element-wise, per batch, by
+ * normalizing the input vector so the maximum coefficient is zero.
+ *
+ * The output is calculated using this formula:
+ *
+ * output[batch, i] =
+ * exp((input[batch, i] - max(input[batch, :])) * beta) /
+ * sum_{k}{exp((input[batch, k] - max(input[batch, :])) * beta)}
+ *
+ * Supported tensor types:
+ * * {@link ANEURALNETWORKS_TENSOR_FLOAT32}
+ * * {@link ANEURALNETWORKS_TENSOR_QUANT8_ASYMM}
+ *
+ * Supported tensor rank: 2 or 4.
+ *
+ * Inputs:
+ * * 0: A 2-D or 4-D tensor, specifying the tensor to be reshaped.
+ * * 1: A FLOAT32 value, specifying the positive scaling factor for the exponent, beta.
+ *
+ * Outputs:
+ * * 0: The output tensor of same shape as input0.
+ * For {@link ANEURALNETWORKS_TENSOR_QUANT8_ASYMM} type,
+ * the scale must be 1.f / 256 and the zeroPoint must be 0.
+ */
+ ANEURALNETWORKS_SOFTMAX = 25,
+
+ /** Rearranges blocks of spatial data, into depth.
+ *
+ * More specifically, this op outputs a copy of the input tensor where values from
+ * the height and width dimensions are moved to the depth dimension.
+ * The value block_size indicates the input block size and how the data is moved.
+ *
+ * Chunks of data of size block_size * block_size from depth are rearranged into
+ * non-overlapping blocks of size block_size x block_size.
+ *
+ * The depth of the output tensor is input_depth * block_size * block_size.
+ * The input tensor's height and width must be divisible by block_size.
+ *
+ * Supported tensor types:
+ * * {@link ANEURALNETWORKS_TENSOR_FLOAT32}
+ * * {@link ANEURALNETWORKS_TENSOR_QUANT8_ASYMM}
+ *
+ * Supported tensor rank: 4, with "NHWC" data layout.
+ *
+ * Inputs:
+ * * 0: A 4-D tensor, of shape [batches, height, width, depth_in], specifying the input.
+ * * 1: An INT32 value, specifying the block_size. block_size must be >=1 and
+ * block_size must be a divisor of both the input height and width.
+ *
+ * Outputs:
+ * * 0: The output 4-D tensor, of shape [batch, height/block_size, width/block_size,
+ * depth*block_size*block_size].
+ */
+ ANEURALNETWORKS_SPACE_TO_DEPTH = 26,
+
+ /**
+ * SVDF op is a kind of stateful layer derived from the notion that a
+ * densely connected layer that's processing a sequence of input frames can
+ * be approximated by using a singular value decomposition of each of its
+ * nodes. The implementation is based on:
+ *
+ * https://research.google.com/pubs/archive/43813.pdf
+ *
+ * P. Nakkiran, R. Alvarez, R. Prabhavalkar, C. Parada.
+ * “Compressing Deep Neural Networks using a Rank-Constrained Topology”.
+ * INTERSPEECH, 2015.
+ *
+ * It processes the incoming input using a 2-stage filtering mechanism:
+ * * stage 1 performs filtering on the "features" dimension, whose outputs get
+ * pushed into a memory of fixed-size memory_size.
+ * * stage 2 performs filtering on the "time" dimension of the memory_size
+ * memoized outputs of stage 1.
+ *
+ * Specifically, for rank 1, this layer implements the operation:
+ *
+ * memory = push(conv1d(inputs, weights_feature, feature_dim,
+ * "ANEURALNETWORKS_PADDING_VALID"));
+ * outputs = activation(memory * weights_time + bias);
+ *
+ * Where:
+ * * “weights_feature” is a weights matrix that processes the inputs (by
+ * convolving the input with every “feature filter”), and whose outputs get
+ * pushed, stacked in order, into the fixed-size “memory” (the oldest entry
+ * gets dropped);
+ * * “weights_time” is a weights matrix that processes the “memory” (by a
+ * batched matrix multiplication on the num_units);
+ * * “bias” is an optional bias vector (added to each output vector in the
+ * batch); and
+ * * “activation” is the function passed as the “fused_activation_function”
+ * argument (if not “NONE”).
+ *
+ * Each rank adds a dimension to the weights matrices by means of stacking
+ * the filters.
+ *
+ * Supported tensor types (type T):
+ * * {@link ANEURALNETWORKS_TENSOR_FLOAT32}
+ *
+ * Inputs:
+ * * 0: input.
+ * A 2-D tensor of type T, of shape [batch_size, input_size], where
+ * “batch_size” corresponds to the batching dimension, and “input_size” is
+ * the size of the input.
+ * * 1: weights_feature.
+ * A 2-D tensor of type T, of shape [num_units, input_size], where
+ * “num_units” corresponds to the number of units.
+ * * 2: weights_time.
+ * A 2-D tensor of type T, of shape [num_units, memory_size], where
+ * “memory_size” corresponds to the fixed-size of the memory.
+ * * 3: bias.
+ * An optional 1-D tensor of type T, of shape [num_units].
+ * * 4: state (in).
+ * A 2-D tensor of type T, of shape [batch_size, (memory_size - 1) * num_units * rank].
+ * * 5: rank.
+ * The rank of the SVD approximation.
+ * * 6: fused_activation_function.
+ * An optional {@link FuseCode} value indicating the activation function.
+ * If “NONE” is specified then it results in a linear activation.
+ *
+ * Outputs:
+ * * 0: state (out).
+ * A 2-D tensor of type T, of shape [batch_size, (memory_size - 1) * num_units * rank].
+ * * 1: output.
+ * A 2-D tensor of type T, of shape [batch_size, num_units].
+ */
+ ANEURALNETWORKS_SVDF = 27,
+
+ /** Computes hyperbolic tangent of input tensor element-wise.
+ *
+ * The output is calculated using this formula:
+ *
+ * output = tanh(input)
+ *
+ * Supported tensor types:
+ * * {@link ANEURALNETWORKS_TENSOR_FLOAT32}
+ *
+ * Supported tensor rank: up to 4.
+ *
+ * Inputs:
+ * * 0: A tensor, specifying the input.
+ *
+ * Outputs:
+ * * 0: The output tensor of same shape as input0.
+ */
+ ANEURALNETWORKS_TANH = 28,
+
+ /**
+ * Element-wise division of two tensors.
+ *
+ * Takes two input tensors of identical type and compatible dimensions. The output
+ * is the result of dividing the first input tensor by the second, optionally
+ * modified by an activation function.
+ *
+ * Two dimensions are compatible when:
+ * 1. they are equal, or
+ * 2. one of them is 1
+ *
+ * The size of the output is the maximum size along each dimension of the input operands.
+ * It starts with the trailing dimensions, and works its way forward.
+ *
+ * Example:
+ * input1.dimension = {4, 1, 2}
+ * input2.dimension = {5, 4, 3, 1}
+ * output.dimension = {5, 4, 3, 2}
+ *
+ * Supported tensor types:
+ * * {@link ANEURALNETWORKS_TENSOR_FLOAT32}
+ *
+ * Supported tensor rank: up to 4
+ *
+ * Inputs:
+ * 0: An n-D tensor, specifying the first input.
+ * 1: A tensor of the same type, and compatible dimensions as input0.
+ * 2: An INT32 value, and has to be one of the {@link FusedActivationFunc} values.
+ * Specifies the activation to invoke on the result of each addition.
+ *
+ * Outputs:
+ * 0: A tensor of the same type as input0.
+ */
+ ANEURALNETWORKS_DIV = 30,
+
+ /**
+ * Pads a tensor.
+ *
+ * This operation pads a tensor according to the specified paddings.
+ *
+ * Supported tensor {@link OperandCode}:
+ * * {@link ANEURALNETWORKS_TENSOR_FLOAT32}
+ * * {@link ANEURALNETWORKS_TENSOR_QUANT8_ASYMM}
+ *
+ * Supported tensor rank: up to 4
+ *
+ * Inputs:
+ * * 0: An n-D tensor, specifying the tensor to be padded.
+ * * 1: A 2-D Tensor of {@link ANEURALNETWORKS_TENSOR_INT32}, the paddings
+ * for each spatial dimension of the input tensor. The shape of the
+ * tensor must be {rank(input0), 2}.
+ * padding[i, 0] specifies the number of elements to be padded in the
+ * front of dimension i.
+ * padding[i, 1] specifies the number of elements to be padded after the
+ * end of dimension i.
+ *
+ * Outputs:
+ * * 0: A tensor of the same {@link OperandCode} as input0. The
+ * output tensor has the same rank as input0, and each
+ * dimension of the output tensor has the same size as the
+ * corresponding dimension of the input tensor plus the size
+ * of the padding:
+ * output0.dimension[i] =
+ * padding[i, 0] + input0.dimension[i] + padding[i, 1]
+ *
+ * Available since API level 28.
+ */
+ ANEURALNETWORKS_PAD = 32,
+
+ /**
+ * Extracts a strided slice of a tensor.
+ *
+ * Roughly speaking, this op extracts a slice of size (end - begin) / stride
+ * from the given input tensor. Starting at the location specified by begin
+ * the slice continues by adding stride to the index until all dimensions
+ * are not less than end. Note that a stride can be negative, which causes a
+ * reverse slice.
+ *
+ * Supported tensor {@link OperandCode}:
+ * * {@link ANEURALNETWORKS_TENSOR_FLOAT32}
+ * * {@link ANEURALNETWORKS_TENSOR_QUANT8_ASYMM}
+ *
+ * Supported tensor rank: up to 4
+ *
+ * Inputs:
+ * * 0: An n-D tensor, specifying the tensor to be sliced.
+ * * 1: A 1-D Tensor of {@link ANEURALNETWORKS_TENSOR_INT32}, the starts of
+ * the dimensions of the input tensor to be sliced. The length must be
+ * of rank(input0).
+ * * 2: A 1-D Tensor of {@link ANEURALNETWORKS_TENSOR_INT32}, the ends of
+ * the dimensions of the input tensor to be sliced. The length must be
+ * of rank(input0).
+ * * 3: A 1-D Tensor of {@link ANEURALNETWORKS_TENSOR_INT32}, the strides of
+ * the dimensions of the input tensor to be sliced. The length must be
+ * of rank(input0).
+ * * 4: An {@link ANEURALNETWORKS_INT32} scalar, begin_mask. If the ith bit
+ * of begin_mask is set, begin[i] is ignored and the fullest possible
+ * range in that dimension is used instead.
+ * * 5: An {@link ANEURALNETWORKS_INT32} scalar, end_mask. If the ith bit of
+ * end_mask is set, end[i] is ignored and the fullest possible range in
+ * that dimension is used instead.
+ * * 6: An {@link ANEURALNETWORKS_INT32} scalar, shrink_axis_mask. An int32
+ * mask. If the ith bit of shrink_axis_mask is set, it implies that the
+ * ith specification shrinks the dimensionality by 1. A slice of size 1
+ * starting from begin[i] in the dimension must be preserved.
+ *
+ * Outputs:
+ * * 0: A tensor of the same {@link OperandCode} as input0.
+ */
+ ANEURALNETWORKS_STRIDED_SLICE = 35,
+
+ /**
+ * Element-wise subtraction of two tensors.
+ *
+ * Takes two input tensors of identical type and compatible dimensions. The output
+ * is the result of subtracting the second input tensor from the first one, optionally
+ * modified by an activation function.
+ *
+ * Two dimensions are compatible when:
+ * 1. they are equal, or
+ * 2. one of them is 1
+ *
+ * The size of the output is the maximum size along each dimension of the input operands.
+ * It starts with the trailing dimensions, and works its way forward.
+ *
+ * Example:
+ * input1.dimension = {4, 1, 2}
+ * input2.dimension = {5, 4, 3, 1}
+ * output.dimension = {5, 4, 3, 2}
+ *
+ * Supported tensor types:
+ * * {@link ANEURALNETWORKS_TENSOR_FLOAT32}
+ *
+ * Supported tensor rank: up to 4
+ *
+ * Inputs:
+ * 0: An n-D tensor, specifying the first input.
+ * 1: A tensor of the same type, and compatible dimensions as input0.
+ * 2: An INT32 value, and has to be one of the {@link FusedActivationFunc} values.
+ * Specifies the activation to invoke on the result of each addition.
+ *
+ * Outputs:
+ * 0: A tensor of the same type as input0.
+ */
+ ANEURALNETWORKS_SUB = 36,
+} OperationCode;
+
+/**
+ * Fused activation function types.
+ *
+ */
+typedef enum {
+ /** NO fused activation function. */
+ ANEURALNETWORKS_FUSED_NONE = 0,
+ /** Fused ReLU activation function. */
+ ANEURALNETWORKS_FUSED_RELU = 1,
+ /** Fused ReLU1 activation function. */
+ ANEURALNETWORKS_FUSED_RELU1 = 2,
+ /** Fused ReLU6 activation function. */
+ ANEURALNETWORKS_FUSED_RELU6 = 3,
+} FuseCode;
+
+/**
+ * Implicit padding algorithms.
+ *
+ */
+typedef enum {
+ /**
+ * SAME padding.
+ * Padding on both ends are the "same":
+ * padding_to_beginning = total_padding / 2
+ * padding_to_end = (total_padding + 1)/2.
+ * i.e., for even number of padding, padding to both ends are exactly
+ * the same; for odd number of padding, padding to the ending is bigger
+ * than the padding to the beginning by 1.
+ *
+ * total_padding is a function of input, stride and filter size.
+ * It could be computed as follows:
+ * out_size = (input + stride - 1) / stride;
+ * needed_input = (out_size - 1) * stride + filter_size
+ * total_padding = max(0, needed_input - output_size)
+ * The computation is the same for the horizontal and vertical directions.
+ */
+ ANEURALNETWORKS_PADDING_SAME = 1,
+
+ /**
+ * VALID padding.
+ * No padding. When the input size is not evenly divisible by
+ * the filter size, the input at the end that could not fill
+ * the whole filter tile will simply be ignored.
+ */
+ ANEURALNETWORKS_PADDING_VALID = 2,
+} PaddingCode;
+
+/**
+ * Execution preferences.
+ */
+typedef enum {
+ /**
+ * Prefer executing in a way that minimizes battery drain.
+ * This is desirable for compilations that will be executed often.
+ */
+ ANEURALNETWORKS_PREFER_LOW_POWER = 0,
+ /**
+ * Prefer returning a single answer as fast as possible, even if this causes
+ * more power consumption.
+ */
+ ANEURALNETWORKS_PREFER_FAST_SINGLE_ANSWER = 1,
+ /**
+ * Prefer maximizing the throughput of successive frames, for example when
+ * processing successive frames coming from the camera.
+ */
+ ANEURALNETWORKS_PREFER_SUSTAINED_SPEED = 2,
+} PreferenceCode;
+
+/**
+ * Result codes.
+ */
+typedef enum {
+ ANEURALNETWORKS_NO_ERROR = 0,
+ ANEURALNETWORKS_OUT_OF_MEMORY = 1,
+ ANEURALNETWORKS_INCOMPLETE = 2,
+ ANEURALNETWORKS_UNEXPECTED_NULL = 3,
+ ANEURALNETWORKS_BAD_DATA = 4,
+ ANEURALNETWORKS_OP_FAILED = 5,
+ ANEURALNETWORKS_UNMAPPABLE = 5,
+ ANEURALNETWORKS_BAD_STATE = 6,
+} ResultCode;
+
+/**
+ * For {@link ANeuralNetworksModel_setOperandValue}, values with a
+ * length smaller or equal to this will be immediately copied into
+ * the model. The size is in bytes.
+ */
+enum {
+ ANEURALNETWORKS_MAX_SIZE_OF_IMMEDIATELY_COPIED_VALUES = 128
+};
+
+/**
+ * ANeuralNetworksMemory is an opaque type that represents memory.
+ *
+ * This type is used to represent shared memory, memory mapped files,
+ * and similar memories.
+ *
+ * By using shared memory, a program can efficiently communicate to the
+ * runtime and drivers the tensors that define a model. See
+ * {@link ANeuralNetworksModel_setOperandValueFromMemory}. An application
+ * should typically create one shared memory object that contains every tensor
+ * needed to define a model. {@link ANeuralNetworksMemory_createFromFd} can be
+ * used to create shared memory from a file handle. {@link ANeuralNetworksMemory_createShared}
+ * can be used to directly created shared memory.
+ *
+ * Memory objects can also be used to specify the input and output arguments of
+ * an execution. See {@link ANeuralNetworksExecution_setInputFromMemory}
+ * and {@link ANeuralNetworksExecution_setOutputFromMemory}.
+ */
+typedef struct ANeuralNetworksMemory ANeuralNetworksMemory;
+
+/**
+ * ANeuralNetworksModel is an opaque type that contains a description of the
+ * mathematical operations that constitute the model.
+ *
+ * The model will be built by calling
+ * - {@link ANeuralNetworksModel_create},
+ * - {@link ANeuralNetworksModel_addOperation},
+ * - {@link ANeuralNetworksModel_addOperand},
+ *
+ *
+ * A model is completed by calling {@link ANeuralNetworksModel_finish}.
+ * A model is destroyed by calling {@link ANeuralNetworksModel_free}.
+ *
+ * A model cannot be modified once {@link ANeuralNetworksModel_finish}
+ * has been called on it.
+ *
+ * It is the application's responsibility to make sure that only one thread
+ * modifies a model at a given time. It is however safe for more than one
+ * thread to use the model once {@link ANeuralNetworksModel_finish} has returned.
+ *
+ * It is also the application's responsibility to ensure that there are no other
+ * uses of the model after calling {@link ANeuralNetworksModel_free}.
+ * This includes any compilation or execution object created using the model.
+ */
+typedef struct ANeuralNetworksModel ANeuralNetworksModel;
+
+/**
+ * ANeuralNetworksCompilation is an opaque type that can be used to compile
+ * a machine learning model.
+ *
+ * To use:
+ * - Create a new compilation instance by calling the
+ * {@link ANeuralNetworksCompilation_create} function.
+ * - Set any desired properties on the compilation (for example,
+ * {@link ANeuralNetworksCompilation_setPreference}).
+ * - Complete the compilation with {@link ANeuralNetworksCompilation_finish}.
+ * - Use the compilation as many times as needed
+ * with {@link ANeuralNetworksExecution_create}.
+ * - Destroy the compilation with {@link ANeuralNetworksCompilation_free}
+ * once all executions using the compilation have completed.
+ *
+ * A compilation is completed by calling {@link ANeuralNetworksCompilation_finish}.
+ * A compilation is destroyed by calling {@link ANeuralNetworksCompilation_free}.
+ *
+ * A compilation cannot be modified once {@link ANeuralNetworksCompilation_finish}
+ * has been called on it.
+ *
+ * It is the application's responsibility to make sure that only
+ * one thread modifies a compilation at a given time. It is however
+ * safe for more than one thread to use the compilation once
+ * {@link ANeuralNetworksCompilation_finish} has returned.
+ *
+ * It is also the application's responsibility to ensure that there are no other
+ * uses of the compilation after calling {@link ANeuralNetworksCompilation_free}.
+ * This includes any execution object created using the compilation.
+ */
+typedef struct ANeuralNetworksCompilation ANeuralNetworksCompilation;
+
+/**
+ * ANeuralNetworksExecution is an opaque type that can be used to apply a machine
+ * learning model to a set of inputs.
+ *
+ * To use:
+ * - Create a new execution instance by calling the
+ * {@link ANeuralNetworksExecution_create} function.
+ * - Associate data to the model inputs with
+ * {@link ANeuralNetworksExecution_setInput} or
+ * {@link ANeuralNetworksExecution_setInputFromMemory}.
+ * - Associate output buffers to the model outputs with
+ * {@link ANeuralNetworksExecution_setOutput} or
+ * {@link ANeuralNetworksExecution_setOutputFromMemory}.
+ * - Apply the model with {@link ANeuralNetworksExecution_startCompute}.
+ * - Wait for the execution to complete with {@link
+ * ANeuralNetworksEvent_wait}.
+ * - Destroy the execution with
+ * {@link ANeuralNetworksExecution_free}.
+ *
+ * An execution cannot be modified once {@link ANeuralNetworksExecution_startCompute}
+ * has been called on it.
+ *
+ * An execution can be applied to a model with
+ * {@link ANeuralNetworksExecution_startCompute} only once. Create new executions
+ * to do new evaluations of the model.
+ *
+ * It is the application's responsibility to make sure that only one thread
+ * modifies an execution at a given time. It is however safe for more than one
+ * thread to use {@link ANeuralNetworksEvent_wait} at the same time.
+ *
+ * It is also the application's responsibility to ensure that there are no other
+ * uses of the request after calling {@link ANeuralNetworksExecution_free}.
+ */
+typedef struct ANeuralNetworksExecution ANeuralNetworksExecution;
+
+/**
+ * ANeuralNetworksOperandType describes the type of an operand.
+ * This structure is used to describe both scalars and tensors.
+ */
+typedef struct ANeuralNetworksOperandType {
+ /** The data type, e.g ANEURALNETWORKS_INT8. */
+ int32_t type;
+ /** The number of dimensions. It should be 0 for scalars. */
+ uint32_t dimensionCount;
+ /** The dimensions of the tensor. It should be nullptr for scalars. */
+ const uint32_t* dimensions;
+ /** These two fields are only used for quantized tensors.
+ * They should be zero for scalars and non-fixed point tensors.
+ * The dequantized value of each entry is (value - zeroPoint) * scale.
+ */
+ float scale;
+ int32_t zeroPoint;
+} ANeuralNetworksOperandType;
+
+typedef int32_t ANeuralNetworksOperationType;
+
+/**
+ * ANeuralNetworksEvent is an opaque type that represents an event
+ * that will be signaled once an execution completes.
+ */
+typedef struct ANeuralNetworksEvent ANeuralNetworksEvent;
+
+
+/**
+ * Creates a shared memory object from a file descriptor.
+ *
+ * The shared memory is backed by a file descriptor via mmap.
+ * See {@link ANeuralNetworksMemory} for a description on how to use
+ * this shared memory.
+ *
+ * @param size The requested size in bytes.
+ * Must not be larger than the file size.
+ * @param prot The desired memory protection for the mapping.
+ * It is either PROT_NONE or the bitwise OR of one or
+ * more of the following flags: PROT_READ, PROT_WRITE.
+ * @param fd The requested file descriptor.
+ * The file descriptor has to be mmap-able. The file
+ * descriptor will be duplicated.
+ * @param offset The offset to the beginning of the file of the area to map.
+ * The offset has to be aligned to a page size.
+ * @param memory The memory object to be created.
+ * Set to NULL if unsuccessful.
+ *
+ * @return ANEURALNETWORKS_NO_ERROR if the request completed normally.
+ */
+int ANeuralNetworksMemory_createFromFd(size_t size, int protect, int fd, size_t offset,
+ ANeuralNetworksMemory** memory);
+
+/**
+ * Delete a memory object.
+ *
+ * Destroys the object used by the run time to keep track of the memory.
+ * This will free the underlying actual memory if no other code has open
+ * handles to this memory.
+ *
+ * @param memory The memory object to be freed.
+ */
+void ANeuralNetworksMemory_free(ANeuralNetworksMemory* memory);
+
+/**
+ * Create an empty {@link ANeuralNetworksModel}.
+ *
+ * This only creates the object. Computation is performed once
+ * {@link ANeuralNetworksExecution_startCompute} is invoked.
+ *
+ * The model should be constructed with calls to
+ * {@link ANeuralNetworksModel_addOperation} and
+ * {@link ANeuralNetworksModel_addOperand}
+ *
+ *
{@link ANeuralNetworksModel_finish} should be called once the model
+ * has been fully constructed.
+ *
+ * {@link ANeuralNetworksModel_free} should be called once the model
+ * is no longer needed.
+ *
+ * @param model The {@link ANeuralNetworksModel} to be created.
+ * Set to NULL if unsuccessful.
+ *
+ * @return ANEURALNETWORKS_NO_ERROR if successful.
+ */
+int ANeuralNetworksModel_create(ANeuralNetworksModel** model);
+
+/**
+ * Destroy a model.
+ *
+ * The model need not have been finished by a call to
+ * {@link ANeuralNetworksModel_finish}.
+ *
+ * See {@link ANeuralNetworksModel} for information on multithreaded usage.
+ *
+ * @param model The model to be destroyed. Passing NULL is acceptable and
+ * results in no operation.
+ */
+void ANeuralNetworksModel_free(ANeuralNetworksModel* model);
+
+/**
+ * Indicate that we have finished modifying a model. Required before
+ * calling {@link ANeuralNetworksCompilation_create}.
+ *
+ * An application is responsible to make sure that no other thread uses
+ * the model at the same time.
+ *
+ * This function must only be called once for a given model.
+ *
+ * See {@link ANeuralNetworksModel} for information on multithreaded usage.
+ *
+ * @param model The model to be finished.
+ *
+ * @return ANEURALNETWORKS_NO_ERROR if successful.
+ */
+int ANeuralNetworksModel_finish(ANeuralNetworksModel* model);
+
+/**
+ * Add an operand to a model.
+ *
+ * The order in which the operands are added is important. The first one added
+ * to a model will have the index value 0, the second 1, etc. These indexes are
+ * used as operand identifiers in {@link ANeuralNetworksModel_addOperation},
+ * {@link ANeuralNetworksExecution_setInput},
+ * {@link ANeuralNetworksExecution_setInputFromMemory},
+ * {@link ANeuralNetworksExecution_setOutput},
+ * {@link ANeuralNetworksExecution_setOutputFromMemory} and
+ * {@link ANeuralNetworksExecution_setOperandValue}.
+ *
+ * To build a model that can accomodate inputs of various sizes, as you may want
+ * to do for a CNN, set the size of the dimensions that will vary at run time to 0.
+ * If you do so, provide the full dimensions when calling
+ * {@link ANeuralNetworksExecution_setInput} or {@link ANeuralNetworksExecution_setInputFromMemory}.
+ *
+ * Attempting to modify a model once {@link ANeuralNetworksModel_finish} has been
+ * called will return an error.
+ *
+ * See {@link ANeuralNetworksModel} for information on multithreaded usage.
+ *
+ * @param model The model to be modified.
+ * @param type The {@link ANeuralNetworksOperandType} that describes the shape
+ * of the operand.
+ *
+ * @return ANEURALNETWORKS_NO_ERROR if successful.
+ */
+int ANeuralNetworksModel_addOperand(ANeuralNetworksModel* model,
+ const ANeuralNetworksOperandType* type);
+
+/**
+ * Sets an operand to a constant value.
+ *
+ * Values of length smaller or equal to
+ * {@link ANEURALNETWORKS_MAX_SIZE_OF_IMMEDIATELY_COPIED_VALUES}
+ * are immediately copied into the model.
+ *
+ * For values of length greater than {@link ANEURALNETWORKS_MAX_SIZE_OF_IMMEDIATELY_COPIED_VALUES},
+ * a pointer to the buffer is stored within the model. The application is responsible
+ * for not changing the content of this region until all executions using this model
+ * have completed. As the data may be copied during processing, modifying the data
+ * after this call yields undefined results.
+ *
+ * For large tensors, using {@link ANeuralNetworksModel_setOperandValueFromMemory}
+ * is likely to be more efficient.
+ *
+ * To indicate that an optional operand should be considered missing,
+ * pass nullptr for buffer and 0 for length.
+ *
+ * Attempting to modify a model once {@link ANeuralNetworksModel_finish} has been
+ * called will return an error.
+ *
+ * See {@link ANeuralNetworksModel} for information on multithreaded usage.
+ *
+ * @param model The model to be modified.
+ * @param index The index of the model operand we're setting.
+ * @param buffer A pointer to the data to use.
+ * @param length The size in bytes of the data value.
+ *
+ * @return ANEURALNETWORKS_NO_ERROR if successful.
+ */
+int ANeuralNetworksModel_setOperandValue(ANeuralNetworksModel* model, int32_t index,
+ const void* buffer, size_t length);
+
+/**
+ * Sets an operand to a value stored in a memory object.
+ *
+ * The content of the memory is not copied. A reference to that memory is stored
+ * inside the model. The application is responsible for not changing the content
+ * of the memory region until all executions using this model have completed.
+ * As the data may be copied during processing, modifying the data after this call
+ * yields undefined results.
+ *
+ * To indicate that an optional operand should be considered missing,
+ * use {@link ANeuralNetworksModel_setOperandValue} instead, passing nullptr for buffer.
+ *
+ * Attempting to modify a model once {@link ANeuralNetworksModel_finish} has been
+ * called will return an error.
+ *
+ * See {@link ANeuralNetworksModel} for information on multithreaded usage.
+ *
+ * @param model The model to be modified.
+ * @param index The index of the model operand we're setting.
+ * @param buffer A pointer to the data to use.
+ * @param memory The memory containing the data.
+ * @param offset This specifies the location of the data within the memory.
+ * The offset is in bytes from the start of memory.
+ * @param length The size in bytes of the data value.
+ *
+ * @return ANEURALNETWORKS_NO_ERROR if successful.
+ */
+int ANeuralNetworksModel_setOperandValueFromMemory(ANeuralNetworksModel* model, int32_t index,
+ const ANeuralNetworksMemory* memory,
+ size_t offset, size_t length);
+
+/**
+ * Add an operation to a model.
+ *
+ * @param model The model to be modified.
+ * @param type The type of the operation.
+ * @param inputCount The number of entries in the inputs array.
+ * @param inputs An array of indexes identifying each operand.
+ * @param outputCount The number of entries in the outputs array.
+ * @param outputs An array of indexes identifying each operand.
+ *
+ * The operands specified by inputs and outputs must have been
+ * previously added by calls to {@link ANeuralNetworksModel_addOperand}.
+ *
+ * Attempting to modify a model once {@link ANeuralNetworksModel_finish} has been
+ * called will return an error.
+ *
+ * See {@link ANeuralNetworksModel} for information on multithreaded usage.
+ *
+ * @return ANEURALNETWORKS_NO_ERROR if successful.
+ */
+int ANeuralNetworksModel_addOperation(ANeuralNetworksModel* model,
+ ANeuralNetworksOperationType type, uint32_t inputCount,
+ const uint32_t* inputs, uint32_t outputCount,
+ const uint32_t* outputs);
+
+/**
+ * Specfifies which operands will be the model's inputs and outputs.
+ *
+ * An operand cannot be used for both input and output. Doing so will
+ * return an error.
+ *
+ * @param model The model to be modified.
+ * @param inputCount The number of entries in the inputs array.
+ * @param inputs An array of indexes identifying the input operands.
+ * @param outputCount The number of entries in the outputs array.
+ * @param outputs An array of indexes identifying the output operands.
+ *
+ * The operands specified by inputs and outputs must have been
+ * previously added by calls to {@link ANeuralNetworksModel_addOperand}.
+ *
+ * Attempting to modify a model once {@link ANeuralNetworksModel_finish} has been
+ * called will return an error.
+ *
+ * See {@link ANeuralNetworksModel} for information on multithreaded usage.
+ *
+ */
+int ANeuralNetworksModel_identifyInputsAndOutputs(ANeuralNetworksModel* model, uint32_t inputCount,
+ const uint32_t* inputs, uint32_t outputCount,
+ const uint32_t* outputs);
+
+/**
+ * Create a {@link ANeuralNetworksCompilation} to compile the given model.
+ *
+ * This only creates the object. Compilation is only performed once
+ * {@link ANeuralNetworksCompilation_finish} is invoked.
+ *
+ * {@link ANeuralNetworksCompilation_finish} should be called once
+ * all desired properties have been set on the compilation.
+ *
+ * {@link ANeuralNetworksModel_free} should be called once the compilation
+ * is no longer needed.
+ *
+ * The provided model must outlive the compilation.
+ *
+ * The model must already have been finished by a call to
+ * {@link ANeuralNetworksModel_finish}.
+ *
+ * See {@link ANeuralNetworksCompilation} for information on multithreaded usage.
+ *
+ * @param model The {@link ANeuralNetworksModel} to be compiled.
+ * @param compilation The newly created object or NULL if unsuccessful.
+ *
+ * @return ANEURALNETWORKS_NO_ERROR if successful, ANEURALNETWORKS_BAD_DATA
+ * if the model is invalid.
+ */
+int ANeuralNetworksCompilation_create(ANeuralNetworksModel* model,
+ ANeuralNetworksCompilation** compilation);
+
+/**
+ * Destroy a compilation.
+ *
+ * The compilation need not have been finished by a call to
+ * {@link ANeuralNetworksModel_finish}.
+ *
+ * See {@link ANeuralNetworksCompilation} for information on multithreaded usage.
+ *
+ * @param compilation The compilation to be destroyed. Passing NULL is acceptable and
+ * results in no operation.
+ */
+void ANeuralNetworksCompilation_free(ANeuralNetworksCompilation* compilation);
+
+/**
+ * Sets the execution preference.
+ *
+ * Provides guidance to the runtime when trade-offs are possible.
+ *
+ * See {@link ANeuralNetworksCompilation} for information on multithreaded usage.
+ *
+ * @param compilation The compilation to be modified.
+ * @param preference Either {@link PREFER_LOW_POWER},
+ * {@link PREFER_SINGLE_FAST_ANSWER}, or
+ * {@link PREFER_SUSTAINED_SPEED}.
+ *
+ * @return ANEURALNETWORKS_NO_ERROR if successful.
+ */
+int ANeuralNetworksCompilation_setPreference(ANeuralNetworksCompilation* compilation,
+ int32_t preference);
+
+/**
+ * Indicate that we have finished modifying a compilation. Required before
+ * calling {@link ANeuralNetworksExecution_create}.
+ *
+ * An application is responsible to make sure that no other thread uses
+ * the compilation at the same time.
+ *
+ * This function must only be called once for a given compilation.
+ *
+ * See {@link ANeuralNetworksCompilation} for information on multithreaded usage.
+ *
+ * @param compilation The compilation to be finished.
+ *
+ * @return ANEURALNETWORKS_NO_ERROR if successful.
+ */
+int ANeuralNetworksCompilation_finish(ANeuralNetworksCompilation* compilation);
+
+/**
+ * Create a {@link ANeuralNetworksExecution} to apply the given compilation.
+ * This only creates the object. Computation is only performed once
+ * {@link ANeuralNetworksExecution_startCompute} is invoked.
+ *
+ * The provided compilation must outlive the execution.
+ *
+ * See {@link ANeuralNetworksExecution} for information on multithreaded usage.
+ *
+ * @param compilation The {@link ANeuralNetworksCompilation} to be evaluated.
+ * @param execution The newly created object or NULL if unsuccessful.
+ *
+ * @return ANEURALNETWORKS_NO_ERROR if successful, ANEURALNETWORKS_BAD_DATA
+ * if the compilation is invalid.
+ */
+int ANeuralNetworksExecution_create(ANeuralNetworksCompilation* compilation,
+ ANeuralNetworksExecution** execution);
+
+/**
+ * Destroy an execution.
+ *
+ * If called on an execution for which
+ * {@link ANeuralNetworksExecution_startCompute} has been called, the
+ * function will return immediately but will mark the execution to be deleted
+ * once the computation completes. The related {@link ANeuralNetworksEvent}
+ * will be signaled and the {@link ANeuralNetworksEvent_wait} will return
+ * ANEURALNETWORKS_ERROR_DELETED.
+ *
+ * See {@link ANeuralNetworksExecution} for information on multithreaded usage.
+ *
+ * @param execution The execution to be destroyed. Passing NULL is acceptable and
+ * results in no operation.
+ */
+void ANeuralNetworksExecution_free(ANeuralNetworksExecution* execution);
+
+/**
+ * Associate a user buffer with an input of the model of the
+ * {@link ANeuralNetworksExecution}.
+ *
+ *
The provided buffer must outlive the execution.
+ *
+ * If the input is optional, you can indicate that it is omitted by
+ * passing nullptr for buffer and 0 for length.
+ *
+ * See {@link ANeuralNetworksExecution} for information on multithreaded usage.
+ *
+ * @param execution The execution to be modified.
+ * @param index The index of the input argument we are setting. It is
+ * an index into the lists passed to
+ * {@link ANeuralNetworksModel_identifyInputsAndOutputs}. It is not
+ * the index associated with {@link ANeuralNetworksModel_addOperand}.
+ * @param type The type of the operand. This should be used to specify the
+ * dimensions that were set to 0 when the operand was added to the
+ * model. All other properties of the type must be the same as
+ * specified in the model. If the type is the same as specified
+ * when the model was built, NULL can be passed.
+ * @param buffer The buffer containing the data.
+ * @param length The length in bytes of the buffer.
+ *
+ * @return ANEURALNETWORKS_NO_ERROR if successful, ANEURALNETWORKS_BAD_DATA if the
+ * name is not recognized or the buffer is too small for the input.
+ */
+int ANeuralNetworksExecution_setInput(ANeuralNetworksExecution* execution, int32_t index,
+ const ANeuralNetworksOperandType* type, const void* buffer,
+ size_t length);
+
+/**
+ * Associate part of a memory object with an input of the model of the
+ * {@link ANeuralNetworksExecution}.
+ *
+ * The provided memory must outlive the execution.
+ *
+ * If the input is optional, you can indicate that it is omitted by
+ * using @{Link ANeuralNetworks_setInput} instead, passing nullptr for buffer
+ * and 0 for length.
+ *
+ * See {@link ANeuralNetworksExecution} for information on multithreaded usage.
+ *
+ * @param execution The execution to be modified.
+ * @param index The index of the input argument we are setting. It is
+ * an index into the lists passed to
+ * {@link ANeuralNetworksModel_identifyInputsAndOutputs}. It is not
+ * the index associated with {@link ANeuralNetworksModel_addOperand}.
+ * @param type The type of the operand. This can be used to specify the
+ * dimensions that were set to 0 when the operand was added to the
+ * model. All other values must be the same as specified in the
+ * model. If the type is the same as specified when the model
+ * was built, NULL can be passed.
+ * @param memory The memory containing the data.
+ * @param offset This specifies the location of the data whithin the memory.
+ * The offset is in bytes from the start of memory.
+ * @param length The size in bytes of the data value.
+ *
+ * @return ANEURALNETWORKS_NO_ERROR if successful, ANEURALNETWORKS_BAD_DATA if the
+ * name is not recognized or the buffer is too small for the input.
+ */
+int ANeuralNetworksExecution_setInputFromMemory(ANeuralNetworksExecution* execution, int32_t index,
+ const ANeuralNetworksOperandType* type,
+ const ANeuralNetworksMemory* memory, size_t offset,
+ size_t length);
+
+/**
+ * Associate a user buffer with an output of the model of the
+ * {@link ANeuralNetworksExecution}.
+ *
+ * If the output is optional, you can indicate that it is omitted by
+ * passing nullptr for buffer and 0 for length.
+ *
+ * The provided buffer must outlive the execution.
+ *
+ * See {@link ANeuralNetworksExecution} for information on multithreaded usage.
+ *
+ * @param execution The execution to be modified.
+ * @param index The index of the output argument we are setting. It is
+ * an index into the lists passed to
+ * {@link ANeuralNetworksModel_identifyInputsAndOutputs}. It is not
+ * the index associated with {@link ANeuralNetworksModel_addOperand}.
+ * @param type The type of the operand. This can be used to specify the
+ * dimensions that were set to 0 when the operand was added to the
+ * model. All other values must be the same as specified in the
+ * model. If the type is the same as specified when the model
+ * was built, NULL can be passed.
+ * @param buffer The buffer where the data is to be written.
+ * @param length The length in bytes of the buffer.
+ *
+ * @return ANEURALNETWORKS_NO_ERROR if successful, ANEURALNETWORKS_BAD_DATA if the
+ * name is not recognized or the buffer is too small for the output.
+ */
+int ANeuralNetworksExecution_setOutput(ANeuralNetworksExecution* execution, int32_t index,
+ const ANeuralNetworksOperandType* type, void* buffer,
+ size_t length);
+
+/**
+ * Associate part of a memory object with an output of the model of the
+ * {@link ANeuralNetworksExecution}.
+ *
+ * If the output is optional, you can indicate that it is omitted by
+ * using @{Link ANeuralNetworks_setOutput} instead, passing nullptr for buffer
+ * and 0 for length.
+ *
+ * The provided memory must outlive the execution.
+ *
+ * See {@link ANeuralNetworksExecution} for information on multithreaded usage.
+ *
+ * @param execution The execution to be modified.
+ * @param index The index of the output argument we are setting. It is
+ * an index into the lists passed to
+ * {@link ANeuralNetworksModel_identifyInputsAndOutputs}. It is not
+ * the index associated with {@link ANeuralNetworksModel_addOperand}.
+ * @param type The type of the operand. This can be used to specify the
+ * dimensions that were set to 0 when the operand was added to the
+ * model. All other values must be the same as specified in the
+ * model. If the type is the same as specified when the model
+ * was built, NULL can be passed.
+ * @param memory The memory where the data is to be stored.
+ * @param offset This specifies the location of the data whithin the memory.
+ * The offset is in bytes from the start of memory.
+ * @param length The length in bytes of the data value.
+ *
+ * @return ANEURALNETWORKS_NO_ERROR if successful, ANEURALNETWORKS_BAD_DATA if the
+ * name is not recognized or the buffer is too small for the output.
+ */
+int ANeuralNetworksExecution_setOutputFromMemory(ANeuralNetworksExecution* execution, int32_t index,
+ const ANeuralNetworksOperandType* type,
+ const ANeuralNetworksMemory* memory, size_t offset,
+ size_t length);
+
+/**
+ * Schedule evaluation of the execution.
+ *
+ * Schedules evaluation of the execution. Once the model has been
+ * applied and the outputs are ready to be consumed, the returned event will be
+ * signaled. Use {@link ANeuralNetworksEvent_wait} to wait for that event.
+ *
+ *
+ * Multiple executions can be scheduled and evaluated concurrently. The
+ * runtime makes no guarantee on the ordering of completion of
+ * executions. If it's important to the application, the application
+ * should enforce the ordering by using
+ * {@link ANeuralNetworksEvent_wait}.
+ *
+ * ANeuralNetworksEvent_wait must be called to recuperate the resources used
+ * by the execution.
+ *
+ * See {@link ANeuralNetworksExecution} for information on multithreaded usage.
+ *
+ * @param execution The execution to be scheduled and executed.
+ * @param event The event that will be signaled on completion. event is set to
+ * NULL if there's an error.
+ *
+ * @return ANEURALNETWORKS_NO_ERROR if successful.
+ */
+int ANeuralNetworksExecution_startCompute(ANeuralNetworksExecution* execution,
+ ANeuralNetworksEvent** event);
+
+/**
+ * Waits until the execution completes.
+ *
+ * More than one thread can wait on an event. When the execution completes,
+ * all threads will be released.
+ *
+ * See {@link ANeuralNetworksExecution} for information on multithreaded usage.
+ *
+ * @return ANEURALNETWORKS_NO_ERROR if the execution completed normally.
+ */
+int ANeuralNetworksEvent_wait(ANeuralNetworksEvent* event);
+
+/**
+ * Destroys the event.
+ *
+ * See {@link ANeuralNetworksExecution} for information on multithreaded usage.
+ */
+void ANeuralNetworksEvent_free(ANeuralNetworksEvent* event);
+
+__END_DECLS
+
+#endif // __ANDROID_API__ >= 27
+
+#endif // ANDROID_ML_NN_RUNTIME_NEURAL_NETWORKS_H
+
+/** @} */
diff --git a/compiler/ann-ref/.FORMATDENY b/compiler/ann-ref/.FORMATDENY
new file mode 100644
index 000000000..e69de29bb
diff --git a/compiler/ann-ref/CMakeLists.txt b/compiler/ann-ref/CMakeLists.txt
new file mode 100644
index 000000000..0f3822514
--- /dev/null
+++ b/compiler/ann-ref/CMakeLists.txt
@@ -0,0 +1,32 @@
+nnas_find_package(Eigen QUIET)
+
+if(NOT Eigen_FOUND)
+ return()
+endif(NOT Eigen_FOUND)
+
+nnas_find_package(GEMMLowp QUIET)
+
+if(NOT GEMMLowp_FOUND)
+ return()
+endif(NOT GEMMLowp_FOUND)
+
+nnas_include(TargetRequire)
+
+TargetRequire_Assert(ann_api eigen gemmlowp)
+
+file(GLOB_RECURSE SOURCES "src/*.cpp")
+
+function(ann_ref_configure TARGET)
+ target_include_directories(${TARGET} PRIVATE src)
+ target_link_libraries(${TARGET} PRIVATE ann_api)
+ target_link_libraries(${TARGET} PRIVATE eigen)
+ target_link_libraries(${TARGET} PRIVATE gemmlowp)
+endfunction(ann_ref_configure)
+
+add_library(ann_ref_static STATIC ${SOURCES})
+set_target_properties(ann_ref_static PROPERTIES POSITION_INDEPENDENT_CODE ON)
+ann_ref_configure(ann_ref_static)
+
+add_library(ann_ref_shared SHARED ${SOURCES})
+set_target_properties(ann_ref_shared PROPERTIES OUTPUT_NAME neuralnetworks)
+ann_ref_configure(ann_ref_shared)
diff --git a/compiler/ann-ref/README.md b/compiler/ann-ref/README.md
new file mode 100644
index 000000000..6b13b5fdd
--- /dev/null
+++ b/compiler/ann-ref/README.md
@@ -0,0 +1,7 @@
+# ann-ref
+
+_ann-ref_ is a reference Android NN API implementation for Linux.
+
+**DISCLAIMER**
+
+_ann-ref_ is incomplete in terms of its functionalities.
diff --git a/compiler/ann-ref/requires.cmake b/compiler/ann-ref/requires.cmake
new file mode 100644
index 000000000..b6b647600
--- /dev/null
+++ b/compiler/ann-ref/requires.cmake
@@ -0,0 +1 @@
+require("ann-api")
diff --git a/compiler/ann-ref/src/Assert.h b/compiler/ann-ref/src/Assert.h
new file mode 100644
index 000000000..744305607
--- /dev/null
+++ b/compiler/ann-ref/src/Assert.h
@@ -0,0 +1,34 @@
+/*
+ * Copyright (c) 2018 Samsung Electronics Co., Ltd. All Rights Reserved
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * 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 __ASSERT_H__
+#define __ASSERT_H__
+
+#include "Logging.h"
+
+// Assert macro, as Android does not generally support assert.
+#define ASSERT(v) \
+ do \
+ { \
+ if (!(v)) \
+ { \
+ LOG(ERROR) << "'" << #v << "' failed at " << __FILE__ << ":" << __LINE__ << "'\n"; \
+ abort(); \
+ } \
+ } while (0)
+
+#endif // __ASSERT_H__
diff --git a/compiler/ann-ref/src/CompilationBuilder.cpp b/compiler/ann-ref/src/CompilationBuilder.cpp
new file mode 100644
index 000000000..a14dbc1b6
--- /dev/null
+++ b/compiler/ann-ref/src/CompilationBuilder.cpp
@@ -0,0 +1,52 @@
+/*
+ * Copyright (c) 2018 Samsung Electronics Co., Ltd. All Rights Reserved
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * 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 "ExecutionBuilder.h"
+#include "CompilationBuilder.h"
+
+#include "Logging.h"
+
+CompilationBuilder::CompilationBuilder(const ModelBuilder *model) : mModel(model)
+{
+ VLOG(COMPILATION) << "CompilationBuilder::CompilationBuilder";
+}
+
+int CompilationBuilder::finish()
+{
+ if (mFinished)
+ {
+ LOG(ERROR) << "ANeuralNetworksCompilation_finish called more than once";
+ return ANEURALNETWORKS_BAD_STATE;
+ }
+ // TODO validate the rest
+
+ mFinished = true;
+
+ return ANEURALNETWORKS_NO_ERROR;
+}
+
+int CompilationBuilder::createExecution(ExecutionBuilder **execution)
+{
+ if (!mFinished)
+ {
+ LOG(ERROR) << "ANeuralNetworksExecution_create passed an unfinished compilation";
+ *execution = nullptr;
+ return ANEURALNETWORKS_BAD_STATE;
+ }
+ *execution = new ExecutionBuilder(mModel);
+ return (*execution ? ANEURALNETWORKS_NO_ERROR : ANEURALNETWORKS_OUT_OF_MEMORY);
+}
diff --git a/compiler/ann-ref/src/CompilationBuilder.h b/compiler/ann-ref/src/CompilationBuilder.h
new file mode 100644
index 000000000..92c1ab4bf
--- /dev/null
+++ b/compiler/ann-ref/src/CompilationBuilder.h
@@ -0,0 +1,44 @@
+/*
+ * Copyright (c) 2018 Samsung Electronics Co., Ltd. All Rights Reserved
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * 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 __COMPILATION_BUILDER_H__
+#define __COMPILATION_BUILDER_H__
+
+#include "NeuralNetworks.h"
+
+class ModelBuilder;
+class ExecutionBuilder;
+
+class CompilationBuilder
+{
+public:
+ CompilationBuilder(const ModelBuilder *model);
+
+public:
+ int finish();
+
+ int createExecution(ExecutionBuilder **execution);
+
+private:
+ const ModelBuilder *mModel;
+
+ // Once the compilation has been finished, we should not allow further
+ // modifications to the compilation.
+ bool mFinished = false;
+};
+
+#endif // __COMPILATION_BUILDER_H__
diff --git a/compiler/ann-ref/src/ExecutionBuilder.cpp b/compiler/ann-ref/src/ExecutionBuilder.cpp
new file mode 100644
index 000000000..9df78bfc3
--- /dev/null
+++ b/compiler/ann-ref/src/ExecutionBuilder.cpp
@@ -0,0 +1,196 @@
+/*
+ * Copyright (c) 2018 Samsung Electronics Co., Ltd. All Rights Reserved
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * 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 "ExecutionBuilder.h"
+#include "CompilationBuilder.h"
+#include "ModelBuilder.h"
+
+#include "Executor.h"
+
+#include "Logging.h"
+#include "Validation.h"
+
+static void setRequestArgumentArray(const std::vector &argumentInfos,
+ std::vector *ioInfos)
+{
+ size_t count = argumentInfos.size();
+ ioInfos->resize(count);
+ for (size_t i = 0; i < count; i++)
+ {
+ const auto &info = argumentInfos[i];
+ (*ioInfos)[i] = {
+ .hasNoValue = info.state == ModelArgumentInfo::HAS_NO_VALUE,
+ .location = info.locationAndLength,
+ .dimensions = info.dimensions,
+ };
+ }
+}
+
+bool setRunTimePoolInfosFromMemories(std::vector *poolInfos,
+ const std::vector &pools)
+{
+ poolInfos->resize(pools.size());
+ for (size_t i = 0; i < pools.size(); i++)
+ {
+ auto &poolInfo = (*poolInfos)[i];
+ if (!poolInfo.set(pools[i]))
+ {
+ LOG(ERROR) << "Could not map pool";
+ return false;
+ }
+ }
+ return true;
+}
+
+ExecutionBuilder::ExecutionBuilder(const ModelBuilder *model)
+ : mModel(model), mInputs(mModel->inputCount()), mOutputs(mModel->outputCount())
+{
+ VLOG(EXECUTION) << "ExecutionBuilder::ExecutionBuilder";
+}
+
+int ExecutionBuilder::setInput(uint32_t index, const ANeuralNetworksOperandType *type,
+ const void *buffer, size_t length)
+{
+ uint32_t count = static_cast(mInputs.size());
+ if (index >= count)
+ {
+ LOG(ERROR) << "ANeuralNetworksExecution_setInput bad index " << index << " " << count;
+ return ANEURALNETWORKS_BAD_DATA;
+ }
+ if (type != nullptr)
+ {
+ int n = validateOperandType(*type, "ANeuralNetworksExecution_setInput", false);
+ if (n != ANEURALNETWORKS_NO_ERROR)
+ {
+ return n;
+ }
+ }
+ if (length > 0xFFFFFFFF)
+ {
+ LOG(ERROR) << "ANeuralNetworksExecution_setInput input exceeds max length " << length;
+ return ANEURALNETWORKS_BAD_DATA;
+ }
+ uint32_t l = static_cast(length);
+ return mInputs[index].setFromPointer(mModel->getInputOperand(index), type,
+ const_cast(buffer), l);
+}
+
+int ExecutionBuilder::setInputFromMemory(uint32_t index, const ANeuralNetworksOperandType *type,
+ const Memory *memory, size_t offset, size_t length)
+{
+ uint32_t count = static_cast(mInputs.size());
+ if (index >= count)
+ {
+ LOG(ERROR) << "ANeuralNetworksExecution_setInputFromMemory bad index " << index << " " << count;
+ return ANEURALNETWORKS_BAD_DATA;
+ }
+ if (!memory->validateSize(offset, length))
+ {
+ return ANEURALNETWORKS_BAD_DATA;
+ }
+ uint32_t poolIndex = mMemories.add(memory);
+ return mInputs[index].setFromMemory(mModel->getInputOperand(index), type, poolIndex, offset,
+ length);
+}
+
+int ExecutionBuilder::setOutput(uint32_t index, const ANeuralNetworksOperandType *type,
+ void *buffer, size_t length)
+{
+ uint32_t count = static_cast(mOutputs.size());
+ if (index >= count)
+ {
+ LOG(ERROR) << "ANeuralNetworksExecution_setOutput bad index " << index << " " << count;
+ return ANEURALNETWORKS_BAD_DATA;
+ }
+ if (type != nullptr)
+ {
+ int n = validateOperandType(*type, "ANeuralNetworksExecution_setOutput", false);
+ if (n != ANEURALNETWORKS_NO_ERROR)
+ {
+ return n;
+ }
+ }
+ if (length > 0xFFFFFFFF)
+ {
+ LOG(ERROR) << "ANeuralNetworksExecution_setOutput input exceeds max length " << length;
+ return ANEURALNETWORKS_BAD_DATA;
+ }
+ uint32_t l = static_cast(length);
+ return mOutputs[index].setFromPointer(mModel->getOutputOperand(index), type, buffer, l);
+}
+
+int ExecutionBuilder::setOutputFromMemory(uint32_t index, const ANeuralNetworksOperandType *type,
+ const Memory *memory, size_t offset, size_t length)
+{
+ // Should be similar to StepExecutor::setInputOrOutputFromTemporaryMemory()
+
+ uint32_t count = static_cast(mOutputs.size());
+ if (index >= count)
+ {
+ LOG(ERROR) << "ANeuralNetworksExecution_setOutputFromMemory bad index " << index << " "
+ << count;
+ return ANEURALNETWORKS_BAD_DATA;
+ }
+ if (!memory->validateSize(offset, length))
+ {
+ return ANEURALNETWORKS_BAD_DATA;
+ }
+ // TODO validate the rest
+ uint32_t poolIndex = mMemories.add(memory);
+ return mOutputs[index].setFromMemory(mModel->getOutputOperand(index), type, poolIndex, offset,
+ length);
+}
+
+int ExecutionBuilder::startCompute(void)
+{
+ Model model;
+ mModel->publish(&model);
+
+ // modelPoolInfo holds the infomation of pre-allocated memory pools during model construction
+ std::vector modelPoolInfos;
+ if (!setRunTimePoolInfosFromMemories(&modelPoolInfos, model.pools))
+ {
+ return ANEURALNETWORKS_UNMAPPABLE;
+ }
+
+ std::vector requestPoolInfos;
+ uint32_t count = mMemories.size();
+ requestPoolInfos.resize(count);
+ // Create as many pools as there are input / output
+ auto fixPointerArguments = [&requestPoolInfos](std::vector &argumentInfos) {
+ for (ModelArgumentInfo &argumentInfo : argumentInfos)
+ {
+ if (argumentInfo.state == ModelArgumentInfo::POINTER)
+ {
+ RunTimePoolInfo runTimeInfo;
+ runTimeInfo.buffer = static_cast(argumentInfo.buffer);
+ argumentInfo.locationAndLength.poolIndex = static_cast(requestPoolInfos.size());
+ argumentInfo.locationAndLength.offset = 0;
+ requestPoolInfos.push_back(runTimeInfo);
+ }
+ }
+ };
+ fixPointerArguments(mInputs);
+ fixPointerArguments(mOutputs);
+
+ Request request;
+ setRequestArgumentArray(mInputs, &request.inputs);
+ setRequestArgumentArray(mOutputs, &request.outputs);
+
+ Executor executor;
+ return executor.run(model, request, modelPoolInfos, requestPoolInfos);
+}
diff --git a/compiler/ann-ref/src/ExecutionBuilder.h b/compiler/ann-ref/src/ExecutionBuilder.h
new file mode 100644
index 000000000..0bf5ef755
--- /dev/null
+++ b/compiler/ann-ref/src/ExecutionBuilder.h
@@ -0,0 +1,73 @@
+/*
+ * Copyright (c) 2018 Samsung Electronics Co., Ltd. All Rights Reserved
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * 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 __EXECUTION_BUILDER_H__
+#define __EXECUTION_BUILDER_H__
+
+#include "NeuralNetworks.h"
+
+#include "ModelBuilder.h"
+#include "ModelArgumentInfo.h"
+
+#include "Memory.h"
+
+#include
+
+class ModelBuilder;
+
+class ExecutionBuilder
+{
+public:
+ ExecutionBuilder(const ModelBuilder *);
+
+public:
+ int setInput(uint32_t index, const ANeuralNetworksOperandType *type, const void *buffer,
+ size_t length);
+ int setInputFromMemory(uint32_t index, const ANeuralNetworksOperandType *type,
+ const Memory *memory, size_t offset, size_t length);
+
+public:
+ int setOutput(uint32_t index, const ANeuralNetworksOperandType *type, void *buffer,
+ size_t length);
+ int setOutputFromMemory(uint32_t index, const ANeuralNetworksOperandType *type,
+ const Memory *memory, size_t offset, size_t length);
+
+public:
+ int startCompute(void);
+
+private:
+ const ModelBuilder *mModel;
+
+private:
+ // The information we'll send to the driver about the inputs and outputs.
+ // Note that we build this in two steps:
+ // 1. As the arguments are specified, set the corresponding mInputs or mOutputs element.
+ // If set from a pointer, don't set the location in the RequestArgument but store it
+ // instead in mInputBuffers or mOutputBuffers.
+ // 2. Once we have all the inputs and outputs, if needed, allocate shared memory for
+ // the m*Buffers entries. Copy the input values into the shared memory.
+ // We do this to avoid creating a lot of shared memory objects if we have a lot of
+ // parameters specified via pointers. We also avoid copying in the case where
+ // some of the nodes will interpreted on the CPU anyway.
+ std::vector mInputs;
+ std::vector mOutputs;
+
+private:
+ MemoryTracker mMemories;
+};
+
+#endif // __EXECUTION_BUILDER_H__
diff --git a/compiler/ann-ref/src/Executor.cpp b/compiler/ann-ref/src/Executor.cpp
new file mode 100644
index 000000000..888fc9c81
--- /dev/null
+++ b/compiler/ann-ref/src/Executor.cpp
@@ -0,0 +1,814 @@
+/*
+ * Copyright (c) 2018 Samsung Electronics Co., Ltd. All Rights Reserved
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * 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 "Executor.h"
+
+#include "NeuralNetworks.h"
+#include "Shape.h"
+
+#include "ops/Add.h"
+#include "ops/Add.float.h"
+#include "ops/Conv2D.h"
+#include "ops/Conv2D.float.h"
+#include "ops/DepthwiseConv2D.h"
+#include "ops/DepthwiseConv2D.float.h"
+#include "ops/AvgPool2D.h"
+#include "ops/AvgPool2D.float.h"
+#include "ops/MaxPool2D.h"
+#include "ops/MaxPool2D.float.h"
+#include "ops/Mul.h"
+#include "ops/Mul.float.h"
+#include "ops/ReLU.h"
+#include "ops/ReLU.float.h"
+#include "ops/ReLU6.h"
+#include "ops/ReLU6.float.h"
+#include "ops/Concatenation.h"
+#include "ops/Concatenation.float.h"
+#include "ops/Reshape.h"
+#include "ops/Softmax.h"
+#include "ops/Softmax.float.h"
+#include "ops/FullyConnected.h"
+#include "ops/FullyConnected.float.h"
+#include "ops/Pad.h"
+#include "ops/Sub.h"
+#include "ops/Sub.float.h"
+#include "ops/Div.h"
+#include "ops/Div.float.h"
+
+#include "Logging.h"
+#include "Assert.h"
+
+enum PaddingScheme
+{
+ kPaddingUnknown = 0,
+ kPaddingSame = 1,
+ kPaddingValid = 2,
+};
+
+inline void calculateExplicitPadding(int32_t in_size, int32_t stride, int32_t filter_size,
+ int32_t padding_implicit, int32_t *padding_head,
+ int32_t *padding_tail)
+{
+ *padding_head = 0;
+ *padding_tail = 0;
+
+ if (padding_implicit == kPaddingSame)
+ {
+ int32_t out_size = (in_size + stride - 1) / stride;
+ int32_t tmp = (out_size - 1) * stride + filter_size;
+ if (tmp > in_size)
+ {
+ *padding_head = (tmp - in_size) / 2;
+ *padding_tail = (tmp - in_size) - *padding_head;
+ }
+ }
+}
+
+template static inline T getScalarData(const RunTimeOperandInfo &info)
+{
+ // TODO: Check buffer is at least as long as size of data.
+ T *data = reinterpret_cast(info.buffer);
+ return data[0];
+}
+
+// Updates the RunTimeOperandInfo with the newly calculated shape.
+// Allocate the buffer if we need to.
+static bool setInfoAndAllocateIfNeeded(RunTimeOperandInfo *info, const Shape &shape)
+{
+ // For user-provided model output operands, the parameters must match the Shape
+ // calculated from the preparation step.
+ if (info->lifetime == OperandLifeTime::MODEL_OUTPUT)
+ {
+ if (info->type != shape.type || info->dimensions != shape.dimensions)
+ {
+ LOG(ERROR) << "Invalid type or dimensions for model output";
+ return false;
+ }
+ if (info->type == OperandType::TENSOR_QUANT8_ASYMM &&
+ (info->scale != shape.scale || info->zeroPoint != shape.offset))
+ {
+ LOG(ERROR) << "Invalid scale or zeroPoint for model output";
+ return false;
+ }
+ }
+ info->type = shape.type;
+ info->dimensions = shape.dimensions;
+ info->scale = shape.scale;
+ info->zeroPoint = shape.offset;
+ if (info->lifetime == OperandLifeTime::TEMPORARY_VARIABLE && info->buffer == nullptr)
+ {
+ uint32_t length = sizeOfData(info->type, info->dimensions);
+ info->buffer = new uint8_t[length];
+ if (info->buffer == nullptr)
+ {
+ return false;
+ }
+ }
+ return true;
+}
+
+// Ignore the .pools entry in model and request. This will have been taken care of
+// by the caller.
+int Executor::run(const Model &model, const Request &request,
+ const std::vector &modelPoolInfos,
+ const std::vector &requestPoolInfos)
+{
+ VLOG(CPUEXE) << "Executor::run()";
+
+ mModel = &model;
+ mRequest = &request; // TODO check if mRequest is needed
+ initializeRunTimeInfo(modelPoolInfos, requestPoolInfos);
+ // The model has serialized the operation in execution order.
+ for (const auto &operation : model.operations)
+ {
+ int n = executeOperation(operation);
+ if (n != ANEURALNETWORKS_NO_ERROR)
+ {
+ return n;
+ }
+ }
+ mModel = nullptr;
+ mRequest = nullptr;
+ VLOG(CPUEXE) << "Completed run normally";
+ return ANEURALNETWORKS_NO_ERROR;
+}
+
+bool Executor::initializeRunTimeInfo(const std::vector &modelPoolInfos,
+ const std::vector &requestPoolInfos)
+{
+ VLOG(CPUEXE) << "Executor::initializeRunTimeInfo";
+ const size_t count = mModel->operands.size();
+ mOperands.resize(count);
+
+ // Start by setting the runtime info to what's in the model.
+ for (size_t i = 0; i < count; i++)
+ {
+ const Operand &from = mModel->operands[i];
+ RunTimeOperandInfo &to = mOperands[i];
+ to.type = from.type;
+ to.dimensions = from.dimensions;
+ to.scale = from.scale;
+ to.zeroPoint = from.zeroPoint;
+ to.length = from.location.length;
+ to.lifetime = from.lifetime;
+ switch (from.lifetime)
+ {
+ case OperandLifeTime::TEMPORARY_VARIABLE:
+ to.buffer = nullptr;
+ to.numberOfUsesLeft = from.numberOfConsumers;
+ break;
+ case OperandLifeTime::CONSTANT_COPY:
+ to.buffer = const_cast(&mModel->operandValues[from.location.offset]);
+ to.numberOfUsesLeft = 0;
+ break;
+ case OperandLifeTime::CONSTANT_REFERENCE:
+ {
+ auto poolIndex = from.location.poolIndex;
+ ASSERT(poolIndex < modelPoolInfos.size());
+ auto &r = modelPoolInfos[poolIndex];
+ to.buffer = r.buffer + from.location.offset;
+ to.numberOfUsesLeft = 0;
+ break;
+ }
+ case OperandLifeTime::MODEL_INPUT:
+ case OperandLifeTime::MODEL_OUTPUT:
+ case OperandLifeTime::NO_VALUE:
+ to.buffer = nullptr;
+ to.numberOfUsesLeft = 0;
+ break;
+ default:
+ ASSERT(false);
+ break;
+ }
+ }
+
+ // Adjust the runtime info for the arguments passed to the model,
+ // modifying the buffer location, and possibly the dimensions.
+ auto updateForArguments = [this, &requestPoolInfos](const std::vector &indexes,
+ const std::vector &arguments) {
+ ASSERT(indexes.size() == arguments.size());
+ for (size_t i = 0; i < indexes.size(); i++)
+ {
+ const uint32_t operandIndex = indexes[i];
+ const RequestArgument &from = arguments[i];
+ RunTimeOperandInfo &to = mOperands[operandIndex];
+ if (from.dimensions.size() > 0)
+ {
+ // It's the responsibility of the caller to validate that
+ // from.dimensions only modifies the dimensions that were
+ // unspecified in the model. That's the case in SampleDriver.cpp
+ // with the call to validateRequest().
+ // TODO make sure that's the case for the default CPU path.
+ to.dimensions = from.dimensions;
+ }
+ if (from.hasNoValue)
+ {
+ to.lifetime = OperandLifeTime::NO_VALUE;
+ ASSERT(to.buffer == nullptr);
+ }
+ else
+ {
+ auto poolIndex = from.location.poolIndex;
+ ASSERT(poolIndex < requestPoolInfos.size());
+ auto &r = requestPoolInfos[poolIndex];
+ to.buffer = r.buffer + from.location.offset;
+ }
+ }
+ };
+ updateForArguments(mModel->inputIndexes, mRequest->inputs);
+ updateForArguments(mModel->outputIndexes, mRequest->outputs);
+
+ return true;
+}
+
+void Executor::freeNoLongerUsedOperands(const std::vector &inputs)
+{
+ for (uint32_t i : inputs)
+ {
+ auto &info = mOperands[i];
+ // Check if it's a static or model input/output.
+ if (info.numberOfUsesLeft == 0)
+ {
+ continue;
+ }
+ info.numberOfUsesLeft--;
+ if (info.numberOfUsesLeft == 0)
+ {
+ ASSERT(info.buffer != nullptr);
+ delete[] info.buffer;
+ info.buffer = nullptr;
+ }
+ }
+}
+
+int Executor::executeOperation(const Operation &operation)
+{
+ const std::vector &ins = operation.inputs;
+ const std::vector &outs = operation.outputs;
+ bool success = false;
+
+ // Function to verify that the number of input and output parameters
+ // matches what is expected. Also checks that all the parameters have
+ // values. This function is to be used only for operations that do not
+ // accept optional arguments.
+ // TODO Have a version that works for optional arguments.
+ auto allParametersPresent = [&operation, &ins, &outs, this](size_t requiredIns,
+ size_t requiredOuts) -> bool {
+ auto verify = [&operation, this](size_t requiredCount, const std::vector &indexes,
+ const char *type) -> bool {
+ size_t actualCount = indexes.size();
+ if (actualCount != requiredCount)
+ {
+ LOG(ERROR) << getOperationName(operation.type) << ": Invalid number of " << type
+ << " operands. Got " << actualCount << " of " << requiredCount;
+ return false;
+ }
+ for (size_t i = 0; i < actualCount; i++)
+ {
+ if (mOperands[indexes[i]].lifetime == OperandLifeTime::NO_VALUE)
+ {
+ LOG(ERROR) << getOperationName(operation.type) << " " << type << " operand " << i
+ << " is required but missing.";
+ return false;
+ }
+ }
+ return true;
+ };
+ return verify(requiredIns, ins, "in") && verify(requiredOuts, outs, "out");
+ };
+
+ switch (operation.type)
+ {
+ case OperationType::ADD:
+ {
+ if (!allParametersPresent(3, 1))
+ {
+ return ANEURALNETWORKS_BAD_DATA;
+ }
+ const RunTimeOperandInfo &in1 = mOperands[ins[0]];
+ const RunTimeOperandInfo &in2 = mOperands[ins[1]];
+ int32_t activation = getScalarData(mOperands[ins[2]]);
+
+ RunTimeOperandInfo &out = mOperands[outs[0]];
+ Shape outShape = out.shape();
+
+ ASSERT(in1.type == OperandType::TENSOR_FLOAT32);
+ {
+ success = addPrepare(in1.shape(), in2.shape(), &outShape) &&
+ setInfoAndAllocateIfNeeded(&out, outShape) &&
+ addFloat32(reinterpret_cast(in1.buffer), in1.shape(),
+ reinterpret_cast(in2.buffer), in2.shape(), activation,
+ reinterpret_cast(out.buffer), outShape);
+ }
+ }
+ break;
+ case OperationType::DEPTHWISE_CONV_2D:
+ {
+ const size_t inCount = ins.size();
+ if ((inCount != 11 && inCount != 8) || !allParametersPresent(inCount, 1))
+ {
+ return ANEURALNETWORKS_BAD_DATA;
+ }
+ const RunTimeOperandInfo &input = mOperands[ins[0]];
+ const RunTimeOperandInfo &filter = mOperands[ins[1]];
+ const RunTimeOperandInfo &bias = mOperands[ins[2]];
+
+ int32_t padding_left, padding_right;
+ int32_t padding_top, padding_bottom;
+ int32_t stride_width, stride_height;
+ int32_t depth_multiplier;
+ int32_t activation;
+
+ if (inCount == 11)
+ {
+ padding_left = getScalarData(mOperands[ins[3]]);
+ padding_right = getScalarData(mOperands[ins[4]]);
+ padding_top = getScalarData(mOperands[ins[5]]);
+ padding_bottom = getScalarData(mOperands[ins[6]]);
+ stride_width = getScalarData(mOperands[ins[7]]);
+ stride_height = getScalarData(mOperands[ins[8]]);
+ depth_multiplier = getScalarData(mOperands[ins[9]]);
+ activation = getScalarData(mOperands[ins[10]]);
+ }
+ else
+ {
+ int32_t padding_implicit = getScalarData(mOperands[ins[3]]);
+ stride_width = getScalarData(mOperands[ins[4]]);
+ stride_height = getScalarData(mOperands[ins[5]]);
+ depth_multiplier = getScalarData(mOperands[ins[6]]);
+ activation = getScalarData(mOperands[ins[7]]);
+
+ Shape inputShape = input.shape();
+ Shape filterShape = filter.shape();
+ int32_t input_width = getSizeOfDimension(inputShape, 2);
+ int32_t input_height = getSizeOfDimension(inputShape, 1);
+ int32_t filter_width = getSizeOfDimension(filterShape, 2);
+ int32_t filter_height = getSizeOfDimension(filterShape, 1);
+ calculateExplicitPadding(input_width, stride_width, filter_width, padding_implicit,
+ &padding_left, &padding_right);
+ calculateExplicitPadding(input_height, stride_height, filter_height, padding_implicit,
+ &padding_top, &padding_bottom);
+ }
+
+ RunTimeOperandInfo &output = mOperands[outs[0]];
+ Shape outShape = output.shape();
+
+ ASSERT(input.type == OperandType::TENSOR_FLOAT32);
+ {
+ success =
+ depthwiseConvPrepare(input.shape(), filter.shape(), bias.shape(), padding_left,
+ padding_right, padding_top, padding_bottom, stride_width,
+ stride_height, &outShape) &&
+ setInfoAndAllocateIfNeeded(&output, outShape) &&
+ depthwiseConvFloat32(reinterpret_cast(input.buffer), input.shape(),
+ reinterpret_cast(filter.buffer), filter.shape(),
+ reinterpret_cast(bias.buffer), bias.shape(), padding_left,
+ padding_right, padding_top, padding_bottom, stride_width, stride_height,
+ depth_multiplier, activation, reinterpret_cast(output.buffer), outShape);
+ }
+ }
+ break;
+ case OperationType::CONV_2D:
+ {
+ const size_t inCount = ins.size();
+ if ((inCount != 10 && inCount != 7) || !allParametersPresent(inCount, 1))
+ {
+ return ANEURALNETWORKS_BAD_DATA;
+ }
+ const RunTimeOperandInfo &input = mOperands[ins[0]];
+ const RunTimeOperandInfo &filter = mOperands[ins[1]];
+ const RunTimeOperandInfo &bias = mOperands[ins[2]];
+
+ int32_t padding_left, padding_right;
+ int32_t padding_top, padding_bottom;
+ int32_t stride_width, stride_height;
+ int32_t activation;
+
+ if (inCount == 10)
+ {
+ padding_left = getScalarData(mOperands[ins[3]]);
+ padding_right = getScalarData(mOperands[ins[4]]);
+ padding_top = getScalarData(mOperands[ins[5]]);
+ padding_bottom = getScalarData(mOperands[ins[6]]);
+ stride_width = getScalarData(mOperands[ins[7]]);
+ stride_height = getScalarData(mOperands[ins[8]]);
+ activation = getScalarData(mOperands[ins[9]]);
+ }
+ else
+ {
+ int32_t padding_implicit = getScalarData(mOperands[ins[3]]);
+ stride_width = getScalarData(mOperands[ins[4]]);
+ stride_height = getScalarData(mOperands[ins[5]]);
+ activation = getScalarData(mOperands[ins[6]]);
+
+ Shape inputShape = input.shape();
+ Shape filterShape = filter.shape();
+ int32_t input_width = getSizeOfDimension(inputShape, 2);
+ int32_t input_height = getSizeOfDimension(inputShape, 1);
+ int32_t filter_width = getSizeOfDimension(filterShape, 2);
+ int32_t filter_height = getSizeOfDimension(filterShape, 1);
+ calculateExplicitPadding(input_width, stride_width, filter_width, padding_implicit,
+ &padding_left, &padding_right);
+ calculateExplicitPadding(input_height, stride_height, filter_height, padding_implicit,
+ &padding_top, &padding_bottom);
+ }
+
+ RunTimeOperandInfo &output = mOperands[outs[0]];
+ Shape outShape = output.shape();
+
+ ASSERT(input.type == OperandType::TENSOR_FLOAT32);
+ {
+ success =
+ convPrepare(input.shape(), filter.shape(), bias.shape(), padding_left, padding_right,
+ padding_top, padding_bottom, stride_width, stride_height, &outShape) &&
+ setInfoAndAllocateIfNeeded(&output, outShape) &&
+ convFloat32(reinterpret_cast(input.buffer), input.shape(),
+ reinterpret_cast(filter.buffer), filter.shape(),
+ reinterpret_cast(bias.buffer), bias.shape(), padding_left,
+ padding_right, padding_top, padding_bottom, stride_width, stride_height,
+ activation, reinterpret_cast(output.buffer), outShape);
+ }
+ }
+ break;
+ case OperationType::AVERAGE_POOL_2D:
+ {
+ const size_t inCount = ins.size();
+ if ((inCount != 10 && inCount != 7) || !allParametersPresent(inCount, 1))
+ {
+ return ANEURALNETWORKS_BAD_DATA;
+ }
+ const RunTimeOperandInfo &input = mOperands[ins[0]];
+
+ int32_t padding_left, padding_right;
+ int32_t padding_top, padding_bottom;
+ int32_t stride_width, stride_height;
+ int32_t filter_width, filter_height;
+ int32_t activation;
+
+ if (inCount == 10)
+ {
+ padding_left = getScalarData(mOperands[ins[1]]);
+ padding_right = getScalarData(mOperands[ins[2]]);
+ padding_top = getScalarData(mOperands[ins[3]]);
+ padding_bottom = getScalarData(mOperands[ins[4]]);
+ stride_width = getScalarData(mOperands[ins[5]]);
+ stride_height = getScalarData(mOperands[ins[6]]);
+ filter_width = getScalarData(mOperands[ins[7]]);
+ filter_height = getScalarData(mOperands[ins[8]]);
+ activation = getScalarData(mOperands[ins[9]]);
+ }
+ else
+ {
+ int32_t padding_implicit = getScalarData(mOperands[ins[1]]);
+ stride_width = getScalarData(mOperands[ins[2]]);
+ stride_height = getScalarData(mOperands[ins[3]]);
+ filter_width = getScalarData(mOperands[ins[4]]);
+ filter_height = getScalarData(mOperands[ins[5]]);
+ activation = getScalarData(mOperands[ins[6]]);
+
+ Shape inputShape = input.shape();
+ int32_t input_width = getSizeOfDimension(inputShape, 2);
+ int32_t input_height = getSizeOfDimension(inputShape, 1);
+ calculateExplicitPadding(input_width, stride_width, filter_width, padding_implicit,
+ &padding_left, &padding_right);
+ calculateExplicitPadding(input_height, stride_height, filter_height, padding_implicit,
+ &padding_top, &padding_bottom);
+ }
+
+ RunTimeOperandInfo &output = mOperands[outs[0]];
+ Shape outShape = output.shape();
+
+ ASSERT(input.type == OperandType::TENSOR_FLOAT32);
+ {
+ success = averagePoolPrepare(input.shape(), padding_left, padding_right, padding_top,
+ padding_bottom, stride_width, stride_height, filter_width,
+ filter_height, &outShape) &&
+ setInfoAndAllocateIfNeeded(&output, outShape) &&
+ averagePoolFloat32(reinterpret_cast(input.buffer), input.shape(), padding_left,
+ padding_right, padding_top, padding_bottom, stride_width, stride_height,
+ filter_width, filter_height, activation,
+ reinterpret_cast(output.buffer), outShape);
+ }
+ }
+ break;
+ case OperationType::MAX_POOL_2D:
+ {
+ const size_t inCount = ins.size();
+ if ((inCount != 10 && inCount != 7) || !allParametersPresent(inCount, 1))
+ {
+ return ANEURALNETWORKS_BAD_DATA;
+ }
+ const RunTimeOperandInfo &input = mOperands[ins[0]];
+
+ int32_t padding_left, padding_right;
+ int32_t padding_top, padding_bottom;
+ int32_t stride_width, stride_height;
+ int32_t filter_width, filter_height;
+ int32_t activation;
+
+ if (inCount == 10)
+ {
+ padding_left = getScalarData(mOperands[ins[1]]);
+ padding_right = getScalarData(mOperands[ins[2]]);
+ padding_top = getScalarData(mOperands[ins[3]]);
+ padding_bottom = getScalarData(mOperands[ins[4]]);
+ stride_width = getScalarData(mOperands[ins[5]]);
+ stride_height = getScalarData(mOperands[ins[6]]);
+ filter_width = getScalarData(mOperands[ins[7]]);
+ filter_height = getScalarData(mOperands[ins[8]]);
+ activation = getScalarData(mOperands[ins[9]]);
+ }
+ else
+ {
+ int32_t padding_implicit = getScalarData(mOperands[ins[1]]);
+ stride_width = getScalarData(mOperands[ins[2]]);
+ stride_height = getScalarData(mOperands[ins[3]]);
+ filter_width = getScalarData(mOperands[ins[4]]);
+ filter_height = getScalarData(mOperands[ins[5]]);
+ activation = getScalarData(mOperands[ins[6]]);
+
+ Shape inputShape = input.shape();
+ int32_t input_width = getSizeOfDimension(inputShape, 2);
+ int32_t input_height = getSizeOfDimension(inputShape, 1);
+ calculateExplicitPadding(input_width, stride_width, filter_width, padding_implicit,
+ &padding_left, &padding_right);
+ calculateExplicitPadding(input_height, stride_height, filter_height, padding_implicit,
+ &padding_top, &padding_bottom);
+ }
+
+ RunTimeOperandInfo &output = mOperands[outs[0]];
+ Shape outShape = output.shape();
+
+ ASSERT(input.type == OperandType::TENSOR_FLOAT32);
+ {
+ success = maxPoolPrepare(input.shape(), padding_left, padding_right, padding_top,
+ padding_bottom, stride_width, stride_height, filter_width,
+ filter_height, &outShape) &&
+ setInfoAndAllocateIfNeeded(&output, outShape) &&
+ maxPoolFloat32(reinterpret_cast(input.buffer), input.shape(), padding_left,
+ padding_right, padding_top, padding_bottom, stride_width, stride_height,
+ filter_width, filter_height, activation,
+ reinterpret_cast(output.buffer), outShape);
+ }
+ }
+ break;
+ case OperationType::MUL:
+ {
+ if (!allParametersPresent(3, 1))
+ {
+ return ANEURALNETWORKS_BAD_DATA;
+ }
+ const RunTimeOperandInfo &in1 = mOperands[ins[0]];
+ const RunTimeOperandInfo &in2 = mOperands[ins[1]];
+ int32_t activation = getScalarData(mOperands[ins[2]]);
+
+ RunTimeOperandInfo &out = mOperands[outs[0]];
+ Shape outShape = out.shape();
+
+ ASSERT(in1.type == OperandType::TENSOR_FLOAT32);
+ {
+ success = mulPrepare(in1.shape(), in2.shape(), &outShape) &&
+ setInfoAndAllocateIfNeeded(&out, outShape) &&
+ mulFloat32(reinterpret_cast(in1.buffer), in1.shape(),
+ reinterpret_cast(in2.buffer), in2.shape(), activation,
+ reinterpret_cast(out.buffer), outShape);
+ }
+ }
+ break;
+ case OperationType::RELU:
+ {
+ if (!allParametersPresent(1, 1))
+ {
+ return ANEURALNETWORKS_BAD_DATA;
+ }
+ const RunTimeOperandInfo &input = mOperands[ins[0]];
+ RunTimeOperandInfo &output = mOperands[outs[0]];
+ Shape outShape = output.shape();
+
+ ASSERT(input.type == OperandType::TENSOR_FLOAT32);
+ {
+ success = reluPrepare(input.shape(), &outShape) &&
+ setInfoAndAllocateIfNeeded(&output, outShape) &&
+ reluFloat32(reinterpret_cast(input.buffer), input.shape(),
+ reinterpret_cast(output.buffer), outShape);
+ }
+ }
+ break;
+ case OperationType::RELU6:
+ {
+ if (!allParametersPresent(1, 1))
+ {
+ return ANEURALNETWORKS_BAD_DATA;
+ }
+ const RunTimeOperandInfo &input = mOperands[ins[0]];
+ RunTimeOperandInfo &output = mOperands[outs[0]];
+ Shape outShape = output.shape();
+
+ ASSERT(input.type == OperandType::TENSOR_FLOAT32);
+ {
+ success = relu6Prepare(input.shape(), &outShape) &&
+ setInfoAndAllocateIfNeeded(&output, outShape) &&
+ relu6Float32(reinterpret_cast(input.buffer), input.shape(),
+ reinterpret_cast(output.buffer), outShape);
+ }
+ }
+ break;
+ case OperationType::SOFTMAX:
+ {
+ if (!allParametersPresent(2, 1))
+ {
+ return ANEURALNETWORKS_BAD_DATA;
+ }
+ RunTimeOperandInfo &input = mOperands[ins[0]];
+ float beta = getScalarData(mOperands[ins[1]]);
+ if (beta <= 0.0f)
+ {
+ LOG(ERROR) << "beta must be positive for softmax";
+ return ANEURALNETWORKS_BAD_DATA;
+ }
+
+ RunTimeOperandInfo &output = mOperands[outs[0]];
+ Shape outShape = output.shape();
+
+ ASSERT(input.type == OperandType::TENSOR_FLOAT32);
+ {
+ success = softmaxPrepare(input.shape(), &outShape) &&
+ setInfoAndAllocateIfNeeded(&output, outShape) &&
+ softmaxFloat32(reinterpret_cast(input.buffer), input.shape(), beta,
+ reinterpret_cast(output.buffer), output.shape());
+ }
+ }
+ break;
+ case OperationType::FULLY_CONNECTED:
+ {
+ if (!allParametersPresent(4, 1))
+ {
+ return ANEURALNETWORKS_BAD_DATA;
+ }
+ RunTimeOperandInfo &input = mOperands[ins[0]];
+ RunTimeOperandInfo &weights = mOperands[ins[1]];
+ RunTimeOperandInfo &bias = mOperands[ins[2]];
+
+ int32_t activation = getScalarData(mOperands[ins[3]]);
+
+ RunTimeOperandInfo &output = mOperands[outs[0]];
+ Shape outShape = output.shape();
+
+ ASSERT(input.type == OperandType::TENSOR_FLOAT32);
+ {
+ success = fullyConnectedPrepare(input.shape(), weights.shape(), bias.shape(), &outShape) &&
+ setInfoAndAllocateIfNeeded(&output, outShape) &&
+ fullyConnectedFloat32(reinterpret_cast(input.buffer), input.shape(),
+ reinterpret_cast(weights.buffer), weights.shape(),
+ reinterpret_cast(bias.buffer), bias.shape(), activation,
+ reinterpret_cast(output.buffer), outShape);
+ }
+ }
+ break;
+ case OperationType::CONCATENATION:
+ {
+ if (outs.size() != 1 || ins.size() < 2)
+ {
+ return ANEURALNETWORKS_BAD_DATA;
+ }
+ int numInputTensors = ins.size() - 1;
+ int32_t axis = getScalarData(mOperands[ins[numInputTensors]]);
+
+ RunTimeOperandInfo &output = mOperands[outs[0]];
+ Shape outShape = output.shape();
+
+ const RunTimeOperandInfo &firstInput = mOperands[ins[0]];
+ ASSERT(firstInput.type == OperandType::TENSOR_FLOAT32);
+ {
+ std::vector inputShapes(numInputTensors);
+ std::vector inputDataPtrs(numInputTensors);
+
+ for (int i = 0; i < numInputTensors; i++)
+ {
+ RunTimeOperandInfo &input = mOperands[ins[i]];
+ inputShapes[i] = input.shape();
+ inputDataPtrs[i] = reinterpret_cast(input.buffer);
+ }
+ success = concatenationPrepare(inputShapes, axis, &outShape) &&
+ setInfoAndAllocateIfNeeded(&output, outShape) &&
+ concatenationFloat32(inputDataPtrs, inputShapes, axis, reinterpret_cast(output.buffer),
+ outShape);
+ }
+ }
+ break;
+ case OperationType::RESHAPE:
+ {
+ if (!allParametersPresent(2, 1))
+ {
+ return ANEURALNETWORKS_BAD_DATA;
+ }
+ const RunTimeOperandInfo &input = mOperands[ins[0]];
+ const RunTimeOperandInfo &targetShape = mOperands[ins[1]];
+
+ RunTimeOperandInfo &output = mOperands[outs[0]];
+ Shape outShape = output.shape();
+
+ success = reshapePrepare(input.shape(), reinterpret_cast(targetShape.buffer),
+ getNumberOfElements(targetShape.shape()), &outShape) &&
+ setInfoAndAllocateIfNeeded(&output, outShape) &&
+ reshapeGeneric(reinterpret_cast(input.buffer), input.shape(),
+ reinterpret_cast(output.buffer), outShape);
+ }
+ break;
+ case OperationType::PAD:
+ {
+ if (!allParametersPresent(2, 1))
+ {
+ return ANEURALNETWORKS_BAD_DATA;
+ }
+ const RunTimeOperandInfo& input = mOperands[ins[0]];
+ const RunTimeOperandInfo& paddings = mOperands[ins[1]];
+
+ RunTimeOperandInfo& output = mOperands[outs[0]];
+ Shape outShape = output.shape();
+
+ success = padPrepare(input.shape(),
+ reinterpret_cast(paddings.buffer),
+ paddings.shape(),
+ &outShape) &&
+ setInfoAndAllocateIfNeeded(&output, outShape) &&
+ padGeneric(input.buffer,
+ input.shape(),
+ reinterpret_cast(paddings.buffer),
+ output.buffer,
+ outShape);
+ }
+ break;
+ case OperationType::SUB:
+ {
+ if (!allParametersPresent(3, 1))
+ {
+ return ANEURALNETWORKS_BAD_DATA;
+ }
+ const RunTimeOperandInfo &in1 = mOperands[ins[0]];
+ const RunTimeOperandInfo &in2 = mOperands[ins[1]];
+ int32_t activation = getScalarData(mOperands[ins[2]]);
+
+ RunTimeOperandInfo &out = mOperands[outs[0]];
+ Shape outShape = out.shape();
+
+ ASSERT(in1.type == OperandType::TENSOR_FLOAT32);
+ {
+ success = subPrepare(in1.shape(), in2.shape(), &outShape) &&
+ setInfoAndAllocateIfNeeded(&out, outShape) &&
+ subFloat32(reinterpret_cast(in1.buffer), in1.shape(),
+ reinterpret_cast(in2.buffer), in2.shape(), activation,
+ reinterpret_cast(out.buffer), outShape);
+ }
+ }
+ break;
+ case OperationType::DIV:
+ {
+ if (!allParametersPresent(3, 1))
+ {
+ return ANEURALNETWORKS_BAD_DATA;
+ }
+ const RunTimeOperandInfo &in1 = mOperands[ins[0]];
+ const RunTimeOperandInfo &in2 = mOperands[ins[1]];
+ int32_t activation = getScalarData(mOperands[ins[2]]);
+
+ RunTimeOperandInfo &out = mOperands[outs[0]];
+ Shape outShape = out.shape();
+
+ ASSERT(in1.type == OperandType::TENSOR_FLOAT32);
+ {
+ success = divPrepare(in1.shape(), in2.shape(), &outShape) &&
+ setInfoAndAllocateIfNeeded(&out, outShape) &&
+ divFloat32(reinterpret_cast(in1.buffer), in1.shape(),
+ reinterpret_cast(in2.buffer), in2.shape(), activation,
+ reinterpret_cast(out.buffer), outShape);
+ }
+ }
+ break;
+ default:
+ NYI(getOperationName(operation.type));
+ break;
+ }
+ if (!success)
+ {
+ LOG(ERROR) << getOperationName(operation.type) << " failed.";
+ return ANEURALNETWORKS_OP_FAILED;
+ }
+
+ freeNoLongerUsedOperands(ins);
+ return ANEURALNETWORKS_NO_ERROR;
+}
diff --git a/compiler/ann-ref/src/Executor.h b/compiler/ann-ref/src/Executor.h
new file mode 100644
index 000000000..66dcca116
--- /dev/null
+++ b/compiler/ann-ref/src/Executor.h
@@ -0,0 +1,114 @@
+/*
+ * Copyright (c) 2018 Samsung Electronics Co., Ltd. All Rights Reserved
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * 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 __EXECUTOR_H__
+#define __EXECUTOR_H__
+
+#include "Model.h"
+
+#include "Shape.h"
+#include "Request.h"
+
+#include
+
+// Information we maintain about each operand during execution that
+// may change during execution.
+struct RunTimeOperandInfo
+{
+ // TODO Storing the type here is redundant, as it won't change during execution.
+ OperandType type;
+
+ // The type and dimensions of the operand. The dimensions can
+ // change at runtime. We include the type because it's useful
+ // to pass together with the dimension to the functions implementing
+ // the operators.
+ //
+ // Q: Is it possible??
+ std::vector dimensions;
+ float scale;
+ int32_t zeroPoint;
+
+ // Where the operand's data is stored. Check the corresponding
+ // location information in the model to figure out if this points
+ // to memory we have allocated for an temporary operand.
+ uint8_t *buffer;
+ // The length of the buffer.
+ uint32_t length;
+
+ // Whether this is a temporary variable, a model input, a constant, etc.
+ OperandLifeTime lifetime;
+
+ // Keeps track of how many operations have yet to make use
+ // of this temporary variable. When the count is decremented to 0,
+ // we free the buffer. For non-temporary variables, this count is
+ // always 0.
+ uint32_t numberOfUsesLeft;
+
+ Shape shape() const
+ {
+ return Shape{.type = type, .dimensions = dimensions, .scale = scale, .offset = zeroPoint};
+ }
+};
+
+// Used to keep a pointer to each of the memory pools
+struct RunTimePoolInfo
+{
+ uint8_t *buffer;
+
+ bool set(uint8_t *m)
+ {
+ buffer = m;
+ return true;
+ }
+};
+
+// This class is used to execute a model on the CPU.
+class Executor
+{
+public:
+ // Executes the model. The results will be stored at the locations
+ // specified in the constructor.
+ // The model must outlive the executor. We prevent it from being modified
+ // while this is executing.
+ int run(const Model &model, const Request &request,
+ const std::vector &modelPoolInfos,
+ const std::vector &requestPoolInfos);
+
+private:
+ bool initializeRunTimeInfo(const std::vector &modelPoolInfos,
+ const std::vector &requestPoolInfos);
+ // Runs one operation of the graph.
+ int executeOperation(const Operation &entry);
+ // Decrement the usage count for the operands listed. Frees the memory
+ // allocated for any temporary variable with a count of zero.
+ void freeNoLongerUsedOperands(const std::vector &inputs);
+
+ // The model and the request that we'll execute. Only valid while run()
+ // is being executed.
+ const Model *mModel = nullptr;
+ const Request *mRequest = nullptr;
+
+ // We're copying the list of all the dimensions from the model, as
+ // these may be modified when we run the operatins. Since we're
+ // making a full copy, the indexes used in the operand description
+ // stay valid.
+ // std::vector mDimensions;
+ // Runtime information about all the operands.
+ std::vector mOperands;
+};
+
+#endif // __CPU_EXECUTOR_H__
diff --git a/compiler/ann-ref/src/Logging.cpp b/compiler/ann-ref/src/Logging.cpp
new file mode 100644
index 000000000..4f849efaa
--- /dev/null
+++ b/compiler/ann-ref/src/Logging.cpp
@@ -0,0 +1,30 @@
+/*
+ * Copyright (c) 2018 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 "Logging.h"
+
+VLogging::VLogging()
+{
+ _enabled = false;
+}
+
+VLogging &VLogging::access()
+{
+ static VLogging instance;
+ return instance;
+}
+
+std::ostream &VLogging::stream() { return std::cout; }
diff --git a/compiler/ann-ref/src/Logging.h b/compiler/ann-ref/src/Logging.h
new file mode 100644
index 000000000..1f81ad6e3
--- /dev/null
+++ b/compiler/ann-ref/src/Logging.h
@@ -0,0 +1,42 @@
+/*
+ * Copyright (c) 2018 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 __LOGGING_H__
+#define __LOGGING_H__
+
+#include
+
+class VLogging
+{
+public:
+ static VLogging &access(void);
+ bool enabled() const { return _enabled; }
+ std::ostream &stream(void);
+
+private:
+ VLogging();
+
+private:
+ bool _enabled;
+};
+
+#define LOG(...) std::cout << std::endl
+#define VLOG(...) \
+ if (VLogging::access().enabled()) \
+ (VLogging::access().stream() << std::endl)
+#define NYI(module) std::cout << "NYI : '" << module << "' is not supported now." << std::endl;
+
+#endif // __LOGGING_H__
diff --git a/compiler/ann-ref/src/Macro.h b/compiler/ann-ref/src/Macro.h
new file mode 100644
index 000000000..829c15425
--- /dev/null
+++ b/compiler/ann-ref/src/Macro.h
@@ -0,0 +1,22 @@
+/*
+ * Copyright (c) 2018 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 __MACRO_H__
+#define __MACRO_H__
+
+#define COUNT(X) (sizeof(X) / sizeof(X[0]))
+
+#endif // __MACRO_H__
diff --git a/compiler/ann-ref/src/Memory.cpp b/compiler/ann-ref/src/Memory.cpp
new file mode 100644
index 000000000..fd70f8db7
--- /dev/null
+++ b/compiler/ann-ref/src/Memory.cpp
@@ -0,0 +1,105 @@
+/*
+ * Copyright (c) 2018 Samsung Electronics Co., Ltd. All Rights Reserved
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * 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.
+ */
+
+#define LOG_TAG "Memory"
+
+#include "Memory.h"
+#include "NeuralNetworks.h" // ANEURALNETWORKS_XXX
+
+#include
+
+MappedMemory::~MappedMemory()
+{
+ if (_base)
+ {
+ munmap(_base, _size);
+ }
+}
+
+int MappedMemory::set(size_t size, int prot, int fd, size_t offset)
+{
+#if 0
+ if (fd < 0)
+ {
+ LOG(ERROR) << "ANeuralNetworksMemory_createFromFd invalid fd " << fd;
+ return ANEURALNETWORKS_UNEXPECTED_NULL;
+ }
+ if (size == 0 || fd < 0)
+ {
+ LOG(ERROR) << "Invalid size or fd";
+ return ANEURALNETWORKS_BAD_DATA;
+ }
+ int dupfd = dup(fd);
+ if (dupfd == -1)
+ {
+ LOG(ERROR) << "Failed to dup the fd";
+ return ANEURALNETWORKS_UNEXPECTED_NULL;
+ }
+#endif
+ void * const base = mmap(nullptr, size, prot, MAP_PRIVATE, fd, offset);
+
+ if (base == MAP_FAILED)
+ {
+ return ANEURALNETWORKS_UNEXPECTED_NULL;
+ }
+
+ _base = static_cast(base);
+ _size = size;
+
+ return ANEURALNETWORKS_NO_ERROR;
+}
+
+int MappedMemory::getPointer(uint8_t **buffer) const
+{
+ *buffer = _base;
+ return ANEURALNETWORKS_NO_ERROR;
+}
+
+bool MappedMemory::validateSize(uint32_t offset, uint32_t length) const
+{
+ return true;
+}
+
+PrivateMemory::~PrivateMemory()
+{
+ if (_base)
+ {
+ delete[] _base;
+ }
+}
+
+int PrivateMemory::create(uint32_t size)
+{
+ auto base = new uint8_t[size];
+
+ // TODO Check allocation failure
+ _base = base;
+ _size = size;
+
+ return ANEURALNETWORKS_NO_ERROR;
+}
+
+int PrivateMemory::getPointer(uint8_t **buffer) const
+{
+ *buffer = _base;
+ return ANEURALNETWORKS_NO_ERROR;
+}
+
+bool PrivateMemory::validateSize(uint32_t offset, uint32_t length) const
+{
+ return true;
+}
diff --git a/compiler/ann-ref/src/Memory.h b/compiler/ann-ref/src/Memory.h
new file mode 100644
index 000000000..648b5c7d1
--- /dev/null
+++ b/compiler/ann-ref/src/Memory.h
@@ -0,0 +1,106 @@
+/*
+ * Copyright (c) 2018 Samsung Electronics Co., Ltd. All Rights Reserved
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * 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 __MEMORY_H__
+#define __MEMORY_H__
+
+#include
+#include
+
+// Represents a memory region.
+struct Memory
+{
+ Memory() = default;
+ virtual ~Memory() = default;
+
+ // Disallow copy semantics to ensure the runtime object can only be freed
+ // once. Copy semantics could be enabled if some sort of reference counting
+ // or deep-copy system for runtime objects is added later.
+ Memory(const Memory &) = delete;
+ Memory &operator=(const Memory &) = delete;
+
+ // Returns a pointer to the underlying memory of this memory object.
+ virtual int getPointer(uint8_t **buffer) const = 0;
+ virtual bool validateSize(uint32_t offset, uint32_t length) const = 0;
+};
+
+class MappedMemory final : public Memory
+{
+public:
+ MappedMemory() = default;
+
+public:
+ ~MappedMemory();
+
+public:
+ // Create the native_handle based on input size, prot, and fd.
+ // Existing native_handle will be deleted, and mHidlMemory will wrap
+ // the newly created native_handle.
+ int set(size_t size, int prot, int fd, size_t offset);
+
+public:
+ int getPointer(uint8_t **buffer) const override;
+ bool validateSize(uint32_t offset, uint32_t length) const override;
+
+private:
+ uint8_t *_base = nullptr;
+ size_t _size = 0;
+};
+
+// Represents a memory region.
+class AllocatedMemory : public Memory
+{
+public:
+ AllocatedMemory() = default;
+ virtual ~AllocatedMemory() = default;
+
+public:
+ virtual int create(uint32_t size) = 0;
+
+public:
+ // Returns a pointer to the underlying memory of this memory object.
+ virtual int getPointer(uint8_t **buffer) const = 0;
+ virtual bool validateSize(uint32_t offset, uint32_t length) const = 0;
+};
+
+class PrivateMemory final : public AllocatedMemory
+{
+public:
+ PrivateMemory() = default;
+ ~PrivateMemory();
+
+public:
+ // Disallow copy semantics to ensure the runtime object can only be freed
+ // once. Copy semantics could be enabled if some sort of reference counting
+ // or deep-copy system for runtime objects is added later.
+ PrivateMemory(const PrivateMemory &) = delete;
+ PrivateMemory &operator=(const PrivateMemory &) = delete;
+
+public:
+ virtual int create(uint32_t size);
+
+public:
+ // Returns a pointer to the underlying memory of this memory object.
+ virtual int getPointer(uint8_t **buffer) const;
+ virtual bool validateSize(uint32_t offset, uint32_t length) const;
+
+private:
+ uint8_t *_base = nullptr;
+ size_t _size = 0;
+};
+
+#endif // __MEMORY_H__
diff --git a/compiler/ann-ref/src/MemoryTracker.cpp b/compiler/ann-ref/src/MemoryTracker.cpp
new file mode 100644
index 000000000..3c65149c6
--- /dev/null
+++ b/compiler/ann-ref/src/MemoryTracker.cpp
@@ -0,0 +1,50 @@
+/*
+ * Copyright (c) 2018 Samsung Electronics Co., Ltd. All Rights Reserved
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * 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.
+ */
+
+#define LOG_TAG "Memory"
+
+#include "NeuralNetworks.h" // For ANEURALNETWORKS_...
+#include "MemoryTracker.h"
+
+#include "Logging.h"
+
+#include // It's for 'close' and 'dup'
+ // TODO-NNRT : Remove this if included another header including this.
+
+uint32_t MemoryTracker::add(const Memory *memory)
+{
+ VLOG(MODEL) << __func__ << " for " << memory;
+ // See if we already have this memory. If so,
+ // return its index.
+ auto i = mKnown.find(memory);
+ if (i != mKnown.end())
+ {
+ return i->second;
+ }
+ VLOG(MODEL) << "It's new";
+ // It's a new one. Save it an assign an index to it.
+ size_t next = mKnown.size();
+ if (next > 0xFFFFFFFF)
+ {
+ LOG(ERROR) << "ANeuralNetworks more than 2^32 memories.";
+ return ANEURALNETWORKS_BAD_DATA;
+ }
+ uint32_t idx = static_cast(next);
+ mKnown[memory] = idx;
+ mMemories.push_back(memory);
+ return idx;
+}
diff --git a/compiler/ann-ref/src/MemoryTracker.h b/compiler/ann-ref/src/MemoryTracker.h
new file mode 100644
index 000000000..af687d183
--- /dev/null
+++ b/compiler/ann-ref/src/MemoryTracker.h
@@ -0,0 +1,49 @@
+/*
+ * Copyright (c) 2018 Samsung Electronics Co., Ltd. All Rights Reserved
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * 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 __MEMORY_TRACKER_H__
+#define __MEMORY_TRACKER_H__
+
+#include "Memory.h"
+
+#include
+#include
+
+// A utility class to accumulate mulitple Memory objects and assign each
+// a distinct index number, starting with 0.
+//
+// The user of this class is responsible for avoiding concurrent calls
+// to this class from multiple threads.
+class MemoryTracker
+{
+public:
+ // Adds the memory, if it does not already exists. Returns its index.
+ // The memories should survive the tracker.
+ uint32_t add(const Memory *memory);
+ // Returns the number of memories contained.
+ uint32_t size() const { return static_cast(mKnown.size()); }
+ // Returns the ith memory.
+ const Memory *operator[](size_t i) const { return mMemories[i]; }
+
+private:
+ // The vector of Memory pointers we are building.
+ std::vector mMemories;
+ // A faster way to see if we already have a memory than doing find().
+ std::unordered_map mKnown;
+};
+
+#endif // __MEMORY_TRACKER_H__
diff --git a/compiler/ann-ref/src/Model.h b/compiler/ann-ref/src/Model.h
new file mode 100644
index 000000000..dc6a0d3c9
--- /dev/null
+++ b/compiler/ann-ref/src/Model.h
@@ -0,0 +1,39 @@
+/*
+ * Copyright (c) 2018 Samsung Electronics Co., Ltd. All Rights Reserved
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * 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 __MODEL_H__
+#define __MODEL_H__
+
+#include "Operand.h"
+#include "Operation.h"
+
+#include
+#include
+
+struct Model final {
+ std::vector operands;
+ std::vector operations;
+
+ std::vector inputIndexes;
+ std::vector outputIndexes;
+
+ std::vector operandValues;
+
+ std::vector pools;
+};
+
+#endif // __MODEL_H__
diff --git a/compiler/ann-ref/src/ModelArgumentInfo.cpp b/compiler/ann-ref/src/ModelArgumentInfo.cpp
new file mode 100644
index 000000000..3c10cd0ea
--- /dev/null
+++ b/compiler/ann-ref/src/ModelArgumentInfo.cpp
@@ -0,0 +1,121 @@
+/*
+ * Copyright (c) 2018 Samsung Electronics Co., Ltd. All Rights Reserved
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * 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 "ModelArgumentInfo.h"
+#include "NeuralNetworks.h" // For ANEURALNETWORKS_XXX
+#include "Logging.h"
+#include "Assert.h"
+
+// TODO-NNRT: Consider removing ModelArgumentInfo completely if it's not necessary
+int ModelArgumentInfo::setFromPointer(const Operand &operand,
+ const ANeuralNetworksOperandType *type, void *data,
+ uint32_t length)
+{
+ if ((data == nullptr) != (length == 0))
+ {
+ LOG(ERROR) << "Data pointer must be nullptr if and only if length is zero (data = " << data
+ << ", length = " << length << ")";
+ return ANEURALNETWORKS_BAD_DATA;
+ }
+ if (data == nullptr)
+ {
+ state = ModelArgumentInfo::HAS_NO_VALUE;
+ }
+ else
+ {
+ int n = updateDimensionInfo(operand, type);
+ if (n != ANEURALNETWORKS_NO_ERROR)
+ {
+ return n;
+ }
+ uint32_t neededLength = sizeOfData(operand.type, dimensions);
+ if (neededLength != length)
+ {
+ LOG(ERROR) << "Setting argument with invalid length: " << length
+ << ", expected length: " << neededLength;
+ return ANEURALNETWORKS_BAD_DATA;
+ }
+ state = ModelArgumentInfo::POINTER;
+ }
+ buffer = data;
+ locationAndLength = {.poolIndex = 0, .offset = 0, .length = length};
+ return ANEURALNETWORKS_NO_ERROR;
+}
+
+int ModelArgumentInfo::setFromMemory(const Operand &operand, const ANeuralNetworksOperandType *type,
+ uint32_t poolIndex, uint32_t offset, uint32_t length)
+{
+ int n = updateDimensionInfo(operand, type);
+ if (n != ANEURALNETWORKS_NO_ERROR)
+ {
+ return n;
+ }
+ uint32_t neededLength = sizeOfData(operand.type, dimensions);
+ if (neededLength != length)
+ {
+ LOG(ERROR) << "Setting argument with invalid length: " << length
+ << ", expected length: " << neededLength;
+ return ANEURALNETWORKS_BAD_DATA;
+ }
+
+ state = ModelArgumentInfo::MEMORY;
+ locationAndLength = {.poolIndex = poolIndex, .offset = offset, .length = length};
+ buffer = nullptr;
+ return ANEURALNETWORKS_NO_ERROR;
+}
+
+int ModelArgumentInfo::updateDimensionInfo(const Operand &operand,
+ const ANeuralNetworksOperandType *newType)
+{
+ ASSERT(dimensions.empty());
+ if (newType == nullptr)
+ {
+ for (auto i : operand.dimensions)
+ {
+ if (i == 0)
+ {
+ LOG(ERROR) << "Setting input/output with unspecified dimensions";
+ return ANEURALNETWORKS_BAD_DATA;
+ }
+ }
+ dimensions = operand.dimensions;
+ }
+ else
+ {
+ uint32_t count = newType->dimensionCount;
+ if (static_cast(newType->type) != operand.type ||
+ count != operand.dimensions.size())
+ {
+ LOG(ERROR) << "Setting input/output with incompatible types";
+ return ANEURALNETWORKS_BAD_DATA;
+ }
+ dimensions = std::vector(count);
+ for (uint32_t i = 0; i < count; i++)
+ {
+ if (operand.dimensions[i] != 0 && operand.dimensions[i] != newType->dimensions[i])
+ {
+ LOG(ERROR) << "Overriding a fully specified dimension is disallowed";
+ return ANEURALNETWORKS_BAD_DATA;
+ }
+ else
+ {
+ dimensions[i] = newType->dimensions[i];
+ }
+ }
+ }
+ return ANEURALNETWORKS_NO_ERROR;
+}
diff --git a/compiler/ann-ref/src/ModelArgumentInfo.h b/compiler/ann-ref/src/ModelArgumentInfo.h
new file mode 100644
index 000000000..5773da743
--- /dev/null
+++ b/compiler/ann-ref/src/ModelArgumentInfo.h
@@ -0,0 +1,58 @@
+/*
+ * Copyright (c) 2018 Samsung Electronics Co., Ltd. All Rights Reserved
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * 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 __MODEL_ARGUMENT_INFO_H__
+#define __MODEL_ARGUMENT_INFO_H__
+
+#include "NeuralNetworks.h"
+
+#include "Operand.h"
+
+#include
+
+struct ModelArgumentInfo
+{
+ // Whether the argument was specified as being in a Memory, as a pointer,
+ // has no value, or has not been specified.
+ // If POINTER then:
+ // locationAndLength.length is valid.
+ // dimensions is valid.
+ // buffer is valid
+ // If MEMORY then:
+ // locationAndLength.location.{poolIndex, offset, length} is valid.
+ // dimensions is valid.
+ enum
+ {
+ POINTER,
+ MEMORY,
+ HAS_NO_VALUE,
+ UNSPECIFIED
+ } state = UNSPECIFIED;
+
+ DataLocation locationAndLength;
+
+ std::vector dimensions;
+ void *buffer;
+
+ int setFromPointer(const Operand &operand, const ANeuralNetworksOperandType *type, void *buffer,
+ uint32_t length);
+ int setFromMemory(const Operand &operand, const ANeuralNetworksOperandType *type,
+ uint32_t poolIndex, uint32_t offset, uint32_t length);
+ int updateDimensionInfo(const Operand &operand, const ANeuralNetworksOperandType *newType);
+};
+
+#endif // __MODEL_ARGUMENT_INFO_H__
diff --git a/compiler/ann-ref/src/ModelBuilder.cpp b/compiler/ann-ref/src/ModelBuilder.cpp
new file mode 100644
index 000000000..1f966bd2e
--- /dev/null
+++ b/compiler/ann-ref/src/ModelBuilder.cpp
@@ -0,0 +1,483 @@
+/*
+ * Copyright (c) 2018 Samsung Electronics Co., Ltd. All Rights Reserved
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * 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 "ModelBuilder.h"
+
+#include "CompilationBuilder.h"
+#include "Validation.h"
+#include "Logging.h"
+#include "Assert.h"
+
+#include
+#include