blob: 7659775a2d5d78bb420d3a50c1a4151c4f4399dc [file] [log] [blame]
Ryan OSheade36e4a2020-03-13 16:26:19 +00001<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2<html xmlns="http://www.w3.org/1999/xhtml">
3<head>
4<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
5<meta http-equiv="X-UA-Compatible" content="IE=9"/>
6<meta name="generator" content="Doxygen 1.8.13"/>
7<meta name="viewport" content="width=device-width, initial-scale=1"/>
8<title>ArmNN: OptimizationViews Class Reference</title>
9<link href="tabs.css" rel="stylesheet" type="text/css"/>
10<script type="text/javascript" src="jquery.js"></script>
11<script type="text/javascript" src="dynsections.js"></script>
12<link href="navtree.css" rel="stylesheet" type="text/css"/>
13<script type="text/javascript" src="resize.js"></script>
14<script type="text/javascript" src="navtreedata.js"></script>
15<script type="text/javascript" src="navtree.js"></script>
16<script type="text/javascript">
17 $(document).ready(initResizable);
18</script>
19<link href="search/search.css" rel="stylesheet" type="text/css"/>
20<script type="text/javascript" src="search/searchdata.js"></script>
21<script type="text/javascript" src="search/search.js"></script>
22<link href="doxygen.css" rel="stylesheet" type="text/css" />
23</head>
24<body>
25<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
26<div id="titlearea">
27<table cellspacing="0" cellpadding="0">
28 <tbody>
29 <tr style="height: 56px;">
30 <td id="projectalign" style="padding-left: 0.5em;">
31 <div id="projectname">ArmNN
32 &#160;<span id="projectnumber">NotReleased</span>
33 </div>
34 </td>
35 </tr>
36 </tbody>
37</table>
38</div>
39<!-- end header part -->
40<!-- Generated by Doxygen 1.8.13 -->
41<script type="text/javascript">
42var searchBox = new SearchBox("searchBox", "search",false,'Search');
43</script>
44<script type="text/javascript" src="menudata.js"></script>
45<script type="text/javascript" src="menu.js"></script>
46<script type="text/javascript">
47$(function() {
48 initMenu('',true,false,'search.php','Search');
49 $(document).ready(function() { init_search(); });
50});
51</script>
52<div id="main-nav"></div>
53</div><!-- top -->
54<div id="side-nav" class="ui-resizable side-nav-resizable">
55 <div id="nav-tree">
56 <div id="nav-tree-contents">
57 <div id="nav-sync" class="sync"></div>
58 </div>
59 </div>
60 <div id="splitbar" style="-moz-user-select:none;"
61 class="ui-resizable-handle">
62 </div>
63</div>
64<script type="text/javascript">
65$(document).ready(function(){initNavTree('classarmnn_1_1_optimization_views.html','');});
66</script>
67<div id="doc-content">
68<!-- window showing the filter options -->
69<div id="MSearchSelectWindow"
70 onmouseover="return searchBox.OnSearchSelectShow()"
71 onmouseout="return searchBox.OnSearchSelectHide()"
72 onkeydown="return searchBox.OnSearchSelectKey(event)">
73</div>
74
75<!-- iframe showing the search results (closed by default) -->
76<div id="MSearchResultsWindow">
77<iframe src="javascript:void(0)" frameborder="0"
78 name="MSearchResults" id="MSearchResults">
79</iframe>
80</div>
81
82<div class="header">
83 <div class="summary">
84<a href="#nested-classes">Classes</a> &#124;
85<a href="#pub-types">Public Types</a> &#124;
86<a href="#pub-methods">Public Member Functions</a> &#124;
87<a href="classarmnn_1_1_optimization_views-members.html">List of all members</a> </div>
88 <div class="headertitle">
89<div class="title">OptimizationViews Class Reference</div> </div>
90</div><!--header-->
91<div class="contents">
92
93<p><code>#include &lt;<a class="el" href="include_2armnn_2backends_2_optimization_views_8hpp_source.html">OptimizationViews.hpp</a>&gt;</code></p>
94<table class="memberdecls">
95<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
96Classes</h2></td></tr>
97<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structarmnn_1_1_optimization_views_1_1_substitution_pair.html">SubstitutionPair</a></td></tr>
98<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
99</table><table class="memberdecls">
100<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a>
101Public Types</h2></td></tr>
102<tr class="memitem:a4a2c55491ad3a0a6a98a884b3e3fe6d7"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_optimization_views.html#a4a2c55491ad3a0a6a98a884b3e3fe6d7">Subgraphs</a> = std::vector&lt; <a class="el" href="classarmnn_1_1_subgraph_view.html">SubgraphView</a> &gt;</td></tr>
103<tr class="separator:a4a2c55491ad3a0a6a98a884b3e3fe6d7"><td class="memSeparator" colspan="2">&#160;</td></tr>
104<tr class="memitem:a5831f7597baa44356221647c45a14f78"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_optimization_views.html#a5831f7597baa44356221647c45a14f78">Substitutions</a> = std::vector&lt; <a class="el" href="structarmnn_1_1_optimization_views_1_1_substitution_pair.html">SubstitutionPair</a> &gt;</td></tr>
105<tr class="separator:a5831f7597baa44356221647c45a14f78"><td class="memSeparator" colspan="2">&#160;</td></tr>
106</table><table class="memberdecls">
107<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
108Public Member Functions</h2></td></tr>
109<tr class="memitem:a045c00bee876f95ae5ad02e4bf6318c9"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_optimization_views.html#a045c00bee876f95ae5ad02e4bf6318c9">OptimizationViews</a> ()=default</td></tr>
110<tr class="separator:a045c00bee876f95ae5ad02e4bf6318c9"><td class="memSeparator" colspan="2">&#160;</td></tr>
111<tr class="memitem:a9a547d000ab53b70d18c52f8715e2332"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_optimization_views.html#a9a547d000ab53b70d18c52f8715e2332">OptimizationViews</a> (const <a class="el" href="classarmnn_1_1_optimization_views.html">OptimizationViews</a> &amp;)=delete</td></tr>
112<tr class="separator:a9a547d000ab53b70d18c52f8715e2332"><td class="memSeparator" colspan="2">&#160;</td></tr>
113<tr class="memitem:a730718bdbdf68deb2ded6a223fbac811"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classarmnn_1_1_optimization_views.html">OptimizationViews</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_optimization_views.html#a730718bdbdf68deb2ded6a223fbac811">operator=</a> (const <a class="el" href="classarmnn_1_1_optimization_views.html">OptimizationViews</a> &amp;)=delete</td></tr>
114<tr class="separator:a730718bdbdf68deb2ded6a223fbac811"><td class="memSeparator" colspan="2">&#160;</td></tr>
115<tr class="memitem:a276ddd49e657718e1f5753839872af63"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_optimization_views.html#a276ddd49e657718e1f5753839872af63">OptimizationViews</a> (<a class="el" href="classarmnn_1_1_optimization_views.html">OptimizationViews</a> &amp;&amp;)=default</td></tr>
116<tr class="separator:a276ddd49e657718e1f5753839872af63"><td class="memSeparator" colspan="2">&#160;</td></tr>
117<tr class="memitem:a868892fed5bcce50e1f59d98439742b7"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classarmnn_1_1_optimization_views.html">OptimizationViews</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_optimization_views.html#a868892fed5bcce50e1f59d98439742b7">operator=</a> (<a class="el" href="classarmnn_1_1_optimization_views.html">OptimizationViews</a> &amp;&amp;)=default</td></tr>
118<tr class="separator:a868892fed5bcce50e1f59d98439742b7"><td class="memSeparator" colspan="2">&#160;</td></tr>
119<tr class="memitem:a57340147dcb1c0ae05fdf14ff7af8a01"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_optimization_views.html#a57340147dcb1c0ae05fdf14ff7af8a01">AddSubstitution</a> (<a class="el" href="structarmnn_1_1_optimization_views_1_1_substitution_pair.html">SubstitutionPair</a> &amp;&amp;substitution)</td></tr>
120<tr class="separator:a57340147dcb1c0ae05fdf14ff7af8a01"><td class="memSeparator" colspan="2">&#160;</td></tr>
121<tr class="memitem:a1b29d43c2596e40987838f6d1f819858"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_optimization_views.html#a1b29d43c2596e40987838f6d1f819858">AddFailedSubgraph</a> (<a class="el" href="classarmnn_1_1_subgraph_view.html">SubgraphView</a> &amp;&amp;subgraph)</td></tr>
122<tr class="separator:a1b29d43c2596e40987838f6d1f819858"><td class="memSeparator" colspan="2">&#160;</td></tr>
123<tr class="memitem:a28e41bdd6b719a3d60a1a0de2e1ebc95"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_optimization_views.html#a28e41bdd6b719a3d60a1a0de2e1ebc95">AddUntouchedSubgraph</a> (<a class="el" href="classarmnn_1_1_subgraph_view.html">SubgraphView</a> &amp;&amp;subgraph)</td></tr>
124<tr class="separator:a28e41bdd6b719a3d60a1a0de2e1ebc95"><td class="memSeparator" colspan="2">&#160;</td></tr>
125<tr class="memitem:a9a1555f25af4a0ae2c0a1fc0ed9aded8"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classarmnn_1_1_optimization_views.html#a5831f7597baa44356221647c45a14f78">Substitutions</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_optimization_views.html#a9a1555f25af4a0ae2c0a1fc0ed9aded8">GetSubstitutions</a> () const</td></tr>
126<tr class="separator:a9a1555f25af4a0ae2c0a1fc0ed9aded8"><td class="memSeparator" colspan="2">&#160;</td></tr>
127<tr class="memitem:ad5fee4381bf82ffa37658dddf4d1fa01"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classarmnn_1_1_optimization_views.html#a4a2c55491ad3a0a6a98a884b3e3fe6d7">Subgraphs</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_optimization_views.html#ad5fee4381bf82ffa37658dddf4d1fa01">GetFailedSubgraphs</a> () const</td></tr>
128<tr class="separator:ad5fee4381bf82ffa37658dddf4d1fa01"><td class="memSeparator" colspan="2">&#160;</td></tr>
129<tr class="memitem:a3b4dae097ce086ce94079d09cce18703"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classarmnn_1_1_optimization_views.html#a4a2c55491ad3a0a6a98a884b3e3fe6d7">Subgraphs</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_optimization_views.html#a3b4dae097ce086ce94079d09cce18703">GetUntouchedSubgraphs</a> () const</td></tr>
130<tr class="separator:a3b4dae097ce086ce94079d09cce18703"><td class="memSeparator" colspan="2">&#160;</td></tr>
131<tr class="memitem:af57a6b0e88fd56f8dba7c5cb23871283"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classarmnn_1_1_optimization_views.html#a5831f7597baa44356221647c45a14f78">Substitutions</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_optimization_views.html#af57a6b0e88fd56f8dba7c5cb23871283">GetSubstitutions</a> ()</td></tr>
132<tr class="separator:af57a6b0e88fd56f8dba7c5cb23871283"><td class="memSeparator" colspan="2">&#160;</td></tr>
133<tr class="memitem:af90695ff32383f3f967e256783aba816"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classarmnn_1_1_optimization_views.html#a4a2c55491ad3a0a6a98a884b3e3fe6d7">Subgraphs</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_optimization_views.html#af90695ff32383f3f967e256783aba816">GetFailedSubgraphs</a> ()</td></tr>
134<tr class="separator:af90695ff32383f3f967e256783aba816"><td class="memSeparator" colspan="2">&#160;</td></tr>
135<tr class="memitem:ab4d6ad65115801991301dc629f187252"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classarmnn_1_1_optimization_views.html#a4a2c55491ad3a0a6a98a884b3e3fe6d7">Subgraphs</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_optimization_views.html#ab4d6ad65115801991301dc629f187252">GetUntouchedSubgraphs</a> ()</td></tr>
136<tr class="separator:ab4d6ad65115801991301dc629f187252"><td class="memSeparator" colspan="2">&#160;</td></tr>
137<tr class="memitem:a58dc3ea86870112f745b2a1f7dca55e9"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_optimization_views.html#a58dc3ea86870112f745b2a1f7dca55e9">Validate</a> (const <a class="el" href="classarmnn_1_1_subgraph_view.html">SubgraphView</a> &amp;originalSubgraph) const</td></tr>
138<tr class="separator:a58dc3ea86870112f745b2a1f7dca55e9"><td class="memSeparator" colspan="2">&#160;</td></tr>
139<tr class="memitem:a49800ad35ea869aa5569519760d3b339"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classarmnn_1_1_graph.html">Graph</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_optimization_views.html#a49800ad35ea869aa5569519760d3b339">GetGraph</a> ()</td></tr>
140<tr class="separator:a49800ad35ea869aa5569519760d3b339"><td class="memSeparator" colspan="2">&#160;</td></tr>
141</table>
142<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
143<div class="textblock">
144<p class="definition">Definition at line <a class="el" href="include_2armnn_2backends_2_optimization_views_8hpp_source.html#l00013">13</a> of file <a class="el" href="include_2armnn_2backends_2_optimization_views_8hpp_source.html">OptimizationViews.hpp</a>.</p>
145</div><h2 class="groupheader">Member Typedef Documentation</h2>
146<a id="a4a2c55491ad3a0a6a98a884b3e3fe6d7"></a>
147<h2 class="memtitle"><span class="permalink"><a href="#a4a2c55491ad3a0a6a98a884b3e3fe6d7">&#9670;&nbsp;</a></span>Subgraphs</h2>
148
149<div class="memitem">
150<div class="memproto">
151 <table class="memname">
152 <tr>
153 <td class="memname">using <a class="el" href="classarmnn_1_1_optimization_views.html#a4a2c55491ad3a0a6a98a884b3e3fe6d7">Subgraphs</a> = std::vector&lt;<a class="el" href="classarmnn_1_1_subgraph_view.html">SubgraphView</a>&gt;</td>
154 </tr>
155 </table>
156</div><div class="memdoc">
157
158<p class="definition">Definition at line <a class="el" href="include_2armnn_2backends_2_optimization_views_8hpp_source.html#l00031">31</a> of file <a class="el" href="include_2armnn_2backends_2_optimization_views_8hpp_source.html">OptimizationViews.hpp</a>.</p>
159
160</div>
161</div>
162<a id="a5831f7597baa44356221647c45a14f78"></a>
163<h2 class="memtitle"><span class="permalink"><a href="#a5831f7597baa44356221647c45a14f78">&#9670;&nbsp;</a></span>Substitutions</h2>
164
165<div class="memitem">
166<div class="memproto">
167 <table class="memname">
168 <tr>
169 <td class="memname">using <a class="el" href="classarmnn_1_1_optimization_views.html#a5831f7597baa44356221647c45a14f78">Substitutions</a> = std::vector&lt;<a class="el" href="structarmnn_1_1_optimization_views_1_1_substitution_pair.html">SubstitutionPair</a>&gt;</td>
170 </tr>
171 </table>
172</div><div class="memdoc">
173
174<p class="definition">Definition at line <a class="el" href="include_2armnn_2backends_2_optimization_views_8hpp_source.html#l00032">32</a> of file <a class="el" href="include_2armnn_2backends_2_optimization_views_8hpp_source.html">OptimizationViews.hpp</a>.</p>
175
176</div>
177</div>
178<h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
179<a id="a045c00bee876f95ae5ad02e4bf6318c9"></a>
180<h2 class="memtitle"><span class="permalink"><a href="#a045c00bee876f95ae5ad02e4bf6318c9">&#9670;&nbsp;</a></span>OptimizationViews() <span class="overload">[1/3]</span></h2>
181
182<div class="memitem">
183<div class="memproto">
184<table class="mlabels">
185 <tr>
186 <td class="mlabels-left">
187 <table class="memname">
188 <tr>
189 <td class="memname"><a class="el" href="classarmnn_1_1_optimization_views.html">OptimizationViews</a> </td>
190 <td>(</td>
191 <td class="paramname"></td><td>)</td>
192 <td></td>
193 </tr>
194 </table>
195 </td>
196 <td class="mlabels-right">
197<span class="mlabels"><span class="mlabel">default</span></span> </td>
198 </tr>
199</table>
200</div><div class="memdoc">
201
202</div>
203</div>
204<a id="a9a547d000ab53b70d18c52f8715e2332"></a>
205<h2 class="memtitle"><span class="permalink"><a href="#a9a547d000ab53b70d18c52f8715e2332">&#9670;&nbsp;</a></span>OptimizationViews() <span class="overload">[2/3]</span></h2>
206
207<div class="memitem">
208<div class="memproto">
209<table class="mlabels">
210 <tr>
211 <td class="mlabels-left">
212 <table class="memname">
213 <tr>
214 <td class="memname"><a class="el" href="classarmnn_1_1_optimization_views.html">OptimizationViews</a> </td>
215 <td>(</td>
216 <td class="paramtype">const <a class="el" href="classarmnn_1_1_optimization_views.html">OptimizationViews</a> &amp;&#160;</td>
217 <td class="paramname"></td><td>)</td>
218 <td></td>
219 </tr>
220 </table>
221 </td>
222 <td class="mlabels-right">
223<span class="mlabels"><span class="mlabel">delete</span></span> </td>
224 </tr>
225</table>
226</div><div class="memdoc">
227
228</div>
229</div>
230<a id="a276ddd49e657718e1f5753839872af63"></a>
231<h2 class="memtitle"><span class="permalink"><a href="#a276ddd49e657718e1f5753839872af63">&#9670;&nbsp;</a></span>OptimizationViews() <span class="overload">[3/3]</span></h2>
232
233<div class="memitem">
234<div class="memproto">
235<table class="mlabels">
236 <tr>
237 <td class="mlabels-left">
238 <table class="memname">
239 <tr>
240 <td class="memname"><a class="el" href="classarmnn_1_1_optimization_views.html">OptimizationViews</a> </td>
241 <td>(</td>
242 <td class="paramtype"><a class="el" href="classarmnn_1_1_optimization_views.html">OptimizationViews</a> &amp;&amp;&#160;</td>
243 <td class="paramname"></td><td>)</td>
244 <td></td>
245 </tr>
246 </table>
247 </td>
248 <td class="mlabels-right">
249<span class="mlabels"><span class="mlabel">default</span></span> </td>
250 </tr>
251</table>
252</div><div class="memdoc">
253
254</div>
255</div>
256<h2 class="groupheader">Member Function Documentation</h2>
257<a id="a1b29d43c2596e40987838f6d1f819858"></a>
258<h2 class="memtitle"><span class="permalink"><a href="#a1b29d43c2596e40987838f6d1f819858">&#9670;&nbsp;</a></span>AddFailedSubgraph()</h2>
259
260<div class="memitem">
261<div class="memproto">
262<table class="mlabels">
263 <tr>
264 <td class="mlabels-left">
265 <table class="memname">
266 <tr>
267 <td class="memname">void AddFailedSubgraph </td>
268 <td>(</td>
269 <td class="paramtype"><a class="el" href="classarmnn_1_1_subgraph_view.html">SubgraphView</a> &amp;&amp;&#160;</td>
270 <td class="paramname"><em>subgraph</em></td><td>)</td>
271 <td></td>
272 </tr>
273 </table>
274 </td>
275 <td class="mlabels-right">
276<span class="mlabels"><span class="mlabel">inline</span></span> </td>
277 </tr>
278</table>
279</div><div class="memdoc">
280
281<p class="definition">Definition at line <a class="el" href="include_2armnn_2backends_2_optimization_views_8hpp_source.html#l00039">39</a> of file <a class="el" href="include_2armnn_2backends_2_optimization_views_8hpp_source.html">OptimizationViews.hpp</a>.</p>
282
283<p class="reference">Referenced by <a class="el" href="_optimization_views_tests_8cpp_source.html#l00051">BOOST_AUTO_TEST_CASE()</a>, and <a class="el" href="_mock_backend_8cpp_source.html#l00134">MockBackend::OptimizeSubgraphView()</a>.</p>
284<div class="fragment"><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; {</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; m_FailedOptimizations.emplace_back(subgraph);</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; }</div></div><!-- fragment -->
285</div>
286</div>
287<a id="a57340147dcb1c0ae05fdf14ff7af8a01"></a>
288<h2 class="memtitle"><span class="permalink"><a href="#a57340147dcb1c0ae05fdf14ff7af8a01">&#9670;&nbsp;</a></span>AddSubstitution()</h2>
289
290<div class="memitem">
291<div class="memproto">
292<table class="mlabels">
293 <tr>
294 <td class="mlabels-left">
295 <table class="memname">
296 <tr>
297 <td class="memname">void AddSubstitution </td>
298 <td>(</td>
299 <td class="paramtype"><a class="el" href="structarmnn_1_1_optimization_views_1_1_substitution_pair.html">SubstitutionPair</a> &amp;&amp;&#160;</td>
300 <td class="paramname"><em>substitution</em></td><td>)</td>
301 <td></td>
302 </tr>
303 </table>
304 </td>
305 <td class="mlabels-right">
306<span class="mlabels"><span class="mlabel">inline</span></span> </td>
307 </tr>
308</table>
309</div><div class="memdoc">
310
311<p class="definition">Definition at line <a class="el" href="include_2armnn_2backends_2_optimization_views_8hpp_source.html#l00034">34</a> of file <a class="el" href="include_2armnn_2backends_2_optimization_views_8hpp_source.html">OptimizationViews.hpp</a>.</p>
312
313<p class="reference">Referenced by <a class="el" href="_optimization_views_tests_8cpp_source.html#l00051">BOOST_AUTO_TEST_CASE()</a>, and <a class="el" href="_mock_backend_8cpp_source.html#l00134">MockBackend::OptimizeSubgraphView()</a>.</p>
314<div class="fragment"><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; {</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; m_SuccesfulOptimizations.emplace_back(substitution);</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; }</div></div><!-- fragment -->
315</div>
316</div>
317<a id="a28e41bdd6b719a3d60a1a0de2e1ebc95"></a>
318<h2 class="memtitle"><span class="permalink"><a href="#a28e41bdd6b719a3d60a1a0de2e1ebc95">&#9670;&nbsp;</a></span>AddUntouchedSubgraph()</h2>
319
320<div class="memitem">
321<div class="memproto">
322<table class="mlabels">
323 <tr>
324 <td class="mlabels-left">
325 <table class="memname">
326 <tr>
327 <td class="memname">void AddUntouchedSubgraph </td>
328 <td>(</td>
329 <td class="paramtype"><a class="el" href="classarmnn_1_1_subgraph_view.html">SubgraphView</a> &amp;&amp;&#160;</td>
330 <td class="paramname"><em>subgraph</em></td><td>)</td>
331 <td></td>
332 </tr>
333 </table>
334 </td>
335 <td class="mlabels-right">
336<span class="mlabels"><span class="mlabel">inline</span></span> </td>
337 </tr>
338</table>
339</div><div class="memdoc">
340
341<p class="definition">Definition at line <a class="el" href="include_2armnn_2backends_2_optimization_views_8hpp_source.html#l00044">44</a> of file <a class="el" href="include_2armnn_2backends_2_optimization_views_8hpp_source.html">OptimizationViews.hpp</a>.</p>
342
343<p class="reference">Referenced by <a class="el" href="_optimization_views_tests_8cpp_source.html#l00051">BOOST_AUTO_TEST_CASE()</a>, <a class="el" href="_neon_backend_8cpp_source.html#l00081">NeonBackend::OptimizeSubgraphView()</a>, <a class="el" href="_ref_backend_8cpp_source.html#l00073">RefBackend::OptimizeSubgraphView()</a>, <a class="el" href="_cl_backend_8cpp_source.html#l00094">ClBackend::OptimizeSubgraphView()</a>, <a class="el" href="_i_backend_internal_8cpp_source.html#l00055">IBackendInternal::OptimizeSubgraphView()</a>, <a class="el" href="_mock_backend_8cpp_source.html#l00134">MockBackend::OptimizeSubgraphView()</a>, and <a class="el" href="_sample_dynamic_backend_8cpp_source.html#l00017">armnn::SampleDynamicBackendId()</a>.</p>
344<div class="fragment"><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; {</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; m_UntouchedSubgraphs.emplace_back(subgraph);</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; }</div></div><!-- fragment -->
345</div>
346</div>
347<a id="ad5fee4381bf82ffa37658dddf4d1fa01"></a>
348<h2 class="memtitle"><span class="permalink"><a href="#ad5fee4381bf82ffa37658dddf4d1fa01">&#9670;&nbsp;</a></span>GetFailedSubgraphs() <span class="overload">[1/2]</span></h2>
349
350<div class="memitem">
351<div class="memproto">
352<table class="mlabels">
353 <tr>
354 <td class="mlabels-left">
355 <table class="memname">
356 <tr>
357 <td class="memname">const <a class="el" href="classarmnn_1_1_optimization_views.html#a4a2c55491ad3a0a6a98a884b3e3fe6d7">Subgraphs</a>&amp; GetFailedSubgraphs </td>
358 <td>(</td>
359 <td class="paramname"></td><td>)</td>
360 <td> const</td>
361 </tr>
362 </table>
363 </td>
364 <td class="mlabels-right">
365<span class="mlabels"><span class="mlabel">inline</span></span> </td>
366 </tr>
367</table>
368</div><div class="memdoc">
369
370<p class="definition">Definition at line <a class="el" href="include_2armnn_2backends_2_optimization_views_8hpp_source.html#l00050">50</a> of file <a class="el" href="include_2armnn_2backends_2_optimization_views_8hpp_source.html">OptimizationViews.hpp</a>.</p>
371
372<p class="reference">Referenced by <a class="el" href="_network_8cpp_source.html#l00345">armnn::ApplyBackendOptimizations()</a>.</p>
373<div class="fragment"><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;{ <span class="keywordflow">return</span> m_FailedOptimizations; }</div></div><!-- fragment -->
374</div>
375</div>
376<a id="af90695ff32383f3f967e256783aba816"></a>
377<h2 class="memtitle"><span class="permalink"><a href="#af90695ff32383f3f967e256783aba816">&#9670;&nbsp;</a></span>GetFailedSubgraphs() <span class="overload">[2/2]</span></h2>
378
379<div class="memitem">
380<div class="memproto">
381<table class="mlabels">
382 <tr>
383 <td class="mlabels-left">
384 <table class="memname">
385 <tr>
386 <td class="memname"><a class="el" href="classarmnn_1_1_optimization_views.html#a4a2c55491ad3a0a6a98a884b3e3fe6d7">Subgraphs</a>&amp; GetFailedSubgraphs </td>
387 <td>(</td>
388 <td class="paramname"></td><td>)</td>
389 <td></td>
390 </tr>
391 </table>
392 </td>
393 <td class="mlabels-right">
394<span class="mlabels"><span class="mlabel">inline</span></span> </td>
395 </tr>
396</table>
397</div><div class="memdoc">
398
399<p class="definition">Definition at line <a class="el" href="include_2armnn_2backends_2_optimization_views_8hpp_source.html#l00054">54</a> of file <a class="el" href="include_2armnn_2backends_2_optimization_views_8hpp_source.html">OptimizationViews.hpp</a>.</p>
400<div class="fragment"><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;{ <span class="keywordflow">return</span> m_FailedOptimizations; }</div></div><!-- fragment -->
401</div>
402</div>
403<a id="a49800ad35ea869aa5569519760d3b339"></a>
404<h2 class="memtitle"><span class="permalink"><a href="#a49800ad35ea869aa5569519760d3b339">&#9670;&nbsp;</a></span>GetGraph()</h2>
405
406<div class="memitem">
407<div class="memproto">
408<table class="mlabels">
409 <tr>
410 <td class="mlabels-left">
411 <table class="memname">
412 <tr>
413 <td class="memname"><a class="el" href="classarmnn_1_1_graph.html">Graph</a>&amp; GetGraph </td>
414 <td>(</td>
415 <td class="paramname"></td><td>)</td>
416 <td></td>
417 </tr>
418 </table>
419 </td>
420 <td class="mlabels-right">
421<span class="mlabels"><span class="mlabel">inline</span></span> </td>
422 </tr>
423</table>
424</div><div class="memdoc">
425
426<p class="definition">Definition at line <a class="el" href="include_2armnn_2backends_2_optimization_views_8hpp_source.html#l00059">59</a> of file <a class="el" href="include_2armnn_2backends_2_optimization_views_8hpp_source.html">OptimizationViews.hpp</a>.</p>
427
428<p class="reference">Referenced by <a class="el" href="_optimization_views_tests_8cpp_source.html#l00051">BOOST_AUTO_TEST_CASE()</a>, and <a class="el" href="_mock_backend_8cpp_source.html#l00134">MockBackend::OptimizeSubgraphView()</a>.</p>
429<div class="fragment"><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;{ <span class="keywordflow">return</span> m_Graph; }</div></div><!-- fragment -->
430</div>
431</div>
432<a id="a9a1555f25af4a0ae2c0a1fc0ed9aded8"></a>
433<h2 class="memtitle"><span class="permalink"><a href="#a9a1555f25af4a0ae2c0a1fc0ed9aded8">&#9670;&nbsp;</a></span>GetSubstitutions() <span class="overload">[1/2]</span></h2>
434
435<div class="memitem">
436<div class="memproto">
437<table class="mlabels">
438 <tr>
439 <td class="mlabels-left">
440 <table class="memname">
441 <tr>
442 <td class="memname">const <a class="el" href="classarmnn_1_1_optimization_views.html#a5831f7597baa44356221647c45a14f78">Substitutions</a>&amp; GetSubstitutions </td>
443 <td>(</td>
444 <td class="paramname"></td><td>)</td>
445 <td> const</td>
446 </tr>
447 </table>
448 </td>
449 <td class="mlabels-right">
450<span class="mlabels"><span class="mlabel">inline</span></span> </td>
451 </tr>
452</table>
453</div><div class="memdoc">
454
455<p class="definition">Definition at line <a class="el" href="include_2armnn_2backends_2_optimization_views_8hpp_source.html#l00049">49</a> of file <a class="el" href="include_2armnn_2backends_2_optimization_views_8hpp_source.html">OptimizationViews.hpp</a>.</p>
456
457<p class="reference">Referenced by <a class="el" href="_network_8cpp_source.html#l00345">armnn::ApplyBackendOptimizations()</a>.</p>
458<div class="fragment"><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;{ <span class="keywordflow">return</span> m_SuccesfulOptimizations; }</div></div><!-- fragment -->
459</div>
460</div>
461<a id="af57a6b0e88fd56f8dba7c5cb23871283"></a>
462<h2 class="memtitle"><span class="permalink"><a href="#af57a6b0e88fd56f8dba7c5cb23871283">&#9670;&nbsp;</a></span>GetSubstitutions() <span class="overload">[2/2]</span></h2>
463
464<div class="memitem">
465<div class="memproto">
466<table class="mlabels">
467 <tr>
468 <td class="mlabels-left">
469 <table class="memname">
470 <tr>
471 <td class="memname"><a class="el" href="classarmnn_1_1_optimization_views.html#a5831f7597baa44356221647c45a14f78">Substitutions</a>&amp; GetSubstitutions </td>
472 <td>(</td>
473 <td class="paramname"></td><td>)</td>
474 <td></td>
475 </tr>
476 </table>
477 </td>
478 <td class="mlabels-right">
479<span class="mlabels"><span class="mlabel">inline</span></span> </td>
480 </tr>
481</table>
482</div><div class="memdoc">
483
484<p class="definition">Definition at line <a class="el" href="include_2armnn_2backends_2_optimization_views_8hpp_source.html#l00053">53</a> of file <a class="el" href="include_2armnn_2backends_2_optimization_views_8hpp_source.html">OptimizationViews.hpp</a>.</p>
485<div class="fragment"><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;{ <span class="keywordflow">return</span> m_SuccesfulOptimizations; }</div></div><!-- fragment -->
486</div>
487</div>
488<a id="a3b4dae097ce086ce94079d09cce18703"></a>
489<h2 class="memtitle"><span class="permalink"><a href="#a3b4dae097ce086ce94079d09cce18703">&#9670;&nbsp;</a></span>GetUntouchedSubgraphs() <span class="overload">[1/2]</span></h2>
490
491<div class="memitem">
492<div class="memproto">
493<table class="mlabels">
494 <tr>
495 <td class="mlabels-left">
496 <table class="memname">
497 <tr>
498 <td class="memname">const <a class="el" href="classarmnn_1_1_optimization_views.html#a4a2c55491ad3a0a6a98a884b3e3fe6d7">Subgraphs</a>&amp; GetUntouchedSubgraphs </td>
499 <td>(</td>
500 <td class="paramname"></td><td>)</td>
501 <td> const</td>
502 </tr>
503 </table>
504 </td>
505 <td class="mlabels-right">
506<span class="mlabels"><span class="mlabel">inline</span></span> </td>
507 </tr>
508</table>
509</div><div class="memdoc">
510
511<p class="definition">Definition at line <a class="el" href="include_2armnn_2backends_2_optimization_views_8hpp_source.html#l00051">51</a> of file <a class="el" href="include_2armnn_2backends_2_optimization_views_8hpp_source.html">OptimizationViews.hpp</a>.</p>
512<div class="fragment"><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;{ <span class="keywordflow">return</span> m_UntouchedSubgraphs; }</div></div><!-- fragment -->
513</div>
514</div>
515<a id="ab4d6ad65115801991301dc629f187252"></a>
516<h2 class="memtitle"><span class="permalink"><a href="#ab4d6ad65115801991301dc629f187252">&#9670;&nbsp;</a></span>GetUntouchedSubgraphs() <span class="overload">[2/2]</span></h2>
517
518<div class="memitem">
519<div class="memproto">
520<table class="mlabels">
521 <tr>
522 <td class="mlabels-left">
523 <table class="memname">
524 <tr>
525 <td class="memname"><a class="el" href="classarmnn_1_1_optimization_views.html#a4a2c55491ad3a0a6a98a884b3e3fe6d7">Subgraphs</a>&amp; GetUntouchedSubgraphs </td>
526 <td>(</td>
527 <td class="paramname"></td><td>)</td>
528 <td></td>
529 </tr>
530 </table>
531 </td>
532 <td class="mlabels-right">
533<span class="mlabels"><span class="mlabel">inline</span></span> </td>
534 </tr>
535</table>
536</div><div class="memdoc">
537
538<p class="definition">Definition at line <a class="el" href="include_2armnn_2backends_2_optimization_views_8hpp_source.html#l00055">55</a> of file <a class="el" href="include_2armnn_2backends_2_optimization_views_8hpp_source.html">OptimizationViews.hpp</a>.</p>
539
540<p class="reference">References <a class="el" href="_optimization_views_8cpp_source.html#l00011">OptimizationViews::Validate()</a>.</p>
541<div class="fragment"><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;{ <span class="keywordflow">return</span> m_UntouchedSubgraphs; }</div></div><!-- fragment -->
542</div>
543</div>
544<a id="a730718bdbdf68deb2ded6a223fbac811"></a>
545<h2 class="memtitle"><span class="permalink"><a href="#a730718bdbdf68deb2ded6a223fbac811">&#9670;&nbsp;</a></span>operator=() <span class="overload">[1/2]</span></h2>
546
547<div class="memitem">
548<div class="memproto">
549<table class="mlabels">
550 <tr>
551 <td class="mlabels-left">
552 <table class="memname">
553 <tr>
554 <td class="memname"><a class="el" href="classarmnn_1_1_optimization_views.html">OptimizationViews</a>&amp; operator= </td>
555 <td>(</td>
556 <td class="paramtype">const <a class="el" href="classarmnn_1_1_optimization_views.html">OptimizationViews</a> &amp;&#160;</td>
557 <td class="paramname"></td><td>)</td>
558 <td></td>
559 </tr>
560 </table>
561 </td>
562 <td class="mlabels-right">
563<span class="mlabels"><span class="mlabel">delete</span></span> </td>
564 </tr>
565</table>
566</div><div class="memdoc">
567
568</div>
569</div>
570<a id="a868892fed5bcce50e1f59d98439742b7"></a>
571<h2 class="memtitle"><span class="permalink"><a href="#a868892fed5bcce50e1f59d98439742b7">&#9670;&nbsp;</a></span>operator=() <span class="overload">[2/2]</span></h2>
572
573<div class="memitem">
574<div class="memproto">
575<table class="mlabels">
576 <tr>
577 <td class="mlabels-left">
578 <table class="memname">
579 <tr>
580 <td class="memname"><a class="el" href="classarmnn_1_1_optimization_views.html">OptimizationViews</a>&amp; operator= </td>
581 <td>(</td>
582 <td class="paramtype"><a class="el" href="classarmnn_1_1_optimization_views.html">OptimizationViews</a> &amp;&amp;&#160;</td>
583 <td class="paramname"></td><td>)</td>
584 <td></td>
585 </tr>
586 </table>
587 </td>
588 <td class="mlabels-right">
589<span class="mlabels"><span class="mlabel">default</span></span> </td>
590 </tr>
591</table>
592</div><div class="memdoc">
593
594</div>
595</div>
596<a id="a58dc3ea86870112f745b2a1f7dca55e9"></a>
597<h2 class="memtitle"><span class="permalink"><a href="#a58dc3ea86870112f745b2a1f7dca55e9">&#9670;&nbsp;</a></span>Validate()</h2>
598
599<div class="memitem">
600<div class="memproto">
601 <table class="memname">
602 <tr>
603 <td class="memname">bool Validate </td>
604 <td>(</td>
605 <td class="paramtype">const <a class="el" href="classarmnn_1_1_subgraph_view.html">SubgraphView</a> &amp;&#160;</td>
606 <td class="paramname"><em>originalSubgraph</em></td><td>)</td>
607 <td> const</td>
608 </tr>
609 </table>
610</div><div class="memdoc">
611
612<p class="definition">Definition at line <a class="el" href="_optimization_views_8cpp_source.html#l00011">11</a> of file <a class="el" href="_optimization_views_8cpp_source.html">OptimizationViews.cpp</a>.</p>
613
614<p class="reference">References <a class="el" href="_subgraph_view_8cpp_source.html#l00118">SubgraphView::GetInputSlots()</a>, <a class="el" href="_subgraph_view_8cpp_source.html#l00158">SubgraphView::GetLayers()</a>, and <a class="el" href="_subgraph_view_8cpp_source.html#l00123">SubgraphView::GetOutputSlots()</a>.</p>
615
616<p class="reference">Referenced by <a class="el" href="_network_8cpp_source.html#l00345">armnn::ApplyBackendOptimizations()</a>, <a class="el" href="_optimization_views_tests_8cpp_source.html#l00051">BOOST_AUTO_TEST_CASE()</a>, and <a class="el" href="include_2armnn_2backends_2_optimization_views_8hpp_source.html#l00055">OptimizationViews::GetUntouchedSubgraphs()</a>.</p>
617<div class="fragment"><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;{</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160; <span class="comment">//This needs to verify that:</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160; <span class="comment">// 1) the sum of m_SuccesfulOptimizations &amp; m_FailedOptimizations &amp; m_UntouchedSubgraphs contains subgraphviews</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160; <span class="comment">// which cover the entire space of the originalSubgraph.</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160; <span class="comment">// 2) Each SubstitutionPair contains matching inputs and outputs</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160; <span class="keywordtype">bool</span> valid = <span class="keyword">true</span>;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;</div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160; <span class="comment">// Create a copy of the layer list from the original subgraph and sort it</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160; <a class="code" href="classarmnn_1_1_subgraph_view.html#a74798938fdaeae75c8adfa4a7439e7f9">SubgraphView::Layers</a> originalLayers = originalSubgraph.GetLayers();</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160; originalLayers.sort();</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; <span class="comment">// Create a new list based on the sum of all the subgraphs and sort it</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; <a class="code" href="classarmnn_1_1_subgraph_view.html#a74798938fdaeae75c8adfa4a7439e7f9">SubgraphView::Layers</a> countedLayers;</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">auto</span>&amp; failed : m_FailedOptimizations)</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; {</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; countedLayers.insert(countedLayers.end(), failed.GetLayers().begin(), failed.GetLayers().end());</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; }</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">auto</span>&amp; untouched : m_UntouchedSubgraphs)</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; {</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; countedLayers.insert(countedLayers.end(), untouched.GetLayers().begin(), untouched.GetLayers().end());</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; }</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">auto</span>&amp; successful : m_SuccesfulOptimizations)</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; {</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; countedLayers.insert(countedLayers.end(),</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; successful.m_SubstitutableSubgraph.GetLayers().begin(),</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; successful.m_SubstitutableSubgraph.GetLayers().end());</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; }</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; countedLayers.sort();</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; <span class="comment">// Compare the two lists to make sure they match</span></div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; valid &amp;= originalLayers.size() == countedLayers.size();</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <span class="keyword">auto</span> oIt = originalLayers.begin();</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; <span class="keyword">auto</span> cIt = countedLayers.begin();</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i=0; i &lt; originalLayers.size() &amp;&amp; valid; ++i, ++oIt, ++cIt)</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; {</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; valid &amp;= (*oIt == *cIt);</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; }</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <span class="comment">// Compare the substitution subgraphs to ensure they are compatible</span></div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <span class="keywordflow">if</span> (valid)</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; {</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">auto</span>&amp; substitution : m_SuccesfulOptimizations)</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; {</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <span class="keywordtype">bool</span> validSubstitution = <span class="keyword">true</span>;</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <span class="keyword">const</span> SubgraphView&amp; replacement = substitution.m_ReplacementSubgraph;</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <span class="keyword">const</span> SubgraphView&amp; old = substitution.m_SubstitutableSubgraph;</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; validSubstitution &amp;= replacement.GetInputSlots().size() == old.GetInputSlots().size();</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; validSubstitution &amp;= replacement.GetOutputSlots().size() == old.GetOutputSlots().size();</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; valid &amp;= validSubstitution;</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; }</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; }</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <span class="keywordflow">return</span> valid;</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;}</div><div class="ttc" id="classarmnn_1_1_subgraph_view_html_a74798938fdaeae75c8adfa4a7439e7f9"><div class="ttname"><a href="classarmnn_1_1_subgraph_view.html#a74798938fdaeae75c8adfa4a7439e7f9">armnn::SubgraphView::Layers</a></div><div class="ttdeci">std::list&lt; Layer * &gt; Layers</div><div class="ttdef"><b>Definition:</b> <a href="_subgraph_view_8hpp_source.html#l00040">SubgraphView.hpp:40</a></div></div>
618</div><!-- fragment -->
619</div>
620</div>
621<hr/>The documentation for this class was generated from the following files:<ul>
622<li>include/armnn/backends/<a class="el" href="include_2armnn_2backends_2_optimization_views_8hpp_source.html">OptimizationViews.hpp</a></li>
623<li>src/backends/backendsCommon/<a class="el" href="_optimization_views_8cpp_source.html">OptimizationViews.cpp</a></li>
624</ul>
625</div><!-- contents -->
626</div><!-- doc-content -->
627<!-- start footer part -->
628<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
629 <ul>
630 <li class="navelem"><a class="el" href="namespacearmnn.html">armnn</a></li><li class="navelem"><a class="el" href="classarmnn_1_1_optimization_views.html">OptimizationViews</a></li>
631 <li class="footer">Generated on Fri Mar 13 2020 16:07:04 for ArmNN by
632 <a href="http://www.doxygen.org/index.html">
633 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
634 </ul>
635</div>
636</body>
637</html>