svf-tools 1.0.577 → 1.0.579

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 (166) hide show
  1. package/SVF-doxygen/html/html/CFLAlias_8cpp.html +0 -1
  2. package/SVF-doxygen/html/html/CFLAlias_8cpp_source.html +10 -42
  3. package/SVF-doxygen/html/html/CFLAlias_8h.html +1 -8
  4. package/SVF-doxygen/html/html/CFLAlias_8h_source.html +22 -49
  5. package/SVF-doxygen/html/html/CFLBase_8cpp.html +89 -0
  6. package/SVF-doxygen/html/html/CFLBase_8cpp_source.html +119 -0
  7. package/SVF-doxygen/html/html/CFLBase_8h.html +104 -0
  8. package/SVF-doxygen/html/html/CFLBase_8h_source.html +117 -0
  9. package/SVF-doxygen/html/html/CFLGraph_8cpp_source.html +2 -2
  10. package/SVF-doxygen/html/html/CFLGraph_8h_source.html +5 -4
  11. package/SVF-doxygen/html/html/CFLStat_8cpp_source.html +17 -58
  12. package/SVF-doxygen/html/html/CFLStat_8h.html +1 -0
  13. package/SVF-doxygen/html/html/CFLStat_8h_source.html +12 -22
  14. package/SVF-doxygen/html/html/CFLVF_8cpp.html +0 -2
  15. package/SVF-doxygen/html/html/CFLVF_8cpp_source.html +4 -15
  16. package/SVF-doxygen/html/html/CFLVF_8h.html +3 -8
  17. package/SVF-doxygen/html/html/CFLVF_8h_source.html +11 -26
  18. package/SVF-doxygen/html/html/CHG_8cpp_source.html +1 -1
  19. package/SVF-doxygen/html/html/CHG_8h_source.html +1 -1
  20. package/SVF-doxygen/html/html/ConsGNode_8h_source.html +5 -5
  21. package/SVF-doxygen/html/html/ConsG_8cpp_source.html +1 -1
  22. package/SVF-doxygen/html/html/ConsG_8h_source.html +1 -1
  23. package/SVF-doxygen/html/html/DCHG_8h_source.html +1 -1
  24. package/SVF-doxygen/html/html/DataFlowUtil_8cpp_source.html +1 -1
  25. package/SVF-doxygen/html/html/GEPTypeBridgeIterator_8h_source.html +1 -1
  26. package/SVF-doxygen/html/html/GenericGraph_8h_source.html +1 -1
  27. package/SVF-doxygen/html/html/GraphPrinter_8h_source.html +1 -1
  28. package/SVF-doxygen/html/html/ICFG_8cpp_source.html +1 -1
  29. package/SVF-doxygen/html/html/ICFG_8h_source.html +1 -1
  30. package/SVF-doxygen/html/html/IRGraph_8cpp_source.html +1 -1
  31. package/SVF-doxygen/html/html/IRGraph_8h_source.html +1 -1
  32. package/SVF-doxygen/html/html/PTACallGraph_8cpp_source.html +1 -1
  33. package/SVF-doxygen/html/html/PTACallGraph_8h_source.html +1 -1
  34. package/SVF-doxygen/html/html/SVFG_8cpp_source.html +1 -1
  35. package/SVF-doxygen/html/html/SVFG_8h_source.html +1 -1
  36. package/SVF-doxygen/html/html/TCT_8cpp_source.html +1 -1
  37. package/SVF-doxygen/html/html/TCT_8h_source.html +1 -1
  38. package/SVF-doxygen/html/html/VFG_8cpp_source.html +1 -1
  39. package/SVF-doxygen/html/html/VFG_8h_source.html +1 -1
  40. package/SVF-doxygen/html/html/annotated.html +271 -270
  41. package/SVF-doxygen/html/html/cfl_8cpp.html +6 -9
  42. package/SVF-doxygen/html/html/cfl_8cpp_source.html +6 -8
  43. package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl.html +9 -8
  44. package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl.png +0 -0
  45. package/SVF-doxygen/html/html/classSVF_1_1CFLAlias-members.html +120 -121
  46. package/SVF-doxygen/html/html/classSVF_1_1CFLAlias.html +212 -713
  47. package/SVF-doxygen/html/html/classSVF_1_1CFLAlias.png +0 -0
  48. package/SVF-doxygen/html/html/classSVF_1_1CFLBase-members.html +270 -0
  49. package/SVF-doxygen/html/html/classSVF_1_1CFLBase.html +1199 -0
  50. package/SVF-doxygen/html/html/classSVF_1_1CFLBase.png +0 -0
  51. package/SVF-doxygen/html/html/classSVF_1_1CFLGraph-members.html +21 -20
  52. package/SVF-doxygen/html/html/classSVF_1_1CFLGraph.html +33 -3
  53. package/SVF-doxygen/html/html/classSVF_1_1CFLStat-members.html +21 -31
  54. package/SVF-doxygen/html/html/classSVF_1_1CFLStat.html +62 -358
  55. package/SVF-doxygen/html/html/classSVF_1_1CFLVF-members.html +94 -80
  56. package/SVF-doxygen/html/html/classSVF_1_1CFLVF.html +207 -287
  57. package/SVF-doxygen/html/html/classSVF_1_1CFLVF.png +0 -0
  58. package/SVF-doxygen/html/html/classSVF_1_1ConstraintNode-members.html +26 -26
  59. package/SVF-doxygen/html/html/classSVF_1_1ConstraintNode.html +43 -43
  60. package/SVF-doxygen/html/html/classSVF_1_1GenericNode.html +21 -20
  61. package/SVF-doxygen/html/html/classSVF_1_1GenericNode.png +0 -0
  62. package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis.html +12 -11
  63. package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis.png +0 -0
  64. package/SVF-doxygen/html/html/classSVF_1_1SVFStat.html +1 -1
  65. package/SVF-doxygen/html/html/classes.html +96 -95
  66. package/SVF-doxygen/html/html/dda_8cpp_source.html +1 -1
  67. package/SVF-doxygen/html/html/dir_98f9a352f241e0e917d4efaa4086f6e8.html +2 -0
  68. package/SVF-doxygen/html/html/dir_ae8aa099e368efaa962140c6624142bc.html +2 -0
  69. package/SVF-doxygen/html/html/files.html +15 -13
  70. package/SVF-doxygen/html/html/functions.html +0 -8
  71. package/SVF-doxygen/html/html/functions_0x7e.html +2 -5
  72. package/SVF-doxygen/html/html/functions_a.html +9 -11
  73. package/SVF-doxygen/html/html/functions_b.html +11 -4
  74. package/SVF-doxygen/html/html/functions_c.html +33 -32
  75. package/SVF-doxygen/html/html/functions_f.html +16 -14
  76. package/SVF-doxygen/html/html/functions_func.html +6 -7
  77. package/SVF-doxygen/html/html/functions_func_0x7e.html +2 -5
  78. package/SVF-doxygen/html/html/functions_func_b.html +7 -0
  79. package/SVF-doxygen/html/html/functions_func_c.html +31 -23
  80. package/SVF-doxygen/html/html/functions_func_f.html +3 -1
  81. package/SVF-doxygen/html/html/functions_func_g.html +14 -11
  82. package/SVF-doxygen/html/html/functions_func_i.html +9 -7
  83. package/SVF-doxygen/html/html/functions_func_n.html +3 -0
  84. package/SVF-doxygen/html/html/functions_func_p.html +1 -1
  85. package/SVF-doxygen/html/html/functions_func_s.html +14 -13
  86. package/SVF-doxygen/html/html/functions_g.html +19 -15
  87. package/SVF-doxygen/html/html/functions_i.html +16 -14
  88. package/SVF-doxygen/html/html/functions_l.html +6 -6
  89. package/SVF-doxygen/html/html/functions_m.html +1 -2
  90. package/SVF-doxygen/html/html/functions_n.html +15 -8
  91. package/SVF-doxygen/html/html/functions_p.html +10 -10
  92. package/SVF-doxygen/html/html/functions_r.html +1 -1
  93. package/SVF-doxygen/html/html/functions_s.html +22 -21
  94. package/SVF-doxygen/html/html/functions_t.html +17 -13
  95. package/SVF-doxygen/html/html/functions_type_c.html +0 -1
  96. package/SVF-doxygen/html/html/functions_v.html +3 -3
  97. package/SVF-doxygen/html/html/functions_vars.html +0 -8
  98. package/SVF-doxygen/html/html/functions_vars_a.html +0 -1
  99. package/SVF-doxygen/html/html/functions_vars_c.html +0 -2
  100. package/SVF-doxygen/html/html/functions_vars_g.html +5 -4
  101. package/SVF-doxygen/html/html/functions_vars_m.html +0 -1
  102. package/SVF-doxygen/html/html/functions_vars_n.html +12 -8
  103. package/SVF-doxygen/html/html/functions_vars_p.html +1 -1
  104. package/SVF-doxygen/html/html/functions_vars_s.html +2 -4
  105. package/SVF-doxygen/html/html/functions_vars_t.html +12 -6
  106. package/SVF-doxygen/html/html/hierarchy.html +58 -57
  107. package/SVF-doxygen/html/html/mta_8cpp_source.html +1 -1
  108. package/SVF-doxygen/html/html/namespaceSVF.html +3 -0
  109. package/SVF-doxygen/html/html/saber_8cpp_source.html +1 -1
  110. package/SVF-doxygen/html/html/search/all_0.js +8 -8
  111. package/SVF-doxygen/html/html/search/all_1.js +2 -2
  112. package/SVF-doxygen/html/html/search/all_10.js +6 -6
  113. package/SVF-doxygen/html/html/search/all_11.js +1 -1
  114. package/SVF-doxygen/html/html/search/all_12.js +11 -11
  115. package/SVF-doxygen/html/html/search/all_13.js +16 -12
  116. package/SVF-doxygen/html/html/search/all_15.js +3 -3
  117. package/SVF-doxygen/html/html/search/all_16.js +1 -1
  118. package/SVF-doxygen/html/html/search/all_19.js +1 -2
  119. package/SVF-doxygen/html/html/search/all_2.js +2 -0
  120. package/SVF-doxygen/html/html/search/all_3.js +12 -7
  121. package/SVF-doxygen/html/html/search/all_6.js +4 -4
  122. package/SVF-doxygen/html/html/search/all_7.js +5 -4
  123. package/SVF-doxygen/html/html/search/all_9.js +4 -4
  124. package/SVF-doxygen/html/html/search/all_b.js +1 -1
  125. package/SVF-doxygen/html/html/search/all_c.js +4 -4
  126. package/SVF-doxygen/html/html/search/all_d.js +1 -1
  127. package/SVF-doxygen/html/html/search/all_e.js +14 -9
  128. package/SVF-doxygen/html/html/search/classes_2.js +1 -0
  129. package/SVF-doxygen/html/html/search/files_2.js +2 -0
  130. package/SVF-doxygen/html/html/search/functions_0.js +1 -1
  131. package/SVF-doxygen/html/html/search/functions_1.js +2 -0
  132. package/SVF-doxygen/html/html/search/functions_11.js +3 -3
  133. package/SVF-doxygen/html/html/search/functions_17.js +1 -2
  134. package/SVF-doxygen/html/html/search/functions_2.js +5 -2
  135. package/SVF-doxygen/html/html/search/functions_5.js +1 -1
  136. package/SVF-doxygen/html/html/search/functions_6.js +2 -1
  137. package/SVF-doxygen/html/html/search/functions_8.js +1 -1
  138. package/SVF-doxygen/html/html/search/functions_d.js +1 -0
  139. package/SVF-doxygen/html/html/search/functions_f.js +1 -1
  140. package/SVF-doxygen/html/html/search/typedefs_2.js +1 -1
  141. package/SVF-doxygen/html/html/search/variables_0.js +8 -8
  142. package/SVF-doxygen/html/html/search/variables_1.js +1 -1
  143. package/SVF-doxygen/html/html/search/variables_10.js +1 -1
  144. package/SVF-doxygen/html/html/search/variables_12.js +2 -2
  145. package/SVF-doxygen/html/html/search/variables_13.js +13 -9
  146. package/SVF-doxygen/html/html/search/variables_3.js +2 -2
  147. package/SVF-doxygen/html/html/search/variables_7.js +3 -2
  148. package/SVF-doxygen/html/html/search/variables_9.js +1 -1
  149. package/SVF-doxygen/html/html/search/variables_d.js +1 -1
  150. package/SVF-doxygen/html/html/search/variables_e.js +12 -8
  151. package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01Inverse_3_01SVF_1_1CFLNode_01_5_01_4_01_4.html +1 -1
  152. package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01SVF_1_1CFLGraph_01_5_01_4.html +2 -2
  153. package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01SVF_1_1CFLNode_01_5_01_4.html +1 -1
  154. package/SVF-doxygen/html/html/svf-ex_8cpp_source.html +1 -1
  155. package/SVF-doxygen/html/html/wpa_8cpp_source.html +1 -1
  156. package/include/CFL/CFLAlias.h +12 -51
  157. package/include/CFL/CFLBase.h +110 -0
  158. package/include/CFL/CFLStat.h +7 -18
  159. package/include/CFL/CFLVF.h +13 -25
  160. package/include/Graphs/CFLGraph.h +5 -0
  161. package/lib/CFL/CFLAlias.cpp +33 -66
  162. package/lib/CFL/CFLBase.cpp +133 -0
  163. package/lib/CFL/CFLStat.cpp +22 -149
  164. package/lib/CFL/CFLVF.cpp +28 -38
  165. package/package.json +1 -1
  166. package/tools/CFL/cfl.cpp +12 -25
@@ -80,26 +80,27 @@ Inheritance diagram for SVF::GenericNode&lt; NodeTy, EdgeTy &gt;:</div>
80
80
  <img src="classSVF_1_1GenericNode.png" usemap="#SVF::GenericNode_3C_20NodeTy_2C_20EdgeTy_20_3E_map" alt=""/>
81
81
  <map id="SVF::GenericNode_3C_20NodeTy_2C_20EdgeTy_20_3E_map" name="SVF::GenericNode_3C_20NodeTy_2C_20EdgeTy_20_3E_map">
82
82
  <area href="classSVF_1_1CHNode.html" alt="SVF::CHNode" shape="rect" coords="0,56,238,80"/>
83
- <area href="classSVF_1_1ICFGNode.html" alt="SVF::ICFGNode" shape="rect" coords="248,56,486,80"/>
84
- <area href="classSVF_1_1PTACallGraphNode.html" alt="SVF::PTACallGraphNode" shape="rect" coords="496,56,734,80"/>
85
- <area href="classSVF_1_1SVFVar.html" alt="SVF::SVFVar" shape="rect" coords="744,56,982,80"/>
86
- <area href="classSVF_1_1TCTNode.html" alt="SVF::TCTNode" shape="rect" coords="992,56,1230,80"/>
87
- <area href="classSVF_1_1VFGNode.html" alt="SVF::VFGNode" shape="rect" coords="1240,56,1478,80"/>
88
- <area href="classSVF_1_1GlobalICFGNode.html" alt="SVF::GlobalICFGNode" shape="rect" coords="496,112,734,136"/>
89
- <area href="classSVF_1_1InterICFGNode.html" alt="SVF::InterICFGNode" shape="rect" coords="496,168,734,192"/>
90
- <area href="classSVF_1_1IntraICFGNode.html" alt="SVF::IntraICFGNode" shape="rect" coords="496,224,734,248"/>
91
- <area href="classSVF_1_1ObjVar.html" alt="SVF::ObjVar" shape="rect" coords="992,112,1230,136"/>
92
- <area href="classSVF_1_1ValVar.html" alt="SVF::ValVar" shape="rect" coords="992,168,1230,192"/>
93
- <area href="classSVF_1_1ArgumentVFGNode.html" alt="SVF::ArgumentVFGNode" shape="rect" coords="1488,112,1726,136"/>
94
- <area href="classSVF_1_1BinaryOPVFGNode.html" alt="SVF::BinaryOPVFGNode" shape="rect" coords="1488,168,1726,192"/>
95
- <area href="classSVF_1_1BranchVFGNode.html" alt="SVF::BranchVFGNode" shape="rect" coords="1488,224,1726,248"/>
96
- <area href="classSVF_1_1CmpVFGNode.html" alt="SVF::CmpVFGNode" shape="rect" coords="1488,280,1726,304"/>
97
- <area href="classSVF_1_1DummyVersionPropSVFGNode.html" alt="SVF::DummyVersionPropSVFGNode" shape="rect" coords="1488,336,1726,360"/>
98
- <area href="classSVF_1_1MRSVFGNode.html" alt="SVF::MRSVFGNode" shape="rect" coords="1488,392,1726,416"/>
99
- <area href="classSVF_1_1NullPtrVFGNode.html" alt="SVF::NullPtrVFGNode" shape="rect" coords="1488,448,1726,472"/>
100
- <area href="classSVF_1_1PHIVFGNode.html" alt="SVF::PHIVFGNode" shape="rect" coords="1488,504,1726,528"/>
101
- <area href="classSVF_1_1StmtVFGNode.html" alt="SVF::StmtVFGNode" shape="rect" coords="1488,560,1726,584"/>
102
- <area href="classSVF_1_1UnaryOPVFGNode.html" alt="SVF::UnaryOPVFGNode" shape="rect" coords="1488,616,1726,640"/>
83
+ <area href="classSVF_1_1ConstraintNode.html" alt="SVF::ConstraintNode" shape="rect" coords="248,56,486,80"/>
84
+ <area href="classSVF_1_1ICFGNode.html" alt="SVF::ICFGNode" shape="rect" coords="496,56,734,80"/>
85
+ <area href="classSVF_1_1PTACallGraphNode.html" alt="SVF::PTACallGraphNode" shape="rect" coords="744,56,982,80"/>
86
+ <area href="classSVF_1_1SVFVar.html" alt="SVF::SVFVar" shape="rect" coords="992,56,1230,80"/>
87
+ <area href="classSVF_1_1TCTNode.html" alt="SVF::TCTNode" shape="rect" coords="1240,56,1478,80"/>
88
+ <area href="classSVF_1_1VFGNode.html" alt="SVF::VFGNode" shape="rect" coords="1488,56,1726,80"/>
89
+ <area href="classSVF_1_1GlobalICFGNode.html" alt="SVF::GlobalICFGNode" shape="rect" coords="744,112,982,136"/>
90
+ <area href="classSVF_1_1InterICFGNode.html" alt="SVF::InterICFGNode" shape="rect" coords="744,168,982,192"/>
91
+ <area href="classSVF_1_1IntraICFGNode.html" alt="SVF::IntraICFGNode" shape="rect" coords="744,224,982,248"/>
92
+ <area href="classSVF_1_1ObjVar.html" alt="SVF::ObjVar" shape="rect" coords="1240,112,1478,136"/>
93
+ <area href="classSVF_1_1ValVar.html" alt="SVF::ValVar" shape="rect" coords="1240,168,1478,192"/>
94
+ <area href="classSVF_1_1ArgumentVFGNode.html" alt="SVF::ArgumentVFGNode" shape="rect" coords="1736,112,1974,136"/>
95
+ <area href="classSVF_1_1BinaryOPVFGNode.html" alt="SVF::BinaryOPVFGNode" shape="rect" coords="1736,168,1974,192"/>
96
+ <area href="classSVF_1_1BranchVFGNode.html" alt="SVF::BranchVFGNode" shape="rect" coords="1736,224,1974,248"/>
97
+ <area href="classSVF_1_1CmpVFGNode.html" alt="SVF::CmpVFGNode" shape="rect" coords="1736,280,1974,304"/>
98
+ <area href="classSVF_1_1DummyVersionPropSVFGNode.html" alt="SVF::DummyVersionPropSVFGNode" shape="rect" coords="1736,336,1974,360"/>
99
+ <area href="classSVF_1_1MRSVFGNode.html" alt="SVF::MRSVFGNode" shape="rect" coords="1736,392,1974,416"/>
100
+ <area href="classSVF_1_1NullPtrVFGNode.html" alt="SVF::NullPtrVFGNode" shape="rect" coords="1736,448,1974,472"/>
101
+ <area href="classSVF_1_1PHIVFGNode.html" alt="SVF::PHIVFGNode" shape="rect" coords="1736,504,1974,528"/>
102
+ <area href="classSVF_1_1StmtVFGNode.html" alt="SVF::StmtVFGNode" shape="rect" coords="1736,560,1974,584"/>
103
+ <area href="classSVF_1_1UnaryOPVFGNode.html" alt="SVF::UnaryOPVFGNode" shape="rect" coords="1736,616,1974,640"/>
103
104
  </map>
104
105
  </div></div>
105
106
  <table class="memberdecls">
@@ -84,19 +84,20 @@ Inheritance diagram for SVF::PointerAnalysis:</div>
84
84
  <img src="classSVF_1_1PointerAnalysis.png" usemap="#SVF::PointerAnalysis_map" alt=""/>
85
85
  <map id="SVF::PointerAnalysis_map" name="SVF::PointerAnalysis_map">
86
86
  <area href="classSVF_1_1CondPTAImpl.html" alt="SVF::CondPTAImpl&lt; ContextCond &gt;" shape="rect" coords="0,56,215,80"/>
87
- <area href="classSVF_1_1BVDataPTAImpl.html" alt="SVF::BVDataPTAImpl" shape="rect" coords="787,56,1002,80"/>
88
- <area href="classSVF_1_1CondPTAImpl.html" alt="SVF::CondPTAImpl&lt; Cond &gt;" shape="rect" coords="1012,56,1227,80"/>
87
+ <area href="classSVF_1_1BVDataPTAImpl.html" alt="SVF::BVDataPTAImpl" shape="rect" coords="1012,56,1227,80"/>
88
+ <area href="classSVF_1_1CondPTAImpl.html" alt="SVF::CondPTAImpl&lt; Cond &gt;" shape="rect" coords="1237,56,1452,80"/>
89
89
  <area href="classSVF_1_1ContextDDA.html" alt="SVF::ContextDDA" shape="rect" coords="0,112,215,136"/>
90
90
  <area href="classSVF_1_1AndersenBase.html" alt="SVF::AndersenBase" shape="rect" coords="337,112,552,136"/>
91
- <area href="classSVF_1_1CFLAlias.html" alt="SVF::CFLAlias" shape="rect" coords="562,112,777,136"/>
92
- <area href="classSVF_1_1CFLVF.html" alt="SVF::CFLVF" shape="rect" coords="787,112,1002,136"/>
93
- <area href="classSVF_1_1FlowDDA.html" alt="SVF::FlowDDA" shape="rect" coords="1012,112,1227,136"/>
94
- <area href="classSVF_1_1FlowSensitive.html" alt="SVF::FlowSensitive" shape="rect" coords="1237,112,1452,136"/>
91
+ <area href="classSVF_1_1CFLBase.html" title="CFL Client Base Class. " alt="SVF::CFLBase" shape="rect" coords="900,112,1115,136"/>
92
+ <area href="classSVF_1_1FlowDDA.html" alt="SVF::FlowDDA" shape="rect" coords="1125,112,1340,136"/>
93
+ <area href="classSVF_1_1FlowSensitive.html" alt="SVF::FlowSensitive" shape="rect" coords="1350,112,1565,136"/>
95
94
  <area href="classSVF_1_1Andersen.html" alt="SVF::Andersen" shape="rect" coords="112,168,327,192"/>
96
95
  <area href="classSVF_1_1Steensgaard.html" alt="SVF::Steensgaard" shape="rect" coords="337,168,552,192"/>
97
96
  <area href="classSVF_1_1TypeAnalysis.html" alt="SVF::TypeAnalysis" shape="rect" coords="562,168,777,192"/>
98
- <area href="classSVF_1_1FSMPTA.html" alt="SVF::FSMPTA" shape="rect" coords="1125,168,1340,192"/>
99
- <area href="classSVF_1_1VersionedFlowSensitive.html" alt="SVF::VersionedFlowSensitive" shape="rect" coords="1350,168,1565,192"/>
97
+ <area href="classSVF_1_1CFLAlias.html" alt="SVF::CFLAlias" shape="rect" coords="787,168,1002,192"/>
98
+ <area href="classSVF_1_1CFLVF.html" alt="SVF::CFLVF" shape="rect" coords="1012,168,1227,192"/>
99
+ <area href="classSVF_1_1FSMPTA.html" alt="SVF::FSMPTA" shape="rect" coords="1237,168,1452,192"/>
100
+ <area href="classSVF_1_1VersionedFlowSensitive.html" alt="SVF::VersionedFlowSensitive" shape="rect" coords="1462,168,1677,192"/>
100
101
  <area href="classSVF_1_1AndersenSCD.html" alt="SVF::AndersenSCD" shape="rect" coords="0,224,215,248"/>
101
102
  <area href="classSVF_1_1AndersenWaveDiff.html" alt="SVF::AndersenWaveDiff" shape="rect" coords="225,224,440,248"/>
102
103
  <area href="classSVF_1_1AndersenSFR.html" alt="SVF::AndersenSFR" shape="rect" coords="0,280,215,304"/>
@@ -867,7 +868,7 @@ Private Member Functions</h2></td></tr>
867
868
 
868
869
  <p>Start Analysis here (main part of pointer analysis). It needs to be implemented in child class. </p>
869
870
 
870
- <p>Implemented in <a class="el" href="classSVF_1_1FlowSensitive.html#a267f7198600dde3054feb40def7a6681">SVF::FlowSensitive</a>, <a class="el" href="classSVF_1_1ContextDDA.html#ac8fe1cb3af6048a28028f00bb87a5eba">SVF::ContextDDA</a>, <a class="el" href="classSVF_1_1FlowDDA.html#aa26f9b5ba2e51f904d8ede1db8584460">SVF::FlowDDA</a>, <a class="el" href="classSVF_1_1AndersenBase.html#a944966086ecb716184c8cdcc43db5751">SVF::AndersenBase</a>, <a class="el" href="classSVF_1_1CFLAlias.html#afc6922e9f1965ed85ef87151e00f5311">SVF::CFLAlias</a>, <a class="el" href="classSVF_1_1CFLVF.html#a52bf916b33278f48d26c3f02947bf720">SVF::CFLVF</a>, and <a class="el" href="classSVF_1_1TypeAnalysis.html#a6073fc43443ceba8d77212ba04e483ef">SVF::TypeAnalysis</a>.</p>
871
+ <p>Implemented in <a class="el" href="classSVF_1_1FlowSensitive.html#a267f7198600dde3054feb40def7a6681">SVF::FlowSensitive</a>, <a class="el" href="classSVF_1_1CFLBase.html#a2aac58e19676290042874c262f1edd4d">SVF::CFLBase</a>, <a class="el" href="classSVF_1_1ContextDDA.html#ac8fe1cb3af6048a28028f00bb87a5eba">SVF::ContextDDA</a>, <a class="el" href="classSVF_1_1FlowDDA.html#aa26f9b5ba2e51f904d8ede1db8584460">SVF::FlowDDA</a>, <a class="el" href="classSVF_1_1AndersenBase.html#a944966086ecb716184c8cdcc43db5751">SVF::AndersenBase</a>, and <a class="el" href="classSVF_1_1TypeAnalysis.html#a6073fc43443ceba8d77212ba04e483ef">SVF::TypeAnalysis</a>.</p>
871
872
 
872
873
  </div>
873
874
  </div>
@@ -1339,7 +1340,7 @@ Private Member Functions</h2></td></tr>
1339
1340
  <p>Print statistics</p>
1340
1341
  <p>Dump results </p>
1341
1342
 
1342
- <p>Reimplemented in <a class="el" href="classSVF_1_1CondPTAImpl.html#a9bdc3a50c695029a28371116ddc3ef8d">SVF::CondPTAImpl&lt; Cond &gt;</a>, <a class="el" href="classSVF_1_1CondPTAImpl.html#a9bdc3a50c695029a28371116ddc3ef8d">SVF::CondPTAImpl&lt; ContextCond &gt;</a>, <a class="el" href="classSVF_1_1Andersen.html#ad90c8cf193bd81870ce8dd88c9580e2c">SVF::Andersen</a>, <a class="el" href="classSVF_1_1BVDataPTAImpl.html#a57ff2bf45ede7a730a8adaba8e61179d">SVF::BVDataPTAImpl</a>, <a class="el" href="classSVF_1_1FlowSensitive.html#afed358369102f01f6fe88b1433e704c3">SVF::FlowSensitive</a>, <a class="el" href="classSVF_1_1FlowDDA.html#a5abae08577ab24684653421dc712431a">SVF::FlowDDA</a>, <a class="el" href="classSVF_1_1AndersenBase.html#a28a1c3571cdee5e05004b29ace364e67">SVF::AndersenBase</a>, <a class="el" href="classSVF_1_1ContextDDA.html#ae34cd06ee3b7d763c81ec418af76d244">SVF::ContextDDA</a>, <a class="el" href="classSVF_1_1TypeAnalysis.html#a8efef079c8b33e2215f92ac3629789e6">SVF::TypeAnalysis</a>, and <a class="el" href="classSVF_1_1VersionedFlowSensitive.html#ad955fda89f4f749151a1bd14562b03f6">SVF::VersionedFlowSensitive</a>.</p>
1343
+ <p>Reimplemented in <a class="el" href="classSVF_1_1CondPTAImpl.html#a9bdc3a50c695029a28371116ddc3ef8d">SVF::CondPTAImpl&lt; Cond &gt;</a>, <a class="el" href="classSVF_1_1CondPTAImpl.html#a9bdc3a50c695029a28371116ddc3ef8d">SVF::CondPTAImpl&lt; ContextCond &gt;</a>, <a class="el" href="classSVF_1_1Andersen.html#ad90c8cf193bd81870ce8dd88c9580e2c">SVF::Andersen</a>, <a class="el" href="classSVF_1_1BVDataPTAImpl.html#a57ff2bf45ede7a730a8adaba8e61179d">SVF::BVDataPTAImpl</a>, <a class="el" href="classSVF_1_1FlowSensitive.html#afed358369102f01f6fe88b1433e704c3">SVF::FlowSensitive</a>, <a class="el" href="classSVF_1_1FlowDDA.html#a5abae08577ab24684653421dc712431a">SVF::FlowDDA</a>, <a class="el" href="classSVF_1_1AndersenBase.html#a28a1c3571cdee5e05004b29ace364e67">SVF::AndersenBase</a>, <a class="el" href="classSVF_1_1ContextDDA.html#ae34cd06ee3b7d763c81ec418af76d244">SVF::ContextDDA</a>, <a class="el" href="classSVF_1_1TypeAnalysis.html#a8efef079c8b33e2215f92ac3629789e6">SVF::TypeAnalysis</a>, <a class="el" href="classSVF_1_1VersionedFlowSensitive.html#ad955fda89f4f749151a1bd14562b03f6">SVF::VersionedFlowSensitive</a>, <a class="el" href="classSVF_1_1CFLAlias.html#a1b7e49b3f42d625f1f25258044f8b885">SVF::CFLAlias</a>, and <a class="el" href="classSVF_1_1CFLVF.html#a6047084ea0cfe2827130facdd54e4806">SVF::CFLVF</a>.</p>
1343
1344
 
1344
1345
  <p class="definition">Definition at line <a class="el" href="PointerAnalysis_8cpp_source.html#l00192">192</a> of file <a class="el" href="PointerAnalysis_8cpp_source.html">PointerAnalysis.cpp</a>.</p>
1345
1346
  <div class="fragment"><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160;{</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160;</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; <a class="code" href="classSVF_1_1PointerAnalysis.html#ab83b827ea42d3a61aad20b1a1485d866">dumpStat</a>();</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160;</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1Options.html#ace0fa364337374ce75a58a9e2f229e24">Options::PTSPrint</a>)</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; {</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; <a class="code" href="classSVF_1_1PointerAnalysis.html#a627bdc95485fd65e8846fcaa5e89559f">dumpTopLevelPtsTo</a>();</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; <span class="comment">//dumpAllPts();</span></div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; <span class="comment">//dumpCPts();</span></div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; }</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160;</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1Options.html#affd0cb6e0cb91e096537a3d3198bf4e5">Options::TypePrint</a>)</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; <a class="code" href="classSVF_1_1PointerAnalysis.html#a08399de593c073b6dd848a8d849dad27">dumpAllTypes</a>();</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160;</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1Options.html#a113ee30422ef08b6790eed9a83277b9c">Options::PTSAllPrint</a>)</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; <a class="code" href="classSVF_1_1PointerAnalysis.html#a861554c2fdeaa406131c2c920b4c7908">dumpAllPts</a>();</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160;</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1Options.html#a14ceeb5d7de81a0946389159986e4955">Options::FuncPointerPrint</a>)</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; <a class="code" href="classSVF_1_1PointerAnalysis.html#a062f1f2d6d47694caa9ac64a9e68c7b3">printIndCSTargets</a>();</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160;</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; <a class="code" href="classSVF_1_1PointerAnalysis.html#a7c9b7e5fe37ae31ba84d167945ca57df">getPTACallGraph</a>()-&gt;<a class="code" href="classSVF_1_1PTACallGraph.html#ac695d78f0a78e2e5f1fb4f93264e52b8">verifyCallGraph</a>();</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160;</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1Options.html#a61c9d525088cc044f8937a39bb96aa93">Options::CallGraphDotGraph</a>)</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; <a class="code" href="classSVF_1_1PointerAnalysis.html#a7c9b7e5fe37ae31ba84d167945ca57df">getPTACallGraph</a>()-&gt;<a class="code" href="classSVF_1_1PTACallGraph.html#a841be22581a7896d8924564e7199f62b">dump</a>(<span class="stringliteral">&quot;callgraph_final&quot;</span>);</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160;</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; <span class="keywordflow">if</span>(!<a class="code" href="classSVF_1_1PointerAnalysis.html#adc7f5c71efb9cd1bec4f5ca9127654c3">pag</a>-&gt;<a class="code" href="classSVF_1_1IRGraph.html#a41423da58a07b344bc7ca8dd96d48f98">isBuiltFromFile</a>() &amp;&amp; <a class="code" href="classSVF_1_1PointerAnalysis.html#aac1a133d478bd14c74309d9c4eaf0c8e">alias_validation</a>)</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; <a class="code" href="classSVF_1_1PointerAnalysis.html#a0454332c89e60729956bb7d69a1a24df">validateTests</a>();</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160;</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; <span class="keywordflow">if</span> (!<a class="code" href="classSVF_1_1Options.html#afb6fabc25c0d7f9e9d1708ce648797fc">Options::UsePreCompFieldSensitive</a>)</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; <a class="code" href="classSVF_1_1PointerAnalysis.html#a73fb8e595473e0c7df1dd0de4968ad13">resetObjFieldSensitive</a>();</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160;}</div><div class="ttc" id="classSVF_1_1Options_html_affd0cb6e0cb91e096537a3d3198bf4e5"><div class="ttname"><a href="classSVF_1_1Options.html#affd0cb6e0cb91e096537a3d3198bf4e5">SVF::Options::TypePrint</a></div><div class="ttdeci">static const llvm::cl::opt&lt; bool &gt; TypePrint</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00127">Options.h:127</a></div></div>
@@ -2216,7 +2217,7 @@ Private Member Functions</h2></td></tr>
2216
2217
  <p>Initialization of pointer analysis </p>
2217
2218
  <p>initialise pta call graph for every pointer analysis instance </p>
2218
2219
 
2219
- <p>Reimplemented in <a class="el" href="classSVF_1_1AndersenWaveDiff.html#a40514a439869d0c025afb4f6b6fb4071">SVF::AndersenWaveDiff</a>, <a class="el" href="classSVF_1_1Andersen.html#a20617a69c112ad423b1b5021e48a8548">SVF::Andersen</a>, <a class="el" href="classSVF_1_1AndersenSFR.html#a3b255068b3ea53041af94fd373a53bd4">SVF::AndersenSFR</a>, <a class="el" href="classSVF_1_1FlowSensitive.html#ad6243c1317503bed39411dab47c83da7">SVF::FlowSensitive</a>, <a class="el" href="classSVF_1_1FlowDDA.html#af1fcf058a9feefeda63f07d4189513a1">SVF::FlowDDA</a>, <a class="el" href="classSVF_1_1AndersenBase.html#a891816407a4c6346f56bc01a67b78aac">SVF::AndersenBase</a>, <a class="el" href="classSVF_1_1ContextDDA.html#adb9f21a86daeb2dd79537f3939c393cf">SVF::ContextDDA</a>, <a class="el" href="classSVF_1_1TypeAnalysis.html#a34177236a41f7a2b432243062f829985">SVF::TypeAnalysis</a>, and <a class="el" href="classSVF_1_1VersionedFlowSensitive.html#a81d3528fd082018e4345f0b026bf3584">SVF::VersionedFlowSensitive</a>.</p>
2220
+ <p>Reimplemented in <a class="el" href="classSVF_1_1AndersenWaveDiff.html#a40514a439869d0c025afb4f6b6fb4071">SVF::AndersenWaveDiff</a>, <a class="el" href="classSVF_1_1Andersen.html#a20617a69c112ad423b1b5021e48a8548">SVF::Andersen</a>, <a class="el" href="classSVF_1_1AndersenSFR.html#a3b255068b3ea53041af94fd373a53bd4">SVF::AndersenSFR</a>, <a class="el" href="classSVF_1_1FlowSensitive.html#ad6243c1317503bed39411dab47c83da7">SVF::FlowSensitive</a>, <a class="el" href="classSVF_1_1FlowDDA.html#af1fcf058a9feefeda63f07d4189513a1">SVF::FlowDDA</a>, <a class="el" href="classSVF_1_1AndersenBase.html#a891816407a4c6346f56bc01a67b78aac">SVF::AndersenBase</a>, <a class="el" href="classSVF_1_1ContextDDA.html#adb9f21a86daeb2dd79537f3939c393cf">SVF::ContextDDA</a>, <a class="el" href="classSVF_1_1TypeAnalysis.html#a34177236a41f7a2b432243062f829985">SVF::TypeAnalysis</a>, <a class="el" href="classSVF_1_1VersionedFlowSensitive.html#a81d3528fd082018e4345f0b026bf3584">SVF::VersionedFlowSensitive</a>, <a class="el" href="classSVF_1_1CFLAlias.html#aef129edd61d7f15947c6539f8d0c36a0">SVF::CFLAlias</a>, and <a class="el" href="classSVF_1_1CFLVF.html#a852ed935576ca426287cf4afa6a585e3">SVF::CFLVF</a>.</p>
2220
2221
 
2221
2222
  <p class="definition">Definition at line <a class="el" href="PointerAnalysis_8cpp_source.html#l00111">111</a> of file <a class="el" href="PointerAnalysis_8cpp_source.html">PointerAnalysis.cpp</a>.</p>
2222
2223
  <div class="fragment"><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;{</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; assert(<a class="code" href="classSVF_1_1PointerAnalysis.html#adc7f5c71efb9cd1bec4f5ca9127654c3">pag</a> &amp;&amp; <span class="stringliteral">&quot;SVFIR has not been built!&quot;</span>);</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1PointerAnalysis.html#a0c0fce2539bb9ec6c824f6584a0f6b33">chgraph</a> == <span class="keyword">nullptr</span>)</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; {</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; <a class="code" href="classSVF_1_1CHGraph.html">CHGraph</a> *chg = <span class="keyword">new</span> <a class="code" href="classSVF_1_1CHGraph.html">CHGraph</a>(<a class="code" href="classSVF_1_1PointerAnalysis.html#adc7f5c71efb9cd1bec4f5ca9127654c3">pag</a>-&gt;<a class="code" href="classSVF_1_1SVFIR.html#ad6e18f520f6b559f2304002792f6b701">getModule</a>());</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <a class="code" href="classSVF_1_1CHGBuilder.html">CHGBuilder</a> builder(chg);</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; builder.buildCHG();</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; <a class="code" href="classSVF_1_1PointerAnalysis.html#a0c0fce2539bb9ec6c824f6584a0f6b33">chgraph</a> = chg;</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; }</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <a class="code" href="classSVF_1_1PointerAnalysis.html#a7e8b3f6843e5ea75fd189162d2cd60a5">svfMod</a> = <a class="code" href="classSVF_1_1PointerAnalysis.html#adc7f5c71efb9cd1bec4f5ca9127654c3">pag</a>-&gt;<a class="code" href="classSVF_1_1SVFIR.html#ad6e18f520f6b559f2304002792f6b701">getModule</a>();</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1Options.html#a153d42a480ef1763ad59fd7258ac3ac5">Options::EnableThreadCallGraph</a>)</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; {</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; <a class="code" href="classSVF_1_1ThreadCallGraph.html">ThreadCallGraph</a>* cg = <span class="keyword">new</span> <a class="code" href="classSVF_1_1ThreadCallGraph.html">ThreadCallGraph</a>();</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; <a class="code" href="classSVF_1_1ThreadCallGraphBuilder.html">ThreadCallGraphBuilder</a> bd(cg, <a class="code" href="classSVF_1_1PointerAnalysis.html#adc7f5c71efb9cd1bec4f5ca9127654c3">pag</a>-&gt;<a class="code" href="classSVF_1_1SVFIR.html#aa1943d53e75aef9b014953143c6894da">getICFG</a>());</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; <a class="code" href="classSVF_1_1PointerAnalysis.html#ad47b39252e02c68dfb466d4f42dc7ebe">ptaCallGraph</a> = bd.buildThreadCallGraph(<a class="code" href="classSVF_1_1PointerAnalysis.html#adc7f5c71efb9cd1bec4f5ca9127654c3">pag</a>-&gt;<a class="code" href="classSVF_1_1SVFIR.html#ad6e18f520f6b559f2304002792f6b701">getModule</a>());</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; }</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; {</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; <a class="code" href="classSVF_1_1PTACallGraph.html">PTACallGraph</a>* cg = <span class="keyword">new</span> <a class="code" href="classSVF_1_1PTACallGraph.html">PTACallGraph</a>();</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; <a class="code" href="classSVF_1_1CallGraphBuilder.html">CallGraphBuilder</a> bd(cg,<a class="code" href="classSVF_1_1PointerAnalysis.html#adc7f5c71efb9cd1bec4f5ca9127654c3">pag</a>-&gt;<a class="code" href="classSVF_1_1SVFIR.html#aa1943d53e75aef9b014953143c6894da">getICFG</a>());</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; ptaCallGraph = bd.<a class="code" href="classSVF_1_1CallGraphBuilder.html#aa64a27e99434908a203e566074c66ebc">buildCallGraph</a>(<a class="code" href="classSVF_1_1PointerAnalysis.html#adc7f5c71efb9cd1bec4f5ca9127654c3">pag</a>-&gt;<a class="code" href="classSVF_1_1SVFIR.html#ad6e18f520f6b559f2304002792f6b701">getModule</a>());</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; }</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; <a class="code" href="classSVF_1_1PointerAnalysis.html#aafa5df4aa576a144476e547b1da35795">callGraphSCCDetection</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; <span class="comment">// dump callgraph</span></div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1Options.html#a61c9d525088cc044f8937a39bb96aa93">Options::CallGraphDotGraph</a>)</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; <a class="code" href="classSVF_1_1PointerAnalysis.html#a7c9b7e5fe37ae31ba84d167945ca57df">getPTACallGraph</a>()-&gt;<a class="code" href="classSVF_1_1PTACallGraph.html#a841be22581a7896d8924564e7199f62b">dump</a>(<span class="stringliteral">&quot;callgraph_initial&quot;</span>);</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;}</div><div class="ttc" id="classSVF_1_1PTACallGraph_html_a841be22581a7896d8924564e7199f62b"><div class="ttname"><a href="classSVF_1_1PTACallGraph.html#a841be22581a7896d8924564e7199f62b">SVF::PTACallGraph::dump</a></div><div class="ttdeci">void dump(const std::string &amp;filename)</div><div class="ttdoc">Dump the graph. </div><div class="ttdef"><b>Definition:</b> <a href="PTACallGraph_8cpp_source.html#l00316">PTACallGraph.cpp:316</a></div></div>
@@ -426,7 +426,7 @@ Private Attributes</h2></td></tr>
426
426
  </table>
427
427
  </div><div class="memdoc">
428
428
 
429
- <p>Implemented in <a class="el" href="classSVF_1_1VersionedFlowSensitiveStat.html#af202623692135ad746aed1be995c55fb">SVF::VersionedFlowSensitiveStat</a>, <a class="el" href="classSVF_1_1SVFGStat.html#a037600bfff11659542f8595d8700dec4">SVF::SVFGStat</a>, <a class="el" href="classSVF_1_1FlowSensitiveStat.html#a059047d05e9873a624e333162a460571">SVF::FlowSensitiveStat</a>, <a class="el" href="classSVF_1_1MemSSAStat.html#a8b4b9466a676d2391c71d38e8be16bc9">SVF::MemSSAStat</a>, <a class="el" href="classSVF_1_1CFLStat.html#a1d85a7c4b2c22d3d8e0115212362d83b">SVF::CFLStat</a>, <a class="el" href="classSVF_1_1ICFGStat.html#aabe0779dc44ddc4e06300ea912cca39f">SVF::ICFGStat</a>, <a class="el" href="classSVF_1_1AndersenStat.html#a66fee1c0ee5781152a2d489f8857ad43">SVF::AndersenStat</a>, <a class="el" href="classSVF_1_1DDAStat.html#a6055573ae1844cfc559ff81b3b9c325c">SVF::DDAStat</a>, and <a class="el" href="classSVF_1_1PTAStat.html#ad6de9d3f25c20705768000c987af0eb6">SVF::PTAStat</a>.</p>
429
+ <p>Implemented in <a class="el" href="classSVF_1_1VersionedFlowSensitiveStat.html#af202623692135ad746aed1be995c55fb">SVF::VersionedFlowSensitiveStat</a>, <a class="el" href="classSVF_1_1SVFGStat.html#a037600bfff11659542f8595d8700dec4">SVF::SVFGStat</a>, <a class="el" href="classSVF_1_1FlowSensitiveStat.html#a059047d05e9873a624e333162a460571">SVF::FlowSensitiveStat</a>, <a class="el" href="classSVF_1_1MemSSAStat.html#a8b4b9466a676d2391c71d38e8be16bc9">SVF::MemSSAStat</a>, <a class="el" href="classSVF_1_1ICFGStat.html#aabe0779dc44ddc4e06300ea912cca39f">SVF::ICFGStat</a>, <a class="el" href="classSVF_1_1AndersenStat.html#a66fee1c0ee5781152a2d489f8857ad43">SVF::AndersenStat</a>, <a class="el" href="classSVF_1_1DDAStat.html#a6055573ae1844cfc559ff81b3b9c325c">SVF::DDAStat</a>, <a class="el" href="classSVF_1_1CFLStat.html#a1d85a7c4b2c22d3d8e0115212362d83b">SVF::CFLStat</a>, and <a class="el" href="classSVF_1_1PTAStat.html#ad6de9d3f25c20705768000c987af0eb6">SVF::PTAStat</a>.</p>
430
430
 
431
431
  <p class="definition">Definition at line <a class="el" href="SVFStat_8cpp_source.html#l00104">104</a> of file <a class="el" href="SVFStat_8cpp_source.html">SVFStat.cpp</a>.</p>
432
432
  <div class="fragment"><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;{</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; <a class="code" href="classSVF_1_1SVFIR.html">SVFIR</a>* pag = <a class="code" href="classSVF_1_1SVFIR.html#a37cfa2aa4e7b98ef9dc8179f581a2362">SVFIR::getPAG</a>();</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> numOfFunction = 0;</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> numOfGlobal = 0;</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> numOfStack = 0;</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> numOfHeap = 0;</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> numOfHasVarArray = 0;</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> numOfHasVarStruct = 0;</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> numOfHasConstArray = 0;</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> numOfHasConstStruct = 0;</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> numOfScalar = 0;</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> numOfConstant = 0;</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> fiObjNumber = 0;</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> fsObjNumber = 0;</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set&lt;SymID&gt;</a> memObjSet;</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <span class="keywordflow">for</span>(<a class="code" href="classSVF_1_1GenericGraph.html#ac213302cf5c7cdf3b66f7b18649d0fbc">SVFIR::iterator</a> it = pag-&gt;<a class="code" href="classSVF_1_1GenericGraph.html#a0d9744b1b0e7a09a6f7af29188e243b7">begin</a>(), eit = pag-&gt;<a class="code" href="classSVF_1_1GenericGraph.html#a4bef15157423cef48dc7333a803cd27d">end</a>(); it!=eit; ++it)</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; {</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <a class="code" href="classSVF_1_1SVFVar.html">PAGNode</a>* node = it-&gt;second;</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1ObjVar.html">ObjVar</a>* obj = SVFUtil::dyn_cast&lt;ObjVar&gt;(node))</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; {</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1MemObj.html">MemObj</a>* mem = obj-&gt;getMemObj();</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; <span class="keywordflow">if</span> (memObjSet.insert(mem-&gt;<a class="code" href="classSVF_1_1MemObj.html#a3ab6f65ffbf6442daac4d3f70f2d3cb1">getId</a>()).second == <span class="keyword">false</span>)</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; <span class="keywordflow">continue</span>;</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; <span class="keywordflow">if</span>(mem-&gt;<a class="code" href="classSVF_1_1MemObj.html#a7b890ca9e93b1c61cc6437b7e6a82a8c">isBlackHoleObj</a>())</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; <span class="keywordflow">continue</span>;</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; <span class="keywordflow">if</span>(mem-&gt;<a class="code" href="classSVF_1_1MemObj.html#ae1d14e2bf0be36cdadebf119822f607b">isFunction</a>())</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; numOfFunction++;</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; <span class="keywordflow">if</span>(mem-&gt;<a class="code" href="classSVF_1_1MemObj.html#a40462512a99eb258d8cd442c38d812b4">isGlobalObj</a>())</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; numOfGlobal++;</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; <span class="keywordflow">if</span>(mem-&gt;<a class="code" href="classSVF_1_1MemObj.html#af7316c697eafc71d5fc93108da4e2cee">isStack</a>())</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; numOfStack++;</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; <span class="keywordflow">if</span>(mem-&gt;<a class="code" href="classSVF_1_1MemObj.html#a898c5bb3956402578266a6fb142e02b1">isHeap</a>())</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; numOfHeap++;</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; <span class="keywordflow">if</span>(mem-&gt;<a class="code" href="classSVF_1_1MemObj.html#a616e9f4d6f82a253f94391c47668b9a6">isVarArray</a>())</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; numOfHasVarArray++;</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; <span class="keywordflow">if</span>(mem-&gt;<a class="code" href="classSVF_1_1MemObj.html#ad1966c52f95775ac7d65c0ba6632c3cf">isVarStruct</a>())</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; numOfHasVarStruct++;</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; <span class="keywordflow">if</span>(mem-&gt;<a class="code" href="classSVF_1_1MemObj.html#a7f828731597450f1d43b61413ab0e7bb">isConstantArray</a>())</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; numOfHasConstArray++;</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; <span class="keywordflow">if</span>(mem-&gt;<a class="code" href="classSVF_1_1MemObj.html#a019a77516c403f1f3cc72917b810a41f">isConstantStruct</a>())</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; numOfHasConstStruct++;</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; <span class="keywordflow">if</span>(mem-&gt;<a class="code" href="classSVF_1_1MemObj.html#a6dae1b3429c6049f0153ec006d329082">hasPtrObj</a>() == <span class="keyword">false</span>)</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; numOfScalar++;</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; <span class="keywordflow">if</span>(mem-&gt;<a class="code" href="classSVF_1_1MemObj.html#a1a4ff4aaaf2573240a318e1b79328cd0">isConstDataOrConstGlobal</a>())</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; numOfConstant++;</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="keywordflow">if</span> (mem-&gt;<a class="code" href="classSVF_1_1MemObj.html#a41d85883d44ad77832b020455951c6fc">isFieldInsensitive</a>())</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; fiObjNumber++;</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; fsObjNumber++;</div><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; }</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_1SVFStat.html#a07b6f8cb424b84b468c4518140fa3a41">generalNumMap</a>[<span class="stringliteral">&quot;TotalPointers&quot;</span>] = pag-&gt;<a class="code" href="classSVF_1_1IRGraph.html#a0212f3fe2f37363e8060f292c8cf7668">getValueNodeNum</a>() + pag-&gt;<a class="code" href="classSVF_1_1SVFIR.html#a8a24e0bf9f95fc1519d4013e0e82dec9">getFieldValNodeNum</a>();</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; <a class="code" href="classSVF_1_1SVFStat.html#a07b6f8cb424b84b468c4518140fa3a41">generalNumMap</a>[<span class="stringliteral">&quot;TotalObjects&quot;</span>] = pag-&gt;<a class="code" href="classSVF_1_1IRGraph.html#a82528aff779ccf8f723f57507dd2d991">getObjectNodeNum</a>();</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; <a class="code" href="classSVF_1_1SVFStat.html#a07b6f8cb424b84b468c4518140fa3a41">generalNumMap</a>[<span class="stringliteral">&quot;TotalFieldObjects&quot;</span>] = pag-&gt;<a class="code" href="classSVF_1_1SVFIR.html#a3bbaafd80dfcae6ccc82c3d8b9d303ea">getFieldObjNodeNum</a>();</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; <a class="code" href="classSVF_1_1SVFStat.html#a07b6f8cb424b84b468c4518140fa3a41">generalNumMap</a>[<span class="stringliteral">&quot;MaxStructSize&quot;</span>] = <a class="code" href="classSVF_1_1SymbolTableInfo.html#a267169023fc4f8dd66b145f7231fec11">SymbolTableInfo::SymbolInfo</a>()-&gt;<a class="code" href="classSVF_1_1SymbolTableInfo.html#abc7e567209010286a68634c700d76cca">getMaxStructSize</a>();</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; <a class="code" href="classSVF_1_1SVFStat.html#a07b6f8cb424b84b468c4518140fa3a41">generalNumMap</a>[<span class="stringliteral">&quot;TotalSVFStmts&quot;</span>] = pag-&gt;<a class="code" href="classSVF_1_1IRGraph.html#a821df0fcb66e4f0a5b10c295c24b7c2c">getPAGEdgeNum</a>();</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; <a class="code" href="classSVF_1_1SVFStat.html#a07b6f8cb424b84b468c4518140fa3a41">generalNumMap</a>[<span class="stringliteral">&quot;TotalPTASVFStmts&quot;</span>] = pag-&gt;<a class="code" href="classSVF_1_1IRGraph.html#a51485004eb28aab6620801205d13ef1b">getPTAPAGEdgeNum</a>();</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; <a class="code" href="classSVF_1_1SVFStat.html#a07b6f8cb424b84b468c4518140fa3a41">generalNumMap</a>[<span class="stringliteral">&quot;FIObjNum&quot;</span>] = fiObjNumber;</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; <a class="code" href="classSVF_1_1SVFStat.html#a07b6f8cb424b84b468c4518140fa3a41">generalNumMap</a>[<span class="stringliteral">&quot;FSObjNum&quot;</span>] = fsObjNumber;</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160;</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; <a class="code" href="classSVF_1_1SVFStat.html#a07b6f8cb424b84b468c4518140fa3a41">generalNumMap</a>[<span class="stringliteral">&quot;AddrsNum&quot;</span>] = pag-&gt;<a class="code" href="classSVF_1_1SVFIR.html#ae2006820c0d00482b85e7ae3adcb5744">getSVFStmtSet</a>(<a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a0a9a0f650e864e89b7cbb3dc8c8aa197">SVFStmt::Addr</a>).size();</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; <a class="code" href="classSVF_1_1SVFStat.html#a07b6f8cb424b84b468c4518140fa3a41">generalNumMap</a>[<span class="stringliteral">&quot;LoadsNum&quot;</span>] = pag-&gt;<a class="code" href="classSVF_1_1SVFIR.html#ae2006820c0d00482b85e7ae3adcb5744">getSVFStmtSet</a>(<a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a62ac8480c43fcc657c631ec0003b15d5">SVFStmt::Load</a>).size();</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; <a class="code" href="classSVF_1_1SVFStat.html#a07b6f8cb424b84b468c4518140fa3a41">generalNumMap</a>[<span class="stringliteral">&quot;StoresNum&quot;</span>] = pag-&gt;<a class="code" href="classSVF_1_1SVFIR.html#ae2006820c0d00482b85e7ae3adcb5744">getSVFStmtSet</a>(<a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9aa0f700b514c431ec5329aec49df56dcc">SVFStmt::Store</a>).size();</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; <a class="code" href="classSVF_1_1SVFStat.html#a07b6f8cb424b84b468c4518140fa3a41">generalNumMap</a>[<span class="stringliteral">&quot;CopysNum&quot;</span>] = pag-&gt;<a class="code" href="classSVF_1_1SVFIR.html#ae2006820c0d00482b85e7ae3adcb5744">getSVFStmtSet</a>(<a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ad3469cdfb64f05163b5310b731b221da">SVFStmt::Copy</a>).size();</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; <a class="code" href="classSVF_1_1SVFStat.html#a07b6f8cb424b84b468c4518140fa3a41">generalNumMap</a>[<span class="stringliteral">&quot;GepsNum&quot;</span>] = pag-&gt;<a class="code" href="classSVF_1_1SVFIR.html#ae2006820c0d00482b85e7ae3adcb5744">getSVFStmtSet</a>(<a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a20d960c19118d1ed319e0dbea94405e8">SVFStmt::Gep</a>).size();</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; <a class="code" href="classSVF_1_1SVFStat.html#a07b6f8cb424b84b468c4518140fa3a41">generalNumMap</a>[<span class="stringliteral">&quot;CallsNum&quot;</span>] = pag-&gt;<a class="code" href="classSVF_1_1SVFIR.html#ae2006820c0d00482b85e7ae3adcb5744">getSVFStmtSet</a>(<a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a97ca16eba4c5f92e16388f0cdbcfcc00">SVFStmt::Call</a>).size();</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; <a class="code" href="classSVF_1_1SVFStat.html#a07b6f8cb424b84b468c4518140fa3a41">generalNumMap</a>[<span class="stringliteral">&quot;ReturnsNum&quot;</span>] = pag-&gt;<a class="code" href="classSVF_1_1SVFIR.html#ae2006820c0d00482b85e7ae3adcb5744">getSVFStmtSet</a>(<a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a8d269a45adf13e69468f0357222ab2af">SVFStmt::Ret</a>).size();</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160;</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; <a class="code" href="classSVF_1_1SVFStat.html#a07b6f8cb424b84b468c4518140fa3a41">generalNumMap</a>[<span class="stringliteral">&quot;FunctionObjs&quot;</span>] = numOfFunction;</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; <a class="code" href="classSVF_1_1SVFStat.html#a07b6f8cb424b84b468c4518140fa3a41">generalNumMap</a>[<span class="stringliteral">&quot;GlobalObjs&quot;</span>] = numOfGlobal;</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; <a class="code" href="classSVF_1_1SVFStat.html#a07b6f8cb424b84b468c4518140fa3a41">generalNumMap</a>[<span class="stringliteral">&quot;HeapObjs&quot;</span>] = numOfHeap;</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; <a class="code" href="classSVF_1_1SVFStat.html#a07b6f8cb424b84b468c4518140fa3a41">generalNumMap</a>[<span class="stringliteral">&quot;StackObjs&quot;</span>] = numOfStack;</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160;</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; <a class="code" href="classSVF_1_1SVFStat.html#a07b6f8cb424b84b468c4518140fa3a41">generalNumMap</a>[<span class="stringliteral">&quot;VarStructObj&quot;</span>] = numOfHasVarStruct;</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; <a class="code" href="classSVF_1_1SVFStat.html#a07b6f8cb424b84b468c4518140fa3a41">generalNumMap</a>[<span class="stringliteral">&quot;VarArrayObj&quot;</span>] = numOfHasVarArray;</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; <a class="code" href="classSVF_1_1SVFStat.html#a07b6f8cb424b84b468c4518140fa3a41">generalNumMap</a>[<span class="stringliteral">&quot;ConstStructObj&quot;</span>] = numOfHasConstStruct;</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; <a class="code" href="classSVF_1_1SVFStat.html#a07b6f8cb424b84b468c4518140fa3a41">generalNumMap</a>[<span class="stringliteral">&quot;ConstArrayObj&quot;</span>] = numOfHasConstArray;</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; <a class="code" href="classSVF_1_1SVFStat.html#a07b6f8cb424b84b468c4518140fa3a41">generalNumMap</a>[<span class="stringliteral">&quot;NonPtrObj&quot;</span>] = numOfScalar;</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; <a class="code" href="classSVF_1_1SVFStat.html#a07b6f8cb424b84b468c4518140fa3a41">generalNumMap</a>[<span class="stringliteral">&quot;ConstantObj&quot;</span>] = numOfConstant;</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160;</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; <a class="code" href="classSVF_1_1SVFStat.html#a07b6f8cb424b84b468c4518140fa3a41">generalNumMap</a>[<span class="stringliteral">&quot;IndCallSites&quot;</span>] = pag-&gt;<a class="code" href="classSVF_1_1SVFIR.html#a2d2131128ceb3362b5dc89317cfd88a0">getIndirectCallsites</a>().size();</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; <a class="code" href="classSVF_1_1SVFStat.html#a07b6f8cb424b84b468c4518140fa3a41">generalNumMap</a>[<span class="stringliteral">&quot;TotalCallSite&quot;</span>] = pag-&gt;<a class="code" href="classSVF_1_1SVFIR.html#aa530e33657f68fc2e8eae9435ce430cb">getCallSiteSet</a>().size();</div><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; <a class="code" href="classSVF_1_1SVFStat.html#a5383691a34426a1a997b5eed387f1831">timeStatMap</a>[<span class="stringliteral">&quot;LLVMIRTime&quot;</span>] = <a class="code" href="classSVF_1_1SVFStat.html#aa4950ec26b66a085ad38ac154b789db5">SVFStat::timeOfBuildingLLVMModule</a>;</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; <a class="code" href="classSVF_1_1SVFStat.html#a5383691a34426a1a997b5eed387f1831">timeStatMap</a>[<span class="stringliteral">&quot;SymbolTableTime&quot;</span>] = <a class="code" href="classSVF_1_1SVFStat.html#ae89293bc063bdc74a988e9c37c70321e">SVFStat::timeOfBuildingSymbolTable</a>;</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; <a class="code" href="classSVF_1_1SVFStat.html#a5383691a34426a1a997b5eed387f1831">timeStatMap</a>[<span class="stringliteral">&quot;SVFIRTime&quot;</span>] = <a class="code" href="classSVF_1_1SVFStat.html#aea75388c973674686d1f2b7498b4095c">SVFStat::timeOfBuildingSVFIR</a>;</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160;</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; <span class="comment">// REFACTOR-TODO bitcastInstStat();</span></div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; <a class="code" href="classSVF_1_1SVFStat.html#a17c8ea68bf1341ab80f71fff76a9ffce">branchStat</a>();</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160;</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; <a class="code" href="classSVF_1_1SVFStat.html#a178fcefed6ffffc78bbe9b23e0e1babe">printStat</a>(<span class="stringliteral">&quot;General Stats&quot;</span>);</div><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;}</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#l00365">GenericGraph.h:365</a></div></div>