svf-tools 1.0.574 → 1.0.576
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/SVF-doxygen/html/html/AndersenSCD_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/CFLSolver_8h_source.html +4 -4
- package/SVF-doxygen/html/html/CHGBuilder_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/CSC_8h_source.html +1 -1
- package/SVF-doxygen/html/html/ConsG_8h_source.html +3 -3
- package/SVF-doxygen/html/html/ExtAPI_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/GraphReachSolver_8h_source.html +4 -4
- package/SVF-doxygen/html/html/ICFGBuilder_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/LeakChecker_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/LockAnalysis_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/LockAnalysis_8h_source.html +3 -3
- package/SVF-doxygen/html/html/MHP_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/MHP_8h_source.html +3 -3
- package/SVF-doxygen/html/html/MemRegion_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/PCG_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/ProgSlice_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/SVFGOPT_8h_source.html +1 -1
- package/SVF-doxygen/html/html/SaberCondAllocator_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/SaberSVFGBuilder_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/SrcSnkDDA_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/SrcSnkSolver_8h_source.html +4 -4
- package/SVF-doxygen/html/html/TCT_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/TCT_8h_source.html +3 -3
- package/SVF-doxygen/html/html/VersionedFlowSensitive_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/WPASolver_8h_source.html +4 -4
- package/SVF-doxygen/html/html/WorkList_8h_source.html +31 -25
- package/SVF-doxygen/html/html/classSVF_1_1AndersenSCD.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CFLSolver.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1ConstraintGraph.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1ExtAPI.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1FIFOWorkList-members.html +5 -2
- package/SVF-doxygen/html/html/classSVF_1_1FIFOWorkList.html +122 -24
- package/SVF-doxygen/html/html/classSVF_1_1FILOWorkList-members.html +4 -1
- package/SVF-doxygen/html/html/classSVF_1_1FILOWorkList.html +122 -24
- package/SVF-doxygen/html/html/classSVF_1_1ForkJoinAnalysis.html +7 -7
- package/SVF-doxygen/html/html/classSVF_1_1GraphReachSolver.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1List.html +3 -4
- package/SVF-doxygen/html/html/classSVF_1_1LockAnalysis.html +10 -10
- package/SVF-doxygen/html/html/classSVF_1_1MHP.html +9 -9
- package/SVF-doxygen/html/html/classSVF_1_1MRGenerator.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1SVFGOPT.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1SaberSVFGBuilder.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1SrcSnkDDA.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1SrcSnkSolver.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1TCT.html +15 -15
- package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1WPASolver.html +4 -4
- package/SVF-doxygen/html/html/functions_d.html +4 -0
- package/SVF-doxygen/html/html/functions_func_s.html +8 -6
- package/SVF-doxygen/html/html/functions_s.html +11 -9
- package/SVF-doxygen/html/html/functions_type_d.html +2 -0
- package/SVF-doxygen/html/html/functions_vars_d.html +2 -0
- package/SVF-doxygen/html/html/search/all_12.js +1 -1
- package/SVF-doxygen/html/html/search/all_4.js +2 -2
- package/SVF-doxygen/html/html/search/functions_11.js +1 -1
- package/SVF-doxygen/html/html/search/typedefs_3.js +1 -1
- package/SVF-doxygen/html/html/search/variables_4.js +1 -1
- package/SVF-doxygen/html/html/svf-ex_8cpp.html +6 -6
- package/SVF-doxygen/html/html/svf-ex_8cpp_source.html +3 -3
- package/include/Util/WorkList.h +72 -36
- package/lib/Util/ExtAPI.cpp +1 -1
- package/package.json +1 -1
|
@@ -66,51 +66,57 @@ $(function() {
|
|
|
66
66
|
<div class="title">WorkList.h</div> </div>
|
|
67
67
|
</div><!--header-->
|
|
68
68
|
<div class="contents">
|
|
69
|
-
<a href="WorkList_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">//===- WorkList.h -- Internal worklist used in SVF---------------------------//</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment">//</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment">// SVF: Static Value-Flow Analysis</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment">//</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment">// Copyright (C) <2013-2017> <Yulei Sui></span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment">//</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span> </div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment">// This program is free software: you can redistribute it and/or modify</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment">// it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment">// the Free Software Foundation, either version 3 of the License, or</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment">// (at your option) any later version.</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span> </div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="comment">// This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="comment">// but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="comment">// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="comment">// GNU General Public License for more details.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span> </div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="comment">// You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="comment">// along with this program. If not, see <http://www.gnu.org/licenses/>.</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="comment">//</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="comment">//===----------------------------------------------------------------------===//</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span> </div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="comment">/*</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="comment"> * @file: WorkList.h</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="comment"> * @author: yesen</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="comment"> * @date: 06/12/2013</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="comment"> * @version: 1.0</span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="comment"> *</span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="comment"> * @section LICENSE</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="comment"> *</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="comment"> * @section DESCRIPTION</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="comment"> *</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="comment"> */</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span> </div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span> </div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="preprocessor">#ifndef WORKLIST_H_</span></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="preprocessor">#define WORKLIST_H_</span></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span> </div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span> <span class="preprocessor">#include "<a class="code" href="Util_2BasicTypes_8h.html">Util/BasicTypes.h</a>"</span></div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span> </div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span> <span class="preprocessor">#include <assert.h></span></div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="preprocessor">#include <cstdlib></span></div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="preprocessor">#include <vector></span></div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="preprocessor">#include <deque></span></div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="preprocessor">#include <set></span></div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span> </div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="keyword">namespace </span><a class="code" href="namespaceSVF.html">SVF</a></div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span> {</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span> </div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span> <span class="keyword">template</span><<span class="keyword">class</span> Data></div><div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="classSVF_1_1List.html"> 56</a></span> <span class="keyword">class </span><a class="code" href="classSVF_1_1List.html">List</a></div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span> {</div><div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="classSVF_1_1List_1_1ListNode.html"> 58</a></span>  <span class="keyword">class </span><a class="code" href="classSVF_1_1List_1_1ListNode.html">ListNode</a></div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  {</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  <span class="keyword">public</span>:</div><div class="line"><a name="l00061"></a><span class="lineno"><a class="line" href="classSVF_1_1List_1_1ListNode.html#a9a9f6cf03627a5a115c64776039f8dbc"> 61</a></span>  <a class="code" href="classSVF_1_1List_1_1ListNode.html#a9a9f6cf03627a5a115c64776039f8dbc">ListNode</a>(<span class="keyword">const</span> Data& d)</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  {</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  <a class="code" href="classSVF_1_1List_1_1ListNode.html#a4a9cb4ae17156d6d80d2357e06231e12">data</a> = d;</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  <a class="code" href="classSVF_1_1List_1_1ListNode.html#a6fb535e702af0e4f54274050ee0c06c5">next</a> = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  }</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span> </div><div class="line"><a name="l00067"></a><span class="lineno"><a class="line" href="classSVF_1_1List_1_1ListNode.html#adc6d3cf20ac762c138b896dfff376494"> 67</a></span>  <a class="code" href="classSVF_1_1List_1_1ListNode.html#adc6d3cf20ac762c138b896dfff376494">~ListNode</a>() {}</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span> </div><div class="line"><a name="l00069"></a><span class="lineno"><a class="line" href="classSVF_1_1List_1_1ListNode.html#a4a9cb4ae17156d6d80d2357e06231e12"> 69</a></span>  Data <a class="code" href="classSVF_1_1List_1_1ListNode.html#a4a9cb4ae17156d6d80d2357e06231e12">data</a>;</div><div class="line"><a name="l00070"></a><span class="lineno"><a class="line" href="classSVF_1_1List_1_1ListNode.html#a6fb535e702af0e4f54274050ee0c06c5"> 70</a></span>  <a class="code" href="classSVF_1_1List_1_1ListNode.html">ListNode</a>* <a class="code" href="classSVF_1_1List_1_1ListNode.html#a6fb535e702af0e4f54274050ee0c06c5">next</a>;</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  };</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span> </div><div class="line"><a name="l00073"></a><span class="lineno"><a class="line" href="classSVF_1_1List.html#a8f8a9dff1d1213a747f0d7ce8b1802e9"> 73</a></span>  <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set<Data></a> <a class="code" href="classSVF_1_1List.html#a8f8a9dff1d1213a747f0d7ce8b1802e9">DataSet</a>;</div><div class="line"><a name="l00074"></a><span class="lineno"><a class="line" href="classSVF_1_1List.html#a4eba65b40d347ea80e2427320eb9c5a1"> 74</a></span>  <span class="keyword">typedef</span> <a class="code" href="classSVF_1_1List_1_1ListNode.html">ListNode</a> <a class="code" href="classSVF_1_1List.html#a4eba65b40d347ea80e2427320eb9c5a1">Node</a>;</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span> </div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00077"></a><span class="lineno"><a class="line" href="classSVF_1_1List.html#aeb697e85085a332e5d593b6f8ee95713"> 77</a></span>  <a class="code" href="classSVF_1_1List.html#aeb697e85085a332e5d593b6f8ee95713">List</a>()</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  {</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  <a class="code" href="classSVF_1_1List.html#a41d52072edb2b75ab15d67bf2663312a">head</a> = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  <a class="code" href="classSVF_1_1List.html#a7900b03bc65b9f8d3e7e5bb1a80a4125">tail</a> = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  }</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span> </div><div class="line"><a name="l00083"></a><span class="lineno"><a class="line" href="classSVF_1_1List.html#afd8edd0acf606e0c3470bab424083b45"> 83</a></span>  <a class="code" href="classSVF_1_1List.html#afd8edd0acf606e0c3470bab424083b45">~List</a>() {}</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span> </div><div class="line"><a name="l00085"></a><span class="lineno"><a class="line" href="classSVF_1_1List.html#a063246d2aa23e389e513c5498ff33aca"> 85</a></span>  <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1List.html#a063246d2aa23e389e513c5498ff33aca">empty</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  <span class="keywordflow">return</span> (<a class="code" href="classSVF_1_1List.html#a41d52072edb2b75ab15d67bf2663312a">head</a> == <span class="keyword">nullptr</span>);</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  }</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span> </div><div class="line"><a name="l00090"></a><span class="lineno"><a class="line" href="classSVF_1_1List.html#a6db4368f5e5767d3e3f0e83f78707b31"> 90</a></span>  <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1List.html#a6db4368f5e5767d3e3f0e83f78707b31">find</a>(<span class="keyword">const</span> Data& <a class="code" href="classSVF_1_1List_1_1ListNode.html#a4a9cb4ae17156d6d80d2357e06231e12">data</a>)<span class="keyword"> const</span></div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>  <span class="keywordflow">return</span> (<a class="code" href="classSVF_1_1List.html#a8d9ffc8497d53e0e1de230e0d8a50fec">nodeSet</a>.find(data) == <a class="code" href="classSVF_1_1List.html#a8d9ffc8497d53e0e1de230e0d8a50fec">nodeSet</a>.end() ? <a class="code" href="cJSON_8cpp.html#a65e9886d74aaee76545e83dd09011727">false</a> : <span class="keyword">true</span>);</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  }</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span> </div><div class="line"><a name="l00095"></a><span class="lineno"><a class="line" href="classSVF_1_1List.html#ae6357e876e0a1fa2f925cc63dacc529c"> 95</a></span>  <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1List.html#ae6357e876e0a1fa2f925cc63dacc529c">push</a>(<span class="keyword">const</span> Data& <a class="code" href="classSVF_1_1List_1_1ListNode.html#a4a9cb4ae17156d6d80d2357e06231e12">data</a>)</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>  {</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1List.html#a8d9ffc8497d53e0e1de230e0d8a50fec">nodeSet</a>.find(data) == <a class="code" href="classSVF_1_1List.html#a8d9ffc8497d53e0e1de230e0d8a50fec">nodeSet</a>.end())</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>  {</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>  Node* new_node = <span class="keyword">new</span> <a class="code" href="classSVF_1_1List.html#a4eba65b40d347ea80e2427320eb9c5a1">Node</a>(data);</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1List.html#a41d52072edb2b75ab15d67bf2663312a">head</a> == <span class="keyword">nullptr</span>)</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>  <a class="code" href="classSVF_1_1List.html#a41d52072edb2b75ab15d67bf2663312a">head</a> = new_node;<span class="comment">// the list is empty</span></div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>  <a class="code" href="classSVF_1_1List.html#a7900b03bc65b9f8d3e7e5bb1a80a4125">tail</a>-><a class="code" href="classSVF_1_1List_1_1ListNode.html#a6fb535e702af0e4f54274050ee0c06c5">next</a> = new_node;</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>  <a class="code" href="classSVF_1_1List.html#a7900b03bc65b9f8d3e7e5bb1a80a4125">tail</a> = new_node;</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>  }</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>  }</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span> </div><div class="line"><a name="l00108"></a><span class="lineno"><a class="line" href="classSVF_1_1List.html#a6e85bd3d8b23ccc7752a72e2a5b171ab"> 108</a></span>  Data <a class="code" href="classSVF_1_1List.html#a6e85bd3d8b23ccc7752a72e2a5b171ab">pop</a>()</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>  {</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>  assert(<a class="code" href="classSVF_1_1List.html#a41d52072edb2b75ab15d67bf2663312a">head</a> != <span class="keyword">nullptr</span> && <span class="stringliteral">"list is empty"</span>);</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>  Node* head_node = <a class="code" href="classSVF_1_1List.html#a41d52072edb2b75ab15d67bf2663312a">head</a>;</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span> </div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>  <a class="code" href="classSVF_1_1List.html#a41d52072edb2b75ab15d67bf2663312a">head</a> = <a class="code" href="classSVF_1_1List.html#a41d52072edb2b75ab15d67bf2663312a">head</a>-><a class="code" href="classSVF_1_1List_1_1ListNode.html#a6fb535e702af0e4f54274050ee0c06c5">next</a>;</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1List.html#a41d52072edb2b75ab15d67bf2663312a">head</a> == <span class="keyword">nullptr</span>)</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>  <a class="code" href="classSVF_1_1List.html#a7900b03bc65b9f8d3e7e5bb1a80a4125">tail</a> = <span class="keyword">nullptr</span>; </div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span> </div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>  Data <a class="code" href="classSVF_1_1List_1_1ListNode.html#a4a9cb4ae17156d6d80d2357e06231e12">data</a> = head_node-><a class="code" href="classSVF_1_1List_1_1ListNode.html#a4a9cb4ae17156d6d80d2357e06231e12">data</a>;</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>  <a class="code" href="classSVF_1_1List.html#a8d9ffc8497d53e0e1de230e0d8a50fec">nodeSet</a>.erase(data);</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>  <span class="keyword">delete</span> head_node;</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1List_1_1ListNode.html#a4a9cb4ae17156d6d80d2357e06231e12">data</a>;</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>  }</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span> </div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span> <span class="keyword">private</span>:</div><div class="line"><a name="l00126"></a><span class="lineno"><a class="line" href="classSVF_1_1List.html#a8d9ffc8497d53e0e1de230e0d8a50fec"> 126</a></span>  DataSet <a class="code" href="classSVF_1_1List.html#a8d9ffc8497d53e0e1de230e0d8a50fec">nodeSet</a>;</div><div class="line"><a name="l00127"></a><span class="lineno"><a class="line" href="classSVF_1_1List.html#a41d52072edb2b75ab15d67bf2663312a"> 127</a></span>  Node* <a class="code" href="classSVF_1_1List.html#a41d52072edb2b75ab15d67bf2663312a">head</a>;</div><div class="line"><a name="l00128"></a><span class="lineno"><a class="line" href="classSVF_1_1List.html#a7900b03bc65b9f8d3e7e5bb1a80a4125"> 128</a></span>  Node* <a class="code" href="classSVF_1_1List.html#a7900b03bc65b9f8d3e7e5bb1a80a4125">tail</a>;</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span> };</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span> </div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span> <span class="keyword">template</span><<span class="keyword">class</span> Data></div><div class="line"><a name="l00137"></a><span class="lineno"><a class="line" href="classSVF_1_1FIFOWorkList.html"> 137</a></span> <span class="keyword">class </span><a class="code" href="classSVF_1_1FIFOWorkList.html">FIFOWorkList</a></div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span> {</div><div class="line"><a name="l00139"></a><span class="lineno"><a class="line" href="classSVF_1_1FIFOWorkList.html#a2907cd4515b2072aae0a88e972e93fc4"> 139</a></span>  <span class="keyword">typedef</span> std::deque<Data> <a class="code" href="classSVF_1_1FIFOWorkList.html#a2907cd4515b2072aae0a88e972e93fc4">DataDeque</a>;</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00141"></a><span class="lineno"><a class="line" href="classSVF_1_1FIFOWorkList.html#a1d3ab8bea4d8f94b935d1bef3cf0c4ac"> 141</a></span>  <a class="code" href="classSVF_1_1FIFOWorkList.html#a1d3ab8bea4d8f94b935d1bef3cf0c4ac">FIFOWorkList</a>() {}</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span> </div><div class="line"><a name="l00143"></a><span class="lineno"><a class="line" href="classSVF_1_1FIFOWorkList.html#a1471fb927833748ab34fe0ef3cf0eada"> 143</a></span>  <a class="code" href="classSVF_1_1FIFOWorkList.html#a1471fb927833748ab34fe0ef3cf0eada">~FIFOWorkList</a>() {}</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span> </div><div class="line"><a name="l00145"></a><span class="lineno"><a class="line" href="classSVF_1_1FIFOWorkList.html#a7056704c224dfb4b57287fe90c004aa8"> 145</a></span>  <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1FIFOWorkList.html#a7056704c224dfb4b57287fe90c004aa8">empty</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>  <span class="keywordflow">return</span> data_list.empty();</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>  }</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span> </div><div class="line"><a name="l00150"></a><span class="lineno"><a class="line" href="classSVF_1_1FIFOWorkList.html#ab023f3b60ff61d6729d75f4d2942bd83"> 150</a></span>  <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1FIFOWorkList.html#ab023f3b60ff61d6729d75f4d2942bd83">find</a>(<span class="keyword">const</span> Data& <a class="code" href="classSVF_1_1List_1_1ListNode.html#a4a9cb4ae17156d6d80d2357e06231e12">data</a>)<span class="keyword"> const</span></div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>  <span class="keywordflow">return</span> std::find(data_list.begin(), data_list.end(), <a class="code" href="classSVF_1_1List_1_1ListNode.html#a4a9cb4ae17156d6d80d2357e06231e12">data</a>) != data_list.end();</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>  }</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span> </div><div class="line"><a name="l00158"></a><span class="lineno"><a class="line" href="classSVF_1_1FIFOWorkList.html#a0df409a67428e528321869d201f2a474"> 158</a></span>  <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1FIFOWorkList.html#a0df409a67428e528321869d201f2a474">push</a>(<span class="keyword">const</span> Data& <a class="code" href="classSVF_1_1List_1_1ListNode.html#a4a9cb4ae17156d6d80d2357e06231e12">data</a>)</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>  {</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>  data_list.push_back(data);</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>  }</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span> </div><div class="line"><a name="l00167"></a><span class="lineno"><a class="line" href="classSVF_1_1FIFOWorkList.html#a8fa72918fce7e9c0b2dc34b683a797c6"> 167</a></span>  <span class="keyword">inline</span> Data <a class="code" href="classSVF_1_1FIFOWorkList.html#a8fa72918fce7e9c0b2dc34b683a797c6">pop</a>()</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>  {</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>  Data <a class="code" href="classSVF_1_1List_1_1ListNode.html#a4a9cb4ae17156d6d80d2357e06231e12">data</a> = front();</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>  removeFront();</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1List_1_1ListNode.html#a4a9cb4ae17156d6d80d2357e06231e12">data</a>;</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>  }</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span> </div><div class="line"><a name="l00177"></a><span class="lineno"><a class="line" href="classSVF_1_1FIFOWorkList.html#a621fe65af285665396fa10af9f96ef3a"> 177</a></span>  <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1FIFOWorkList.html#a621fe65af285665396fa10af9f96ef3a">removeFront</a>()</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>  {</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>  assert(!<a class="code" href="classSVF_1_1List.html#a063246d2aa23e389e513c5498ff33aca">empty</a>() && <span class="stringliteral">"work list is empty"</span>);</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>  data_list.pop_front();</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>  }</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span> </div><div class="line"><a name="l00186"></a><span class="lineno"><a class="line" href="classSVF_1_1FIFOWorkList.html#af58263ff13106f215a027badae017e52"> 186</a></span>  <span class="keyword">inline</span> Data& <a class="code" href="classSVF_1_1FIFOWorkList.html#af58263ff13106f215a027badae017e52">front</a>()</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>  {</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>  assert(!<a class="code" href="classSVF_1_1List.html#a063246d2aa23e389e513c5498ff33aca">empty</a>() && <span class="stringliteral">"work list is empty"</span>);</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>  Data& <a class="code" href="classSVF_1_1List_1_1ListNode.html#a4a9cb4ae17156d6d80d2357e06231e12">data</a> = data_list.front();</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1List_1_1ListNode.html#a4a9cb4ae17156d6d80d2357e06231e12">data</a>;</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>  }</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span> </div><div class="line"><a name="l00196"></a><span class="lineno"><a class="line" href="classSVF_1_1FIFOWorkList.html#a29d9fec1ea7b8e5456342522eea403ad"> 196</a></span>  <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1FIFOWorkList.html#a29d9fec1ea7b8e5456342522eea403ad">clear</a>()</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>  {</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>  data_list.clear();</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>  }</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span> </div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span> <span class="keyword">private</span>:</div><div class="line"><a name="l00202"></a><span class="lineno"><a class="line" href="classSVF_1_1FIFOWorkList.html#a270dad3fd1d95418e4af102b64fcc883"> 202</a></span>  DataDeque <a class="code" href="classSVF_1_1FIFOWorkList.html#a270dad3fd1d95418e4af102b64fcc883">data_list</a>; </div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span> };</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span> </div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span> <span class="keyword">template</span><<span class="keyword">class</span> Data></div><div class="line"><a name="l00211"></a><span class="lineno"><a class="line" href="classSVF_1_1FILOWorkList.html"> 211</a></span> <span class="keyword">class </span><a class="code" href="classSVF_1_1FILOWorkList.html">FILOWorkList</a></div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span> {</div><div class="line"><a name="l00213"></a><span class="lineno"><a class="line" href="classSVF_1_1FILOWorkList.html#a41d3d71633adc6a1282922b4e4929a7f"> 213</a></span>  <span class="keyword">typedef</span> std::vector<Data> <a class="code" href="classSVF_1_1FILOWorkList.html#a41d3d71633adc6a1282922b4e4929a7f">DataVector</a>;</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00215"></a><span class="lineno"><a class="line" href="classSVF_1_1FILOWorkList.html#ab447c6c1a59cd81982626d25d00d57de"> 215</a></span>  <a class="code" href="classSVF_1_1FILOWorkList.html#ab447c6c1a59cd81982626d25d00d57de">FILOWorkList</a>() {}</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span> </div><div class="line"><a name="l00217"></a><span class="lineno"><a class="line" href="classSVF_1_1FILOWorkList.html#a5fb3e9576859201a7ace30d39f450fa0"> 217</a></span>  <a class="code" href="classSVF_1_1FILOWorkList.html#a5fb3e9576859201a7ace30d39f450fa0">~FILOWorkList</a>() {}</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span> </div><div class="line"><a name="l00219"></a><span class="lineno"><a class="line" href="classSVF_1_1FILOWorkList.html#a071a624c91def82a4bbbf3806c7b7eea"> 219</a></span>  <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1FILOWorkList.html#a071a624c91def82a4bbbf3806c7b7eea">empty</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>  <span class="keywordflow">return</span> data_list.empty();</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>  }</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span> </div><div class="line"><a name="l00224"></a><span class="lineno"><a class="line" href="classSVF_1_1FILOWorkList.html#ac91aa65edf221d887be7550a144c5c2d"> 224</a></span>  <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1FILOWorkList.html#ac91aa65edf221d887be7550a144c5c2d">find</a>(<span class="keyword">const</span> Data& <a class="code" href="classSVF_1_1List_1_1ListNode.html#a4a9cb4ae17156d6d80d2357e06231e12">data</a>)<span class="keyword"> const</span></div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>  <span class="keywordflow">return</span> std::find(data_list.begin(), data_list.end(), <a class="code" href="classSVF_1_1List_1_1ListNode.html#a4a9cb4ae17156d6d80d2357e06231e12">data</a>) != data_list.end();</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>  }</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span> </div><div class="line"><a name="l00232"></a><span class="lineno"><a class="line" href="classSVF_1_1FILOWorkList.html#afcf3fcda18e8d3e2bad70a51376c0ce1"> 232</a></span>  <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1FILOWorkList.html#afcf3fcda18e8d3e2bad70a51376c0ce1">push</a>(<span class="keyword">const</span> Data& <a class="code" href="classSVF_1_1List_1_1ListNode.html#a4a9cb4ae17156d6d80d2357e06231e12">data</a>)</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>  {</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>  data_list.push_back(data);</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>  }</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span> </div><div class="line"><a name="l00241"></a><span class="lineno"><a class="line" href="classSVF_1_1FILOWorkList.html#a3fd9acb6d09fd142bfd402fdf8cac93b"> 241</a></span>  <span class="keyword">inline</span> Data <a class="code" href="classSVF_1_1FILOWorkList.html#a3fd9acb6d09fd142bfd402fdf8cac93b">pop</a>()</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>  {</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>  Data <a class="code" href="classSVF_1_1List_1_1ListNode.html#a4a9cb4ae17156d6d80d2357e06231e12">data</a> = back();</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>  removeBack();</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1List_1_1ListNode.html#a4a9cb4ae17156d6d80d2357e06231e12">data</a>;</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>  }</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span> </div><div class="line"><a name="l00251"></a><span class="lineno"><a class="line" href="classSVF_1_1FILOWorkList.html#a10c20d2c670af8de5dcbe6f433ca83ee"> 251</a></span>  <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1FILOWorkList.html#a10c20d2c670af8de5dcbe6f433ca83ee">removeBack</a>()</div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>  {</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>  assert(!<a class="code" href="classSVF_1_1List.html#a063246d2aa23e389e513c5498ff33aca">empty</a>() && <span class="stringliteral">"work list is empty"</span>);</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>  data_list.pop_back();</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>  }</div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span> </div><div class="line"><a name="l00260"></a><span class="lineno"><a class="line" href="classSVF_1_1FILOWorkList.html#a9681638ade4598cb1faa3e580d1df9b3"> 260</a></span>  <span class="keyword">inline</span> Data& <a class="code" href="classSVF_1_1FILOWorkList.html#a9681638ade4598cb1faa3e580d1df9b3">back</a>()</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>  {</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>  assert(!<a class="code" href="classSVF_1_1List.html#a063246d2aa23e389e513c5498ff33aca">empty</a>() && <span class="stringliteral">"work list is empty"</span>);</div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>  Data& <a class="code" href="classSVF_1_1List_1_1ListNode.html#a4a9cb4ae17156d6d80d2357e06231e12">data</a> = data_list.back();</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1List_1_1ListNode.html#a4a9cb4ae17156d6d80d2357e06231e12">data</a>;</div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>  }</div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span> </div><div class="line"><a name="l00270"></a><span class="lineno"><a class="line" href="classSVF_1_1FILOWorkList.html#a97265eb340b48436c39f77f4095693fb"> 270</a></span>  <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1FILOWorkList.html#a97265eb340b48436c39f77f4095693fb">clear</a>()</div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>  {</div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span>  data_list.clear();</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>  }</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span> </div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span> <span class="keyword">private</span>:</div><div class="line"><a name="l00276"></a><span class="lineno"><a class="line" href="classSVF_1_1FILOWorkList.html#aeda28a2200d763279027642c8cf6a4bf"> 276</a></span>  DataVector <a class="code" href="classSVF_1_1FILOWorkList.html#aeda28a2200d763279027642c8cf6a4bf">data_list</a>; </div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span> };</div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span> </div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span> } <span class="comment">// End namespace SVF</span></div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span> </div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span> <span class="preprocessor">#endif </span><span class="comment">/* WORKLIST_H_ */</span><span class="preprocessor"></span></div><div class="ttc" id="classSVF_1_1List_1_1ListNode_html_a9a9f6cf03627a5a115c64776039f8dbc"><div class="ttname"><a href="classSVF_1_1List_1_1ListNode.html#a9a9f6cf03627a5a115c64776039f8dbc">SVF::List::ListNode::ListNode</a></div><div class="ttdeci">ListNode(const Data &d)</div><div class="ttdef"><b>Definition:</b> <a href="WorkList_8h_source.html#l00061">WorkList.h:61</a></div></div>
|
|
69
|
+
<a href="WorkList_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">//===- WorkList.h -- Internal worklist used in SVF---------------------------//</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment">//</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment">// SVF: Static Value-Flow Analysis</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment">//</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment">// Copyright (C) <2013-2017> <Yulei Sui></span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment">//</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span> </div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment">// This program is free software: you can redistribute it and/or modify</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment">// it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment">// the Free Software Foundation, either version 3 of the License, or</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment">// (at your option) any later version.</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span> </div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="comment">// This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="comment">// but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="comment">// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="comment">// GNU General Public License for more details.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span> </div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="comment">// You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="comment">// along with this program. If not, see <http://www.gnu.org/licenses/>.</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="comment">//</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="comment">//===----------------------------------------------------------------------===//</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span> </div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="comment">/*</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="comment"> * @file: WorkList.h</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="comment"> * @author: yesen</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="comment"> * @date: 06/12/2013</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="comment"> * @version: 1.0</span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="comment"> *</span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="comment"> * @section LICENSE</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="comment"> *</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="comment"> * @section DESCRIPTION</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="comment"> *</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="comment"> */</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span> </div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span> </div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="preprocessor">#ifndef WORKLIST_H_</span></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="preprocessor">#define WORKLIST_H_</span></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span> </div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span> <span class="preprocessor">#include "<a class="code" href="Util_2BasicTypes_8h.html">Util/BasicTypes.h</a>"</span></div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span> </div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span> <span class="preprocessor">#include <assert.h></span></div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="preprocessor">#include <cstdlib></span></div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="preprocessor">#include <vector></span></div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="preprocessor">#include <deque></span></div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="preprocessor">#include <set></span></div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span> </div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="keyword">namespace </span><a class="code" href="namespaceSVF.html">SVF</a></div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span> {</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span> </div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span> <span class="keyword">template</span><<span class="keyword">class</span> Data></div><div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="classSVF_1_1List.html"> 56</a></span> <span class="keyword">class </span><a class="code" href="classSVF_1_1List.html">List</a></div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span> {</div><div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="classSVF_1_1List_1_1ListNode.html"> 58</a></span>  <span class="keyword">class </span><a class="code" href="classSVF_1_1List_1_1ListNode.html">ListNode</a></div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  {</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  <span class="keyword">public</span>:</div><div class="line"><a name="l00061"></a><span class="lineno"><a class="line" href="classSVF_1_1List_1_1ListNode.html#a9a9f6cf03627a5a115c64776039f8dbc"> 61</a></span>  <a class="code" href="classSVF_1_1List_1_1ListNode.html#a9a9f6cf03627a5a115c64776039f8dbc">ListNode</a>(<span class="keyword">const</span> Data &d)</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  {</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  <a class="code" href="classSVF_1_1List_1_1ListNode.html#a4a9cb4ae17156d6d80d2357e06231e12">data</a> = d;</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  <a class="code" href="classSVF_1_1List_1_1ListNode.html#a6fb535e702af0e4f54274050ee0c06c5">next</a> = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  }</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span> </div><div class="line"><a name="l00067"></a><span class="lineno"><a class="line" href="classSVF_1_1List_1_1ListNode.html#adc6d3cf20ac762c138b896dfff376494"> 67</a></span>  <a class="code" href="classSVF_1_1List_1_1ListNode.html#adc6d3cf20ac762c138b896dfff376494">~ListNode</a>() {}</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span> </div><div class="line"><a name="l00069"></a><span class="lineno"><a class="line" href="classSVF_1_1List_1_1ListNode.html#a4a9cb4ae17156d6d80d2357e06231e12"> 69</a></span>  Data <a class="code" href="classSVF_1_1List_1_1ListNode.html#a4a9cb4ae17156d6d80d2357e06231e12">data</a>;</div><div class="line"><a name="l00070"></a><span class="lineno"><a class="line" href="classSVF_1_1List_1_1ListNode.html#a6fb535e702af0e4f54274050ee0c06c5"> 70</a></span>  <a class="code" href="classSVF_1_1List_1_1ListNode.html">ListNode</a> *<a class="code" href="classSVF_1_1List_1_1ListNode.html#a6fb535e702af0e4f54274050ee0c06c5">next</a>;</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  };</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span> </div><div class="line"><a name="l00073"></a><span class="lineno"><a class="line" href="classSVF_1_1List.html#a8f8a9dff1d1213a747f0d7ce8b1802e9"> 73</a></span>  <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set<Data></a> <a class="code" href="classSVF_1_1List.html#a8f8a9dff1d1213a747f0d7ce8b1802e9">DataSet</a>;</div><div class="line"><a name="l00074"></a><span class="lineno"><a class="line" href="classSVF_1_1List.html#a4eba65b40d347ea80e2427320eb9c5a1"> 74</a></span>  <span class="keyword">typedef</span> <a class="code" href="classSVF_1_1List_1_1ListNode.html">ListNode</a> <a class="code" href="classSVF_1_1List.html#a4eba65b40d347ea80e2427320eb9c5a1">Node</a>;</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span> </div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00077"></a><span class="lineno"><a class="line" href="classSVF_1_1List.html#aeb697e85085a332e5d593b6f8ee95713"> 77</a></span>  <a class="code" href="classSVF_1_1List.html#aeb697e85085a332e5d593b6f8ee95713">List</a>()</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  {</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  <a class="code" href="classSVF_1_1List.html#a41d52072edb2b75ab15d67bf2663312a">head</a> = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  <a class="code" href="classSVF_1_1List.html#a7900b03bc65b9f8d3e7e5bb1a80a4125">tail</a> = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  }</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span> </div><div class="line"><a name="l00083"></a><span class="lineno"><a class="line" href="classSVF_1_1List.html#afd8edd0acf606e0c3470bab424083b45"> 83</a></span>  <a class="code" href="classSVF_1_1List.html#afd8edd0acf606e0c3470bab424083b45">~List</a>() {}</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span> </div><div class="line"><a name="l00085"></a><span class="lineno"><a class="line" href="classSVF_1_1List.html#a063246d2aa23e389e513c5498ff33aca"> 85</a></span>  <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1List.html#a063246d2aa23e389e513c5498ff33aca">empty</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  <span class="keywordflow">return</span> (<a class="code" href="classSVF_1_1List.html#a41d52072edb2b75ab15d67bf2663312a">head</a> == <span class="keyword">nullptr</span>);</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  }</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span> </div><div class="line"><a name="l00090"></a><span class="lineno"><a class="line" href="classSVF_1_1List.html#a6db4368f5e5767d3e3f0e83f78707b31"> 90</a></span>  <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1List.html#a6db4368f5e5767d3e3f0e83f78707b31">find</a>(<span class="keyword">const</span> Data &<a class="code" href="classSVF_1_1List_1_1ListNode.html#a4a9cb4ae17156d6d80d2357e06231e12">data</a>)<span class="keyword"> const</span></div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1List.html#a8d9ffc8497d53e0e1de230e0d8a50fec">nodeSet</a>.find(data) != <a class="code" href="classSVF_1_1List.html#a8d9ffc8497d53e0e1de230e0d8a50fec">nodeSet</a>.end();</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  }</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span> </div><div class="line"><a name="l00095"></a><span class="lineno"><a class="line" href="classSVF_1_1List.html#ae6357e876e0a1fa2f925cc63dacc529c"> 95</a></span>  <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1List.html#ae6357e876e0a1fa2f925cc63dacc529c">push</a>(<span class="keyword">const</span> Data &<a class="code" href="classSVF_1_1List_1_1ListNode.html#a4a9cb4ae17156d6d80d2357e06231e12">data</a>)</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>  {</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1List.html#a8d9ffc8497d53e0e1de230e0d8a50fec">nodeSet</a>.find(data) == <a class="code" href="classSVF_1_1List.html#a8d9ffc8497d53e0e1de230e0d8a50fec">nodeSet</a>.end())</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>  {</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>  Node *new_node = <span class="keyword">new</span> <a class="code" href="classSVF_1_1List.html#a4eba65b40d347ea80e2427320eb9c5a1">Node</a>(data);</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1List.html#a41d52072edb2b75ab15d67bf2663312a">head</a> == <span class="keyword">nullptr</span>)</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>  <a class="code" href="classSVF_1_1List.html#a41d52072edb2b75ab15d67bf2663312a">head</a> = new_node;<span class="comment">// the list is empty</span></div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>  <a class="code" href="classSVF_1_1List.html#a7900b03bc65b9f8d3e7e5bb1a80a4125">tail</a>-><a class="code" href="classSVF_1_1List_1_1ListNode.html#a6fb535e702af0e4f54274050ee0c06c5">next</a> = new_node;</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>  <a class="code" href="classSVF_1_1List.html#a7900b03bc65b9f8d3e7e5bb1a80a4125">tail</a> = new_node;</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>  }</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>  }</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span> </div><div class="line"><a name="l00108"></a><span class="lineno"><a class="line" href="classSVF_1_1List.html#a6e85bd3d8b23ccc7752a72e2a5b171ab"> 108</a></span>  Data <a class="code" href="classSVF_1_1List.html#a6e85bd3d8b23ccc7752a72e2a5b171ab">pop</a>()</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>  {</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>  assert(<a class="code" href="classSVF_1_1List.html#a41d52072edb2b75ab15d67bf2663312a">head</a> != <span class="keyword">nullptr</span> && <span class="stringliteral">"list is empty"</span>);</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>  Node *head_node = <a class="code" href="classSVF_1_1List.html#a41d52072edb2b75ab15d67bf2663312a">head</a>;</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span> </div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>  <a class="code" href="classSVF_1_1List.html#a41d52072edb2b75ab15d67bf2663312a">head</a> = <a class="code" href="classSVF_1_1List.html#a41d52072edb2b75ab15d67bf2663312a">head</a>-><a class="code" href="classSVF_1_1List_1_1ListNode.html#a6fb535e702af0e4f54274050ee0c06c5">next</a>;</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1List.html#a41d52072edb2b75ab15d67bf2663312a">head</a> == <span class="keyword">nullptr</span>)</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>  <a class="code" href="classSVF_1_1List.html#a7900b03bc65b9f8d3e7e5bb1a80a4125">tail</a> = <span class="keyword">nullptr</span>; </div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span> </div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>  Data <a class="code" href="classSVF_1_1List_1_1ListNode.html#a4a9cb4ae17156d6d80d2357e06231e12">data</a> = head_node-><a class="code" href="classSVF_1_1List_1_1ListNode.html#a4a9cb4ae17156d6d80d2357e06231e12">data</a>;</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>  <a class="code" href="classSVF_1_1List.html#a8d9ffc8497d53e0e1de230e0d8a50fec">nodeSet</a>.erase(data);</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>  <span class="keyword">delete</span> head_node;</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1List_1_1ListNode.html#a4a9cb4ae17156d6d80d2357e06231e12">data</a>;</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>  }</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span> </div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span> <span class="keyword">private</span>:</div><div class="line"><a name="l00126"></a><span class="lineno"><a class="line" href="classSVF_1_1List.html#a8d9ffc8497d53e0e1de230e0d8a50fec"> 126</a></span>  DataSet <a class="code" href="classSVF_1_1List.html#a8d9ffc8497d53e0e1de230e0d8a50fec">nodeSet</a>;</div><div class="line"><a name="l00127"></a><span class="lineno"><a class="line" href="classSVF_1_1List.html#a41d52072edb2b75ab15d67bf2663312a"> 127</a></span>  Node *<a class="code" href="classSVF_1_1List.html#a41d52072edb2b75ab15d67bf2663312a">head</a>;</div><div class="line"><a name="l00128"></a><span class="lineno"><a class="line" href="classSVF_1_1List.html#a7900b03bc65b9f8d3e7e5bb1a80a4125"> 128</a></span>  Node *<a class="code" href="classSVF_1_1List.html#a7900b03bc65b9f8d3e7e5bb1a80a4125">tail</a>;</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span> };</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span> </div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span> <span class="keyword">template</span><<span class="keyword">class</span> Data></div><div class="line"><a name="l00137"></a><span class="lineno"><a class="line" href="classSVF_1_1FIFOWorkList.html"> 137</a></span> <span class="keyword">class </span><a class="code" href="classSVF_1_1FIFOWorkList.html">FIFOWorkList</a></div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span> {</div><div class="line"><a name="l00139"></a><span class="lineno"><a class="line" href="classSVF_1_1FIFOWorkList.html#a4803dc3b7f3ab57261261acb20551579"> 139</a></span>  <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set<Data></a> <a class="code" href="classSVF_1_1FIFOWorkList.html#a4803dc3b7f3ab57261261acb20551579">DataSet</a>;</div><div class="line"><a name="l00140"></a><span class="lineno"><a class="line" href="classSVF_1_1FIFOWorkList.html#a2907cd4515b2072aae0a88e972e93fc4"> 140</a></span>  <span class="keyword">typedef</span> std::deque<Data> <a class="code" href="classSVF_1_1FIFOWorkList.html#a2907cd4515b2072aae0a88e972e93fc4">DataDeque</a>;</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00142"></a><span class="lineno"><a class="line" href="classSVF_1_1FIFOWorkList.html#a1d3ab8bea4d8f94b935d1bef3cf0c4ac"> 142</a></span>  <a class="code" href="classSVF_1_1FIFOWorkList.html#a1d3ab8bea4d8f94b935d1bef3cf0c4ac">FIFOWorkList</a>() {}</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span> </div><div class="line"><a name="l00144"></a><span class="lineno"><a class="line" href="classSVF_1_1FIFOWorkList.html#a1471fb927833748ab34fe0ef3cf0eada"> 144</a></span>  <a class="code" href="classSVF_1_1FIFOWorkList.html#a1471fb927833748ab34fe0ef3cf0eada">~FIFOWorkList</a>() {}</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span> </div><div class="line"><a name="l00146"></a><span class="lineno"><a class="line" href="classSVF_1_1FIFOWorkList.html#a7056704c224dfb4b57287fe90c004aa8"> 146</a></span>  <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1FIFOWorkList.html#a7056704c224dfb4b57287fe90c004aa8">empty</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>  <span class="keywordflow">return</span> data_list.empty();</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>  }</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span> </div><div class="line"><a name="l00151"></a><span class="lineno"><a class="line" href="classSVF_1_1FIFOWorkList.html#ad0e2c9eeb77c1a48a5d17164e4d72c6e"> 151</a></span>  <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1FIFOWorkList.html#ad0e2c9eeb77c1a48a5d17164e4d72c6e">size</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>  assert(data_list.size() == data_set.size() && <span class="stringliteral">"list and set must be the same size!"</span>);</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>  <span class="keywordflow">return</span> data_list.size();</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>  }</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span> </div><div class="line"><a name="l00157"></a><span class="lineno"><a class="line" href="classSVF_1_1FIFOWorkList.html#ab023f3b60ff61d6729d75f4d2942bd83"> 157</a></span>  <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1FIFOWorkList.html#ab023f3b60ff61d6729d75f4d2942bd83">find</a>(<span class="keyword">const</span> Data &<a class="code" href="classSVF_1_1List_1_1ListNode.html#a4a9cb4ae17156d6d80d2357e06231e12">data</a>)<span class="keyword"> const</span></div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>  <span class="keywordflow">return</span> data_set.find(data) != data_set.end();</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>  }</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span> </div><div class="line"><a name="l00165"></a><span class="lineno"><a class="line" href="classSVF_1_1FIFOWorkList.html#a0df409a67428e528321869d201f2a474"> 165</a></span>  <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1FIFOWorkList.html#a0df409a67428e528321869d201f2a474">push</a>(<span class="keyword">const</span> Data &<a class="code" href="classSVF_1_1List_1_1ListNode.html#a4a9cb4ae17156d6d80d2357e06231e12">data</a>)</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>  {</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>  <span class="keywordflow">if</span> (!<a class="code" href="classSVF_1_1List.html#a6db4368f5e5767d3e3f0e83f78707b31">find</a>(data))</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>  {</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>  data_list.push_back(data);</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>  data_set.insert(data);</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>  }</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>  }</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span> </div><div class="line"><a name="l00180"></a><span class="lineno"><a class="line" href="classSVF_1_1FIFOWorkList.html#a621fe65af285665396fa10af9f96ef3a"> 180</a></span>  <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1FIFOWorkList.html#a621fe65af285665396fa10af9f96ef3a">removeFront</a>()</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>  {</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>  assert(!<a class="code" href="classSVF_1_1List.html#a063246d2aa23e389e513c5498ff33aca">empty</a>() && <span class="stringliteral">"work list is empty"</span>);</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>  data_set.erase(front());</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>  data_list.pop_front();</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>  }</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span> </div><div class="line"><a name="l00190"></a><span class="lineno"><a class="line" href="classSVF_1_1FIFOWorkList.html#af58263ff13106f215a027badae017e52"> 190</a></span>  <span class="keyword">inline</span> Data &<a class="code" href="classSVF_1_1FIFOWorkList.html#af58263ff13106f215a027badae017e52">front</a>()</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>  {</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>  assert(!<a class="code" href="classSVF_1_1List.html#a063246d2aa23e389e513c5498ff33aca">empty</a>() && <span class="stringliteral">"work list is empty"</span>);</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>  Data &<a class="code" href="classSVF_1_1List_1_1ListNode.html#a4a9cb4ae17156d6d80d2357e06231e12">data</a> = data_list.front();</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1List_1_1ListNode.html#a4a9cb4ae17156d6d80d2357e06231e12">data</a>;</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>  }</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span> </div><div class="line"><a name="l00200"></a><span class="lineno"><a class="line" href="classSVF_1_1FIFOWorkList.html#a8fa72918fce7e9c0b2dc34b683a797c6"> 200</a></span>  <span class="keyword">inline</span> Data <a class="code" href="classSVF_1_1FIFOWorkList.html#a8fa72918fce7e9c0b2dc34b683a797c6">pop</a>()</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>  {</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>  assert(!<a class="code" href="classSVF_1_1List.html#a063246d2aa23e389e513c5498ff33aca">empty</a>() && <span class="stringliteral">"work list is empty"</span>);</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>  Data <a class="code" href="classSVF_1_1List_1_1ListNode.html#a4a9cb4ae17156d6d80d2357e06231e12">data</a> = data_list.front();</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>  data_list.pop_front();</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>  data_set.erase(data);</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1List_1_1ListNode.html#a4a9cb4ae17156d6d80d2357e06231e12">data</a>;</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>  }</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span> </div><div class="line"><a name="l00212"></a><span class="lineno"><a class="line" href="classSVF_1_1FIFOWorkList.html#a29d9fec1ea7b8e5456342522eea403ad"> 212</a></span>  <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1FIFOWorkList.html#a29d9fec1ea7b8e5456342522eea403ad">clear</a>()</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>  {</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>  data_list.clear();</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>  data_set.clear();</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>  }</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span> </div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span> <span class="keyword">private</span>:</div><div class="line"><a name="l00219"></a><span class="lineno"><a class="line" href="classSVF_1_1FIFOWorkList.html#a5e9648954a2f6902dc4106cc17a7d1e6"> 219</a></span>  DataSet <a class="code" href="classSVF_1_1FIFOWorkList.html#a5e9648954a2f6902dc4106cc17a7d1e6">data_set</a>; </div><div class="line"><a name="l00220"></a><span class="lineno"><a class="line" href="classSVF_1_1FIFOWorkList.html#a270dad3fd1d95418e4af102b64fcc883"> 220</a></span>  DataDeque <a class="code" href="classSVF_1_1FIFOWorkList.html#a270dad3fd1d95418e4af102b64fcc883">data_list</a>; </div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span> };</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span> </div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span> <span class="keyword">template</span><<span class="keyword">class</span> Data></div><div class="line"><a name="l00229"></a><span class="lineno"><a class="line" href="classSVF_1_1FILOWorkList.html"> 229</a></span> <span class="keyword">class </span><a class="code" href="classSVF_1_1FILOWorkList.html">FILOWorkList</a></div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span> {</div><div class="line"><a name="l00231"></a><span class="lineno"><a class="line" href="classSVF_1_1FILOWorkList.html#abe04c596453280fe15cadde868ded798"> 231</a></span>  <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set<Data></a> <a class="code" href="classSVF_1_1FILOWorkList.html#abe04c596453280fe15cadde868ded798">DataSet</a>;</div><div class="line"><a name="l00232"></a><span class="lineno"><a class="line" href="classSVF_1_1FILOWorkList.html#a41d3d71633adc6a1282922b4e4929a7f"> 232</a></span>  <span class="keyword">typedef</span> std::vector<Data> <a class="code" href="classSVF_1_1FILOWorkList.html#a41d3d71633adc6a1282922b4e4929a7f">DataVector</a>;</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00234"></a><span class="lineno"><a class="line" href="classSVF_1_1FILOWorkList.html#ab447c6c1a59cd81982626d25d00d57de"> 234</a></span>  <a class="code" href="classSVF_1_1FILOWorkList.html#ab447c6c1a59cd81982626d25d00d57de">FILOWorkList</a>() {}</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span> </div><div class="line"><a name="l00236"></a><span class="lineno"><a class="line" href="classSVF_1_1FILOWorkList.html#a5fb3e9576859201a7ace30d39f450fa0"> 236</a></span>  <a class="code" href="classSVF_1_1FILOWorkList.html#a5fb3e9576859201a7ace30d39f450fa0">~FILOWorkList</a>() {}</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span> </div><div class="line"><a name="l00238"></a><span class="lineno"><a class="line" href="classSVF_1_1FILOWorkList.html#a071a624c91def82a4bbbf3806c7b7eea"> 238</a></span>  <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1FILOWorkList.html#a071a624c91def82a4bbbf3806c7b7eea">empty</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>  <span class="keywordflow">return</span> data_list.empty();</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>  }</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span> </div><div class="line"><a name="l00243"></a><span class="lineno"><a class="line" href="classSVF_1_1FILOWorkList.html#aff8bc6547b814b31b02c7f086d06ce05"> 243</a></span>  <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1FILOWorkList.html#aff8bc6547b814b31b02c7f086d06ce05">size</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>  assert(data_list.size() == data_set.size() && <span class="stringliteral">"list and set must be the same size!"</span>);</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>  <span class="keywordflow">return</span> data_list.size();</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>  }</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span> </div><div class="line"><a name="l00249"></a><span class="lineno"><a class="line" href="classSVF_1_1FILOWorkList.html#ac91aa65edf221d887be7550a144c5c2d"> 249</a></span>  <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1FILOWorkList.html#ac91aa65edf221d887be7550a144c5c2d">find</a>(<span class="keyword">const</span> Data &<a class="code" href="classSVF_1_1List_1_1ListNode.html#a4a9cb4ae17156d6d80d2357e06231e12">data</a>)<span class="keyword"> const</span></div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>  <span class="keywordflow">return</span> data_set.find(data) != data_set.end();;</div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>  }</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span> </div><div class="line"><a name="l00257"></a><span class="lineno"><a class="line" href="classSVF_1_1FILOWorkList.html#afcf3fcda18e8d3e2bad70a51376c0ce1"> 257</a></span>  <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1FILOWorkList.html#afcf3fcda18e8d3e2bad70a51376c0ce1">push</a>(<span class="keyword">const</span> Data &<a class="code" href="classSVF_1_1List_1_1ListNode.html#a4a9cb4ae17156d6d80d2357e06231e12">data</a>)</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>  {</div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>  <span class="keywordflow">if</span> (!<a class="code" href="classSVF_1_1List.html#a6db4368f5e5767d3e3f0e83f78707b31">find</a>(data))</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>  {</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>  data_list.push_back(data);</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>  data_set.insert(data);</div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>  }</div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>  }</div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span> </div><div class="line"><a name="l00272"></a><span class="lineno"><a class="line" href="classSVF_1_1FILOWorkList.html#a3fd9acb6d09fd142bfd402fdf8cac93b"> 272</a></span>  <span class="keyword">inline</span> Data <a class="code" href="classSVF_1_1FILOWorkList.html#a3fd9acb6d09fd142bfd402fdf8cac93b">pop</a>()</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>  {</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>  assert(!<a class="code" href="classSVF_1_1List.html#a063246d2aa23e389e513c5498ff33aca">empty</a>() && <span class="stringliteral">"work list is empty"</span>);</div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>  Data <a class="code" href="classSVF_1_1List_1_1ListNode.html#a4a9cb4ae17156d6d80d2357e06231e12">data</a> = data_list.back();</div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>  data_list.pop_back();</div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span>  data_set.erase(data);</div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1List_1_1ListNode.html#a4a9cb4ae17156d6d80d2357e06231e12">data</a>;</div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>  }</div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span> </div><div class="line"><a name="l00284"></a><span class="lineno"><a class="line" href="classSVF_1_1FILOWorkList.html#a10c20d2c670af8de5dcbe6f433ca83ee"> 284</a></span>  <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1FILOWorkList.html#a10c20d2c670af8de5dcbe6f433ca83ee">removeBack</a>()</div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>  {</div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>  assert(!<a class="code" href="classSVF_1_1List.html#a063246d2aa23e389e513c5498ff33aca">empty</a>() && <span class="stringliteral">"work list is empty"</span>);</div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span>  data_set.erase(back());</div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span>  data_list.pop_back();</div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span>  }</div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span> </div><div class="line"><a name="l00294"></a><span class="lineno"><a class="line" href="classSVF_1_1FILOWorkList.html#a9681638ade4598cb1faa3e580d1df9b3"> 294</a></span>  <span class="keyword">inline</span> Data &<a class="code" href="classSVF_1_1FILOWorkList.html#a9681638ade4598cb1faa3e580d1df9b3">back</a>()</div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span>  {</div><div class="line"><a name="l00296"></a><span class="lineno"> 296</span>  assert(!<a class="code" href="classSVF_1_1List.html#a063246d2aa23e389e513c5498ff33aca">empty</a>() && <span class="stringliteral">"work list is empty"</span>);</div><div class="line"><a name="l00297"></a><span class="lineno"> 297</span>  Data &<a class="code" href="classSVF_1_1List_1_1ListNode.html#a4a9cb4ae17156d6d80d2357e06231e12">data</a> = data_list.back();</div><div class="line"><a name="l00298"></a><span class="lineno"> 298</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1List_1_1ListNode.html#a4a9cb4ae17156d6d80d2357e06231e12">data</a>;</div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span>  }</div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span> </div><div class="line"><a name="l00304"></a><span class="lineno"><a class="line" href="classSVF_1_1FILOWorkList.html#a97265eb340b48436c39f77f4095693fb"> 304</a></span>  <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1FILOWorkList.html#a97265eb340b48436c39f77f4095693fb">clear</a>()</div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span>  {</div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span>  data_list.clear();</div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>  data_set.clear();</div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span>  }</div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span> </div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span> <span class="keyword">private</span>:</div><div class="line"><a name="l00311"></a><span class="lineno"><a class="line" href="classSVF_1_1FILOWorkList.html#a46092b75425becfe97fdf047206c736b"> 311</a></span>  DataSet <a class="code" href="classSVF_1_1FILOWorkList.html#a46092b75425becfe97fdf047206c736b">data_set</a>; </div><div class="line"><a name="l00312"></a><span class="lineno"><a class="line" href="classSVF_1_1FILOWorkList.html#aeda28a2200d763279027642c8cf6a4bf"> 312</a></span>  DataVector <a class="code" href="classSVF_1_1FILOWorkList.html#aeda28a2200d763279027642c8cf6a4bf">data_list</a>; </div><div class="line"><a name="l00313"></a><span class="lineno"> 313</span> };</div><div class="line"><a name="l00314"></a><span class="lineno"> 314</span> </div><div class="line"><a name="l00315"></a><span class="lineno"> 315</span> } <span class="comment">// End namespace SVF</span></div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span> </div><div class="line"><a name="l00317"></a><span class="lineno"> 317</span> <span class="preprocessor">#endif </span><span class="comment">/* WORKLIST_H_ */</span><span class="preprocessor"></span></div><div class="ttc" id="classSVF_1_1List_1_1ListNode_html_a9a9f6cf03627a5a115c64776039f8dbc"><div class="ttname"><a href="classSVF_1_1List_1_1ListNode.html#a9a9f6cf03627a5a115c64776039f8dbc">SVF::List::ListNode::ListNode</a></div><div class="ttdeci">ListNode(const Data &d)</div><div class="ttdef"><b>Definition:</b> <a href="WorkList_8h_source.html#l00061">WorkList.h:61</a></div></div>
|
|
70
70
|
<div class="ttc" id="classSVF_1_1List_html_afd8edd0acf606e0c3470bab424083b45"><div class="ttname"><a href="classSVF_1_1List.html#afd8edd0acf606e0c3470bab424083b45">SVF::List::~List</a></div><div class="ttdeci">~List()</div><div class="ttdef"><b>Definition:</b> <a href="WorkList_8h_source.html#l00083">WorkList.h:83</a></div></div>
|
|
71
71
|
<div class="ttc" id="classSVF_1_1List_html_a41d52072edb2b75ab15d67bf2663312a"><div class="ttname"><a href="classSVF_1_1List.html#a41d52072edb2b75ab15d67bf2663312a">SVF::List::head</a></div><div class="ttdeci">Node * head</div><div class="ttdef"><b>Definition:</b> <a href="WorkList_8h_source.html#l00127">WorkList.h:127</a></div></div>
|
|
72
|
-
<div class="ttc" id="classSVF_1_1FILOWorkList_html_aeda28a2200d763279027642c8cf6a4bf"><div class="ttname"><a href="classSVF_1_1FILOWorkList.html#aeda28a2200d763279027642c8cf6a4bf">SVF::FILOWorkList::data_list</a></div><div class="ttdeci">DataVector data_list</div><div class="ttdoc">work list using std::vector. </div><div class="ttdef"><b>Definition:</b> <a href="WorkList_8h_source.html#
|
|
72
|
+
<div class="ttc" id="classSVF_1_1FILOWorkList_html_aeda28a2200d763279027642c8cf6a4bf"><div class="ttname"><a href="classSVF_1_1FILOWorkList.html#aeda28a2200d763279027642c8cf6a4bf">SVF::FILOWorkList::data_list</a></div><div class="ttdeci">DataVector data_list</div><div class="ttdoc">work list using std::vector. </div><div class="ttdef"><b>Definition:</b> <a href="WorkList_8h_source.html#l00312">WorkList.h:312</a></div></div>
|
|
73
73
|
<div class="ttc" id="classSVF_1_1List_html_a7900b03bc65b9f8d3e7e5bb1a80a4125"><div class="ttname"><a href="classSVF_1_1List.html#a7900b03bc65b9f8d3e7e5bb1a80a4125">SVF::List::tail</a></div><div class="ttdeci">Node * tail</div><div class="ttdef"><b>Definition:</b> <a href="WorkList_8h_source.html#l00128">WorkList.h:128</a></div></div>
|
|
74
74
|
<div class="ttc" id="classSVF_1_1List_1_1ListNode_html_a6fb535e702af0e4f54274050ee0c06c5"><div class="ttname"><a href="classSVF_1_1List_1_1ListNode.html#a6fb535e702af0e4f54274050ee0c06c5">SVF::List::ListNode::next</a></div><div class="ttdeci">ListNode * next</div><div class="ttdef"><b>Definition:</b> <a href="WorkList_8h_source.html#l00070">WorkList.h:70</a></div></div>
|
|
75
75
|
<div class="ttc" id="Util_2BasicTypes_8h_html"><div class="ttname"><a href="Util_2BasicTypes_8h.html">BasicTypes.h</a></div></div>
|
|
76
|
-
<div class="ttc" id="classSVF_1_1FIFOWorkList_html_ab023f3b60ff61d6729d75f4d2942bd83"><div class="ttname"><a href="classSVF_1_1FIFOWorkList.html#ab023f3b60ff61d6729d75f4d2942bd83">SVF::FIFOWorkList::find</a></div><div class="ttdeci">bool find(const Data &data) const</div><div class="ttdef"><b>Definition:</b> <a href="WorkList_8h_source.html#
|
|
77
|
-
<div class="ttc" id="classSVF_1_1FILOWorkList_html_ac91aa65edf221d887be7550a144c5c2d"><div class="ttname"><a href="classSVF_1_1FILOWorkList.html#ac91aa65edf221d887be7550a144c5c2d">SVF::FILOWorkList::find</a></div><div class="ttdeci">bool find(const Data &data) const</div><div class="ttdef"><b>Definition:</b> <a href="WorkList_8h_source.html#
|
|
78
|
-
<div class="ttc" id="classSVF_1_1FIFOWorkList_html_a7056704c224dfb4b57287fe90c004aa8"><div class="ttname"><a href="classSVF_1_1FIFOWorkList.html#a7056704c224dfb4b57287fe90c004aa8">SVF::FIFOWorkList::empty</a></div><div class="ttdeci">bool empty() const</div><div class="ttdef"><b>Definition:</b> <a href="WorkList_8h_source.html#
|
|
76
|
+
<div class="ttc" id="classSVF_1_1FIFOWorkList_html_ab023f3b60ff61d6729d75f4d2942bd83"><div class="ttname"><a href="classSVF_1_1FIFOWorkList.html#ab023f3b60ff61d6729d75f4d2942bd83">SVF::FIFOWorkList::find</a></div><div class="ttdeci">bool find(const Data &data) const</div><div class="ttdef"><b>Definition:</b> <a href="WorkList_8h_source.html#l00157">WorkList.h:157</a></div></div>
|
|
77
|
+
<div class="ttc" id="classSVF_1_1FILOWorkList_html_ac91aa65edf221d887be7550a144c5c2d"><div class="ttname"><a href="classSVF_1_1FILOWorkList.html#ac91aa65edf221d887be7550a144c5c2d">SVF::FILOWorkList::find</a></div><div class="ttdeci">bool find(const Data &data) const</div><div class="ttdef"><b>Definition:</b> <a href="WorkList_8h_source.html#l00249">WorkList.h:249</a></div></div>
|
|
78
|
+
<div class="ttc" id="classSVF_1_1FIFOWorkList_html_a7056704c224dfb4b57287fe90c004aa8"><div class="ttname"><a href="classSVF_1_1FIFOWorkList.html#a7056704c224dfb4b57287fe90c004aa8">SVF::FIFOWorkList::empty</a></div><div class="ttdeci">bool empty() const</div><div class="ttdef"><b>Definition:</b> <a href="WorkList_8h_source.html#l00146">WorkList.h:146</a></div></div>
|
|
79
79
|
<div class="ttc" id="classSVF_1_1List_1_1ListNode_html"><div class="ttname"><a href="classSVF_1_1List_1_1ListNode.html">SVF::List::ListNode</a></div><div class="ttdef"><b>Definition:</b> <a href="WorkList_8h_source.html#l00058">WorkList.h:58</a></div></div>
|
|
80
|
-
<div class="ttc" id="
|
|
80
|
+
<div class="ttc" id="classSVF_1_1FIFOWorkList_html_a5e9648954a2f6902dc4106cc17a7d1e6"><div class="ttname"><a href="classSVF_1_1FIFOWorkList.html#a5e9648954a2f6902dc4106cc17a7d1e6">SVF::FIFOWorkList::data_set</a></div><div class="ttdeci">DataSet data_set</div><div class="ttdoc">store all data in the work list. </div><div class="ttdef"><b>Definition:</b> <a href="WorkList_8h_source.html#l00219">WorkList.h:219</a></div></div>
|
|
81
|
+
<div class="ttc" id="classSVF_1_1FIFOWorkList_html_ad0e2c9eeb77c1a48a5d17164e4d72c6e"><div class="ttname"><a href="classSVF_1_1FIFOWorkList.html#ad0e2c9eeb77c1a48a5d17164e4d72c6e">SVF::FIFOWorkList::size</a></div><div class="ttdeci">u32_t size() const</div><div class="ttdef"><b>Definition:</b> <a href="WorkList_8h_source.html#l00151">WorkList.h:151</a></div></div>
|
|
81
82
|
<div class="ttc" id="classSVF_1_1List_html_a063246d2aa23e389e513c5498ff33aca"><div class="ttname"><a href="classSVF_1_1List.html#a063246d2aa23e389e513c5498ff33aca">SVF::List::empty</a></div><div class="ttdeci">bool empty() const</div><div class="ttdef"><b>Definition:</b> <a href="WorkList_8h_source.html#l00085">WorkList.h:85</a></div></div>
|
|
82
83
|
<div class="ttc" id="classSVF_1_1List_html_aeb697e85085a332e5d593b6f8ee95713"><div class="ttname"><a href="classSVF_1_1List.html#aeb697e85085a332e5d593b6f8ee95713">SVF::List::List</a></div><div class="ttdeci">List()</div><div class="ttdef"><b>Definition:</b> <a href="WorkList_8h_source.html#l00077">WorkList.h:77</a></div></div>
|
|
83
|
-
<div class="ttc" id="
|
|
84
|
-
<div class="ttc" id="
|
|
85
|
-
<div class="ttc" id="
|
|
86
|
-
<div class="ttc" id="
|
|
87
|
-
<div class="ttc" id="
|
|
84
|
+
<div class="ttc" id="classSVF_1_1FILOWorkList_html_aff8bc6547b814b31b02c7f086d06ce05"><div class="ttname"><a href="classSVF_1_1FILOWorkList.html#aff8bc6547b814b31b02c7f086d06ce05">SVF::FILOWorkList::size</a></div><div class="ttdeci">u32_t size() const</div><div class="ttdef"><b>Definition:</b> <a href="WorkList_8h_source.html#l00243">WorkList.h:243</a></div></div>
|
|
85
|
+
<div class="ttc" id="classSVF_1_1FILOWorkList_html_a071a624c91def82a4bbbf3806c7b7eea"><div class="ttname"><a href="classSVF_1_1FILOWorkList.html#a071a624c91def82a4bbbf3806c7b7eea">SVF::FILOWorkList::empty</a></div><div class="ttdeci">bool empty() const</div><div class="ttdef"><b>Definition:</b> <a href="WorkList_8h_source.html#l00238">WorkList.h:238</a></div></div>
|
|
86
|
+
<div class="ttc" id="classSVF_1_1FILOWorkList_html_a41d3d71633adc6a1282922b4e4929a7f"><div class="ttname"><a href="classSVF_1_1FILOWorkList.html#a41d3d71633adc6a1282922b4e4929a7f">SVF::FILOWorkList::DataVector</a></div><div class="ttdeci">std::vector< Data > DataVector</div><div class="ttdef"><b>Definition:</b> <a href="WorkList_8h_source.html#l00232">WorkList.h:232</a></div></div>
|
|
87
|
+
<div class="ttc" id="namespaceSVF_html_ad42bff8d0a7d60a085aa32d10f4955af"><div class="ttname"><a href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">SVF::u32_t</a></div><div class="ttdeci">unsigned u32_t</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00085">SVFBasicTypes.h:85</a></div></div>
|
|
88
|
+
<div class="ttc" id="classSVF_1_1FIFOWorkList_html_a0df409a67428e528321869d201f2a474"><div class="ttname"><a href="classSVF_1_1FIFOWorkList.html#a0df409a67428e528321869d201f2a474">SVF::FIFOWorkList::push</a></div><div class="ttdeci">bool push(const Data &data)</div><div class="ttdef"><b>Definition:</b> <a href="WorkList_8h_source.html#l00165">WorkList.h:165</a></div></div>
|
|
89
|
+
<div class="ttc" id="classSVF_1_1FILOWorkList_html_a10c20d2c670af8de5dcbe6f433ca83ee"><div class="ttname"><a href="classSVF_1_1FILOWorkList.html#a10c20d2c670af8de5dcbe6f433ca83ee">SVF::FILOWorkList::removeBack</a></div><div class="ttdeci">void removeBack()</div><div class="ttdef"><b>Definition:</b> <a href="WorkList_8h_source.html#l00284">WorkList.h:284</a></div></div>
|
|
90
|
+
<div class="ttc" id="classSVF_1_1FILOWorkList_html_a5fb3e9576859201a7ace30d39f450fa0"><div class="ttname"><a href="classSVF_1_1FILOWorkList.html#a5fb3e9576859201a7ace30d39f450fa0">SVF::FILOWorkList::~FILOWorkList</a></div><div class="ttdeci">~FILOWorkList()</div><div class="ttdef"><b>Definition:</b> <a href="WorkList_8h_source.html#l00236">WorkList.h:236</a></div></div>
|
|
88
91
|
<div class="ttc" id="namespaceSVF_html_af739db846e47ba6b2fd15eaad31ab7fb"><div class="ttname"><a href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">SVF::Set</a></div><div class="ttdeci">std::unordered_set< Key, Hash, KeyEqual, Allocator > Set</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00105">SVFBasicTypes.h:105</a></div></div>
|
|
89
92
|
<div class="ttc" id="classSVF_1_1List_html_a6db4368f5e5767d3e3f0e83f78707b31"><div class="ttname"><a href="classSVF_1_1List.html#a6db4368f5e5767d3e3f0e83f78707b31">SVF::List::find</a></div><div class="ttdeci">bool find(const Data &data) const</div><div class="ttdef"><b>Definition:</b> <a href="WorkList_8h_source.html#l00090">WorkList.h:90</a></div></div>
|
|
93
|
+
<div class="ttc" id="classSVF_1_1FIFOWorkList_html_a4803dc3b7f3ab57261261acb20551579"><div class="ttname"><a href="classSVF_1_1FIFOWorkList.html#a4803dc3b7f3ab57261261acb20551579">SVF::FIFOWorkList::DataSet</a></div><div class="ttdeci">Set< Data > DataSet</div><div class="ttdef"><b>Definition:</b> <a href="WorkList_8h_source.html#l00139">WorkList.h:139</a></div></div>
|
|
94
|
+
<div class="ttc" id="classSVF_1_1FILOWorkList_html_abe04c596453280fe15cadde868ded798"><div class="ttname"><a href="classSVF_1_1FILOWorkList.html#abe04c596453280fe15cadde868ded798">SVF::FILOWorkList::DataSet</a></div><div class="ttdeci">Set< Data > DataSet</div><div class="ttdef"><b>Definition:</b> <a href="WorkList_8h_source.html#l00231">WorkList.h:231</a></div></div>
|
|
90
95
|
<div class="ttc" id="classSVF_1_1List_html_a4eba65b40d347ea80e2427320eb9c5a1"><div class="ttname"><a href="classSVF_1_1List.html#a4eba65b40d347ea80e2427320eb9c5a1">SVF::List::Node</a></div><div class="ttdeci">ListNode Node</div><div class="ttdef"><b>Definition:</b> <a href="WorkList_8h_source.html#l00074">WorkList.h:74</a></div></div>
|
|
91
|
-
<div class="ttc" id="classSVF_1_1FILOWorkList_html_a97265eb340b48436c39f77f4095693fb"><div class="ttname"><a href="classSVF_1_1FILOWorkList.html#a97265eb340b48436c39f77f4095693fb">SVF::FILOWorkList::clear</a></div><div class="ttdeci">void clear()</div><div class="ttdef"><b>Definition:</b> <a href="WorkList_8h_source.html#
|
|
92
|
-
<div class="ttc" id="classSVF_1_1FIFOWorkList_html_a1d3ab8bea4d8f94b935d1bef3cf0c4ac"><div class="ttname"><a href="classSVF_1_1FIFOWorkList.html#a1d3ab8bea4d8f94b935d1bef3cf0c4ac">SVF::FIFOWorkList::FIFOWorkList</a></div><div class="ttdeci">FIFOWorkList()</div><div class="ttdef"><b>Definition:</b> <a href="WorkList_8h_source.html#
|
|
96
|
+
<div class="ttc" id="classSVF_1_1FILOWorkList_html_a97265eb340b48436c39f77f4095693fb"><div class="ttname"><a href="classSVF_1_1FILOWorkList.html#a97265eb340b48436c39f77f4095693fb">SVF::FILOWorkList::clear</a></div><div class="ttdeci">void clear()</div><div class="ttdef"><b>Definition:</b> <a href="WorkList_8h_source.html#l00304">WorkList.h:304</a></div></div>
|
|
97
|
+
<div class="ttc" id="classSVF_1_1FIFOWorkList_html_a1d3ab8bea4d8f94b935d1bef3cf0c4ac"><div class="ttname"><a href="classSVF_1_1FIFOWorkList.html#a1d3ab8bea4d8f94b935d1bef3cf0c4ac">SVF::FIFOWorkList::FIFOWorkList</a></div><div class="ttdeci">FIFOWorkList()</div><div class="ttdef"><b>Definition:</b> <a href="WorkList_8h_source.html#l00142">WorkList.h:142</a></div></div>
|
|
93
98
|
<div class="ttc" id="classSVF_1_1List_1_1ListNode_html_adc6d3cf20ac762c138b896dfff376494"><div class="ttname"><a href="classSVF_1_1List_1_1ListNode.html#adc6d3cf20ac762c138b896dfff376494">SVF::List::ListNode::~ListNode</a></div><div class="ttdeci">~ListNode()</div><div class="ttdef"><b>Definition:</b> <a href="WorkList_8h_source.html#l00067">WorkList.h:67</a></div></div>
|
|
94
99
|
<div class="ttc" id="classSVF_1_1List_html"><div class="ttname"><a href="classSVF_1_1List.html">SVF::List</a></div><div class="ttdef"><b>Definition:</b> <a href="WorkList_8h_source.html#l00056">WorkList.h:56</a></div></div>
|
|
95
|
-
<div class="ttc" id="classSVF_1_1FIFOWorkList_html_af58263ff13106f215a027badae017e52"><div class="ttname"><a href="classSVF_1_1FIFOWorkList.html#af58263ff13106f215a027badae017e52">SVF::FIFOWorkList::front</a></div><div class="ttdeci">Data & front()</div><div class="ttdef"><b>Definition:</b> <a href="WorkList_8h_source.html#
|
|
100
|
+
<div class="ttc" id="classSVF_1_1FIFOWorkList_html_af58263ff13106f215a027badae017e52"><div class="ttname"><a href="classSVF_1_1FIFOWorkList.html#af58263ff13106f215a027badae017e52">SVF::FIFOWorkList::front</a></div><div class="ttdeci">Data & front()</div><div class="ttdef"><b>Definition:</b> <a href="WorkList_8h_source.html#l00190">WorkList.h:190</a></div></div>
|
|
96
101
|
<div class="ttc" id="classSVF_1_1FIFOWorkList_html"><div class="ttname"><a href="classSVF_1_1FIFOWorkList.html">SVF::FIFOWorkList</a></div><div class="ttdef"><b>Definition:</b> <a href="WorkList_8h_source.html#l00137">WorkList.h:137</a></div></div>
|
|
97
|
-
<div class="ttc" id="classSVF_1_1FILOWorkList_html_ab447c6c1a59cd81982626d25d00d57de"><div class="ttname"><a href="classSVF_1_1FILOWorkList.html#ab447c6c1a59cd81982626d25d00d57de">SVF::FILOWorkList::FILOWorkList</a></div><div class="ttdeci">FILOWorkList()</div><div class="ttdef"><b>Definition:</b> <a href="WorkList_8h_source.html#
|
|
98
|
-
<div class="ttc" id="classSVF_1_1FIFOWorkList_html_a29d9fec1ea7b8e5456342522eea403ad"><div class="ttname"><a href="classSVF_1_1FIFOWorkList.html#a29d9fec1ea7b8e5456342522eea403ad">SVF::FIFOWorkList::clear</a></div><div class="ttdeci">void clear()</div><div class="ttdef"><b>Definition:</b> <a href="WorkList_8h_source.html#
|
|
99
|
-
<div class="ttc" id="classSVF_1_1FIFOWorkList_html_a270dad3fd1d95418e4af102b64fcc883"><div class="ttname"><a href="classSVF_1_1FIFOWorkList.html#a270dad3fd1d95418e4af102b64fcc883">SVF::FIFOWorkList::data_list</a></div><div class="ttdeci">DataDeque data_list</div><div class="ttdoc">work list using std::vector. </div><div class="ttdef"><b>Definition:</b> <a href="WorkList_8h_source.html#
|
|
102
|
+
<div class="ttc" id="classSVF_1_1FILOWorkList_html_ab447c6c1a59cd81982626d25d00d57de"><div class="ttname"><a href="classSVF_1_1FILOWorkList.html#ab447c6c1a59cd81982626d25d00d57de">SVF::FILOWorkList::FILOWorkList</a></div><div class="ttdeci">FILOWorkList()</div><div class="ttdef"><b>Definition:</b> <a href="WorkList_8h_source.html#l00234">WorkList.h:234</a></div></div>
|
|
103
|
+
<div class="ttc" id="classSVF_1_1FIFOWorkList_html_a29d9fec1ea7b8e5456342522eea403ad"><div class="ttname"><a href="classSVF_1_1FIFOWorkList.html#a29d9fec1ea7b8e5456342522eea403ad">SVF::FIFOWorkList::clear</a></div><div class="ttdeci">void clear()</div><div class="ttdef"><b>Definition:</b> <a href="WorkList_8h_source.html#l00212">WorkList.h:212</a></div></div>
|
|
104
|
+
<div class="ttc" id="classSVF_1_1FIFOWorkList_html_a270dad3fd1d95418e4af102b64fcc883"><div class="ttname"><a href="classSVF_1_1FIFOWorkList.html#a270dad3fd1d95418e4af102b64fcc883">SVF::FIFOWorkList::data_list</a></div><div class="ttdeci">DataDeque data_list</div><div class="ttdoc">work list using std::vector. </div><div class="ttdef"><b>Definition:</b> <a href="WorkList_8h_source.html#l00220">WorkList.h:220</a></div></div>
|
|
100
105
|
<div class="ttc" id="namespaceSVF_html"><div class="ttname"><a href="namespaceSVF.html">SVF</a></div><div class="ttdoc">for isBitcode </div><div class="ttdef"><b>Definition:</b> <a href="CFGNormalizer_8h_source.html#l00035">CFGNormalizer.h:35</a></div></div>
|
|
101
|
-
<div class="ttc" id="classSVF_1_1FILOWorkList_html"><div class="ttname"><a href="classSVF_1_1FILOWorkList.html">SVF::FILOWorkList</a></div><div class="ttdef"><b>Definition:</b> <a href="WorkList_8h_source.html#
|
|
102
|
-
<div class="ttc" id="classSVF_1_1FIFOWorkList_html_a2907cd4515b2072aae0a88e972e93fc4"><div class="ttname"><a href="classSVF_1_1FIFOWorkList.html#a2907cd4515b2072aae0a88e972e93fc4">SVF::FIFOWorkList::DataDeque</a></div><div class="ttdeci">std::deque< Data > DataDeque</div><div class="ttdef"><b>Definition:</b> <a href="WorkList_8h_source.html#
|
|
106
|
+
<div class="ttc" id="classSVF_1_1FILOWorkList_html"><div class="ttname"><a href="classSVF_1_1FILOWorkList.html">SVF::FILOWorkList</a></div><div class="ttdef"><b>Definition:</b> <a href="WorkList_8h_source.html#l00229">WorkList.h:229</a></div></div>
|
|
107
|
+
<div class="ttc" id="classSVF_1_1FIFOWorkList_html_a2907cd4515b2072aae0a88e972e93fc4"><div class="ttname"><a href="classSVF_1_1FIFOWorkList.html#a2907cd4515b2072aae0a88e972e93fc4">SVF::FIFOWorkList::DataDeque</a></div><div class="ttdeci">std::deque< Data > DataDeque</div><div class="ttdef"><b>Definition:</b> <a href="WorkList_8h_source.html#l00140">WorkList.h:140</a></div></div>
|
|
103
108
|
<div class="ttc" id="classSVF_1_1List_1_1ListNode_html_a4a9cb4ae17156d6d80d2357e06231e12"><div class="ttname"><a href="classSVF_1_1List_1_1ListNode.html#a4a9cb4ae17156d6d80d2357e06231e12">SVF::List::ListNode::data</a></div><div class="ttdeci">Data data</div><div class="ttdef"><b>Definition:</b> <a href="WorkList_8h_source.html#l00069">WorkList.h:69</a></div></div>
|
|
104
109
|
<div class="ttc" id="classSVF_1_1List_html_a8d9ffc8497d53e0e1de230e0d8a50fec"><div class="ttname"><a href="classSVF_1_1List.html#a8d9ffc8497d53e0e1de230e0d8a50fec">SVF::List::nodeSet</a></div><div class="ttdeci">DataSet nodeSet</div><div class="ttdef"><b>Definition:</b> <a href="WorkList_8h_source.html#l00126">WorkList.h:126</a></div></div>
|
|
105
110
|
<div class="ttc" id="classSVF_1_1List_html_ae6357e876e0a1fa2f925cc63dacc529c"><div class="ttname"><a href="classSVF_1_1List.html#ae6357e876e0a1fa2f925cc63dacc529c">SVF::List::push</a></div><div class="ttdeci">void push(const Data &data)</div><div class="ttdef"><b>Definition:</b> <a href="WorkList_8h_source.html#l00095">WorkList.h:95</a></div></div>
|
|
106
|
-
<div class="ttc" id="
|
|
107
|
-
<div class="ttc" id="
|
|
111
|
+
<div class="ttc" id="classSVF_1_1FILOWorkList_html_a46092b75425becfe97fdf047206c736b"><div class="ttname"><a href="classSVF_1_1FILOWorkList.html#a46092b75425becfe97fdf047206c736b">SVF::FILOWorkList::data_set</a></div><div class="ttdeci">DataSet data_set</div><div class="ttdoc">store all data in the work list. </div><div class="ttdef"><b>Definition:</b> <a href="WorkList_8h_source.html#l00311">WorkList.h:311</a></div></div>
|
|
112
|
+
<div class="ttc" id="classSVF_1_1FILOWorkList_html_a3fd9acb6d09fd142bfd402fdf8cac93b"><div class="ttname"><a href="classSVF_1_1FILOWorkList.html#a3fd9acb6d09fd142bfd402fdf8cac93b">SVF::FILOWorkList::pop</a></div><div class="ttdeci">Data pop()</div><div class="ttdef"><b>Definition:</b> <a href="WorkList_8h_source.html#l00272">WorkList.h:272</a></div></div>
|
|
113
|
+
<div class="ttc" id="classSVF_1_1FIFOWorkList_html_a8fa72918fce7e9c0b2dc34b683a797c6"><div class="ttname"><a href="classSVF_1_1FIFOWorkList.html#a8fa72918fce7e9c0b2dc34b683a797c6">SVF::FIFOWorkList::pop</a></div><div class="ttdeci">Data pop()</div><div class="ttdef"><b>Definition:</b> <a href="WorkList_8h_source.html#l00200">WorkList.h:200</a></div></div>
|
|
108
114
|
<div class="ttc" id="classSVF_1_1List_html_a6e85bd3d8b23ccc7752a72e2a5b171ab"><div class="ttname"><a href="classSVF_1_1List.html#a6e85bd3d8b23ccc7752a72e2a5b171ab">SVF::List::pop</a></div><div class="ttdeci">Data pop()</div><div class="ttdef"><b>Definition:</b> <a href="WorkList_8h_source.html#l00108">WorkList.h:108</a></div></div>
|
|
109
|
-
<div class="ttc" id="classSVF_1_1FILOWorkList_html_a9681638ade4598cb1faa3e580d1df9b3"><div class="ttname"><a href="classSVF_1_1FILOWorkList.html#a9681638ade4598cb1faa3e580d1df9b3">SVF::FILOWorkList::back</a></div><div class="ttdeci">Data & back()</div><div class="ttdef"><b>Definition:</b> <a href="WorkList_8h_source.html#
|
|
110
|
-
<div class="ttc" id="classSVF_1_1FIFOWorkList_html_a1471fb927833748ab34fe0ef3cf0eada"><div class="ttname"><a href="classSVF_1_1FIFOWorkList.html#a1471fb927833748ab34fe0ef3cf0eada">SVF::FIFOWorkList::~FIFOWorkList</a></div><div class="ttdeci">~FIFOWorkList()</div><div class="ttdef"><b>Definition:</b> <a href="WorkList_8h_source.html#
|
|
115
|
+
<div class="ttc" id="classSVF_1_1FILOWorkList_html_a9681638ade4598cb1faa3e580d1df9b3"><div class="ttname"><a href="classSVF_1_1FILOWorkList.html#a9681638ade4598cb1faa3e580d1df9b3">SVF::FILOWorkList::back</a></div><div class="ttdeci">Data & back()</div><div class="ttdef"><b>Definition:</b> <a href="WorkList_8h_source.html#l00294">WorkList.h:294</a></div></div>
|
|
116
|
+
<div class="ttc" id="classSVF_1_1FIFOWorkList_html_a1471fb927833748ab34fe0ef3cf0eada"><div class="ttname"><a href="classSVF_1_1FIFOWorkList.html#a1471fb927833748ab34fe0ef3cf0eada">SVF::FIFOWorkList::~FIFOWorkList</a></div><div class="ttdeci">~FIFOWorkList()</div><div class="ttdef"><b>Definition:</b> <a href="WorkList_8h_source.html#l00144">WorkList.h:144</a></div></div>
|
|
111
117
|
<div class="ttc" id="classSVF_1_1List_html_a8f8a9dff1d1213a747f0d7ce8b1802e9"><div class="ttname"><a href="classSVF_1_1List.html#a8f8a9dff1d1213a747f0d7ce8b1802e9">SVF::List::DataSet</a></div><div class="ttdeci">Set< Data > DataSet</div><div class="ttdef"><b>Definition:</b> <a href="WorkList_8h_source.html#l00073">WorkList.h:73</a></div></div>
|
|
112
|
-
<div class="ttc" id="classSVF_1_1FILOWorkList_html_afcf3fcda18e8d3e2bad70a51376c0ce1"><div class="ttname"><a href="classSVF_1_1FILOWorkList.html#afcf3fcda18e8d3e2bad70a51376c0ce1">SVF::FILOWorkList::push</a></div><div class="ttdeci">bool push(const Data &data)</div><div class="ttdef"><b>Definition:</b> <a href="WorkList_8h_source.html#
|
|
113
|
-
<div class="ttc" id="classSVF_1_1FIFOWorkList_html_a621fe65af285665396fa10af9f96ef3a"><div class="ttname"><a href="classSVF_1_1FIFOWorkList.html#a621fe65af285665396fa10af9f96ef3a">SVF::FIFOWorkList::removeFront</a></div><div class="ttdeci">void removeFront()</div><div class="ttdef"><b>Definition:</b> <a href="WorkList_8h_source.html#
|
|
118
|
+
<div class="ttc" id="classSVF_1_1FILOWorkList_html_afcf3fcda18e8d3e2bad70a51376c0ce1"><div class="ttname"><a href="classSVF_1_1FILOWorkList.html#afcf3fcda18e8d3e2bad70a51376c0ce1">SVF::FILOWorkList::push</a></div><div class="ttdeci">bool push(const Data &data)</div><div class="ttdef"><b>Definition:</b> <a href="WorkList_8h_source.html#l00257">WorkList.h:257</a></div></div>
|
|
119
|
+
<div class="ttc" id="classSVF_1_1FIFOWorkList_html_a621fe65af285665396fa10af9f96ef3a"><div class="ttname"><a href="classSVF_1_1FIFOWorkList.html#a621fe65af285665396fa10af9f96ef3a">SVF::FIFOWorkList::removeFront</a></div><div class="ttdeci">void removeFront()</div><div class="ttdef"><b>Definition:</b> <a href="WorkList_8h_source.html#l00180">WorkList.h:180</a></div></div>
|
|
114
120
|
</div><!-- fragment --></div><!-- contents -->
|
|
115
121
|
<!-- start footer part -->
|
|
116
122
|
<hr class="footer"/><address class="footer"><small>
|
|
@@ -1102,7 +1102,7 @@ Additional Inherited Members</h2></td></tr>
|
|
|
1102
1102
|
<div class="ttc" id="namespaceSVF_html_a43a65e0d33af3c743294f7a1139d2301"><div class="ttname"><a href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">SVF::NodeID</a></div><div class="ttdeci">unsigned NodeID</div><div class="ttdef"><b>Definition:</b> <a href="MTAResultValidator_8h_source.html#l00019">MTAResultValidator.h:19</a></div></div>
|
|
1103
1103
|
<div class="ttc" id="classSVF_1_1GepCGEdge_html"><div class="ttname"><a href="classSVF_1_1GepCGEdge.html">SVF::GepCGEdge</a></div><div class="ttdef"><b>Definition:</b> <a href="ConsGEdge_8h_source.html#l00225">ConsGEdge.h:225</a></div></div>
|
|
1104
1104
|
<div class="ttc" id="classSVF_1_1WPASolver_html_a624e9156b2d3a4f284548cbaaf650334"><div class="ttname"><a href="classSVF_1_1WPASolver.html#a624e9156b2d3a4f284548cbaaf650334">SVF::WPASolver::WorkList</a></div><div class="ttdeci">FIFOWorkList< NodeID > WorkList</div><div class="ttdef"><b>Definition:</b> <a href="WPASolver_8h_source.html#l00055">WPASolver.h:55</a></div></div>
|
|
1105
|
-
<div class="ttc" id="classSVF_1_1FIFOWorkList_html_a0df409a67428e528321869d201f2a474"><div class="ttname"><a href="classSVF_1_1FIFOWorkList.html#a0df409a67428e528321869d201f2a474">SVF::FIFOWorkList::push</a></div><div class="ttdeci">bool push(const Data &data)</div><div class="ttdef"><b>Definition:</b> <a href="WorkList_8h_source.html#
|
|
1105
|
+
<div class="ttc" id="classSVF_1_1FIFOWorkList_html_a0df409a67428e528321869d201f2a474"><div class="ttname"><a href="classSVF_1_1FIFOWorkList.html#a0df409a67428e528321869d201f2a474">SVF::FIFOWorkList::push</a></div><div class="ttdeci">bool push(const Data &data)</div><div class="ttdef"><b>Definition:</b> <a href="WorkList_8h_source.html#l00165">WorkList.h:165</a></div></div>
|
|
1106
1106
|
<div class="ttc" id="classSVF_1_1WPASolver_html_a37ca8a99b8f83fba796293e6e13b0953"><div class="ttname"><a href="classSVF_1_1WPASolver.html#a37ca8a99b8f83fba796293e6e13b0953">SVF::WPASolver::getSCCDetector</a></div><div class="ttdeci">SCC * getSCCDetector() const</div><div class="ttdoc">Get SCC detector. </div><div class="ttdef"><b>Definition:</b> <a href="WPASolver_8h_source.html#l00071">WPASolver.h:71</a></div></div>
|
|
1107
1107
|
<div class="ttc" id="classSVF_1_1Andersen_html_ac4afe532655c3f311143ebbe15175ca2"><div class="ttname"><a href="classSVF_1_1Andersen.html#ac4afe532655c3f311143ebbe15175ca2">SVF::Andersen::processCopy</a></div><div class="ttdeci">virtual bool processCopy(NodeID node, const ConstraintEdge *edge)</div><div class="ttdef"><b>Definition:</b> <a href="Andersen_8cpp_source.html#l00362">Andersen.cpp:362</a></div></div>
|
|
1108
1108
|
<div class="ttc" id="classSVF_1_1ConstraintNode_html"><div class="ttname"><a href="classSVF_1_1ConstraintNode.html">SVF::ConstraintNode</a></div><div class="ttdef"><b>Definition:</b> <a href="ConsGNode_8h_source.html#l00040">ConsGNode.h:40</a></div></div>
|
|
@@ -334,7 +334,7 @@ Private Attributes</h2></td></tr>
|
|
|
334
334
|
|
|
335
335
|
<p class="definition">Definition at line <a class="el" href="CFLSolver_8h_source.html#l00091">91</a> of file <a class="el" href="CFLSolver_8h_source.html">CFLSolver.h</a>.</p>
|
|
336
336
|
<div class="fragment"><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>  {</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1CFLSolver.html#a211bb78846886aa9ccd4b160da81e02e">worklist</a>.<a class="code" href="classSVF_1_1FIFOWorkList.html#ab023f3b60ff61d6729d75f4d2942bd83">find</a>(<a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a>);</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>  }</div><div class="ttc" id="classSVF_1_1CFLSolver_html_a211bb78846886aa9ccd4b160da81e02e"><div class="ttname"><a href="classSVF_1_1CFLSolver.html#a211bb78846886aa9ccd4b160da81e02e">SVF::CFLSolver::worklist</a></div><div class="ttdeci">WorkList worklist</div><div class="ttdoc">Worklist for resolution. </div><div class="ttdef"><b>Definition:</b> <a href="CFLSolver_8h_source.html#l00101">CFLSolver.h:101</a></div></div>
|
|
337
|
-
<div class="ttc" id="classSVF_1_1FIFOWorkList_html_ab023f3b60ff61d6729d75f4d2942bd83"><div class="ttname"><a href="classSVF_1_1FIFOWorkList.html#ab023f3b60ff61d6729d75f4d2942bd83">SVF::FIFOWorkList::find</a></div><div class="ttdeci">bool find(const Data &data) const</div><div class="ttdef"><b>Definition:</b> <a href="WorkList_8h_source.html#
|
|
337
|
+
<div class="ttc" id="classSVF_1_1FIFOWorkList_html_ab023f3b60ff61d6729d75f4d2942bd83"><div class="ttname"><a href="classSVF_1_1FIFOWorkList.html#ab023f3b60ff61d6729d75f4d2942bd83">SVF::FIFOWorkList::find</a></div><div class="ttdeci">bool find(const Data &data) const</div><div class="ttdef"><b>Definition:</b> <a href="WorkList_8h_source.html#l00157">WorkList.h:157</a></div></div>
|
|
338
338
|
<div class="ttc" id="cJSON_8h_html_ac76cea59d438ba893d2f82aabb367d14"><div class="ttname"><a href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a></div><div class="ttdeci">cJSON * item</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8h_source.html#l00222">cJSON.h:222</a></div></div>
|
|
339
339
|
</div><!-- fragment -->
|
|
340
340
|
</div>
|
|
@@ -364,7 +364,7 @@ Private Attributes</h2></td></tr>
|
|
|
364
364
|
|
|
365
365
|
<p class="definition">Definition at line <a class="el" href="CFLSolver_8h_source.html#l00078">78</a> of file <a class="el" href="CFLSolver_8h_source.html">CFLSolver.h</a>.</p>
|
|
366
366
|
<div class="fragment"><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  {</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1CFLSolver.html#a211bb78846886aa9ccd4b160da81e02e">worklist</a>.<a class="code" href="classSVF_1_1FIFOWorkList.html#a7056704c224dfb4b57287fe90c004aa8">empty</a>();</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  }</div><div class="ttc" id="classSVF_1_1CFLSolver_html_a211bb78846886aa9ccd4b160da81e02e"><div class="ttname"><a href="classSVF_1_1CFLSolver.html#a211bb78846886aa9ccd4b160da81e02e">SVF::CFLSolver::worklist</a></div><div class="ttdeci">WorkList worklist</div><div class="ttdoc">Worklist for resolution. </div><div class="ttdef"><b>Definition:</b> <a href="CFLSolver_8h_source.html#l00101">CFLSolver.h:101</a></div></div>
|
|
367
|
-
<div class="ttc" id="classSVF_1_1FIFOWorkList_html_a7056704c224dfb4b57287fe90c004aa8"><div class="ttname"><a href="classSVF_1_1FIFOWorkList.html#a7056704c224dfb4b57287fe90c004aa8">SVF::FIFOWorkList::empty</a></div><div class="ttdeci">bool empty() const</div><div class="ttdef"><b>Definition:</b> <a href="WorkList_8h_source.html#
|
|
367
|
+
<div class="ttc" id="classSVF_1_1FIFOWorkList_html_a7056704c224dfb4b57287fe90c004aa8"><div class="ttname"><a href="classSVF_1_1FIFOWorkList.html#a7056704c224dfb4b57287fe90c004aa8">SVF::FIFOWorkList::empty</a></div><div class="ttdeci">bool empty() const</div><div class="ttdef"><b>Definition:</b> <a href="WorkList_8h_source.html#l00146">WorkList.h:146</a></div></div>
|
|
368
368
|
</div><!-- fragment -->
|
|
369
369
|
</div>
|
|
370
370
|
</div>
|
|
@@ -395,7 +395,7 @@ Private Attributes</h2></td></tr>
|
|
|
395
395
|
|
|
396
396
|
<p class="definition">Definition at line <a class="el" href="CFLSolver_8h_source.html#l00086">86</a> of file <a class="el" href="CFLSolver_8h_source.html">CFLSolver.h</a>.</p>
|
|
397
397
|
<div class="fragment"><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  {</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1CFLSolver.html#a211bb78846886aa9ccd4b160da81e02e">worklist</a>.<a class="code" href="classSVF_1_1FIFOWorkList.html#a8fa72918fce7e9c0b2dc34b683a797c6">pop</a>();</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  }</div><div class="ttc" id="classSVF_1_1CFLSolver_html_a211bb78846886aa9ccd4b160da81e02e"><div class="ttname"><a href="classSVF_1_1CFLSolver.html#a211bb78846886aa9ccd4b160da81e02e">SVF::CFLSolver::worklist</a></div><div class="ttdeci">WorkList worklist</div><div class="ttdoc">Worklist for resolution. </div><div class="ttdef"><b>Definition:</b> <a href="CFLSolver_8h_source.html#l00101">CFLSolver.h:101</a></div></div>
|
|
398
|
-
<div class="ttc" id="classSVF_1_1FIFOWorkList_html_a8fa72918fce7e9c0b2dc34b683a797c6"><div class="ttname"><a href="classSVF_1_1FIFOWorkList.html#a8fa72918fce7e9c0b2dc34b683a797c6">SVF::FIFOWorkList::pop</a></div><div class="ttdeci">Data pop()</div><div class="ttdef"><b>Definition:</b> <a href="WorkList_8h_source.html#
|
|
398
|
+
<div class="ttc" id="classSVF_1_1FIFOWorkList_html_a8fa72918fce7e9c0b2dc34b683a797c6"><div class="ttname"><a href="classSVF_1_1FIFOWorkList.html#a8fa72918fce7e9c0b2dc34b683a797c6">SVF::FIFOWorkList::pop</a></div><div class="ttdeci">Data pop()</div><div class="ttdef"><b>Definition:</b> <a href="WorkList_8h_source.html#l00200">WorkList.h:200</a></div></div>
|
|
399
399
|
</div><!-- fragment -->
|
|
400
400
|
</div>
|
|
401
401
|
</div>
|
|
@@ -425,7 +425,7 @@ Private Attributes</h2></td></tr>
|
|
|
425
425
|
|
|
426
426
|
<p class="definition">Definition at line <a class="el" href="CFLSolver_8h_source.html#l00074">74</a> of file <a class="el" href="CFLSolver_8h_source.html">CFLSolver.h</a>.</p>
|
|
427
427
|
<div class="fragment"><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  {</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1CFLSolver.html#a211bb78846886aa9ccd4b160da81e02e">worklist</a>.<a class="code" href="classSVF_1_1FIFOWorkList.html#a0df409a67428e528321869d201f2a474">push</a>(<a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a>);</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  }</div><div class="ttc" id="classSVF_1_1CFLSolver_html_a211bb78846886aa9ccd4b160da81e02e"><div class="ttname"><a href="classSVF_1_1CFLSolver.html#a211bb78846886aa9ccd4b160da81e02e">SVF::CFLSolver::worklist</a></div><div class="ttdeci">WorkList worklist</div><div class="ttdoc">Worklist for resolution. </div><div class="ttdef"><b>Definition:</b> <a href="CFLSolver_8h_source.html#l00101">CFLSolver.h:101</a></div></div>
|
|
428
|
-
<div class="ttc" id="classSVF_1_1FIFOWorkList_html_a0df409a67428e528321869d201f2a474"><div class="ttname"><a href="classSVF_1_1FIFOWorkList.html#a0df409a67428e528321869d201f2a474">SVF::FIFOWorkList::push</a></div><div class="ttdeci">bool push(const Data &data)</div><div class="ttdef"><b>Definition:</b> <a href="WorkList_8h_source.html#
|
|
428
|
+
<div class="ttc" id="classSVF_1_1FIFOWorkList_html_a0df409a67428e528321869d201f2a474"><div class="ttname"><a href="classSVF_1_1FIFOWorkList.html#a0df409a67428e528321869d201f2a474">SVF::FIFOWorkList::push</a></div><div class="ttdeci">bool push(const Data &data)</div><div class="ttdef"><b>Definition:</b> <a href="WorkList_8h_source.html#l00165">WorkList.h:165</a></div></div>
|
|
429
429
|
<div class="ttc" id="cJSON_8h_html_ac76cea59d438ba893d2f82aabb367d14"><div class="ttname"><a href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a></div><div class="ttdeci">cJSON * item</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8h_source.html#l00222">cJSON.h:222</a></div></div>
|
|
430
430
|
</div><!-- fragment -->
|
|
431
431
|
</div>
|