diff options
author | surmeh01 <surabhi.mehta@arm.com> | 2018-03-29 16:29:27 +0100 |
---|---|---|
committer | surmeh01 <surabhi.mehta@arm.com> | 2018-03-29 16:29:27 +0100 |
commit | bceff2fb3fc68bb0aa88b886900c34b77340c826 (patch) | |
tree | d867d3e090d58d3012dfbbac456e9ea8c7f789bc /src/armnn/Optimizer.cpp | |
parent | 4fcda0101ec3d110c1d6d7bee5c83416b645528a (diff) | |
download | armnn-bceff2fb3fc68bb0aa88b886900c34b77340c826.tar.gz |
Release 18.03
Diffstat (limited to 'src/armnn/Optimizer.cpp')
-rw-r--r-- | src/armnn/Optimizer.cpp | 26 |
1 files changed, 12 insertions, 14 deletions
diff --git a/src/armnn/Optimizer.cpp b/src/armnn/Optimizer.cpp index 85b9f2803c..9b76c7fa72 100644 --- a/src/armnn/Optimizer.cpp +++ b/src/armnn/Optimizer.cpp @@ -8,7 +8,7 @@ namespace armnn { -const Optimizer& Optimizer::Get() +Optimizer::Optimizer() { // Add optimizations here static optimizations::SquashEqualPermuteSiblings squashEqualPermuteSiblings; @@ -19,28 +19,26 @@ const Optimizer& Optimizer::Get() static optimizations::OptimizeConsecutiveReshapes optimizeConsecutiveReshapes; // Set optimizations in desired order - static const Optimizer optimizer({ - &squashEqualPermuteSiblings, - &squashEqualReshapeSiblings, - &optimizeInversePermutes, - &movePermuteUp, - &permuteAsReshape, - &optimizeConsecutiveReshapes, - }); - - return optimizer; + m_Optimizations = {&squashEqualPermuteSiblings, + &squashEqualReshapeSiblings, + &optimizeInversePermutes, + &movePermuteUp, + &permuteAsReshape, + &optimizeConsecutiveReshapes, + }; } -void Optimizer::Optimize(Graph& graph) const +void Optimizer::Optimize(Graph& graph) { + Optimizer optimizer; auto it = graph.TopologicalSort().end(); // Call TopologicalSort() in every iteration to re-order the list in case layers where added/removed. while (it != graph.TopologicalSort().begin()) { --it; - for (auto&& optimization : m_Optimizations) + for (auto&& optimization : optimizer.m_Optimizations) { - optimization->Run(graph, it); + optimization->Run(graph, **it); if ((*it)->IsOutputUnconnected()) { |