svf-tools 1.0.301 → 1.0.305

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 (453) hide show
  1. package/SVF-doxygen/html/html/AbstractPointsToDS_8h_source.html +1 -1
  2. package/SVF-doxygen/html/html/AndersenLCD_8cpp_source.html +3 -3
  3. package/SVF-doxygen/html/html/AndersenSCD_8cpp_source.html +4 -4
  4. package/SVF-doxygen/html/html/AndersenSFR_8cpp_source.html +3 -3
  5. package/SVF-doxygen/html/html/AndersenSFR_8h_source.html +4 -4
  6. package/SVF-doxygen/html/html/AndersenStat_8cpp_source.html +12 -12
  7. package/SVF-doxygen/html/html/AndersenWaveDiffWithType_8cpp_source.html +4 -4
  8. package/SVF-doxygen/html/html/AndersenWaveDiff_8cpp_source.html +2 -2
  9. package/SVF-doxygen/html/html/Andersen_8cpp_source.html +20 -20
  10. package/SVF-doxygen/html/html/Andersen_8h_source.html +15 -15
  11. package/SVF-doxygen/html/html/BasicTypes_8h_source.html +6 -6
  12. package/SVF-doxygen/html/html/CHG_8cpp.html +7 -6
  13. package/SVF-doxygen/html/html/CHG_8cpp_source.html +42 -41
  14. package/SVF-doxygen/html/html/CHG_8h_source.html +2 -2
  15. package/SVF-doxygen/html/html/CSC_8cpp_source.html +2 -2
  16. package/SVF-doxygen/html/html/CSC_8h_source.html +3 -3
  17. package/SVF-doxygen/html/html/CommonCHG_8h_source.html +1 -1
  18. package/SVF-doxygen/html/html/ConditionalPT_8h_source.html +2 -2
  19. package/SVF-doxygen/html/html/Conditions_8cpp_source.html +2 -2
  20. package/SVF-doxygen/html/html/Conditions_8h_source.html +2 -2
  21. package/SVF-doxygen/html/html/ConsGNode_8h_source.html +1 -1
  22. package/SVF-doxygen/html/html/ConsG_8cpp_source.html +2 -2
  23. package/SVF-doxygen/html/html/ConsG_8h_source.html +2 -2
  24. package/SVF-doxygen/html/html/ContextDDA_8cpp_source.html +9 -9
  25. package/SVF-doxygen/html/html/ContextDDA_8h_source.html +3 -3
  26. package/SVF-doxygen/html/html/CoreBitVector_8h.html +2 -0
  27. package/SVF-doxygen/html/html/CoreBitVector_8h_source.html +3 -1
  28. package/SVF-doxygen/html/html/CxtStmt_8h_source.html +1 -1
  29. package/SVF-doxygen/html/html/DCHG_8cpp_source.html +5 -5
  30. package/SVF-doxygen/html/html/DCHG_8h_source.html +4 -4
  31. package/SVF-doxygen/html/html/DDAClient_8cpp_source.html +5 -5
  32. package/SVF-doxygen/html/html/DDAClient_8h_source.html +3 -3
  33. package/SVF-doxygen/html/html/DDAPass_8cpp_source.html +11 -11
  34. package/SVF-doxygen/html/html/DDAPass_8h_source.html +1 -1
  35. package/SVF-doxygen/html/html/DDAStat_8cpp_source.html +8 -8
  36. package/SVF-doxygen/html/html/DDAStat_8h_source.html +2 -2
  37. package/SVF-doxygen/html/html/DDAVFSolver_8h_source.html +8 -8
  38. package/SVF-doxygen/html/html/DPItem_8h_source.html +1 -1
  39. package/SVF-doxygen/html/html/DataFlowUtil_8h_source.html +1 -1
  40. package/SVF-doxygen/html/html/ExtAPI_8h_source.html +2 -2
  41. package/SVF-doxygen/html/html/ExternalPAG_8cpp_source.html +3 -3
  42. package/SVF-doxygen/html/html/ExternalPAG_8h_source.html +3 -3
  43. package/SVF-doxygen/html/html/FSMPTA_8cpp_source.html +8 -8
  44. package/SVF-doxygen/html/html/FSMPTA_8h_source.html +3 -3
  45. package/SVF-doxygen/html/html/FlowDDA_8cpp_source.html +5 -5
  46. package/SVF-doxygen/html/html/FlowDDA_8h_source.html +2 -2
  47. package/SVF-doxygen/html/html/FlowSensitiveStat_8cpp_source.html +5 -5
  48. package/SVF-doxygen/html/html/FlowSensitiveTBHC_8cpp_source.html +8 -8
  49. package/SVF-doxygen/html/html/FlowSensitiveTBHC_8h_source.html +3 -3
  50. package/SVF-doxygen/html/html/FlowSensitive_8cpp_source.html +16 -16
  51. package/SVF-doxygen/html/html/FlowSensitive_8h_source.html +4 -4
  52. package/SVF-doxygen/html/html/GenericGraph_8h_source.html +2 -2
  53. package/SVF-doxygen/html/html/ICFGBuilder_8h_source.html +1 -1
  54. package/SVF-doxygen/html/html/ICFGNode_8h_source.html +1 -1
  55. package/SVF-doxygen/html/html/ICFGStat_8h_source.html +2 -2
  56. package/SVF-doxygen/html/html/ICFG_8cpp_source.html +3 -3
  57. package/SVF-doxygen/html/html/ICFG_8h_source.html +1 -1
  58. package/SVF-doxygen/html/html/LLVMModule_8cpp_source.html +3 -3
  59. package/SVF-doxygen/html/html/LLVMModule_8h_source.html +1 -1
  60. package/SVF-doxygen/html/html/LLVMUtil_8cpp_source.html +1 -1
  61. package/SVF-doxygen/html/html/LLVMUtil_8h_source.html +1 -1
  62. package/SVF-doxygen/html/html/LeakChecker_8cpp_source.html +2 -2
  63. package/SVF-doxygen/html/html/LeakChecker_8h_source.html +2 -2
  64. package/SVF-doxygen/html/html/LocationSet_8cpp_source.html +3 -3
  65. package/SVF-doxygen/html/html/LocationSet_8h_source.html +2 -2
  66. package/SVF-doxygen/html/html/LockAnalysis_8cpp_source.html +8 -8
  67. package/SVF-doxygen/html/html/LockAnalysis_8h_source.html +6 -6
  68. package/SVF-doxygen/html/html/LockResultValidator_8cpp_source.html +2 -2
  69. package/SVF-doxygen/html/html/LockResultValidator_8h_source.html +3 -3
  70. package/SVF-doxygen/html/html/MHP_8cpp_source.html +12 -12
  71. package/SVF-doxygen/html/html/MHP_8h_source.html +4 -4
  72. package/SVF-doxygen/html/html/MSSAMuChi_8h_source.html +1 -1
  73. package/SVF-doxygen/html/html/MTAAnnotator_8cpp_source.html +4 -4
  74. package/SVF-doxygen/html/html/MTAAnnotator_8h_source.html +1 -1
  75. package/SVF-doxygen/html/html/MTAResultValidator_8cpp_source.html +5 -5
  76. package/SVF-doxygen/html/html/MTAResultValidator_8h_source.html +3 -3
  77. package/SVF-doxygen/html/html/MTAStat_8cpp_source.html +5 -5
  78. package/SVF-doxygen/html/html/MTAStat_8h_source.html +1 -1
  79. package/SVF-doxygen/html/html/MTA_8cpp_source.html +7 -7
  80. package/SVF-doxygen/html/html/MTA_8h_source.html +2 -2
  81. package/SVF-doxygen/html/html/MemModel_8h_source.html +1 -1
  82. package/SVF-doxygen/html/html/MemPartition_8cpp_source.html +1 -1
  83. package/SVF-doxygen/html/html/MemPartition_8h_source.html +3 -3
  84. package/SVF-doxygen/html/html/MemRegion_8cpp_source.html +5 -5
  85. package/SVF-doxygen/html/html/MemRegion_8h_source.html +4 -4
  86. package/SVF-doxygen/html/html/MemSSA_8cpp_source.html +7 -7
  87. package/SVF-doxygen/html/html/MemSSA_8h_source.html +2 -2
  88. package/SVF-doxygen/html/html/MutablePointsToDS_8h_source.html +2 -2
  89. package/SVF-doxygen/html/html/NodeIDAllocator_8cpp_source.html +11 -11
  90. package/SVF-doxygen/html/html/NodeIDAllocator_8h_source.html +2 -2
  91. package/SVF-doxygen/html/html/OfflineConsG_8cpp_source.html +2 -2
  92. package/SVF-doxygen/html/html/OfflineConsG_8h_source.html +2 -2
  93. package/SVF-doxygen/html/html/Options_8cpp_source.html +112 -110
  94. package/SVF-doxygen/html/html/Options_8h.html +1 -0
  95. package/SVF-doxygen/html/html/Options_8h_source.html +114 -111
  96. package/SVF-doxygen/html/html/PAGBuilder_8cpp_source.html +3 -3
  97. package/SVF-doxygen/html/html/PAGEdge_8h_source.html +1 -1
  98. package/SVF-doxygen/html/html/PAG_8cpp_source.html +6 -6
  99. package/SVF-doxygen/html/html/PAG_8h_source.html +5 -5
  100. package/SVF-doxygen/html/html/PCG_8cpp_source.html +3 -3
  101. package/SVF-doxygen/html/html/PCG_8h_source.html +1 -1
  102. package/SVF-doxygen/html/html/PTACallGraph_8cpp_source.html +2 -2
  103. package/SVF-doxygen/html/html/PTACallGraph_8h_source.html +3 -3
  104. package/SVF-doxygen/html/html/PTAStat_8cpp_source.html +20 -18
  105. package/SVF-doxygen/html/html/PTAStat_8h_source.html +19 -17
  106. package/SVF-doxygen/html/html/PTAType_8h_source.html +4 -4
  107. package/SVF-doxygen/html/html/PathCondAllocator_8cpp_source.html +5 -5
  108. package/SVF-doxygen/html/html/PathCondAllocator_8h_source.html +3 -3
  109. package/SVF-doxygen/html/html/PersistentPointsToCache_8h_source.html +2 -2
  110. package/SVF-doxygen/html/html/PersistentPointsToDS_8h_source.html +2 -2
  111. package/SVF-doxygen/html/html/PointerAnalysisImpl_8cpp_source.html +5 -5
  112. package/SVF-doxygen/html/html/PointerAnalysisImpl_8h_source.html +4 -4
  113. package/SVF-doxygen/html/html/PointerAnalysis_8cpp_source.html +19 -19
  114. package/SVF-doxygen/html/html/PointerAnalysis_8h_source.html +5 -5
  115. package/SVF-doxygen/html/html/PointsTo_8cpp_source.html +4 -5
  116. package/SVF-doxygen/html/html/PointsTo_8h_source.html +2 -2
  117. package/SVF-doxygen/html/html/ProgSlice_8cpp_source.html +4 -4
  118. package/SVF-doxygen/html/html/ProgSlice_8h_source.html +2 -2
  119. package/SVF-doxygen/html/html/SCC_8h_source.html +3 -3
  120. package/SVF-doxygen/html/html/SVFBasicTypes_8h.html +32 -26
  121. package/SVF-doxygen/html/html/SVFBasicTypes_8h_source.html +52 -49
  122. package/SVF-doxygen/html/html/SVFGBuilder_8cpp_source.html +6 -6
  123. package/SVF-doxygen/html/html/SVFGEdge_8h_source.html +2 -2
  124. package/SVF-doxygen/html/html/SVFGNode_8h_source.html +3 -3
  125. package/SVF-doxygen/html/html/SVFGOPT_8cpp_source.html +7 -7
  126. package/SVF-doxygen/html/html/SVFGOPT_8h_source.html +3 -3
  127. package/SVF-doxygen/html/html/SVFGStat_8cpp_source.html +11 -11
  128. package/SVF-doxygen/html/html/SVFGStat_8h_source.html +5 -5
  129. package/SVF-doxygen/html/html/SVFG_8cpp_source.html +4 -4
  130. package/SVF-doxygen/html/html/SVFG_8h_source.html +2 -2
  131. package/SVF-doxygen/html/html/SVFModule_8cpp_source.html +2 -2
  132. package/SVF-doxygen/html/html/SVFModule_8h_source.html +1 -1
  133. package/SVF-doxygen/html/html/SVFUtil_8cpp_source.html +2 -2
  134. package/SVF-doxygen/html/html/SVFUtil_8h_source.html +3 -3
  135. package/SVF-doxygen/html/html/SaberCheckerAPI_8h_source.html +1 -1
  136. package/SVF-doxygen/html/html/SaberSVFGBuilder_8cpp_source.html +4 -4
  137. package/SVF-doxygen/html/html/SaberSVFGBuilder_8h_source.html +2 -2
  138. package/SVF-doxygen/html/html/SrcSnkDDA_8cpp_source.html +8 -8
  139. package/SVF-doxygen/html/html/SrcSnkDDA_8h_source.html +3 -3
  140. package/SVF-doxygen/html/html/Steensgaard_8cpp_source.html +1 -1
  141. package/SVF-doxygen/html/html/Steensgaard_8h_source.html +2 -2
  142. package/SVF-doxygen/html/html/SymbolTableInfo_8cpp_source.html +4 -4
  143. package/SVF-doxygen/html/html/SymbolTableInfo_8h_source.html +2 -2
  144. package/SVF-doxygen/html/html/TCT_8cpp_source.html +5 -5
  145. package/SVF-doxygen/html/html/TCT_8h_source.html +4 -4
  146. package/SVF-doxygen/html/html/ThreadAPI_8cpp_source.html +1 -1
  147. package/SVF-doxygen/html/html/ThreadAPI_8h_source.html +1 -1
  148. package/SVF-doxygen/html/html/ThreadCallGraph_8cpp_source.html +3 -3
  149. package/SVF-doxygen/html/html/ThreadCallGraph_8h_source.html +2 -2
  150. package/SVF-doxygen/html/html/TypeAnalysis_8cpp_source.html +1 -1
  151. package/SVF-doxygen/html/html/TypeAnalysis_8h_source.html +1 -1
  152. package/SVF-doxygen/html/html/TypeBasedHeapCloning_8cpp_source.html +2 -2
  153. package/SVF-doxygen/html/html/TypeBasedHeapCloning_8h_source.html +2 -2
  154. package/SVF-doxygen/html/html/VFGNode_8h_source.html +2 -2
  155. package/SVF-doxygen/html/html/VFG_8cpp_source.html +3 -3
  156. package/SVF-doxygen/html/html/VFG_8h_source.html +3 -3
  157. package/SVF-doxygen/html/html/VersionedFlowSensitiveStat_8cpp_source.html +10 -8
  158. package/SVF-doxygen/html/html/VersionedFlowSensitive_8cpp.html +3 -0
  159. package/SVF-doxygen/html/html/VersionedFlowSensitive_8cpp_source.html +79 -67
  160. package/SVF-doxygen/html/html/VersionedFlowSensitive_8h.html +3 -2
  161. package/SVF-doxygen/html/html/VersionedFlowSensitive_8h_source.html +78 -69
  162. package/SVF-doxygen/html/html/WPAFSSolver_8h_source.html +8 -8
  163. package/SVF-doxygen/html/html/WPAPass_8cpp_source.html +5 -5
  164. package/SVF-doxygen/html/html/WPASolver_8h_source.html +24 -24
  165. package/SVF-doxygen/html/html/WPAStat_8h_source.html +1 -1
  166. package/SVF-doxygen/html/html/WorkList_8h_source.html +1 -1
  167. package/SVF-doxygen/html/html/annotated.html +189 -186
  168. package/SVF-doxygen/html/html/classSVF_1_1ActualINSVFGNode.html +1 -1
  169. package/SVF-doxygen/html/html/classSVF_1_1ActualOUTSVFGNode.html +1 -1
  170. package/SVF-doxygen/html/html/classSVF_1_1AddrPE.html +1 -1
  171. package/SVF-doxygen/html/html/classSVF_1_1Andersen.html +33 -33
  172. package/SVF-doxygen/html/html/classSVF_1_1AndersenBase.html +14 -14
  173. package/SVF-doxygen/html/html/classSVF_1_1AndersenHCD.html +3 -3
  174. package/SVF-doxygen/html/html/classSVF_1_1AndersenLCD.html +8 -8
  175. package/SVF-doxygen/html/html/classSVF_1_1AndersenSCD.html +19 -19
  176. package/SVF-doxygen/html/html/classSVF_1_1AndersenSFR.html +5 -5
  177. package/SVF-doxygen/html/html/classSVF_1_1AndersenStat-members.html +10 -7
  178. package/SVF-doxygen/html/html/classSVF_1_1AndersenStat.html +19 -15
  179. package/SVF-doxygen/html/html/classSVF_1_1AndersenWaveDiff.html +10 -10
  180. package/SVF-doxygen/html/html/classSVF_1_1AndersenWaveDiffWithType.html +4 -4
  181. package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl.html +7 -7
  182. package/SVF-doxygen/html/html/classSVF_1_1BinaryOPPE.html +1 -1
  183. package/SVF-doxygen/html/html/classSVF_1_1BranchCondManager.html +4 -4
  184. package/SVF-doxygen/html/html/classSVF_1_1CHGraph.html +91 -91
  185. package/SVF-doxygen/html/html/classSVF_1_1CHNode.html +2 -2
  186. package/SVF-doxygen/html/html/classSVF_1_1CSC.html +3 -3
  187. package/SVF-doxygen/html/html/classSVF_1_1CallBlockNode.html +1 -1
  188. package/SVF-doxygen/html/html/classSVF_1_1CallPE.html +1 -1
  189. package/SVF-doxygen/html/html/classSVF_1_1CmpPE.html +1 -1
  190. package/SVF-doxygen/html/html/classSVF_1_1CondPTAImpl.html +1 -1
  191. package/SVF-doxygen/html/html/classSVF_1_1ContextDDA.html +17 -17
  192. package/SVF-doxygen/html/html/classSVF_1_1CopyPE.html +1 -1
  193. package/SVF-doxygen/html/html/classSVF_1_1CxtProc.html +1 -1
  194. package/SVF-doxygen/html/html/classSVF_1_1CxtThreadProc.html +1 -1
  195. package/SVF-doxygen/html/html/classSVF_1_1DCHGraph.html +7 -7
  196. package/SVF-doxygen/html/html/classSVF_1_1DDAClient.html +3 -3
  197. package/SVF-doxygen/html/html/classSVF_1_1DDAPass.html +11 -11
  198. package/SVF-doxygen/html/html/classSVF_1_1DDAStat-members.html +5 -2
  199. package/SVF-doxygen/html/html/classSVF_1_1DDAStat.html +14 -10
  200. package/SVF-doxygen/html/html/classSVF_1_1DDAVFSolver.html +27 -27
  201. package/SVF-doxygen/html/html/classSVF_1_1DistinctMRG.html +3 -3
  202. package/SVF-doxygen/html/html/classSVF_1_1ExternalPAG.html +4 -4
  203. package/SVF-doxygen/html/html/classSVF_1_1FIObjPN.html +1 -1
  204. package/SVF-doxygen/html/html/classSVF_1_1FlowDDA.html +14 -14
  205. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitive.html +53 -53
  206. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveStat-members.html +5 -2
  207. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveStat.html +17 -13
  208. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveTBHC.html +24 -24
  209. package/SVF-doxygen/html/html/classSVF_1_1ForkJoinAnalysis.html +13 -13
  210. package/SVF-doxygen/html/html/classSVF_1_1FormalINSVFGNode.html +1 -1
  211. package/SVF-doxygen/html/html/classSVF_1_1FormalOUTSVFGNode.html +1 -1
  212. package/SVF-doxygen/html/html/classSVF_1_1FormalParmVFGNode.html +1 -1
  213. package/SVF-doxygen/html/html/classSVF_1_1FormalRetVFGNode.html +1 -1
  214. package/SVF-doxygen/html/html/classSVF_1_1FunEntryBlockNode.html +1 -1
  215. package/SVF-doxygen/html/html/classSVF_1_1FunExitBlockNode.html +1 -1
  216. package/SVF-doxygen/html/html/classSVF_1_1FunptrDDAClient.html +1 -1
  217. package/SVF-doxygen/html/html/classSVF_1_1GepObjPN.html +1 -1
  218. package/SVF-doxygen/html/html/classSVF_1_1GepPE.html +1 -1
  219. package/SVF-doxygen/html/html/classSVF_1_1GepValPN.html +1 -1
  220. package/SVF-doxygen/html/html/classSVF_1_1ICFG.html +2 -2
  221. package/SVF-doxygen/html/html/classSVF_1_1ICFGStat-members.html +5 -2
  222. package/SVF-doxygen/html/html/classSVF_1_1ICFGStat.html +7 -3
  223. package/SVF-doxygen/html/html/classSVF_1_1InterDisjointMRG.html +1 -1
  224. package/SVF-doxygen/html/html/classSVF_1_1InterMSSAPHISVFGNode.html +1 -1
  225. package/SVF-doxygen/html/html/classSVF_1_1IntraBlockNode.html +1 -1
  226. package/SVF-doxygen/html/html/classSVF_1_1IntraDisjointMRG.html +3 -3
  227. package/SVF-doxygen/html/html/classSVF_1_1IntraMSSAPHISVFGNode.html +1 -1
  228. package/SVF-doxygen/html/html/classSVF_1_1LLVMModuleSet.html +8 -8
  229. package/SVF-doxygen/html/html/classSVF_1_1LeakChecker.html +3 -3
  230. package/SVF-doxygen/html/html/classSVF_1_1LoadPE.html +1 -1
  231. package/SVF-doxygen/html/html/classSVF_1_1LocationSet.html +3 -3
  232. package/SVF-doxygen/html/html/classSVF_1_1LockAnalysis.html +36 -36
  233. package/SVF-doxygen/html/html/classSVF_1_1LockResultValidator.html +3 -3
  234. package/SVF-doxygen/html/html/classSVF_1_1MHP.html +31 -31
  235. package/SVF-doxygen/html/html/classSVF_1_1MRGenerator.html +20 -20
  236. package/SVF-doxygen/html/html/classSVF_1_1MSSAPHISVFGNode.html +1 -1
  237. package/SVF-doxygen/html/html/classSVF_1_1MTA.html +9 -9
  238. package/SVF-doxygen/html/html/classSVF_1_1MTAAnnotator.html +9 -9
  239. package/SVF-doxygen/html/html/classSVF_1_1MTAResultValidator.html +12 -12
  240. package/SVF-doxygen/html/html/classSVF_1_1MTASVFGBuilder.html +18 -18
  241. package/SVF-doxygen/html/html/classSVF_1_1MTAStat-members.html +6 -3
  242. package/SVF-doxygen/html/html/classSVF_1_1MTAStat.html +17 -13
  243. package/SVF-doxygen/html/html/classSVF_1_1MemObj.html +2 -2
  244. package/SVF-doxygen/html/html/classSVF_1_1MemSSA.html +19 -19
  245. package/SVF-doxygen/html/html/classSVF_1_1MemSSAStat-members.html +5 -2
  246. package/SVF-doxygen/html/html/classSVF_1_1MemSSAStat.html +12 -8
  247. package/SVF-doxygen/html/html/classSVF_1_1MutableDFPTData.html +1 -1
  248. package/SVF-doxygen/html/html/classSVF_1_1NodeIDAllocator.html +1 -1
  249. package/SVF-doxygen/html/html/classSVF_1_1NodeIDAllocator_1_1Clusterer.html +17 -17
  250. package/SVF-doxygen/html/html/classSVF_1_1NormalGepPE.html +1 -1
  251. package/SVF-doxygen/html/html/classSVF_1_1ObjPN.html +1 -1
  252. package/SVF-doxygen/html/html/classSVF_1_1OfflineConsG.html +2 -2
  253. package/SVF-doxygen/html/html/classSVF_1_1Options-members.html +102 -100
  254. package/SVF-doxygen/html/html/classSVF_1_1Options.html +166 -111
  255. package/SVF-doxygen/html/html/classSVF_1_1PAG.html +6 -6
  256. package/SVF-doxygen/html/html/classSVF_1_1PAGBuilder.html +29 -29
  257. package/SVF-doxygen/html/html/classSVF_1_1PCG.html +3 -3
  258. package/SVF-doxygen/html/html/classSVF_1_1PTACallGraph.html +2 -2
  259. package/SVF-doxygen/html/html/classSVF_1_1PTACallGraphNode.html +2 -2
  260. package/SVF-doxygen/html/html/classSVF_1_1PTAStat-members.html +6 -3
  261. package/SVF-doxygen/html/html/classSVF_1_1PTAStat.html +87 -56
  262. package/SVF-doxygen/html/html/classSVF_1_1PathCondAllocator.html +8 -8
  263. package/SVF-doxygen/html/html/classSVF_1_1PersistentDFPTData.html +3 -3
  264. package/SVF-doxygen/html/html/classSVF_1_1PersistentDiffPTData.html +3 -3
  265. package/SVF-doxygen/html/html/classSVF_1_1PersistentPTData.html +6 -6
  266. package/SVF-doxygen/html/html/classSVF_1_1PersistentPointsToCache.html +6 -6
  267. package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis.html +23 -23
  268. package/SVF-doxygen/html/html/classSVF_1_1PointsTo.html +7 -7
  269. package/SVF-doxygen/html/html/classSVF_1_1ProgSlice.html +5 -5
  270. package/SVF-doxygen/html/html/classSVF_1_1RetBlockNode.html +1 -1
  271. package/SVF-doxygen/html/html/classSVF_1_1RetPE.html +1 -1
  272. package/SVF-doxygen/html/html/classSVF_1_1SVFBasicBlock.html +2 -2
  273. package/SVF-doxygen/html/html/classSVF_1_1SVFFunction.html +4 -4
  274. package/SVF-doxygen/html/html/classSVF_1_1SVFG.html +6 -6
  275. package/SVF-doxygen/html/html/classSVF_1_1SVFGBuilder.html +8 -8
  276. package/SVF-doxygen/html/html/classSVF_1_1SVFGOPT.html +12 -12
  277. package/SVF-doxygen/html/html/classSVF_1_1SVFGStat-members.html +11 -8
  278. package/SVF-doxygen/html/html/classSVF_1_1SVFGStat.html +40 -36
  279. package/SVF-doxygen/html/html/classSVF_1_1SVFGlobal.html +2 -2
  280. package/SVF-doxygen/html/html/classSVF_1_1SVFInstruction.html +2 -2
  281. package/SVF-doxygen/html/html/classSVF_1_1SVFModule.html +2 -2
  282. package/SVF-doxygen/html/html/classSVF_1_1SVFValue.html +33 -33
  283. package/SVF-doxygen/html/html/classSVF_1_1SaberSVFGBuilder.html +4 -4
  284. package/SVF-doxygen/html/html/classSVF_1_1SrcSnkDDA.html +14 -14
  285. package/SVF-doxygen/html/html/classSVF_1_1Steensgaard.html +5 -5
  286. package/SVF-doxygen/html/html/classSVF_1_1StorePE.html +1 -1
  287. package/SVF-doxygen/html/html/classSVF_1_1SymbolTableInfo.html +17 -17
  288. package/SVF-doxygen/html/html/classSVF_1_1TCT.html +16 -16
  289. package/SVF-doxygen/html/html/classSVF_1_1TDForkPE.html +1 -1
  290. package/SVF-doxygen/html/html/classSVF_1_1TDJoinPE.html +1 -1
  291. package/SVF-doxygen/html/html/classSVF_1_1ThreadAPI.html +1 -1
  292. package/SVF-doxygen/html/html/classSVF_1_1ThreadCallGraph.html +3 -3
  293. package/SVF-doxygen/html/html/classSVF_1_1TypeAnalysis.html +2 -2
  294. package/SVF-doxygen/html/html/classSVF_1_1TypeBasedHeapCloning.html +5 -5
  295. package/SVF-doxygen/html/html/classSVF_1_1TypeSystem.html +1 -1
  296. package/SVF-doxygen/html/html/classSVF_1_1UnaryOPPE.html +1 -1
  297. package/SVF-doxygen/html/html/classSVF_1_1VFG.html +3 -3
  298. package/SVF-doxygen/html/html/classSVF_1_1ValPN.html +1 -1
  299. package/SVF-doxygen/html/html/classSVF_1_1VariantGepPE.html +1 -1
  300. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive-members.html +161 -162
  301. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive.html +576 -539
  302. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitiveStat-members.html +7 -4
  303. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitiveStat.html +32 -29
  304. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive_1_1SCC-members.html +83 -0
  305. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive_1_1SCC.html +297 -0
  306. package/SVF-doxygen/html/html/classSVF_1_1WPAFSSolver.html +2 -2
  307. package/SVF-doxygen/html/html/classSVF_1_1WPAMinimumSolver.html +7 -7
  308. package/SVF-doxygen/html/html/classSVF_1_1WPAPass.html +12 -12
  309. package/SVF-doxygen/html/html/classSVF_1_1WPASCCSolver.html +9 -9
  310. package/SVF-doxygen/html/html/classSVF_1_1WPASolver.html +60 -60
  311. package/SVF-doxygen/html/html/classes.html +96 -95
  312. package/SVF-doxygen/html/html/functions_b.html +11 -5
  313. package/SVF-doxygen/html/html/functions_c.html +24 -18
  314. package/SVF-doxygen/html/html/functions_d.html +13 -4
  315. package/SVF-doxygen/html/html/functions_e.html +3 -0
  316. package/SVF-doxygen/html/html/functions_enum.html +3 -0
  317. package/SVF-doxygen/html/html/functions_eval_c.html +3 -0
  318. package/SVF-doxygen/html/html/functions_eval_w.html +76 -0
  319. package/SVF-doxygen/html/html/functions_f.html +14 -14
  320. package/SVF-doxygen/html/html/functions_func_b.html +6 -0
  321. package/SVF-doxygen/html/html/functions_func_d.html +7 -4
  322. package/SVF-doxygen/html/html/functions_func_g.html +15 -9
  323. package/SVF-doxygen/html/html/functions_func_i.html +11 -11
  324. package/SVF-doxygen/html/html/functions_func_m.html +0 -3
  325. package/SVF-doxygen/html/html/functions_func_n.html +1 -4
  326. package/SVF-doxygen/html/html/functions_func_o.html +6 -4
  327. package/SVF-doxygen/html/html/functions_func_r.html +4 -1
  328. package/SVF-doxygen/html/html/functions_func_s.html +1 -1
  329. package/SVF-doxygen/html/html/functions_func_v.html +2 -1
  330. package/SVF-doxygen/html/html/functions_g.html +15 -9
  331. package/SVF-doxygen/html/html/functions_i.html +23 -16
  332. package/SVF-doxygen/html/html/functions_l.html +12 -15
  333. package/SVF-doxygen/html/html/functions_m.html +1 -16
  334. package/SVF-doxygen/html/html/functions_n.html +3 -3
  335. package/SVF-doxygen/html/html/functions_o.html +17 -16
  336. package/SVF-doxygen/html/html/functions_p.html +16 -13
  337. package/SVF-doxygen/html/html/functions_r.html +6 -8
  338. package/SVF-doxygen/html/html/functions_s.html +14 -16
  339. package/SVF-doxygen/html/html/functions_t.html +9 -9
  340. package/SVF-doxygen/html/html/functions_type_l.html +1 -4
  341. package/SVF-doxygen/html/html/functions_type_m.html +1 -1
  342. package/SVF-doxygen/html/html/functions_type_n.html +3 -0
  343. package/SVF-doxygen/html/html/functions_type_o.html +0 -3
  344. package/SVF-doxygen/html/html/functions_type_v.html +0 -3
  345. package/SVF-doxygen/html/html/functions_u.html +3 -3
  346. package/SVF-doxygen/html/html/functions_v.html +8 -10
  347. package/SVF-doxygen/html/html/functions_vars_c.html +3 -3
  348. package/SVF-doxygen/html/html/functions_vars_d.html +6 -0
  349. package/SVF-doxygen/html/html/functions_vars_e.html +3 -0
  350. package/SVF-doxygen/html/html/functions_vars_i.html +7 -0
  351. package/SVF-doxygen/html/html/functions_vars_l.html +3 -3
  352. package/SVF-doxygen/html/html/functions_vars_m.html +0 -12
  353. package/SVF-doxygen/html/html/functions_vars_o.html +3 -3
  354. package/SVF-doxygen/html/html/functions_vars_p.html +3 -0
  355. package/SVF-doxygen/html/html/functions_vars_r.html +0 -3
  356. package/SVF-doxygen/html/html/functions_vars_v.html +3 -3
  357. package/SVF-doxygen/html/html/functions_vars_y.html +0 -3
  358. package/SVF-doxygen/html/html/functions_w.html +5 -6
  359. package/SVF-doxygen/html/html/functions_y.html +0 -3
  360. package/SVF-doxygen/html/html/globals_f.html +3 -3
  361. package/SVF-doxygen/html/html/globals_r.html +3 -3
  362. package/SVF-doxygen/html/html/globals_s.html +6 -6
  363. package/SVF-doxygen/html/html/hierarchy.html +176 -173
  364. package/SVF-doxygen/html/html/menudata.js +2 -1
  365. package/SVF-doxygen/html/html/namespaceSVF.html +68 -30
  366. package/SVF-doxygen/html/html/namespaceSVF_1_1SVFUtil.html +3 -3
  367. package/SVF-doxygen/html/html/namespacemembers_type_v.html +6 -0
  368. package/SVF-doxygen/html/html/namespacemembers_v.html +6 -0
  369. package/SVF-doxygen/html/html/search/all_10.js +4 -3
  370. package/SVF-doxygen/html/html/search/all_12.js +4 -4
  371. package/SVF-doxygen/html/html/search/all_13.js +12 -12
  372. package/SVF-doxygen/html/html/search/all_14.js +6 -6
  373. package/SVF-doxygen/html/html/search/all_15.js +2 -2
  374. package/SVF-doxygen/html/html/search/all_16.js +5 -4
  375. package/SVF-doxygen/html/html/search/all_17.js +2 -1
  376. package/SVF-doxygen/html/html/search/all_19.js +0 -1
  377. package/SVF-doxygen/html/html/search/all_2.js +2 -0
  378. package/SVF-doxygen/html/html/search/all_3.js +2 -1
  379. package/SVF-doxygen/html/html/search/all_4.js +5 -2
  380. package/SVF-doxygen/html/html/search/all_5.js +1 -0
  381. package/SVF-doxygen/html/html/search/all_6.js +6 -6
  382. package/SVF-doxygen/html/html/search/all_7.js +5 -3
  383. package/SVF-doxygen/html/html/search/all_8.js +2 -0
  384. package/SVF-doxygen/html/html/search/all_9.js +5 -3
  385. package/SVF-doxygen/html/html/search/all_c.js +4 -5
  386. package/SVF-doxygen/html/html/search/all_d.js +1 -6
  387. package/SVF-doxygen/html/html/search/all_e.js +5 -5
  388. package/SVF-doxygen/html/html/search/all_f.js +2 -3
  389. package/SVF-doxygen/html/html/search/classes_12.js +0 -1
  390. package/SVF-doxygen/html/html/search/classes_7.js +2 -0
  391. package/SVF-doxygen/html/html/search/classes_b.js +1 -0
  392. package/SVF-doxygen/html/html/search/classes_f.js +1 -0
  393. package/SVF-doxygen/html/html/search/enums_1.js +1 -0
  394. package/SVF-doxygen/html/html/search/enumvalues_13.js +1 -1
  395. package/SVF-doxygen/html/html/search/enumvalues_2.js +1 -0
  396. package/SVF-doxygen/html/html/search/functions_1.js +2 -0
  397. package/SVF-doxygen/html/html/search/functions_10.js +2 -2
  398. package/SVF-doxygen/html/html/search/functions_13.js +1 -1
  399. package/SVF-doxygen/html/html/search/functions_3.js +3 -2
  400. package/SVF-doxygen/html/html/search/functions_6.js +5 -3
  401. package/SVF-doxygen/html/html/search/functions_8.js +2 -2
  402. package/SVF-doxygen/html/html/search/functions_b.js +0 -1
  403. package/SVF-doxygen/html/html/search/functions_c.js +0 -1
  404. package/SVF-doxygen/html/html/search/functions_d.js +1 -1
  405. package/SVF-doxygen/html/html/search/functions_f.js +1 -0
  406. package/SVF-doxygen/html/html/search/searchdata.js +1 -1
  407. package/SVF-doxygen/html/html/search/typedefs_14.js +2 -1
  408. package/SVF-doxygen/html/html/search/typedefs_b.js +1 -2
  409. package/SVF-doxygen/html/html/search/typedefs_c.js +1 -1
  410. package/SVF-doxygen/html/html/search/typedefs_d.js +1 -0
  411. package/SVF-doxygen/html/html/search/typedefs_e.js +0 -1
  412. package/SVF-doxygen/html/html/search/variables_10.js +1 -0
  413. package/SVF-doxygen/html/html/search/variables_12.js +0 -1
  414. package/SVF-doxygen/html/html/search/variables_14.js +2 -2
  415. package/SVF-doxygen/html/html/search/variables_15.js +1 -1
  416. package/SVF-doxygen/html/html/search/variables_16.js +1 -1
  417. package/SVF-doxygen/html/html/search/variables_19.js +0 -1
  418. package/SVF-doxygen/html/html/search/variables_3.js +1 -1
  419. package/SVF-doxygen/html/html/search/variables_4.js +2 -0
  420. package/SVF-doxygen/html/html/search/variables_5.js +1 -0
  421. package/SVF-doxygen/html/html/search/variables_6.js +1 -1
  422. package/SVF-doxygen/html/html/search/variables_9.js +3 -1
  423. package/SVF-doxygen/html/html/search/variables_c.js +1 -1
  424. package/SVF-doxygen/html/html/search/variables_d.js +0 -4
  425. package/SVF-doxygen/html/html/search/variables_e.js +2 -2
  426. package/SVF-doxygen/html/html/search/variables_f.js +1 -1
  427. package/SVF-doxygen/html/html/structSVF_1_1Hash_3_01CoreBitVector_01_4-members.html +81 -0
  428. package/SVF-doxygen/html/html/structSVF_1_1Hash_3_01CoreBitVector_01_4.html +126 -0
  429. package/SVF-doxygen/html/html/structSVF_1_1Hash_3_01NodePair_01_4.html +3 -3
  430. package/SVF-doxygen/html/html/structSVF_1_1VersionedFlowSensitive_1_1SCC_1_1NodeData-members.html +83 -0
  431. package/SVF-doxygen/html/html/structSVF_1_1VersionedFlowSensitive_1_1SCC_1_1NodeData.html +145 -0
  432. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01CHGraph_01_5_01_4.html +12 -12
  433. package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1NodePair_01_4.html +3 -3
  434. package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1SmallVector_3_01T_00_01N_01_4_01_4.html +3 -3
  435. package/SVF-doxygen/html/html/structstd_1_1hash_3_01llvm_1_1SparseBitVector_3_01N_01_4_01_4.html +3 -3
  436. package/SVF-doxygen/html/html/structstd_1_1hash_3_01std_1_1vector_3_01T_01_4_01_4-members.html +81 -0
  437. package/SVF-doxygen/html/html/structstd_1_1hash_3_01std_1_1vector_3_01T_01_4_01_4.html +129 -0
  438. package/SVF-doxygen/html/html/svf-ex_8cpp.html +2 -2
  439. package/SVF-doxygen/html/html/svf-ex_8cpp_source.html +1 -1
  440. package/include/Graphs/SVFGStat.h +10 -10
  441. package/include/MemoryModel/PTAStat.h +8 -2
  442. package/include/Util/CoreBitVector.h +8 -0
  443. package/include/Util/Options.h +6 -0
  444. package/include/Util/SVFBasicTypes.h +22 -2
  445. package/include/WPA/VersionedFlowSensitive.h +96 -65
  446. package/include/WPA/WPASolver.h +1 -2
  447. package/lib/SABER/SrcSnkDDA.cpp +1 -1
  448. package/lib/SVF-FE/CHG.cpp +3 -2
  449. package/lib/Util/Options.cpp +16 -0
  450. package/lib/Util/PTAStat.cpp +17 -2
  451. package/lib/WPA/VersionedFlowSensitive.cpp +501 -229
  452. package/lib/WPA/VersionedFlowSensitiveStat.cpp +23 -38
  453. package/package.json +1 -1
@@ -88,6 +88,10 @@ Public Types</h2></td></tr>
88
88
  <tr class="memitem:a69670ae14f5ec47728e2ddc7dd4dec84"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set</a>&lt; const <a class="el" href="classSVF_1_1ICFGNode.html">ICFGNode</a> * &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1ICFGStat.html#a69670ae14f5ec47728e2ddc7dd4dec84">ICFGNodeSet</a></td></tr>
89
89
  <tr class="separator:a69670ae14f5ec47728e2ddc7dd4dec84"><td class="memSeparator" colspan="2">&#160;</td></tr>
90
90
  <tr class="inherit_header pub_types_classSVF_1_1PTAStat"><td colspan="2" onclick="javascript:toggleInherit('pub_types_classSVF_1_1PTAStat')"><img src="closed.png" alt="-"/>&#160;Public Types inherited from <a class="el" href="classSVF_1_1PTAStat.html">SVF::PTAStat</a></td></tr>
91
+ <tr class="memitem:a926cd5ab95f4f42ffe264413a32725cf inherit pub_types_classSVF_1_1PTAStat"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1PTAStat.html#a926cd5ab95f4f42ffe264413a32725cf">ClockType</a> { <a class="el" href="classSVF_1_1PTAStat.html#a926cd5ab95f4f42ffe264413a32725cfa6c9d7a9709df10eb67ce27e744e0f61c">Wall</a>,
92
+ <a class="el" href="classSVF_1_1PTAStat.html#a926cd5ab95f4f42ffe264413a32725cfa518df17b11048afda951359227f53d2d">CPU</a>
93
+ }</td></tr>
94
+ <tr class="separator:a926cd5ab95f4f42ffe264413a32725cf inherit pub_types_classSVF_1_1PTAStat"><td class="memSeparator" colspan="2">&#160;</td></tr>
91
95
  <tr class="memitem:a7e8f9f9c1662822f3f8bd016db84e1e6 inherit pub_types_classSVF_1_1PTAStat"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map</a>&lt; const char *, <a class="el" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1PTAStat.html#a7e8f9f9c1662822f3f8bd016db84e1e6">NUMStatMap</a></td></tr>
92
96
  <tr class="separator:a7e8f9f9c1662822f3f8bd016db84e1e6 inherit pub_types_classSVF_1_1PTAStat"><td class="memSeparator" colspan="2">&#160;</td></tr>
93
97
  <tr class="memitem:a28f304e7095f3843ca4cc017bc1f7b10 inherit pub_types_classSVF_1_1PTAStat"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map</a>&lt; const char *, double &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1PTAStat.html#a28f304e7095f3843ca4cc017bc1f7b10">TIMEStatMap</a></td></tr>
@@ -460,7 +464,7 @@ Additional Inherited Members</h2></td></tr>
460
464
  <div class="ttc" id="classSVF_1_1ICFGStat_html_a7f8d88b6d8d4892e85006320b39c7dc4"><div class="ttname"><a href="classSVF_1_1ICFGStat.html#a7f8d88b6d8d4892e85006320b39c7dc4">SVF::ICFGStat::numOfCallNodes</a></div><div class="ttdeci">int numOfCallNodes</div><div class="ttdef"><b>Definition:</b> <a href="ICFGStat_8h_source.html#l00045">ICFGStat.h:45</a></div></div>
461
465
  <div class="ttc" id="classSVF_1_1ICFGStat_html_a2058c584a93cb6c90f165207dbdb01d6"><div class="ttname"><a href="classSVF_1_1ICFGStat.html#a2058c584a93cb6c90f165207dbdb01d6">SVF::ICFGStat::printStat</a></div><div class="ttdeci">void printStat(string statname)</div><div class="ttdef"><b>Definition:</b> <a href="ICFGStat_8h_source.html#l00145">ICFGStat.h:145</a></div></div>
462
466
  <div class="ttc" id="classSVF_1_1ICFGStat_html_a3bd1a0b0b206baadea52bfa88e029dfa"><div class="ttname"><a href="classSVF_1_1ICFGStat.html#a3bd1a0b0b206baadea52bfa88e029dfa">SVF::ICFGStat::numOfRetEdges</a></div><div class="ttdeci">int numOfRetEdges</div><div class="ttdef"><b>Definition:</b> <a href="ICFGStat_8h_source.html#l00053">ICFGStat.h:53</a></div></div>
463
- <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#l00142">PTAStat.h:142</a></div></div>
467
+ <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>
464
468
  <div class="ttc" id="classSVF_1_1ICFGStat_html_ac9bfce40c058ed7ab178fe1f1818e9de"><div class="ttname"><a href="classSVF_1_1ICFGStat.html#ac9bfce40c058ed7ab178fe1f1818e9de">SVF::ICFGStat::numOfRetNodes</a></div><div class="ttdeci">int numOfRetNodes</div><div class="ttdef"><b>Definition:</b> <a href="ICFGStat_8h_source.html#l00046">ICFGStat.h:46</a></div></div>
465
469
  <div class="ttc" id="classSVF_1_1ICFGStat_html_ad88dbfaabae9b36f02a6e6e815d08e3e"><div class="ttname"><a href="classSVF_1_1ICFGStat.html#ad88dbfaabae9b36f02a6e6e815d08e3e">SVF::ICFGStat::numOfIntraNodes</a></div><div class="ttdeci">int numOfIntraNodes</div><div class="ttdef"><b>Definition:</b> <a href="ICFGStat_8h_source.html#l00049">ICFGStat.h:49</a></div></div>
466
470
  </div><!-- fragment -->
@@ -495,7 +499,7 @@ Additional Inherited Members</h2></td></tr>
495
499
  <div class="ttc" id="classSVF_1_1ICFGStat_html_a632f57db1f1e17f49289b5dfec048ef6"><div class="ttname"><a href="classSVF_1_1ICFGStat.html#a632f57db1f1e17f49289b5dfec048ef6">SVF::ICFGStat::countStat</a></div><div class="ttdeci">void countStat()</div><div class="ttdef"><b>Definition:</b> <a href="ICFGStat_8h_source.html#l00105">ICFGStat.h:105</a></div></div>
496
500
  <div class="ttc" id="classSVF_1_1ICFGStat_html_a7f8d88b6d8d4892e85006320b39c7dc4"><div class="ttname"><a href="classSVF_1_1ICFGStat.html#a7f8d88b6d8d4892e85006320b39c7dc4">SVF::ICFGStat::numOfCallNodes</a></div><div class="ttdeci">int numOfCallNodes</div><div class="ttdef"><b>Definition:</b> <a href="ICFGStat_8h_source.html#l00045">ICFGStat.h:45</a></div></div>
497
501
  <div class="ttc" id="classSVF_1_1ICFGStat_html_a2058c584a93cb6c90f165207dbdb01d6"><div class="ttname"><a href="classSVF_1_1ICFGStat.html#a2058c584a93cb6c90f165207dbdb01d6">SVF::ICFGStat::printStat</a></div><div class="ttdeci">void printStat(string statname)</div><div class="ttdef"><b>Definition:</b> <a href="ICFGStat_8h_source.html#l00145">ICFGStat.h:145</a></div></div>
498
- <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#l00142">PTAStat.h:142</a></div></div>
502
+ <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>
499
503
  </div><!-- fragment -->
500
504
  </div>
501
505
  </div>
@@ -526,7 +530,7 @@ Additional Inherited Members</h2></td></tr>
526
530
  <p>Reimplemented from <a class="el" href="classSVF_1_1PTAStat.html#aa5f455bfa79743b8e263431593d29bbf">SVF::PTAStat</a>.</p>
527
531
 
528
532
  <p class="definition">Definition at line <a class="el" href="ICFGStat_8h_source.html#l00145">145</a> of file <a class="el" href="ICFGStat_8h_source.html">ICFGStat.h</a>.</p>
529
- <div class="fragment"><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; {</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</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="l00149"></a><span class="lineno"> 149</span>&#160; std::cout.flags(std::ios::left);</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; <span class="keywordtype">unsigned</span> field_width = 20;</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</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="l00152"></a><span class="lineno"> 152</span>&#160; {</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; <span class="comment">// format out put with width 20 space</span></div><div class="line"><a name="l00154"></a><span class="lineno"> 154</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="l00155"></a><span class="lineno"> 155</span>&#160; }</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>.clear();</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; std::cout.flush();</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; }</div><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#l00142">PTAStat.h:142</a></div></div>
533
+ <div class="fragment"><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; {</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</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="l00149"></a><span class="lineno"> 149</span>&#160; std::cout.flags(std::ios::left);</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; <span class="keywordtype">unsigned</span> field_width = 20;</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</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="l00152"></a><span class="lineno"> 152</span>&#160; {</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; <span class="comment">// format out put with width 20 space</span></div><div class="line"><a name="l00154"></a><span class="lineno"> 154</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="l00155"></a><span class="lineno"> 155</span>&#160; }</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>.clear();</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; std::cout.flush();</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; }</div><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>
530
534
  </div><!-- fragment -->
531
535
  </div>
532
536
  </div>
@@ -477,7 +477,7 @@ Additional Inherited Members</h2></td></tr>
477
477
  <div class="ttc" id="classSVF_1_1IntraDisjointMRG_html_adb3ed119aee3f1bc62b9679ee095580d"><div class="ttname"><a href="classSVF_1_1IntraDisjointMRG.html#adb3ed119aee3f1bc62b9679ee095580d">SVF::IntraDisjointMRG::computeIntersections</a></div><div class="ttdeci">void computeIntersections(const NodeBS &amp;cpts, PointsToList &amp;inters)</div><div class="ttdoc">Compute intersections between cpts and computed cpts intersections before. </div><div class="ttdef"><b>Definition:</b> <a href="MemPartition_8cpp_source.html#l00152">MemPartition.cpp:152</a></div></div>
478
478
  <div class="ttc" id="classSVF_1_1MRGenerator_html_a1331e6f0941838064d77a5adaa5c6303"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#a1331e6f0941838064d77a5adaa5c6303">SVF::MRGenerator::getFunToPointsToList</a></div><div class="ttdeci">FunToPointsTosMap &amp; getFunToPointsToList()</div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00367">MemRegion.h:367</a></div></div>
479
479
  <div class="ttc" id="classSVF_1_1IntraDisjointMRG_html_a17d0ad0c62982d2b03121e935469e7b2"><div class="ttname"><a href="classSVF_1_1IntraDisjointMRG.html#a17d0ad0c62982d2b03121e935469e7b2">SVF::IntraDisjointMRG::createDisjointMR</a></div><div class="ttdeci">void createDisjointMR(const SVFFunction *func, const NodeBS &amp;cpts)</div><div class="ttdoc">Create disjoint memory region. </div><div class="ttdef"><b>Definition:</b> <a href="MemPartition_8cpp_source.html#l00232">MemPartition.cpp:232</a></div></div>
480
- <div class="ttc" id="namespaceSVF_html_a740396763e377643790c8b803ab3e4ea"><div class="ttname"><a href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">SVF::NodeBS</a></div><div class="ttdeci">llvm::SparseBitVector NodeBS</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00087">SVFBasicTypes.h:87</a></div></div>
480
+ <div class="ttc" id="namespaceSVF_html_a740396763e377643790c8b803ab3e4ea"><div class="ttname"><a href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">SVF::NodeBS</a></div><div class="ttdeci">llvm::SparseBitVector NodeBS</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00086">SVFBasicTypes.h:86</a></div></div>
481
481
  </div><!-- fragment -->
482
482
  </div>
483
483
  </div>
@@ -716,7 +716,7 @@ Additional Inherited Members</h2></td></tr>
716
716
 
717
717
  <p class="definition">Definition at line <a class="el" href="SVFG_8cpp_source.html#l00115">115</a> of file <a class="el" href="SVFG_8cpp_source.html">SVFG.cpp</a>.</p>
718
718
  <div class="fragment"><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; {</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; std::string str;</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <a class="code" href="namespaceSVF.html#a726981481ac082dcda3e4921416b65a0">raw_string_ostream</a> rawstr(str);</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1InterMSSAPHISVFGNode.html#a47d870a6c0f515139b1950e8985dc2d1">isFormalINPHI</a>())</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; rawstr &lt;&lt; <span class="stringliteral">&quot;FormalINPHISVFGNode ID: &quot;</span> &lt;&lt; <a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>() &lt;&lt; <span class="stringliteral">&quot; {fun: &quot;</span> &lt;&lt; <a class="code" href="classSVF_1_1InterMSSAPHISVFGNode.html#a242d8967d6fc10ba37e3f0103081ec01">getFun</a>()-&gt;<a class="code" href="classSVF_1_1SVFValue.html#adc15c1f7a77158142156fba7524e89c9">getName</a>() &lt;&lt; <span class="stringliteral">&quot;}&quot;</span>;</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; rawstr &lt;&lt; <span class="stringliteral">&quot;ActualOUTPHISVFGNode ID: &quot;</span> &lt;&lt; <a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>() &lt;&lt; <span class="stringliteral">&quot; at callsite: &quot;</span> &lt;&lt; *<a class="code" href="classSVF_1_1InterMSSAPHISVFGNode.html#a30ac16715dc9f4281eae2ab969bad348">getCallSite</a>()-&gt;<a class="code" href="classSVF_1_1CallBlockNode.html#ad3d50024efcfa94b1246c982b43aff2f">getCallSite</a>() &lt;&lt; <span class="stringliteral">&quot; {fun: &quot;</span> &lt;&lt; <a class="code" href="classSVF_1_1InterMSSAPHISVFGNode.html#a242d8967d6fc10ba37e3f0103081ec01">getFun</a>()-&gt;<a class="code" href="classSVF_1_1SVFValue.html#adc15c1f7a77158142156fba7524e89c9">getName</a>() &lt;&lt; <span class="stringliteral">&quot;}&quot;</span>;</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; rawstr &lt;&lt; <a class="code" href="classSVF_1_1MSSAPHISVFGNode.html#a1a07b3e8da65d17c16ed34a4f66b80dd">MSSAPHISVFGNode::toString</a>();</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <span class="keywordflow">return</span> rawstr.str();</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;}</div><div class="ttc" id="classSVF_1_1InterMSSAPHISVFGNode_html_a30ac16715dc9f4281eae2ab969bad348"><div class="ttname"><a href="classSVF_1_1InterMSSAPHISVFGNode.html#a30ac16715dc9f4281eae2ab969bad348">SVF::InterMSSAPHISVFGNode::getCallSite</a></div><div class="ttdeci">const CallBlockNode * getCallSite() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFGNode_8h_source.html#l00428">SVFGNode.h:428</a></div></div>
719
- <div class="ttc" id="classSVF_1_1SVFValue_html_adc15c1f7a77158142156fba7524e89c9"><div class="ttname"><a href="classSVF_1_1SVFValue.html#adc15c1f7a77158142156fba7524e89c9">SVF::SVFValue::getName</a></div><div class="ttdeci">const llvm::StringRef getName() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00226">SVFBasicTypes.h:226</a></div></div>
719
+ <div class="ttc" id="classSVF_1_1SVFValue_html_adc15c1f7a77158142156fba7524e89c9"><div class="ttname"><a href="classSVF_1_1SVFValue.html#adc15c1f7a77158142156fba7524e89c9">SVF::SVFValue::getName</a></div><div class="ttdeci">const llvm::StringRef getName() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00229">SVFBasicTypes.h:229</a></div></div>
720
720
  <div class="ttc" id="classSVF_1_1InterMSSAPHISVFGNode_html_a47d870a6c0f515139b1950e8985dc2d1"><div class="ttname"><a href="classSVF_1_1InterMSSAPHISVFGNode.html#a47d870a6c0f515139b1950e8985dc2d1">SVF::InterMSSAPHISVFGNode::isFormalINPHI</a></div><div class="ttdeci">bool isFormalINPHI() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFGNode_8h_source.html#l00412">SVFGNode.h:412</a></div></div>
721
721
  <div class="ttc" id="namespaceSVF_html_a726981481ac082dcda3e4921416b65a0"><div class="ttname"><a href="namespaceSVF.html#a726981481ac082dcda3e4921416b65a0">SVF::raw_string_ostream</a></div><div class="ttdeci">llvm::raw_string_ostream raw_string_ostream</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00100">BasicTypes.h:100</a></div></div>
722
722
  <div class="ttc" id="classSVF_1_1InterMSSAPHISVFGNode_html_a242d8967d6fc10ba37e3f0103081ec01"><div class="ttname"><a href="classSVF_1_1InterMSSAPHISVFGNode.html#a242d8967d6fc10ba37e3f0103081ec01">SVF::InterMSSAPHISVFGNode::getFun</a></div><div class="ttdeci">const SVFFunction * getFun() const</div><div class="ttdoc">Get the function of this SVFGNode. </div><div class="ttdef"><b>Definition:</b> <a href="SVFGNode_8h_source.html#l00422">SVFGNode.h:422</a></div></div>
@@ -442,7 +442,7 @@ Additional Inherited Members</h2></td></tr>
442
442
 
443
443
  <p class="definition">Definition at line <a class="el" href="ICFG_8cpp_source.html#l00080">80</a> of file <a class="el" href="ICFG_8cpp_source.html">ICFG.cpp</a>.</p>
444
444
  <div class="fragment"><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; {</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; std::string str;</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; <a class="code" href="namespaceSVF.html#a726981481ac082dcda3e4921416b65a0">raw_string_ostream</a> rawstr(str);</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; rawstr &lt;&lt; <span class="stringliteral">&quot;IntraBlockNode ID: &quot;</span> &lt;&lt; <a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>();</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; rawstr &lt;&lt; <a class="code" href="namespaceSVF_1_1SVFUtil.html#a7486fd8e5350879ed1cbd835c0d4e191">value2String</a>(<a class="code" href="classSVF_1_1IntraBlockNode.html#ac4d046229e38c7501d7aca638f13f07b">getInst</a>()) &lt;&lt; <span class="stringliteral">&quot; {fun: &quot;</span> &lt;&lt; <a class="code" href="classSVF_1_1ICFGNode.html#ae526280cca2d6cbb2868c80461bc16da">getFun</a>()-&gt;<a class="code" href="classSVF_1_1SVFValue.html#adc15c1f7a77158142156fba7524e89c9">getName</a>() &lt;&lt; <span class="stringliteral">&quot;}&quot;</span>;</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; <span class="keywordflow">return</span> rawstr.str();</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;}</div><div class="ttc" id="classSVF_1_1ICFGNode_html_ae526280cca2d6cbb2868c80461bc16da"><div class="ttname"><a href="classSVF_1_1ICFGNode.html#ae526280cca2d6cbb2868c80461bc16da">SVF::ICFGNode::getFun</a></div><div class="ttdeci">virtual const SVFFunction * getFun() const</div><div class="ttdoc">Return the function of this ICFGNode. </div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00080">ICFGNode.h:80</a></div></div>
445
- <div class="ttc" id="classSVF_1_1SVFValue_html_adc15c1f7a77158142156fba7524e89c9"><div class="ttname"><a href="classSVF_1_1SVFValue.html#adc15c1f7a77158142156fba7524e89c9">SVF::SVFValue::getName</a></div><div class="ttdeci">const llvm::StringRef getName() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00226">SVFBasicTypes.h:226</a></div></div>
445
+ <div class="ttc" id="classSVF_1_1SVFValue_html_adc15c1f7a77158142156fba7524e89c9"><div class="ttname"><a href="classSVF_1_1SVFValue.html#adc15c1f7a77158142156fba7524e89c9">SVF::SVFValue::getName</a></div><div class="ttdeci">const llvm::StringRef getName() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00229">SVFBasicTypes.h:229</a></div></div>
446
446
  <div class="ttc" id="classSVF_1_1IntraBlockNode_html_ac4d046229e38c7501d7aca638f13f07b"><div class="ttname"><a href="classSVF_1_1IntraBlockNode.html#ac4d046229e38c7501d7aca638f13f07b">SVF::IntraBlockNode::getInst</a></div><div class="ttdeci">const Instruction * getInst() const</div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00187">ICFGNode.h:187</a></div></div>
447
447
  <div class="ttc" id="namespaceSVF_html_a726981481ac082dcda3e4921416b65a0"><div class="ttname"><a href="namespaceSVF.html#a726981481ac082dcda3e4921416b65a0">SVF::raw_string_ostream</a></div><div class="ttdeci">llvm::raw_string_ostream raw_string_ostream</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00100">BasicTypes.h:100</a></div></div>
448
448
  <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a7486fd8e5350879ed1cbd835c0d4e191"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a7486fd8e5350879ed1cbd835c0d4e191">SVF::SVFUtil::value2String</a></div><div class="ttdeci">const std::string value2String(const Value *value)</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8cpp_source.html#l00387">SVFUtil.cpp:387</a></div></div>
@@ -483,7 +483,7 @@ Additional Inherited Members</h2></td></tr>
483
483
 
484
484
  <p class="definition">Definition at line <a class="el" href="MemPartition_8cpp_source.html#l00152">152</a> of file <a class="el" href="MemPartition_8cpp_source.html">MemPartition.cpp</a>.</p>
485
485
  <div class="fragment"><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; <span class="keywordflow">if</span> (inters.find(cpts) != inters.end())</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="comment">// Skip this cpts if it is already in the map.</span></div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; <span class="keywordflow">return</span>;</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; }</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (cpts.count() == 1)</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; {</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; <span class="comment">// If this cpts has only one element, it will not intersect with any cpts in inters,</span></div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; <span class="comment">// just add it into intersection set.</span></div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; inters.insert(cpts);</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; <span class="keywordflow">return</span>;</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; }</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; {</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; <a class="code" href="classSVF_1_1MRGenerator.html#a8b254a0c5063e25f297d1b00fb0b515e">PointsToList</a> toBeDeleted;</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; <a class="code" href="classSVF_1_1MRGenerator.html#a8b254a0c5063e25f297d1b00fb0b515e">PointsToList</a> newInters;</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160;</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; <a class="code" href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">NodeBS</a> cpts_copy = cpts; <span class="comment">// make a copy since cpts may be changed.</span></div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160;</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; <span class="comment">// check intersections with existing cpts in subSetMap</span></div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; <span class="keywordflow">for</span> (PointsToList::const_iterator interIt = inters.begin(), interEit = inters.end();</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; interIt != interEit; ++interIt)</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; {</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">NodeBS</a>&amp; inter = *interIt;</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160;</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; <span class="keywordflow">if</span> (cpts_copy.intersects(inter))</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; {</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; <span class="comment">// compute intersection between cpts and inter</span></div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; <a class="code" href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">NodeBS</a> new_inter = inter;</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; new_inter &amp;= cpts_copy;</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160;</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; <span class="comment">// remove old intersection and add new one if possible</span></div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; <span class="keywordflow">if</span> (new_inter != inter)</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; toBeDeleted.insert(inter);</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; newInters.insert(new_inter);</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; <span class="comment">// compute complement after intersection</span></div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; <a class="code" href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">NodeBS</a> complement = inter;</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; complement.intersectWithComplement(new_inter);</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; <span class="keywordflow">if</span> (complement.empty() == <span class="keyword">false</span>)</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; newInters.insert(complement);</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; }</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; }</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160;</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; cpts_copy.intersectWithComplement(new_inter);</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160;</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; <span class="keywordflow">if</span> (cpts_copy.empty())</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; }</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; }</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160;</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; <span class="comment">// remove old intersections</span></div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; <span class="keywordflow">for</span> (PointsToList::const_iterator it = toBeDeleted.begin(), eit = toBeDeleted.end();</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; it != eit; ++it)</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; {</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">NodeBS</a>&amp; temp_cpts = *it;</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; inters.erase(temp_cpts);</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;</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; <span class="comment">// add new intersections</span></div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; <span class="keywordflow">for</span> (PointsToList::const_iterator it = newInters.begin(), eit = newInters.end();</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; it != eit; ++it)</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; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">NodeBS</a>&amp; temp_cpts = *it;</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; inters.insert(temp_cpts);</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; }</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160;</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; <span class="comment">// add remaining set into inters</span></div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; <span class="keywordflow">if</span> (cpts_copy.empty() == <span class="keyword">false</span>)</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; inters.insert(cpts_copy);</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; }</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160;}</div><div class="ttc" id="classSVF_1_1MRGenerator_html_a8b254a0c5063e25f297d1b00fb0b515e"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#a8b254a0c5063e25f297d1b00fb0b515e">SVF::MRGenerator::PointsToList</a></div><div class="ttdeci">OrderedSet&lt; NodeBS, SVFUtil::equalNodeBS &gt; PointsToList</div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00139">MemRegion.h:139</a></div></div>
486
- <div class="ttc" id="namespaceSVF_html_a740396763e377643790c8b803ab3e4ea"><div class="ttname"><a href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">SVF::NodeBS</a></div><div class="ttdeci">llvm::SparseBitVector NodeBS</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00087">SVFBasicTypes.h:87</a></div></div>
486
+ <div class="ttc" id="namespaceSVF_html_a740396763e377643790c8b803ab3e4ea"><div class="ttname"><a href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">SVF::NodeBS</a></div><div class="ttdeci">llvm::SparseBitVector NodeBS</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00086">SVFBasicTypes.h:86</a></div></div>
487
487
  </div><!-- fragment -->
488
488
  </div>
489
489
  </div>
@@ -711,7 +711,7 @@ Additional Inherited Members</h2></td></tr>
711
711
  <p class="definition">Definition at line <a class="el" href="MemPartition_8cpp_source.html#l00241">241</a> of file <a class="el" href="MemPartition_8cpp_source.html">MemPartition.cpp</a>.</p>
712
712
  <div class="fragment"><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160;{</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; PointsToList::const_iterator it = inters.begin();</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; PointsToList::const_iterator eit = inters.end();</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; <span class="keywordflow">for</span> (; it != eit; ++it)</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; {</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">NodeBS</a>&amp; inter = *it;</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; <span class="keywordflow">if</span> (cpts.contains(inter))</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; {</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; <a class="code" href="classSVF_1_1MemRegion.html">MemRegion</a> mr(inter);</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; MRSet::iterator mit = <a class="code" href="classSVF_1_1MRGenerator.html#af94bd8155a23273aab2396334d905119">memRegSet</a>.find(&amp;mr);</div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(mit!=<a class="code" href="classSVF_1_1MRGenerator.html#af94bd8155a23273aab2396334d905119">memRegSet</a>.end() &amp;&amp; <span class="stringliteral">&quot;memory region not found!!&quot;</span>);</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; mrs.insert(*mit);</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; }</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;}</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>
713
713
  <div class="ttc" id="classSVF_1_1MRGenerator_html_af94bd8155a23273aab2396334d905119"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#af94bd8155a23273aab2396334d905119">SVF::MRGenerator::memRegSet</a></div><div class="ttdeci">MRSet memRegSet</div><div class="ttdoc">A set of All memory regions. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00274">MemRegion.h:274</a></div></div>
714
- <div class="ttc" id="namespaceSVF_html_a740396763e377643790c8b803ab3e4ea"><div class="ttname"><a href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">SVF::NodeBS</a></div><div class="ttdeci">llvm::SparseBitVector NodeBS</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00087">SVFBasicTypes.h:87</a></div></div>
714
+ <div class="ttc" id="namespaceSVF_html_a740396763e377643790c8b803ab3e4ea"><div class="ttname"><a href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">SVF::NodeBS</a></div><div class="ttdeci">llvm::SparseBitVector NodeBS</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00086">SVFBasicTypes.h:86</a></div></div>
715
715
  <div class="ttc" id="classSVF_1_1MemRegion_html"><div class="ttname"><a href="classSVF_1_1MemRegion.html">SVF::MemRegion</a></div><div class="ttdoc">Memory Region class. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00051">MemRegion.h:51</a></div></div>
716
716
  </div><!-- fragment -->
717
717
  </div>
@@ -812,7 +812,7 @@ Additional Inherited Members</h2></td></tr>
812
812
  <div class="ttc" id="classSVF_1_1MRGenerator_html_a8b254a0c5063e25f297d1b00fb0b515e"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#a8b254a0c5063e25f297d1b00fb0b515e">SVF::MRGenerator::PointsToList</a></div><div class="ttdeci">OrderedSet&lt; NodeBS, SVFUtil::equalNodeBS &gt; PointsToList</div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00139">MemRegion.h:139</a></div></div>
813
813
  <div class="ttc" id="classSVF_1_1IntraDisjointMRG_html_a17d0ad0c62982d2b03121e935469e7b2"><div class="ttname"><a href="classSVF_1_1IntraDisjointMRG.html#a17d0ad0c62982d2b03121e935469e7b2">SVF::IntraDisjointMRG::createDisjointMR</a></div><div class="ttdeci">void createDisjointMR(const SVFFunction *func, const NodeBS &amp;cpts)</div><div class="ttdoc">Create disjoint memory region. </div><div class="ttdef"><b>Definition:</b> <a href="MemPartition_8cpp_source.html#l00232">MemPartition.cpp:232</a></div></div>
814
814
  <div class="ttc" id="classSVF_1_1IntraDisjointMRG_html_aa8c653e895ff0889615cdbf349be7652"><div class="ttname"><a href="classSVF_1_1IntraDisjointMRG.html#aa8c653e895ff0889615cdbf349be7652">SVF::IntraDisjointMRG::getIntersList</a></div><div class="ttdeci">PointsToList &amp; getIntersList(const SVFFunction *func)</div><div class="ttdef"><b>Definition:</b> <a href="MemPartition_8h_source.html#l00120">MemPartition.h:120</a></div></div>
815
- <div class="ttc" id="namespaceSVF_html_a740396763e377643790c8b803ab3e4ea"><div class="ttname"><a href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">SVF::NodeBS</a></div><div class="ttdeci">llvm::SparseBitVector NodeBS</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00087">SVFBasicTypes.h:87</a></div></div>
815
+ <div class="ttc" id="namespaceSVF_html_a740396763e377643790c8b803ab3e4ea"><div class="ttname"><a href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">SVF::NodeBS</a></div><div class="ttdeci">llvm::SparseBitVector NodeBS</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00086">SVFBasicTypes.h:86</a></div></div>
816
816
  </div><!-- fragment -->
817
817
  </div>
818
818
  </div>
@@ -628,7 +628,7 @@ Additional Inherited Members</h2></td></tr>
628
628
 
629
629
  <p class="definition">Definition at line <a class="el" href="SVFG_8cpp_source.html#l00107">107</a> of file <a class="el" href="SVFG_8cpp_source.html">SVFG.cpp</a>.</p>
630
630
  <div class="fragment"><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; {</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; std::string str;</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; <a class="code" href="namespaceSVF.html#a726981481ac082dcda3e4921416b65a0">raw_string_ostream</a> rawstr(str);</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; rawstr &lt;&lt; <span class="stringliteral">&quot;IntraMSSAPHISVFGNode ID: &quot;</span> &lt;&lt; <a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>() &lt;&lt; <span class="stringliteral">&quot; {fun: &quot;</span> &lt;&lt; <a class="code" href="classSVF_1_1VFGNode.html#ab98e74dfd4756e70e3e3c5b7d5e5ae27">getFun</a>()-&gt;<a class="code" href="classSVF_1_1SVFValue.html#adc15c1f7a77158142156fba7524e89c9">getName</a>() &lt;&lt; <span class="stringliteral">&quot;}&quot;</span>;</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; rawstr &lt;&lt; <a class="code" href="classSVF_1_1MSSAPHISVFGNode.html#a1a07b3e8da65d17c16ed34a4f66b80dd">MSSAPHISVFGNode::toString</a>();</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <span class="keywordflow">return</span> rawstr.str();</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;}</div><div class="ttc" id="classSVF_1_1VFGNode_html_ab98e74dfd4756e70e3e3c5b7d5e5ae27"><div class="ttname"><a href="classSVF_1_1VFGNode.html#ab98e74dfd4756e70e3e3c5b7d5e5ae27">SVF::VFGNode::getFun</a></div><div class="ttdeci">virtual const SVFFunction * getFun() const</div><div class="ttdoc">Get the function of this SVFGNode. </div><div class="ttdef"><b>Definition:</b> <a href="VFGNode_8h_source.html#l00085">VFGNode.h:85</a></div></div>
631
- <div class="ttc" id="classSVF_1_1SVFValue_html_adc15c1f7a77158142156fba7524e89c9"><div class="ttname"><a href="classSVF_1_1SVFValue.html#adc15c1f7a77158142156fba7524e89c9">SVF::SVFValue::getName</a></div><div class="ttdeci">const llvm::StringRef getName() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00226">SVFBasicTypes.h:226</a></div></div>
631
+ <div class="ttc" id="classSVF_1_1SVFValue_html_adc15c1f7a77158142156fba7524e89c9"><div class="ttname"><a href="classSVF_1_1SVFValue.html#adc15c1f7a77158142156fba7524e89c9">SVF::SVFValue::getName</a></div><div class="ttdeci">const llvm::StringRef getName() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00229">SVFBasicTypes.h:229</a></div></div>
632
632
  <div class="ttc" id="namespaceSVF_html_a726981481ac082dcda3e4921416b65a0"><div class="ttname"><a href="namespaceSVF.html#a726981481ac082dcda3e4921416b65a0">SVF::raw_string_ostream</a></div><div class="ttdeci">llvm::raw_string_ostream raw_string_ostream</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00100">BasicTypes.h:100</a></div></div>
633
633
  <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>
634
634
  <div class="ttc" id="classSVF_1_1MSSAPHISVFGNode_html_a1a07b3e8da65d17c16ed34a4f66b80dd"><div class="ttname"><a href="classSVF_1_1MSSAPHISVFGNode.html#a1a07b3e8da65d17c16ed34a4f66b80dd">SVF::MSSAPHISVFGNode::toString</a></div><div class="ttdeci">virtual const std::string toString() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8cpp_source.html#l00091">SVFG.cpp:91</a></div></div>
@@ -435,12 +435,12 @@ Static Private Attributes</h2></td></tr>
435
435
  <p class="definition">Definition at line <a class="el" href="LLVMModule_8cpp_source.html#l00294">294</a> of file <a class="el" href="LLVMModule_8cpp_source.html">LLVMModule.cpp</a>.</p>
436
436
  <div class="fragment"><div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160;{</div><div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set&lt;Function*&gt;</a> funDecls, funDefs;</div><div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; <a class="code" href="namespaceSVF.html#a4f21e91ff8eaea5207afe5c60dbd78d7">OrderedSet&lt;string&gt;</a> declNames, defNames, intersectNames;</div><div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map&lt;string, Function*&gt;</a> NameToFunDefMapTy;</div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160; <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map&lt;string, Set&lt;Function*&gt;</a>&gt; NameToFunDeclsMapTy;</div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160;</div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160; <span class="keywordflow">for</span> (SVFModule::LLVMFunctionSetType::iterator it = <a class="code" href="classSVF_1_1LLVMModuleSet.html#a43832e93a42ae43d44b0cc160981678f">svfModule</a>-&gt;<a class="code" href="classSVF_1_1SVFModule.html#a648542aa5c4b487ad5aa12a39d15e951">llvmFunBegin</a>(),</div><div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160; eit = <a class="code" href="classSVF_1_1LLVMModuleSet.html#a43832e93a42ae43d44b0cc160981678f">svfModule</a>-&gt;<a class="code" href="classSVF_1_1SVFModule.html#af38d0f831967d6d8391a4c84e58d6519">llvmFunEnd</a>(); 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; <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a> *fun = *it;</div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160; <span class="keywordflow">if</span> (fun-&gt;isDeclaration())</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; funDecls.insert(fun);</div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160; declNames.insert(fun-&gt;getName().str());</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="keywordflow">else</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; funDefs.insert(fun);</div><div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160; defNames.insert(fun-&gt;getName().str());</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; }</div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160; <span class="comment">// Find the intersectNames</span></div><div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160; <a class="code" href="namespaceSVF.html#a4f21e91ff8eaea5207afe5c60dbd78d7">OrderedSet&lt;string&gt;::iterator</a> declIter, defIter;</div><div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160; declIter = declNames.begin();</div><div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160; defIter = defNames.begin();</div><div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160; <span class="keywordflow">while</span> (declIter != declNames.end() &amp;&amp; defIter != defNames.end())</div><div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160; {</div><div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160; <span class="keywordflow">if</span> (*declIter &lt; *defIter)</div><div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160; {</div><div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160; declIter++;</div><div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160; }</div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160; <span class="keywordflow">else</span></div><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; <span class="keywordflow">if</span> (!(*defIter &lt; *declIter))</div><div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160; {</div><div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160; intersectNames.insert(*declIter);</div><div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160; declIter++;</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; defIter++;</div><div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160; }</div><div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160; }</div><div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160;</div><div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160; NameToFunDefMapTy nameToFunDefMap;</div><div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set&lt;Function*&gt;::iterator</a> it = funDefs.begin(),</div><div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160; eit = funDefs.end(); it != eit; ++it)</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; <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a> *fdef = *it;</div><div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160; <span class="keywordtype">string</span> funName = fdef-&gt;getName().str();</div><div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160; <span class="keywordflow">if</span> (intersectNames.find(funName) == intersectNames.end())</div><div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160; <span class="keywordflow">continue</span>;</div><div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160; nameToFunDefMap[funName] = fdef;</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="l00350"></a><span class="lineno"> 350</span>&#160; NameToFunDeclsMapTy nameToFunDeclsMap;</div><div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set&lt;Function*&gt;::iterator</a> it = funDecls.begin(),</div><div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160; eit = funDecls.end(); it != eit; ++it)</div><div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160; {</div><div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160; <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a> *fdecl = *it;</div><div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160; <span class="keywordtype">string</span> funName = fdecl-&gt;getName().str();</div><div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160; <span class="keywordflow">if</span> (intersectNames.find(funName) == intersectNames.end())</div><div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160; <span class="keywordflow">continue</span>;</div><div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160; NameToFunDeclsMapTy::iterator mit = nameToFunDeclsMap.find(funName);</div><div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160; <span class="keywordflow">if</span> (mit == nameToFunDeclsMap.end())</div><div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160; {</div><div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160; <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set&lt;Function*&gt;</a> decls;</div><div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160; decls.insert(fdecl);</div><div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160; nameToFunDeclsMap[funName] = decls;</div><div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160; }</div><div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160; <span class="keywordflow">else</span></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; <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set&lt;Function*&gt;</a> &amp;decls = mit-&gt;second;</div><div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160; decls.insert(fdecl);</div><div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160; }</div><div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160; }</div><div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160;</div><div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set&lt;Function*&gt;::iterator</a> it = funDecls.begin(),</div><div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160; eit = funDecls.end(); it != eit; ++it)</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; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a> *fdecl = *it;</div><div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160; <span class="keywordtype">string</span> funName = fdecl-&gt;getName().str();</div><div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160; <span class="keywordflow">if</span> (intersectNames.find(funName) == intersectNames.end())</div><div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160; <span class="keywordflow">continue</span>;</div><div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160; NameToFunDefMapTy::iterator mit = nameToFunDefMap.find(funName);</div><div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160; <span class="keywordflow">if</span> (mit == nameToFunDefMap.end())</div><div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160; <span class="keywordflow">continue</span>;</div><div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160; <a class="code" href="classSVF_1_1LLVMModuleSet.html#aee80b29e5246e3eaa0e30e165346101f">FunDeclToDefMap</a>[<a class="code" href="classSVF_1_1LLVMModuleSet.html#a43832e93a42ae43d44b0cc160981678f">svfModule</a>-&gt;<a class="code" href="classSVF_1_1SVFModule.html#af969d7739f27c8242985656bafbabaeb">getSVFFunction</a>(fdecl)] = <a class="code" href="classSVF_1_1LLVMModuleSet.html#a43832e93a42ae43d44b0cc160981678f">svfModule</a>-&gt;<a class="code" href="classSVF_1_1SVFModule.html#af969d7739f27c8242985656bafbabaeb">getSVFFunction</a>(mit-&gt;second);</div><div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160; }</div><div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160;</div><div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set&lt;Function*&gt;::iterator</a> it = funDefs.begin(),</div><div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160; eit = funDefs.end(); it != eit; ++it)</div><div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160; {</div><div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a> *fdef = *it;</div><div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160; <span class="keywordtype">string</span> funName = fdef-&gt;<a class="code" href="classSVF_1_1SVFValue.html#adc15c1f7a77158142156fba7524e89c9">getName</a>().str();</div><div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160; <span class="keywordflow">if</span> (intersectNames.find(funName) == intersectNames.end())</div><div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160; <span class="keywordflow">continue</span>;</div><div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160; NameToFunDeclsMapTy::iterator mit = nameToFunDeclsMap.find(funName);</div><div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160; <span class="keywordflow">if</span> (mit == nameToFunDeclsMap.end())</div><div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160; <span class="keywordflow">continue</span>;</div><div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160; std::vector&lt;const SVFFunction*&gt;&amp; decls = <a class="code" href="classSVF_1_1LLVMModuleSet.html#a377cefaad4b688ab6edf94ba4abe00ee">FunDefToDeclsMap</a>[<a class="code" href="classSVF_1_1LLVMModuleSet.html#a43832e93a42ae43d44b0cc160981678f">svfModule</a>-&gt;<a class="code" href="classSVF_1_1SVFModule.html#af969d7739f27c8242985656bafbabaeb">getSVFFunction</a>(fdef)];</div><div class="line"><a name="l00398"></a><span class="lineno"> 398</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set&lt;Function*&gt;::iterator</a> sit = mit-&gt;second.begin(),</div><div class="line"><a name="l00399"></a><span class="lineno"> 399</span>&#160; seit = mit-&gt;second.end(); sit != seit; ++sit)</div><div class="line"><a name="l00400"></a><span class="lineno"> 400</span>&#160; {</div><div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160; decls.push_back(<a class="code" href="classSVF_1_1LLVMModuleSet.html#a43832e93a42ae43d44b0cc160981678f">svfModule</a>-&gt;<a class="code" href="classSVF_1_1SVFModule.html#af969d7739f27c8242985656bafbabaeb">getSVFFunction</a>(*sit));</div><div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160; }</div><div class="line"><a name="l00403"></a><span class="lineno"> 403</span>&#160; }</div><div class="line"><a name="l00404"></a><span class="lineno"> 404</span>&#160;}</div><div class="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>
437
437
  <div class="ttc" id="classSVF_1_1LLVMModuleSet_html_a377cefaad4b688ab6edf94ba4abe00ee"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#a377cefaad4b688ab6edf94ba4abe00ee">SVF::LLVMModuleSet::FunDefToDeclsMap</a></div><div class="ttdeci">FunDefToDeclsMapTy FunDefToDeclsMap</div><div class="ttdoc">Function definition to function declaration map. </div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8h_source.html#l00059">LLVMModule.h:59</a></div></div>
438
- <div class="ttc" id="namespaceSVF_html_a4f21e91ff8eaea5207afe5c60dbd78d7"><div class="ttname"><a href="namespaceSVF.html#a4f21e91ff8eaea5207afe5c60dbd78d7">SVF::OrderedSet</a></div><div class="ttdeci">std::set&lt; Key, Compare, Allocator &gt; OrderedSet</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00104">SVFBasicTypes.h:104</a></div></div>
438
+ <div class="ttc" id="namespaceSVF_html_a4f21e91ff8eaea5207afe5c60dbd78d7"><div class="ttname"><a href="namespaceSVF.html#a4f21e91ff8eaea5207afe5c60dbd78d7">SVF::OrderedSet</a></div><div class="ttdeci">std::set&lt; Key, Compare, Allocator &gt; OrderedSet</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00103">SVFBasicTypes.h:103</a></div></div>
439
439
  <div class="ttc" id="classSVF_1_1LLVMModuleSet_html_aee80b29e5246e3eaa0e30e165346101f"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#aee80b29e5246e3eaa0e30e165346101f">SVF::LLVMModuleSet::FunDeclToDefMap</a></div><div class="ttdeci">FunDeclToDefMapTy FunDeclToDefMap</div><div class="ttdoc">Function declaration to function definition map. </div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8h_source.html#l00057">LLVMModule.h:57</a></div></div>
440
- <div class="ttc" id="classSVF_1_1SVFValue_html_adc15c1f7a77158142156fba7524e89c9"><div class="ttname"><a href="classSVF_1_1SVFValue.html#adc15c1f7a77158142156fba7524e89c9">SVF::SVFValue::getName</a></div><div class="ttdeci">const llvm::StringRef getName() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00226">SVFBasicTypes.h:226</a></div></div>
441
- <div class="ttc" id="namespaceSVF_html_a8234d4b959abc9123993bcff4eee34c1"><div class="ttname"><a href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">SVF::Map</a></div><div class="ttdeci">std::unordered_map&lt; Key, Value, Hash, KeyEqual, Allocator &gt; Map</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00101">SVFBasicTypes.h:101</a></div></div>
440
+ <div class="ttc" id="classSVF_1_1SVFValue_html_adc15c1f7a77158142156fba7524e89c9"><div class="ttname"><a href="classSVF_1_1SVFValue.html#adc15c1f7a77158142156fba7524e89c9">SVF::SVFValue::getName</a></div><div class="ttdeci">const llvm::StringRef getName() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00229">SVFBasicTypes.h:229</a></div></div>
441
+ <div class="ttc" id="namespaceSVF_html_a8234d4b959abc9123993bcff4eee34c1"><div class="ttname"><a href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">SVF::Map</a></div><div class="ttdeci">std::unordered_map&lt; Key, Value, Hash, KeyEqual, Allocator &gt; Map</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00100">SVFBasicTypes.h:100</a></div></div>
442
442
  <div class="ttc" id="classSVF_1_1SVFModule_html_a648542aa5c4b487ad5aa12a39d15e951"><div class="ttname"><a href="classSVF_1_1SVFModule.html#a648542aa5c4b487ad5aa12a39d15e951">SVF::SVFModule::llvmFunBegin</a></div><div class="ttdeci">llvm_iterator llvmFunBegin()</div><div class="ttdef"><b>Definition:</b> <a href="SVFModule_8h_source.html#l00119">SVFModule.h:119</a></div></div>
443
- <div class="ttc" id="namespaceSVF_html_af739db846e47ba6b2fd15eaad31ab7fb"><div class="ttname"><a href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">SVF::Set</a></div><div class="ttdeci">std::unordered_set&lt; Key, Hash, KeyEqual, Allocator &gt; Set</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00096">SVFBasicTypes.h:96</a></div></div>
443
+ <div class="ttc" id="namespaceSVF_html_af739db846e47ba6b2fd15eaad31ab7fb"><div class="ttname"><a href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">SVF::Set</a></div><div class="ttdeci">std::unordered_set&lt; Key, Hash, KeyEqual, Allocator &gt; Set</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00095">SVFBasicTypes.h:95</a></div></div>
444
444
  <div class="ttc" id="namespaceSVF_html_a5faee14fa1dd41447bc73ac365fe33c1"><div class="ttname"><a href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">SVF::Function</a></div><div class="ttdeci">llvm::Function Function</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00076">BasicTypes.h:76</a></div></div>
445
445
  <div class="ttc" id="classSVF_1_1LLVMModuleSet_html_a43832e93a42ae43d44b0cc160981678f"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#a43832e93a42ae43d44b0cc160981678f">SVF::LLVMModuleSet::svfModule</a></div><div class="ttdeci">SVFModule * svfModule</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8h_source.html#l00051">LLVMModule.h:51</a></div></div>
446
446
  <div class="ttc" id="classSVF_1_1SVFModule_html_af969d7739f27c8242985656bafbabaeb"><div class="ttname"><a href="classSVF_1_1SVFModule.html#af969d7739f27c8242985656bafbabaeb">SVF::SVFModule::getSVFFunction</a></div><div class="ttdeci">const SVFFunction * getSVFFunction(const Function *fun) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFModule_8h_source.html#l00110">SVFModule.h:110</a></div></div>
@@ -472,8 +472,8 @@ Static Private Attributes</h2></td></tr>
472
472
 
473
473
  <p class="definition">Definition at line <a class="el" href="LLVMModule_8cpp_source.html#l00406">406</a> of file <a class="el" href="LLVMModule_8cpp_source.html">LLVMModule.cpp</a>.</p>
474
474
  <div class="fragment"><div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160;{</div><div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160; <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map&lt;string, Set&lt;GlobalVariable*&gt;</a>&gt; NameToGlobalsMapTy;</div><div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160; NameToGlobalsMapTy nameToGlobalsMap;</div><div class="line"><a name="l00410"></a><span class="lineno"> 410</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="classSVF_1_1SVFModule.html#a4cf1ca2e9f045a0520b0a8a6cd5993f2">SVFModule::global_iterator</a> it = <a class="code" href="classSVF_1_1LLVMModuleSet.html#a43832e93a42ae43d44b0cc160981678f">svfModule</a>-&gt;<a class="code" href="classSVF_1_1SVFModule.html#a4dc32c583d29d74d052eaa5665b0b70e">global_begin</a>(),</div><div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160; eit = <a class="code" href="classSVF_1_1LLVMModuleSet.html#a43832e93a42ae43d44b0cc160981678f">svfModule</a>-&gt;<a class="code" href="classSVF_1_1SVFModule.html#a8a34164634d6ad9a7b76175907c8c44b">global_end</a>(); it != eit; ++it)</div><div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160; {</div><div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160; <a class="code" href="namespaceSVF.html#a09f5fa3bc44bf53612a085e3a611cc4e">GlobalVariable</a> *global = *it;</div><div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160; <span class="keywordflow">if</span> (global-&gt;hasPrivateLinkage())</div><div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160; <span class="keywordflow">continue</span>;</div><div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160; <span class="keywordtype">string</span> name = global-&gt;getName().str();</div><div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160; NameToGlobalsMapTy::iterator mit = nameToGlobalsMap.find(name);</div><div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160; <span class="keywordflow">if</span> (mit == nameToGlobalsMap.end())</div><div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160; {</div><div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160; <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set&lt;GlobalVariable*&gt;</a> globals;</div><div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160; globals.insert(global);</div><div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160; nameToGlobalsMap[name] = globals;</div><div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160; }</div><div class="line"><a name="l00424"></a><span class="lineno"> 424</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00425"></a><span class="lineno"> 425</span>&#160; {</div><div class="line"><a name="l00426"></a><span class="lineno"> 426</span>&#160; <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set&lt;GlobalVariable*&gt;</a> &amp;globals = mit-&gt;second;</div><div class="line"><a name="l00427"></a><span class="lineno"> 427</span>&#160; globals.insert(global);</div><div class="line"><a name="l00428"></a><span class="lineno"> 428</span>&#160; }</div><div class="line"><a name="l00429"></a><span class="lineno"> 429</span>&#160; }</div><div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160;</div><div class="line"><a name="l00431"></a><span class="lineno"> 431</span>&#160; <span class="keywordflow">for</span> (NameToGlobalsMapTy::iterator it = nameToGlobalsMap.begin(),</div><div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160; eit = nameToGlobalsMap.end(); it != eit; ++it)</div><div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160; {</div><div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160; <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set&lt;GlobalVariable*&gt;</a> &amp;globals = it-&gt;second;</div><div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160; <a class="code" href="namespaceSVF.html#a09f5fa3bc44bf53612a085e3a611cc4e">GlobalVariable</a> *rep = *(globals.begin());</div><div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&#160; <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set&lt;GlobalVariable*&gt;::iterator</a> repit = globals.begin();</div><div class="line"><a name="l00437"></a><span class="lineno"> 437</span>&#160; <span class="keywordflow">while</span> (repit != globals.end())</div><div class="line"><a name="l00438"></a><span class="lineno"> 438</span>&#160; {</div><div class="line"><a name="l00439"></a><span class="lineno"> 439</span>&#160; <a class="code" href="namespaceSVF.html#a09f5fa3bc44bf53612a085e3a611cc4e">GlobalVariable</a> *cur = *repit;</div><div class="line"><a name="l00440"></a><span class="lineno"> 440</span>&#160; <span class="keywordflow">if</span> (cur-&gt;hasInitializer())</div><div class="line"><a name="l00441"></a><span class="lineno"> 441</span>&#160; {</div><div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160; rep = cur;</div><div class="line"><a name="l00443"></a><span class="lineno"> 443</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00444"></a><span class="lineno"> 444</span>&#160; }</div><div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160; repit++;</div><div class="line"><a name="l00446"></a><span class="lineno"> 446</span>&#160; }</div><div class="line"><a name="l00447"></a><span class="lineno"> 447</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set&lt;GlobalVariable*&gt;::iterator</a> sit = globals.begin(),</div><div class="line"><a name="l00448"></a><span class="lineno"> 448</span>&#160; seit = globals.end(); sit != seit; ++sit)</div><div class="line"><a name="l00449"></a><span class="lineno"> 449</span>&#160; {</div><div class="line"><a name="l00450"></a><span class="lineno"> 450</span>&#160; <a class="code" href="namespaceSVF.html#a09f5fa3bc44bf53612a085e3a611cc4e">GlobalVariable</a> *cur = *sit;</div><div class="line"><a name="l00451"></a><span class="lineno"> 451</span>&#160; <a class="code" href="classSVF_1_1LLVMModuleSet.html#ae2a1fa0b908cf372c50af90e62c4bf2b">GlobalDefToRepMap</a>[cur] = rep;</div><div class="line"><a name="l00452"></a><span class="lineno"> 452</span>&#160; }</div><div class="line"><a name="l00453"></a><span class="lineno"> 453</span>&#160; }</div><div class="line"><a name="l00454"></a><span class="lineno"> 454</span>&#160;}</div><div class="ttc" id="namespaceSVF_html_a09f5fa3bc44bf53612a085e3a611cc4e"><div class="ttname"><a href="namespaceSVF.html#a09f5fa3bc44bf53612a085e3a611cc4e">SVF::GlobalVariable</a></div><div class="ttdeci">llvm::GlobalVariable GlobalVariable</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00083">BasicTypes.h:83</a></div></div>
475
- <div class="ttc" id="namespaceSVF_html_a8234d4b959abc9123993bcff4eee34c1"><div class="ttname"><a href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">SVF::Map</a></div><div class="ttdeci">std::unordered_map&lt; Key, Value, Hash, KeyEqual, Allocator &gt; Map</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00101">SVFBasicTypes.h:101</a></div></div>
476
- <div class="ttc" id="namespaceSVF_html_af739db846e47ba6b2fd15eaad31ab7fb"><div class="ttname"><a href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">SVF::Set</a></div><div class="ttdeci">std::unordered_set&lt; Key, Hash, KeyEqual, Allocator &gt; Set</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00096">SVFBasicTypes.h:96</a></div></div>
475
+ <div class="ttc" id="namespaceSVF_html_a8234d4b959abc9123993bcff4eee34c1"><div class="ttname"><a href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">SVF::Map</a></div><div class="ttdeci">std::unordered_map&lt; Key, Value, Hash, KeyEqual, Allocator &gt; Map</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00100">SVFBasicTypes.h:100</a></div></div>
476
+ <div class="ttc" id="namespaceSVF_html_af739db846e47ba6b2fd15eaad31ab7fb"><div class="ttname"><a href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">SVF::Set</a></div><div class="ttdeci">std::unordered_set&lt; Key, Hash, KeyEqual, Allocator &gt; Set</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00095">SVFBasicTypes.h:95</a></div></div>
477
477
  <div class="ttc" id="classSVF_1_1SVFModule_html_a4cf1ca2e9f045a0520b0a8a6cd5993f2"><div class="ttname"><a href="classSVF_1_1SVFModule.html#a4cf1ca2e9f045a0520b0a8a6cd5993f2">SVF::SVFModule::global_iterator</a></div><div class="ttdeci">GlobalSetType::iterator global_iterator</div><div class="ttdef"><b>Definition:</b> <a href="SVFModule_8h_source.html#l00052">SVFModule.h:52</a></div></div>
478
478
  <div class="ttc" id="classSVF_1_1LLVMModuleSet_html_a43832e93a42ae43d44b0cc160981678f"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#a43832e93a42ae43d44b0cc160981678f">SVF::LLVMModuleSet::svfModule</a></div><div class="ttdeci">SVFModule * svfModule</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8h_source.html#l00051">LLVMModule.h:51</a></div></div>
479
479
  <div class="ttc" id="classSVF_1_1SVFModule_html_a4dc32c583d29d74d052eaa5665b0b70e"><div class="ttname"><a href="classSVF_1_1SVFModule.html#a4dc32c583d29d74d052eaa5665b0b70e">SVF::SVFModule::global_begin</a></div><div class="ttdeci">global_iterator global_begin()</div><div class="ttdef"><b>Definition:</b> <a href="SVFModule_8h_source.html#l00153">SVFModule.h:153</a></div></div>
@@ -1162,7 +1162,7 @@ Static Private Attributes</h2></td></tr>
1162
1162
  <div class="ttc" id="namespaceSVF_html_a09f5fa3bc44bf53612a085e3a611cc4e"><div class="ttname"><a href="namespaceSVF.html#a09f5fa3bc44bf53612a085e3a611cc4e">SVF::GlobalVariable</a></div><div class="ttdeci">llvm::GlobalVariable GlobalVariable</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00083">BasicTypes.h:83</a></div></div>
1163
1163
  <div class="ttc" id="namespaceSVF_html_a5faee14fa1dd41447bc73ac365fe33c1"><div class="ttname"><a href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">SVF::Function</a></div><div class="ttdeci">llvm::Function Function</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00076">BasicTypes.h:76</a></div></div>
1164
1164
  <div class="ttc" id="namespaceSVF_html_a0fd33072b099f61eaa642e94ed0c03fc"><div class="ttname"><a href="namespaceSVF.html#a0fd33072b099f61eaa642e94ed0c03fc">SVF::GlobalAlias</a></div><div class="ttdeci">llvm::GlobalAlias GlobalAlias</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00134">BasicTypes.h:134</a></div></div>
1165
- <div class="ttc" id="classSVF_1_1Options_html_a868fa5069b01b7a7dfbc5fb99cb76385"><div class="ttname"><a href="classSVF_1_1Options.html#a868fa5069b01b7a7dfbc5fb99cb76385">SVF::Options::SVFMain</a></div><div class="ttdeci">static const llvm::cl::opt&lt; bool &gt; SVFMain</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00203">Options.h:203</a></div></div>
1165
+ <div class="ttc" id="classSVF_1_1Options_html_a868fa5069b01b7a7dfbc5fb99cb76385"><div class="ttname"><a href="classSVF_1_1Options.html#a868fa5069b01b7a7dfbc5fb99cb76385">SVF::Options::SVFMain</a></div><div class="ttdeci">static const llvm::cl::opt&lt; bool &gt; SVFMain</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00209">Options.h:209</a></div></div>
1166
1166
  <div class="ttc" id="classSVF_1_1LLVMModuleSet_html_a43832e93a42ae43d44b0cc160981678f"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#a43832e93a42ae43d44b0cc160981678f">SVF::LLVMModuleSet::svfModule</a></div><div class="ttdeci">SVFModule * svfModule</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8h_source.html#l00051">LLVMModule.h:51</a></div></div>
1167
1167
  <div class="ttc" id="classSVF_1_1LLVMModuleSet_html_a8af6b911b728713f66f7c809d5c0fbf1"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#a8af6b911b728713f66f7c809d5c0fbf1">SVF::LLVMModuleSet::addSVFMain</a></div><div class="ttdeci">void addSVFMain()</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8cpp_source.html#l00228">LLVMModule.cpp:228</a></div></div>
1168
1168
  <div class="ttc" id="classSVF_1_1LLVMModuleSet_html_acde6292e719c80f93d3d1c344ab442cd"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#acde6292e719c80f93d3d1c344ab442cd">SVF::LLVMModuleSet::modules</a></div><div class="ttdeci">std::vector&lt; std::reference_wrapper&lt; Module &gt; &gt; modules</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8h_source.html#l00054">LLVMModule.h:54</a></div></div>
@@ -1196,7 +1196,7 @@ Static Private Attributes</h2></td></tr>
1196
1196
  </div><div class="memdoc">
1197
1197
 
1198
1198
  <p class="definition">Definition at line <a class="el" href="LLVMModule_8cpp_source.html#l00147">147</a> of file <a class="el" href="LLVMModule_8cpp_source.html">LLVMModule.cpp</a>.</p>
1199
- <div class="fragment"><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160;{</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160;</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; <span class="comment">// We read PAG from LLVM IR</span></div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1Options.html#aa5c4bc8e55a056adcd7a6f8946ad5f38">Options::Graphtxt</a>.getValue().<a class="code" href="classSVF_1_1LLVMModuleSet.html#ae19e38054c55d5822dfc83a12f12aa60">empty</a>())</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; <span class="keywordflow">if</span>(moduleNameVec.empty())</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; {</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#a85ab6b592fefc45a0674d3295e01638f">SVFUtil::outs</a>() &lt;&lt; <span class="stringliteral">&quot;no LLVM bc file is found!\n&quot;</span>;</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; <a class="code" href="util_8h.html#a43b6ea6be735bb828bc062c70cadeff8">exit</a>(0);</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; }</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; <span class="comment">//assert(!moduleNameVec.empty() &amp;&amp; &quot;no LLVM bc file is found!&quot;);</span></div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; }</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; <span class="comment">// We read PAG from a user-defined txt instead of parsing PAG from LLVM IR</span></div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; <a class="code" href="classSVF_1_1SVFModule.html#ac630e9f18a239ac6b3b88d05e64140c5">SVFModule::setPagFromTXT</a>(<a class="code" href="classSVF_1_1Options.html#aa5c4bc8e55a056adcd7a6f8946ad5f38">Options::Graphtxt</a>.getValue());</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; </div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; <span class="comment">//</span></div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; <span class="comment">// To avoid the following type bugs (t1 != t3) when parsing multiple modules,</span></div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; <span class="comment">// We should use only one LLVMContext object for multiple modules in the same thread.</span></div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; <span class="comment">// No such problem if only one module is processed by SVF.</span></div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; <span class="comment">// ------------------------------------------------------------------</span></div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; <span class="comment">// LLVMContext ctxa,ctxb;</span></div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; <span class="comment">// IntegerType * t1 = IntegerType::get(ctxa,32);</span></div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; <span class="comment">// IntegerType * t2 = IntegerType::get(ctxa,32);</span></div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; <span class="comment">// assert(t1 == t2);</span></div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; <span class="comment">// IntegerType * t3 = IntegerType::get(ctxb,32);</span></div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; <span class="comment">// IntegerType * t4 = IntegerType::get(ctxb,32);</span></div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; <span class="comment">// assert(t3 == t4);</span></div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; <span class="comment">// assert(t1 != t3);</span></div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; <span class="comment">// ------------------------------------------------------------------</span></div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; <span class="comment">//</span></div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; <a class="code" href="classSVF_1_1LLVMModuleSet.html#ad06a92bf8bc556de742e0ffdf79ffafe">cxts</a> = std::make_unique&lt;LLVMContext&gt;();</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160;</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> std::string&amp; moduleName : moduleNameVec) {</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; <a class="code" href="namespaceSVF.html#a86863d104a3930b3a806935d92ddbf30">SMDiagnostic</a> Err;</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; std::unique_ptr&lt;Module&gt; mod = parseIRFile(moduleName, Err, *<a class="code" href="classSVF_1_1LLVMModuleSet.html#ad06a92bf8bc556de742e0ffdf79ffafe">cxts</a>);</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; <span class="keywordflow">if</span> (mod == <span class="keyword">nullptr</span>)</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; {</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#af0f447732c67402037a86ea29006efc2">SVFUtil::errs</a>() &lt;&lt; <span class="stringliteral">&quot;load module: &quot;</span> &lt;&lt; moduleName &lt;&lt; <span class="stringliteral">&quot;failed!!\n\n&quot;</span>;</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; Err.print(<span class="stringliteral">&quot;SVFModuleLoader&quot;</span>, <a class="code" href="namespaceSVF_1_1SVFUtil.html#af0f447732c67402037a86ea29006efc2">SVFUtil::errs</a>());</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; <span class="keywordflow">continue</span>;</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_1LLVMModuleSet.html#acde6292e719c80f93d3d1c344ab442cd">modules</a>.emplace_back(*mod);</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; <a class="code" href="classSVF_1_1LLVMModuleSet.html#ae365189769640adb919a23c36978e5e2">owned_modules</a>.emplace_back(std::move(mod));</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="ttc" id="classSVF_1_1Options_html_aa5c4bc8e55a056adcd7a6f8946ad5f38"><div class="ttname"><a href="classSVF_1_1Options.html#aa5c4bc8e55a056adcd7a6f8946ad5f38">SVF::Options::Graphtxt</a></div><div class="ttdeci">static const llvm::cl::opt&lt; std::string &gt; Graphtxt</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00202">Options.h:202</a></div></div>
1199
+ <div class="fragment"><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160;{</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160;</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; <span class="comment">// We read PAG from LLVM IR</span></div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1Options.html#aa5c4bc8e55a056adcd7a6f8946ad5f38">Options::Graphtxt</a>.getValue().<a class="code" href="classSVF_1_1LLVMModuleSet.html#ae19e38054c55d5822dfc83a12f12aa60">empty</a>())</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; <span class="keywordflow">if</span>(moduleNameVec.empty())</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; {</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#a85ab6b592fefc45a0674d3295e01638f">SVFUtil::outs</a>() &lt;&lt; <span class="stringliteral">&quot;no LLVM bc file is found!\n&quot;</span>;</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; <a class="code" href="util_8h.html#a43b6ea6be735bb828bc062c70cadeff8">exit</a>(0);</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; }</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; <span class="comment">//assert(!moduleNameVec.empty() &amp;&amp; &quot;no LLVM bc file is found!&quot;);</span></div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; }</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; <span class="comment">// We read PAG from a user-defined txt instead of parsing PAG from LLVM IR</span></div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; <a class="code" href="classSVF_1_1SVFModule.html#ac630e9f18a239ac6b3b88d05e64140c5">SVFModule::setPagFromTXT</a>(<a class="code" href="classSVF_1_1Options.html#aa5c4bc8e55a056adcd7a6f8946ad5f38">Options::Graphtxt</a>.getValue());</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; </div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; <span class="comment">//</span></div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; <span class="comment">// To avoid the following type bugs (t1 != t3) when parsing multiple modules,</span></div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; <span class="comment">// We should use only one LLVMContext object for multiple modules in the same thread.</span></div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; <span class="comment">// No such problem if only one module is processed by SVF.</span></div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; <span class="comment">// ------------------------------------------------------------------</span></div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; <span class="comment">// LLVMContext ctxa,ctxb;</span></div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; <span class="comment">// IntegerType * t1 = IntegerType::get(ctxa,32);</span></div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; <span class="comment">// IntegerType * t2 = IntegerType::get(ctxa,32);</span></div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; <span class="comment">// assert(t1 == t2);</span></div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; <span class="comment">// IntegerType * t3 = IntegerType::get(ctxb,32);</span></div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; <span class="comment">// IntegerType * t4 = IntegerType::get(ctxb,32);</span></div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; <span class="comment">// assert(t3 == t4);</span></div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; <span class="comment">// assert(t1 != t3);</span></div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; <span class="comment">// ------------------------------------------------------------------</span></div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; <span class="comment">//</span></div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; <a class="code" href="classSVF_1_1LLVMModuleSet.html#ad06a92bf8bc556de742e0ffdf79ffafe">cxts</a> = std::make_unique&lt;LLVMContext&gt;();</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160;</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> std::string&amp; moduleName : moduleNameVec) {</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; <a class="code" href="namespaceSVF.html#a86863d104a3930b3a806935d92ddbf30">SMDiagnostic</a> Err;</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; std::unique_ptr&lt;Module&gt; mod = parseIRFile(moduleName, Err, *<a class="code" href="classSVF_1_1LLVMModuleSet.html#ad06a92bf8bc556de742e0ffdf79ffafe">cxts</a>);</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; <span class="keywordflow">if</span> (mod == <span class="keyword">nullptr</span>)</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; {</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#af0f447732c67402037a86ea29006efc2">SVFUtil::errs</a>() &lt;&lt; <span class="stringliteral">&quot;load module: &quot;</span> &lt;&lt; moduleName &lt;&lt; <span class="stringliteral">&quot;failed!!\n\n&quot;</span>;</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; Err.print(<span class="stringliteral">&quot;SVFModuleLoader&quot;</span>, <a class="code" href="namespaceSVF_1_1SVFUtil.html#af0f447732c67402037a86ea29006efc2">SVFUtil::errs</a>());</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; <span class="keywordflow">continue</span>;</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_1LLVMModuleSet.html#acde6292e719c80f93d3d1c344ab442cd">modules</a>.emplace_back(*mod);</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; <a class="code" href="classSVF_1_1LLVMModuleSet.html#ae365189769640adb919a23c36978e5e2">owned_modules</a>.emplace_back(std::move(mod));</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="ttc" id="classSVF_1_1Options_html_aa5c4bc8e55a056adcd7a6f8946ad5f38"><div class="ttname"><a href="classSVF_1_1Options.html#aa5c4bc8e55a056adcd7a6f8946ad5f38">SVF::Options::Graphtxt</a></div><div class="ttdeci">static const llvm::cl::opt&lt; std::string &gt; Graphtxt</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00208">Options.h:208</a></div></div>
1200
1200
  <div class="ttc" id="util_8h_html_a43b6ea6be735bb828bc062c70cadeff8"><div class="ttname"><a href="util_8h.html#a43b6ea6be735bb828bc062c70cadeff8">exit</a></div><div class="ttdeci">VOID_OR_INT exit()</div></div>
1201
1201
  <div class="ttc" id="namespaceSVF_html_a86863d104a3930b3a806935d92ddbf30"><div class="ttname"><a href="namespaceSVF.html#a86863d104a3930b3a806935d92ddbf30">SVF::SMDiagnostic</a></div><div class="ttdeci">llvm::SMDiagnostic SMDiagnostic</div><div class="ttdoc">LLVM Basic classes. </div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00069">BasicTypes.h:69</a></div></div>
1202
1202
  <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_af0f447732c67402037a86ea29006efc2"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#af0f447732c67402037a86ea29006efc2">SVF::SVFUtil::errs</a></div><div class="ttdeci">raw_ostream &amp; errs()</div><div class="ttdoc">Overwrite llvm::errs() </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00055">SVFUtil.h:55</a></div></div>
@@ -804,7 +804,7 @@ Additional Inherited Members</h2></td></tr>
804
804
  <div class="ttc" id="classSVF_1_1SrcSnkDDA_html_a19ab6f6df2a67b294268cfe7f4287fd7"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#a19ab6f6df2a67b294268cfe7f4287fd7">SVF::SrcSnkDDA::isSomePathReachable</a></div><div class="ttdeci">virtual bool isSomePathReachable()</div><div class="ttdoc">Whether it is some path reachable from a source. </div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8h_source.html#l00297">SrcSnkDDA.h:297</a></div></div>
805
805
  <div class="ttc" id="classSVF_1_1LeakChecker_html_a93486083c0f186b91e655cbef2382634"><div class="ttname"><a href="classSVF_1_1LeakChecker.html#a93486083c0f186b91e655cbef2382634">SVF::LeakChecker::reportPartialLeak</a></div><div class="ttdeci">void reportPartialLeak(const SVFGNode *src)</div><div class="ttdef"><b>Definition:</b> <a href="LeakChecker_8cpp_source.html#l00146">LeakChecker.cpp:146</a></div></div>
806
806
  <div class="ttc" id="classSVF_1_1LeakChecker_html_aaf5d098e0d08929a108fb59bff46e424"><div class="ttname"><a href="classSVF_1_1LeakChecker.html#aaf5d098e0d08929a108fb59bff46e424">SVF::LeakChecker::testsValidation</a></div><div class="ttdeci">void testsValidation(const ProgSlice *slice)</div><div class="ttdoc">Validate test cases for regression test purpose. </div><div class="ttdef"><b>Definition:</b> <a href="LeakChecker_8cpp_source.html#l00175">LeakChecker.cpp:175</a></div></div>
807
- <div class="ttc" id="classSVF_1_1Options_html_aec491143ded97649da1ed61b8fda796c"><div class="ttname"><a href="classSVF_1_1Options.html#aec491143ded97649da1ed61b8fda796c">SVF::Options::ValidateTests</a></div><div class="ttdeci">static const llvm::cl::opt&lt; bool &gt; ValidateTests</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00189">Options.h:189</a></div></div>
807
+ <div class="ttc" id="classSVF_1_1Options_html_aec491143ded97649da1ed61b8fda796c"><div class="ttname"><a href="classSVF_1_1Options.html#aec491143ded97649da1ed61b8fda796c">SVF::Options::ValidateTests</a></div><div class="ttdeci">static const llvm::cl::opt&lt; bool &gt; ValidateTests</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00195">Options.h:195</a></div></div>
808
808
  <div class="ttc" id="classSVF_1_1SrcSnkDDA_html_a6ae0d47bac09163e90b8b2e773ad69f0"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#a6ae0d47bac09163e90b8b2e773ad69f0">SVF::SrcSnkDDA::isAllPathReachable</a></div><div class="ttdeci">virtual bool isAllPathReachable()</div><div class="ttdoc">Whether it is all path reachable from a source. </div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8h_source.html#l00292">SrcSnkDDA.h:292</a></div></div>
809
809
  <div class="ttc" id="classSVF_1_1ProgSlice_html_ab1fdec8d39c9890324718607d7464eab"><div class="ttname"><a href="classSVF_1_1ProgSlice.html#ab1fdec8d39c9890324718607d7464eab">SVF::ProgSlice::annotatePaths</a></div><div class="ttdeci">void annotatePaths()</div><div class="ttdoc">Annotate program according to final condition. </div><div class="ttdef"><b>Definition:</b> <a href="ProgSlice_8cpp_source.html#l00185">ProgSlice.cpp:185</a></div></div>
810
810
  </div><!-- fragment -->
@@ -992,7 +992,7 @@ Additional Inherited Members</h2></td></tr>
992
992
  <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_af0f447732c67402037a86ea29006efc2"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#af0f447732c67402037a86ea29006efc2">SVF::SVFUtil::errs</a></div><div class="ttdeci">raw_ostream &amp; errs()</div><div class="ttdoc">Overwrite llvm::errs() </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00055">SVFUtil.h:55</a></div></div>
993
993
  <div class="ttc" id="classSVF_1_1VFGNode_html_ab98e74dfd4756e70e3e3c5b7d5e5ae27"><div class="ttname"><a href="classSVF_1_1VFGNode.html#ab98e74dfd4756e70e3e3c5b7d5e5ae27">SVF::VFGNode::getFun</a></div><div class="ttdeci">virtual const SVFFunction * getFun() const</div><div class="ttdoc">Get the function of this SVFGNode. </div><div class="ttdef"><b>Definition:</b> <a href="VFGNode_8h_source.html#l00085">VFGNode.h:85</a></div></div>
994
994
  <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a28c0ede7e4765d2a686fc8ae0f5641a4"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a28c0ede7e4765d2a686fc8ae0f5641a4">SVF::SVFUtil::getSourceLoc</a></div><div class="ttdeci">std::string getSourceLoc(const Value *val)</div><div class="ttdoc">Return source code including line number and file name from debug information. </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8cpp_source.html#l00269">SVFUtil.cpp:269</a></div></div>
995
- <div class="ttc" id="classSVF_1_1SVFValue_html_adc15c1f7a77158142156fba7524e89c9"><div class="ttname"><a href="classSVF_1_1SVFValue.html#adc15c1f7a77158142156fba7524e89c9">SVF::SVFValue::getName</a></div><div class="ttdeci">const llvm::StringRef getName() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00226">SVFBasicTypes.h:226</a></div></div>
995
+ <div class="ttc" id="classSVF_1_1SVFValue_html_adc15c1f7a77158142156fba7524e89c9"><div class="ttname"><a href="classSVF_1_1SVFValue.html#adc15c1f7a77158142156fba7524e89c9">SVF::SVFValue::getName</a></div><div class="ttdeci">const llvm::StringRef getName() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00229">SVFBasicTypes.h:229</a></div></div>
996
996
  <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a6a55f1f8598998a3ffbbc67d32eaf8c4"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a6a55f1f8598998a3ffbbc67d32eaf8c4">SVF::SVFUtil::sucMsg</a></div><div class="ttdeci">std::string sucMsg(std::string msg)</div><div class="ttdoc">Returns successful message by converting a string into green string output. </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8cpp_source.html#l00056">SVFUtil.cpp:56</a></div></div>
997
997
  <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a077caa1b10ab84d101d79fc7ea50db2d"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a077caa1b10ab84d101d79fc7ea50db2d">SVF::SVFUtil::writeWrnMsg</a></div><div class="ttdeci">void writeWrnMsg(std::string msg)</div><div class="ttdoc">Writes a message run through wrnMsg. </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8cpp_source.html#l00069">SVFUtil.cpp:69</a></div></div>
998
998
  <div class="ttc" id="classSVF_1_1SrcSnkDDA_html_a19ab6f6df2a67b294268cfe7f4287fd7"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#a19ab6f6df2a67b294268cfe7f4287fd7">SVF::SrcSnkDDA::isSomePathReachable</a></div><div class="ttdeci">virtual bool isSomePathReachable()</div><div class="ttdoc">Whether it is some path reachable from a source. </div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8h_source.html#l00297">SrcSnkDDA.h:297</a></div></div>
@@ -1045,7 +1045,7 @@ Additional Inherited Members</h2></td></tr>
1045
1045
  <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_af0f447732c67402037a86ea29006efc2"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#af0f447732c67402037a86ea29006efc2">SVF::SVFUtil::errs</a></div><div class="ttdeci">raw_ostream &amp; errs()</div><div class="ttdoc">Overwrite llvm::errs() </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00055">SVFUtil.h:55</a></div></div>
1046
1046
  <div class="ttc" id="classSVF_1_1VFGNode_html_ab98e74dfd4756e70e3e3c5b7d5e5ae27"><div class="ttname"><a href="classSVF_1_1VFGNode.html#ab98e74dfd4756e70e3e3c5b7d5e5ae27">SVF::VFGNode::getFun</a></div><div class="ttdeci">virtual const SVFFunction * getFun() const</div><div class="ttdoc">Get the function of this SVFGNode. </div><div class="ttdef"><b>Definition:</b> <a href="VFGNode_8h_source.html#l00085">VFGNode.h:85</a></div></div>
1047
1047
  <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a28c0ede7e4765d2a686fc8ae0f5641a4"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a28c0ede7e4765d2a686fc8ae0f5641a4">SVF::SVFUtil::getSourceLoc</a></div><div class="ttdeci">std::string getSourceLoc(const Value *val)</div><div class="ttdoc">Return source code including line number and file name from debug information. </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8cpp_source.html#l00269">SVFUtil.cpp:269</a></div></div>
1048
- <div class="ttc" id="classSVF_1_1SVFValue_html_adc15c1f7a77158142156fba7524e89c9"><div class="ttname"><a href="classSVF_1_1SVFValue.html#adc15c1f7a77158142156fba7524e89c9">SVF::SVFValue::getName</a></div><div class="ttdeci">const llvm::StringRef getName() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00226">SVFBasicTypes.h:226</a></div></div>
1048
+ <div class="ttc" id="classSVF_1_1SVFValue_html_adc15c1f7a77158142156fba7524e89c9"><div class="ttname"><a href="classSVF_1_1SVFValue.html#adc15c1f7a77158142156fba7524e89c9">SVF::SVFValue::getName</a></div><div class="ttdeci">const llvm::StringRef getName() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00229">SVFBasicTypes.h:229</a></div></div>
1049
1049
  <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a6a55f1f8598998a3ffbbc67d32eaf8c4"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a6a55f1f8598998a3ffbbc67d32eaf8c4">SVF::SVFUtil::sucMsg</a></div><div class="ttdeci">std::string sucMsg(std::string msg)</div><div class="ttdoc">Returns successful message by converting a string into green string output. </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8cpp_source.html#l00056">SVFUtil.cpp:56</a></div></div>
1050
1050
  <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a077caa1b10ab84d101d79fc7ea50db2d"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a077caa1b10ab84d101d79fc7ea50db2d">SVF::SVFUtil::writeWrnMsg</a></div><div class="ttdeci">void writeWrnMsg(std::string msg)</div><div class="ttdoc">Writes a message run through wrnMsg. </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8cpp_source.html#l00069">SVFUtil.cpp:69</a></div></div>
1051
1051
  <div class="ttc" id="classSVF_1_1SrcSnkDDA_html_a19ab6f6df2a67b294268cfe7f4287fd7"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#a19ab6f6df2a67b294268cfe7f4287fd7">SVF::SrcSnkDDA::isSomePathReachable</a></div><div class="ttdeci">virtual bool isSomePathReachable()</div><div class="ttdoc">Whether it is some path reachable from a source. </div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8h_source.html#l00297">SrcSnkDDA.h:297</a></div></div>
@@ -472,7 +472,7 @@ Additional Inherited Members</h2></td></tr>
472
472
  <div class="fragment"><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; std::string str;</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; <a class="code" href="namespaceSVF.html#a726981481ac082dcda3e4921416b65a0">raw_string_ostream</a> rawstr(str);</div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; rawstr &lt;&lt; <span class="stringliteral">&quot;LoadPE: [&quot;</span> &lt;&lt; <a class="code" href="classSVF_1_1GenericEdge.html#ad9edb45e74ae675d9da82f5acf02d56e">getDstID</a>() &lt;&lt; <span class="stringliteral">&quot;&lt;--&quot;</span> &lt;&lt; <a class="code" href="classSVF_1_1GenericEdge.html#ae6792506a0150a9400d635eceab7f9e7">getSrcID</a>() &lt;&lt; <span class="stringliteral">&quot;]\t&quot;</span>;</div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1Options.html#a8eba08052f7af57b762155a58844480c">Options::PAGDotGraphShorter</a>) {</div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; rawstr &lt;&lt; <span class="stringliteral">&quot;\n&quot;</span>;</div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160; }</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160; rawstr &lt;&lt; <a class="code" href="namespaceSVF_1_1SVFUtil.html#a7486fd8e5350879ed1cbd835c0d4e191">value2String</a>(<a class="code" href="classSVF_1_1PAGEdge.html#aa0adbe8548303302425bc6b276445f30">getValue</a>());</div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; <span class="keywordflow">return</span> rawstr.str();</div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160;}</div><div class="ttc" id="classSVF_1_1PAGEdge_html_aa0adbe8548303302425bc6b276445f30"><div class="ttname"><a href="classSVF_1_1PAGEdge.html#aa0adbe8548303302425bc6b276445f30">SVF::PAGEdge::getValue</a></div><div class="ttdeci">const Value * getValue() const</div><div class="ttdef"><b>Definition:</b> <a href="PAGEdge_8h_source.html#l00116">PAGEdge.h:116</a></div></div>
473
473
  <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>
474
474
  <div class="ttc" id="classSVF_1_1GenericEdge_html_ae6792506a0150a9400d635eceab7f9e7"><div class="ttname"><a href="classSVF_1_1GenericEdge.html#ae6792506a0150a9400d635eceab7f9e7">SVF::GenericEdge::getSrcID</a></div><div class="ttdeci">NodeID getSrcID() const</div><div class="ttdoc">get methods of the components </div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00073">GenericGraph.h:73</a></div></div>
475
- <div class="ttc" id="classSVF_1_1Options_html_a8eba08052f7af57b762155a58844480c"><div class="ttname"><a href="classSVF_1_1Options.html#a8eba08052f7af57b762155a58844480c">SVF::Options::PAGDotGraphShorter</a></div><div class="ttdeci">static const llvm::cl::opt&lt; bool &gt; PAGDotGraphShorter</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00128">Options.h:128</a></div></div>
475
+ <div class="ttc" id="classSVF_1_1Options_html_a8eba08052f7af57b762155a58844480c"><div class="ttname"><a href="classSVF_1_1Options.html#a8eba08052f7af57b762155a58844480c">SVF::Options::PAGDotGraphShorter</a></div><div class="ttdeci">static const llvm::cl::opt&lt; bool &gt; PAGDotGraphShorter</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00134">Options.h:134</a></div></div>
476
476
  <div class="ttc" id="namespaceSVF_html_a726981481ac082dcda3e4921416b65a0"><div class="ttname"><a href="namespaceSVF.html#a726981481ac082dcda3e4921416b65a0">SVF::raw_string_ostream</a></div><div class="ttdeci">llvm::raw_string_ostream raw_string_ostream</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00100">BasicTypes.h:100</a></div></div>
477
477
  <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a7486fd8e5350879ed1cbd835c0d4e191"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a7486fd8e5350879ed1cbd835c0d4e191">SVF::SVFUtil::value2String</a></div><div class="ttdeci">const std::string value2String(const Value *value)</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8cpp_source.html#l00387">SVFUtil.cpp:387</a></div></div>
478
478
  </div><!-- fragment -->