svf-tools 1.0.615 → 1.0.616

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.
Files changed (161) hide show
  1. package/SVF-doxygen/html/html/AndersenPWC_8h_source.html +3 -3
  2. package/SVF-doxygen/html/html/AndersenSCD_8cpp_source.html +1 -1
  3. package/SVF-doxygen/html/html/AndersenSFR_8cpp_source.html +3 -3
  4. package/SVF-doxygen/html/html/AndersenWaveDiff_8cpp_source.html +1 -1
  5. package/SVF-doxygen/html/html/Andersen_8cpp_source.html +31 -31
  6. package/SVF-doxygen/html/html/Andersen_8h_source.html +5 -5
  7. package/SVF-doxygen/html/html/CFLBase_8cpp_source.html +1 -1
  8. package/SVF-doxygen/html/html/ConsG_8h_source.html +3 -2
  9. package/SVF-doxygen/html/html/ContextDDA_8cpp_source.html +4 -4
  10. package/SVF-doxygen/html/html/ContextDDA_8h_source.html +4 -4
  11. package/SVF-doxygen/html/html/DDAStat_8cpp_source.html +2 -2
  12. package/SVF-doxygen/html/html/FlowDDA_8h_source.html +1 -1
  13. package/SVF-doxygen/html/html/FlowSensitive_8cpp_source.html +1 -1
  14. package/SVF-doxygen/html/html/FlowSensitive_8h_source.html +2 -2
  15. package/SVF-doxygen/html/html/GenericGraph_8h_source.html +3 -3
  16. package/SVF-doxygen/html/html/ICFG_8h_source.html +3 -2
  17. package/SVF-doxygen/html/html/MemRegion_8cpp_source.html +1 -1
  18. package/SVF-doxygen/html/html/PointerAnalysisImpl_8cpp.html +0 -1
  19. package/SVF-doxygen/html/html/PointerAnalysisImpl_8cpp_source.html +16 -20
  20. package/SVF-doxygen/html/html/PointerAnalysisImpl_8h_source.html +68 -69
  21. package/SVF-doxygen/html/html/SVFG_8h_source.html +2 -2
  22. package/SVF-doxygen/html/html/Steensgaard_8h_source.html +1 -1
  23. package/SVF-doxygen/html/html/VFG_8h_source.html +3 -2
  24. package/SVF-doxygen/html/html/VersionedFlowSensitive_8cpp_source.html +1 -1
  25. package/SVF-doxygen/html/html/annotated.html +188 -189
  26. package/SVF-doxygen/html/html/classSVF_1_1Andersen-members.html +52 -53
  27. package/SVF-doxygen/html/html/classSVF_1_1Andersen.html +85 -87
  28. package/SVF-doxygen/html/html/classSVF_1_1AndersenBase-members.html +43 -44
  29. package/SVF-doxygen/html/html/classSVF_1_1AndersenBase.html +13 -14
  30. package/SVF-doxygen/html/html/classSVF_1_1AndersenSCD-members.html +52 -53
  31. package/SVF-doxygen/html/html/classSVF_1_1AndersenSCD.html +12 -14
  32. package/SVF-doxygen/html/html/classSVF_1_1AndersenSFR-members.html +56 -57
  33. package/SVF-doxygen/html/html/classSVF_1_1AndersenSFR.html +6 -8
  34. package/SVF-doxygen/html/html/classSVF_1_1AndersenWaveDiff-members.html +53 -54
  35. package/SVF-doxygen/html/html/classSVF_1_1AndersenWaveDiff.html +9 -11
  36. package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl-members.html +27 -28
  37. package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl.html +96 -120
  38. package/SVF-doxygen/html/html/classSVF_1_1CFLAlias-members.html +33 -34
  39. package/SVF-doxygen/html/html/classSVF_1_1CFLAlias.html +2 -4
  40. package/SVF-doxygen/html/html/classSVF_1_1CFLBase-members.html +31 -32
  41. package/SVF-doxygen/html/html/classSVF_1_1CFLBase.html +4 -6
  42. package/SVF-doxygen/html/html/classSVF_1_1CFLGraph-members.html +1 -1
  43. package/SVF-doxygen/html/html/classSVF_1_1CFLGraph.html +4 -4
  44. package/SVF-doxygen/html/html/classSVF_1_1CFLVF-members.html +34 -35
  45. package/SVF-doxygen/html/html/classSVF_1_1CFLVF.html +2 -4
  46. package/SVF-doxygen/html/html/classSVF_1_1CHGraph-members.html +1 -1
  47. package/SVF-doxygen/html/html/classSVF_1_1CHGraph.html +4 -4
  48. package/SVF-doxygen/html/html/classSVF_1_1CondPTAImpl.html +110 -110
  49. package/SVF-doxygen/html/html/classSVF_1_1ConstraintGraph-members.html +2 -2
  50. package/SVF-doxygen/html/html/classSVF_1_1ConstraintGraph.html +9 -9
  51. package/SVF-doxygen/html/html/classSVF_1_1ContextDDA.html +8 -8
  52. package/SVF-doxygen/html/html/classSVF_1_1DCHGraph-members.html +1 -1
  53. package/SVF-doxygen/html/html/classSVF_1_1DCHGraph.html +4 -4
  54. package/SVF-doxygen/html/html/classSVF_1_1DDAStat.html +2 -2
  55. package/SVF-doxygen/html/html/classSVF_1_1FSMPTA-members.html +60 -61
  56. package/SVF-doxygen/html/html/classSVF_1_1FSMPTA.html +2 -4
  57. package/SVF-doxygen/html/html/classSVF_1_1FlowDDA-members.html +47 -48
  58. package/SVF-doxygen/html/html/classSVF_1_1FlowDDA.html +4 -6
  59. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitive-members.html +56 -57
  60. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitive.html +21 -23
  61. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveStat.html +1 -1
  62. package/SVF-doxygen/html/html/classSVF_1_1GenericGraph-members.html +1 -1
  63. package/SVF-doxygen/html/html/classSVF_1_1GenericGraph.html +8 -8
  64. package/SVF-doxygen/html/html/classSVF_1_1ICFG-members.html +2 -2
  65. package/SVF-doxygen/html/html/classSVF_1_1ICFG.html +9 -9
  66. package/SVF-doxygen/html/html/classSVF_1_1IRGraph-members.html +1 -1
  67. package/SVF-doxygen/html/html/classSVF_1_1IRGraph.html +4 -4
  68. package/SVF-doxygen/html/html/classSVF_1_1MRGenerator.html +2 -2
  69. package/SVF-doxygen/html/html/classSVF_1_1PTACallGraph-members.html +1 -1
  70. package/SVF-doxygen/html/html/classSVF_1_1PTACallGraph.html +4 -4
  71. package/SVF-doxygen/html/html/classSVF_1_1SVFG-members.html +2 -2
  72. package/SVF-doxygen/html/html/classSVF_1_1SVFG.html +8 -8
  73. package/SVF-doxygen/html/html/classSVF_1_1SVFGOPT-members.html +2 -2
  74. package/SVF-doxygen/html/html/classSVF_1_1SVFGOPT.html +7 -7
  75. package/SVF-doxygen/html/html/classSVF_1_1SVFIR-members.html +1 -1
  76. package/SVF-doxygen/html/html/classSVF_1_1SVFIR.html +4 -4
  77. package/SVF-doxygen/html/html/classSVF_1_1Steensgaard-members.html +46 -47
  78. package/SVF-doxygen/html/html/classSVF_1_1Steensgaard.html +5 -7
  79. package/SVF-doxygen/html/html/classSVF_1_1TCT-members.html +1 -1
  80. package/SVF-doxygen/html/html/classSVF_1_1TCT.html +4 -4
  81. package/SVF-doxygen/html/html/classSVF_1_1ThreadCallGraph-members.html +1 -1
  82. package/SVF-doxygen/html/html/classSVF_1_1ThreadCallGraph.html +4 -4
  83. package/SVF-doxygen/html/html/classSVF_1_1TypeAnalysis-members.html +47 -48
  84. package/SVF-doxygen/html/html/classSVF_1_1TypeAnalysis.html +2 -4
  85. package/SVF-doxygen/html/html/classSVF_1_1VFG-members.html +2 -2
  86. package/SVF-doxygen/html/html/classSVF_1_1VFG.html +9 -9
  87. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive-members.html +76 -77
  88. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive.html +3 -5
  89. package/SVF-doxygen/html/html/classes.html +99 -99
  90. package/SVF-doxygen/html/html/dir_967d846b666a902c6ca9bc5c37976e49.html +0 -2
  91. package/SVF-doxygen/html/html/files.html +5 -6
  92. package/SVF-doxygen/html/html/functions_0x7e.html +0 -3
  93. package/SVF-doxygen/html/html/functions_a.html +9 -15
  94. package/SVF-doxygen/html/html/functions_c.html +1 -1
  95. package/SVF-doxygen/html/html/functions_func.html +11 -17
  96. package/SVF-doxygen/html/html/functions_func_0x7e.html +0 -3
  97. package/SVF-doxygen/html/html/functions_func_g.html +8 -11
  98. package/SVF-doxygen/html/html/functions_func_i.html +7 -10
  99. package/SVF-doxygen/html/html/functions_func_p.html +2 -29
  100. package/SVF-doxygen/html/html/functions_func_r.html +3 -9
  101. package/SVF-doxygen/html/html/functions_func_w.html +5 -8
  102. package/SVF-doxygen/html/html/functions_g.html +14 -17
  103. package/SVF-doxygen/html/html/functions_i.html +15 -18
  104. package/SVF-doxygen/html/html/functions_l.html +3 -3
  105. package/SVF-doxygen/html/html/functions_m.html +1 -4
  106. package/SVF-doxygen/html/html/functions_n.html +4 -4
  107. package/SVF-doxygen/html/html/functions_o.html +12 -12
  108. package/SVF-doxygen/html/html/functions_p.html +11 -43
  109. package/SVF-doxygen/html/html/functions_r.html +3 -11
  110. package/SVF-doxygen/html/html/functions_s.html +13 -11
  111. package/SVF-doxygen/html/html/functions_t.html +6 -6
  112. package/SVF-doxygen/html/html/functions_type_c.html +1 -1
  113. package/SVF-doxygen/html/html/functions_type_i.html +2 -2
  114. package/SVF-doxygen/html/html/functions_type_v.html +1 -1
  115. package/SVF-doxygen/html/html/functions_v.html +4 -4
  116. package/SVF-doxygen/html/html/functions_vars_m.html +0 -3
  117. package/SVF-doxygen/html/html/functions_vars_p.html +0 -3
  118. package/SVF-doxygen/html/html/functions_w.html +10 -9
  119. package/SVF-doxygen/html/html/hierarchy.html +194 -195
  120. package/SVF-doxygen/html/html/namespaceSVF.html +0 -2
  121. package/SVF-doxygen/html/html/search/all_1.js +0 -2
  122. package/SVF-doxygen/html/html/search/all_10.js +4 -14
  123. package/SVF-doxygen/html/html/search/all_11.js +1 -3
  124. package/SVF-doxygen/html/html/search/all_12.js +9 -9
  125. package/SVF-doxygen/html/html/search/all_13.js +4 -4
  126. package/SVF-doxygen/html/html/search/all_15.js +4 -4
  127. package/SVF-doxygen/html/html/search/all_16.js +3 -4
  128. package/SVF-doxygen/html/html/search/all_19.js +0 -1
  129. package/SVF-doxygen/html/html/search/all_3.js +2 -2
  130. package/SVF-doxygen/html/html/search/all_7.js +0 -1
  131. package/SVF-doxygen/html/html/search/all_9.js +6 -8
  132. package/SVF-doxygen/html/html/search/all_c.js +3 -3
  133. package/SVF-doxygen/html/html/search/all_d.js +3 -4
  134. package/SVF-doxygen/html/html/search/all_e.js +2 -2
  135. package/SVF-doxygen/html/html/search/all_f.js +3 -3
  136. package/SVF-doxygen/html/html/search/classes_8.js +0 -1
  137. package/SVF-doxygen/html/html/search/files_7.js +0 -1
  138. package/SVF-doxygen/html/html/search/functions_0.js +0 -2
  139. package/SVF-doxygen/html/html/search/functions_10.js +0 -2
  140. package/SVF-doxygen/html/html/search/functions_11.js +1 -1
  141. package/SVF-doxygen/html/html/search/functions_15.js +1 -2
  142. package/SVF-doxygen/html/html/search/functions_17.js +0 -1
  143. package/SVF-doxygen/html/html/search/functions_6.js +0 -1
  144. package/SVF-doxygen/html/html/search/functions_8.js +1 -2
  145. package/SVF-doxygen/html/html/search/functions_d.js +1 -1
  146. package/SVF-doxygen/html/html/search/functions_f.js +0 -9
  147. package/SVF-doxygen/html/html/search/typedefs_13.js +1 -1
  148. package/SVF-doxygen/html/html/search/typedefs_2.js +1 -1
  149. package/SVF-doxygen/html/html/search/typedefs_7.js +3 -3
  150. package/SVF-doxygen/html/html/search/variables_10.js +0 -1
  151. package/SVF-doxygen/html/html/search/variables_13.js +2 -2
  152. package/SVF-doxygen/html/html/search/variables_d.js +0 -1
  153. package/include/Graphs/ConsG.h +1 -1
  154. package/include/Graphs/GenericGraph.h +1 -1
  155. package/include/Graphs/ICFG.h +1 -1
  156. package/include/Graphs/VFG.h +1 -1
  157. package/include/MemoryModel/PointerAnalysisImpl.h +1 -2
  158. package/lib/MemoryModel/PointerAnalysisImpl.cpp +87 -63
  159. package/lib/WPA/Andersen.cpp +9 -2
  160. package/package.json +1 -1
  161. package/include/SVF-LLVM/IRAnnotator.h +0 -324
@@ -68,7 +68,7 @@ $(function() {
68
68
  <div class="contents">
69
69
  <a href="Steensgaard_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>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> * Steensgaard.h</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> * Created on: 2 Feb. 2021</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> * Author: Yulei Sui</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;</div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="preprocessor">#ifndef INCLUDE_WPA_STEENSGAARD_H_</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="preprocessor">#define INCLUDE_WPA_STEENSGAARD_H_</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;</div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="Andersen_8h.html">WPA/Andersen.h</a>&quot;</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespaceSVF.html">SVF</a></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;{</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="keyword">typedef</span> WPASolver&lt;ConstraintGraph*&gt; <a class="code" href="namespaceSVF.html#ae9c142945ea31b6c70bceb93eb6f3ca4">WPAConstraintSolver</a>;</div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno"><a class="line" href="classSVF_1_1Steensgaard.html"> 20</a></span>&#160;<span class="keyword">class </span><a class="code" href="classSVF_1_1Steensgaard.html">Steensgaard</a>: <span class="keyword">public</span> <a class="code" href="classSVF_1_1AndersenBase.html">AndersenBase</a></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;{</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;</div><div class="line"><a name="l00025"></a><span class="lineno"><a class="line" href="classSVF_1_1Steensgaard.html#a7f975fd9a694f4b06bab8f3deef9d60b"> 25</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map&lt;NodeID, NodeID&gt;</a> <a class="code" href="classSVF_1_1Steensgaard.html#a7f975fd9a694f4b06bab8f3deef9d60b">NodeToEquivClassMap</a>;</div><div class="line"><a name="l00026"></a><span class="lineno"><a class="line" href="classSVF_1_1Steensgaard.html#a45d49eef110e3bc15509a2020be38453"> 26</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map&lt;NodeID, Set&lt;NodeID&gt;</a>&gt; <a class="code" href="classSVF_1_1Steensgaard.html#a45d49eef110e3bc15509a2020be38453">NodeToSubsMap</a>;</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"><a class="line" href="classSVF_1_1Steensgaard.html#ac79e21396243dfa969136daee5ecdbd4"> 29</a></span>&#160; <a class="code" href="classSVF_1_1Steensgaard.html#ac79e21396243dfa969136daee5ecdbd4">Steensgaard</a>(<a class="code" href="classSVF_1_1SVFIR.html">SVFIR</a>* _pag)</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; : <a class="code" href="classSVF_1_1AndersenBase.html">AndersenBase</a>(_pag, <a class="code" href="classSVF_1_1PointerAnalysis.html#a0b182ac680cce0547dbe7714c870ca85ad24ef5326c26db858c73432aa7e67a0a">Steensgaard_WPA</a>, <a class="code" href="cJSON_8cpp.html#a930920b2bc42824a5c03be681830f4b2">true</a>)</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; {</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; }</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"><a class="line" href="classSVF_1_1Steensgaard.html#acd5f31c3b1f9b47def458637f8e9389e"> 35</a></span>&#160; <span class="keyword">static</span> <a class="code" href="classSVF_1_1Steensgaard.html">Steensgaard</a>* <a class="code" href="classSVF_1_1Steensgaard.html#acd5f31c3b1f9b47def458637f8e9389e">createSteensgaard</a>(<a class="code" href="classSVF_1_1SVFIR.html">SVFIR</a>* _pag)</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; {</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1Steensgaard.html#a04530669bc548ae13bd8908fe4dbd3d2">steens</a>==<span class="keyword">nullptr</span>)</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; {</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; <a class="code" href="classSVF_1_1Steensgaard.html#a04530669bc548ae13bd8908fe4dbd3d2">steens</a> = <span class="keyword">new</span> <a class="code" href="classSVF_1_1Steensgaard.html#ac79e21396243dfa969136daee5ecdbd4">Steensgaard</a>(_pag);</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; <a class="code" href="classSVF_1_1Steensgaard.html#a04530669bc548ae13bd8908fe4dbd3d2">steens</a>-&gt;<a class="code" href="classSVF_1_1AndersenBase.html#a944966086ecb716184c8cdcc43db5751">analyze</a>();</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1Steensgaard.html#a04530669bc548ae13bd8908fe4dbd3d2">steens</a>;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; }</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1Steensgaard.html#a04530669bc548ae13bd8908fe4dbd3d2">steens</a>;</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; }</div><div class="line"><a name="l00045"></a><span class="lineno"><a class="line" href="classSVF_1_1Steensgaard.html#a375a16c7538866fcebfecf228f7ee63d"> 45</a></span>&#160; <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1Steensgaard.html#a375a16c7538866fcebfecf228f7ee63d">releaseSteensgaard</a>()</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; {</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1Steensgaard.html#a04530669bc548ae13bd8908fe4dbd3d2">steens</a>)</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <span class="keyword">delete</span> <a class="code" href="classSVF_1_1Steensgaard.html#a04530669bc548ae13bd8908fe4dbd3d2">steens</a>;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <a class="code" href="classSVF_1_1Steensgaard.html#a04530669bc548ae13bd8908fe4dbd3d2">steens</a> = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; }</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1Steensgaard.html#a966faa0548fe76d81a50339fffdd24c8">solveWorklist</a>();</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1Steensgaard.html#ada542b3e393f23938d37e479008e8cc0">processAllAddr</a>();</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1Steensgaard.html#a191e77e62916d868b2af730264e26dd8">ecUnion</a>(<a class="code" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> <span class="keywordtype">id</span>, <a class="code" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> ec);</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;</div><div class="line"><a name="l00060"></a><span class="lineno"><a class="line" href="classSVF_1_1Steensgaard.html#a7e7493bd144746edb4fbe1292e8ba55f"> 60</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1Steensgaard.html#a7e7493bd144746edb4fbe1292e8ba55f">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1Steensgaard.html">Steensgaard</a> *)</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; {</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; }</div><div class="line"><a name="l00064"></a><span class="lineno"><a class="line" href="classSVF_1_1Steensgaard.html#acfd677c395809baea0a32f59646beb0f"> 64</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1Steensgaard.html#acfd677c395809baea0a32f59646beb0f">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1AndersenBase.html">AndersenBase</a> *pta)</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; {</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <span class="keywordflow">return</span> (pta-&gt;<a class="code" href="classSVF_1_1PointerAnalysis.html#ac23f71c1307cda9cba44acc40059f0a3">getAnalysisTy</a>() == <a class="code" href="classSVF_1_1PointerAnalysis.html#a0b182ac680cce0547dbe7714c870ca85ad24ef5326c26db858c73432aa7e67a0a">Steensgaard_WPA</a>);</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; }</div><div class="line"><a name="l00068"></a><span class="lineno"><a class="line" href="classSVF_1_1Steensgaard.html#a69daef869bfaaf0dfa2dccaf575dd9a0"> 68</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1Steensgaard.html#a69daef869bfaaf0dfa2dccaf575dd9a0">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1PointerAnalysis.html">PointerAnalysis</a> *pta)</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; {</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <span class="keywordflow">return</span> (pta-&gt;<a class="code" href="classSVF_1_1PointerAnalysis.html#ac23f71c1307cda9cba44acc40059f0a3">getAnalysisTy</a>() == <a class="code" href="classSVF_1_1PointerAnalysis.html#a0b182ac680cce0547dbe7714c870ca85ad24ef5326c26db858c73432aa7e67a0a">Steensgaard_WPA</a>);</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; }</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;</div><div class="line"><a name="l00075"></a><span class="lineno"><a class="line" href="classSVF_1_1Steensgaard.html#adbcb9af660ab9bb0202bd32342280486"> 75</a></span>&#160; <span class="keyword">virtual</span> <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="classSVF_1_1PointsTo.html">PointsTo</a>&amp; <a class="code" href="classSVF_1_1Steensgaard.html#adbcb9af660ab9bb0202bd32342280486">getPts</a>(<a class="code" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> <span class="keywordtype">id</span>)</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; {</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1BVDataPTAImpl.html#ae94cea78b71fb75837ee2a17b5ed0e81">getPTDataTy</a>()-&gt;<a class="code" href="classSVF_1_1PTData.html#a9ae6037637d8b9acb323333f491f4a7d">getPts</a>(<a class="code" href="classSVF_1_1Steensgaard.html#af2afffc0617d588a68fdfa4fcfd24b70">getEC</a>(<span class="keywordtype">id</span>));</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; }</div><div class="line"><a name="l00080"></a><span class="lineno"><a class="line" href="classSVF_1_1Steensgaard.html#a61524c5a3521939b1546c78c68730c20"> 80</a></span>&#160; <span class="keyword">virtual</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1Steensgaard.html#a61524c5a3521939b1546c78c68730c20">unionPts</a>(<a class="code" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> <span class="keywordtype">id</span>, <span class="keyword">const</span> <a class="code" href="classSVF_1_1PointsTo.html">PointsTo</a>&amp; target)</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; {</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; <span class="keywordtype">id</span> = <a class="code" href="classSVF_1_1Steensgaard.html#af2afffc0617d588a68fdfa4fcfd24b70">getEC</a>(<span class="keywordtype">id</span>);</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1BVDataPTAImpl.html#ae94cea78b71fb75837ee2a17b5ed0e81">getPTDataTy</a>()-&gt;<a class="code" href="classSVF_1_1PTData.html#af7aa22f11558c12ff16612174e2221dd">unionPts</a>(<span class="keywordtype">id</span>, target);</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; }</div><div class="line"><a name="l00086"></a><span class="lineno"><a class="line" href="classSVF_1_1Steensgaard.html#afcb7f051f50b65a09ec2bc065bb70735"> 86</a></span>&#160; <span class="keyword">virtual</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1Steensgaard.html#afcb7f051f50b65a09ec2bc065bb70735">unionPts</a>(<a class="code" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> <span class="keywordtype">id</span>, <a class="code" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> ptd)</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; {</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <span class="keywordtype">id</span> = <a class="code" href="classSVF_1_1Steensgaard.html#af2afffc0617d588a68fdfa4fcfd24b70">getEC</a>(<span class="keywordtype">id</span>);</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; ptd = <a class="code" href="classSVF_1_1Steensgaard.html#af2afffc0617d588a68fdfa4fcfd24b70">getEC</a>(ptd);</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1BVDataPTAImpl.html#ae94cea78b71fb75837ee2a17b5ed0e81">getPTDataTy</a>()-&gt;<a class="code" href="classSVF_1_1PTData.html#af7aa22f11558c12ff16612174e2221dd">unionPts</a>(<span class="keywordtype">id</span>,ptd);</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; }</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;</div><div class="line"><a name="l00096"></a><span class="lineno"><a class="line" href="classSVF_1_1Steensgaard.html#af2afffc0617d588a68fdfa4fcfd24b70"> 96</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> <a class="code" href="classSVF_1_1Steensgaard.html#af2afffc0617d588a68fdfa4fcfd24b70">getEC</a>(<a class="code" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> <span class="keywordtype">id</span>)<span class="keyword"> const</span></div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; NodeToEquivClassMap::const_iterator it = <a class="code" href="classSVF_1_1Steensgaard.html#a0dccd5cc44d4d56a035514e9251e70f6">nodeToECMap</a>.find(<span class="keywordtype">id</span>);</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; <span class="keywordflow">if</span>(it==<a class="code" href="classSVF_1_1Steensgaard.html#a0dccd5cc44d4d56a035514e9251e70f6">nodeToECMap</a>.end())</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; <span class="keywordflow">return</span> <span class="keywordtype">id</span>;</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; <span class="keywordflow">return</span> it-&gt;second;</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; }</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1Steensgaard.html#aa283cff49b0d340956649a95465b82b6">setEC</a>(<a class="code" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> node, <a class="code" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> rep);</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;</div><div class="line"><a name="l00106"></a><span class="lineno"><a class="line" href="classSVF_1_1Steensgaard.html#a95ed4be99e201058cb6d994250d2629f"> 106</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set&lt;NodeID&gt;</a>&amp; <a class="code" href="classSVF_1_1Steensgaard.html#a95ed4be99e201058cb6d994250d2629f">getSubNodes</a>(<a class="code" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> <span class="keywordtype">id</span>)</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; {</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; <a class="code" href="classSVF_1_1Steensgaard.html#aca87fc74b6acb096a7165f105b14854b">nodeToSubsMap</a>[id].insert(<span class="keywordtype">id</span>);</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1Steensgaard.html#aca87fc74b6acb096a7165f105b14854b">nodeToSubsMap</a>[id];</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; }</div><div class="line"><a name="l00111"></a><span class="lineno"><a class="line" href="classSVF_1_1Steensgaard.html#abcb15d923ebbf289672b54b6f0963e03"> 111</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1Steensgaard.html#abcb15d923ebbf289672b54b6f0963e03">addSubNode</a>(<a class="code" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> node, <a class="code" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> sub)</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; {</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; <a class="code" href="classSVF_1_1Steensgaard.html#aca87fc74b6acb096a7165f105b14854b">nodeToSubsMap</a>[node].insert(sub);</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; }</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;</div><div class="line"><a name="l00118"></a><span class="lineno"><a class="line" href="classSVF_1_1Steensgaard.html#a04530669bc548ae13bd8908fe4dbd3d2"> 118</a></span>&#160; <span class="keyword">static</span> <a class="code" href="classSVF_1_1Steensgaard.html">Steensgaard</a>* <a class="code" href="classSVF_1_1Steensgaard.html#a04530669bc548ae13bd8908fe4dbd3d2">steens</a>; <span class="comment">// static instance</span></div><div class="line"><a name="l00119"></a><span class="lineno"><a class="line" href="classSVF_1_1Steensgaard.html#a0dccd5cc44d4d56a035514e9251e70f6"> 119</a></span>&#160; NodeToEquivClassMap <a class="code" href="classSVF_1_1Steensgaard.html#a0dccd5cc44d4d56a035514e9251e70f6">nodeToECMap</a>;</div><div class="line"><a name="l00120"></a><span class="lineno"><a class="line" href="classSVF_1_1Steensgaard.html#aca87fc74b6acb096a7165f105b14854b"> 120</a></span>&#160; NodeToSubsMap <a class="code" href="classSVF_1_1Steensgaard.html#aca87fc74b6acb096a7165f105b14854b">nodeToSubsMap</a>;</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;};</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;} </div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* INCLUDE_WPA_STEENSGAARD_H_ */</span><span class="preprocessor"></span></div><div class="ttc" id="classSVF_1_1Steensgaard_html_a7e7493bd144746edb4fbe1292e8ba55f"><div class="ttname"><a href="classSVF_1_1Steensgaard.html#a7e7493bd144746edb4fbe1292e8ba55f">SVF::Steensgaard::classof</a></div><div class="ttdeci">static bool classof(const Steensgaard *)</div><div class="ttdoc">Methods for support type inquiry through isa, cast, and dyn_cast: </div><div class="ttdef"><b>Definition:</b> <a href="Steensgaard_8h_source.html#l00060">Steensgaard.h:60</a></div></div>
70
70
  <div class="ttc" id="Andersen_8h_html"><div class="ttname"><a href="Andersen_8h.html">Andersen.h</a></div></div>
71
- <div class="ttc" id="classSVF_1_1BVDataPTAImpl_html_ae94cea78b71fb75837ee2a17b5ed0e81"><div class="ttname"><a href="classSVF_1_1BVDataPTAImpl.html#ae94cea78b71fb75837ee2a17b5ed0e81">SVF::BVDataPTAImpl::getPTDataTy</a></div><div class="ttdeci">PTDataTy * getPTDataTy() const</div><div class="ttdoc">Get points-to data structure. </div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#l00151">PointerAnalysisImpl.h:151</a></div></div>
71
+ <div class="ttc" id="classSVF_1_1BVDataPTAImpl_html_ae94cea78b71fb75837ee2a17b5ed0e81"><div class="ttname"><a href="classSVF_1_1BVDataPTAImpl.html#ae94cea78b71fb75837ee2a17b5ed0e81">SVF::BVDataPTAImpl::getPTDataTy</a></div><div class="ttdeci">PTDataTy * getPTDataTy() const</div><div class="ttdoc">Get points-to data structure. </div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#l00150">PointerAnalysisImpl.h:150</a></div></div>
72
72
  <div class="ttc" id="classSVF_1_1Steensgaard_html_a966faa0548fe76d81a50339fffdd24c8"><div class="ttname"><a href="classSVF_1_1Steensgaard.html#a966faa0548fe76d81a50339fffdd24c8">SVF::Steensgaard::solveWorklist</a></div><div class="ttdeci">virtual void solveWorklist()</div><div class="ttdef"><b>Definition:</b> <a href="Steensgaard_8cpp_source.html#l00041">Steensgaard.cpp:41</a></div></div>
73
73
  <div class="ttc" id="namespaceSVF_html_a350ae9bf8606bdfe23c8679681b969dc"><div class="ttname"><a href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">SVF::NodeID</a></div><div class="ttdeci">unsigned NodeID</div><div class="ttdef"><b>Definition:</b> <a href="include_2MTA_2MTAResultValidator_8h_source.html#l00020">MTAResultValidator.h:20</a></div></div>
74
74
  <div class="ttc" id="classSVF_1_1Steensgaard_html_a191e77e62916d868b2af730264e26dd8"><div class="ttname"><a href="classSVF_1_1Steensgaard.html#a191e77e62916d868b2af730264e26dd8">SVF::Steensgaard::ecUnion</a></div><div class="ttdeci">void ecUnion(NodeID id, NodeID ec)</div><div class="ttdoc">merge node into equiv class and merge node&amp;#39;s pts into ec&amp;#39;s pts </div><div class="ttdef"><b>Definition:</b> <a href="Steensgaard_8cpp_source.html#l00096">Steensgaard.cpp:96</a></div></div>