[enco] Build ANN IR from ANNConv2D instruction (#2676)
author박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 <jh1302.park@samsung.com>
Fri, 14 Dec 2018 08:10:18 +0000 (17:10 +0900)
committerGitHub Enterprise <noreply-CODE@samsung.com>
Fri, 14 Dec 2018 08:10:18 +0000 (17:10 +0900)
This commit extends Split pass to build ANN IR from ANNConv2D
instruction.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
contrib/enco/core/src/Transforms/Split.cpp

index 40d7b7d..7d55a47 100644 (file)
@@ -866,6 +866,25 @@ std::unique_ptr<ANNOpAppender> make_appender(coco::Instr *ins)
     return std::move(app);
   }
 
+  // Build ANN IR from ANNConv2D instruction
+  if (auto conv2d = coco::safe_cast<ANNConv2D>(ins))
+  {
+    auto sess = enco::session(conv2d->module());
+    auto app = make_unique<ANNConv2DAppender>();
+
+    app->session(sess);
+
+    app->pad(conv2d->pad());
+    app->stride(conv2d->stride());
+
+    app->ofm(conv2d->ofm()->asFeature());
+    app->ifm(conv2d->ifm()->asFeature());
+    app->ker(conv2d->ker()->asKernel());
+    app->bias(coco::safe_cast<coco::FeatureObject>(conv2d->bias()));
+
+    return std::move(app);
+  }
+
   return nullptr;
 }