aboutsummaryrefslogtreecommitdiff
path: root/src/armnn/Optimizer.cpp
diff options
context:
space:
mode:
authorsurmeh01 <surabhi.mehta@arm.com>2018-03-29 16:29:27 +0100
committersurmeh01 <surabhi.mehta@arm.com>2018-03-29 16:29:27 +0100
commitbceff2fb3fc68bb0aa88b886900c34b77340c826 (patch)
treed867d3e090d58d3012dfbbac456e9ea8c7f789bc /src/armnn/Optimizer.cpp
parent4fcda0101ec3d110c1d6d7bee5c83416b645528a (diff)
downloadarmnn-bceff2fb3fc68bb0aa88b886900c34b77340c826.tar.gz
Release 18.03
Diffstat (limited to 'src/armnn/Optimizer.cpp')
-rw-r--r--src/armnn/Optimizer.cpp26
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())
{