[enco] Refactor SplitPass (#2849)
author박세희/On-Device Lab(SR)/Principal Engineer/삼성전자 <saehie.park@samsung.com>
Tue, 15 Jan 2019 03:54:29 +0000 (12:54 +0900)
committer박종현/On-Device Lab(SR)/Staff Engineer/삼성전자 <jh1302.park@samsung.com>
Tue, 15 Jan 2019 03:54:29 +0000 (12:54 +0900)
This will hide SplitPass class and provide split_into_phases() like the other transformation pass

Signed-off-by: SaeHie Park <saehie.park@samsung.com>
contrib/enco/core/src/Backend.cpp
contrib/enco/core/src/Transforms/Split.cpp
contrib/enco/core/src/Transforms/Split.h

index 1480127..7270a86 100644 (file)
@@ -145,8 +145,7 @@ void BackendImpl::compile(coco::Module *m, coco::Data *d)
   eliminate_dead_bag(code(sess));
 
   // Split instructions into a set of phases (each block serves as a phase)
-  SplitPass split;
-  split.runOnCode(code(sess));
+  split_into_phases(code(sess));
 
   const std::string data_var = "data";
   const std::string data_filename = _prefix + ".bin";
index 6f9b297..11ee9ca 100644 (file)
@@ -1200,9 +1200,15 @@ void ANNModuleBuilder::build(ANNContext *ann_ctx) const
 
 } // namespace
 
-namespace enco
+namespace
 {
 
+class SplitPass
+{
+public:
+  void runOnCode(enco::Code *code) const;
+};
+
 void SplitPass::runOnCode(enco::Code *code) const
 {
   auto ann_ctx = make_unique<ANNContext>();
@@ -1216,4 +1222,15 @@ void SplitPass::runOnCode(enco::Code *code) const
   _subnet_contexts[code->module()] = std::move(ann_ctx);
 }
 
+} // namespace
+
+namespace enco
+{
+
+void split_into_phases(enco::Code *code)
+{
+  SplitPass split;
+  split.runOnCode(code);
+}
+
 } // namespace enco
index 3b93d61..b436b65 100644 (file)
@@ -30,11 +30,7 @@ struct SubnetManager
 /**
  * @brief Split instructions into a set of phases
  */
-class SplitPass
-{
-public:
-  void runOnCode(enco::Code *code) const;
-};
+void split_into_phases(enco::Code *code);
 
 } // namespace enco;