aboutsummaryrefslogtreecommitdiff
path: root/include/armnn/Types.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'include/armnn/Types.hpp')
-rw-r--r--include/armnn/Types.hpp83
1 files changed, 83 insertions, 0 deletions
diff --git a/include/armnn/Types.hpp b/include/armnn/Types.hpp
index 22004bd0a4..e1ff46b023 100644
--- a/include/armnn/Types.hpp
+++ b/include/armnn/Types.hpp
@@ -344,6 +344,89 @@ struct ProfilingStaticGuid : public ProfilingGuid
} // namespace profiling
+/// This list uses X macro technique.
+/// See https://en.wikipedia.org/wiki/X_Macro for more info
+#define LIST_OF_LAYER_TYPE \
+ X(Activation) \
+ X(Addition) \
+ X(ArgMinMax) \
+ X(BatchNormalization) \
+ X(BatchToSpaceNd) \
+ X(Comparison) \
+ X(Concat) \
+ X(Constant) \
+ X(ConvertBf16ToFp32) \
+ X(ConvertFp16ToFp32) \
+ X(ConvertFp32ToBf16) \
+ X(ConvertFp32ToFp16) \
+ X(Convolution2d) \
+ X(Debug) \
+ X(DepthToSpace) \
+ X(DepthwiseConvolution2d) \
+ X(Dequantize) \
+ X(DetectionPostProcess) \
+ X(Division) \
+ X(ElementwiseUnary) \
+ X(FakeQuantization) \
+ X(Fill) \
+ X(Floor) \
+ X(FullyConnected) \
+ X(Gather) \
+ X(Input) \
+ X(InstanceNormalization) \
+ X(L2Normalization) \
+ X(LogicalBinary) \
+ X(LogSoftmax) \
+ X(Lstm) \
+ X(QLstm) \
+ X(Map) \
+ X(Maximum) \
+ X(Mean) \
+ X(MemCopy) \
+ X(MemImport) \
+ X(Merge) \
+ X(Minimum) \
+ X(Multiplication) \
+ X(Normalization) \
+ X(Output) \
+ X(Pad) \
+ X(Permute) \
+ X(Pooling2d) \
+ X(PreCompiled) \
+ X(Prelu) \
+ X(Quantize) \
+ X(QuantizedLstm) \
+ X(Reshape) \
+ X(Rank) \
+ X(Resize) \
+ X(Reduce) \
+ X(Slice) \
+ X(Softmax) \
+ X(SpaceToBatchNd) \
+ X(SpaceToDepth) \
+ X(Splitter) \
+ X(Stack) \
+ X(StandIn) \
+ X(StridedSlice) \
+ X(Subtraction) \
+ X(Switch) \
+ X(Transpose) \
+ X(TransposeConvolution2d) \
+ X(Unmap)
+
+/// When adding a new layer, adapt also the LastLayer enum value in the
+/// enum class LayerType below
+enum class LayerType
+{
+#define X(name) name,
+ LIST_OF_LAYER_TYPE
+#undef X
+ FirstLayer = Activation,
+ LastLayer = Unmap
+};
+
+const char* GetLayerTypeAsCString(LayerType type);
+
} // namespace armnn