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
@@ -288,12 +288,10 @@ Public Member Functions</h2></td></tr>
288
288
  <tr class="memitem:a25c68f9d2b88437778e854ff0d741d1b inherit pub_methods_classSVF_1_1BVDataPTAImpl"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1BVDataPTAImpl.html#a25c68f9d2b88437778e854ff0d741d1b">writeToFile</a> (const <a class="el" href="cJSON_8cpp.html#ae1adbce218e7a9d09164012443191d24">std::string</a> &amp;filename)</td></tr>
289
289
  <tr class="memdesc:a25c68f9d2b88437778e854ff0d741d1b inherit pub_methods_classSVF_1_1BVDataPTAImpl"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface for analysis result storage on filesystem. <a href="classSVF_1_1BVDataPTAImpl.html#a25c68f9d2b88437778e854ff0d741d1b">More...</a><br /></td></tr>
290
290
  <tr class="separator:a25c68f9d2b88437778e854ff0d741d1b inherit pub_methods_classSVF_1_1BVDataPTAImpl"><td class="memSeparator" colspan="2">&#160;</td></tr>
291
+ <tr class="memitem:a3279969934d6778a6cffe926ed724bfc inherit pub_methods_classSVF_1_1BVDataPTAImpl"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1BVDataPTAImpl.html#a3279969934d6778a6cffe926ed724bfc">writeObjVarToFile</a> (const <a class="el" href="cJSON_8cpp.html#ae1adbce218e7a9d09164012443191d24">std::string</a> &amp;filename)</td></tr>
292
+ <tr class="separator:a3279969934d6778a6cffe926ed724bfc inherit pub_methods_classSVF_1_1BVDataPTAImpl"><td class="memSeparator" colspan="2">&#160;</td></tr>
291
293
  <tr class="memitem:a290501006cb700db0e07dc577429c928 inherit pub_methods_classSVF_1_1BVDataPTAImpl"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1BVDataPTAImpl.html#a290501006cb700db0e07dc577429c928">readFromFile</a> (const <a class="el" href="cJSON_8cpp.html#ae1adbce218e7a9d09164012443191d24">std::string</a> &amp;filename)</td></tr>
292
294
  <tr class="separator:a290501006cb700db0e07dc577429c928 inherit pub_methods_classSVF_1_1BVDataPTAImpl"><td class="memSeparator" colspan="2">&#160;</td></tr>
293
- <tr class="memitem:aa0ca07204a31004fb876c6e18d1ac1ca inherit pub_methods_classSVF_1_1BVDataPTAImpl"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1BVDataPTAImpl.html#aa0ca07204a31004fb876c6e18d1ac1ca">writeToModule</a> ()</td></tr>
294
- <tr class="separator:aa0ca07204a31004fb876c6e18d1ac1ca inherit pub_methods_classSVF_1_1BVDataPTAImpl"><td class="memSeparator" colspan="2">&#160;</td></tr>
295
- <tr class="memitem:a857cdacfc8cafdeb1431bdfa077ef9b5 inherit pub_methods_classSVF_1_1BVDataPTAImpl"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1BVDataPTAImpl.html#a857cdacfc8cafdeb1431bdfa077ef9b5">readFromModule</a> ()</td></tr>
296
- <tr class="separator:a857cdacfc8cafdeb1431bdfa077ef9b5 inherit pub_methods_classSVF_1_1BVDataPTAImpl"><td class="memSeparator" colspan="2">&#160;</td></tr>
297
295
  <tr class="memitem:acd9a15c398be20db43ed9fd910bd1758 inherit pub_methods_classSVF_1_1BVDataPTAImpl"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1BVDataPTAImpl.html#acd9a15c398be20db43ed9fd910bd1758">dumpCPts</a> () override</td></tr>
298
296
  <tr class="memdesc:acd9a15c398be20db43ed9fd910bd1758 inherit pub_methods_classSVF_1_1BVDataPTAImpl"><td class="mdescLeft">&#160;</td><td class="mdescRight">dump and debug, print out conditional pts <a href="classSVF_1_1BVDataPTAImpl.html#acd9a15c398be20db43ed9fd910bd1758">More...</a><br /></td></tr>
299
297
  <tr class="separator:acd9a15c398be20db43ed9fd910bd1758 inherit pub_methods_classSVF_1_1BVDataPTAImpl"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -965,7 +963,7 @@ Additional Inherited Members</h2></td></tr>
965
963
  <div class="ttc" id="classSVF_1_1FlowSensitive_html_a88a111b6bc347d6562db7af8bd8f2f0e"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#a88a111b6bc347d6562db7af8bd8f2f0e">SVF::FlowSensitive::numOfProcessedGep</a></div><div class="ttdeci">u32_t numOfProcessedGep</div><div class="ttdoc">Number of processed Copy node. </div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8h_source.html#l00282">FlowSensitive.h:282</a></div></div>
966
964
  <div class="ttc" id="classSVF_1_1FlowSensitive_html_af71a5ae3aef022c569e89f40515072cf"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#af71a5ae3aef022c569e89f40515072cf">SVF::FlowSensitive::numOfProcessedMSSANode</a></div><div class="ttdeci">u32_t numOfProcessedMSSANode</div><div class="ttdoc">Number of processed formal ret node. </div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8h_source.html#l00288">FlowSensitive.h:288</a></div></div>
967
965
  <div class="ttc" id="classSVF_1_1FlowSensitive_html_a888d6334e5e226c634680e4c0674dcfb"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#a888d6334e5e226c634680e4c0674dcfb">SVF::FlowSensitive::copyTime</a></div><div class="ttdeci">double copyTime</div><div class="ttdoc">time of handling copy edges </div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8h_source.html#l00302">FlowSensitive.h:302</a></div></div>
968
- <div class="ttc" id="classSVF_1_1BVDataPTAImpl_html_ab0e1242aadfe1e16a2bd1445658a5476"><div class="ttname"><a href="classSVF_1_1BVDataPTAImpl.html#ab0e1242aadfe1e16a2bd1445658a5476">SVF::BVDataPTAImpl::BVDataPTAImpl</a></div><div class="ttdeci">BVDataPTAImpl(SVFIR *pag, PointerAnalysis::PTATY type, bool alias_check=true)</div><div class="ttdoc">Constructor. </div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8cpp_source.html#l00046">PointerAnalysisImpl.cpp:46</a></div></div>
966
+ <div class="ttc" id="classSVF_1_1BVDataPTAImpl_html_ab0e1242aadfe1e16a2bd1445658a5476"><div class="ttname"><a href="classSVF_1_1BVDataPTAImpl.html#ab0e1242aadfe1e16a2bd1445658a5476">SVF::BVDataPTAImpl::BVDataPTAImpl</a></div><div class="ttdeci">BVDataPTAImpl(SVFIR *pag, PointerAnalysis::PTATY type, bool alias_check=true)</div><div class="ttdoc">Constructor. </div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8cpp_source.html#l00045">PointerAnalysisImpl.cpp:45</a></div></div>
969
967
  <div class="ttc" id="classSVF_1_1FlowSensitive_html_ac4d4b42bb96006801597f81ed3c4b337"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#ac4d4b42bb96006801597f81ed3c4b337">SVF::FlowSensitive::propagationTime</a></div><div class="ttdeci">double propagationTime</div><div class="ttdoc">time of points-to propagation. </div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8h_source.html#l00297">FlowSensitive.h:297</a></div></div>
970
968
  <div class="ttc" id="classSVF_1_1FlowSensitive_html_a19e017f3ed6429fa30687018e64dae54"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#a19e017f3ed6429fa30687018e64dae54">SVF::FlowSensitive::numOfProcessedCopy</a></div><div class="ttdeci">u32_t numOfProcessedCopy</div><div class="ttdoc">Number of processed Addr node. </div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8h_source.html#l00281">FlowSensitive.h:281</a></div></div>
971
969
  <div class="ttc" id="classSVF_1_1FlowSensitive_html_a82b76087363b26fbe749653935569de7"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#a82b76087363b26fbe749653935569de7">SVF::FlowSensitive::storeTime</a></div><div class="ttdeci">double storeTime</div><div class="ttdoc">time of store edges </div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8h_source.html#l00305">FlowSensitive.h:305</a></div></div>
@@ -1145,7 +1143,7 @@ Additional Inherited Members</h2></td></tr>
1145
1143
 
1146
1144
  <p class="definition">Definition at line <a class="el" href="FlowSensitive_8h_source.html#l00205">205</a> of file <a class="el" href="FlowSensitive_8h_source.html">FlowSensitive.h</a>.</p>
1147
1145
  <div class="fragment"><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; {</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; <a class="code" href="classSVF_1_1BVDataPTAImpl.html#a642613e98982259183d3f34a97f05502">getDFPTDataTy</a>()-&gt;<a class="code" href="classSVF_1_1DFPTData.html#ac20579e277a284158e2924fb5946cd86">clearAllDFOutUpdatedVar</a>(stmt-&gt;getId());</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; }</div><div class="ttc" id="classSVF_1_1DFPTData_html_ac20579e277a284158e2924fb5946cd86"><div class="ttname"><a href="classSVF_1_1DFPTData.html#ac20579e277a284158e2924fb5946cd86">SVF::DFPTData::clearAllDFOutUpdatedVar</a></div><div class="ttdeci">virtual void clearAllDFOutUpdatedVar(LocID)=0</div></div>
1148
- <div class="ttc" id="classSVF_1_1BVDataPTAImpl_html_a642613e98982259183d3f34a97f05502"><div class="ttname"><a href="classSVF_1_1BVDataPTAImpl.html#a642613e98982259183d3f34a97f05502">SVF::BVDataPTAImpl::getDFPTDataTy</a></div><div class="ttdeci">DFPTDataTy * getDFPTDataTy() const</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#l00174">PointerAnalysisImpl.h:174</a></div></div>
1146
+ <div class="ttc" id="classSVF_1_1BVDataPTAImpl_html_a642613e98982259183d3f34a97f05502"><div class="ttname"><a href="classSVF_1_1BVDataPTAImpl.html#a642613e98982259183d3f34a97f05502">SVF::BVDataPTAImpl::getDFPTDataTy</a></div><div class="ttdeci">DFPTDataTy * getDFPTDataTy() const</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#l00173">PointerAnalysisImpl.h:173</a></div></div>
1149
1147
  </div><!-- fragment -->
1150
1148
  </div>
1151
1149
  </div>
@@ -1280,7 +1278,7 @@ Additional Inherited Members</h2></td></tr>
1280
1278
  <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>
1281
1279
  <div class="ttc" id="namespaceSVF_html_a61c01e2e687ab3a001fb806737583943aef15fd8989d8dd9576b3fbb2aabc118f"><div class="ttname"><a href="namespaceSVF.html#a61c01e2e687ab3a001fb806737583943aef15fd8989d8dd9576b3fbb2aabc118f">SVF::MayAlias</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00461">SVFType.h:461</a></div></div>
1282
1280
  <div class="ttc" id="namespaceSVF_html_a61c01e2e687ab3a001fb806737583943afdd83ddff93d38902f07775cd36df239"><div class="ttname"><a href="namespaceSVF.html#a61c01e2e687ab3a001fb806737583943afdd83ddff93d38902f07775cd36df239">SVF::NoAlias</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00460">SVFType.h:460</a></div></div>
1283
- <div class="ttc" id="classSVF_1_1BVDataPTAImpl_html_a236d3e9c894fd7c34c8d7a77ac11dd48"><div class="ttname"><a href="classSVF_1_1BVDataPTAImpl.html#a236d3e9c894fd7c34c8d7a77ac11dd48">SVF::BVDataPTAImpl::alias</a></div><div class="ttdeci">AliasResult alias(const SVFValue *V1, const SVFValue *V2) override</div><div class="ttdoc">Interface expose to users of our pointer analysis, given Value infos. </div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8cpp_source.html#l00514">PointerAnalysisImpl.cpp:514</a></div></div>
1281
+ <div class="ttc" id="classSVF_1_1BVDataPTAImpl_html_a236d3e9c894fd7c34c8d7a77ac11dd48"><div class="ttname"><a href="classSVF_1_1BVDataPTAImpl.html#a236d3e9c894fd7c34c8d7a77ac11dd48">SVF::BVDataPTAImpl::alias</a></div><div class="ttdeci">AliasResult alias(const SVFValue *V1, const SVFValue *V2) override</div><div class="ttdoc">Interface expose to users of our pointer analysis, given Value infos. </div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8cpp_source.html#l00538">PointerAnalysisImpl.cpp:538</a></div></div>
1284
1282
  </div><!-- fragment -->
1285
1283
  </div>
1286
1284
  </div>
@@ -1347,9 +1345,9 @@ Additional Inherited Members</h2></td></tr>
1347
1345
  <p>Reimplemented in <a class="el" href="classSVF_1_1VersionedFlowSensitive.html#ad955fda89f4f749151a1bd14562b03f6">SVF::VersionedFlowSensitive</a>.</p>
1348
1346
 
1349
1347
  <p class="definition">Definition at line <a class="el" href="FlowSensitive_8cpp_source.html#l00121">121</a> of file <a class="el" href="FlowSensitive_8cpp_source.html">FlowSensitive.cpp</a>.</p>
1350
- <div class="fragment"><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; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1Options.html#a3061c75f7491dd737222b1b877721070">Options::DumpVFG</a>)</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; <a class="code" href="classSVF_1_1FlowSensitive.html#aae032e5f5d53b131d0112dc8faa464a9">svfg</a>-&gt;<a class="code" href="classSVF_1_1SVFG.html#a5fdaddc52e7342b834d76d64c1a1e498">dump</a>(<span class="stringliteral">&quot;fs_solved&quot;</span>, <span class="keyword">true</span>);</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; <a class="code" href="namespaceSVF.html#a1811127aebdb9c926e39d155e20b3dc0">NodeStack</a>&amp; <a class="code" href="classSVF_1_1WPAFSSolver.html#a2cb80102611c663c4daddd68b4f4b75f">nodeStack</a> = <a class="code" href="classSVF_1_1WPASolver.html#aaa932894d00b69cfa741f9987a9cc6b8">WPASolver&lt;SVFG*&gt;::SCCDetect</a>();</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; <span class="keywordflow">while</span> (nodeStack.empty() == <span class="keyword">false</span>)</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; {</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; <a class="code" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> rep = nodeStack.top();</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; nodeStack.pop();</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SparseBitVector.html">NodeBS</a>&amp; subNodes = <a class="code" href="classSVF_1_1WPASolver.html#a37ca8a99b8f83fba796293e6e13b0953">getSCCDetector</a>()-&gt;<a class="code" href="classSVF_1_1SCCDetection.html#a6ab5eff6a576e6d8703c1ea29b7f425d">subNodes</a>(rep);</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; <span class="keywordflow">if</span> (subNodes.<a class="code" href="classSVF_1_1SparseBitVector.html#a9f96e6a886fa69e07cda5dbfaed8b7c9">count</a>() &gt; <a class="code" href="classSVF_1_1FlowSensitive.html#aa3d4703756a6297ab5c0756172024fe4">maxSCCSize</a>)</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; <a class="code" href="classSVF_1_1FlowSensitive.html#aa3d4703756a6297ab5c0756172024fe4">maxSCCSize</a> = subNodes.<a class="code" href="classSVF_1_1SparseBitVector.html#a9f96e6a886fa69e07cda5dbfaed8b7c9">count</a>();</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; <span class="keywordflow">if</span> (subNodes.<a class="code" href="classSVF_1_1SparseBitVector.html#a9f96e6a886fa69e07cda5dbfaed8b7c9">count</a>() &gt; 1)</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; {</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; <a class="code" href="classSVF_1_1FlowSensitive.html#a9f3fe97202db8170fa9f47c5684bce75">numOfNodesInSCC</a> += subNodes.<a class="code" href="classSVF_1_1SparseBitVector.html#a9f96e6a886fa69e07cda5dbfaed8b7c9">count</a>();</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; <a class="code" href="classSVF_1_1FlowSensitive.html#a0ac955bf06261eec1c6bb78ec99652e3">numOfSCC</a>++;</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; }</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; }</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; <span class="comment">// TODO: check -stat too.</span></div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1Options.html#a9dc372635fc6f5ea2d902fc5c49fca8a">Options::ClusterFs</a>)</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; {</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map&lt;std::string, std::string&gt;</a> stats;</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1BVDataPTAImpl.html#acfdb43f20bbcababc928cc4df93a8483">PTDataTy</a> *ptd = <a class="code" href="classSVF_1_1BVDataPTAImpl.html#ae94cea78b71fb75837ee2a17b5ed0e81">getPTDataTy</a>();</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; <span class="comment">// TODO: should we use liveOnly?</span></div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map&lt;PointsTo, unsigned&gt;</a> allPts = ptd-&gt;getAllPts(<span class="keyword">true</span>);</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; <span class="comment">// TODO: parameterise final arg.</span></div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; <a class="code" href="classSVF_1_1NodeIDAllocator_1_1Clusterer.html#acbbc5c04c79846fe1cc46a3bd5a65aba">NodeIDAllocator::Clusterer::evaluate</a>(*<a class="code" href="classSVF_1_1PointsTo.html#ae349a9ce6a8739925baffd83d1878b0e">PointsTo::getCurrentBestNodeMapping</a>(), allPts, stats, <span class="keyword">true</span>);</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; <a class="code" href="classSVF_1_1NodeIDAllocator_1_1Clusterer.html#ac10cbda6a84ce890c9946a5ff35800b7">NodeIDAllocator::Clusterer::printStats</a>(<span class="stringliteral">&quot;post-main: best&quot;</span>, stats);</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160;</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; <span class="comment">// Do the same for the candidates. TODO: probably temporary for eval. purposes.</span></div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; <span class="keywordflow">for</span> (std::pair&lt;<a class="code" href="fastcluster_8h.html#a4205a14ad66b3320d2e94c61d74913dd">hclust_fast_methods</a>, std::vector&lt;NodeID&gt;&gt; &amp;candidate : <a class="code" href="classSVF_1_1FlowSensitive.html#adba7ffe68ae7edce9b3aa896f978da6b">candidateMappings</a>)</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; {</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; <span class="comment">// Can reuse stats, since we&#39;re always filling it with `evaluate`, it will always be overwritten.</span></div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; <a class="code" href="classSVF_1_1NodeIDAllocator_1_1Clusterer.html#acbbc5c04c79846fe1cc46a3bd5a65aba">NodeIDAllocator::Clusterer::evaluate</a>(candidate.second, allPts, stats, <span class="keyword">true</span>);</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; <a class="code" href="classSVF_1_1NodeIDAllocator_1_1Clusterer.html#ac10cbda6a84ce890c9946a5ff35800b7">NodeIDAllocator::Clusterer::printStats</a>(<span class="stringliteral">&quot;post-main: candidate &quot;</span> + <a class="code" href="namespaceSVF_1_1SVFUtil.html#a14a4c5124f2fd03ca3d898e2acd54160">SVFUtil::hclustMethodToString</a>(candidate.first), stats);</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; }</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; }</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160;</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; <a class="code" href="classSVF_1_1BVDataPTAImpl.html#a638f58c3bf6efdb3787fafaa4e6f19ca">BVDataPTAImpl::finalize</a>();</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;}</div><div class="ttc" id="classSVF_1_1BVDataPTAImpl_html_a638f58c3bf6efdb3787fafaa4e6f19ca"><div class="ttname"><a href="classSVF_1_1BVDataPTAImpl.html#a638f58c3bf6efdb3787fafaa4e6f19ca">SVF::BVDataPTAImpl::finalize</a></div><div class="ttdeci">void finalize() override</div><div class="ttdoc">Finalization of pointer analysis, and normalize points-to information to Bit Vector representation...</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8cpp_source.html#l00093">PointerAnalysisImpl.cpp:93</a></div></div>
1348
+ <div class="fragment"><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; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1Options.html#a3061c75f7491dd737222b1b877721070">Options::DumpVFG</a>)</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; <a class="code" href="classSVF_1_1FlowSensitive.html#aae032e5f5d53b131d0112dc8faa464a9">svfg</a>-&gt;<a class="code" href="classSVF_1_1SVFG.html#a5fdaddc52e7342b834d76d64c1a1e498">dump</a>(<span class="stringliteral">&quot;fs_solved&quot;</span>, <span class="keyword">true</span>);</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; <a class="code" href="namespaceSVF.html#a1811127aebdb9c926e39d155e20b3dc0">NodeStack</a>&amp; <a class="code" href="classSVF_1_1WPAFSSolver.html#a2cb80102611c663c4daddd68b4f4b75f">nodeStack</a> = <a class="code" href="classSVF_1_1WPASolver.html#aaa932894d00b69cfa741f9987a9cc6b8">WPASolver&lt;SVFG*&gt;::SCCDetect</a>();</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; <span class="keywordflow">while</span> (nodeStack.empty() == <span class="keyword">false</span>)</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; {</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; <a class="code" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> rep = nodeStack.top();</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; nodeStack.pop();</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SparseBitVector.html">NodeBS</a>&amp; subNodes = <a class="code" href="classSVF_1_1WPASolver.html#a37ca8a99b8f83fba796293e6e13b0953">getSCCDetector</a>()-&gt;<a class="code" href="classSVF_1_1SCCDetection.html#a6ab5eff6a576e6d8703c1ea29b7f425d">subNodes</a>(rep);</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; <span class="keywordflow">if</span> (subNodes.<a class="code" href="classSVF_1_1SparseBitVector.html#a9f96e6a886fa69e07cda5dbfaed8b7c9">count</a>() &gt; <a class="code" href="classSVF_1_1FlowSensitive.html#aa3d4703756a6297ab5c0756172024fe4">maxSCCSize</a>)</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; <a class="code" href="classSVF_1_1FlowSensitive.html#aa3d4703756a6297ab5c0756172024fe4">maxSCCSize</a> = subNodes.<a class="code" href="classSVF_1_1SparseBitVector.html#a9f96e6a886fa69e07cda5dbfaed8b7c9">count</a>();</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; <span class="keywordflow">if</span> (subNodes.<a class="code" href="classSVF_1_1SparseBitVector.html#a9f96e6a886fa69e07cda5dbfaed8b7c9">count</a>() &gt; 1)</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; {</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; <a class="code" href="classSVF_1_1FlowSensitive.html#a9f3fe97202db8170fa9f47c5684bce75">numOfNodesInSCC</a> += subNodes.<a class="code" href="classSVF_1_1SparseBitVector.html#a9f96e6a886fa69e07cda5dbfaed8b7c9">count</a>();</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; <a class="code" href="classSVF_1_1FlowSensitive.html#a0ac955bf06261eec1c6bb78ec99652e3">numOfSCC</a>++;</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; }</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; }</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; <span class="comment">// TODO: check -stat too.</span></div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1Options.html#a9dc372635fc6f5ea2d902fc5c49fca8a">Options::ClusterFs</a>)</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; {</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map&lt;std::string, std::string&gt;</a> stats;</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1BVDataPTAImpl.html#acfdb43f20bbcababc928cc4df93a8483">PTDataTy</a> *ptd = <a class="code" href="classSVF_1_1BVDataPTAImpl.html#ae94cea78b71fb75837ee2a17b5ed0e81">getPTDataTy</a>();</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; <span class="comment">// TODO: should we use liveOnly?</span></div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map&lt;PointsTo, unsigned&gt;</a> allPts = ptd-&gt;getAllPts(<span class="keyword">true</span>);</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; <span class="comment">// TODO: parameterise final arg.</span></div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; <a class="code" href="classSVF_1_1NodeIDAllocator_1_1Clusterer.html#acbbc5c04c79846fe1cc46a3bd5a65aba">NodeIDAllocator::Clusterer::evaluate</a>(*<a class="code" href="classSVF_1_1PointsTo.html#ae349a9ce6a8739925baffd83d1878b0e">PointsTo::getCurrentBestNodeMapping</a>(), allPts, stats, <span class="keyword">true</span>);</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; <a class="code" href="classSVF_1_1NodeIDAllocator_1_1Clusterer.html#ac10cbda6a84ce890c9946a5ff35800b7">NodeIDAllocator::Clusterer::printStats</a>(<span class="stringliteral">&quot;post-main: best&quot;</span>, stats);</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160;</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; <span class="comment">// Do the same for the candidates. TODO: probably temporary for eval. purposes.</span></div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; <span class="keywordflow">for</span> (std::pair&lt;<a class="code" href="fastcluster_8h.html#a4205a14ad66b3320d2e94c61d74913dd">hclust_fast_methods</a>, std::vector&lt;NodeID&gt;&gt; &amp;candidate : <a class="code" href="classSVF_1_1FlowSensitive.html#adba7ffe68ae7edce9b3aa896f978da6b">candidateMappings</a>)</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; {</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; <span class="comment">// Can reuse stats, since we&#39;re always filling it with `evaluate`, it will always be overwritten.</span></div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; <a class="code" href="classSVF_1_1NodeIDAllocator_1_1Clusterer.html#acbbc5c04c79846fe1cc46a3bd5a65aba">NodeIDAllocator::Clusterer::evaluate</a>(candidate.second, allPts, stats, <span class="keyword">true</span>);</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; <a class="code" href="classSVF_1_1NodeIDAllocator_1_1Clusterer.html#ac10cbda6a84ce890c9946a5ff35800b7">NodeIDAllocator::Clusterer::printStats</a>(<span class="stringliteral">&quot;post-main: candidate &quot;</span> + <a class="code" href="namespaceSVF_1_1SVFUtil.html#a14a4c5124f2fd03ca3d898e2acd54160">SVFUtil::hclustMethodToString</a>(candidate.first), stats);</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; }</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; }</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160;</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; <a class="code" href="classSVF_1_1BVDataPTAImpl.html#a638f58c3bf6efdb3787fafaa4e6f19ca">BVDataPTAImpl::finalize</a>();</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;}</div><div class="ttc" id="classSVF_1_1BVDataPTAImpl_html_a638f58c3bf6efdb3787fafaa4e6f19ca"><div class="ttname"><a href="classSVF_1_1BVDataPTAImpl.html#a638f58c3bf6efdb3787fafaa4e6f19ca">SVF::BVDataPTAImpl::finalize</a></div><div class="ttdeci">void finalize() override</div><div class="ttdoc">Finalization of pointer analysis, and normalize points-to information to Bit Vector representation...</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8cpp_source.html#l00092">PointerAnalysisImpl.cpp:92</a></div></div>
1351
1349
  <div class="ttc" id="classSVF_1_1SVFG_html_a5fdaddc52e7342b834d76d64c1a1e498"><div class="ttname"><a href="classSVF_1_1SVFG.html#a5fdaddc52e7342b834d76d64c1a1e498">SVF::SVFG::dump</a></div><div class="ttdeci">void dump(const std::string &amp;file, bool simple=false)</div><div class="ttdoc">Dump graph into dot file. </div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8cpp_source.html#l00574">SVFG.cpp:574</a></div></div>
1352
- <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>
1350
+ <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>
1353
1351
  <div class="ttc" id="classSVF_1_1FlowSensitive_html_aae032e5f5d53b131d0112dc8faa464a9"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#aae032e5f5d53b131d0112dc8faa464a9">SVF::FlowSensitive::svfg</a></div><div class="ttdeci">SVFG * svfg</div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8h_source.html#l00239">FlowSensitive.h:239</a></div></div>
1354
1352
  <div class="ttc" id="classSVF_1_1SCCDetection_html_a6ab5eff6a576e6d8703c1ea29b7f425d"><div class="ttname"><a href="classSVF_1_1SCCDetection.html#a6ab5eff6a576e6d8703c1ea29b7f425d">SVF::SCCDetection::subNodes</a></div><div class="ttdeci">const NodeBS &amp; subNodes(NodeID n) const</div><div class="ttdoc">get all subnodes in one scc, if size is empty insert itself into the set </div><div class="ttdef"><b>Definition:</b> <a href="SCC_8h_source.html#l00173">SCC.h:173</a></div></div>
1355
1353
  <div class="ttc" id="classSVF_1_1Options_html_a9dc372635fc6f5ea2d902fc5c49fca8a"><div class="ttname"><a href="classSVF_1_1Options.html#a9dc372635fc6f5ea2d902fc5c49fca8a">SVF::Options::ClusterFs</a></div><div class="ttdeci">static const llvm::cl::opt&lt; bool &gt; ClusterFs</div><div class="ttdoc">Whether to cluster FS or VFS with the auxiliary Andersen&amp;#39;s. </div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00044">Options.h:44</a></div></div>
@@ -1413,7 +1411,7 @@ Additional Inherited Members</h2></td></tr>
1413
1411
 
1414
1412
  <p class="definition">Definition at line <a class="el" href="FlowSensitive_8h_source.html#l00242">242</a> of file <a class="el" href="FlowSensitive_8h_source.html">FlowSensitive.h</a>.</p>
1415
1413
  <div class="fragment"><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; {</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1BVDataPTAImpl.html#a642613e98982259183d3f34a97f05502">getDFPTDataTy</a>()-&gt;<a class="code" href="classSVF_1_1DFPTData.html#a259a92ea46f1d3a1dbd4a74ff07718d2">getDFInPtsSet</a>(stmt-&gt;getId(),node);</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; }</div><div class="ttc" id="classSVF_1_1DFPTData_html_a259a92ea46f1d3a1dbd4a74ff07718d2"><div class="ttname"><a href="classSVF_1_1DFPTData.html#a259a92ea46f1d3a1dbd4a74ff07718d2">SVF::DFPTData::getDFInPtsSet</a></div><div class="ttdeci">virtual const DataSet &amp; getDFInPtsSet(LocID loc, const Key &amp;var)=0</div></div>
1416
- <div class="ttc" id="classSVF_1_1BVDataPTAImpl_html_a642613e98982259183d3f34a97f05502"><div class="ttname"><a href="classSVF_1_1BVDataPTAImpl.html#a642613e98982259183d3f34a97f05502">SVF::BVDataPTAImpl::getDFPTDataTy</a></div><div class="ttdeci">DFPTDataTy * getDFPTDataTy() const</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#l00174">PointerAnalysisImpl.h:174</a></div></div>
1414
+ <div class="ttc" id="classSVF_1_1BVDataPTAImpl_html_a642613e98982259183d3f34a97f05502"><div class="ttname"><a href="classSVF_1_1BVDataPTAImpl.html#a642613e98982259183d3f34a97f05502">SVF::BVDataPTAImpl::getDFPTDataTy</a></div><div class="ttdeci">DFPTDataTy * getDFPTDataTy() const</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#l00173">PointerAnalysisImpl.h:173</a></div></div>
1417
1415
  </div><!-- fragment -->
1418
1416
  </div>
1419
1417
  </div>
@@ -1442,7 +1440,7 @@ Additional Inherited Members</h2></td></tr>
1442
1440
  <p>Get IN/OUT data flow map. May only be called when the backing is MUTABLE. </p>
1443
1441
 
1444
1442
  <p class="definition">Definition at line <a class="el" href="FlowSensitive_8h_source.html#l00255">255</a> of file <a class="el" href="FlowSensitive_8h_source.html">FlowSensitive.h</a>.</p>
1445
- <div class="fragment"><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; {</div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1BVDataPTAImpl.html#acbb979edee9427efa2a7c0dbd881c483">getMutDFPTDataTy</a>()-&gt;<a class="code" href="classSVF_1_1MutableDFPTData.html#ae999df6f94a097f1fcb36979327790de">getDFIn</a>();</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; }</div><div class="ttc" id="classSVF_1_1BVDataPTAImpl_html_acbb979edee9427efa2a7c0dbd881c483"><div class="ttname"><a href="classSVF_1_1BVDataPTAImpl.html#acbb979edee9427efa2a7c0dbd881c483">SVF::BVDataPTAImpl::getMutDFPTDataTy</a></div><div class="ttdeci">MutDFPTDataTy * getMutDFPTDataTy() const</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#l00181">PointerAnalysisImpl.h:181</a></div></div>
1443
+ <div class="fragment"><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; {</div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1BVDataPTAImpl.html#acbb979edee9427efa2a7c0dbd881c483">getMutDFPTDataTy</a>()-&gt;<a class="code" href="classSVF_1_1MutableDFPTData.html#ae999df6f94a097f1fcb36979327790de">getDFIn</a>();</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; }</div><div class="ttc" id="classSVF_1_1BVDataPTAImpl_html_acbb979edee9427efa2a7c0dbd881c483"><div class="ttname"><a href="classSVF_1_1BVDataPTAImpl.html#acbb979edee9427efa2a7c0dbd881c483">SVF::BVDataPTAImpl::getMutDFPTDataTy</a></div><div class="ttdeci">MutDFPTDataTy * getMutDFPTDataTy() const</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#l00180">PointerAnalysisImpl.h:180</a></div></div>
1446
1444
  <div class="ttc" id="classSVF_1_1MutableDFPTData_html_ae999df6f94a097f1fcb36979327790de"><div class="ttname"><a href="classSVF_1_1MutableDFPTData.html#ae999df6f94a097f1fcb36979327790de">SVF::MutableDFPTData::getDFIn</a></div><div class="ttdeci">const DFPtsMap &amp; getDFIn()</div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#l00454">MutablePointsToDS.h:454</a></div></div>
1447
1445
  </div><!-- fragment -->
1448
1446
  </div>
@@ -1483,7 +1481,7 @@ Additional Inherited Members</h2></td></tr>
1483
1481
 
1484
1482
  <p class="definition">Definition at line <a class="el" href="FlowSensitive_8h_source.html#l00246">246</a> of file <a class="el" href="FlowSensitive_8h_source.html">FlowSensitive.h</a>.</p>
1485
1483
  <div class="fragment"><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; {</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1BVDataPTAImpl.html#a642613e98982259183d3f34a97f05502">getDFPTDataTy</a>()-&gt;<a class="code" href="classSVF_1_1DFPTData.html#ad9b3bb99cfefb87424c408eae3ecfcec">getDFOutPtsSet</a>(stmt-&gt;getId(),node);</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; }</div><div class="ttc" id="classSVF_1_1DFPTData_html_ad9b3bb99cfefb87424c408eae3ecfcec"><div class="ttname"><a href="classSVF_1_1DFPTData.html#ad9b3bb99cfefb87424c408eae3ecfcec">SVF::DFPTData::getDFOutPtsSet</a></div><div class="ttdeci">virtual const DataSet &amp; getDFOutPtsSet(LocID loc, const Key &amp;var)=0</div></div>
1486
- <div class="ttc" id="classSVF_1_1BVDataPTAImpl_html_a642613e98982259183d3f34a97f05502"><div class="ttname"><a href="classSVF_1_1BVDataPTAImpl.html#a642613e98982259183d3f34a97f05502">SVF::BVDataPTAImpl::getDFPTDataTy</a></div><div class="ttdeci">DFPTDataTy * getDFPTDataTy() const</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#l00174">PointerAnalysisImpl.h:174</a></div></div>
1484
+ <div class="ttc" id="classSVF_1_1BVDataPTAImpl_html_a642613e98982259183d3f34a97f05502"><div class="ttname"><a href="classSVF_1_1BVDataPTAImpl.html#a642613e98982259183d3f34a97f05502">SVF::BVDataPTAImpl::getDFPTDataTy</a></div><div class="ttdeci">DFPTDataTy * getDFPTDataTy() const</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#l00173">PointerAnalysisImpl.h:173</a></div></div>
1487
1485
  </div><!-- fragment -->
1488
1486
  </div>
1489
1487
  </div>
@@ -1511,7 +1509,7 @@ Additional Inherited Members</h2></td></tr>
1511
1509
  </div><div class="memdoc">
1512
1510
 
1513
1511
  <p class="definition">Definition at line <a class="el" href="FlowSensitive_8h_source.html#l00259">259</a> of file <a class="el" href="FlowSensitive_8h_source.html">FlowSensitive.h</a>.</p>
1514
- <div class="fragment"><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; {</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1BVDataPTAImpl.html#acbb979edee9427efa2a7c0dbd881c483">getMutDFPTDataTy</a>()-&gt;<a class="code" href="classSVF_1_1MutableDFPTData.html#a6d02392602cf7956ff41e345518d683c">getDFOut</a>();</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; }</div><div class="ttc" id="classSVF_1_1BVDataPTAImpl_html_acbb979edee9427efa2a7c0dbd881c483"><div class="ttname"><a href="classSVF_1_1BVDataPTAImpl.html#acbb979edee9427efa2a7c0dbd881c483">SVF::BVDataPTAImpl::getMutDFPTDataTy</a></div><div class="ttdeci">MutDFPTDataTy * getMutDFPTDataTy() const</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#l00181">PointerAnalysisImpl.h:181</a></div></div>
1512
+ <div class="fragment"><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; {</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1BVDataPTAImpl.html#acbb979edee9427efa2a7c0dbd881c483">getMutDFPTDataTy</a>()-&gt;<a class="code" href="classSVF_1_1MutableDFPTData.html#a6d02392602cf7956ff41e345518d683c">getDFOut</a>();</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; }</div><div class="ttc" id="classSVF_1_1BVDataPTAImpl_html_acbb979edee9427efa2a7c0dbd881c483"><div class="ttname"><a href="classSVF_1_1BVDataPTAImpl.html#acbb979edee9427efa2a7c0dbd881c483">SVF::BVDataPTAImpl::getMutDFPTDataTy</a></div><div class="ttdeci">MutDFPTDataTy * getMutDFPTDataTy() const</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#l00180">PointerAnalysisImpl.h:180</a></div></div>
1515
1513
  <div class="ttc" id="classSVF_1_1MutableDFPTData_html_a6d02392602cf7956ff41e345518d683c"><div class="ttname"><a href="classSVF_1_1MutableDFPTData.html#a6d02392602cf7956ff41e345518d683c">SVF::MutableDFPTData::getDFOut</a></div><div class="ttdeci">const DFPtsMap &amp; getDFOut()</div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#l00458">MutablePointsToDS.h:458</a></div></div>
1516
1514
  </div><!-- fragment -->
1517
1515
  </div>
@@ -2309,7 +2307,7 @@ Additional Inherited Members</h2></td></tr>
2309
2307
 
2310
2308
  <p class="definition">Definition at line <a class="el" href="FlowSensitive_8h_source.html#l00175">175</a> of file <a class="el" href="FlowSensitive_8h_source.html">FlowSensitive.h</a>.</p>
2311
2309
  <div class="fragment"><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; {</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1BVDataPTAImpl.html#a642613e98982259183d3f34a97f05502">getDFPTDataTy</a>()-&gt;<a class="code" href="classSVF_1_1DFPTData.html#a506a2be8f909663d59245254bddea00b">updateAllDFInFromIn</a>(srcStmt-&gt;getId(), srcVar, dstStmt-&gt;getId(),dstVar);</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; }</div><div class="ttc" id="classSVF_1_1DFPTData_html_a506a2be8f909663d59245254bddea00b"><div class="ttname"><a href="classSVF_1_1DFPTData.html#a506a2be8f909663d59245254bddea00b">SVF::DFPTData::updateAllDFInFromIn</a></div><div class="ttdeci">virtual bool updateAllDFInFromIn(LocID srcLoc, const Key &amp;srcVar, LocID dstLoc, const Key &amp;dstVar)=0</div><div class="ttdoc">Union (IN[dstLoc::dstVar], IN[srcLoc:srcVar]. There is no flag check, unlike the above. </div></div>
2312
- <div class="ttc" id="classSVF_1_1BVDataPTAImpl_html_a642613e98982259183d3f34a97f05502"><div class="ttname"><a href="classSVF_1_1BVDataPTAImpl.html#a642613e98982259183d3f34a97f05502">SVF::BVDataPTAImpl::getDFPTDataTy</a></div><div class="ttdeci">DFPTDataTy * getDFPTDataTy() const</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#l00174">PointerAnalysisImpl.h:174</a></div></div>
2310
+ <div class="ttc" id="classSVF_1_1BVDataPTAImpl_html_a642613e98982259183d3f34a97f05502"><div class="ttname"><a href="classSVF_1_1BVDataPTAImpl.html#a642613e98982259183d3f34a97f05502">SVF::BVDataPTAImpl::getDFPTDataTy</a></div><div class="ttdeci">DFPTDataTy * getDFPTDataTy() const</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#l00173">PointerAnalysisImpl.h:173</a></div></div>
2313
2311
  </div><!-- fragment -->
2314
2312
  </div>
2315
2313
  </div>
@@ -2361,7 +2359,7 @@ Additional Inherited Members</h2></td></tr>
2361
2359
 
2362
2360
  <p class="definition">Definition at line <a class="el" href="FlowSensitive_8h_source.html#l00171">171</a> of file <a class="el" href="FlowSensitive_8h_source.html">FlowSensitive.h</a>.</p>
2363
2361
  <div class="fragment"><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; {</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1BVDataPTAImpl.html#a642613e98982259183d3f34a97f05502">getDFPTDataTy</a>()-&gt;<a class="code" href="classSVF_1_1DFPTData.html#a96a5d7e867095b3c215c73599fd31c19">updateAllDFInFromOut</a>(srcStmt-&gt;getId(), srcVar, dstStmt-&gt;getId(),dstVar);</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; }</div><div class="ttc" id="classSVF_1_1DFPTData_html_a96a5d7e867095b3c215c73599fd31c19"><div class="ttname"><a href="classSVF_1_1DFPTData.html#a96a5d7e867095b3c215c73599fd31c19">SVF::DFPTData::updateAllDFInFromOut</a></div><div class="ttdeci">virtual bool updateAllDFInFromOut(LocID srcLoc, const Key &amp;srcVar, LocID dstLoc, const Key &amp;dstVar)=0</div><div class="ttdoc">Union (IN[dstLoc::dstVar], OUT[srcLoc:srcVar]. There is no flag check, unlike the above...</div></div>
2364
- <div class="ttc" id="classSVF_1_1BVDataPTAImpl_html_a642613e98982259183d3f34a97f05502"><div class="ttname"><a href="classSVF_1_1BVDataPTAImpl.html#a642613e98982259183d3f34a97f05502">SVF::BVDataPTAImpl::getDFPTDataTy</a></div><div class="ttdeci">DFPTDataTy * getDFPTDataTy() const</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#l00174">PointerAnalysisImpl.h:174</a></div></div>
2362
+ <div class="ttc" id="classSVF_1_1BVDataPTAImpl_html_a642613e98982259183d3f34a97f05502"><div class="ttname"><a href="classSVF_1_1BVDataPTAImpl.html#a642613e98982259183d3f34a97f05502">SVF::BVDataPTAImpl::getDFPTDataTy</a></div><div class="ttdeci">DFPTDataTy * getDFPTDataTy() const</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#l00173">PointerAnalysisImpl.h:173</a></div></div>
2365
2363
  </div><!-- fragment -->
2366
2364
  </div>
2367
2365
  </div>
@@ -2675,7 +2673,7 @@ Additional Inherited Members</h2></td></tr>
2675
2673
 
2676
2674
  <p class="definition">Definition at line <a class="el" href="FlowSensitive_8h_source.html#l00160">160</a> of file <a class="el" href="FlowSensitive_8h_source.html">FlowSensitive.h</a>.</p>
2677
2675
  <div class="fragment"><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; {</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1BVDataPTAImpl.html#a642613e98982259183d3f34a97f05502">getDFPTDataTy</a>()-&gt;<a class="code" href="classSVF_1_1DFPTData.html#a7e4ae809b40d55448de0103746254158">updateAllDFOutFromIn</a>(node-&gt;getId(),singleton,<span class="keyword">true</span>);</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; }</div><div class="ttc" id="classSVF_1_1DFPTData_html_a7e4ae809b40d55448de0103746254158"><div class="ttname"><a href="classSVF_1_1DFPTData.html#a7e4ae809b40d55448de0103746254158">SVF::DFPTData::updateAllDFOutFromIn</a></div><div class="ttdeci">virtual bool updateAllDFOutFromIn(LocID loc, const Key &amp;singleton, bool strongUpdates)=0</div><div class="ttdoc">For each variable var in IN at loc, do updateDFOutFromIn(loc, var, loc, var). </div></div>
2678
- <div class="ttc" id="classSVF_1_1BVDataPTAImpl_html_a642613e98982259183d3f34a97f05502"><div class="ttname"><a href="classSVF_1_1BVDataPTAImpl.html#a642613e98982259183d3f34a97f05502">SVF::BVDataPTAImpl::getDFPTDataTy</a></div><div class="ttdeci">DFPTDataTy * getDFPTDataTy() const</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#l00174">PointerAnalysisImpl.h:174</a></div></div>
2676
+ <div class="ttc" id="classSVF_1_1BVDataPTAImpl_html_a642613e98982259183d3f34a97f05502"><div class="ttname"><a href="classSVF_1_1BVDataPTAImpl.html#a642613e98982259183d3f34a97f05502">SVF::BVDataPTAImpl::getDFPTDataTy</a></div><div class="ttdeci">DFPTDataTy * getDFPTDataTy() const</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#l00173">PointerAnalysisImpl.h:173</a></div></div>
2679
2677
  </div><!-- fragment -->
2680
2678
  </div>
2681
2679
  </div>
@@ -2746,7 +2744,7 @@ Additional Inherited Members</h2></td></tr>
2746
2744
 
2747
2745
  <p class="definition">Definition at line <a class="el" href="FlowSensitive_8h_source.html#l00196">196</a> of file <a class="el" href="FlowSensitive_8h_source.html">FlowSensitive.h</a>.</p>
2748
2746
  <div class="fragment"><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; {</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1BVDataPTAImpl.html#a642613e98982259183d3f34a97f05502">getDFPTDataTy</a>()-&gt;<a class="code" href="classSVF_1_1DFPTData.html#aaa6f67ff5daf7d71a3ad62316a7dd872">updateTLVPts</a>(stmt-&gt;getId(),srcVar,dstVar);</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; }</div><div class="ttc" id="classSVF_1_1DFPTData_html_aaa6f67ff5daf7d71a3ad62316a7dd872"><div class="ttname"><a href="classSVF_1_1DFPTData.html#aaa6f67ff5daf7d71a3ad62316a7dd872">SVF::DFPTData::updateTLVPts</a></div><div class="ttdeci">virtual bool updateTLVPts(LocID srcLoc, const Key &amp;srcVar, const Key &amp;dstVar)=0</div><div class="ttdoc">Update points-to set of top-level pointers with IN[srcLoc:srcVar]. </div></div>
2749
- <div class="ttc" id="classSVF_1_1BVDataPTAImpl_html_a642613e98982259183d3f34a97f05502"><div class="ttname"><a href="classSVF_1_1BVDataPTAImpl.html#a642613e98982259183d3f34a97f05502">SVF::BVDataPTAImpl::getDFPTDataTy</a></div><div class="ttdeci">DFPTDataTy * getDFPTDataTy() const</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#l00174">PointerAnalysisImpl.h:174</a></div></div>
2747
+ <div class="ttc" id="classSVF_1_1BVDataPTAImpl_html_a642613e98982259183d3f34a97f05502"><div class="ttname"><a href="classSVF_1_1BVDataPTAImpl.html#a642613e98982259183d3f34a97f05502">SVF::BVDataPTAImpl::getDFPTDataTy</a></div><div class="ttdeci">DFPTDataTy * getDFPTDataTy() const</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#l00173">PointerAnalysisImpl.h:173</a></div></div>
2750
2748
  </div><!-- fragment -->
2751
2749
  </div>
2752
2750
  </div>
@@ -2792,7 +2790,7 @@ Additional Inherited Members</h2></td></tr>
2792
2790
 
2793
2791
  <p class="definition">Definition at line <a class="el" href="FlowSensitive_8h_source.html#l00200">200</a> of file <a class="el" href="FlowSensitive_8h_source.html">FlowSensitive.h</a>.</p>
2794
2792
  <div class="fragment"><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; {</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1BVDataPTAImpl.html#a642613e98982259183d3f34a97f05502">getDFPTDataTy</a>()-&gt;<a class="code" href="classSVF_1_1DFPTData.html#a09bc4b7eef592af2c2c84b60029b5b52">updateATVPts</a>(srcVar,stmt-&gt;getId(),dstVar);</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; }</div><div class="ttc" id="classSVF_1_1DFPTData_html_a09bc4b7eef592af2c2c84b60029b5b52"><div class="ttname"><a href="classSVF_1_1DFPTData.html#a09bc4b7eef592af2c2c84b60029b5b52">SVF::DFPTData::updateATVPts</a></div><div class="ttdeci">virtual bool updateATVPts(const Key &amp;srcVar, LocID dstLoc, const Key &amp;dstVar)=0</div><div class="ttdoc">Update address-taken variables OUT[dstLoc:dstVar] with points-to of top-level pointers. </div></div>
2795
- <div class="ttc" id="classSVF_1_1BVDataPTAImpl_html_a642613e98982259183d3f34a97f05502"><div class="ttname"><a href="classSVF_1_1BVDataPTAImpl.html#a642613e98982259183d3f34a97f05502">SVF::BVDataPTAImpl::getDFPTDataTy</a></div><div class="ttdeci">DFPTDataTy * getDFPTDataTy() const</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#l00174">PointerAnalysisImpl.h:174</a></div></div>
2793
+ <div class="ttc" id="classSVF_1_1BVDataPTAImpl_html_a642613e98982259183d3f34a97f05502"><div class="ttname"><a href="classSVF_1_1BVDataPTAImpl.html#a642613e98982259183d3f34a97f05502">SVF::BVDataPTAImpl::getDFPTDataTy</a></div><div class="ttdeci">DFPTDataTy * getDFPTDataTy() const</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#l00173">PointerAnalysisImpl.h:173</a></div></div>
2796
2794
  </div><!-- fragment -->
2797
2795
  </div>
2798
2796
  </div>
@@ -2828,7 +2826,7 @@ Additional Inherited Members</h2></td></tr>
2828
2826
 
2829
2827
  <p class="definition">Definition at line <a class="el" href="FlowSensitive_8cpp_source.html#l00640">640</a> of file <a class="el" href="FlowSensitive_8cpp_source.html">FlowSensitive.cpp</a>.</p>
2830
2828
  <div class="fragment"><div class="line"><a name="l00641"></a><span class="lineno"> 641</span>&#160;{</div><div class="line"><a name="l00642"></a><span class="lineno"> 642</span>&#160; <span class="keywordtype">double</span> start = <a class="code" href="classSVF_1_1PointerAnalysis.html#a5ec3d9bf1fc81346c9df29638daedc0f">stat</a>-&gt;<a class="code" href="classSVF_1_1SVFStat.html#ac9d390c417df6f6af6b274618b87010d">getClk</a>();</div><div class="line"><a name="l00643"></a><span class="lineno"> 643</span>&#160; <a class="code" href="classSVF_1_1PointerAnalysis.html#a35bd5f0fb2c146199e9f1aa6a19b4062">CallEdgeMap</a> newEdges;</div><div class="line"><a name="l00644"></a><span class="lineno"> 644</span>&#160; <a class="code" href="classSVF_1_1BVDataPTAImpl.html#a9830d4676fd424b633f8e4d918734296">onTheFlyCallGraphSolve</a>(callsites, newEdges);</div><div class="line"><a name="l00645"></a><span class="lineno"> 645</span>&#160;</div><div class="line"><a name="l00646"></a><span class="lineno"> 646</span>&#160; <span class="comment">// Bound the new edges by the Andersen&#39;s call graph.</span></div><div class="line"><a name="l00647"></a><span class="lineno"> 647</span>&#160; <span class="comment">// TODO: we want this to be an assertion eventually.</span></div><div class="line"><a name="l00648"></a><span class="lineno"> 648</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1PointerAnalysis.html#a35bd5f0fb2c146199e9f1aa6a19b4062">CallEdgeMap</a> &amp;andersCallEdgeMap = <a class="code" href="classSVF_1_1FlowSensitive.html#a5cfee013a1a5821ef0c449842dd8690d">ander</a>-&gt;<a class="code" href="classSVF_1_1PointerAnalysis.html#a1ca30dfa42702071b65d363c76d25cbe">getIndCallMap</a>();</div><div class="line"><a name="l00649"></a><span class="lineno"> 649</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">typename</span> CallEdgeMap::value_type &amp;csfs : newEdges)</div><div class="line"><a name="l00650"></a><span class="lineno"> 650</span>&#160; {</div><div class="line"><a name="l00651"></a><span class="lineno"> 651</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a> *potentialCallSite = csfs.first;</div><div class="line"><a name="l00652"></a><span class="lineno"> 652</span>&#160; <a class="code" href="classSVF_1_1PointerAnalysis.html#ac1422cd8b449fdb4a1f7c539364e4c41">FunctionSet</a> &amp;potentialFunctionSet = csfs.second;</div><div class="line"><a name="l00653"></a><span class="lineno"> 653</span>&#160;</div><div class="line"><a name="l00654"></a><span class="lineno"> 654</span>&#160; <span class="comment">// Check this callsite even calls anything per Andersen&#39;s.</span></div><div class="line"><a name="l00655"></a><span class="lineno"> 655</span>&#160; <span class="keyword">typename</span> CallEdgeMap::const_iterator andersFunctionSetIt</div><div class="line"><a name="l00656"></a><span class="lineno"> 656</span>&#160; = andersCallEdgeMap.find(potentialCallSite);</div><div class="line"><a name="l00657"></a><span class="lineno"> 657</span>&#160; <span class="keywordflow">if</span> (andersFunctionSetIt == andersCallEdgeMap.end())</div><div class="line"><a name="l00658"></a><span class="lineno"> 658</span>&#160; {</div><div class="line"><a name="l00659"></a><span class="lineno"> 659</span>&#160; potentialFunctionSet.clear();</div><div class="line"><a name="l00660"></a><span class="lineno"> 660</span>&#160; }</div><div class="line"><a name="l00661"></a><span class="lineno"> 661</span>&#160;</div><div class="line"><a name="l00662"></a><span class="lineno"> 662</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1PointerAnalysis.html#ac1422cd8b449fdb4a1f7c539364e4c41">FunctionSet</a> &amp;andersFunctionSet = andersFunctionSetIt-&gt;second;</div><div class="line"><a name="l00663"></a><span class="lineno"> 663</span>&#160; <span class="keywordflow">for</span> (FunctionSet::iterator potentialFunctionIt = potentialFunctionSet.begin();</div><div class="line"><a name="l00664"></a><span class="lineno"> 664</span>&#160; potentialFunctionIt != potentialFunctionSet.end(); )</div><div class="line"><a name="l00665"></a><span class="lineno"> 665</span>&#160; {</div><div class="line"><a name="l00666"></a><span class="lineno"> 666</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a> *potentialFunction = *potentialFunctionIt;</div><div class="line"><a name="l00667"></a><span class="lineno"> 667</span>&#160; <span class="keywordflow">if</span> (andersFunctionSet.find(potentialFunction) == andersFunctionSet.end())</div><div class="line"><a name="l00668"></a><span class="lineno"> 668</span>&#160; {</div><div class="line"><a name="l00669"></a><span class="lineno"> 669</span>&#160; <span class="comment">// potentialFunction is not in the Andersen&#39;s call graph -- remove it.</span></div><div class="line"><a name="l00670"></a><span class="lineno"> 670</span>&#160; potentialFunctionIt = potentialFunctionSet.erase(potentialFunctionIt);</div><div class="line"><a name="l00671"></a><span class="lineno"> 671</span>&#160; }</div><div class="line"><a name="l00672"></a><span class="lineno"> 672</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00673"></a><span class="lineno"> 673</span>&#160; {</div><div class="line"><a name="l00674"></a><span class="lineno"> 674</span>&#160; <span class="comment">// potentialFunction is in the Andersen&#39;s call graph -- keep it..</span></div><div class="line"><a name="l00675"></a><span class="lineno"> 675</span>&#160; ++potentialFunctionIt;</div><div class="line"><a name="l00676"></a><span class="lineno"> 676</span>&#160; }</div><div class="line"><a name="l00677"></a><span class="lineno"> 677</span>&#160; }</div><div class="line"><a name="l00678"></a><span class="lineno"> 678</span>&#160; }</div><div class="line"><a name="l00679"></a><span class="lineno"> 679</span>&#160;</div><div class="line"><a name="l00680"></a><span class="lineno"> 680</span>&#160; <a class="code" href="classSVF_1_1FlowSensitive.html#a69289c48fa91f850da90de080b9d26e5">SVFGEdgeSetTy</a> svfgEdges;</div><div class="line"><a name="l00681"></a><span class="lineno"> 681</span>&#160; <a class="code" href="classSVF_1_1FlowSensitive.html#ad7640ada31b5cb542e492e27ab4fe1af">connectCallerAndCallee</a>(newEdges, svfgEdges);</div><div class="line"><a name="l00682"></a><span class="lineno"> 682</span>&#160;</div><div class="line"><a name="l00683"></a><span class="lineno"> 683</span>&#160; <a class="code" href="classSVF_1_1FlowSensitive.html#a1886b4964efa92cfff761493d12768b8">updateConnectedNodes</a>(svfgEdges);</div><div class="line"><a name="l00684"></a><span class="lineno"> 684</span>&#160;</div><div class="line"><a name="l00685"></a><span class="lineno"> 685</span>&#160; <span class="keywordtype">double</span> end = <a class="code" href="classSVF_1_1PointerAnalysis.html#a5ec3d9bf1fc81346c9df29638daedc0f">stat</a>-&gt;<a class="code" href="classSVF_1_1SVFStat.html#ac9d390c417df6f6af6b274618b87010d">getClk</a>();</div><div class="line"><a name="l00686"></a><span class="lineno"> 686</span>&#160; <a class="code" href="classSVF_1_1FlowSensitive.html#afc140b6c8e78dc2d962f64fdf53b1e07">updateCallGraphTime</a> += (end - start) / <a class="code" href="SVFType_8h.html#a1aeda3370621dc00e9a0fe8e7aabc736">TIMEINTERVAL</a>;</div><div class="line"><a name="l00687"></a><span class="lineno"> 687</span>&#160; <span class="keywordflow">return</span> (!newEdges.empty());</div><div class="line"><a name="l00688"></a><span class="lineno"> 688</span>&#160;}</div><div class="ttc" id="classSVF_1_1FlowSensitive_html_a1886b4964efa92cfff761493d12768b8"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#a1886b4964efa92cfff761493d12768b8">SVF::FlowSensitive::updateConnectedNodes</a></div><div class="ttdeci">virtual void updateConnectedNodes(const SVFGEdgeSetTy &amp;edges)</div><div class="ttdoc">Update nodes connected during updating call graph. </div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8cpp_source.html#l00713">FlowSensitive.cpp:713</a></div></div>
2831
- <div class="ttc" id="classSVF_1_1BVDataPTAImpl_html_a9830d4676fd424b633f8e4d918734296"><div class="ttname"><a href="classSVF_1_1BVDataPTAImpl.html#a9830d4676fd424b633f8e4d918734296">SVF::BVDataPTAImpl::onTheFlyCallGraphSolve</a></div><div class="ttdeci">virtual void onTheFlyCallGraphSolve(const CallSiteToFunPtrMap &amp;callsites, CallEdgeMap &amp;newEdges)</div><div class="ttdoc">On the fly call graph construction. </div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8cpp_source.html#l00434">PointerAnalysisImpl.cpp:434</a></div></div>
2829
+ <div class="ttc" id="classSVF_1_1BVDataPTAImpl_html_a9830d4676fd424b633f8e4d918734296"><div class="ttname"><a href="classSVF_1_1BVDataPTAImpl.html#a9830d4676fd424b633f8e4d918734296">SVF::BVDataPTAImpl::onTheFlyCallGraphSolve</a></div><div class="ttdeci">virtual void onTheFlyCallGraphSolve(const CallSiteToFunPtrMap &amp;callsites, CallEdgeMap &amp;newEdges)</div><div class="ttdoc">On the fly call graph construction. </div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8cpp_source.html#l00458">PointerAnalysisImpl.cpp:458</a></div></div>
2832
2830
  <div class="ttc" id="classSVF_1_1SVFFunction_html"><div class="ttname"><a href="classSVF_1_1SVFFunction.html">SVF::SVFFunction</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00257">SVFValue.h:257</a></div></div>
2833
2831
  <div class="ttc" id="SVFType_8h_html_a1aeda3370621dc00e9a0fe8e7aabc736"><div class="ttname"><a href="SVFType_8h.html#a1aeda3370621dc00e9a0fe8e7aabc736">TIMEINTERVAL</a></div><div class="ttdeci">#define TIMEINTERVAL</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00444">SVFType.h:444</a></div></div>
2834
2832
  <div class="ttc" id="classSVF_1_1FlowSensitive_html_afc140b6c8e78dc2d962f64fdf53b1e07"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#afc140b6c8e78dc2d962f64fdf53b1e07">SVF::FlowSensitive::updateCallGraphTime</a></div><div class="ttdeci">double updateCallGraphTime</div><div class="ttdoc">time of updating call graph </div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8h_source.html#l00307">FlowSensitive.h:307</a></div></div>
@@ -2940,7 +2938,7 @@ Additional Inherited Members</h2></td></tr>
2940
2938
 
2941
2939
  <p class="definition">Definition at line <a class="el" href="FlowSensitive_8h_source.html#l00187">187</a> of file <a class="el" href="FlowSensitive_8h_source.html">FlowSensitive.h</a>.</p>
2942
2940
  <div class="fragment"><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; {</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1BVDataPTAImpl.html#a642613e98982259183d3f34a97f05502">getDFPTDataTy</a>()-&gt;<a class="code" href="classSVF_1_1DFPTData.html#a88cf9cd48ee5c1b8b3c71b379f23ab6b">updateDFInFromIn</a>(srcStmt-&gt;getId(),srcVar, dstStmt-&gt;getId(),dstVar);</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; }</div><div class="ttc" id="classSVF_1_1DFPTData_html_a88cf9cd48ee5c1b8b3c71b379f23ab6b"><div class="ttname"><a href="classSVF_1_1DFPTData.html#a88cf9cd48ee5c1b8b3c71b379f23ab6b">SVF::DFPTData::updateDFInFromIn</a></div><div class="ttdeci">virtual bool updateDFInFromIn(LocID srcLoc, const Key &amp;srcVar, LocID dstLoc, const Key &amp;dstVar)=0</div></div>
2943
- <div class="ttc" id="classSVF_1_1BVDataPTAImpl_html_a642613e98982259183d3f34a97f05502"><div class="ttname"><a href="classSVF_1_1BVDataPTAImpl.html#a642613e98982259183d3f34a97f05502">SVF::BVDataPTAImpl::getDFPTDataTy</a></div><div class="ttdeci">DFPTDataTy * getDFPTDataTy() const</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#l00174">PointerAnalysisImpl.h:174</a></div></div>
2941
+ <div class="ttc" id="classSVF_1_1BVDataPTAImpl_html_a642613e98982259183d3f34a97f05502"><div class="ttname"><a href="classSVF_1_1BVDataPTAImpl.html#a642613e98982259183d3f34a97f05502">SVF::BVDataPTAImpl::getDFPTDataTy</a></div><div class="ttdeci">DFPTDataTy * getDFPTDataTy() const</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#l00173">PointerAnalysisImpl.h:173</a></div></div>
2944
2942
  </div><!-- fragment -->
2945
2943
  </div>
2946
2944
  </div>
@@ -2992,7 +2990,7 @@ Additional Inherited Members</h2></td></tr>
2992
2990
 
2993
2991
  <p class="definition">Definition at line <a class="el" href="FlowSensitive_8h_source.html#l00191">191</a> of file <a class="el" href="FlowSensitive_8h_source.html">FlowSensitive.h</a>.</p>
2994
2992
  <div class="fragment"><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; {</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1BVDataPTAImpl.html#a642613e98982259183d3f34a97f05502">getDFPTDataTy</a>()-&gt;<a class="code" href="classSVF_1_1DFPTData.html#a2ec4fb73d87f10c86fac34b3500532b3">updateDFInFromOut</a>(srcStmt-&gt;getId(),srcVar, dstStmt-&gt;getId(),dstVar);</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; }</div><div class="ttc" id="classSVF_1_1DFPTData_html_a2ec4fb73d87f10c86fac34b3500532b3"><div class="ttname"><a href="classSVF_1_1DFPTData.html#a2ec4fb73d87f10c86fac34b3500532b3">SVF::DFPTData::updateDFInFromOut</a></div><div class="ttdeci">virtual bool updateDFInFromOut(LocID srcLoc, const Key &amp;srcVar, LocID dstLoc, const Key &amp;dstVar)=0</div><div class="ttdoc">Union (IN[dstLoc:dstVar], OUT[srcLoc:srcVar]). </div></div>
2995
- <div class="ttc" id="classSVF_1_1BVDataPTAImpl_html_a642613e98982259183d3f34a97f05502"><div class="ttname"><a href="classSVF_1_1BVDataPTAImpl.html#a642613e98982259183d3f34a97f05502">SVF::BVDataPTAImpl::getDFPTDataTy</a></div><div class="ttdeci">DFPTDataTy * getDFPTDataTy() const</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#l00174">PointerAnalysisImpl.h:174</a></div></div>
2993
+ <div class="ttc" id="classSVF_1_1BVDataPTAImpl_html_a642613e98982259183d3f34a97f05502"><div class="ttname"><a href="classSVF_1_1BVDataPTAImpl.html#a642613e98982259183d3f34a97f05502">SVF::BVDataPTAImpl::getDFPTDataTy</a></div><div class="ttdeci">DFPTDataTy * getDFPTDataTy() const</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#l00173">PointerAnalysisImpl.h:173</a></div></div>
2996
2994
  </div><!-- fragment -->
2997
2995
  </div>
2998
2996
  </div>
@@ -3046,7 +3044,7 @@ Additional Inherited Members</h2></td></tr>
3046
3044
 
3047
3045
  <p class="definition">Definition at line <a class="el" href="FlowSensitive_8h_source.html#l00183">183</a> of file <a class="el" href="FlowSensitive_8h_source.html">FlowSensitive.h</a>.</p>
3048
3046
  <div class="fragment"><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; {</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1BVDataPTAImpl.html#a642613e98982259183d3f34a97f05502">getDFPTDataTy</a>()-&gt;<a class="code" href="classSVF_1_1DFPTData.html#acee5fb134d3153ae6eb91c15cd2cff66">updateDFOutFromIn</a>(srcStmt-&gt;getId(),srcVar, dstStmt-&gt;getId(),dstVar);</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; }</div><div class="ttc" id="classSVF_1_1DFPTData_html_acee5fb134d3153ae6eb91c15cd2cff66"><div class="ttname"><a href="classSVF_1_1DFPTData.html#acee5fb134d3153ae6eb91c15cd2cff66">SVF::DFPTData::updateDFOutFromIn</a></div><div class="ttdeci">virtual bool updateDFOutFromIn(LocID srcLoc, const Key &amp;srcVar, LocID dstLoc, const Key &amp;dstVar)=0</div><div class="ttdoc">Union (OUT[dstLoc:dstVar], IN[srcLoc:srcVar]). </div></div>
3049
- <div class="ttc" id="classSVF_1_1BVDataPTAImpl_html_a642613e98982259183d3f34a97f05502"><div class="ttname"><a href="classSVF_1_1BVDataPTAImpl.html#a642613e98982259183d3f34a97f05502">SVF::BVDataPTAImpl::getDFPTDataTy</a></div><div class="ttdeci">DFPTDataTy * getDFPTDataTy() const</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#l00174">PointerAnalysisImpl.h:174</a></div></div>
3047
+ <div class="ttc" id="classSVF_1_1BVDataPTAImpl_html_a642613e98982259183d3f34a97f05502"><div class="ttname"><a href="classSVF_1_1BVDataPTAImpl.html#a642613e98982259183d3f34a97f05502">SVF::BVDataPTAImpl::getDFPTDataTy</a></div><div class="ttdeci">DFPTDataTy * getDFPTDataTy() const</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#l00173">PointerAnalysisImpl.h:173</a></div></div>
3050
3048
  </div><!-- fragment -->
3051
3049
  </div>
3052
3050
  </div>
@@ -3078,7 +3076,7 @@ Additional Inherited Members</h2></td></tr>
3078
3076
 
3079
3077
  <p class="definition">Definition at line <a class="el" href="FlowSensitive_8h_source.html#l00155">155</a> of file <a class="el" href="FlowSensitive_8h_source.html">FlowSensitive.h</a>.</p>
3080
3078
  <div class="fragment"><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; {</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1BVDataPTAImpl.html#a642613e98982259183d3f34a97f05502">getDFPTDataTy</a>()-&gt;<a class="code" href="classSVF_1_1DFPTData.html#a7e4ae809b40d55448de0103746254158">updateAllDFOutFromIn</a>(node-&gt;getId(),0,<span class="keyword">false</span>);</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; }</div><div class="ttc" id="classSVF_1_1DFPTData_html_a7e4ae809b40d55448de0103746254158"><div class="ttname"><a href="classSVF_1_1DFPTData.html#a7e4ae809b40d55448de0103746254158">SVF::DFPTData::updateAllDFOutFromIn</a></div><div class="ttdeci">virtual bool updateAllDFOutFromIn(LocID loc, const Key &amp;singleton, bool strongUpdates)=0</div><div class="ttdoc">For each variable var in IN at loc, do updateDFOutFromIn(loc, var, loc, var). </div></div>
3081
- <div class="ttc" id="classSVF_1_1BVDataPTAImpl_html_a642613e98982259183d3f34a97f05502"><div class="ttname"><a href="classSVF_1_1BVDataPTAImpl.html#a642613e98982259183d3f34a97f05502">SVF::BVDataPTAImpl::getDFPTDataTy</a></div><div class="ttdeci">DFPTDataTy * getDFPTDataTy() const</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#l00174">PointerAnalysisImpl.h:174</a></div></div>
3079
+ <div class="ttc" id="classSVF_1_1BVDataPTAImpl_html_a642613e98982259183d3f34a97f05502"><div class="ttname"><a href="classSVF_1_1BVDataPTAImpl.html#a642613e98982259183d3f34a97f05502">SVF::BVDataPTAImpl::getDFPTDataTy</a></div><div class="ttdeci">DFPTDataTy * getDFPTDataTy() const</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#l00173">PointerAnalysisImpl.h:173</a></div></div>
3082
3080
  </div><!-- fragment -->
3083
3081
  </div>
3084
3082
  </div>
@@ -840,7 +840,7 @@ Additional Inherited Members</h2></td></tr>
840
840
  <p class="definition">Definition at line <a class="el" href="FlowSensitiveStat_8cpp_source.html#l00322">322</a> of file <a class="el" href="FlowSensitiveStat_8cpp_source.html">FlowSensitiveStat.cpp</a>.</p>
841
841
  <div class="fragment"><div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160;{</div><div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160; <span class="comment">// TODO: needs to be made to work for persistent.</span></div><div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160; <span class="keywordflow">if</span> (SVFUtil::isa&lt;FlowSensitive::MutDFPTDataTy&gt;(<a class="code" href="classSVF_1_1FlowSensitiveStat.html#af7e04f73ee17647c52e571cadef8729f">fspta</a>-&gt;<a class="code" href="classSVF_1_1BVDataPTAImpl.html#ae94cea78b71fb75837ee2a17b5ed0e81">getPTDataTy</a>()))</div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160; {</div><div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160; <span class="comment">// stat of IN set</span></div><div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160; <a class="code" href="classSVF_1_1FlowSensitiveStat.html#a8ae7448f6210b6c759a33e6fc8a8cee8">statInOutPtsSize</a>(<a class="code" href="classSVF_1_1FlowSensitiveStat.html#af7e04f73ee17647c52e571cadef8729f">fspta</a>-&gt;<a class="code" href="classSVF_1_1FlowSensitive.html#a9717517387c14c2e64c7ae3c3149bb57">getDFInputMap</a>(), <a class="code" href="classSVF_1_1FlowSensitiveStat.html#ab11996ab5606f51c977b9b1385c13d71ad0b57a5d90c72b67337a68c04ae34739">IN</a>);</div><div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160; <span class="comment">// stat of OUT set</span></div><div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160; <a class="code" href="classSVF_1_1FlowSensitiveStat.html#a8ae7448f6210b6c759a33e6fc8a8cee8">statInOutPtsSize</a>(<a class="code" href="classSVF_1_1FlowSensitiveStat.html#af7e04f73ee17647c52e571cadef8729f">fspta</a>-&gt;<a class="code" href="classSVF_1_1FlowSensitive.html#a661c4c1d5902c924060cc81219591d6f">getDFOutputMap</a>(), <a class="code" href="classSVF_1_1FlowSensitiveStat.html#ab11996ab5606f51c977b9b1385c13d71ac018f116c78ed5e314b52e5d743f3fa5">OUT</a>);</div><div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160; }</div><div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160;</div><div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> totalValidTopLvlPointers = 0;</div><div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> topTopLvlPtsSize = 0;</div><div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="classSVF_1_1GenericGraph.html#ac213302cf5c7cdf3b66f7b18649d0fbc">SVFIR::iterator</a> iter = <a class="code" href="classSVF_1_1FlowSensitiveStat.html#af7e04f73ee17647c52e571cadef8729f">fspta</a>-&gt;<a class="code" href="classSVF_1_1PointerAnalysis.html#a240219c2dc4f5cc5f85445e18c79b83b">getPAG</a>()-&gt;<a class="code" href="classSVF_1_1GenericGraph.html#a0d9744b1b0e7a09a6f7af29188e243b7">begin</a>(), eiter = <a class="code" href="classSVF_1_1FlowSensitiveStat.html#af7e04f73ee17647c52e571cadef8729f">fspta</a>-&gt;<a class="code" href="classSVF_1_1PointerAnalysis.html#a240219c2dc4f5cc5f85445e18c79b83b">getPAG</a>()-&gt;<a class="code" href="classSVF_1_1GenericGraph.html#a4bef15157423cef48dc7333a803cd27d">end</a>();</div><div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160; iter != eiter; ++iter)</div><div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160; {</div><div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160; <a class="code" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> node = iter-&gt;first;</div><div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1FlowSensitiveStat.html#af7e04f73ee17647c52e571cadef8729f">fspta</a>-&gt;<a class="code" href="classSVF_1_1PointerAnalysis.html#a240219c2dc4f5cc5f85445e18c79b83b">getPAG</a>()-&gt;<a class="code" href="classSVF_1_1SVFIR.html#a5c3b194ebada47baaccf0e9f3ab1a139">isValidTopLevelPtr</a>(iter-&gt;second) == <span class="keyword">false</span>)</div><div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160; <span class="keywordflow">continue</span>;</div><div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> size = <a class="code" href="classSVF_1_1FlowSensitiveStat.html#af7e04f73ee17647c52e571cadef8729f">fspta</a>-&gt;<a class="code" href="classSVF_1_1BVDataPTAImpl.html#ac9897a09cad8a99169f2da2116807b1b">getPts</a>(node).<a class="code" href="classSVF_1_1PointsTo.html#aa0d4ee196b91fce626f3f15bcc5599e4">count</a>();</div><div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160;</div><div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160; totalValidTopLvlPointers++;</div><div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160; topTopLvlPtsSize+=size;</div><div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160;</div><div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160; <span class="keywordflow">if</span>(size &gt; <a class="code" href="classSVF_1_1FlowSensitiveStat.html#a737d955e3707cf758a5580eab2e60e96">_MaxPtsSize</a>) <a class="code" href="classSVF_1_1FlowSensitiveStat.html#a737d955e3707cf758a5580eab2e60e96">_MaxPtsSize</a> = size;</div><div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160;</div><div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160; <span class="keywordflow">if</span> (size &gt; <a class="code" href="classSVF_1_1FlowSensitiveStat.html#aecf324702d542f824e8b7a4d9827f557">_MaxTopLvlPtsSize</a>) <a class="code" href="classSVF_1_1FlowSensitiveStat.html#aecf324702d542f824e8b7a4d9827f557">_MaxTopLvlPtsSize</a> = size;</div><div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160; }</div><div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160;</div><div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160; <span class="keywordflow">if</span> (totalValidTopLvlPointers != 0)</div><div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160; <a class="code" href="classSVF_1_1FlowSensitiveStat.html#a31235f25af7970142ef235681d2a447c">_AvgTopLvlPtsSize</a> = (double)topTopLvlPtsSize/totalValidTopLvlPointers;</div><div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160;</div><div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160; <a class="code" href="classSVF_1_1FlowSensitiveStat.html#a8b5bfc9c3cbf9451603860789640246a">_TotalPtsSize</a> += topTopLvlPtsSize;</div><div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> totalPointer = totalValidTopLvlPointers + <a class="code" href="classSVF_1_1FlowSensitiveStat.html#ab6ccd8de2b7573f34c4d04b7f40d6522">_NumOfVarHaveINOUTPts</a>[<a class="code" href="classSVF_1_1FlowSensitiveStat.html#ab11996ab5606f51c977b9b1385c13d71ad0b57a5d90c72b67337a68c04ae34739">IN</a>] + <a class="code" href="classSVF_1_1FlowSensitiveStat.html#ab6ccd8de2b7573f34c4d04b7f40d6522">_NumOfVarHaveINOUTPts</a>[<a class="code" href="classSVF_1_1FlowSensitiveStat.html#ab11996ab5606f51c977b9b1385c13d71ac018f116c78ed5e314b52e5d743f3fa5">OUT</a>];</div><div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160; <span class="keywordflow">if</span> (totalPointer != 0)</div><div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160; <a class="code" href="classSVF_1_1FlowSensitiveStat.html#a07adfab66dd7ed22993e59ad3bf74946">_AvgPtsSize</a> = (double) <a class="code" href="classSVF_1_1FlowSensitiveStat.html#a8b5bfc9c3cbf9451603860789640246a">_TotalPtsSize</a> / totalPointer;</div><div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160;}</div><div class="ttc" id="classSVF_1_1GenericGraph_html_a0d9744b1b0e7a09a6f7af29188e243b7"><div class="ttname"><a href="classSVF_1_1GenericGraph.html#a0d9744b1b0e7a09a6f7af29188e243b7">SVF::GenericGraph::begin</a></div><div class="ttdeci">iterator begin()</div><div class="ttdoc">Iterators. </div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00369">GenericGraph.h:369</a></div></div>
842
842
  <div class="ttc" id="classSVF_1_1FlowSensitive_html_a661c4c1d5902c924060cc81219591d6f"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#a661c4c1d5902c924060cc81219591d6f">SVF::FlowSensitive::getDFOutputMap</a></div><div class="ttdeci">const DFInOutMap &amp; getDFOutputMap() const</div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8h_source.html#l00259">FlowSensitive.h:259</a></div></div>
843
- <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>
843
+ <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>
844
844
  <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>
845
845
  <div class="ttc" id="classSVF_1_1FlowSensitiveStat_html_af7e04f73ee17647c52e571cadef8729f"><div class="ttname"><a href="classSVF_1_1FlowSensitiveStat.html#af7e04f73ee17647c52e571cadef8729f">SVF::FlowSensitiveStat::fspta</a></div><div class="ttdeci">FlowSensitive * fspta</div><div class="ttdef"><b>Definition:</b> <a href="WPAStat_8h_source.html#l00091">WPAStat.h:91</a></div></div>
846
846
  <div class="ttc" id="classSVF_1_1FlowSensitiveStat_html_ab11996ab5606f51c977b9b1385c13d71ac018f116c78ed5e314b52e5d743f3fa5"><div class="ttname"><a href="classSVF_1_1FlowSensitiveStat.html#ab11996ab5606f51c977b9b1385c13d71ac018f116c78ed5e314b52e5d743f3fa5">SVF::FlowSensitiveStat::OUT</a></div><div class="ttdef"><b>Definition:</b> <a href="WPAStat_8h_source.html#l00108">WPAStat.h:108</a></div></div>
@@ -84,7 +84,7 @@ $(function() {
84
84
  <tr class="even"><td class="entry"><a class="el" href="classSVF_1_1GenericGraph.html#a8c8d16036008f87c7811586047599858">getTotalNodeNum</a>() const</td><td class="entry"><a class="el" href="classSVF_1_1GenericGraph.html">SVF::GenericGraph&lt; NodeTy, EdgeTy &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
85
85
  <tr><td class="entry"><a class="el" href="classSVF_1_1GenericGraph.html#a6885064afa211958af7b73f0233284e5">hasGNode</a>(NodeID id) const</td><td class="entry"><a class="el" href="classSVF_1_1GenericGraph.html">SVF::GenericGraph&lt; NodeTy, EdgeTy &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
86
86
  <tr class="even"><td class="entry"><a class="el" href="classSVF_1_1GenericGraph.html#a47a1ef8b67b0c92f78b4457dc3bbfe71">IDToNodeMap</a></td><td class="entry"><a class="el" href="classSVF_1_1GenericGraph.html">SVF::GenericGraph&lt; NodeTy, EdgeTy &gt;</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
87
- <tr><td class="entry"><a class="el" href="classSVF_1_1GenericGraph.html#ab9027b190f50ceefc90094e4f967f269">IDToNodeMapTy</a> typedef</td><td class="entry"><a class="el" href="classSVF_1_1GenericGraph.html">SVF::GenericGraph&lt; NodeTy, EdgeTy &gt;</a></td><td class="entry"></td></tr>
87
+ <tr><td class="entry"><a class="el" href="classSVF_1_1GenericGraph.html#afe017704d73445211fecaf7f3853010e">IDToNodeMapTy</a> typedef</td><td class="entry"><a class="el" href="classSVF_1_1GenericGraph.html">SVF::GenericGraph&lt; NodeTy, EdgeTy &gt;</a></td><td class="entry"></td></tr>
88
88
  <tr class="even"><td class="entry"><a class="el" href="classSVF_1_1GenericGraph.html#a2f2bca8219c7d769f6d2937e5cd40d14">incEdgeNum</a>()</td><td class="entry"><a class="el" href="classSVF_1_1GenericGraph.html">SVF::GenericGraph&lt; NodeTy, EdgeTy &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
89
89
  <tr><td class="entry"><a class="el" href="classSVF_1_1GenericGraph.html#a7388dabef7300e77adf33f3999639f21">incNodeNum</a>()</td><td class="entry"><a class="el" href="classSVF_1_1GenericGraph.html">SVF::GenericGraph&lt; NodeTy, EdgeTy &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
90
90
  <tr class="even"><td class="entry"><a class="el" href="classSVF_1_1GenericGraph.html#ac213302cf5c7cdf3b66f7b18649d0fbc">iterator</a> typedef</td><td class="entry"><a class="el" href="classSVF_1_1GenericGraph.html">SVF::GenericGraph&lt; NodeTy, EdgeTy &gt;</a></td><td class="entry"></td></tr>
@@ -96,9 +96,9 @@ Public Types</h2></td></tr>
96
96
  <tr class="separator:a86c50fc6775fd29f88df2cb4646bb211"><td class="memSeparator" colspan="2">&#160;</td></tr>
97
97
  <tr class="memitem:a12d493d6ad2b6c89f240c9ccfa3bdf30"><td class="memItemLeft" align="right" valign="top">typedef EdgeTy&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1GenericGraph.html#a12d493d6ad2b6c89f240c9ccfa3bdf30">EdgeType</a></td></tr>
98
98
  <tr class="separator:a12d493d6ad2b6c89f240c9ccfa3bdf30"><td class="memSeparator" colspan="2">&#160;</td></tr>
99
- <tr class="memitem:ab9027b190f50ceefc90094e4f967f269"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map</a>&lt; <a class="el" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a>, <a class="el" href="classSVF_1_1GenericGraph.html#a86c50fc6775fd29f88df2cb4646bb211">NodeType</a> * &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1GenericGraph.html#ab9027b190f50ceefc90094e4f967f269">IDToNodeMapTy</a></td></tr>
100
- <tr class="memdesc:ab9027b190f50ceefc90094e4f967f269"><td class="mdescLeft">&#160;</td><td class="mdescRight">NodeID to <a class="el" href="classSVF_1_1GenericNode.html">GenericNode</a> map. <a href="#ab9027b190f50ceefc90094e4f967f269">More...</a><br /></td></tr>
101
- <tr class="separator:ab9027b190f50ceefc90094e4f967f269"><td class="memSeparator" colspan="2">&#160;</td></tr>
99
+ <tr class="memitem:afe017704d73445211fecaf7f3853010e"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="namespaceSVF.html#aedf0d6718ca176e0b9e17ab4b30729c6">OrderedMap</a>&lt; <a class="el" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a>, <a class="el" href="classSVF_1_1GenericGraph.html#a86c50fc6775fd29f88df2cb4646bb211">NodeType</a> * &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1GenericGraph.html#afe017704d73445211fecaf7f3853010e">IDToNodeMapTy</a></td></tr>
100
+ <tr class="memdesc:afe017704d73445211fecaf7f3853010e"><td class="mdescLeft">&#160;</td><td class="mdescRight">NodeID to <a class="el" href="classSVF_1_1GenericNode.html">GenericNode</a> map. <a href="#afe017704d73445211fecaf7f3853010e">More...</a><br /></td></tr>
101
+ <tr class="separator:afe017704d73445211fecaf7f3853010e"><td class="memSeparator" colspan="2">&#160;</td></tr>
102
102
  <tr><td colspan="2"><div class="groupHeader"></div></td></tr>
103
103
  <tr class="memitem:ac213302cf5c7cdf3b66f7b18649d0fbc"><td class="memItemLeft" align="right" valign="top">typedef IDToNodeMapTy::iterator&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1GenericGraph.html#ac213302cf5c7cdf3b66f7b18649d0fbc">iterator</a></td></tr>
104
104
  <tr class="memdesc:ac213302cf5c7cdf3b66f7b18649d0fbc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Node Iterators. <a href="#ac213302cf5c7cdf3b66f7b18649d0fbc">More...</a><br /></td></tr>
@@ -117,7 +117,7 @@ Public Member Functions</h2></td></tr>
117
117
  <tr class="memitem:adf0a205f4f62f33c5fa8f2d544aac633"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1GenericGraph.html#adf0a205f4f62f33c5fa8f2d544aac633">destroy</a> ()</td></tr>
118
118
  <tr class="memdesc:adf0a205f4f62f33c5fa8f2d544aac633"><td class="mdescLeft">&#160;</td><td class="mdescRight">Release memory. <a href="#adf0a205f4f62f33c5fa8f2d544aac633">More...</a><br /></td></tr>
119
119
  <tr class="separator:adf0a205f4f62f33c5fa8f2d544aac633"><td class="memSeparator" colspan="2">&#160;</td></tr>
120
- <tr class="memitem:a47a1ef8b67b0c92f78b4457dc3bbfe71"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1GenericGraph.html#ab9027b190f50ceefc90094e4f967f269">IDToNodeMapTy</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1GenericGraph.html#a47a1ef8b67b0c92f78b4457dc3bbfe71">IDToNodeMap</a></td></tr>
120
+ <tr class="memitem:a47a1ef8b67b0c92f78b4457dc3bbfe71"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1GenericGraph.html#afe017704d73445211fecaf7f3853010e">IDToNodeMapTy</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1GenericGraph.html#a47a1ef8b67b0c92f78b4457dc3bbfe71">IDToNodeMap</a></td></tr>
121
121
  <tr class="memdesc:a47a1ef8b67b0c92f78b4457dc3bbfe71"><td class="mdescLeft">&#160;</td><td class="mdescRight">node map <a href="#a47a1ef8b67b0c92f78b4457dc3bbfe71">More...</a><br /></td></tr>
122
122
  <tr class="separator:a47a1ef8b67b0c92f78b4457dc3bbfe71"><td class="memSeparator" colspan="2">&#160;</td></tr>
123
123
  <tr class="memitem:a2fbc96de5f066469c2739229307bcc0c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1GenericGraph.html#a2fbc96de5f066469c2739229307bcc0c">edgeNum</a></td></tr>
@@ -201,8 +201,8 @@ template&lt;class NodeTy, class EdgeTy&gt; </div>
201
201
 
202
202
  </div>
203
203
  </div>
204
- <a id="ab9027b190f50ceefc90094e4f967f269"></a>
205
- <h2 class="memtitle"><span class="permalink"><a href="#ab9027b190f50ceefc90094e4f967f269">&#9670;&nbsp;</a></span>IDToNodeMapTy</h2>
204
+ <a id="afe017704d73445211fecaf7f3853010e"></a>
205
+ <h2 class="memtitle"><span class="permalink"><a href="#afe017704d73445211fecaf7f3853010e">&#9670;&nbsp;</a></span>IDToNodeMapTy</h2>
206
206
 
207
207
  <div class="memitem">
208
208
  <div class="memproto">
@@ -210,7 +210,7 @@ template&lt;class NodeTy, class EdgeTy&gt; </div>
210
210
  template&lt;class NodeTy, class EdgeTy&gt; </div>
211
211
  <table class="memname">
212
212
  <tr>
213
- <td class="memname">typedef <a class="el" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map</a>&lt;<a class="el" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a>, <a class="el" href="classSVF_1_1GenericGraph.html#a86c50fc6775fd29f88df2cb4646bb211">NodeType</a>*&gt; <a class="el" href="classSVF_1_1GenericGraph.html">SVF::GenericGraph</a>&lt; NodeTy, EdgeTy &gt;::<a class="el" href="classSVF_1_1GenericGraph.html#ab9027b190f50ceefc90094e4f967f269">IDToNodeMapTy</a></td>
213
+ <td class="memname">typedef <a class="el" href="namespaceSVF.html#aedf0d6718ca176e0b9e17ab4b30729c6">OrderedMap</a>&lt;<a class="el" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a>, <a class="el" href="classSVF_1_1GenericGraph.html#a86c50fc6775fd29f88df2cb4646bb211">NodeType</a>*&gt; <a class="el" href="classSVF_1_1GenericGraph.html">SVF::GenericGraph</a>&lt; NodeTy, EdgeTy &gt;::<a class="el" href="classSVF_1_1GenericGraph.html#afe017704d73445211fecaf7f3853010e">IDToNodeMapTy</a></td>
214
214
  </tr>
215
215
  </table>
216
216
  </div><div class="memdoc">
@@ -783,7 +783,7 @@ template&lt;class NodeTy, class EdgeTy&gt; </div>
783
783
  <td class="mlabels-left">
784
784
  <table class="memname">
785
785
  <tr>
786
- <td class="memname"><a class="el" href="classSVF_1_1GenericGraph.html#ab9027b190f50ceefc90094e4f967f269">IDToNodeMapTy</a> <a class="el" href="classSVF_1_1GenericGraph.html">SVF::GenericGraph</a>&lt; NodeTy, EdgeTy &gt;::IDToNodeMap</td>
786
+ <td class="memname"><a class="el" href="classSVF_1_1GenericGraph.html#afe017704d73445211fecaf7f3853010e">IDToNodeMapTy</a> <a class="el" href="classSVF_1_1GenericGraph.html">SVF::GenericGraph</a>&lt; NodeTy, EdgeTy &gt;::IDToNodeMap</td>
787
787
  </tr>
788
788
  </table>
789
789
  </td>
@@ -129,11 +129,11 @@ $(function() {
129
129
  <tr><td class="entry"><a class="el" href="classSVF_1_1ICFG.html#a683f33b8ad507a33809511954c7c1acb">ICFG</a>()</td><td class="entry"><a class="el" href="classSVF_1_1ICFG.html">SVF::ICFG</a></td><td class="entry"></td></tr>
130
130
  <tr class="even"><td class="entry"><a class="el" href="classSVF_1_1ICFG.html#a0d2b8819e1a1375c3543b1cf202193fa">ICFGBuilder</a> class</td><td class="entry"><a class="el" href="classSVF_1_1ICFG.html">SVF::ICFG</a></td><td class="entry"><span class="mlabel">friend</span></td></tr>
131
131
  <tr><td class="entry"><a class="el" href="classSVF_1_1ICFG.html#a20ea3e37e9c3c7d3138ff593041a8e47">ICFGEdgeSetTy</a> typedef</td><td class="entry"><a class="el" href="classSVF_1_1ICFG.html">SVF::ICFG</a></td><td class="entry"></td></tr>
132
- <tr class="even"><td class="entry"><a class="el" href="classSVF_1_1ICFG.html#af1fe5708c6f67fd87fa1edaa6c73ff5d">ICFGNodeIDToNodeMapTy</a> typedef</td><td class="entry"><a class="el" href="classSVF_1_1ICFG.html">SVF::ICFG</a></td><td class="entry"></td></tr>
132
+ <tr class="even"><td class="entry"><a class="el" href="classSVF_1_1ICFG.html#abd1b5ed3f7d29f846d5714f40106781b">ICFGNodeIDToNodeMapTy</a> typedef</td><td class="entry"><a class="el" href="classSVF_1_1ICFG.html">SVF::ICFG</a></td><td class="entry"></td></tr>
133
133
  <tr><td class="entry"><a class="el" href="classSVF_1_1ICFG.html#a4288dd1d729524b8e8a92954852a2317">ICFGNodeToSVFLoopVec</a> typedef</td><td class="entry"><a class="el" href="classSVF_1_1ICFG.html">SVF::ICFG</a></td><td class="entry"></td></tr>
134
134
  <tr class="even"><td class="entry"><a class="el" href="classSVF_1_1ICFG.html#a7d6aeecb00d77600a204a72d60023d54">icfgNodeToSVFLoopVec</a></td><td class="entry"><a class="el" href="classSVF_1_1ICFG.html">SVF::ICFG</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
135
135
  <tr><td class="entry"><a class="el" href="classSVF_1_1GenericGraph.html#a47a1ef8b67b0c92f78b4457dc3bbfe71">IDToNodeMap</a></td><td class="entry"><a class="el" href="classSVF_1_1GenericGraph.html">SVF::GenericGraph&lt; NodeTy, EdgeTy &gt;</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
136
- <tr class="even"><td class="entry"><a class="el" href="classSVF_1_1GenericGraph.html#ab9027b190f50ceefc90094e4f967f269">IDToNodeMapTy</a> typedef</td><td class="entry"><a class="el" href="classSVF_1_1GenericGraph.html">SVF::GenericGraph&lt; NodeTy, EdgeTy &gt;</a></td><td class="entry"></td></tr>
136
+ <tr class="even"><td class="entry"><a class="el" href="classSVF_1_1GenericGraph.html#afe017704d73445211fecaf7f3853010e">IDToNodeMapTy</a> typedef</td><td class="entry"><a class="el" href="classSVF_1_1GenericGraph.html">SVF::GenericGraph&lt; NodeTy, EdgeTy &gt;</a></td><td class="entry"></td></tr>
137
137
  <tr><td class="entry"><a class="el" href="classSVF_1_1GenericGraph.html#a2f2bca8219c7d769f6d2937e5cd40d14">incEdgeNum</a>()</td><td class="entry"><a class="el" href="classSVF_1_1GenericGraph.html">SVF::GenericGraph&lt; NodeTy, EdgeTy &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
138
138
  <tr class="even"><td class="entry"><a class="el" href="classSVF_1_1GenericGraph.html#a7388dabef7300e77adf33f3999639f21">incNodeNum</a>()</td><td class="entry"><a class="el" href="classSVF_1_1GenericGraph.html">SVF::GenericGraph&lt; NodeTy, EdgeTy &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
139
139
  <tr><td class="entry"><a class="el" href="classSVF_1_1ICFG.html#a23f905d849553d7ad652e9a8f1bfacd1">InstToBlockNodeMap</a></td><td class="entry"><a class="el" href="classSVF_1_1ICFG.html">SVF::ICFG</a></td><td class="entry"><span class="mlabel">private</span></td></tr>