svf-tools 1.0.306 → 1.0.310

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 (237) hide show
  1. package/SVF-doxygen/html/html/AndersenLCD_8cpp_source.html +1 -1
  2. package/SVF-doxygen/html/html/AndersenSCD_8cpp_source.html +1 -1
  3. package/SVF-doxygen/html/html/AndersenStat_8cpp_source.html +3 -3
  4. package/SVF-doxygen/html/html/AndersenWaveDiff_8cpp_source.html +1 -1
  5. package/SVF-doxygen/html/html/Andersen_8cpp_source.html +9 -9
  6. package/SVF-doxygen/html/html/Andersen_8h_source.html +2 -2
  7. package/SVF-doxygen/html/html/BasicTypes_8h_source.html +8 -8
  8. package/SVF-doxygen/html/html/CHG_8cpp_source.html +5 -5
  9. package/SVF-doxygen/html/html/ConsG_8cpp_source.html +1 -1
  10. package/SVF-doxygen/html/html/ContextDDA_8cpp_source.html +9 -9
  11. package/SVF-doxygen/html/html/ContextDDA_8h_source.html +6 -6
  12. package/SVF-doxygen/html/html/DDAClient_8cpp_source.html +3 -3
  13. package/SVF-doxygen/html/html/DDAStat_8cpp_source.html +5 -5
  14. package/SVF-doxygen/html/html/DDAVFSolver_8h_source.html +4 -4
  15. package/SVF-doxygen/html/html/ExtAPI_8h_source.html +1 -1
  16. package/SVF-doxygen/html/html/ExternalPAG_8cpp_source.html +1 -1
  17. package/SVF-doxygen/html/html/FSMPTA_8cpp_source.html +3 -3
  18. package/SVF-doxygen/html/html/FlowDDA_8cpp_source.html +5 -5
  19. package/SVF-doxygen/html/html/FlowDDA_8h_source.html +4 -4
  20. package/SVF-doxygen/html/html/FlowSensitiveStat_8cpp_source.html +3 -3
  21. package/SVF-doxygen/html/html/FlowSensitiveTBHC_8cpp_source.html +3 -3
  22. package/SVF-doxygen/html/html/FlowSensitive_8cpp_source.html +7 -7
  23. package/SVF-doxygen/html/html/FlowSensitive_8h_source.html +2 -2
  24. package/SVF-doxygen/html/html/ICFG_8cpp_source.html +4 -4
  25. package/SVF-doxygen/html/html/LLVMUtil_8h_source.html +1 -1
  26. package/SVF-doxygen/html/html/LeakChecker_8cpp_source.html +1 -1
  27. package/SVF-doxygen/html/html/LockAnalysis_8cpp_source.html +5 -5
  28. package/SVF-doxygen/html/html/LockAnalysis_8h_source.html +2 -2
  29. package/SVF-doxygen/html/html/LockResultValidator_8cpp_source.html +1 -1
  30. package/SVF-doxygen/html/html/LockResultValidator_8h_source.html +1 -1
  31. package/SVF-doxygen/html/html/MHP_8cpp_source.html +6 -6
  32. package/SVF-doxygen/html/html/MTAAnnotator_8cpp_source.html +2 -2
  33. package/SVF-doxygen/html/html/MTAStat_8cpp_source.html +1 -1
  34. package/SVF-doxygen/html/html/MTA_8cpp_source.html +5 -5
  35. package/SVF-doxygen/html/html/MemRegion_8cpp_source.html +3 -3
  36. package/SVF-doxygen/html/html/MemSSA_8cpp_source.html +4 -4
  37. package/SVF-doxygen/html/html/NodeIDAllocator_8cpp_source.html +2 -2
  38. package/SVF-doxygen/html/html/PAGBuilder_8cpp_source.html +3 -3
  39. package/SVF-doxygen/html/html/PAG_8cpp_source.html +3 -3
  40. package/SVF-doxygen/html/html/PCG_8cpp_source.html +2 -2
  41. package/SVF-doxygen/html/html/PTACallGraph_8cpp_source.html +1 -1
  42. package/SVF-doxygen/html/html/PTAStat_8cpp_source.html +8 -7
  43. package/SVF-doxygen/html/html/PathCondAllocator_8cpp_source.html +3 -3
  44. package/SVF-doxygen/html/html/PersistentPointsToCache_8h_source.html +25 -22
  45. package/SVF-doxygen/html/html/PersistentPointsToDS_8h_source.html +1 -1
  46. package/SVF-doxygen/html/html/PointerAnalysisImpl_8cpp_source.html +18 -14
  47. package/SVF-doxygen/html/html/PointerAnalysisImpl_8h_source.html +68 -68
  48. package/SVF-doxygen/html/html/PointerAnalysis_8cpp_source.html +2 -2
  49. package/SVF-doxygen/html/html/PointsTo_8cpp_source.html +1 -1
  50. package/SVF-doxygen/html/html/ProgSlice_8cpp_source.html +2 -2
  51. package/SVF-doxygen/html/html/SVFBasicTypes_8h.html +23 -23
  52. package/SVF-doxygen/html/html/SVFBasicTypes_8h_source.html +23 -23
  53. package/SVF-doxygen/html/html/SVFGBuilder_8cpp_source.html +2 -2
  54. package/SVF-doxygen/html/html/SVFGOPT_8cpp_source.html +2 -2
  55. package/SVF-doxygen/html/html/SVFGStat_8cpp_source.html +2 -2
  56. package/SVF-doxygen/html/html/SVFG_8cpp_source.html +2 -2
  57. package/SVF-doxygen/html/html/SVFModule_8cpp_source.html +2 -2
  58. package/SVF-doxygen/html/html/SVFUtil_8cpp_source.html +8 -7
  59. package/SVF-doxygen/html/html/SVFUtil_8h_source.html +4 -4
  60. package/SVF-doxygen/html/html/SaberCheckerAPI_8h_source.html +1 -1
  61. package/SVF-doxygen/html/html/SaberSVFGBuilder_8cpp_source.html +2 -2
  62. package/SVF-doxygen/html/html/SrcSnkDDA_8cpp_source.html +3 -3
  63. package/SVF-doxygen/html/html/SymbolTableInfo_8cpp_source.html +4 -4
  64. package/SVF-doxygen/html/html/TCT_8cpp_source.html +2 -2
  65. package/SVF-doxygen/html/html/ThreadAPI_8h_source.html +1 -1
  66. package/SVF-doxygen/html/html/ThreadCallGraph_8cpp_source.html +2 -2
  67. package/SVF-doxygen/html/html/TypeBasedHeapCloning_8cpp_source.html +1 -1
  68. package/SVF-doxygen/html/html/VFG_8cpp_source.html +3 -3
  69. package/SVF-doxygen/html/html/VFG_8h_source.html +1 -1
  70. package/SVF-doxygen/html/html/VersionedFlowSensitiveStat_8cpp_source.html +3 -3
  71. package/SVF-doxygen/html/html/VersionedFlowSensitive_8cpp_source.html +2 -2
  72. package/SVF-doxygen/html/html/classSVF_1_1ActualINSVFGNode.html +1 -1
  73. package/SVF-doxygen/html/html/classSVF_1_1ActualOUTSVFGNode.html +1 -1
  74. package/SVF-doxygen/html/html/classSVF_1_1AddrPE.html +1 -1
  75. package/SVF-doxygen/html/html/classSVF_1_1Andersen.html +12 -12
  76. package/SVF-doxygen/html/html/classSVF_1_1AndersenBase.html +9 -9
  77. package/SVF-doxygen/html/html/classSVF_1_1AndersenLCD.html +2 -2
  78. package/SVF-doxygen/html/html/classSVF_1_1AndersenSCD.html +5 -5
  79. package/SVF-doxygen/html/html/classSVF_1_1AndersenStat.html +4 -4
  80. package/SVF-doxygen/html/html/classSVF_1_1AndersenWaveDiff.html +2 -2
  81. package/SVF-doxygen/html/html/classSVF_1_1AndersenWaveDiffWithType.html +2 -2
  82. package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl-members.html +1 -1
  83. package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl.html +81 -78
  84. package/SVF-doxygen/html/html/classSVF_1_1BinaryOPPE.html +1 -1
  85. package/SVF-doxygen/html/html/classSVF_1_1BinaryOPVFGNode.html +1 -1
  86. package/SVF-doxygen/html/html/classSVF_1_1CHGraph.html +11 -11
  87. package/SVF-doxygen/html/html/classSVF_1_1CallBlockNode.html +2 -2
  88. package/SVF-doxygen/html/html/classSVF_1_1CallPE.html +1 -1
  89. package/SVF-doxygen/html/html/classSVF_1_1CmpPE.html +1 -1
  90. package/SVF-doxygen/html/html/classSVF_1_1CmpVFGNode.html +1 -1
  91. package/SVF-doxygen/html/html/classSVF_1_1CondPTAImpl.html +115 -115
  92. package/SVF-doxygen/html/html/classSVF_1_1ContextDDA.html +20 -20
  93. package/SVF-doxygen/html/html/classSVF_1_1CopyPE.html +1 -1
  94. package/SVF-doxygen/html/html/classSVF_1_1CxtProc.html +1 -1
  95. package/SVF-doxygen/html/html/classSVF_1_1CxtThreadProc.html +1 -1
  96. package/SVF-doxygen/html/html/classSVF_1_1DDAClient.html +3 -3
  97. package/SVF-doxygen/html/html/classSVF_1_1DDAStat.html +6 -6
  98. package/SVF-doxygen/html/html/classSVF_1_1DDAVFSolver.html +24 -24
  99. package/SVF-doxygen/html/html/classSVF_1_1FIObjPN.html +1 -1
  100. package/SVF-doxygen/html/html/classSVF_1_1FlowDDA.html +12 -12
  101. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitive.html +36 -36
  102. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveStat.html +3 -3
  103. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveTBHC.html +13 -13
  104. package/SVF-doxygen/html/html/classSVF_1_1ForkJoinAnalysis.html +4 -4
  105. package/SVF-doxygen/html/html/classSVF_1_1FormalINSVFGNode.html +1 -1
  106. package/SVF-doxygen/html/html/classSVF_1_1FormalOUTSVFGNode.html +1 -1
  107. package/SVF-doxygen/html/html/classSVF_1_1FormalParmVFGNode.html +1 -1
  108. package/SVF-doxygen/html/html/classSVF_1_1FormalRetVFGNode.html +1 -1
  109. package/SVF-doxygen/html/html/classSVF_1_1FunEntryBlockNode.html +1 -1
  110. package/SVF-doxygen/html/html/classSVF_1_1FunExitBlockNode.html +1 -1
  111. package/SVF-doxygen/html/html/classSVF_1_1GepObjPN.html +1 -1
  112. package/SVF-doxygen/html/html/classSVF_1_1GepPE.html +1 -1
  113. package/SVF-doxygen/html/html/classSVF_1_1GepValPN.html +1 -1
  114. package/SVF-doxygen/html/html/classSVF_1_1ICFG.html +2 -2
  115. package/SVF-doxygen/html/html/classSVF_1_1InterMSSAPHISVFGNode.html +1 -1
  116. package/SVF-doxygen/html/html/classSVF_1_1InterPHIVFGNode.html +1 -1
  117. package/SVF-doxygen/html/html/classSVF_1_1IntraBlockNode.html +2 -2
  118. package/SVF-doxygen/html/html/classSVF_1_1IntraMSSAPHISVFGNode.html +1 -1
  119. package/SVF-doxygen/html/html/classSVF_1_1IntraPHIVFGNode.html +1 -1
  120. package/SVF-doxygen/html/html/classSVF_1_1LLVMModuleSet.html +1 -1
  121. package/SVF-doxygen/html/html/classSVF_1_1LeakChecker.html +2 -2
  122. package/SVF-doxygen/html/html/classSVF_1_1LoadPE.html +1 -1
  123. package/SVF-doxygen/html/html/classSVF_1_1LockAnalysis.html +25 -25
  124. package/SVF-doxygen/html/html/classSVF_1_1LockResultValidator.html +1 -1
  125. package/SVF-doxygen/html/html/classSVF_1_1MHP.html +16 -16
  126. package/SVF-doxygen/html/html/classSVF_1_1MRGenerator.html +6 -6
  127. package/SVF-doxygen/html/html/classSVF_1_1MSSAPHISVFGNode.html +1 -1
  128. package/SVF-doxygen/html/html/classSVF_1_1MTA.html +7 -7
  129. package/SVF-doxygen/html/html/classSVF_1_1MTAAnnotator.html +4 -4
  130. package/SVF-doxygen/html/html/classSVF_1_1MTAResultValidator.html +1 -1
  131. package/SVF-doxygen/html/html/classSVF_1_1MTASVFGBuilder.html +8 -8
  132. package/SVF-doxygen/html/html/classSVF_1_1MTAStat.html +4 -4
  133. package/SVF-doxygen/html/html/classSVF_1_1MemSSA.html +15 -15
  134. package/SVF-doxygen/html/html/classSVF_1_1MemSSAStat.html +2 -2
  135. package/SVF-doxygen/html/html/classSVF_1_1NodeIDAllocator_1_1Clusterer.html +7 -7
  136. package/SVF-doxygen/html/html/classSVF_1_1NormalGepPE.html +1 -1
  137. package/SVF-doxygen/html/html/classSVF_1_1ObjPN.html +1 -1
  138. package/SVF-doxygen/html/html/classSVF_1_1PAG.html +2 -2
  139. package/SVF-doxygen/html/html/classSVF_1_1PAGBuilder.html +29 -29
  140. package/SVF-doxygen/html/html/classSVF_1_1PCG.html +2 -2
  141. package/SVF-doxygen/html/html/classSVF_1_1PHIVFGNode.html +1 -1
  142. package/SVF-doxygen/html/html/classSVF_1_1PTACallGraph.html +1 -1
  143. package/SVF-doxygen/html/html/classSVF_1_1PTACallGraphNode.html +1 -1
  144. package/SVF-doxygen/html/html/classSVF_1_1PTAStat.html +18 -17
  145. package/SVF-doxygen/html/html/classSVF_1_1PathCondAllocator.html +4 -4
  146. package/SVF-doxygen/html/html/classSVF_1_1PersistentDFPTData.html +1 -1
  147. package/SVF-doxygen/html/html/classSVF_1_1PersistentPTData.html +1 -1
  148. package/SVF-doxygen/html/html/classSVF_1_1PersistentPointsToCache-members.html +19 -16
  149. package/SVF-doxygen/html/html/classSVF_1_1PersistentPointsToCache.html +188 -95
  150. package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis.html +3 -3
  151. package/SVF-doxygen/html/html/classSVF_1_1PointsTo.html +2 -1
  152. package/SVF-doxygen/html/html/classSVF_1_1ProgSlice.html +2 -2
  153. package/SVF-doxygen/html/html/classSVF_1_1RetBlockNode.html +2 -2
  154. package/SVF-doxygen/html/html/classSVF_1_1RetPE.html +1 -1
  155. package/SVF-doxygen/html/html/classSVF_1_1SVFBasicBlock.html +2 -2
  156. package/SVF-doxygen/html/html/classSVF_1_1SVFFunction.html +8 -8
  157. package/SVF-doxygen/html/html/classSVF_1_1SVFG.html +4 -4
  158. package/SVF-doxygen/html/html/classSVF_1_1SVFGBuilder.html +4 -4
  159. package/SVF-doxygen/html/html/classSVF_1_1SVFGOPT.html +3 -3
  160. package/SVF-doxygen/html/html/classSVF_1_1SVFGStat.html +3 -3
  161. package/SVF-doxygen/html/html/classSVF_1_1SVFGlobal.html +2 -2
  162. package/SVF-doxygen/html/html/classSVF_1_1SVFInstruction.html +2 -2
  163. package/SVF-doxygen/html/html/classSVF_1_1SVFModule.html +2 -2
  164. package/SVF-doxygen/html/html/classSVF_1_1SVFValue.html +33 -33
  165. package/SVF-doxygen/html/html/classSVF_1_1SaberSVFGBuilder.html +2 -2
  166. package/SVF-doxygen/html/html/classSVF_1_1SrcSnkDDA.html +7 -7
  167. package/SVF-doxygen/html/html/classSVF_1_1StorePE.html +1 -1
  168. package/SVF-doxygen/html/html/classSVF_1_1SymbolTableInfo.html +13 -13
  169. package/SVF-doxygen/html/html/classSVF_1_1TCT.html +9 -9
  170. package/SVF-doxygen/html/html/classSVF_1_1TDForkPE.html +1 -1
  171. package/SVF-doxygen/html/html/classSVF_1_1TDJoinPE.html +1 -1
  172. package/SVF-doxygen/html/html/classSVF_1_1ThreadCallGraph.html +2 -2
  173. package/SVF-doxygen/html/html/classSVF_1_1TypeAnalysis.html +1 -1
  174. package/SVF-doxygen/html/html/classSVF_1_1TypeBasedHeapCloning.html +1 -1
  175. package/SVF-doxygen/html/html/classSVF_1_1UnaryOPPE.html +1 -1
  176. package/SVF-doxygen/html/html/classSVF_1_1UnaryOPVFGNode.html +1 -1
  177. package/SVF-doxygen/html/html/classSVF_1_1VFG.html +2 -2
  178. package/SVF-doxygen/html/html/classSVF_1_1ValPN.html +1 -1
  179. package/SVF-doxygen/html/html/classSVF_1_1VariantGepPE.html +1 -1
  180. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive.html +7 -7
  181. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitiveStat.html +3 -3
  182. package/SVF-doxygen/html/html/functions_c.html +10 -10
  183. package/SVF-doxygen/html/html/functions_f.html +1 -1
  184. package/SVF-doxygen/html/html/functions_func_f.html +1 -1
  185. package/SVF-doxygen/html/html/functions_i.html +5 -5
  186. package/SVF-doxygen/html/html/functions_o.html +3 -3
  187. package/SVF-doxygen/html/html/functions_p.html +23 -20
  188. package/SVF-doxygen/html/html/functions_r.html +6 -4
  189. package/SVF-doxygen/html/html/functions_s.html +8 -8
  190. package/SVF-doxygen/html/html/functions_t.html +6 -6
  191. package/SVF-doxygen/html/html/functions_u.html +3 -3
  192. package/SVF-doxygen/html/html/functions_v.html +3 -3
  193. package/SVF-doxygen/html/html/functions_vars_p.html +9 -0
  194. package/SVF-doxygen/html/html/globals_func_i.html +8 -8
  195. package/SVF-doxygen/html/html/globals_func_s.html +6 -6
  196. package/SVF-doxygen/html/html/globals_s.html +12 -14
  197. package/SVF-doxygen/html/html/namespaceSVF.html +2 -2
  198. package/SVF-doxygen/html/html/namespaceSVF_1_1SVFUtil.html +10 -9
  199. package/SVF-doxygen/html/html/search/all_10.js +12 -9
  200. package/SVF-doxygen/html/html/search/all_12.js +1 -1
  201. package/SVF-doxygen/html/html/search/all_13.js +7 -7
  202. package/SVF-doxygen/html/html/search/all_14.js +4 -4
  203. package/SVF-doxygen/html/html/search/all_15.js +1 -1
  204. package/SVF-doxygen/html/html/search/all_16.js +1 -1
  205. package/SVF-doxygen/html/html/search/all_3.js +1 -1
  206. package/SVF-doxygen/html/html/search/all_6.js +1 -1
  207. package/SVF-doxygen/html/html/search/all_9.js +3 -3
  208. package/SVF-doxygen/html/html/search/all_e.js +4 -4
  209. package/SVF-doxygen/html/html/search/all_f.js +1 -1
  210. package/SVF-doxygen/html/html/search/functions_10.js +2 -2
  211. package/SVF-doxygen/html/html/search/functions_5.js +1 -1
  212. package/SVF-doxygen/html/html/search/functions_8.js +1 -1
  213. package/SVF-doxygen/html/html/search/variables_10.js +3 -0
  214. package/SVF-doxygen/html/html/search/variables_14.js +2 -2
  215. package/SVF-doxygen/html/html/search/variables_e.js +3 -3
  216. package/SVF-doxygen/html/html/structSVF_1_1Hash_3_01NodePair_01_4.html +1 -1
  217. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01ConstraintGraph_01_5_01_4.html +1 -1
  218. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01ICFG_01_5_01_4.html +1 -1
  219. package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1NodePair_01_4.html +3 -3
  220. package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1SmallVector_3_01T_00_01N_01_4_01_4.html +3 -3
  221. package/SVF-doxygen/html/html/structstd_1_1hash_3_01llvm_1_1SparseBitVector_3_01N_01_4_01_4.html +3 -3
  222. package/SVF-doxygen/html/html/structstd_1_1hash_3_01std_1_1vector_3_01T_01_4_01_4.html +3 -3
  223. package/SVF-doxygen/html/html/tools_2DDA_2CMakeLists_8txt.html +1 -1
  224. package/SVF-doxygen/html/html/tools_2Example_2CMakeLists_8txt.html +1 -1
  225. package/SVF-doxygen/html/html/tools_2MTA_2CMakeLists_8txt.html +1 -1
  226. package/SVF-doxygen/html/html/tools_2SABER_2CMakeLists_8txt.html +1 -1
  227. package/SVF-doxygen/html/html/tools_2WPA_2CMakeLists_8txt.html +9 -9
  228. package/include/MemoryModel/PersistentPointsToCache.h +43 -34
  229. package/include/MemoryModel/PointerAnalysisImpl.h +1 -5
  230. package/include/Util/SVFBasicTypes.h +4 -2
  231. package/lib/MemoryModel/PointerAnalysisImpl.cpp +7 -0
  232. package/lib/MemoryModel/PointsTo.cpp +3 -3
  233. package/lib/Util/PTAStat.cpp +3 -4
  234. package/lib/Util/SVFUtil.cpp +1 -0
  235. package/lib/WPA/FlowSensitive.cpp +1 -1
  236. package/package.json +1 -1
  237. package/tools/WPA/CMakeLists.txt +3 -1
@@ -456,8 +456,8 @@ Private Attributes</h2></td></tr>
456
456
  </table>
457
457
  </div><div class="memdoc">
458
458
 
459
- <p class="definition">Definition at line <a class="el" href="PTAStat_8cpp_source.html#l00327">327</a> of file <a class="el" href="PTAStat_8cpp_source.html">PTAStat.cpp</a>.</p>
460
- <div class="fragment"><div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160;{</div><div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160; <a class="code" href="classSVF_1_1SVFModule.html">SVFModule</a>* module = <a class="code" href="classSVF_1_1PTAStat.html#a608441b95be0861d8c1b0a035281f4d5">pta</a>-&gt;<a class="code" href="classSVF_1_1PointerAnalysis.html#ad8b71cebf46deaf60e2cd4f6d6bb9433">getModule</a>();</div><div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> numberOfBitCast = 0;</div><div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="classSVF_1_1SVFModule.html#ab86e221a93bec67a2ecb7cb53315f569">SVFModule::llvm_const_iterator</a> funIter = module-&gt;<a class="code" href="classSVF_1_1SVFModule.html#a648542aa5c4b487ad5aa12a39d15e951">llvmFunBegin</a>(), funEiter = module-&gt;<a class="code" href="classSVF_1_1SVFModule.html#af38d0f831967d6d8391a4c84e58d6519">llvmFunEnd</a>();</div><div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160; funIter != funEiter; ++funIter)</div><div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160; {</div><div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* func = *funIter;</div><div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160; <span class="keywordflow">for</span> (Function::const_iterator bbIt = func-&gt;begin(), bbEit = func-&gt;end();</div><div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160; bbIt != bbEit; ++bbIt)</div><div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160; {</div><div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a>&amp; bb = *bbIt;</div><div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160; <span class="keywordflow">for</span> (BasicBlock::const_iterator instIt = bb.begin(), instEit = bb.end();</div><div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160; instIt != instEit; ++instIt)</div><div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160; {</div><div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a>&amp; inst = *instIt;</div><div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160; <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#afc50da46a6ea7c2cf61683bbec4d7c8d">BitCastInst</a>* bitcast = SVFUtil::dyn_cast&lt;BitCastInst&gt;(&amp;inst))</div><div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160; {</div><div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160; <span class="keywordflow">if</span> (SVFUtil::isa&lt;PointerType&gt;(bitcast-&gt;getSrcTy()))</div><div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160; numberOfBitCast++;</div><div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160; }</div><div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160; }</div><div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160; }</div><div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160; }</div><div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160;</div><div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160; <a class="code" href="classSVF_1_1PTAStat.html#afa718535839a939e51afc0f8c1fbdac6">generalNumMap</a>[<span class="stringliteral">&quot;BitCastNumber&quot;</span>] = numberOfBitCast;</div><div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160;}</div><div class="ttc" id="classSVF_1_1SVFModule_html_af38d0f831967d6d8391a4c84e58d6519"><div class="ttname"><a href="classSVF_1_1SVFModule.html#af38d0f831967d6d8391a4c84e58d6519">SVF::SVFModule::llvmFunEnd</a></div><div class="ttdeci">llvm_iterator llvmFunEnd()</div><div class="ttdef"><b>Definition:</b> <a href="SVFModule_8h_source.html#l00127">SVFModule.h:127</a></div></div>
459
+ <p class="definition">Definition at line <a class="el" href="PTAStat_8cpp_source.html#l00326">326</a> of file <a class="el" href="PTAStat_8cpp_source.html">PTAStat.cpp</a>.</p>
460
+ <div class="fragment"><div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160;{</div><div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160; <a class="code" href="classSVF_1_1SVFModule.html">SVFModule</a>* module = <a class="code" href="classSVF_1_1PTAStat.html#a608441b95be0861d8c1b0a035281f4d5">pta</a>-&gt;<a class="code" href="classSVF_1_1PointerAnalysis.html#ad8b71cebf46deaf60e2cd4f6d6bb9433">getModule</a>();</div><div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> numberOfBitCast = 0;</div><div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="classSVF_1_1SVFModule.html#ab86e221a93bec67a2ecb7cb53315f569">SVFModule::llvm_const_iterator</a> funIter = module-&gt;<a class="code" href="classSVF_1_1SVFModule.html#a648542aa5c4b487ad5aa12a39d15e951">llvmFunBegin</a>(), funEiter = module-&gt;<a class="code" href="classSVF_1_1SVFModule.html#af38d0f831967d6d8391a4c84e58d6519">llvmFunEnd</a>();</div><div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160; funIter != funEiter; ++funIter)</div><div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160; {</div><div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* func = *funIter;</div><div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160; <span class="keywordflow">for</span> (Function::const_iterator bbIt = func-&gt;begin(), bbEit = func-&gt;end();</div><div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160; bbIt != bbEit; ++bbIt)</div><div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160; {</div><div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a>&amp; bb = *bbIt;</div><div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160; <span class="keywordflow">for</span> (BasicBlock::const_iterator instIt = bb.begin(), instEit = bb.end();</div><div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160; instIt != instEit; ++instIt)</div><div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160; {</div><div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a>&amp; inst = *instIt;</div><div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160; <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#afc50da46a6ea7c2cf61683bbec4d7c8d">BitCastInst</a>* bitcast = SVFUtil::dyn_cast&lt;BitCastInst&gt;(&amp;inst))</div><div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160; {</div><div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160; <span class="keywordflow">if</span> (SVFUtil::isa&lt;PointerType&gt;(bitcast-&gt;getSrcTy()))</div><div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160; numberOfBitCast++;</div><div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160; }</div><div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160; }</div><div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160; }</div><div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160; }</div><div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160;</div><div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160; <a class="code" href="classSVF_1_1PTAStat.html#afa718535839a939e51afc0f8c1fbdac6">generalNumMap</a>[<span class="stringliteral">&quot;BitCastNumber&quot;</span>] = numberOfBitCast;</div><div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160;}</div><div class="ttc" id="classSVF_1_1SVFModule_html_af38d0f831967d6d8391a4c84e58d6519"><div class="ttname"><a href="classSVF_1_1SVFModule.html#af38d0f831967d6d8391a4c84e58d6519">SVF::SVFModule::llvmFunEnd</a></div><div class="ttdeci">llvm_iterator llvmFunEnd()</div><div class="ttdef"><b>Definition:</b> <a href="SVFModule_8h_source.html#l00127">SVFModule.h:127</a></div></div>
461
461
  <div class="ttc" id="namespaceSVF_html_a23bf614858f168b6ad76e0233cec9965"><div class="ttname"><a href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">SVF::BasicBlock</a></div><div class="ttdeci">llvm::BasicBlock BasicBlock</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00077">BasicTypes.h:77</a></div></div>
462
462
  <div class="ttc" id="classSVF_1_1SVFModule_html"><div class="ttname"><a href="classSVF_1_1SVFModule.html">SVF::SVFModule</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFModule_8h_source.html#l00038">SVFModule.h:38</a></div></div>
463
463
  <div class="ttc" id="namespaceSVF_html_ad42bff8d0a7d60a085aa32d10f4955af"><div class="ttname"><a href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">SVF::u32_t</a></div><div class="ttdeci">unsigned u32_t</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00075">SVFBasicTypes.h:75</a></div></div>
@@ -495,8 +495,8 @@ Private Attributes</h2></td></tr>
495
495
  </table>
496
496
  </div><div class="memdoc">
497
497
 
498
- <p class="definition">Definition at line <a class="el" href="PTAStat_8cpp_source.html#l00355">355</a> of file <a class="el" href="PTAStat_8cpp_source.html">PTAStat.cpp</a>.</p>
499
- <div class="fragment"><div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160;{</div><div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160; <a class="code" href="classSVF_1_1SVFModule.html">SVFModule</a>* module = <a class="code" href="classSVF_1_1PTAStat.html#a608441b95be0861d8c1b0a035281f4d5">pta</a>-&gt;<a class="code" href="classSVF_1_1PointerAnalysis.html#ad8b71cebf46deaf60e2cd4f6d6bb9433">getModule</a>();</div><div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> numOfBB_2Succ = 0;</div><div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> numOfBB_3Succ = 0;</div><div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="classSVF_1_1SVFModule.html#ab86e221a93bec67a2ecb7cb53315f569">SVFModule::llvm_const_iterator</a> funIter = module-&gt;<a class="code" href="classSVF_1_1SVFModule.html#a648542aa5c4b487ad5aa12a39d15e951">llvmFunBegin</a>(), funEiter = module-&gt;<a class="code" href="classSVF_1_1SVFModule.html#af38d0f831967d6d8391a4c84e58d6519">llvmFunEnd</a>();</div><div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160; funIter != funEiter; ++funIter)</div><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="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* func = *funIter;</div><div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160; <span class="keywordflow">for</span> (Function::const_iterator bbIt = func-&gt;begin(), bbEit = func-&gt;end();</div><div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160; bbIt != bbEit; ++bbIt)</div><div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160; {</div><div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a>&amp; bb = *bbIt;</div><div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> numOfSucc = bb.getTerminator()-&gt;getNumSuccessors();</div><div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160; <span class="keywordflow">if</span> (numOfSucc == 2)</div><div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160; numOfBB_2Succ++;</div><div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (numOfSucc &gt; 2)</div><div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160; numOfBB_3Succ++;</div><div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160; }</div><div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160; }</div><div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160;</div><div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160; <a class="code" href="classSVF_1_1PTAStat.html#afa718535839a939e51afc0f8c1fbdac6">generalNumMap</a>[<span class="stringliteral">&quot;BBWith2Succ&quot;</span>] = numOfBB_2Succ;</div><div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160; <a class="code" href="classSVF_1_1PTAStat.html#afa718535839a939e51afc0f8c1fbdac6">generalNumMap</a>[<span class="stringliteral">&quot;BBWith3Succ&quot;</span>] = numOfBB_3Succ;</div><div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160;}</div><div class="ttc" id="classSVF_1_1SVFModule_html_af38d0f831967d6d8391a4c84e58d6519"><div class="ttname"><a href="classSVF_1_1SVFModule.html#af38d0f831967d6d8391a4c84e58d6519">SVF::SVFModule::llvmFunEnd</a></div><div class="ttdeci">llvm_iterator llvmFunEnd()</div><div class="ttdef"><b>Definition:</b> <a href="SVFModule_8h_source.html#l00127">SVFModule.h:127</a></div></div>
498
+ <p class="definition">Definition at line <a class="el" href="PTAStat_8cpp_source.html#l00354">354</a> of file <a class="el" href="PTAStat_8cpp_source.html">PTAStat.cpp</a>.</p>
499
+ <div class="fragment"><div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160;{</div><div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160; <a class="code" href="classSVF_1_1SVFModule.html">SVFModule</a>* module = <a class="code" href="classSVF_1_1PTAStat.html#a608441b95be0861d8c1b0a035281f4d5">pta</a>-&gt;<a class="code" href="classSVF_1_1PointerAnalysis.html#ad8b71cebf46deaf60e2cd4f6d6bb9433">getModule</a>();</div><div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> numOfBB_2Succ = 0;</div><div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> numOfBB_3Succ = 0;</div><div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="classSVF_1_1SVFModule.html#ab86e221a93bec67a2ecb7cb53315f569">SVFModule::llvm_const_iterator</a> funIter = module-&gt;<a class="code" href="classSVF_1_1SVFModule.html#a648542aa5c4b487ad5aa12a39d15e951">llvmFunBegin</a>(), funEiter = module-&gt;<a class="code" href="classSVF_1_1SVFModule.html#af38d0f831967d6d8391a4c84e58d6519">llvmFunEnd</a>();</div><div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160; funIter != funEiter; ++funIter)</div><div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160; {</div><div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* func = *funIter;</div><div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160; <span class="keywordflow">for</span> (Function::const_iterator bbIt = func-&gt;begin(), bbEit = func-&gt;end();</div><div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160; bbIt != bbEit; ++bbIt)</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; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a>&amp; bb = *bbIt;</div><div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> numOfSucc = bb.getTerminator()-&gt;getNumSuccessors();</div><div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160; <span class="keywordflow">if</span> (numOfSucc == 2)</div><div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160; numOfBB_2Succ++;</div><div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (numOfSucc &gt; 2)</div><div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160; numOfBB_3Succ++;</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; }</div><div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160;</div><div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160; <a class="code" href="classSVF_1_1PTAStat.html#afa718535839a939e51afc0f8c1fbdac6">generalNumMap</a>[<span class="stringliteral">&quot;BBWith2Succ&quot;</span>] = numOfBB_2Succ;</div><div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160; <a class="code" href="classSVF_1_1PTAStat.html#afa718535839a939e51afc0f8c1fbdac6">generalNumMap</a>[<span class="stringliteral">&quot;BBWith3Succ&quot;</span>] = numOfBB_3Succ;</div><div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160;}</div><div class="ttc" id="classSVF_1_1SVFModule_html_af38d0f831967d6d8391a4c84e58d6519"><div class="ttname"><a href="classSVF_1_1SVFModule.html#af38d0f831967d6d8391a4c84e58d6519">SVF::SVFModule::llvmFunEnd</a></div><div class="ttdeci">llvm_iterator llvmFunEnd()</div><div class="ttdef"><b>Definition:</b> <a href="SVFModule_8h_source.html#l00127">SVFModule.h:127</a></div></div>
500
500
  <div class="ttc" id="namespaceSVF_html_a23bf614858f168b6ad76e0233cec9965"><div class="ttname"><a href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">SVF::BasicBlock</a></div><div class="ttdeci">llvm::BasicBlock BasicBlock</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00077">BasicTypes.h:77</a></div></div>
501
501
  <div class="ttc" id="classSVF_1_1SVFModule_html"><div class="ttname"><a href="classSVF_1_1SVFModule.html">SVF::SVFModule</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFModule_8h_source.html#l00038">SVFModule.h:38</a></div></div>
502
502
  <div class="ttc" id="namespaceSVF_html_ad42bff8d0a7d60a085aa32d10f4955af"><div class="ttname"><a href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">SVF::u32_t</a></div><div class="ttdeci">unsigned u32_t</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00075">SVFBasicTypes.h:75</a></div></div>
@@ -532,8 +532,8 @@ Private Attributes</h2></td></tr>
532
532
  </table>
533
533
  </div><div class="memdoc">
534
534
 
535
- <p class="definition">Definition at line <a class="el" href="PTAStat_8cpp_source.html#l00235">235</a> of file <a class="el" href="PTAStat_8cpp_source.html">PTAStat.cpp</a>.</p>
536
- <div class="fragment"><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160;{</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160;</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; <a class="code" href="classSVF_1_1PTACallGraph.html">PTACallGraph</a>* graph = <a class="code" href="classSVF_1_1PTAStat.html#a608441b95be0861d8c1b0a035281f4d5">pta</a>-&gt;<a class="code" href="classSVF_1_1PointerAnalysis.html#a7c9b7e5fe37ae31ba84d167945ca57df">getPTACallGraph</a>();</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; <a class="code" href="classSVF_1_1SCCDetection.html">PointerAnalysis::CallGraphSCC</a>* callgraphSCC = <span class="keyword">new</span> <a class="code" href="classSVF_1_1PointerAnalysis.html#ac4ad73782f42f90ad7ac9c66edb27c69">PointerAnalysis::CallGraphSCC</a>(graph);</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; callgraphSCC-&gt;<a class="code" href="classSVF_1_1SCCDetection.html#a123b5006a6da7053e5e357140da3c5a3">find</a>();</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160;</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; <span class="keywordtype">unsigned</span> totalNode = 0;</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; <span class="keywordtype">unsigned</span> totalCycle = 0;</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; <span class="keywordtype">unsigned</span> nodeInCycle = 0;</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; <span class="keywordtype">unsigned</span> maxNodeInCycle = 0;</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; <span class="keywordtype">unsigned</span> totalEdge = 0;</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; <span class="keywordtype">unsigned</span> edgeInCycle = 0;</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160;</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; <a class="code" href="namespaceSVF.html#a212231734fa43d5c7414137deaac7df3">NodeSet</a> sccRepNodeSet;</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; <a class="code" href="classSVF_1_1GenericGraph.html#ac213302cf5c7cdf3b66f7b18649d0fbc">PTACallGraph::iterator</a> it = graph-&gt;<a class="code" href="classSVF_1_1GenericGraph.html#a0d9744b1b0e7a09a6f7af29188e243b7">begin</a>();</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; <a class="code" href="classSVF_1_1GenericGraph.html#ac213302cf5c7cdf3b66f7b18649d0fbc">PTACallGraph::iterator</a> eit = graph-&gt;<a class="code" href="classSVF_1_1GenericGraph.html#a4bef15157423cef48dc7333a803cd27d">end</a>();</div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; <span class="keywordflow">for</span> (; it != eit; ++it)</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; {</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; totalNode++;</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; <span class="keywordflow">if</span>(callgraphSCC-&gt;<a class="code" href="classSVF_1_1SCCDetection.html#a5d699af73b1e7ad4e3a5f6d26b8b6d15">isInCycle</a>(it-&gt;first))</div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; {</div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; sccRepNodeSet.insert(callgraphSCC-&gt;<a class="code" href="classSVF_1_1SCCDetection.html#a3a5fdc9330a657240f77199f5aee602d">repNode</a>(it-&gt;first));</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; nodeInCycle++;</div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">NodeBS</a>&amp; subNodes = callgraphSCC-&gt;<a class="code" href="classSVF_1_1SCCDetection.html#a6ab5eff6a576e6d8703c1ea29b7f425d">subNodes</a>(it-&gt;first);</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; <span class="keywordflow">if</span>(subNodes.count() &gt; maxNodeInCycle)</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; maxNodeInCycle = subNodes.count();</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; }</div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160;</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; <a class="code" href="classSVF_1_1PTACallGraphNode.html#adf17f5699c9f40ffc8837e813e3af3ec">PTACallGraphNode::const_iterator</a> edgeIt = it-&gt;second-&gt;InEdgeBegin();</div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; <a class="code" href="classSVF_1_1PTACallGraphNode.html#adf17f5699c9f40ffc8837e813e3af3ec">PTACallGraphNode::const_iterator</a> edgeEit = it-&gt;second-&gt;InEdgeEnd();</div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; <span class="keywordflow">for</span> (; edgeIt != edgeEit; ++edgeIt)</div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; {</div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160; <a class="code" href="classSVF_1_1PTACallGraphEdge.html">PTACallGraphEdge</a> *edge = *edgeIt;</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160; totalEdge+= edge-&gt;<a class="code" href="classSVF_1_1PTACallGraphEdge.html#af0e9f86be3cf263b868f80d374641fc9">getDirectCalls</a>().size() + edge-&gt;<a class="code" href="classSVF_1_1PTACallGraphEdge.html#a76aa19edf03a4cacfa3e27a21abfcd07">getIndirectCalls</a>().size();</div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; <span class="keywordflow">if</span>(callgraphSCC-&gt;<a class="code" href="classSVF_1_1SCCDetection.html#a3a5fdc9330a657240f77199f5aee602d">repNode</a>(edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#ae6792506a0150a9400d635eceab7f9e7">getSrcID</a>()) == callgraphSCC-&gt;<a class="code" href="classSVF_1_1SCCDetection.html#a3a5fdc9330a657240f77199f5aee602d">repNode</a>(edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#ad9edb45e74ae675d9da82f5acf02d56e">getDstID</a>()))</div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160; {</div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; edgeInCycle+=edge-&gt;<a class="code" href="classSVF_1_1PTACallGraphEdge.html#af0e9f86be3cf263b868f80d374641fc9">getDirectCalls</a>().size() + edge-&gt;<a class="code" href="classSVF_1_1PTACallGraphEdge.html#a76aa19edf03a4cacfa3e27a21abfcd07">getIndirectCalls</a>().size();</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; }</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; }</div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; }</div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160;</div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160; totalCycle = sccRepNodeSet.size();</div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160;</div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">&quot;TotalNode&quot;</span>] = totalNode;</div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">&quot;TotalCycle&quot;</span>] = totalCycle;</div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">&quot;NodeInCycle&quot;</span>] = nodeInCycle;</div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">&quot;MaxNodeInCycle&quot;</span>] = maxNodeInCycle;</div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160; <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">&quot;TotalEdge&quot;</span>] = totalEdge;</div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">&quot;CalRetPairInCycle&quot;</span>] = edgeInCycle;</div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160;</div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160; <a class="code" href="classSVF_1_1PTAStat.html#aa5f455bfa79743b8e263431593d29bbf">PTAStat::printStat</a>(<span class="stringliteral">&quot;CallGraph Stats&quot;</span>);</div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160;</div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; <span class="keyword">delete</span> callgraphSCC;</div><div class="line"><a name="l00289"></a><span class="lineno"> 289</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>
535
+ <p class="definition">Definition at line <a class="el" href="PTAStat_8cpp_source.html#l00234">234</a> of file <a class="el" href="PTAStat_8cpp_source.html">PTAStat.cpp</a>.</p>
536
+ <div class="fragment"><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160;{</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160;</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; <a class="code" href="classSVF_1_1PTACallGraph.html">PTACallGraph</a>* graph = <a class="code" href="classSVF_1_1PTAStat.html#a608441b95be0861d8c1b0a035281f4d5">pta</a>-&gt;<a class="code" href="classSVF_1_1PointerAnalysis.html#a7c9b7e5fe37ae31ba84d167945ca57df">getPTACallGraph</a>();</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; <a class="code" href="classSVF_1_1SCCDetection.html">PointerAnalysis::CallGraphSCC</a>* callgraphSCC = <span class="keyword">new</span> <a class="code" href="classSVF_1_1PointerAnalysis.html#ac4ad73782f42f90ad7ac9c66edb27c69">PointerAnalysis::CallGraphSCC</a>(graph);</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; callgraphSCC-&gt;<a class="code" href="classSVF_1_1SCCDetection.html#a123b5006a6da7053e5e357140da3c5a3">find</a>();</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160;</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; <span class="keywordtype">unsigned</span> totalNode = 0;</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; <span class="keywordtype">unsigned</span> totalCycle = 0;</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; <span class="keywordtype">unsigned</span> nodeInCycle = 0;</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; <span class="keywordtype">unsigned</span> maxNodeInCycle = 0;</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; <span class="keywordtype">unsigned</span> totalEdge = 0;</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; <span class="keywordtype">unsigned</span> edgeInCycle = 0;</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160;</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; <a class="code" href="namespaceSVF.html#a212231734fa43d5c7414137deaac7df3">NodeSet</a> sccRepNodeSet;</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; <a class="code" href="classSVF_1_1GenericGraph.html#ac213302cf5c7cdf3b66f7b18649d0fbc">PTACallGraph::iterator</a> it = graph-&gt;<a class="code" href="classSVF_1_1GenericGraph.html#a0d9744b1b0e7a09a6f7af29188e243b7">begin</a>();</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; <a class="code" href="classSVF_1_1GenericGraph.html#ac213302cf5c7cdf3b66f7b18649d0fbc">PTACallGraph::iterator</a> eit = graph-&gt;<a class="code" href="classSVF_1_1GenericGraph.html#a4bef15157423cef48dc7333a803cd27d">end</a>();</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; <span class="keywordflow">for</span> (; it != eit; ++it)</div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; {</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; totalNode++;</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; <span class="keywordflow">if</span>(callgraphSCC-&gt;<a class="code" href="classSVF_1_1SCCDetection.html#a5d699af73b1e7ad4e3a5f6d26b8b6d15">isInCycle</a>(it-&gt;first))</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; {</div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; sccRepNodeSet.insert(callgraphSCC-&gt;<a class="code" href="classSVF_1_1SCCDetection.html#a3a5fdc9330a657240f77199f5aee602d">repNode</a>(it-&gt;first));</div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; nodeInCycle++;</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">NodeBS</a>&amp; subNodes = callgraphSCC-&gt;<a class="code" href="classSVF_1_1SCCDetection.html#a6ab5eff6a576e6d8703c1ea29b7f425d">subNodes</a>(it-&gt;first);</div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; <span class="keywordflow">if</span>(subNodes.count() &gt; maxNodeInCycle)</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; maxNodeInCycle = subNodes.count();</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; }</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160;</div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; <a class="code" href="classSVF_1_1PTACallGraphNode.html#adf17f5699c9f40ffc8837e813e3af3ec">PTACallGraphNode::const_iterator</a> edgeIt = it-&gt;second-&gt;InEdgeBegin();</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; <a class="code" href="classSVF_1_1PTACallGraphNode.html#adf17f5699c9f40ffc8837e813e3af3ec">PTACallGraphNode::const_iterator</a> edgeEit = it-&gt;second-&gt;InEdgeEnd();</div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; <span class="keywordflow">for</span> (; edgeIt != edgeEit; ++edgeIt)</div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; {</div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; <a class="code" href="classSVF_1_1PTACallGraphEdge.html">PTACallGraphEdge</a> *edge = *edgeIt;</div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160; totalEdge+= edge-&gt;<a class="code" href="classSVF_1_1PTACallGraphEdge.html#af0e9f86be3cf263b868f80d374641fc9">getDirectCalls</a>().size() + edge-&gt;<a class="code" href="classSVF_1_1PTACallGraphEdge.html#a76aa19edf03a4cacfa3e27a21abfcd07">getIndirectCalls</a>().size();</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160; <span class="keywordflow">if</span>(callgraphSCC-&gt;<a class="code" href="classSVF_1_1SCCDetection.html#a3a5fdc9330a657240f77199f5aee602d">repNode</a>(edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#ae6792506a0150a9400d635eceab7f9e7">getSrcID</a>()) == callgraphSCC-&gt;<a class="code" href="classSVF_1_1SCCDetection.html#a3a5fdc9330a657240f77199f5aee602d">repNode</a>(edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#ad9edb45e74ae675d9da82f5acf02d56e">getDstID</a>()))</div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; {</div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160; edgeInCycle+=edge-&gt;<a class="code" href="classSVF_1_1PTACallGraphEdge.html#af0e9f86be3cf263b868f80d374641fc9">getDirectCalls</a>().size() + edge-&gt;<a class="code" href="classSVF_1_1PTACallGraphEdge.html#a76aa19edf03a4cacfa3e27a21abfcd07">getIndirectCalls</a>().size();</div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; }</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; }</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; }</div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160;</div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; totalCycle = sccRepNodeSet.size();</div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160;</div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">&quot;TotalNode&quot;</span>] = totalNode;</div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">&quot;TotalCycle&quot;</span>] = totalCycle;</div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">&quot;NodeInCycle&quot;</span>] = nodeInCycle;</div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">&quot;MaxNodeInCycle&quot;</span>] = maxNodeInCycle;</div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">&quot;TotalEdge&quot;</span>] = totalEdge;</div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160; <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">&quot;CalRetPairInCycle&quot;</span>] = edgeInCycle;</div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160;</div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; <a class="code" href="classSVF_1_1PTAStat.html#aa5f455bfa79743b8e263431593d29bbf">PTAStat::printStat</a>(<span class="stringliteral">&quot;CallGraph Stats&quot;</span>);</div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160;</div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160; <span class="keyword">delete</span> callgraphSCC;</div><div class="line"><a name="l00288"></a><span class="lineno"> 288</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>
537
537
  <div class="ttc" id="classSVF_1_1SCCDetection_html_a6ab5eff6a576e6d8703c1ea29b7f425d"><div class="ttname"><a href="classSVF_1_1SCCDetection.html#a6ab5eff6a576e6d8703c1ea29b7f425d">SVF::SCCDetection::subNodes</a></div><div class="ttdeci">const NodeBS &amp; subNodes(NodeID n) const</div><div class="ttdoc">get all subnodes in one scc, if size is empty insert itself into the set </div><div class="ttdef"><b>Definition:</b> <a href="SCC_8h_source.html#l00173">SCC.h:173</a></div></div>
538
538
  <div class="ttc" id="namespaceSVF_html_a212231734fa43d5c7414137deaac7df3"><div class="ttname"><a href="namespaceSVF.html#a212231734fa43d5c7414137deaac7df3">SVF::NodeSet</a></div><div class="ttdeci">Set&lt; NodeID &gt; NodeSet</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00114">SVFBasicTypes.h:114</a></div></div>
539
539
  <div class="ttc" id="classSVF_1_1GenericEdge_html_ad9edb45e74ae675d9da82f5acf02d56e"><div class="ttname"><a href="classSVF_1_1GenericEdge.html#ad9edb45e74ae675d9da82f5acf02d56e">SVF::GenericEdge::getDstID</a></div><div class="ttdeci">NodeID getDstID() const</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00077">GenericGraph.h:77</a></div></div>
@@ -554,7 +554,7 @@ Private Attributes</h2></td></tr>
554
554
  <div class="ttc" id="classSVF_1_1SCCDetection_html_a5d699af73b1e7ad4e3a5f6d26b8b6d15"><div class="ttname"><a href="classSVF_1_1SCCDetection.html#a5d699af73b1e7ad4e3a5f6d26b8b6d15">SVF::SCCDetection::isInCycle</a></div><div class="ttdeci">bool isInCycle(NodeID n) const</div><div class="ttdoc">whether the node is in a cycle </div><div class="ttdef"><b>Definition:</b> <a href="SCC_8h_source.html#l00149">SCC.h:149</a></div></div>
555
555
  <div class="ttc" id="classSVF_1_1PTAStat_html_a608441b95be0861d8c1b0a035281f4d5"><div class="ttname"><a href="classSVF_1_1PTAStat.html#a608441b95be0861d8c1b0a035281f4d5">SVF::PTAStat::pta</a></div><div class="ttdeci">PointerAnalysis * pta</div><div class="ttdef"><b>Definition:</b> <a href="PTAStat_8h_source.html#l00168">PTAStat.h:168</a></div></div>
556
556
  <div class="ttc" id="classSVF_1_1PTAStat_html_afdb975520329be0c33cc7bdd51ba7031"><div class="ttname"><a href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">SVF::PTAStat::PTNumStatMap</a></div><div class="ttdeci">NUMStatMap PTNumStatMap</div><div class="ttdef"><b>Definition:</b> <a href="PTAStat_8h_source.html#l00148">PTAStat.h:148</a></div></div>
557
- <div class="ttc" id="classSVF_1_1PTAStat_html_aa5f455bfa79743b8e263431593d29bbf"><div class="ttname"><a href="classSVF_1_1PTAStat.html#aa5f455bfa79743b8e263431593d29bbf">SVF::PTAStat::printStat</a></div><div class="ttdeci">virtual void printStat(string str=&quot;&quot;)</div><div class="ttdef"><b>Definition:</b> <a href="PTAStat_8cpp_source.html#l00291">PTAStat.cpp:291</a></div></div>
557
+ <div class="ttc" id="classSVF_1_1PTAStat_html_aa5f455bfa79743b8e263431593d29bbf"><div class="ttname"><a href="classSVF_1_1PTAStat.html#aa5f455bfa79743b8e263431593d29bbf">SVF::PTAStat::printStat</a></div><div class="ttdeci">virtual void printStat(string str=&quot;&quot;)</div><div class="ttdef"><b>Definition:</b> <a href="PTAStat_8cpp_source.html#l00290">PTAStat.cpp:290</a></div></div>
558
558
  </div><!-- fragment -->
559
559
  </div>
560
560
  </div>
@@ -613,9 +613,10 @@ Private Attributes</h2></td></tr>
613
613
  <p>When mark is true, real clock is always returned. When mark is false, it is only returned when <a class="el" href="classSVF_1_1Options.html#a5cfcf1ddc44ff175c4766f88bf204c03">Options::MarkedClocksOnly</a> is not set. Default call for getClk is unmarked, while MarkedClocksOnly is false by default. </p>
614
614
 
615
615
  <p class="definition">Definition at line <a class="el" href="PTAStat_8cpp_source.html#l00114">114</a> of file <a class="el" href="PTAStat_8cpp_source.html">PTAStat.cpp</a>.</p>
616
- <div class="fragment"><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; {</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1Options.html#a5cfcf1ddc44ff175c4766f88bf204c03">Options::MarkedClocksOnly</a> &amp;&amp; !mark) <span class="keywordflow">return</span> 0.0;</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1Options.html#a6a62b34de8ec23899a8024e0450c43df">Options::ClockType</a> == ClockType::Wall)</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; {</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; <span class="keyword">struct </span>timespec time;</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; clock_gettime(CLOCK_MONOTONIC, &amp;time);</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <span class="keywordflow">return</span> (<span class="keywordtype">double</span>)(time.tv_nsec + time.tv_sec * 1000000000) / 1000000.0;</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; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1Options.html#a6a62b34de8ec23899a8024e0450c43df">Options::ClockType</a> == ClockType::CPU)</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; {</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; <span class="keywordflow">return</span> <a class="code" href="SVFBasicTypes_8h.html#af091e361d7961cb895ff2101eceed953">CLOCK_IN_MS</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; <span class="keywordflow">else</span></div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; {</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(<span class="keyword">false</span> &amp;&amp; <span class="stringliteral">&quot;PTAStat::getClk: unknown clock type&quot;</span>);</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;}</div><div class="ttc" id="util_8h_html_a07d17d6d5d1074c0969bc5d3c3d1d84a"><div class="ttname"><a href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a></div><div class="ttdeci">#define assert(ex)</div><div class="ttdef"><b>Definition:</b> <a href="util_8h_source.html#l00141">util.h:141</a></div></div>
617
- <div class="ttc" id="SVFBasicTypes_8h_html_af091e361d7961cb895ff2101eceed953"><div class="ttname"><a href="SVFBasicTypes_8h.html#af091e361d7961cb895ff2101eceed953">CLOCK_IN_MS</a></div><div class="ttdeci">#define CLOCK_IN_MS()</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00175">SVFBasicTypes.h:175</a></div></div>
616
+ <div class="fragment"><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; {</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1Options.html#a5cfcf1ddc44ff175c4766f88bf204c03">Options::MarkedClocksOnly</a> &amp;&amp; !mark) <span class="keywordflow">return</span> 0.0;</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1Options.html#a6a62b34de8ec23899a8024e0450c43df">Options::ClockType</a> == ClockType::Wall)</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; {</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; <span class="keyword">struct </span>timespec time;</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; clock_gettime(CLOCK_MONOTONIC, &amp;time);</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <span class="keywordflow">return</span> (<span class="keywordtype">double</span>)(time.tv_nsec + time.tv_sec * 1000000000) / 1000000.0;</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; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1Options.html#a6a62b34de8ec23899a8024e0450c43df">Options::ClockType</a> == ClockType::CPU)</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; {</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; <span class="keywordflow">return</span> <a class="code" href="SVFBasicTypes_8h.html#af091e361d7961cb895ff2101eceed953">CLOCK_IN_MS</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;</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(<span class="keyword">false</span> &amp;&amp; <span class="stringliteral">&quot;PTAStat::getClk: unknown clock type&quot;</span>);</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; <a class="code" href="util_8h.html#a23c00958edf66c39625a0d535dee57b7">abort</a>();</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160;}</div><div class="ttc" id="util_8h_html_a07d17d6d5d1074c0969bc5d3c3d1d84a"><div class="ttname"><a href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a></div><div class="ttdeci">#define assert(ex)</div><div class="ttdef"><b>Definition:</b> <a href="util_8h_source.html#l00141">util.h:141</a></div></div>
617
+ <div class="ttc" id="SVFBasicTypes_8h_html_af091e361d7961cb895ff2101eceed953"><div class="ttname"><a href="SVFBasicTypes_8h.html#af091e361d7961cb895ff2101eceed953">CLOCK_IN_MS</a></div><div class="ttdeci">#define CLOCK_IN_MS()</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00177">SVFBasicTypes.h:177</a></div></div>
618
618
  <div class="ttc" id="classSVF_1_1Options_html_a6a62b34de8ec23899a8024e0450c43df"><div class="ttname"><a href="classSVF_1_1Options.html#a6a62b34de8ec23899a8024e0450c43df">SVF::Options::ClockType</a></div><div class="ttdeci">static const llvm::cl::opt&lt; enum PTAStat::ClockType &gt; ClockType</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00023">Options.h:23</a></div></div>
619
+ <div class="ttc" id="util_8h_html_a23c00958edf66c39625a0d535dee57b7"><div class="ttname"><a href="util_8h.html#a23c00958edf66c39625a0d535dee57b7">abort</a></div><div class="ttdeci">VOID_OR_INT abort()</div></div>
619
620
  <div class="ttc" id="classSVF_1_1Options_html_a5cfcf1ddc44ff175c4766f88bf204c03"><div class="ttname"><a href="classSVF_1_1Options.html#a5cfcf1ddc44ff175c4766f88bf204c03">SVF::Options::MarkedClocksOnly</a></div><div class="ttdeci">static const llvm::cl::opt&lt; bool &gt; MarkedClocksOnly</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00030">Options.h:30</a></div></div>
620
621
  </div><!-- fragment -->
621
622
  </div>
@@ -645,8 +646,8 @@ Private Attributes</h2></td></tr>
645
646
 
646
647
  <p>Reimplemented in <a class="el" href="classSVF_1_1VersionedFlowSensitiveStat.html#af202623692135ad746aed1be995c55fb">SVF::VersionedFlowSensitiveStat</a>, <a class="el" href="classSVF_1_1SVFGStat.html#ab11b1fbef2bd7cfc9bf8e1b993dbfa11">SVF::SVFGStat</a>, <a class="el" href="classSVF_1_1FlowSensitiveStat.html#a059047d05e9873a624e333162a460571">SVF::FlowSensitiveStat</a>, <a class="el" href="classSVF_1_1MemSSAStat.html#abf3825b642cf115259ea21e5f7e28878">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>, and <a class="el" href="classSVF_1_1DDAStat.html#a99f31f412577a7998521250fb5004713">SVF::DDAStat</a>.</p>
647
648
 
648
- <p class="definition">Definition at line <a class="el" href="PTAStat_8cpp_source.html#l00133">133</a> of file <a class="el" href="PTAStat_8cpp_source.html">PTAStat.cpp</a>.</p>
649
- <div class="fragment"><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;{</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; <a class="code" href="classSVF_1_1PTAStat.html#a1772bc87370b5625f71edd4476277064">callgraphStat</a>();</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160;</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; <a class="code" href="classSVF_1_1PAG.html">PAG</a>* pag = <a class="code" href="classSVF_1_1PAG.html#ac8910c7330638bdf31c23d4cc03ba9c5">PAG::getPAG</a>();</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> numOfFunction = 0;</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> numOfGlobal = 0;</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> numOfStack = 0;</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> numOfHeap = 0;</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> numOfHasVarArray = 0;</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> numOfHasVarStruct = 0;</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> numOfHasConstArray = 0;</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> numOfHasConstStruct = 0;</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> numOfScalar = 0;</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> numOfConstant = 0;</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> fiObjNumber = 0;</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> fsObjNumber = 0;</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set&lt;SymID&gt;</a> memObjSet;</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; <span class="keywordflow">for</span>(<a class="code" href="classSVF_1_1GenericGraph.html#ac213302cf5c7cdf3b66f7b18649d0fbc">PAG::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="l00153"></a><span class="lineno"> 153</span>&#160; {</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; <a class="code" href="classSVF_1_1PAGNode.html">PAGNode</a>* node = it-&gt;second;</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1ObjPN.html">ObjPN</a>* obj = SVFUtil::dyn_cast&lt;ObjPN&gt;(node))</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; <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="l00158"></a><span class="lineno"> 158</span>&#160; <span class="keywordflow">if</span> (memObjSet.insert(mem-&gt;<a class="code" href="classSVF_1_1MemObj.html#ad7f7de744715c3acaf3d48822865c87b">getSymId</a>()).second == <span class="keyword">false</span>)</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; <span class="keywordflow">continue</span>;</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</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="l00161"></a><span class="lineno"> 161</span>&#160; <span class="keywordflow">continue</span>;</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; <span class="keywordflow">if</span>(mem-&gt;<a class="code" href="classSVF_1_1MemObj.html#a0da6483089b2d80778535929426c1540">isFunction</a>())</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; numOfFunction++;</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; <span class="keywordflow">if</span>(mem-&gt;<a class="code" href="classSVF_1_1MemObj.html#aa513ca5bd3927c9f697b504a70e57013">isGlobalObj</a>())</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; numOfGlobal++;</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; <span class="keywordflow">if</span>(mem-&gt;<a class="code" href="classSVF_1_1MemObj.html#a65735220b56354f7b6c7ce6753f84e4b">isStack</a>())</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; numOfStack++;</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; <span class="keywordflow">if</span>(mem-&gt;<a class="code" href="classSVF_1_1MemObj.html#af8f4f85cfbcb09615fb04ca63d634138">isHeap</a>())</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; numOfHeap++;</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; <span class="keywordflow">if</span>(mem-&gt;<a class="code" href="classSVF_1_1MemObj.html#a167ed4be108aa7833aa267470d256766">isVarArray</a>())</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; numOfHasVarArray++;</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; <span class="keywordflow">if</span>(mem-&gt;<a class="code" href="classSVF_1_1MemObj.html#a5a6887b8ae47b21ba82324daced74ac0">isVarStruct</a>())</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; numOfHasVarStruct++;</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; <span class="keywordflow">if</span>(mem-&gt;<a class="code" href="classSVF_1_1MemObj.html#a347eacc3e472c706600c25d7bd46bed6">isConstArray</a>())</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; numOfHasConstArray++;</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; <span class="keywordflow">if</span>(mem-&gt;<a class="code" href="classSVF_1_1MemObj.html#a846fafa3f005531525856df4581e33fd">isConstStruct</a>())</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; numOfHasConstStruct++;</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; <span class="keywordflow">if</span>(mem-&gt;<a class="code" href="classSVF_1_1MemObj.html#a1ecb652416c602e1c5e3d9e7be580c3c">hasPtrObj</a>() == <span class="keyword">false</span>)</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; numOfScalar++;</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; <span class="keywordflow">if</span>(mem-&gt;<a class="code" href="classSVF_1_1MemObj.html#ad67bc82cb51d0eb23c92c2ff9456c636">isConstant</a>())</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; numOfConstant++;</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; <span class="keywordflow">if</span> (mem-&gt;<a class="code" href="classSVF_1_1MemObj.html#a9d50a00ff608df21f50b3b2823128901">isFieldInsensitive</a>())</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; fiObjNumber++;</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; fsObjNumber++;</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160;</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1PTAStat.html#a608441b95be0861d8c1b0a035281f4d5">pta</a>-&gt;<a class="code" href="classSVF_1_1PointerAnalysis.html#a108380f6f0b67654bb7c7676686096c8">isLocalVarInRecursiveFun</a>(node-&gt;<a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>()))</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_1PTAStat.html#a5b4095f427c9c7b9ec0db497ba33baea">localVarInRecursion</a>.set(node-&gt;<a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>());</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; }</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; }</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160;</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160;</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; <a class="code" href="classSVF_1_1PTAStat.html#afa718535839a939e51afc0f8c1fbdac6">generalNumMap</a>[<a class="code" href="classSVF_1_1PTAStat.html#a1a4d418fd9e5413e7ffbbfe57f5e0560">TotalNumOfPointers</a>] = pag-&gt;<a class="code" href="classSVF_1_1PAG.html#ad8c9f6134aa97d310f8eebbd7bf9bc8f">getValueNodeNum</a>() + pag-&gt;<a class="code" href="classSVF_1_1PAG.html#a815b0acd760c050c7b352b2000675fc5">getFieldValNodeNum</a>();</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; <a class="code" href="classSVF_1_1PTAStat.html#afa718535839a939e51afc0f8c1fbdac6">generalNumMap</a>[<a class="code" href="classSVF_1_1PTAStat.html#acd9848f15aa359550e86c7b857df84ed">TotalNumOfObjects</a>] = pag-&gt;<a class="code" href="classSVF_1_1PAG.html#afe02872115f15623178cb1ed8f737992">getObjectNodeNum</a>();</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; <a class="code" href="classSVF_1_1PTAStat.html#afa718535839a939e51afc0f8c1fbdac6">generalNumMap</a>[<a class="code" href="classSVF_1_1PTAStat.html#ac0e0a1c49d33e02f5cc0f21565ce627d">TotalNumOfFieldObjects</a>] = pag-&gt;<a class="code" href="classSVF_1_1PAG.html#acde529dcb2054bf50a0793d8aa51bb07">getFieldObjNodeNum</a>();</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; <a class="code" href="classSVF_1_1PTAStat.html#afa718535839a939e51afc0f8c1fbdac6">generalNumMap</a>[<a class="code" href="classSVF_1_1PTAStat.html#af6a6e3ea4c7f8e1c984bea8d5fb9a7c0">MaxStructSize</a>] = <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="l00201"></a><span class="lineno"> 201</span>&#160; <a class="code" href="classSVF_1_1PTAStat.html#afa718535839a939e51afc0f8c1fbdac6">generalNumMap</a>[<a class="code" href="classSVF_1_1PTAStat.html#a3afc0a36232a0388d8aa42c68219cb26">TotalNumOfEdges</a>] = pag-&gt;<a class="code" href="classSVF_1_1PAG.html#a74de66edb19a534fe85d4621085021ec">getPAGEdgeNum</a>();</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; <a class="code" href="classSVF_1_1PTAStat.html#afa718535839a939e51afc0f8c1fbdac6">generalNumMap</a>[<span class="stringliteral">&quot;TotalPTAPAGEdges&quot;</span>] = pag-&gt;<a class="code" href="classSVF_1_1PAG.html#a7bd46d36d58cc8ec70d8a42e5eb93683">totalPTAPAGEdge</a>;</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; <a class="code" href="classSVF_1_1PTAStat.html#afa718535839a939e51afc0f8c1fbdac6">generalNumMap</a>[<a class="code" href="classSVF_1_1PTAStat.html#ad1a7e7aec8f272017be7d0b6acda86a4">NumberOfFieldInsensitiveObj</a>] = fiObjNumber;</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; <a class="code" href="classSVF_1_1PTAStat.html#afa718535839a939e51afc0f8c1fbdac6">generalNumMap</a>[<a class="code" href="classSVF_1_1PTAStat.html#ab62eb21c7dc03f68b0509c31451b2e98">NumberOfFieldSensitiveObj</a>] = fsObjNumber;</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; <a class="code" href="classSVF_1_1PTAStat.html#afa718535839a939e51afc0f8c1fbdac6">generalNumMap</a>[<a class="code" href="classSVF_1_1PTAStat.html#ac5bf59a0a7a760c9fec5f22dedec5eb6">NumOfAddrs</a>] = pag-&gt;<a class="code" href="classSVF_1_1PAG.html#a4b89e254837eca47e09e41cf67dba722">getEdgeSet</a>(<a class="code" href="classSVF_1_1PAGEdge.html#a79080505b4744aa8806b55215ac2b0f6ac29bb583428e3c20d758bb9cf2d2d626">PAGEdge::Addr</a>).size();</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; <a class="code" href="classSVF_1_1PTAStat.html#afa718535839a939e51afc0f8c1fbdac6">generalNumMap</a>[<a class="code" href="classSVF_1_1PTAStat.html#a4aa7356142f51d942063be5a2910940f">NumOfLoads</a>] = pag-&gt;<a class="code" href="classSVF_1_1PAG.html#a4b89e254837eca47e09e41cf67dba722">getEdgeSet</a>(<a class="code" href="classSVF_1_1PAGEdge.html#a79080505b4744aa8806b55215ac2b0f6a8fcebc849a231c3c87dddbf0ab5a2167">PAGEdge::Load</a>).size();</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; <a class="code" href="classSVF_1_1PTAStat.html#afa718535839a939e51afc0f8c1fbdac6">generalNumMap</a>[<a class="code" href="classSVF_1_1PTAStat.html#a656ad9980ff05af396ed6754c50916e7">NumOfStores</a>] = pag-&gt;<a class="code" href="classSVF_1_1PAG.html#a4b89e254837eca47e09e41cf67dba722">getEdgeSet</a>(<a class="code" href="classSVF_1_1PAGEdge.html#a79080505b4744aa8806b55215ac2b0f6aca20a2c4d9809736d43b18f3cb53e8cf">PAGEdge::Store</a>).size();</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; <a class="code" href="classSVF_1_1PTAStat.html#afa718535839a939e51afc0f8c1fbdac6">generalNumMap</a>[<a class="code" href="classSVF_1_1PTAStat.html#a97a8b662356fc89cdd2cb9463fa5578b">NumOfCopys</a>] = pag-&gt;<a class="code" href="classSVF_1_1PAG.html#a4b89e254837eca47e09e41cf67dba722">getEdgeSet</a>(<a class="code" href="classSVF_1_1PAGEdge.html#a79080505b4744aa8806b55215ac2b0f6af447071283803d3aee763fe20783f4a4">PAGEdge::Copy</a>).size();</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; <a class="code" href="classSVF_1_1PTAStat.html#afa718535839a939e51afc0f8c1fbdac6">generalNumMap</a>[<a class="code" href="classSVF_1_1PTAStat.html#acc5e4740e11cb6f9794723e5f61ab63b">NumOfGeps</a>] = pag-&gt;<a class="code" href="classSVF_1_1PAG.html#a4b89e254837eca47e09e41cf67dba722">getEdgeSet</a>(<a class="code" href="classSVF_1_1PAGEdge.html#a79080505b4744aa8806b55215ac2b0f6a4b8b2eb7125c259d8d550dd83c51147b">PAGEdge::NormalGep</a>).size() + pag-&gt;<a class="code" href="classSVF_1_1PAG.html#a4b89e254837eca47e09e41cf67dba722">getEdgeSet</a>(<a class="code" href="classSVF_1_1PAGEdge.html#a79080505b4744aa8806b55215ac2b0f6ad1f40a044008babd44bff30af846550c">PAGEdge::VariantGep</a>).size();</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; <a class="code" href="classSVF_1_1PTAStat.html#afa718535839a939e51afc0f8c1fbdac6">generalNumMap</a>[<a class="code" href="classSVF_1_1PTAStat.html#a6cbeca77d0681f7da28979cbd0f661b2">NumOfCalls</a>] = pag-&gt;<a class="code" href="classSVF_1_1PAG.html#a4b89e254837eca47e09e41cf67dba722">getEdgeSet</a>(<a class="code" href="classSVF_1_1PAGEdge.html#a79080505b4744aa8806b55215ac2b0f6a5f4c2c1ec167425622d40133ec15448d">PAGEdge::Call</a>).size();</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; <a class="code" href="classSVF_1_1PTAStat.html#afa718535839a939e51afc0f8c1fbdac6">generalNumMap</a>[<a class="code" href="classSVF_1_1PTAStat.html#a0a552611fcd20e1310290bdae404a514">NumOfReturns</a>] = pag-&gt;<a class="code" href="classSVF_1_1PAG.html#a4b89e254837eca47e09e41cf67dba722">getEdgeSet</a>(<a class="code" href="classSVF_1_1PAGEdge.html#a79080505b4744aa8806b55215ac2b0f6a99fe431c7a635d39b5558d1048a94c05">PAGEdge::Ret</a>).size();</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160;</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; <a class="code" href="classSVF_1_1PTAStat.html#afa718535839a939e51afc0f8c1fbdac6">generalNumMap</a>[<a class="code" href="classSVF_1_1PTAStat.html#ae9952b7456b5102113d1fee4d9d7801a">NumOfFunctionObjs</a>] = numOfFunction;</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; <a class="code" href="classSVF_1_1PTAStat.html#afa718535839a939e51afc0f8c1fbdac6">generalNumMap</a>[<a class="code" href="classSVF_1_1PTAStat.html#a57574c85a5a875a05ef83d3c916cf3e5">NumOfGlobalObjs</a>] = numOfGlobal;</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; <a class="code" href="classSVF_1_1PTAStat.html#afa718535839a939e51afc0f8c1fbdac6">generalNumMap</a>[<a class="code" href="classSVF_1_1PTAStat.html#a4aff48eaa2045ee619a8ea793a9234b8">NumOfHeapObjs</a>] = numOfHeap;</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; <a class="code" href="classSVF_1_1PTAStat.html#afa718535839a939e51afc0f8c1fbdac6">generalNumMap</a>[<a class="code" href="classSVF_1_1PTAStat.html#ae05503909688a17dc1f282d1d029d24e">NumOfStackObjs</a>] = numOfStack;</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160;</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; <a class="code" href="classSVF_1_1PTAStat.html#afa718535839a939e51afc0f8c1fbdac6">generalNumMap</a>[<a class="code" href="classSVF_1_1PTAStat.html#a95edd35cec92fa4cacc8b59b5eecc827">NumOfObjsHasVarStruct</a>] = numOfHasVarStruct;</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; <a class="code" href="classSVF_1_1PTAStat.html#afa718535839a939e51afc0f8c1fbdac6">generalNumMap</a>[<a class="code" href="classSVF_1_1PTAStat.html#a78693e8bf93d712eb76c9d6dc0c45ae6">NumOfObjsHasVarArray</a>] = numOfHasVarArray;</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; <a class="code" href="classSVF_1_1PTAStat.html#afa718535839a939e51afc0f8c1fbdac6">generalNumMap</a>[<a class="code" href="classSVF_1_1PTAStat.html#a918051b1d0eb4f49c349352408cc9751">NumOfObjsHasConstStruct</a>] = numOfHasConstStruct;</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; <a class="code" href="classSVF_1_1PTAStat.html#afa718535839a939e51afc0f8c1fbdac6">generalNumMap</a>[<a class="code" href="classSVF_1_1PTAStat.html#adb31b163f0cbb9d9ce207ef5d8c075fa">NumOfObjsHasConstArray</a>] = numOfHasConstArray;</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; <a class="code" href="classSVF_1_1PTAStat.html#afa718535839a939e51afc0f8c1fbdac6">generalNumMap</a>[<a class="code" href="classSVF_1_1PTAStat.html#a9014371b8ed95ab8135eed2a7fa945f1">NumOfNonPtrObjs</a>] = numOfScalar;</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160;</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; <a class="code" href="classSVF_1_1PTAStat.html#afa718535839a939e51afc0f8c1fbdac6">generalNumMap</a>[<a class="code" href="classSVF_1_1PTAStat.html#a618707c52da086e04f5e7bff31794cf3">NumOfIndirectCallSites</a>] = pag-&gt;<a class="code" href="classSVF_1_1PAG.html#a6a468180bff1e8f6143587546a2e7742">getIndirectCallsites</a>().size();</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; <a class="code" href="classSVF_1_1PTAStat.html#afa718535839a939e51afc0f8c1fbdac6">generalNumMap</a>[<span class="stringliteral">&quot;TotalCallSite&quot;</span>] = pag-&gt;<a class="code" href="classSVF_1_1PAG.html#a4309ced29efb4f351dafb867206bb38b">getCallSiteSet</a>().size();</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; <a class="code" href="classSVF_1_1PTAStat.html#afa718535839a939e51afc0f8c1fbdac6">generalNumMap</a>[<span class="stringliteral">&quot;LocalVarInRecur&quot;</span>] = <a class="code" href="classSVF_1_1PTAStat.html#a5b4095f427c9c7b9ec0db497ba33baea">localVarInRecursion</a>.count();</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; <a class="code" href="classSVF_1_1PTAStat.html#a2d5eedfe3418a3a83c9d254ba28399eb">bitcastInstStat</a>();</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; <a class="code" href="classSVF_1_1PTAStat.html#ada838d9e03f2be4fb3ceffab3983b564">branchStat</a>();</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160;</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; <a class="code" href="classSVF_1_1PTAStat.html#aa5f455bfa79743b8e263431593d29bbf">printStat</a>(<span class="stringliteral">&quot;General Stats&quot;</span>);</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160;</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160;}</div><div class="ttc" id="classSVF_1_1MemObj_html_a167ed4be108aa7833aa267470d256766"><div class="ttname"><a href="classSVF_1_1MemObj.html#a167ed4be108aa7833aa267470d256766">SVF::MemObj::isVarArray</a></div><div class="ttdeci">bool isVarArray() const</div><div class="ttdef"><b>Definition:</b> <a href="MemModel_8h_source.html#l00389">MemModel.h:389</a></div></div>
649
+ <p class="definition">Definition at line <a class="el" href="PTAStat_8cpp_source.html#l00132">132</a> of file <a class="el" href="PTAStat_8cpp_source.html">PTAStat.cpp</a>.</p>
650
+ <div class="fragment"><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;{</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; <a class="code" href="classSVF_1_1PTAStat.html#a1772bc87370b5625f71edd4476277064">callgraphStat</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_1PAG.html">PAG</a>* pag = <a class="code" href="classSVF_1_1PAG.html#ac8910c7330638bdf31c23d4cc03ba9c5">PAG::getPAG</a>();</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> numOfFunction = 0;</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> numOfGlobal = 0;</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> numOfStack = 0;</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> numOfHeap = 0;</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> numOfHasVarArray = 0;</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> numOfHasVarStruct = 0;</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> numOfHasConstArray = 0;</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> numOfHasConstStruct = 0;</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> numOfScalar = 0;</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> numOfConstant = 0;</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> fiObjNumber = 0;</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> fsObjNumber = 0;</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set&lt;SymID&gt;</a> memObjSet;</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; <span class="keywordflow">for</span>(<a class="code" href="classSVF_1_1GenericGraph.html#ac213302cf5c7cdf3b66f7b18649d0fbc">PAG::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="l00152"></a><span class="lineno"> 152</span>&#160; {</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; <a class="code" href="classSVF_1_1PAGNode.html">PAGNode</a>* node = it-&gt;second;</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1ObjPN.html">ObjPN</a>* obj = SVFUtil::dyn_cast&lt;ObjPN&gt;(node))</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; {</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</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="l00157"></a><span class="lineno"> 157</span>&#160; <span class="keywordflow">if</span> (memObjSet.insert(mem-&gt;<a class="code" href="classSVF_1_1MemObj.html#ad7f7de744715c3acaf3d48822865c87b">getSymId</a>()).second == <span class="keyword">false</span>)</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; <span class="keywordflow">continue</span>;</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</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="l00160"></a><span class="lineno"> 160</span>&#160; <span class="keywordflow">continue</span>;</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; <span class="keywordflow">if</span>(mem-&gt;<a class="code" href="classSVF_1_1MemObj.html#a0da6483089b2d80778535929426c1540">isFunction</a>())</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; numOfFunction++;</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; <span class="keywordflow">if</span>(mem-&gt;<a class="code" href="classSVF_1_1MemObj.html#aa513ca5bd3927c9f697b504a70e57013">isGlobalObj</a>())</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; numOfGlobal++;</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; <span class="keywordflow">if</span>(mem-&gt;<a class="code" href="classSVF_1_1MemObj.html#a65735220b56354f7b6c7ce6753f84e4b">isStack</a>())</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; numOfStack++;</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; <span class="keywordflow">if</span>(mem-&gt;<a class="code" href="classSVF_1_1MemObj.html#af8f4f85cfbcb09615fb04ca63d634138">isHeap</a>())</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; numOfHeap++;</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; <span class="keywordflow">if</span>(mem-&gt;<a class="code" href="classSVF_1_1MemObj.html#a167ed4be108aa7833aa267470d256766">isVarArray</a>())</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; numOfHasVarArray++;</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; <span class="keywordflow">if</span>(mem-&gt;<a class="code" href="classSVF_1_1MemObj.html#a5a6887b8ae47b21ba82324daced74ac0">isVarStruct</a>())</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; numOfHasVarStruct++;</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; <span class="keywordflow">if</span>(mem-&gt;<a class="code" href="classSVF_1_1MemObj.html#a347eacc3e472c706600c25d7bd46bed6">isConstArray</a>())</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; numOfHasConstArray++;</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; <span class="keywordflow">if</span>(mem-&gt;<a class="code" href="classSVF_1_1MemObj.html#a846fafa3f005531525856df4581e33fd">isConstStruct</a>())</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; numOfHasConstStruct++;</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; <span class="keywordflow">if</span>(mem-&gt;<a class="code" href="classSVF_1_1MemObj.html#a1ecb652416c602e1c5e3d9e7be580c3c">hasPtrObj</a>() == <span class="keyword">false</span>)</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; numOfScalar++;</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; <span class="keywordflow">if</span>(mem-&gt;<a class="code" href="classSVF_1_1MemObj.html#ad67bc82cb51d0eb23c92c2ff9456c636">isConstant</a>())</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; numOfConstant++;</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160;</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; <span class="keywordflow">if</span> (mem-&gt;<a class="code" href="classSVF_1_1MemObj.html#a9d50a00ff608df21f50b3b2823128901">isFieldInsensitive</a>())</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; fiObjNumber++;</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; fsObjNumber++;</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160;</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1PTAStat.html#a608441b95be0861d8c1b0a035281f4d5">pta</a>-&gt;<a class="code" href="classSVF_1_1PointerAnalysis.html#a108380f6f0b67654bb7c7676686096c8">isLocalVarInRecursiveFun</a>(node-&gt;<a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>()))</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; {</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; <a class="code" href="classSVF_1_1PTAStat.html#a5b4095f427c9c7b9ec0db497ba33baea">localVarInRecursion</a>.set(node-&gt;<a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>());</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; }</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; }</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;</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160;</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160;</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; <a class="code" href="classSVF_1_1PTAStat.html#afa718535839a939e51afc0f8c1fbdac6">generalNumMap</a>[<a class="code" href="classSVF_1_1PTAStat.html#a1a4d418fd9e5413e7ffbbfe57f5e0560">TotalNumOfPointers</a>] = pag-&gt;<a class="code" href="classSVF_1_1PAG.html#ad8c9f6134aa97d310f8eebbd7bf9bc8f">getValueNodeNum</a>() + pag-&gt;<a class="code" href="classSVF_1_1PAG.html#a815b0acd760c050c7b352b2000675fc5">getFieldValNodeNum</a>();</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; <a class="code" href="classSVF_1_1PTAStat.html#afa718535839a939e51afc0f8c1fbdac6">generalNumMap</a>[<a class="code" href="classSVF_1_1PTAStat.html#acd9848f15aa359550e86c7b857df84ed">TotalNumOfObjects</a>] = pag-&gt;<a class="code" href="classSVF_1_1PAG.html#afe02872115f15623178cb1ed8f737992">getObjectNodeNum</a>();</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; <a class="code" href="classSVF_1_1PTAStat.html#afa718535839a939e51afc0f8c1fbdac6">generalNumMap</a>[<a class="code" href="classSVF_1_1PTAStat.html#ac0e0a1c49d33e02f5cc0f21565ce627d">TotalNumOfFieldObjects</a>] = pag-&gt;<a class="code" href="classSVF_1_1PAG.html#acde529dcb2054bf50a0793d8aa51bb07">getFieldObjNodeNum</a>();</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; <a class="code" href="classSVF_1_1PTAStat.html#afa718535839a939e51afc0f8c1fbdac6">generalNumMap</a>[<a class="code" href="classSVF_1_1PTAStat.html#af6a6e3ea4c7f8e1c984bea8d5fb9a7c0">MaxStructSize</a>] = <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="l00200"></a><span class="lineno"> 200</span>&#160; <a class="code" href="classSVF_1_1PTAStat.html#afa718535839a939e51afc0f8c1fbdac6">generalNumMap</a>[<a class="code" href="classSVF_1_1PTAStat.html#a3afc0a36232a0388d8aa42c68219cb26">TotalNumOfEdges</a>] = pag-&gt;<a class="code" href="classSVF_1_1PAG.html#a74de66edb19a534fe85d4621085021ec">getPAGEdgeNum</a>();</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; <a class="code" href="classSVF_1_1PTAStat.html#afa718535839a939e51afc0f8c1fbdac6">generalNumMap</a>[<span class="stringliteral">&quot;TotalPTAPAGEdges&quot;</span>] = pag-&gt;<a class="code" href="classSVF_1_1PAG.html#a7bd46d36d58cc8ec70d8a42e5eb93683">totalPTAPAGEdge</a>;</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; <a class="code" href="classSVF_1_1PTAStat.html#afa718535839a939e51afc0f8c1fbdac6">generalNumMap</a>[<a class="code" href="classSVF_1_1PTAStat.html#ad1a7e7aec8f272017be7d0b6acda86a4">NumberOfFieldInsensitiveObj</a>] = fiObjNumber;</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; <a class="code" href="classSVF_1_1PTAStat.html#afa718535839a939e51afc0f8c1fbdac6">generalNumMap</a>[<a class="code" href="classSVF_1_1PTAStat.html#ab62eb21c7dc03f68b0509c31451b2e98">NumberOfFieldSensitiveObj</a>] = fsObjNumber;</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; <a class="code" href="classSVF_1_1PTAStat.html#afa718535839a939e51afc0f8c1fbdac6">generalNumMap</a>[<a class="code" href="classSVF_1_1PTAStat.html#ac5bf59a0a7a760c9fec5f22dedec5eb6">NumOfAddrs</a>] = pag-&gt;<a class="code" href="classSVF_1_1PAG.html#a4b89e254837eca47e09e41cf67dba722">getEdgeSet</a>(<a class="code" href="classSVF_1_1PAGEdge.html#a79080505b4744aa8806b55215ac2b0f6ac29bb583428e3c20d758bb9cf2d2d626">PAGEdge::Addr</a>).size();</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; <a class="code" href="classSVF_1_1PTAStat.html#afa718535839a939e51afc0f8c1fbdac6">generalNumMap</a>[<a class="code" href="classSVF_1_1PTAStat.html#a4aa7356142f51d942063be5a2910940f">NumOfLoads</a>] = pag-&gt;<a class="code" href="classSVF_1_1PAG.html#a4b89e254837eca47e09e41cf67dba722">getEdgeSet</a>(<a class="code" href="classSVF_1_1PAGEdge.html#a79080505b4744aa8806b55215ac2b0f6a8fcebc849a231c3c87dddbf0ab5a2167">PAGEdge::Load</a>).size();</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; <a class="code" href="classSVF_1_1PTAStat.html#afa718535839a939e51afc0f8c1fbdac6">generalNumMap</a>[<a class="code" href="classSVF_1_1PTAStat.html#a656ad9980ff05af396ed6754c50916e7">NumOfStores</a>] = pag-&gt;<a class="code" href="classSVF_1_1PAG.html#a4b89e254837eca47e09e41cf67dba722">getEdgeSet</a>(<a class="code" href="classSVF_1_1PAGEdge.html#a79080505b4744aa8806b55215ac2b0f6aca20a2c4d9809736d43b18f3cb53e8cf">PAGEdge::Store</a>).size();</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; <a class="code" href="classSVF_1_1PTAStat.html#afa718535839a939e51afc0f8c1fbdac6">generalNumMap</a>[<a class="code" href="classSVF_1_1PTAStat.html#a97a8b662356fc89cdd2cb9463fa5578b">NumOfCopys</a>] = pag-&gt;<a class="code" href="classSVF_1_1PAG.html#a4b89e254837eca47e09e41cf67dba722">getEdgeSet</a>(<a class="code" href="classSVF_1_1PAGEdge.html#a79080505b4744aa8806b55215ac2b0f6af447071283803d3aee763fe20783f4a4">PAGEdge::Copy</a>).size();</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; <a class="code" href="classSVF_1_1PTAStat.html#afa718535839a939e51afc0f8c1fbdac6">generalNumMap</a>[<a class="code" href="classSVF_1_1PTAStat.html#acc5e4740e11cb6f9794723e5f61ab63b">NumOfGeps</a>] = pag-&gt;<a class="code" href="classSVF_1_1PAG.html#a4b89e254837eca47e09e41cf67dba722">getEdgeSet</a>(<a class="code" href="classSVF_1_1PAGEdge.html#a79080505b4744aa8806b55215ac2b0f6a4b8b2eb7125c259d8d550dd83c51147b">PAGEdge::NormalGep</a>).size() + pag-&gt;<a class="code" href="classSVF_1_1PAG.html#a4b89e254837eca47e09e41cf67dba722">getEdgeSet</a>(<a class="code" href="classSVF_1_1PAGEdge.html#a79080505b4744aa8806b55215ac2b0f6ad1f40a044008babd44bff30af846550c">PAGEdge::VariantGep</a>).size();</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; <a class="code" href="classSVF_1_1PTAStat.html#afa718535839a939e51afc0f8c1fbdac6">generalNumMap</a>[<a class="code" href="classSVF_1_1PTAStat.html#a6cbeca77d0681f7da28979cbd0f661b2">NumOfCalls</a>] = pag-&gt;<a class="code" href="classSVF_1_1PAG.html#a4b89e254837eca47e09e41cf67dba722">getEdgeSet</a>(<a class="code" href="classSVF_1_1PAGEdge.html#a79080505b4744aa8806b55215ac2b0f6a5f4c2c1ec167425622d40133ec15448d">PAGEdge::Call</a>).size();</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; <a class="code" href="classSVF_1_1PTAStat.html#afa718535839a939e51afc0f8c1fbdac6">generalNumMap</a>[<a class="code" href="classSVF_1_1PTAStat.html#a0a552611fcd20e1310290bdae404a514">NumOfReturns</a>] = pag-&gt;<a class="code" href="classSVF_1_1PAG.html#a4b89e254837eca47e09e41cf67dba722">getEdgeSet</a>(<a class="code" href="classSVF_1_1PAGEdge.html#a79080505b4744aa8806b55215ac2b0f6a99fe431c7a635d39b5558d1048a94c05">PAGEdge::Ret</a>).size();</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160;</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; <a class="code" href="classSVF_1_1PTAStat.html#afa718535839a939e51afc0f8c1fbdac6">generalNumMap</a>[<a class="code" href="classSVF_1_1PTAStat.html#ae9952b7456b5102113d1fee4d9d7801a">NumOfFunctionObjs</a>] = numOfFunction;</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; <a class="code" href="classSVF_1_1PTAStat.html#afa718535839a939e51afc0f8c1fbdac6">generalNumMap</a>[<a class="code" href="classSVF_1_1PTAStat.html#a57574c85a5a875a05ef83d3c916cf3e5">NumOfGlobalObjs</a>] = numOfGlobal;</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; <a class="code" href="classSVF_1_1PTAStat.html#afa718535839a939e51afc0f8c1fbdac6">generalNumMap</a>[<a class="code" href="classSVF_1_1PTAStat.html#a4aff48eaa2045ee619a8ea793a9234b8">NumOfHeapObjs</a>] = numOfHeap;</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; <a class="code" href="classSVF_1_1PTAStat.html#afa718535839a939e51afc0f8c1fbdac6">generalNumMap</a>[<a class="code" href="classSVF_1_1PTAStat.html#ae05503909688a17dc1f282d1d029d24e">NumOfStackObjs</a>] = numOfStack;</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160;</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; <a class="code" href="classSVF_1_1PTAStat.html#afa718535839a939e51afc0f8c1fbdac6">generalNumMap</a>[<a class="code" href="classSVF_1_1PTAStat.html#a95edd35cec92fa4cacc8b59b5eecc827">NumOfObjsHasVarStruct</a>] = numOfHasVarStruct;</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; <a class="code" href="classSVF_1_1PTAStat.html#afa718535839a939e51afc0f8c1fbdac6">generalNumMap</a>[<a class="code" href="classSVF_1_1PTAStat.html#a78693e8bf93d712eb76c9d6dc0c45ae6">NumOfObjsHasVarArray</a>] = numOfHasVarArray;</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; <a class="code" href="classSVF_1_1PTAStat.html#afa718535839a939e51afc0f8c1fbdac6">generalNumMap</a>[<a class="code" href="classSVF_1_1PTAStat.html#a918051b1d0eb4f49c349352408cc9751">NumOfObjsHasConstStruct</a>] = numOfHasConstStruct;</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; <a class="code" href="classSVF_1_1PTAStat.html#afa718535839a939e51afc0f8c1fbdac6">generalNumMap</a>[<a class="code" href="classSVF_1_1PTAStat.html#adb31b163f0cbb9d9ce207ef5d8c075fa">NumOfObjsHasConstArray</a>] = numOfHasConstArray;</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; <a class="code" href="classSVF_1_1PTAStat.html#afa718535839a939e51afc0f8c1fbdac6">generalNumMap</a>[<a class="code" href="classSVF_1_1PTAStat.html#a9014371b8ed95ab8135eed2a7fa945f1">NumOfNonPtrObjs</a>] = numOfScalar;</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160;</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; <a class="code" href="classSVF_1_1PTAStat.html#afa718535839a939e51afc0f8c1fbdac6">generalNumMap</a>[<a class="code" href="classSVF_1_1PTAStat.html#a618707c52da086e04f5e7bff31794cf3">NumOfIndirectCallSites</a>] = pag-&gt;<a class="code" href="classSVF_1_1PAG.html#a6a468180bff1e8f6143587546a2e7742">getIndirectCallsites</a>().size();</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; <a class="code" href="classSVF_1_1PTAStat.html#afa718535839a939e51afc0f8c1fbdac6">generalNumMap</a>[<span class="stringliteral">&quot;TotalCallSite&quot;</span>] = pag-&gt;<a class="code" href="classSVF_1_1PAG.html#a4309ced29efb4f351dafb867206bb38b">getCallSiteSet</a>().size();</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; <a class="code" href="classSVF_1_1PTAStat.html#afa718535839a939e51afc0f8c1fbdac6">generalNumMap</a>[<span class="stringliteral">&quot;LocalVarInRecur&quot;</span>] = <a class="code" href="classSVF_1_1PTAStat.html#a5b4095f427c9c7b9ec0db497ba33baea">localVarInRecursion</a>.count();</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; <a class="code" href="classSVF_1_1PTAStat.html#a2d5eedfe3418a3a83c9d254ba28399eb">bitcastInstStat</a>();</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; <a class="code" href="classSVF_1_1PTAStat.html#ada838d9e03f2be4fb3ceffab3983b564">branchStat</a>();</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160;</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; <a class="code" href="classSVF_1_1PTAStat.html#aa5f455bfa79743b8e263431593d29bbf">printStat</a>(<span class="stringliteral">&quot;General Stats&quot;</span>);</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160;</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160;}</div><div class="ttc" id="classSVF_1_1MemObj_html_a167ed4be108aa7833aa267470d256766"><div class="ttname"><a href="classSVF_1_1MemObj.html#a167ed4be108aa7833aa267470d256766">SVF::MemObj::isVarArray</a></div><div class="ttdeci">bool isVarArray() const</div><div class="ttdef"><b>Definition:</b> <a href="MemModel_8h_source.html#l00389">MemModel.h:389</a></div></div>
650
651
  <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>
651
652
  <div class="ttc" id="classSVF_1_1MemObj_html_a7b890ca9e93b1c61cc6437b7e6a82a8c"><div class="ttname"><a href="classSVF_1_1MemObj.html#a7b890ca9e93b1c61cc6437b7e6a82a8c">SVF::MemObj::isBlackHoleObj</a></div><div class="ttdeci">bool isBlackHoleObj() const</div><div class="ttdoc">Whether it is a black hole object. </div><div class="ttdef"><b>Definition:</b> <a href="MemModel_8cpp_source.html#l00271">MemModel.cpp:271</a></div></div>
652
653
  <div class="ttc" id="classSVF_1_1MemObj_html_a1ecb652416c602e1c5e3d9e7be580c3c"><div class="ttname"><a href="classSVF_1_1MemObj.html#a1ecb652416c602e1c5e3d9e7be580c3c">SVF::MemObj::hasPtrObj</a></div><div class="ttdeci">bool hasPtrObj() const</div><div class="ttdef"><b>Definition:</b> <a href="MemModel_8h_source.html#l00405">MemModel.h:405</a></div></div>
@@ -666,7 +667,7 @@ Private Attributes</h2></td></tr>
666
667
  <div class="ttc" id="classSVF_1_1PAGEdge_html_a79080505b4744aa8806b55215ac2b0f6a4b8b2eb7125c259d8d550dd83c51147b"><div class="ttname"><a href="classSVF_1_1PAGEdge.html#a79080505b4744aa8806b55215ac2b0f6a4b8b2eb7125c259d8d550dd83c51147b">SVF::PAGEdge::NormalGep</a></div><div class="ttdef"><b>Definition:</b> <a href="PAGEdge_8h_source.html#l00056">PAGEdge.h:56</a></div></div>
667
668
  <div class="ttc" id="classSVF_1_1PAG_html_acde529dcb2054bf50a0793d8aa51bb07"><div class="ttname"><a href="classSVF_1_1PAG.html#acde529dcb2054bf50a0793d8aa51bb07">SVF::PAG::getFieldObjNodeNum</a></div><div class="ttdeci">Size_t getFieldObjNodeNum() const</div><div class="ttdef"><b>Definition:</b> <a href="PAG_8h_source.html#l00460">PAG.h:460</a></div></div>
668
669
  <div class="ttc" id="classSVF_1_1SymbolTableInfo_html_abc7e567209010286a68634c700d76cca"><div class="ttname"><a href="classSVF_1_1SymbolTableInfo.html#abc7e567209010286a68634c700d76cca">SVF::SymbolTableInfo::getMaxStructSize</a></div><div class="ttdeci">u32_t getMaxStructSize() const</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00329">SymbolTableInfo.h:329</a></div></div>
669
- <div class="ttc" id="classSVF_1_1PTAStat_html_a2d5eedfe3418a3a83c9d254ba28399eb"><div class="ttname"><a href="classSVF_1_1PTAStat.html#a2d5eedfe3418a3a83c9d254ba28399eb">SVF::PTAStat::bitcastInstStat</a></div><div class="ttdeci">void bitcastInstStat()</div><div class="ttdef"><b>Definition:</b> <a href="PTAStat_8cpp_source.html#l00327">PTAStat.cpp:327</a></div></div>
670
+ <div class="ttc" id="classSVF_1_1PTAStat_html_a2d5eedfe3418a3a83c9d254ba28399eb"><div class="ttname"><a href="classSVF_1_1PTAStat.html#a2d5eedfe3418a3a83c9d254ba28399eb">SVF::PTAStat::bitcastInstStat</a></div><div class="ttdeci">void bitcastInstStat()</div><div class="ttdef"><b>Definition:</b> <a href="PTAStat_8cpp_source.html#l00326">PTAStat.cpp:326</a></div></div>
670
671
  <div class="ttc" id="namespaceSVF_html_ad42bff8d0a7d60a085aa32d10f4955af"><div class="ttname"><a href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">SVF::u32_t</a></div><div class="ttdeci">unsigned u32_t</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00075">SVFBasicTypes.h:75</a></div></div>
671
672
  <div class="ttc" id="classSVF_1_1PTAStat_html_a97a8b662356fc89cdd2cb9463fa5578b"><div class="ttname"><a href="classSVF_1_1PTAStat.html#a97a8b662356fc89cdd2cb9463fa5578b">SVF::PTAStat::NumOfCopys</a></div><div class="ttdeci">static const char * NumOfCopys</div><div class="ttdoc">PAG copy edge. </div><div class="ttdef"><b>Definition:</b> <a href="PTAStat_8h_source.html#l00069">PTAStat.h:69</a></div></div>
672
673
  <div class="ttc" id="classSVF_1_1PAGEdge_html_a79080505b4744aa8806b55215ac2b0f6ac29bb583428e3c20d758bb9cf2d2d626"><div class="ttname"><a href="classSVF_1_1PAGEdge.html#a79080505b4744aa8806b55215ac2b0f6ac29bb583428e3c20d758bb9cf2d2d626">SVF::PAGEdge::Addr</a></div><div class="ttdef"><b>Definition:</b> <a href="PAGEdge_8h_source.html#l00056">PAGEdge.h:56</a></div></div>
@@ -697,7 +698,7 @@ Private Attributes</h2></td></tr>
697
698
  <div class="ttc" id="classSVF_1_1PAG_html_a4b89e254837eca47e09e41cf67dba722"><div class="ttname"><a href="classSVF_1_1PAG.html#a4b89e254837eca47e09e41cf67dba722">SVF::PAG::getEdgeSet</a></div><div class="ttdeci">PAGEdge::PAGEdgeSetTy &amp; getEdgeSet(PAGEdge::PEDGEK kind)</div><div class="ttdoc">Get/set methods to get control flow information of a PAGEdge. </div><div class="ttdef"><b>Definition:</b> <a href="PAG_8h_source.html#l00210">PAG.h:210</a></div></div>
698
699
  <div class="ttc" id="classSVF_1_1MemObj_html_aa513ca5bd3927c9f697b504a70e57013"><div class="ttname"><a href="classSVF_1_1MemObj.html#aa513ca5bd3927c9f697b504a70e57013">SVF::MemObj::isGlobalObj</a></div><div class="ttdeci">bool isGlobalObj() const</div><div class="ttdef"><b>Definition:</b> <a href="MemModel_8h_source.html#l00360">MemModel.h:360</a></div></div>
699
700
  <div class="ttc" id="classSVF_1_1MemObj_html_ad67bc82cb51d0eb23c92c2ff9456c636"><div class="ttname"><a href="classSVF_1_1MemObj.html#ad67bc82cb51d0eb23c92c2ff9456c636">SVF::MemObj::isConstant</a></div><div class="ttdeci">bool isConstant() const</div><div class="ttdef"><b>Definition:</b> <a href="MemModel_8h_source.html#l00401">MemModel.h:401</a></div></div>
700
- <div class="ttc" id="classSVF_1_1PTAStat_html_ada838d9e03f2be4fb3ceffab3983b564"><div class="ttname"><a href="classSVF_1_1PTAStat.html#ada838d9e03f2be4fb3ceffab3983b564">SVF::PTAStat::branchStat</a></div><div class="ttdeci">void branchStat()</div><div class="ttdef"><b>Definition:</b> <a href="PTAStat_8cpp_source.html#l00355">PTAStat.cpp:355</a></div></div>
701
+ <div class="ttc" id="classSVF_1_1PTAStat_html_ada838d9e03f2be4fb3ceffab3983b564"><div class="ttname"><a href="classSVF_1_1PTAStat.html#ada838d9e03f2be4fb3ceffab3983b564">SVF::PTAStat::branchStat</a></div><div class="ttdeci">void branchStat()</div><div class="ttdef"><b>Definition:</b> <a href="PTAStat_8cpp_source.html#l00354">PTAStat.cpp:354</a></div></div>
701
702
  <div class="ttc" id="classSVF_1_1MemObj_html_ad7f7de744715c3acaf3d48822865c87b"><div class="ttname"><a href="classSVF_1_1MemObj.html#ad7f7de744715c3acaf3d48822865c87b">SVF::MemObj::getSymId</a></div><div class="ttdeci">SymID getSymId() const</div><div class="ttdoc">Get the memory object id. </div><div class="ttdef"><b>Definition:</b> <a href="MemModel_8h_source.html#l00331">MemModel.h:331</a></div></div>
702
703
  <div class="ttc" id="classSVF_1_1PAG_html_a815b0acd760c050c7b352b2000675fc5"><div class="ttname"><a href="classSVF_1_1PAG.html#a815b0acd760c050c7b352b2000675fc5">SVF::PAG::getFieldValNodeNum</a></div><div class="ttdeci">Size_t getFieldValNodeNum() const</div><div class="ttdef"><b>Definition:</b> <a href="PAG_8h_source.html#l00456">PAG.h:456</a></div></div>
703
704
  <div class="ttc" id="classSVF_1_1PAGNode_html"><div class="ttname"><a href="classSVF_1_1PAGNode.html">SVF::PAGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="PAGNode_8h_source.html#l00046">PAGNode.h:46</a></div></div>
@@ -705,7 +706,7 @@ Private Attributes</h2></td></tr>
705
706
  <div class="ttc" id="classSVF_1_1PAGEdge_html_a79080505b4744aa8806b55215ac2b0f6a99fe431c7a635d39b5558d1048a94c05"><div class="ttname"><a href="classSVF_1_1PAGEdge.html#a79080505b4744aa8806b55215ac2b0f6a99fe431c7a635d39b5558d1048a94c05">SVF::PAGEdge::Ret</a></div><div class="ttdef"><b>Definition:</b> <a href="PAGEdge_8h_source.html#l00056">PAGEdge.h:56</a></div></div>
706
707
  <div class="ttc" id="classSVF_1_1PAGEdge_html_a79080505b4744aa8806b55215ac2b0f6af447071283803d3aee763fe20783f4a4"><div class="ttname"><a href="classSVF_1_1PAGEdge.html#a79080505b4744aa8806b55215ac2b0f6af447071283803d3aee763fe20783f4a4">SVF::PAGEdge::Copy</a></div><div class="ttdef"><b>Definition:</b> <a href="PAGEdge_8h_source.html#l00056">PAGEdge.h:56</a></div></div>
707
708
  <div class="ttc" id="classSVF_1_1PointerAnalysis_html_a108380f6f0b67654bb7c7676686096c8"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a108380f6f0b67654bb7c7676686096c8">SVF::PointerAnalysis::isLocalVarInRecursiveFun</a></div><div class="ttdeci">bool isLocalVarInRecursiveFun(NodeID id) const</div><div class="ttdoc">Whether a local variable is in function recursions. </div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8cpp_source.html#l00170">PointerAnalysis.cpp:170</a></div></div>
708
- <div class="ttc" id="classSVF_1_1PTAStat_html_a1772bc87370b5625f71edd4476277064"><div class="ttname"><a href="classSVF_1_1PTAStat.html#a1772bc87370b5625f71edd4476277064">SVF::PTAStat::callgraphStat</a></div><div class="ttdeci">virtual void callgraphStat()</div><div class="ttdef"><b>Definition:</b> <a href="PTAStat_8cpp_source.html#l00235">PTAStat.cpp:235</a></div></div>
709
+ <div class="ttc" id="classSVF_1_1PTAStat_html_a1772bc87370b5625f71edd4476277064"><div class="ttname"><a href="classSVF_1_1PTAStat.html#a1772bc87370b5625f71edd4476277064">SVF::PTAStat::callgraphStat</a></div><div class="ttdeci">virtual void callgraphStat()</div><div class="ttdef"><b>Definition:</b> <a href="PTAStat_8cpp_source.html#l00234">PTAStat.cpp:234</a></div></div>
709
710
  <div class="ttc" id="classSVF_1_1GenericNode_html_ac3e55ef37aefb411ea4c87b1aa3b1895"><div class="ttname"><a href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">SVF::GenericNode::getId</a></div><div class="ttdeci">NodeID getId() const</div><div class="ttdoc">Get ID. </div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00164">GenericGraph.h:164</a></div></div>
710
711
  <div class="ttc" id="classSVF_1_1PTAStat_html_a1a4d418fd9e5413e7ffbbfe57f5e0560"><div class="ttname"><a href="classSVF_1_1PTAStat.html#a1a4d418fd9e5413e7ffbbfe57f5e0560">SVF::PTAStat::TotalNumOfPointers</a></div><div class="ttdeci">static const char * TotalNumOfPointers</div><div class="ttdoc">Total PAG value node. </div><div class="ttdef"><b>Definition:</b> <a href="PTAStat_8h_source.html#l00060">PTAStat.h:60</a></div></div>
711
712
  <div class="ttc" id="classSVF_1_1PTAStat_html_acd9848f15aa359550e86c7b857df84ed"><div class="ttname"><a href="classSVF_1_1PTAStat.html#acd9848f15aa359550e86c7b857df84ed">SVF::PTAStat::TotalNumOfObjects</a></div><div class="ttdeci">static const char * TotalNumOfObjects</div><div class="ttdoc">Total PAG object node. </div><div class="ttdef"><b>Definition:</b> <a href="PTAStat_8h_source.html#l00061">PTAStat.h:61</a></div></div>
@@ -717,7 +718,7 @@ Private Attributes</h2></td></tr>
717
718
  <div class="ttc" id="classSVF_1_1PAG_html_a4309ced29efb4f351dafb867206bb38b"><div class="ttname"><a href="classSVF_1_1PAG.html#a4309ced29efb4f351dafb867206bb38b">SVF::PAG::getCallSiteSet</a></div><div class="ttdeci">const CallSiteSet &amp; getCallSiteSet() const</div><div class="ttdef"><b>Definition:</b> <a href="PAG_8h_source.html#l00203">PAG.h:203</a></div></div>
718
719
  <div class="ttc" id="classSVF_1_1PTAStat_html_a5b4095f427c9c7b9ec0db497ba33baea"><div class="ttname"><a href="classSVF_1_1PTAStat.html#a5b4095f427c9c7b9ec0db497ba33baea">SVF::PTAStat::localVarInRecursion</a></div><div class="ttdeci">NodeBS localVarInRecursion</div><div class="ttdef"><b>Definition:</b> <a href="PTAStat_8h_source.html#l00150">PTAStat.h:150</a></div></div>
719
720
  <div class="ttc" id="classSVF_1_1MemObj_html_a846fafa3f005531525856df4581e33fd"><div class="ttname"><a href="classSVF_1_1MemObj.html#a846fafa3f005531525856df4581e33fd">SVF::MemObj::isConstStruct</a></div><div class="ttdeci">bool isConstStruct() const</div><div class="ttdef"><b>Definition:</b> <a href="MemModel_8h_source.html#l00393">MemModel.h:393</a></div></div>
720
- <div class="ttc" id="classSVF_1_1PTAStat_html_aa5f455bfa79743b8e263431593d29bbf"><div class="ttname"><a href="classSVF_1_1PTAStat.html#aa5f455bfa79743b8e263431593d29bbf">SVF::PTAStat::printStat</a></div><div class="ttdeci">virtual void printStat(string str=&quot;&quot;)</div><div class="ttdef"><b>Definition:</b> <a href="PTAStat_8cpp_source.html#l00291">PTAStat.cpp:291</a></div></div>
721
+ <div class="ttc" id="classSVF_1_1PTAStat_html_aa5f455bfa79743b8e263431593d29bbf"><div class="ttname"><a href="classSVF_1_1PTAStat.html#aa5f455bfa79743b8e263431593d29bbf">SVF::PTAStat::printStat</a></div><div class="ttdeci">virtual void printStat(string str=&quot;&quot;)</div><div class="ttdef"><b>Definition:</b> <a href="PTAStat_8cpp_source.html#l00290">PTAStat.cpp:290</a></div></div>
721
722
  <div class="ttc" id="classSVF_1_1PTAStat_html_ac5bf59a0a7a760c9fec5f22dedec5eb6"><div class="ttname"><a href="classSVF_1_1PTAStat.html#ac5bf59a0a7a760c9fec5f22dedec5eb6">SVF::PTAStat::NumOfAddrs</a></div><div class="ttdeci">static const char * NumOfAddrs</div><div class="ttdoc">PAG addr edge. </div><div class="ttdef"><b>Definition:</b> <a href="PTAStat_8h_source.html#l00066">PTAStat.h:66</a></div></div>
722
723
  <div class="ttc" id="classSVF_1_1PAG_html_a6a468180bff1e8f6143587546a2e7742"><div class="ttname"><a href="classSVF_1_1PAG.html#a6a468180bff1e8f6143587546a2e7742">SVF::PAG::getIndirectCallsites</a></div><div class="ttdeci">const CallSiteToFunPtrMap &amp; getIndirectCallsites() const</div><div class="ttdoc">Add/get indirect callsites. </div><div class="ttdef"><b>Definition:</b> <a href="PAG_8h_source.html#l00484">PAG.h:484</a></div></div>
723
724
  <div class="ttc" id="classSVF_1_1PTAStat_html_a95edd35cec92fa4cacc8b59b5eecc827"><div class="ttname"><a href="classSVF_1_1PTAStat.html#a95edd35cec92fa4cacc8b59b5eecc827">SVF::PTAStat::NumOfObjsHasVarStruct</a></div><div class="ttdeci">static const char * NumOfObjsHasVarStruct</div><div class="ttdoc">PAG object node has var struct (maybe nested with array) </div><div class="ttdef"><b>Definition:</b> <a href="PTAStat_8h_source.html#l00088">PTAStat.h:88</a></div></div>
@@ -780,8 +781,8 @@ Private Attributes</h2></td></tr>
780
781
 
781
782
  <p>Reimplemented in <a class="el" href="classSVF_1_1ICFGStat.html#a2058c584a93cb6c90f165207dbdb01d6">SVF::ICFGStat</a>.</p>
782
783
 
783
- <p class="definition">Definition at line <a class="el" href="PTAStat_8cpp_source.html#l00291">291</a> of file <a class="el" href="PTAStat_8cpp_source.html">PTAStat.cpp</a>.</p>
784
- <div class="fragment"><div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160;{</div><div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160;</div><div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160; <a class="code" href="namespaceSVF.html#a88fd7387fcf16caf70abe265cdcf90b9">StringRef</a> fullName(<a class="code" href="classSVF_1_1SymbolTableInfo.html#a267169023fc4f8dd66b145f7231fec11">SymbolTableInfo::SymbolInfo</a>()-&gt;getModule()-&gt;getModuleIdentifier());</div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; <a class="code" href="namespaceSVF.html#a88fd7387fcf16caf70abe265cdcf90b9">StringRef</a> name = fullName.split(<span class="charliteral">&#39;/&#39;</span>).second;</div><div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; <a class="code" href="classSVF_1_1PTAStat.html#a194734855aa1c9e0ba891f1085d50d5d">moduleName</a> = name.split(<span class="charliteral">&#39;.&#39;</span>).first.str();</div><div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160;</div><div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; std::cout &lt;&lt; <span class="stringliteral">&quot;\n*********&quot;</span> &lt;&lt; statname &lt;&lt; <span class="stringliteral">&quot;***************\n&quot;</span>;</div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160; std::cout &lt;&lt; <span class="stringliteral">&quot;################ (program : &quot;</span> &lt;&lt; <a class="code" href="classSVF_1_1PTAStat.html#a194734855aa1c9e0ba891f1085d50d5d">moduleName</a> &lt;&lt; <span class="stringliteral">&quot;)###############\n&quot;</span>;</div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160; std::cout.flags(std::ios::left);</div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160; <span class="keywordtype">unsigned</span> field_width = 20;</div><div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160; <span class="keywordflow">for</span>(NUMStatMap::iterator it = <a class="code" href="classSVF_1_1PTAStat.html#afa718535839a939e51afc0f8c1fbdac6">generalNumMap</a>.begin(), eit = <a class="code" href="classSVF_1_1PTAStat.html#afa718535839a939e51afc0f8c1fbdac6">generalNumMap</a>.end(); it!=eit; ++it)</div><div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160; {</div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160; <span class="comment">// format out put with width 20 space</span></div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160; std::cout &lt;&lt; std::setw(field_width) &lt;&lt; it-&gt;first &lt;&lt; it-&gt;second &lt;&lt; <span class="stringliteral">&quot;\n&quot;</span>;</div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160; }</div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160; std::cout &lt;&lt; <span class="stringliteral">&quot;-------------------------------------------------------\n&quot;</span>;</div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160; <span class="keywordflow">for</span>(TIMEStatMap::iterator it = <a class="code" href="classSVF_1_1PTAStat.html#a3724756ac0527ba3d199be32e38c6337">timeStatMap</a>.begin(), eit = <a class="code" href="classSVF_1_1PTAStat.html#a3724756ac0527ba3d199be32e38c6337">timeStatMap</a>.end(); it!=eit; ++it)</div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; {</div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160; <span class="comment">// format out put with width 20 space</span></div><div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160; std::cout &lt;&lt; std::setw(field_width) &lt;&lt; it-&gt;first &lt;&lt; it-&gt;second &lt;&lt; <span class="stringliteral">&quot;\n&quot;</span>;</div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160; }</div><div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160; <span class="keywordflow">for</span>(NUMStatMap::iterator it = <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>.begin(), eit = <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>.end(); it!=eit; ++it)</div><div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160; {</div><div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160; <span class="comment">// format out put with width 20 space</span></div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160; std::cout &lt;&lt; std::setw(field_width) &lt;&lt; it-&gt;first &lt;&lt; it-&gt;second &lt;&lt; <span class="stringliteral">&quot;\n&quot;</span>;</div><div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160; }</div><div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160;</div><div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160; std::cout &lt;&lt; <span class="stringliteral">&quot;#######################################################&quot;</span> &lt;&lt; std::endl;</div><div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160; std::cout.flush();</div><div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160; <a class="code" href="classSVF_1_1PTAStat.html#afa718535839a939e51afc0f8c1fbdac6">generalNumMap</a>.clear();</div><div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160; <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>.clear();</div><div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160; <a class="code" href="classSVF_1_1PTAStat.html#a3724756ac0527ba3d199be32e38c6337">timeStatMap</a>.clear();</div><div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160;}</div><div class="ttc" id="classSVF_1_1PTAStat_html_afa718535839a939e51afc0f8c1fbdac6"><div class="ttname"><a href="classSVF_1_1PTAStat.html#afa718535839a939e51afc0f8c1fbdac6">SVF::PTAStat::generalNumMap</a></div><div class="ttdeci">NUMStatMap generalNumMap</div><div class="ttdef"><b>Definition:</b> <a href="PTAStat_8h_source.html#l00147">PTAStat.h:147</a></div></div>
784
+ <p class="definition">Definition at line <a class="el" href="PTAStat_8cpp_source.html#l00290">290</a> of file <a class="el" href="PTAStat_8cpp_source.html">PTAStat.cpp</a>.</p>
785
+ <div class="fragment"><div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160;{</div><div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160;</div><div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; <a class="code" href="namespaceSVF.html#a88fd7387fcf16caf70abe265cdcf90b9">StringRef</a> fullName(<a class="code" href="classSVF_1_1SymbolTableInfo.html#a267169023fc4f8dd66b145f7231fec11">SymbolTableInfo::SymbolInfo</a>()-&gt;getModule()-&gt;getModuleIdentifier());</div><div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160; <a class="code" href="namespaceSVF.html#a88fd7387fcf16caf70abe265cdcf90b9">StringRef</a> name = fullName.split(<span class="charliteral">&#39;/&#39;</span>).second;</div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; <a class="code" href="classSVF_1_1PTAStat.html#a194734855aa1c9e0ba891f1085d50d5d">moduleName</a> = name.split(<span class="charliteral">&#39;.&#39;</span>).first.str();</div><div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160;</div><div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; std::cout &lt;&lt; <span class="stringliteral">&quot;\n*********&quot;</span> &lt;&lt; statname &lt;&lt; <span class="stringliteral">&quot;***************\n&quot;</span>;</div><div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; std::cout &lt;&lt; <span class="stringliteral">&quot;################ (program : &quot;</span> &lt;&lt; <a class="code" href="classSVF_1_1PTAStat.html#a194734855aa1c9e0ba891f1085d50d5d">moduleName</a> &lt;&lt; <span class="stringliteral">&quot;)###############\n&quot;</span>;</div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160; std::cout.flags(std::ios::left);</div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160; <span class="keywordtype">unsigned</span> field_width = 20;</div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160; <span class="keywordflow">for</span>(NUMStatMap::iterator it = <a class="code" href="classSVF_1_1PTAStat.html#afa718535839a939e51afc0f8c1fbdac6">generalNumMap</a>.begin(), eit = <a class="code" href="classSVF_1_1PTAStat.html#afa718535839a939e51afc0f8c1fbdac6">generalNumMap</a>.end(); it!=eit; ++it)</div><div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160; {</div><div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160; <span class="comment">// format out put with width 20 space</span></div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160; std::cout &lt;&lt; std::setw(field_width) &lt;&lt; it-&gt;first &lt;&lt; it-&gt;second &lt;&lt; <span class="stringliteral">&quot;\n&quot;</span>;</div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160; }</div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160; std::cout &lt;&lt; <span class="stringliteral">&quot;-------------------------------------------------------\n&quot;</span>;</div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160; <span class="keywordflow">for</span>(TIMEStatMap::iterator it = <a class="code" href="classSVF_1_1PTAStat.html#a3724756ac0527ba3d199be32e38c6337">timeStatMap</a>.begin(), eit = <a class="code" href="classSVF_1_1PTAStat.html#a3724756ac0527ba3d199be32e38c6337">timeStatMap</a>.end(); it!=eit; ++it)</div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160; {</div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; <span class="comment">// format out put with width 20 space</span></div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160; std::cout &lt;&lt; std::setw(field_width) &lt;&lt; it-&gt;first &lt;&lt; it-&gt;second &lt;&lt; <span class="stringliteral">&quot;\n&quot;</span>;</div><div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160; }</div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160; <span class="keywordflow">for</span>(NUMStatMap::iterator it = <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>.begin(), eit = <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>.end(); it!=eit; ++it)</div><div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160; {</div><div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160; <span class="comment">// format out put with width 20 space</span></div><div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160; std::cout &lt;&lt; std::setw(field_width) &lt;&lt; it-&gt;first &lt;&lt; it-&gt;second &lt;&lt; <span class="stringliteral">&quot;\n&quot;</span>;</div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160; }</div><div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160;</div><div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160; std::cout &lt;&lt; <span class="stringliteral">&quot;#######################################################&quot;</span> &lt;&lt; std::endl;</div><div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160; std::cout.flush();</div><div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160; <a class="code" href="classSVF_1_1PTAStat.html#afa718535839a939e51afc0f8c1fbdac6">generalNumMap</a>.clear();</div><div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160; <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>.clear();</div><div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160; <a class="code" href="classSVF_1_1PTAStat.html#a3724756ac0527ba3d199be32e38c6337">timeStatMap</a>.clear();</div><div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160;}</div><div class="ttc" id="classSVF_1_1PTAStat_html_afa718535839a939e51afc0f8c1fbdac6"><div class="ttname"><a href="classSVF_1_1PTAStat.html#afa718535839a939e51afc0f8c1fbdac6">SVF::PTAStat::generalNumMap</a></div><div class="ttdeci">NUMStatMap generalNumMap</div><div class="ttdef"><b>Definition:</b> <a href="PTAStat_8h_source.html#l00147">PTAStat.h:147</a></div></div>
785
786
  <div class="ttc" id="classSVF_1_1PTAStat_html_a3724756ac0527ba3d199be32e38c6337"><div class="ttname"><a href="classSVF_1_1PTAStat.html#a3724756ac0527ba3d199be32e38c6337">SVF::PTAStat::timeStatMap</a></div><div class="ttdeci">TIMEStatMap timeStatMap</div><div class="ttdef"><b>Definition:</b> <a href="PTAStat_8h_source.html#l00149">PTAStat.h:149</a></div></div>
786
787
  <div class="ttc" id="classSVF_1_1PTAStat_html_a194734855aa1c9e0ba891f1085d50d5d"><div class="ttname"><a href="classSVF_1_1PTAStat.html#a194734855aa1c9e0ba891f1085d50d5d">SVF::PTAStat::moduleName</a></div><div class="ttdeci">std::string moduleName</div><div class="ttdef"><b>Definition:</b> <a href="PTAStat_8h_source.html#l00169">PTAStat.h:169</a></div></div>
787
788
  <div class="ttc" id="classSVF_1_1SymbolTableInfo_html_a267169023fc4f8dd66b145f7231fec11"><div class="ttname"><a href="classSVF_1_1SymbolTableInfo.html#a267169023fc4f8dd66b145f7231fec11">SVF::SymbolTableInfo::SymbolInfo</a></div><div class="ttdeci">static SymbolTableInfo * SymbolInfo()</div><div class="ttdoc">Singleton design here to make sure we only have one instance during any analysis. ...</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8cpp_source.html#l00088">SymbolTableInfo.cpp:88</a></div></div>