svf-tools 1.0.412 → 1.0.415

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 (164) hide show
  1. package/SVF-doxygen/html/html/AndersenStat_8cpp_source.html +3 -3
  2. package/SVF-doxygen/html/html/ContextDDA_8cpp_source.html +3 -3
  3. package/SVF-doxygen/html/html/ContextDDA_8h_source.html +5 -5
  4. package/SVF-doxygen/html/html/DDAVFSolver_8h_source.html +9 -9
  5. package/SVF-doxygen/html/html/FSMPTA_8cpp_source.html +4 -4
  6. package/SVF-doxygen/html/html/FSMPTA_8h_source.html +1 -1
  7. package/SVF-doxygen/html/html/FlowDDA_8cpp_source.html +3 -3
  8. package/SVF-doxygen/html/html/FlowDDA_8h_source.html +5 -5
  9. package/SVF-doxygen/html/html/FlowSensitiveStat_8cpp_source.html +1 -1
  10. package/SVF-doxygen/html/html/FlowSensitiveTBHC_8cpp.html +1 -1
  11. package/SVF-doxygen/html/html/FlowSensitiveTBHC_8cpp_source.html +14 -14
  12. package/SVF-doxygen/html/html/FlowSensitiveTBHC_8h_source.html +6 -6
  13. package/SVF-doxygen/html/html/FlowSensitive_8cpp_source.html +21 -21
  14. package/SVF-doxygen/html/html/FlowSensitive_8h_source.html +8 -8
  15. package/SVF-doxygen/html/html/NodeIDAllocator_8cpp_source.html +1 -1
  16. package/SVF-doxygen/html/html/SVFGEdge_8h_source.html +1 -1
  17. package/SVF-doxygen/html/html/SVFGNode_8h_source.html +89 -88
  18. package/SVF-doxygen/html/html/SVFGOPT_8cpp_source.html +15 -15
  19. package/SVF-doxygen/html/html/SVFGOPT_8h_source.html +19 -19
  20. package/SVF-doxygen/html/html/SVFG_8cpp_source.html +71 -69
  21. package/SVF-doxygen/html/html/SVFG_8h_source.html +41 -41
  22. package/SVF-doxygen/html/html/SVFUtil_8cpp_source.html +2 -2
  23. package/SVF-doxygen/html/html/SVFUtil_8h.html +2 -2
  24. package/SVF-doxygen/html/html/SVFUtil_8h_source.html +2 -2
  25. package/SVF-doxygen/html/html/SaberAnnotator_8cpp_source.html +1 -1
  26. package/SVF-doxygen/html/html/SaberSVFGBuilder_8cpp_source.html +2 -2
  27. package/SVF-doxygen/html/html/VFGEdge_8h_source.html +1 -1
  28. package/SVF-doxygen/html/html/VFGNode_8h.html +1 -1
  29. package/SVF-doxygen/html/html/VFGNode_8h_source.html +197 -195
  30. package/SVF-doxygen/html/html/VFG_8cpp_source.html +89 -72
  31. package/SVF-doxygen/html/html/VFG_8h_source.html +39 -39
  32. package/SVF-doxygen/html/html/VersionedFlowSensitive_8cpp_source.html +7 -7
  33. package/SVF-doxygen/html/html/VersionedFlowSensitive_8h_source.html +2 -2
  34. package/SVF-doxygen/html/html/WPAStat_8h_source.html +2 -2
  35. package/SVF-doxygen/html/html/classSVF_1_1ActualINSVFGNode-members.html +46 -45
  36. package/SVF-doxygen/html/html/classSVF_1_1ActualINSVFGNode.html +24 -21
  37. package/SVF-doxygen/html/html/classSVF_1_1ActualOUTSVFGNode-members.html +46 -45
  38. package/SVF-doxygen/html/html/classSVF_1_1ActualOUTSVFGNode.html +25 -22
  39. package/SVF-doxygen/html/html/classSVF_1_1ActualParmVFGNode-members.html +45 -44
  40. package/SVF-doxygen/html/html/classSVF_1_1ActualParmVFGNode.html +59 -22
  41. package/SVF-doxygen/html/html/classSVF_1_1ActualRetVFGNode-members.html +46 -45
  42. package/SVF-doxygen/html/html/classSVF_1_1ActualRetVFGNode.html +61 -24
  43. package/SVF-doxygen/html/html/classSVF_1_1AddrVFGNode-members.html +51 -50
  44. package/SVF-doxygen/html/html/classSVF_1_1AddrVFGNode.html +50 -14
  45. package/SVF-doxygen/html/html/classSVF_1_1AndersenStat.html +6 -6
  46. package/SVF-doxygen/html/html/classSVF_1_1ArgumentVFGNode-members.html +44 -43
  47. package/SVF-doxygen/html/html/classSVF_1_1ArgumentVFGNode.html +23 -20
  48. package/SVF-doxygen/html/html/classSVF_1_1BinaryOPVFGNode-members.html +52 -51
  49. package/SVF-doxygen/html/html/classSVF_1_1BinaryOPVFGNode.html +69 -32
  50. package/SVF-doxygen/html/html/classSVF_1_1BranchVFGNode-members.html +46 -45
  51. package/SVF-doxygen/html/html/classSVF_1_1BranchVFGNode.html +59 -24
  52. package/SVF-doxygen/html/html/classSVF_1_1CallDirSVFGEdge.html +2 -2
  53. package/SVF-doxygen/html/html/classSVF_1_1CallIndSVFGEdge.html +2 -2
  54. package/SVF-doxygen/html/html/classSVF_1_1CmpVFGNode-members.html +52 -51
  55. package/SVF-doxygen/html/html/classSVF_1_1CmpVFGNode.html +70 -33
  56. package/SVF-doxygen/html/html/classSVF_1_1ContextDDA.html +2 -2
  57. package/SVF-doxygen/html/html/classSVF_1_1CopyVFGNode-members.html +51 -50
  58. package/SVF-doxygen/html/html/classSVF_1_1CopyVFGNode.html +50 -14
  59. package/SVF-doxygen/html/html/classSVF_1_1DDAVFSolver.html +3 -3
  60. package/SVF-doxygen/html/html/classSVF_1_1DirectSVFGEdge.html +2 -2
  61. package/SVF-doxygen/html/html/classSVF_1_1DummyVersionPropSVFGNode-members.html +46 -45
  62. package/SVF-doxygen/html/html/classSVF_1_1DummyVersionPropSVFGNode.html +53 -17
  63. package/SVF-doxygen/html/html/classSVF_1_1FlowDDA.html +2 -2
  64. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitive.html +32 -32
  65. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveStat.html +2 -2
  66. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveTBHC.html +17 -17
  67. package/SVF-doxygen/html/html/classSVF_1_1FormalINSVFGNode-members.html +47 -46
  68. package/SVF-doxygen/html/html/classSVF_1_1FormalINSVFGNode.html +24 -21
  69. package/SVF-doxygen/html/html/classSVF_1_1FormalOUTSVFGNode-members.html +47 -46
  70. package/SVF-doxygen/html/html/classSVF_1_1FormalOUTSVFGNode.html +22 -19
  71. package/SVF-doxygen/html/html/classSVF_1_1FormalParmVFGNode-members.html +45 -44
  72. package/SVF-doxygen/html/html/classSVF_1_1FormalParmVFGNode.html +65 -28
  73. package/SVF-doxygen/html/html/classSVF_1_1FormalRetVFGNode-members.html +49 -48
  74. package/SVF-doxygen/html/html/classSVF_1_1FormalRetVFGNode.html +65 -28
  75. package/SVF-doxygen/html/html/classSVF_1_1GepVFGNode-members.html +51 -50
  76. package/SVF-doxygen/html/html/classSVF_1_1GepVFGNode.html +50 -14
  77. package/SVF-doxygen/html/html/classSVF_1_1IndirectSVFGEdge.html +2 -2
  78. package/SVF-doxygen/html/html/classSVF_1_1InterMSSAPHISVFGNode-members.html +58 -57
  79. package/SVF-doxygen/html/html/classSVF_1_1InterMSSAPHISVFGNode.html +45 -42
  80. package/SVF-doxygen/html/html/classSVF_1_1InterPHIVFGNode-members.html +56 -55
  81. package/SVF-doxygen/html/html/classSVF_1_1InterPHIVFGNode.html +40 -37
  82. package/SVF-doxygen/html/html/classSVF_1_1IntraDirSVFGEdge.html +2 -2
  83. package/SVF-doxygen/html/html/classSVF_1_1IntraIndSVFGEdge.html +2 -2
  84. package/SVF-doxygen/html/html/classSVF_1_1IntraMSSAPHISVFGNode-members.html +56 -55
  85. package/SVF-doxygen/html/html/classSVF_1_1IntraMSSAPHISVFGNode.html +26 -23
  86. package/SVF-doxygen/html/html/classSVF_1_1IntraPHIVFGNode-members.html +57 -56
  87. package/SVF-doxygen/html/html/classSVF_1_1IntraPHIVFGNode.html +26 -23
  88. package/SVF-doxygen/html/html/classSVF_1_1LoadVFGNode-members.html +54 -53
  89. package/SVF-doxygen/html/html/classSVF_1_1LoadVFGNode.html +50 -14
  90. package/SVF-doxygen/html/html/classSVF_1_1MRGenerator.html +2 -2
  91. package/SVF-doxygen/html/html/classSVF_1_1MRSVFGNode-members.html +44 -43
  92. package/SVF-doxygen/html/html/classSVF_1_1MRSVFGNode.html +48 -13
  93. package/SVF-doxygen/html/html/classSVF_1_1MSSAPHISVFGNode-members.html +53 -52
  94. package/SVF-doxygen/html/html/classSVF_1_1MSSAPHISVFGNode.html +36 -33
  95. package/SVF-doxygen/html/html/classSVF_1_1MTASVFGBuilder.html +32 -32
  96. package/SVF-doxygen/html/html/classSVF_1_1NodeIDAllocator_1_1Clusterer.html +1 -2
  97. package/SVF-doxygen/html/html/classSVF_1_1NullPtrVFGNode-members.html +46 -45
  98. package/SVF-doxygen/html/html/classSVF_1_1NullPtrVFGNode.html +58 -21
  99. package/SVF-doxygen/html/html/classSVF_1_1PHIVFGNode-members.html +53 -52
  100. package/SVF-doxygen/html/html/classSVF_1_1PHIVFGNode.html +71 -34
  101. package/SVF-doxygen/html/html/classSVF_1_1RetDirSVFGEdge.html +2 -2
  102. package/SVF-doxygen/html/html/classSVF_1_1RetIndSVFGEdge.html +2 -2
  103. package/SVF-doxygen/html/html/classSVF_1_1SVFG.html +77 -77
  104. package/SVF-doxygen/html/html/classSVF_1_1SVFGBuilder.html +4 -4
  105. package/SVF-doxygen/html/html/classSVF_1_1SVFGOPT.html +29 -29
  106. package/SVF-doxygen/html/html/classSVF_1_1SaberAnnotator.html +1 -1
  107. package/SVF-doxygen/html/html/classSVF_1_1SaberSVFGBuilder.html +7 -7
  108. package/SVF-doxygen/html/html/classSVF_1_1StmtVFGNode-members.html +51 -50
  109. package/SVF-doxygen/html/html/classSVF_1_1StmtVFGNode.html +35 -32
  110. package/SVF-doxygen/html/html/classSVF_1_1StoreVFGNode-members.html +54 -53
  111. package/SVF-doxygen/html/html/classSVF_1_1StoreVFGNode.html +51 -14
  112. package/SVF-doxygen/html/html/classSVF_1_1ThreadMHPIndSVFGEdge.html +2 -2
  113. package/SVF-doxygen/html/html/classSVF_1_1UnaryOPVFGNode-members.html +55 -54
  114. package/SVF-doxygen/html/html/classSVF_1_1UnaryOPVFGNode.html +76 -39
  115. package/SVF-doxygen/html/html/classSVF_1_1VFG.html +70 -70
  116. package/SVF-doxygen/html/html/classSVF_1_1VFGEdge.html +2 -2
  117. package/SVF-doxygen/html/html/classSVF_1_1VFGNode-members.html +43 -42
  118. package/SVF-doxygen/html/html/classSVF_1_1VFGNode.html +41 -9
  119. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive.html +10 -10
  120. package/SVF-doxygen/html/html/functions_func_g.html +32 -12
  121. package/SVF-doxygen/html/html/functions_func_t.html +2 -2
  122. package/SVF-doxygen/html/html/functions_g.html +27 -7
  123. package/SVF-doxygen/html/html/functions_i.html +1 -1
  124. package/SVF-doxygen/html/html/functions_l.html +5 -5
  125. package/SVF-doxygen/html/html/functions_p.html +6 -6
  126. package/SVF-doxygen/html/html/functions_r.html +8 -8
  127. package/SVF-doxygen/html/html/functions_t.html +8 -6
  128. package/SVF-doxygen/html/html/functions_v.html +3 -3
  129. package/SVF-doxygen/html/html/namespaceSVF.html +1 -1
  130. package/SVF-doxygen/html/html/namespaceSVF_1_1SVFUtil.html +7 -7
  131. package/SVF-doxygen/html/html/namespacemembers_p.html +1 -1
  132. package/SVF-doxygen/html/html/namespacemembers_type_p.html +1 -1
  133. package/SVF-doxygen/html/html/search/all_10.js +5 -5
  134. package/SVF-doxygen/html/html/search/all_12.js +3 -3
  135. package/SVF-doxygen/html/html/search/all_13.js +3 -3
  136. package/SVF-doxygen/html/html/search/all_14.js +7 -7
  137. package/SVF-doxygen/html/html/search/all_16.js +2 -2
  138. package/SVF-doxygen/html/html/search/all_7.js +1 -0
  139. package/SVF-doxygen/html/html/search/all_9.js +1 -1
  140. package/SVF-doxygen/html/html/search/all_c.js +3 -3
  141. package/SVF-doxygen/html/html/search/all_d.js +1 -1
  142. package/SVF-doxygen/html/html/search/all_e.js +3 -3
  143. package/SVF-doxygen/html/html/search/all_f.js +1 -1
  144. package/SVF-doxygen/html/html/search/functions_10.js +1 -1
  145. package/SVF-doxygen/html/html/search/functions_11.js +1 -1
  146. package/SVF-doxygen/html/html/search/functions_6.js +1 -0
  147. package/SVF-doxygen/html/html/search/functions_8.js +1 -1
  148. package/SVF-doxygen/html/html/search/functions_e.js +1 -1
  149. package/SVF-doxygen/html/html/search/typedefs_f.js +1 -1
  150. package/SVF-doxygen/html/html/search/variables_14.js +4 -4
  151. package/SVF-doxygen/html/html/search/variables_d.js +1 -1
  152. package/SVF-doxygen/html/html/search/variables_e.js +2 -2
  153. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01SVFG_01_5_01_4.html +48 -48
  154. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01VFG_01_5_01_4.html +36 -36
  155. package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1SVFGNodeLockSpan_01_4.html +1 -1
  156. package/include/Graphs/SVFGNode.h +6 -1
  157. package/include/Graphs/VFG.h +1 -1
  158. package/include/Graphs/VFGNode.h +38 -3
  159. package/include/Util/SVFUtil.h +1 -1
  160. package/lib/Graphs/SVFG.cpp +9 -0
  161. package/lib/Graphs/VFG.cpp +86 -0
  162. package/lib/Util/NodeIDAllocator.cpp +2 -2
  163. package/lib/WPA/AndersenStat.cpp +0 -8
  164. package/package.json +1 -1
@@ -818,7 +818,7 @@ Additional Inherited Members</h2></td></tr>
818
818
 
819
819
  <p class="definition">Definition at line <a class="el" href="FlowSensitiveStat_8cpp_source.html#l00476">476</a> of file <a class="el" href="FlowSensitiveStat_8cpp_source.html">FlowSensitiveStat.cpp</a>.</p>
820
820
  <div class="fragment"><div class="line"><a name="l00477"></a><span class="lineno"> 477</span>&#160;{</div><div class="line"><a name="l00478"></a><span class="lineno"> 478</span>&#160; SVFG::SVFGNodeIDToNodeMapTy::const_iterator it = <a class="code" href="classSVF_1_1FlowSensitiveStat.html#af7e04f73ee17647c52e571cadef8729f">fspta</a>-&gt;<a class="code" href="classSVF_1_1FlowSensitive.html#aae032e5f5d53b131d0112dc8faa464a9">svfg</a>-&gt;<a class="code" href="classSVF_1_1GenericGraph.html#a0d9744b1b0e7a09a6f7af29188e243b7">begin</a>();</div><div class="line"><a name="l00479"></a><span class="lineno"> 479</span>&#160; SVFG::SVFGNodeIDToNodeMapTy::const_iterator eit = <a class="code" href="classSVF_1_1FlowSensitiveStat.html#af7e04f73ee17647c52e571cadef8729f">fspta</a>-&gt;<a class="code" href="classSVF_1_1FlowSensitive.html#aae032e5f5d53b131d0112dc8faa464a9">svfg</a>-&gt;<a class="code" href="classSVF_1_1GenericGraph.html#a4bef15157423cef48dc7333a803cd27d">end</a>();</div><div class="line"><a name="l00480"></a><span class="lineno"> 480</span>&#160; <span class="keywordflow">for</span> (; it != eit; ++it)</div><div class="line"><a name="l00481"></a><span class="lineno"> 481</span>&#160; {</div><div class="line"><a name="l00482"></a><span class="lineno"> 482</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGNode.html">SVFGNode</a>* node = it-&gt;second;</div><div class="line"><a name="l00483"></a><span class="lineno"> 483</span>&#160; <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1StoreVFGNode.html">StoreSVFGNode</a>* store = SVFUtil::dyn_cast&lt;StoreSVFGNode&gt;(node))</div><div class="line"><a name="l00484"></a><span class="lineno"> 484</span>&#160; {</div><div class="line"><a name="l00485"></a><span class="lineno"> 485</span>&#160; <a class="code" href="classSVF_1_1FlowSensitiveStat.html#a04466753c771238c6e1cc57964061dce">calculateAddrVarPts</a>(store-&gt;getPAGDstNodeID(), store);</div><div class="line"><a name="l00486"></a><span class="lineno"> 486</span>&#160; }</div><div class="line"><a name="l00487"></a><span class="lineno"> 487</span>&#160; }</div><div class="line"><a name="l00488"></a><span class="lineno"> 488</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#l00361">GenericGraph.h:361</a></div></div>
821
- <div class="ttc" id="classSVF_1_1StoreVFGNode_html"><div class="ttname"><a href="classSVF_1_1StoreVFGNode.html">SVF::StoreVFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="VFGNode_8h_source.html#l00235">VFGNode.h:235</a></div></div>
821
+ <div class="ttc" id="classSVF_1_1StoreVFGNode_html"><div class="ttname"><a href="classSVF_1_1StoreVFGNode.html">SVF::StoreVFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="VFGNode_8h_source.html#l00240">VFGNode.h:240</a></div></div>
822
822
  <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#l00250">FlowSensitive.h:250</a></div></div>
823
823
  <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>
824
824
  <div class="ttc" id="classSVF_1_1GenericGraph_html_a4bef15157423cef48dc7333a803cd27d"><div class="ttname"><a href="classSVF_1_1GenericGraph.html#a4bef15157423cef48dc7333a803cd27d">SVF::GenericGraph::end</a></div><div class="ttdeci">iterator end()</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00365">GenericGraph.h:365</a></div></div>
@@ -864,7 +864,7 @@ Additional Inherited Members</h2></td></tr>
864
864
 
865
865
  <p class="definition">Definition at line <a class="el" href="FlowSensitiveStat_8cpp_source.html#l00361">361</a> of file <a class="el" href="FlowSensitiveStat_8cpp_source.html">FlowSensitiveStat.cpp</a>.</p>
866
866
  <div class="fragment"><div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160;{</div><div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160; <span class="comment">// Get number of nodes which have IN/OUT set</span></div><div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160; <a class="code" href="classSVF_1_1FlowSensitiveStat.html#aa39c5d81cef922d7a0f98913dbf51fb0">_NumOfSVFGNodesHaveInOut</a>[inOrOut] = data.size();</div><div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160;</div><div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> inOutPtsSize = 0;</div><div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160; DFInOutMap::const_iterator it = data.begin();</div><div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160; DFInOutMap::const_iterator eit = data.end();</div><div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160; <span class="keywordflow">for</span> (; it != eit; ++it)</div><div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160; {</div><div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGNode.html">SVFGNode</a>* node = <a class="code" href="classSVF_1_1FlowSensitiveStat.html#af7e04f73ee17647c52e571cadef8729f">fspta</a>-&gt;<a class="code" href="classSVF_1_1FlowSensitive.html#aae032e5f5d53b131d0112dc8faa464a9">svfg</a>-&gt;<a class="code" href="classSVF_1_1SVFG.html#a7ace06b6c893b31f7dec2abe54e33e11">getSVFGNode</a>(it-&gt;first);</div><div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160;</div><div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160; <span class="comment">// Count number of SVFG nodes have IN/OUT set.</span></div><div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160; <span class="keywordflow">if</span> (SVFUtil::isa&lt;FormalINSVFGNode&gt;(node))</div><div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160; <a class="code" href="classSVF_1_1FlowSensitiveStat.html#a2e9a786af3bce4b345d88ff05cd71f0f">_NumOfFormalInSVFGNodesHaveInOut</a>[inOrOut]++;</div><div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa&lt;FormalOUTSVFGNode&gt;(node))</div><div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160; <a class="code" href="classSVF_1_1FlowSensitiveStat.html#a1cfd15cd46178718ea459f79738e0b69">_NumOfFormalOutSVFGNodesHaveInOut</a>[inOrOut]++;</div><div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa&lt;ActualINSVFGNode&gt;(node))</div><div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160; <a class="code" href="classSVF_1_1FlowSensitiveStat.html#a0530fa56a9cea05d25ee350e9db9ed2a">_NumOfActualInSVFGNodesHaveInOut</a>[inOrOut]++;</div><div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa&lt;ActualOUTSVFGNode&gt;(node))</div><div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160; <a class="code" href="classSVF_1_1FlowSensitiveStat.html#a3ac011649b3c0ced46283265ba88dd0e">_NumOfActualOutSVFGNodesHaveInOut</a>[inOrOut]++;</div><div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa&lt;LoadSVFGNode&gt;(node))</div><div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160; <a class="code" href="classSVF_1_1FlowSensitiveStat.html#ab6fdf88fe931ead9a9b8f353c547c4ae">_NumOfLoadSVFGNodesHaveInOut</a>[inOrOut]++;</div><div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa&lt;StoreSVFGNode&gt;(node))</div><div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160; <a class="code" href="classSVF_1_1FlowSensitiveStat.html#ae0db364bf6657c770deabbe75d901a46">_NumOfStoreSVFGNodesHaveInOut</a>[inOrOut]++;</div><div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa&lt;MSSAPHISVFGNode&gt;(node))</div><div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160; <a class="code" href="classSVF_1_1FlowSensitiveStat.html#a60741c38448e909388942a5e9f5b5ef4">_NumOfMSSAPhiSVFGNodesHaveInOut</a>[inOrOut]++;</div><div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(<span class="keyword">false</span> &amp;&amp; <span class="stringliteral">&quot;unexpected node have IN/OUT set&quot;</span>);</div><div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160;</div><div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160; <span class="comment">/*-----------------------------------------------------*/</span></div><div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160;</div><div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160; <span class="comment">// Count SVFIR nodes and their points-to set size.</span></div><div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1FlowSensitiveStat.html#a1b605e86f33e79f7d7cd88dc54f2c19e">PtsMap</a>&amp; cptsMap = it-&gt;second;</div><div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160; PtsMap::const_iterator ptsIt = cptsMap.begin();</div><div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160; PtsMap::const_iterator ptsEit = cptsMap.end();</div><div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160; <span class="keywordflow">for</span> (; ptsIt != ptsEit; ++ptsIt)</div><div class="line"><a name="l00398"></a><span class="lineno"> 398</span>&#160; {</div><div class="line"><a name="l00399"></a><span class="lineno"> 399</span>&#160; <span class="keywordflow">if</span> (ptsIt-&gt;second.empty()) </div><div class="line"><a name="l00400"></a><span class="lineno"> 400</span>&#160; {</div><div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160; <a class="code" href="classSVF_1_1FlowSensitiveStat.html#a2162dffeb03e84daca52d6d8429b8529">_NumOfVarHaveEmptyINOUTPts</a>[inOrOut]++;</div><div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160; <span class="keywordflow">continue</span>;</div><div class="line"><a name="l00403"></a><span class="lineno"> 403</span>&#160; }</div><div class="line"><a name="l00404"></a><span class="lineno"> 404</span>&#160;</div><div class="line"><a name="l00405"></a><span class="lineno"> 405</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> ptsNum = ptsIt-&gt;second.count(); </div><div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#160;</div><div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160; <span class="comment">// Only node with non-empty points-to set are counted.</span></div><div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160; <a class="code" href="classSVF_1_1FlowSensitiveStat.html#ab6ccd8de2b7573f34c4d04b7f40d6522">_NumOfVarHaveINOUTPts</a>[inOrOut]++;</div><div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160;</div><div class="line"><a name="l00410"></a><span class="lineno"> 410</span>&#160; <span class="keywordflow">if</span> (SVFUtil::isa&lt;FormalINSVFGNode&gt;(node))</div><div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160; <a class="code" href="classSVF_1_1FlowSensitiveStat.html#acebccfa66669033af9f9d4b3d021ec1a">_NumOfVarHaveINOUTPtsInFormalIn</a>[inOrOut]++;</div><div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa&lt;FormalOUTSVFGNode&gt;(node))</div><div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160; <a class="code" href="classSVF_1_1FlowSensitiveStat.html#a0f9098bb73b06ba963bdce8ea26f0fa3">_NumOfVarHaveINOUTPtsInFormalOut</a>[inOrOut]++;</div><div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa&lt;ActualINSVFGNode&gt;(node))</div><div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160; <a class="code" href="classSVF_1_1FlowSensitiveStat.html#a505057e9b8962359c9461395fd7ed138">_NumOfVarHaveINOUTPtsInActualIn</a>[inOrOut]++;</div><div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa&lt;ActualOUTSVFGNode&gt;(node))</div><div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160; <a class="code" href="classSVF_1_1FlowSensitiveStat.html#abeef6e8ba26d73d9e981a23d9f96e4d7">_NumOfVarHaveINOUTPtsInActualOut</a>[inOrOut]++;</div><div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa&lt;LoadSVFGNode&gt;(node))</div><div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160; <a class="code" href="classSVF_1_1FlowSensitiveStat.html#aa754517cc9b5faeea010e336027c0ab4">_NumOfVarHaveINOUTPtsInLoad</a>[inOrOut]++;</div><div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa&lt;StoreSVFGNode&gt;(node))</div><div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160; <a class="code" href="classSVF_1_1FlowSensitiveStat.html#a21f2c005bf927c0c23772172c08402bf">_NumOfVarHaveINOUTPtsInStore</a>[inOrOut]++;</div><div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa&lt;MSSAPHISVFGNode&gt;(node))</div><div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160; <a class="code" href="classSVF_1_1FlowSensitiveStat.html#a90f1c6072a153c856765b24bbcbfaeef">_NumOfVarHaveINOUTPtsInMSSAPhi</a>[inOrOut]++;</div><div class="line"><a name="l00424"></a><span class="lineno"> 424</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00425"></a><span class="lineno"> 425</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(<span class="keyword">false</span> &amp;&amp; <span class="stringliteral">&quot;unexpected node have IN/OUT set&quot;</span>);</div><div class="line"><a name="l00426"></a><span class="lineno"> 426</span>&#160;</div><div class="line"><a name="l00427"></a><span class="lineno"> 427</span>&#160; inOutPtsSize += ptsNum;</div><div class="line"><a name="l00428"></a><span class="lineno"> 428</span>&#160;</div><div class="line"><a name="l00429"></a><span class="lineno"> 429</span>&#160; <span class="keywordflow">if</span> (ptsNum &gt; <a class="code" href="classSVF_1_1FlowSensitiveStat.html#ab3e56ed16ce45d35c8f35f1fc1248c36">_MaxInOutPtsSize</a>[inOrOut])</div><div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160; <a class="code" href="classSVF_1_1FlowSensitiveStat.html#ab3e56ed16ce45d35c8f35f1fc1248c36">_MaxInOutPtsSize</a>[inOrOut] = ptsNum;</div><div class="line"><a name="l00431"></a><span class="lineno"> 431</span>&#160;</div><div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160; <span class="keywordflow">if</span> (ptsNum &gt; <a class="code" href="classSVF_1_1FlowSensitiveStat.html#a737d955e3707cf758a5580eab2e60e96">_MaxPtsSize</a>) <a class="code" href="classSVF_1_1FlowSensitiveStat.html#a737d955e3707cf758a5580eab2e60e96">_MaxPtsSize</a> = ptsNum;</div><div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160; }</div><div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160; }</div><div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160;</div><div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1FlowSensitiveStat.html#ab6ccd8de2b7573f34c4d04b7f40d6522">_NumOfVarHaveINOUTPts</a>[inOrOut] != 0)</div><div class="line"><a name="l00437"></a><span class="lineno"> 437</span>&#160; <a class="code" href="classSVF_1_1FlowSensitiveStat.html#af45e08caf715cca450390ffc2fddb049">_AvgInOutPtsSize</a>[inOrOut] = (double)inOutPtsSize / <a class="code" href="classSVF_1_1FlowSensitiveStat.html#ab6ccd8de2b7573f34c4d04b7f40d6522">_NumOfVarHaveINOUTPts</a>[inOrOut];</div><div class="line"><a name="l00438"></a><span class="lineno"> 438</span>&#160;</div><div class="line"><a name="l00439"></a><span class="lineno"> 439</span>&#160; <a class="code" href="classSVF_1_1FlowSensitiveStat.html#a8b5bfc9c3cbf9451603860789640246a">_TotalPtsSize</a> += inOutPtsSize;</div><div class="line"><a name="l00440"></a><span class="lineno"> 440</span>&#160;</div><div class="line"><a name="l00441"></a><span class="lineno"> 441</span>&#160; <span class="comment">// How many IN/OUT PTSs could we have *potentially* had?</span></div><div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160; <span class="comment">// l&#39;-o-&gt;l, l&#39;&#39;-o-&gt;l, ..., means there is a possibility of 1 IN PTS.</span></div><div class="line"><a name="l00443"></a><span class="lineno"> 443</span>&#160; <span class="comment">// *p = q &amp;&amp; { o } in pts_ander(p) means there is a possibility of 1 OUT PTS.</span></div><div class="line"><a name="l00444"></a><span class="lineno"> 444</span>&#160; <span class="comment">// For OUTs at stores, we must also account for WU/SUs.</span></div><div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFG.html">SVFG</a> *svfg = <a class="code" href="classSVF_1_1FlowSensitiveStat.html#af7e04f73ee17647c52e571cadef8729f">fspta</a>-&gt;<a class="code" href="classSVF_1_1FlowSensitive.html#aae032e5f5d53b131d0112dc8faa464a9">svfg</a>;</div><div class="line"><a name="l00446"></a><span class="lineno"> 446</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="classSVF_1_1VFG.html#a225a91c04afac6a8fe198e9860890a52">SVFG::const_iterator</a> it = svfg-&gt;<a class="code" href="classSVF_1_1GenericGraph.html#a0d9744b1b0e7a09a6f7af29188e243b7">begin</a>(); it != svfg-&gt;<a class="code" href="classSVF_1_1GenericGraph.html#a4bef15157423cef48dc7333a803cd27d">end</a>(); ++it)</div><div class="line"><a name="l00447"></a><span class="lineno"> 447</span>&#160; {</div><div class="line"><a name="l00448"></a><span class="lineno"> 448</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGNode.html">SVFGNode</a> *sn = it-&gt;second;</div><div class="line"><a name="l00449"></a><span class="lineno"> 449</span>&#160;</div><div class="line"><a name="l00450"></a><span class="lineno"> 450</span>&#160; <span class="comment">// Unique objects coming into s.</span></div><div class="line"><a name="l00451"></a><span class="lineno"> 451</span>&#160; <a class="code" href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">NodeBS</a> incomingObjects;</div><div class="line"><a name="l00452"></a><span class="lineno"> 452</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGEdge.html">SVFGEdge</a> *e : sn-&gt;<a class="code" href="classSVF_1_1GenericNode.html#afc8b5f86d7795b6a0dfc0687d942d79b">getInEdges</a>())</div><div class="line"><a name="l00453"></a><span class="lineno"> 453</span>&#160; {</div><div class="line"><a name="l00454"></a><span class="lineno"> 454</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1IndirectSVFGEdge.html">IndirectSVFGEdge</a> *ie = <a class="code" href="namespaceSVF_1_1SVFUtil.html#a8182be247907420db00837cef9bcfa70">SVFUtil::dyn_cast</a>&lt;<a class="code" href="classSVF_1_1IndirectSVFGEdge.html">IndirectSVFGEdge</a>&gt;(e);</div><div class="line"><a name="l00455"></a><span class="lineno"> 455</span>&#160; <span class="keywordflow">if</span> (!ie) <span class="keywordflow">continue</span>;</div><div class="line"><a name="l00456"></a><span class="lineno"> 456</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> o : ie-&gt;<a class="code" href="classSVF_1_1IndirectSVFGEdge.html#a30aca718d25924f1babdf348bb0ace71">getPointsTo</a>()) incomingObjects.set(o);</div><div class="line"><a name="l00457"></a><span class="lineno"> 457</span>&#160; }</div><div class="line"><a name="l00458"></a><span class="lineno"> 458</span>&#160;</div><div class="line"><a name="l00459"></a><span class="lineno"> 459</span>&#160; <a class="code" href="classSVF_1_1FlowSensitiveStat.html#a08ea2c3d891337992291123a1bb4da97">_PotentialNumOfVarHaveINOUTPts</a>[<a class="code" href="classSVF_1_1FlowSensitiveStat.html#ab11996ab5606f51c977b9b1385c13d71ad0b57a5d90c72b67337a68c04ae34739">IN</a>] += incomingObjects.count();</div><div class="line"><a name="l00460"></a><span class="lineno"> 460</span>&#160;</div><div class="line"><a name="l00461"></a><span class="lineno"> 461</span>&#160; <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1StoreVFGNode.html">StoreSVFGNode</a> *store = SVFUtil::dyn_cast&lt;StoreSVFGNode&gt;(sn))</div><div class="line"><a name="l00462"></a><span class="lineno"> 462</span>&#160; {</div><div class="line"><a name="l00463"></a><span class="lineno"> 463</span>&#160; <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> p = store-&gt;getPAGDstNodeID();</div><div class="line"><a name="l00464"></a><span class="lineno"> 464</span>&#160; <span class="comment">// Reuse incomingObjects; what&#39;s already in there will be propagated forwarded</span></div><div class="line"><a name="l00465"></a><span class="lineno"> 465</span>&#160; <span class="comment">// as a WU/SU, and what&#39;s not (first defined at the store), will be added.</span></div><div class="line"><a name="l00466"></a><span class="lineno"> 466</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> o : <a class="code" href="classSVF_1_1FlowSensitiveStat.html#af7e04f73ee17647c52e571cadef8729f">fspta</a>-&gt;<a class="code" href="classSVF_1_1FlowSensitive.html#a5cfee013a1a5821ef0c449842dd8690d">ander</a>-&gt;<a class="code" href="classSVF_1_1Andersen.html#a187285a5bdf9422d9188b2b11b667639">getPts</a>(p)) incomingObjects.set(o);</div><div class="line"><a name="l00467"></a><span class="lineno"> 467</span>&#160;</div><div class="line"><a name="l00468"></a><span class="lineno"> 468</span>&#160; <a class="code" href="classSVF_1_1FlowSensitiveStat.html#a08ea2c3d891337992291123a1bb4da97">_PotentialNumOfVarHaveINOUTPts</a>[<a class="code" href="classSVF_1_1FlowSensitiveStat.html#ab11996ab5606f51c977b9b1385c13d71ac018f116c78ed5e314b52e5d743f3fa5">OUT</a>] += incomingObjects.count();</div><div class="line"><a name="l00469"></a><span class="lineno"> 469</span>&#160; }</div><div class="line"><a name="l00470"></a><span class="lineno"> 470</span>&#160; }</div><div class="line"><a name="l00471"></a><span class="lineno"> 471</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#l00361">GenericGraph.h:361</a></div></div>
867
- <div class="ttc" id="classSVF_1_1StoreVFGNode_html"><div class="ttname"><a href="classSVF_1_1StoreVFGNode.html">SVF::StoreVFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="VFGNode_8h_source.html#l00235">VFGNode.h:235</a></div></div>
867
+ <div class="ttc" id="classSVF_1_1StoreVFGNode_html"><div class="ttname"><a href="classSVF_1_1StoreVFGNode.html">SVF::StoreVFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="VFGNode_8h_source.html#l00240">VFGNode.h:240</a></div></div>
868
868
  <div class="ttc" id="classSVF_1_1Andersen_html_a187285a5bdf9422d9188b2b11b667639"><div class="ttname"><a href="classSVF_1_1Andersen.html#a187285a5bdf9422d9188b2b11b667639">SVF::Andersen::getPts</a></div><div class="ttdeci">virtual const PointsTo &amp; getPts(NodeID id)</div><div class="ttdoc">Operation of points-to set. </div><div class="ttdef"><b>Definition:</b> <a href="Andersen_8h_source.html#l00216">Andersen.h:216</a></div></div>
869
869
  <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#l00250">FlowSensitive.h:250</a></div></div>
870
870
  <div class="ttc" id="classSVF_1_1FlowSensitiveStat_html_a2162dffeb03e84daca52d6d8429b8529"><div class="ttname"><a href="classSVF_1_1FlowSensitiveStat.html#a2162dffeb03e84daca52d6d8429b8529">SVF::FlowSensitiveStat::_NumOfVarHaveEmptyINOUTPts</a></div><div class="ttdeci">u32_t _NumOfVarHaveEmptyINOUTPts[2]</div><div class="ttdef"><b>Definition:</b> <a href="WPAStat_8h_source.html#l00139">WPAStat.h:139</a></div></div>