From: 박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 Date: Mon, 8 Oct 2018 07:00:58 +0000 (+0900) Subject: [enco] Decouple ANNContext and Code in ANNGroupBuilder (#1777) X-Git-Tag: nncc_backup~1605 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=84bf1ad7921441945266f68767b38f1e1a675b16;p=platform%2Fcore%2Fml%2Fnnfw.git [enco] Decouple ANNContext and Code in ANNGroupBuilder (#1777) This commit revises ANNGroupBuilder to explicitly take ANNContext as a pointer. This change will allow users to use their own ANNContext instead of the one embedded in enco::Code. Signed-off-by: Jonghyun Park --- diff --git a/contrib/enco/core/src/Transforms/Split.cpp b/contrib/enco/core/src/Transforms/Split.cpp index 446a429..de2a234 100644 --- a/contrib/enco/core/src/Transforms/Split.cpp +++ b/contrib/enco/core/src/Transforms/Split.cpp @@ -405,7 +405,7 @@ enum Compatibility class ANNGroupBuilder { public: - ANNGroupBuilder(enco::Code *code) : _code{code} + ANNGroupBuilder(ANNContext *ctx) : _ctx{ctx} { // DO NOTHING } @@ -415,10 +415,10 @@ public: Compatibility kind(const Appender &appender) const; public: - void build(void) const; + void build(enco::Code *code) const; private: - enco::Code *_code; + ANNContext *_ctx; }; Compatibility ANNGroupBuilder::kind(const Appender &app) const @@ -428,13 +428,13 @@ Compatibility ANNGroupBuilder::kind(const Appender &app) const Compatibility ANNGroupBuilder::kind(const coco::Block *blk) const { - return (_code->ann()->find(blk) != nullptr) ? COMPATIBLE : INCOMPATIBLE; + return (_ctx->find(blk) != nullptr) ? COMPATIBLE : INCOMPATIBLE; } -void ANNGroupBuilder::build(void) const +void ANNGroupBuilder::build(enco::Code *code) const { - auto m = _code->module(); - auto d = _code->data(); + auto m = code->module(); + auto d = code->data(); ANNOpBuilder op_builder; @@ -458,7 +458,7 @@ void ANNGroupBuilder::build(void) const if (COMPATIBLE == t) { - _code->ann()->create(blk); + _ctx->create(blk); } }; @@ -494,7 +494,7 @@ void ANNGroupBuilder::build(void) const if (cur_append) { // Update Android NN IR if the current instruction is compatible - auto binder = _code->ann()->find(dst_blk); + auto binder = _ctx->find(dst_blk); assert(binder != nullptr); cur_append(binder); } @@ -584,8 +584,8 @@ namespace enco void SplitPass::runOnCode(enco::Code *code) const { - ANNGroupBuilder group_builder{code}; - group_builder.build(); + ANNGroupBuilder group_builder{code->ann()}; + group_builder.build(code); ANNModuleBuilder module_builder; module_builder.build(code->ann());