[neurun] Auto-generate NodeVisitor headers (#3685)
author이한종/동작제어Lab(SR)/Engineer/삼성전자 <hanjoung.lee@samsung.com>
Fri, 23 Nov 2018 06:05:32 +0000 (15:05 +0900)
committer오형석/동작제어Lab(SR)/Staff Engineer/삼성전자 <hseok82.oh@samsung.com>
Fri, 23 Nov 2018 06:05:32 +0000 (15:05 +0900)
Auto-generate NodeVisitor headers with macro.

Resolve #3664

Signed-off-by: Hanjoung Lee <hanjoung.lee@samsung.com>
runtimes/neurun/src/backend/acl_cl/StageGenerator.h
runtimes/neurun/src/backend/cpu/StageGenerator.h
runtimes/neurun/src/backend/interface/IStageGenerator.h
runtimes/neurun/src/compiler/OperationValidator.h
runtimes/neurun/src/compiler/SubTensorAnalyzer.h
runtimes/neurun/src/graph/operation/NodeVisitor.h

index 8a36194..ae6acf1 100644 (file)
@@ -37,15 +37,10 @@ public:
 
   virtual std::shared_ptr<ITensorBuilder> tensor_builder() override { return _tensor_builder; }
 
-  virtual void visit(const graph::operation::Conv2DNode &node) override;
-  virtual void visit(const graph::operation::MaxPool2DNode &node) override;
-  virtual void visit(const graph::operation::AvgPool2DNode &node) override;
-  virtual void visit(const graph::operation::ConcatNode &node) override;
-  virtual void visit(const graph::operation::FullyConnectedNode &node) override;
-  virtual void visit(const graph::operation::ReshapeNode &node) override;
-  virtual void visit(const graph::operation::SoftmaxNode &node) override;
-  virtual void visit(const graph::operation::PermuteNode &node) override;
-  virtual void visit(const graph::operation::AddNode &node) override;
+#define OP(InternalName, IsNnApi, NnApiName) \
+  virtual void visit(const graph::operation::InternalName &) override;
+#include "graph/operation/Op.lst"
+#undef OP
 
 private:
   const neurun::graph::operand::Set &_ctx;
index b115a45..81e4837 100644 (file)
@@ -38,15 +38,10 @@ public:
 
   virtual std::shared_ptr<ITensorBuilder> tensor_builder() override { return _tensor_builder; }
 
-  virtual void visit(const graph::operation::Conv2DNode &node) override;
-  virtual void visit(const graph::operation::MaxPool2DNode &node) override;
-  virtual void visit(const graph::operation::AvgPool2DNode &node) override;
-  virtual void visit(const graph::operation::ConcatNode &node) override;
-  virtual void visit(const graph::operation::FullyConnectedNode &node) override;
-  virtual void visit(const graph::operation::ReshapeNode &node) override;
-  virtual void visit(const graph::operation::SoftmaxNode &node) override;
-  virtual void visit(const graph::operation::PermuteNode &node) override;
-  virtual void visit(const graph::operation::AddNode &node) override;
+#define OP(InternalName, IsNnApi, NnApiName) \
+  virtual void visit(const graph::operation::InternalName &) override;
+#include "graph/operation/Op.lst"
+#undef OP
 
 private:
   const neurun::graph::operand::Set &_ctx;
index 4a6a7d2..4152d0a 100644 (file)
@@ -47,15 +47,10 @@ public:
   virtual std::shared_ptr<ITensorBuilder> tensor_builder() = 0;
 
 protected:
-  virtual void visit(const graph::operation::Conv2DNode &) override {}
-  virtual void visit(const graph::operation::MaxPool2DNode &) override {}
-  virtual void visit(const graph::operation::AvgPool2DNode &) override {}
-  virtual void visit(const graph::operation::ConcatNode &) override {}
-  virtual void visit(const graph::operation::FullyConnectedNode &) override {}
-  virtual void visit(const graph::operation::ReshapeNode &) override {}
-  virtual void visit(const graph::operation::SoftmaxNode &) override {}
-  virtual void visit(const graph::operation::PermuteNode &) override {}
-  virtual void visit(const graph::operation::AddNode &) override {}
+#define OP(InternalName, IsNnApi, NnApiName) \
+  virtual void visit(const graph::operation::InternalName &) override {}
+#include "graph/operation/Op.lst"
+#undef OP
 
 protected:
   void returnStage(const Stage &stage) { _return = stage; }
index f58494c..b33455b 100644 (file)
@@ -41,15 +41,10 @@ public:
   OperationValidator(const neurun::graph::operand::Set &ctx) : _ctx{ctx} {}
 
 public:
-  virtual void visit(const graph::operation::Conv2DNode &) override;
-  virtual void visit(const graph::operation::MaxPool2DNode &) override;
-  virtual void visit(const graph::operation::AvgPool2DNode &) override;
-  virtual void visit(const graph::operation::ConcatNode &) override;
-  virtual void visit(const graph::operation::ReshapeNode &) override;
-  virtual void visit(const graph::operation::FullyConnectedNode &) override;
-  virtual void visit(const graph::operation::SoftmaxNode &) override;
-  virtual void visit(const graph::operation::PermuteNode &) override;
-  virtual void visit(const graph::operation::AddNode &) override;
+#define OP(InternalName, IsNnApi, NnApiName) \
+  virtual void visit(const graph::operation::InternalName &) override;
+#include "graph/operation/Op.lst"
+#undef OP
 
 private:
   const neurun::graph::operand::Set &_ctx;
index fff4af9..e91ee5f 100644 (file)
@@ -54,15 +54,10 @@ public:
   SubTensorAnalyzer(neurun::graph::operand::Set &ctx) : _ctx{ctx} {}
 
 public:
-  virtual void visit(const graph::operation::Conv2DNode &) override;
-  virtual void visit(const graph::operation::MaxPool2DNode &) override;
-  virtual void visit(const graph::operation::AvgPool2DNode &) override;
-  virtual void visit(const graph::operation::ConcatNode &) override;
-  virtual void visit(const graph::operation::ReshapeNode &) override;
-  virtual void visit(const graph::operation::FullyConnectedNode &) override;
-  virtual void visit(const graph::operation::SoftmaxNode &) override;
-  virtual void visit(const graph::operation::PermuteNode &) override;
-  virtual void visit(const graph::operation::AddNode &) override;
+#define OP(InternalName, IsNnApi, NnApiName) \
+  virtual void visit(const graph::operation::InternalName &) override;
+#include "graph/operation/Op.lst"
+#undef OP
 
 private:
   neurun::graph::operand::Set &_ctx;
index 36830ec..d5ff7d9 100644 (file)
@@ -38,15 +38,10 @@ struct NodeVisitor
 {
   virtual ~NodeVisitor() = default;
 
-  virtual void visit(const Conv2DNode &) {}
-  virtual void visit(const MaxPool2DNode &) {}
-  virtual void visit(const AvgPool2DNode &) {}
-  virtual void visit(const ConcatNode &) {}
-  virtual void visit(const ReshapeNode &) {}
-  virtual void visit(const FullyConnectedNode &) {}
-  virtual void visit(const SoftmaxNode &) {}
-  virtual void visit(const PermuteNode &) {}
-  virtual void visit(const AddNode &) {}
+#define OP(InternalName, IsNnApi, NnApiName) \
+  virtual void visit(const InternalName &) {}
+#include "graph/operation/Op.lst"
+#undef OP
 };
 
 } // namespace operation