svf-tools 1.0.304 → 1.0.308

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 (449) 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 +5 -5
  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 +10 -10
  11. package/SVF-doxygen/html/html/BasicTypes_8h_source.html +8 -8
  12. package/SVF-doxygen/html/html/CHG_8cpp_source.html +6 -6
  13. package/SVF-doxygen/html/html/CHG_8h_source.html +2 -2
  14. package/SVF-doxygen/html/html/CSC_8cpp_source.html +2 -2
  15. package/SVF-doxygen/html/html/CSC_8h_source.html +3 -3
  16. package/SVF-doxygen/html/html/CommonCHG_8h_source.html +1 -1
  17. package/SVF-doxygen/html/html/ConditionalPT_8h_source.html +2 -2
  18. package/SVF-doxygen/html/html/Conditions_8cpp_source.html +2 -2
  19. package/SVF-doxygen/html/html/Conditions_8h_source.html +2 -2
  20. package/SVF-doxygen/html/html/ConsGNode_8h_source.html +1 -1
  21. package/SVF-doxygen/html/html/ConsG_8cpp_source.html +2 -2
  22. package/SVF-doxygen/html/html/ConsG_8h_source.html +2 -2
  23. package/SVF-doxygen/html/html/ContextDDA_8cpp_source.html +10 -10
  24. package/SVF-doxygen/html/html/ContextDDA_8h_source.html +7 -7
  25. package/SVF-doxygen/html/html/CoreBitVector_8h.html +2 -0
  26. package/SVF-doxygen/html/html/CoreBitVector_8h_source.html +3 -1
  27. package/SVF-doxygen/html/html/CxtStmt_8h_source.html +1 -1
  28. package/SVF-doxygen/html/html/DCHG_8cpp_source.html +5 -5
  29. package/SVF-doxygen/html/html/DCHG_8h_source.html +3 -3
  30. package/SVF-doxygen/html/html/DDAClient_8cpp_source.html +5 -5
  31. package/SVF-doxygen/html/html/DDAClient_8h_source.html +3 -3
  32. package/SVF-doxygen/html/html/DDAPass_8cpp_source.html +11 -11
  33. package/SVF-doxygen/html/html/DDAPass_8h_source.html +1 -1
  34. package/SVF-doxygen/html/html/DDAStat_8cpp_source.html +5 -5
  35. package/SVF-doxygen/html/html/DDAStat_8h_source.html +1 -1
  36. package/SVF-doxygen/html/html/DDAVFSolver_8h_source.html +7 -7
  37. package/SVF-doxygen/html/html/DPItem_8h_source.html +1 -1
  38. package/SVF-doxygen/html/html/DataFlowUtil_8h_source.html +1 -1
  39. package/SVF-doxygen/html/html/ExtAPI_8h_source.html +2 -2
  40. package/SVF-doxygen/html/html/ExternalPAG_8cpp_source.html +3 -3
  41. package/SVF-doxygen/html/html/ExternalPAG_8h_source.html +3 -3
  42. package/SVF-doxygen/html/html/FSMPTA_8cpp_source.html +8 -8
  43. package/SVF-doxygen/html/html/FSMPTA_8h_source.html +3 -3
  44. package/SVF-doxygen/html/html/FlowDDA_8cpp_source.html +5 -5
  45. package/SVF-doxygen/html/html/FlowDDA_8h_source.html +4 -4
  46. package/SVF-doxygen/html/html/FlowSensitiveStat_8cpp_source.html +5 -5
  47. package/SVF-doxygen/html/html/FlowSensitiveTBHC_8cpp_source.html +8 -8
  48. package/SVF-doxygen/html/html/FlowSensitiveTBHC_8h_source.html +3 -3
  49. package/SVF-doxygen/html/html/FlowSensitive_8cpp_source.html +14 -14
  50. package/SVF-doxygen/html/html/FlowSensitive_8h_source.html +5 -5
  51. package/SVF-doxygen/html/html/GenericGraph_8h_source.html +2 -2
  52. package/SVF-doxygen/html/html/ICFGBuilder_8h_source.html +1 -1
  53. package/SVF-doxygen/html/html/ICFGNode_8h_source.html +1 -1
  54. package/SVF-doxygen/html/html/ICFGStat_8h_source.html +1 -1
  55. package/SVF-doxygen/html/html/ICFG_8cpp_source.html +4 -4
  56. package/SVF-doxygen/html/html/ICFG_8h_source.html +1 -1
  57. package/SVF-doxygen/html/html/LLVMModule_8cpp_source.html +3 -3
  58. package/SVF-doxygen/html/html/LLVMModule_8h_source.html +1 -1
  59. package/SVF-doxygen/html/html/LLVMUtil_8cpp_source.html +1 -1
  60. package/SVF-doxygen/html/html/LLVMUtil_8h_source.html +1 -1
  61. package/SVF-doxygen/html/html/LeakChecker_8cpp_source.html +2 -2
  62. package/SVF-doxygen/html/html/LeakChecker_8h_source.html +2 -2
  63. package/SVF-doxygen/html/html/LocationSet_8cpp_source.html +3 -3
  64. package/SVF-doxygen/html/html/LocationSet_8h_source.html +2 -2
  65. package/SVF-doxygen/html/html/LockAnalysis_8cpp_source.html +7 -7
  66. package/SVF-doxygen/html/html/LockAnalysis_8h_source.html +6 -6
  67. package/SVF-doxygen/html/html/LockResultValidator_8cpp_source.html +3 -3
  68. package/SVF-doxygen/html/html/LockResultValidator_8h_source.html +3 -3
  69. package/SVF-doxygen/html/html/MHP_8cpp_source.html +11 -11
  70. package/SVF-doxygen/html/html/MHP_8h_source.html +4 -4
  71. package/SVF-doxygen/html/html/MSSAMuChi_8h_source.html +1 -1
  72. package/SVF-doxygen/html/html/MTAAnnotator_8cpp_source.html +4 -4
  73. package/SVF-doxygen/html/html/MTAAnnotator_8h_source.html +1 -1
  74. package/SVF-doxygen/html/html/MTAResultValidator_8cpp_source.html +5 -5
  75. package/SVF-doxygen/html/html/MTAResultValidator_8h_source.html +3 -3
  76. package/SVF-doxygen/html/html/MTAStat_8cpp_source.html +2 -2
  77. package/SVF-doxygen/html/html/MTAStat_8h_source.html +1 -1
  78. package/SVF-doxygen/html/html/MTA_8cpp_source.html +6 -6
  79. package/SVF-doxygen/html/html/MTA_8h_source.html +2 -2
  80. package/SVF-doxygen/html/html/MemModel_8h_source.html +1 -1
  81. package/SVF-doxygen/html/html/MemPartition_8cpp_source.html +1 -1
  82. package/SVF-doxygen/html/html/MemPartition_8h_source.html +3 -3
  83. package/SVF-doxygen/html/html/MemRegion_8cpp_source.html +6 -6
  84. package/SVF-doxygen/html/html/MemRegion_8h_source.html +4 -4
  85. package/SVF-doxygen/html/html/MemSSA_8cpp_source.html +6 -6
  86. package/SVF-doxygen/html/html/MemSSA_8h_source.html +2 -2
  87. package/SVF-doxygen/html/html/MutablePointsToDS_8h_source.html +2 -2
  88. package/SVF-doxygen/html/html/NodeIDAllocator_8cpp_source.html +4 -4
  89. package/SVF-doxygen/html/html/NodeIDAllocator_8h_source.html +2 -2
  90. package/SVF-doxygen/html/html/OfflineConsG_8cpp_source.html +2 -2
  91. package/SVF-doxygen/html/html/OfflineConsG_8h_source.html +2 -2
  92. package/SVF-doxygen/html/html/Options_8cpp_source.html +97 -96
  93. package/SVF-doxygen/html/html/Options_8h_source.html +97 -96
  94. package/SVF-doxygen/html/html/PAGBuilder_8cpp_source.html +3 -3
  95. package/SVF-doxygen/html/html/PAGEdge_8h_source.html +1 -1
  96. package/SVF-doxygen/html/html/PAG_8cpp_source.html +7 -7
  97. package/SVF-doxygen/html/html/PAG_8h_source.html +5 -5
  98. package/SVF-doxygen/html/html/PCG_8cpp_source.html +3 -3
  99. package/SVF-doxygen/html/html/PCG_8h_source.html +1 -1
  100. package/SVF-doxygen/html/html/PTACallGraph_8cpp_source.html +2 -2
  101. package/SVF-doxygen/html/html/PTACallGraph_8h_source.html +3 -3
  102. package/SVF-doxygen/html/html/PTAStat_8cpp_source.html +11 -10
  103. package/SVF-doxygen/html/html/PTAStat_8h_source.html +2 -2
  104. package/SVF-doxygen/html/html/PTAType_8h_source.html +4 -4
  105. package/SVF-doxygen/html/html/PathCondAllocator_8cpp_source.html +5 -5
  106. package/SVF-doxygen/html/html/PathCondAllocator_8h_source.html +3 -3
  107. package/SVF-doxygen/html/html/PersistentPointsToCache_8h_source.html +27 -24
  108. package/SVF-doxygen/html/html/PersistentPointsToDS_8h_source.html +3 -3
  109. package/SVF-doxygen/html/html/PointerAnalysisImpl_8cpp_source.html +21 -17
  110. package/SVF-doxygen/html/html/PointerAnalysisImpl_8h_source.html +72 -72
  111. package/SVF-doxygen/html/html/PointerAnalysis_8cpp_source.html +18 -18
  112. package/SVF-doxygen/html/html/PointerAnalysis_8h_source.html +5 -5
  113. package/SVF-doxygen/html/html/PointsTo_8cpp_source.html +3 -3
  114. package/SVF-doxygen/html/html/PointsTo_8h_source.html +2 -2
  115. package/SVF-doxygen/html/html/ProgSlice_8cpp_source.html +4 -4
  116. package/SVF-doxygen/html/html/ProgSlice_8h_source.html +2 -2
  117. package/SVF-doxygen/html/html/SCC_8h_source.html +3 -3
  118. package/SVF-doxygen/html/html/SVFBasicTypes_8h.html +33 -27
  119. package/SVF-doxygen/html/html/SVFBasicTypes_8h_source.html +52 -49
  120. package/SVF-doxygen/html/html/SVFGBuilder_8cpp_source.html +6 -6
  121. package/SVF-doxygen/html/html/SVFGEdge_8h_source.html +2 -2
  122. package/SVF-doxygen/html/html/SVFGNode_8h_source.html +3 -3
  123. package/SVF-doxygen/html/html/SVFGOPT_8cpp_source.html +7 -7
  124. package/SVF-doxygen/html/html/SVFGOPT_8h_source.html +3 -3
  125. package/SVF-doxygen/html/html/SVFGStat_8cpp_source.html +4 -4
  126. package/SVF-doxygen/html/html/SVFGStat_8h_source.html +3 -3
  127. package/SVF-doxygen/html/html/SVFG_8cpp_source.html +3 -3
  128. package/SVF-doxygen/html/html/SVFG_8h_source.html +2 -2
  129. package/SVF-doxygen/html/html/SVFModule_8cpp_source.html +2 -2
  130. package/SVF-doxygen/html/html/SVFModule_8h_source.html +1 -1
  131. package/SVF-doxygen/html/html/SVFUtil_8cpp_source.html +10 -9
  132. package/SVF-doxygen/html/html/SVFUtil_8h_source.html +7 -7
  133. package/SVF-doxygen/html/html/SaberCheckerAPI_8h_source.html +1 -1
  134. package/SVF-doxygen/html/html/SaberSVFGBuilder_8cpp_source.html +4 -4
  135. package/SVF-doxygen/html/html/SaberSVFGBuilder_8h_source.html +2 -2
  136. package/SVF-doxygen/html/html/SrcSnkDDA_8cpp_source.html +7 -7
  137. package/SVF-doxygen/html/html/SrcSnkDDA_8h_source.html +3 -3
  138. package/SVF-doxygen/html/html/Steensgaard_8cpp_source.html +1 -1
  139. package/SVF-doxygen/html/html/Steensgaard_8h_source.html +2 -2
  140. package/SVF-doxygen/html/html/SymbolTableInfo_8cpp_source.html +5 -5
  141. package/SVF-doxygen/html/html/SymbolTableInfo_8h_source.html +2 -2
  142. package/SVF-doxygen/html/html/TCT_8cpp_source.html +5 -5
  143. package/SVF-doxygen/html/html/TCT_8h_source.html +4 -4
  144. package/SVF-doxygen/html/html/ThreadAPI_8cpp_source.html +1 -1
  145. package/SVF-doxygen/html/html/ThreadAPI_8h_source.html +1 -1
  146. package/SVF-doxygen/html/html/ThreadCallGraph_8cpp_source.html +3 -3
  147. package/SVF-doxygen/html/html/ThreadCallGraph_8h_source.html +2 -2
  148. package/SVF-doxygen/html/html/TypeAnalysis_8cpp_source.html +1 -1
  149. package/SVF-doxygen/html/html/TypeAnalysis_8h_source.html +1 -1
  150. package/SVF-doxygen/html/html/TypeBasedHeapCloning_8cpp_source.html +3 -3
  151. package/SVF-doxygen/html/html/TypeBasedHeapCloning_8h_source.html +2 -2
  152. package/SVF-doxygen/html/html/VFGNode_8h_source.html +2 -2
  153. package/SVF-doxygen/html/html/VFG_8cpp_source.html +4 -4
  154. package/SVF-doxygen/html/html/VFG_8h_source.html +3 -3
  155. package/SVF-doxygen/html/html/VersionedFlowSensitiveStat_8cpp_source.html +10 -8
  156. package/SVF-doxygen/html/html/VersionedFlowSensitive_8cpp.html +3 -0
  157. package/SVF-doxygen/html/html/VersionedFlowSensitive_8cpp_source.html +77 -64
  158. package/SVF-doxygen/html/html/VersionedFlowSensitive_8h.html +3 -2
  159. package/SVF-doxygen/html/html/VersionedFlowSensitive_8h_source.html +78 -69
  160. package/SVF-doxygen/html/html/WPAFSSolver_8h_source.html +2 -2
  161. package/SVF-doxygen/html/html/WPAPass_8cpp_source.html +5 -5
  162. package/SVF-doxygen/html/html/WPASolver_8h_source.html +2 -2
  163. package/SVF-doxygen/html/html/WorkList_8h_source.html +1 -1
  164. package/SVF-doxygen/html/html/annotated.html +189 -186
  165. package/SVF-doxygen/html/html/classSVF_1_1ActualINSVFGNode.html +1 -1
  166. package/SVF-doxygen/html/html/classSVF_1_1ActualOUTSVFGNode.html +1 -1
  167. package/SVF-doxygen/html/html/classSVF_1_1AddrPE.html +2 -2
  168. package/SVF-doxygen/html/html/classSVF_1_1Andersen.html +22 -22
  169. package/SVF-doxygen/html/html/classSVF_1_1AndersenBase.html +14 -14
  170. package/SVF-doxygen/html/html/classSVF_1_1AndersenLCD.html +3 -3
  171. package/SVF-doxygen/html/html/classSVF_1_1AndersenSCD.html +9 -9
  172. package/SVF-doxygen/html/html/classSVF_1_1AndersenSFR.html +2 -2
  173. package/SVF-doxygen/html/html/classSVF_1_1AndersenStat.html +6 -6
  174. package/SVF-doxygen/html/html/classSVF_1_1AndersenWaveDiff.html +3 -3
  175. package/SVF-doxygen/html/html/classSVF_1_1AndersenWaveDiffWithType.html +6 -6
  176. package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl-members.html +1 -1
  177. package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl.html +86 -83
  178. package/SVF-doxygen/html/html/classSVF_1_1BinaryOPPE.html +2 -2
  179. package/SVF-doxygen/html/html/classSVF_1_1BinaryOPVFGNode.html +1 -1
  180. package/SVF-doxygen/html/html/classSVF_1_1BranchCondManager.html +4 -4
  181. package/SVF-doxygen/html/html/classSVF_1_1CHGraph.html +12 -12
  182. package/SVF-doxygen/html/html/classSVF_1_1CSC.html +3 -3
  183. package/SVF-doxygen/html/html/classSVF_1_1CallBlockNode.html +2 -2
  184. package/SVF-doxygen/html/html/classSVF_1_1CallPE.html +2 -2
  185. package/SVF-doxygen/html/html/classSVF_1_1CmpPE.html +2 -2
  186. package/SVF-doxygen/html/html/classSVF_1_1CmpVFGNode.html +1 -1
  187. package/SVF-doxygen/html/html/classSVF_1_1CondPTAImpl.html +116 -116
  188. package/SVF-doxygen/html/html/classSVF_1_1ContextDDA.html +22 -22
  189. package/SVF-doxygen/html/html/classSVF_1_1CopyPE.html +2 -2
  190. package/SVF-doxygen/html/html/classSVF_1_1CxtProc.html +1 -1
  191. package/SVF-doxygen/html/html/classSVF_1_1CxtThreadProc.html +1 -1
  192. package/SVF-doxygen/html/html/classSVF_1_1DCHGraph.html +7 -7
  193. package/SVF-doxygen/html/html/classSVF_1_1DDAClient.html +3 -3
  194. package/SVF-doxygen/html/html/classSVF_1_1DDAPass.html +11 -11
  195. package/SVF-doxygen/html/html/classSVF_1_1DDAStat.html +6 -6
  196. package/SVF-doxygen/html/html/classSVF_1_1DDAVFSolver.html +25 -25
  197. package/SVF-doxygen/html/html/classSVF_1_1DistinctMRG.html +3 -3
  198. package/SVF-doxygen/html/html/classSVF_1_1ExternalPAG.html +4 -4
  199. package/SVF-doxygen/html/html/classSVF_1_1FIObjPN.html +2 -2
  200. package/SVF-doxygen/html/html/classSVF_1_1FlowDDA.html +13 -13
  201. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitive.html +48 -48
  202. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveStat.html +5 -5
  203. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveTBHC.html +26 -26
  204. package/SVF-doxygen/html/html/classSVF_1_1ForkJoinAnalysis.html +13 -13
  205. package/SVF-doxygen/html/html/classSVF_1_1FormalINSVFGNode.html +1 -1
  206. package/SVF-doxygen/html/html/classSVF_1_1FormalOUTSVFGNode.html +1 -1
  207. package/SVF-doxygen/html/html/classSVF_1_1FormalParmVFGNode.html +1 -1
  208. package/SVF-doxygen/html/html/classSVF_1_1FormalRetVFGNode.html +1 -1
  209. package/SVF-doxygen/html/html/classSVF_1_1FunEntryBlockNode.html +1 -1
  210. package/SVF-doxygen/html/html/classSVF_1_1FunExitBlockNode.html +1 -1
  211. package/SVF-doxygen/html/html/classSVF_1_1FunptrDDAClient.html +1 -1
  212. package/SVF-doxygen/html/html/classSVF_1_1GepObjPN.html +2 -2
  213. package/SVF-doxygen/html/html/classSVF_1_1GepPE.html +2 -2
  214. package/SVF-doxygen/html/html/classSVF_1_1GepValPN.html +2 -2
  215. package/SVF-doxygen/html/html/classSVF_1_1ICFG.html +2 -2
  216. package/SVF-doxygen/html/html/classSVF_1_1InterDisjointMRG.html +1 -1
  217. package/SVF-doxygen/html/html/classSVF_1_1InterMSSAPHISVFGNode.html +1 -1
  218. package/SVF-doxygen/html/html/classSVF_1_1InterPHIVFGNode.html +1 -1
  219. package/SVF-doxygen/html/html/classSVF_1_1IntraBlockNode.html +2 -2
  220. package/SVF-doxygen/html/html/classSVF_1_1IntraDisjointMRG.html +3 -3
  221. package/SVF-doxygen/html/html/classSVF_1_1IntraMSSAPHISVFGNode.html +1 -1
  222. package/SVF-doxygen/html/html/classSVF_1_1IntraPHIVFGNode.html +1 -1
  223. package/SVF-doxygen/html/html/classSVF_1_1LLVMModuleSet.html +8 -8
  224. package/SVF-doxygen/html/html/classSVF_1_1LeakChecker.html +3 -3
  225. package/SVF-doxygen/html/html/classSVF_1_1LoadPE.html +2 -2
  226. package/SVF-doxygen/html/html/classSVF_1_1LocationSet.html +3 -3
  227. package/SVF-doxygen/html/html/classSVF_1_1LockAnalysis.html +33 -33
  228. package/SVF-doxygen/html/html/classSVF_1_1LockResultValidator.html +4 -4
  229. package/SVF-doxygen/html/html/classSVF_1_1MHP.html +29 -29
  230. package/SVF-doxygen/html/html/classSVF_1_1MRGenerator.html +22 -22
  231. package/SVF-doxygen/html/html/classSVF_1_1MSSAPHISVFGNode.html +1 -1
  232. package/SVF-doxygen/html/html/classSVF_1_1MTA.html +8 -8
  233. package/SVF-doxygen/html/html/classSVF_1_1MTAAnnotator.html +9 -9
  234. package/SVF-doxygen/html/html/classSVF_1_1MTAResultValidator.html +12 -12
  235. package/SVF-doxygen/html/html/classSVF_1_1MTASVFGBuilder.html +18 -18
  236. package/SVF-doxygen/html/html/classSVF_1_1MTAStat.html +5 -5
  237. package/SVF-doxygen/html/html/classSVF_1_1MemObj.html +1 -1
  238. package/SVF-doxygen/html/html/classSVF_1_1MemSSA.html +17 -17
  239. package/SVF-doxygen/html/html/classSVF_1_1MemSSAStat.html +2 -2
  240. package/SVF-doxygen/html/html/classSVF_1_1MutableDFPTData.html +1 -1
  241. package/SVF-doxygen/html/html/classSVF_1_1NodeIDAllocator_1_1Clusterer.html +8 -8
  242. package/SVF-doxygen/html/html/classSVF_1_1NormalGepPE.html +2 -2
  243. package/SVF-doxygen/html/html/classSVF_1_1ObjPN.html +2 -2
  244. package/SVF-doxygen/html/html/classSVF_1_1OfflineConsG.html +2 -2
  245. package/SVF-doxygen/html/html/classSVF_1_1Options-members.html +3 -2
  246. package/SVF-doxygen/html/html/classSVF_1_1Options.html +125 -96
  247. package/SVF-doxygen/html/html/classSVF_1_1PAG.html +6 -6
  248. package/SVF-doxygen/html/html/classSVF_1_1PAGBuilder.html +29 -29
  249. package/SVF-doxygen/html/html/classSVF_1_1PCG.html +3 -3
  250. package/SVF-doxygen/html/html/classSVF_1_1PHIVFGNode.html +1 -1
  251. package/SVF-doxygen/html/html/classSVF_1_1PTACallGraph.html +2 -2
  252. package/SVF-doxygen/html/html/classSVF_1_1PTACallGraphNode.html +2 -2
  253. package/SVF-doxygen/html/html/classSVF_1_1PTAStat.html +21 -20
  254. package/SVF-doxygen/html/html/classSVF_1_1PathCondAllocator.html +8 -8
  255. package/SVF-doxygen/html/html/classSVF_1_1PersistentDFPTData.html +4 -4
  256. package/SVF-doxygen/html/html/classSVF_1_1PersistentDiffPTData.html +3 -3
  257. package/SVF-doxygen/html/html/classSVF_1_1PersistentPTData.html +7 -7
  258. package/SVF-doxygen/html/html/classSVF_1_1PersistentPointsToCache-members.html +19 -16
  259. package/SVF-doxygen/html/html/classSVF_1_1PersistentPointsToCache.html +194 -101
  260. package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis.html +22 -22
  261. package/SVF-doxygen/html/html/classSVF_1_1PointsTo.html +8 -7
  262. package/SVF-doxygen/html/html/classSVF_1_1ProgSlice.html +5 -5
  263. package/SVF-doxygen/html/html/classSVF_1_1RetBlockNode.html +2 -2
  264. package/SVF-doxygen/html/html/classSVF_1_1RetPE.html +2 -2
  265. package/SVF-doxygen/html/html/classSVF_1_1SVFBasicBlock.html +2 -2
  266. package/SVF-doxygen/html/html/classSVF_1_1SVFFunction.html +8 -8
  267. package/SVF-doxygen/html/html/classSVF_1_1SVFG.html +7 -7
  268. package/SVF-doxygen/html/html/classSVF_1_1SVFGBuilder.html +8 -8
  269. package/SVF-doxygen/html/html/classSVF_1_1SVFGOPT.html +13 -13
  270. package/SVF-doxygen/html/html/classSVF_1_1SVFGStat.html +7 -7
  271. package/SVF-doxygen/html/html/classSVF_1_1SVFGlobal.html +2 -2
  272. package/SVF-doxygen/html/html/classSVF_1_1SVFInstruction.html +2 -2
  273. package/SVF-doxygen/html/html/classSVF_1_1SVFModule.html +2 -2
  274. package/SVF-doxygen/html/html/classSVF_1_1SVFValue.html +33 -33
  275. package/SVF-doxygen/html/html/classSVF_1_1SaberSVFGBuilder.html +4 -4
  276. package/SVF-doxygen/html/html/classSVF_1_1SrcSnkDDA.html +12 -12
  277. package/SVF-doxygen/html/html/classSVF_1_1Steensgaard.html +1 -1
  278. package/SVF-doxygen/html/html/classSVF_1_1StorePE.html +2 -2
  279. package/SVF-doxygen/html/html/classSVF_1_1SymbolTableInfo.html +17 -17
  280. package/SVF-doxygen/html/html/classSVF_1_1TCT.html +16 -16
  281. package/SVF-doxygen/html/html/classSVF_1_1TDForkPE.html +2 -2
  282. package/SVF-doxygen/html/html/classSVF_1_1TDJoinPE.html +2 -2
  283. package/SVF-doxygen/html/html/classSVF_1_1ThreadAPI.html +1 -1
  284. package/SVF-doxygen/html/html/classSVF_1_1ThreadCallGraph.html +3 -3
  285. package/SVF-doxygen/html/html/classSVF_1_1TypeAnalysis.html +2 -2
  286. package/SVF-doxygen/html/html/classSVF_1_1TypeBasedHeapCloning.html +6 -6
  287. package/SVF-doxygen/html/html/classSVF_1_1TypeSystem.html +1 -1
  288. package/SVF-doxygen/html/html/classSVF_1_1UnaryOPPE.html +2 -2
  289. package/SVF-doxygen/html/html/classSVF_1_1UnaryOPVFGNode.html +1 -1
  290. package/SVF-doxygen/html/html/classSVF_1_1VFG.html +3 -3
  291. package/SVF-doxygen/html/html/classSVF_1_1ValPN.html +2 -2
  292. package/SVF-doxygen/html/html/classSVF_1_1VariantGepPE.html +2 -2
  293. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive-members.html +161 -162
  294. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive.html +571 -532
  295. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitiveStat.html +20 -21
  296. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive_1_1SCC-members.html +83 -0
  297. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive_1_1SCC.html +297 -0
  298. package/SVF-doxygen/html/html/classSVF_1_1WPAFSSolver.html +2 -2
  299. package/SVF-doxygen/html/html/classSVF_1_1WPAMinimumSolver.html +2 -2
  300. package/SVF-doxygen/html/html/classSVF_1_1WPAPass.html +12 -12
  301. package/SVF-doxygen/html/html/classSVF_1_1WPASCCSolver.html +2 -2
  302. package/SVF-doxygen/html/html/classSVF_1_1WPASolver.html +1 -1
  303. package/SVF-doxygen/html/html/classes.html +96 -95
  304. package/SVF-doxygen/html/html/functions_b.html +11 -5
  305. package/SVF-doxygen/html/html/functions_c.html +13 -14
  306. package/SVF-doxygen/html/html/functions_d.html +13 -4
  307. package/SVF-doxygen/html/html/functions_e.html +3 -0
  308. package/SVF-doxygen/html/html/functions_f.html +1 -1
  309. package/SVF-doxygen/html/html/functions_func_b.html +6 -0
  310. package/SVF-doxygen/html/html/functions_func_d.html +7 -4
  311. package/SVF-doxygen/html/html/functions_func_f.html +1 -1
  312. package/SVF-doxygen/html/html/functions_func_g.html +15 -9
  313. package/SVF-doxygen/html/html/functions_func_i.html +11 -11
  314. package/SVF-doxygen/html/html/functions_func_m.html +0 -3
  315. package/SVF-doxygen/html/html/functions_func_n.html +1 -4
  316. package/SVF-doxygen/html/html/functions_func_o.html +6 -4
  317. package/SVF-doxygen/html/html/functions_func_p.html +1 -1
  318. package/SVF-doxygen/html/html/functions_func_r.html +4 -1
  319. package/SVF-doxygen/html/html/functions_func_s.html +1 -1
  320. package/SVF-doxygen/html/html/functions_func_v.html +2 -1
  321. package/SVF-doxygen/html/html/functions_g.html +15 -9
  322. package/SVF-doxygen/html/html/functions_i.html +26 -19
  323. package/SVF-doxygen/html/html/functions_l.html +6 -9
  324. package/SVF-doxygen/html/html/functions_m.html +1 -16
  325. package/SVF-doxygen/html/html/functions_n.html +3 -3
  326. package/SVF-doxygen/html/html/functions_o.html +17 -16
  327. package/SVF-doxygen/html/html/functions_p.html +26 -16
  328. package/SVF-doxygen/html/html/functions_r.html +9 -7
  329. package/SVF-doxygen/html/html/functions_s.html +10 -10
  330. package/SVF-doxygen/html/html/functions_t.html +5 -5
  331. package/SVF-doxygen/html/html/functions_type_l.html +1 -4
  332. package/SVF-doxygen/html/html/functions_type_m.html +1 -1
  333. package/SVF-doxygen/html/html/functions_type_n.html +3 -0
  334. package/SVF-doxygen/html/html/functions_type_o.html +0 -3
  335. package/SVF-doxygen/html/html/functions_type_v.html +0 -3
  336. package/SVF-doxygen/html/html/functions_v.html +8 -10
  337. package/SVF-doxygen/html/html/functions_vars_c.html +0 -3
  338. package/SVF-doxygen/html/html/functions_vars_d.html +6 -0
  339. package/SVF-doxygen/html/html/functions_vars_e.html +3 -0
  340. package/SVF-doxygen/html/html/functions_vars_i.html +7 -0
  341. package/SVF-doxygen/html/html/functions_vars_l.html +3 -3
  342. package/SVF-doxygen/html/html/functions_vars_m.html +0 -12
  343. package/SVF-doxygen/html/html/functions_vars_o.html +3 -3
  344. package/SVF-doxygen/html/html/functions_vars_p.html +12 -0
  345. package/SVF-doxygen/html/html/functions_vars_r.html +0 -3
  346. package/SVF-doxygen/html/html/functions_vars_v.html +3 -3
  347. package/SVF-doxygen/html/html/functions_vars_y.html +0 -3
  348. package/SVF-doxygen/html/html/functions_w.html +1 -3
  349. package/SVF-doxygen/html/html/functions_y.html +0 -3
  350. package/SVF-doxygen/html/html/globals_f.html +3 -3
  351. package/SVF-doxygen/html/html/globals_func_i.html +8 -8
  352. package/SVF-doxygen/html/html/globals_func_s.html +6 -6
  353. package/SVF-doxygen/html/html/globals_r.html +3 -3
  354. package/SVF-doxygen/html/html/globals_s.html +12 -14
  355. package/SVF-doxygen/html/html/hierarchy.html +176 -173
  356. package/SVF-doxygen/html/html/namespaceSVF.html +70 -32
  357. package/SVF-doxygen/html/html/namespaceSVF_1_1SVFUtil.html +13 -12
  358. package/SVF-doxygen/html/html/namespacemembers_type_v.html +6 -0
  359. package/SVF-doxygen/html/html/namespacemembers_v.html +6 -0
  360. package/SVF-doxygen/html/html/search/all_10.js +11 -7
  361. package/SVF-doxygen/html/html/search/all_12.js +4 -4
  362. package/SVF-doxygen/html/html/search/all_13.js +8 -8
  363. package/SVF-doxygen/html/html/search/all_14.js +5 -5
  364. package/SVF-doxygen/html/html/search/all_15.js +1 -1
  365. package/SVF-doxygen/html/html/search/all_16.js +5 -4
  366. package/SVF-doxygen/html/html/search/all_17.js +1 -1
  367. package/SVF-doxygen/html/html/search/all_19.js +0 -1
  368. package/SVF-doxygen/html/html/search/all_2.js +2 -0
  369. package/SVF-doxygen/html/html/search/all_3.js +1 -2
  370. package/SVF-doxygen/html/html/search/all_4.js +5 -2
  371. package/SVF-doxygen/html/html/search/all_5.js +1 -0
  372. package/SVF-doxygen/html/html/search/all_6.js +2 -2
  373. package/SVF-doxygen/html/html/search/all_7.js +5 -3
  374. package/SVF-doxygen/html/html/search/all_8.js +2 -0
  375. package/SVF-doxygen/html/html/search/all_9.js +7 -5
  376. package/SVF-doxygen/html/html/search/all_c.js +2 -3
  377. package/SVF-doxygen/html/html/search/all_d.js +1 -6
  378. package/SVF-doxygen/html/html/search/all_e.js +2 -2
  379. package/SVF-doxygen/html/html/search/all_f.js +2 -3
  380. package/SVF-doxygen/html/html/search/classes_12.js +0 -1
  381. package/SVF-doxygen/html/html/search/classes_7.js +2 -0
  382. package/SVF-doxygen/html/html/search/classes_b.js +1 -0
  383. package/SVF-doxygen/html/html/search/classes_f.js +1 -0
  384. package/SVF-doxygen/html/html/search/functions_1.js +2 -0
  385. package/SVF-doxygen/html/html/search/functions_10.js +2 -2
  386. package/SVF-doxygen/html/html/search/functions_13.js +1 -1
  387. package/SVF-doxygen/html/html/search/functions_3.js +3 -2
  388. package/SVF-doxygen/html/html/search/functions_5.js +1 -1
  389. package/SVF-doxygen/html/html/search/functions_6.js +5 -3
  390. package/SVF-doxygen/html/html/search/functions_8.js +3 -3
  391. package/SVF-doxygen/html/html/search/functions_b.js +0 -1
  392. package/SVF-doxygen/html/html/search/functions_c.js +0 -1
  393. package/SVF-doxygen/html/html/search/functions_d.js +1 -1
  394. package/SVF-doxygen/html/html/search/functions_e.js +1 -1
  395. package/SVF-doxygen/html/html/search/functions_f.js +1 -0
  396. package/SVF-doxygen/html/html/search/typedefs_14.js +2 -1
  397. package/SVF-doxygen/html/html/search/typedefs_b.js +1 -2
  398. package/SVF-doxygen/html/html/search/typedefs_c.js +1 -1
  399. package/SVF-doxygen/html/html/search/typedefs_d.js +1 -0
  400. package/SVF-doxygen/html/html/search/typedefs_e.js +0 -1
  401. package/SVF-doxygen/html/html/search/variables_10.js +4 -0
  402. package/SVF-doxygen/html/html/search/variables_12.js +0 -1
  403. package/SVF-doxygen/html/html/search/variables_14.js +1 -1
  404. package/SVF-doxygen/html/html/search/variables_15.js +1 -1
  405. package/SVF-doxygen/html/html/search/variables_16.js +1 -1
  406. package/SVF-doxygen/html/html/search/variables_19.js +0 -1
  407. package/SVF-doxygen/html/html/search/variables_3.js +0 -1
  408. package/SVF-doxygen/html/html/search/variables_4.js +2 -0
  409. package/SVF-doxygen/html/html/search/variables_5.js +1 -0
  410. package/SVF-doxygen/html/html/search/variables_9.js +3 -1
  411. package/SVF-doxygen/html/html/search/variables_c.js +1 -1
  412. package/SVF-doxygen/html/html/search/variables_d.js +0 -4
  413. package/SVF-doxygen/html/html/search/variables_e.js +1 -1
  414. package/SVF-doxygen/html/html/search/variables_f.js +1 -1
  415. package/SVF-doxygen/html/html/structSVF_1_1Hash_3_01CoreBitVector_01_4-members.html +81 -0
  416. package/SVF-doxygen/html/html/structSVF_1_1Hash_3_01CoreBitVector_01_4.html +126 -0
  417. package/SVF-doxygen/html/html/structSVF_1_1Hash_3_01NodePair_01_4.html +3 -3
  418. package/SVF-doxygen/html/html/structSVF_1_1VersionedFlowSensitive_1_1SCC_1_1NodeData-members.html +83 -0
  419. package/SVF-doxygen/html/html/structSVF_1_1VersionedFlowSensitive_1_1SCC_1_1NodeData.html +145 -0
  420. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01ConstraintGraph_01_5_01_4.html +1 -1
  421. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01ICFG_01_5_01_4.html +1 -1
  422. package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1NodePair_01_4.html +3 -3
  423. package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1SmallVector_3_01T_00_01N_01_4_01_4.html +3 -3
  424. package/SVF-doxygen/html/html/structstd_1_1hash_3_01llvm_1_1SparseBitVector_3_01N_01_4_01_4.html +3 -3
  425. package/SVF-doxygen/html/html/structstd_1_1hash_3_01std_1_1vector_3_01T_01_4_01_4-members.html +81 -0
  426. package/SVF-doxygen/html/html/structstd_1_1hash_3_01std_1_1vector_3_01T_01_4_01_4.html +129 -0
  427. package/SVF-doxygen/html/html/svf-ex_8cpp.html +2 -2
  428. package/SVF-doxygen/html/html/svf-ex_8cpp_source.html +1 -1
  429. package/SVF-doxygen/html/html/tools_2DDA_2CMakeLists_8txt.html +1 -1
  430. package/SVF-doxygen/html/html/tools_2Example_2CMakeLists_8txt.html +1 -1
  431. package/SVF-doxygen/html/html/tools_2MTA_2CMakeLists_8txt.html +1 -1
  432. package/SVF-doxygen/html/html/tools_2SABER_2CMakeLists_8txt.html +1 -1
  433. package/SVF-doxygen/html/html/tools_2WPA_2CMakeLists_8txt.html +9 -9
  434. package/include/MemoryModel/PersistentPointsToCache.h +43 -34
  435. package/include/MemoryModel/PointerAnalysisImpl.h +1 -5
  436. package/include/Util/CoreBitVector.h +8 -0
  437. package/include/Util/Options.h +3 -0
  438. package/include/Util/SVFBasicTypes.h +22 -2
  439. package/include/WPA/VersionedFlowSensitive.h +96 -65
  440. package/lib/MemoryModel/PointerAnalysisImpl.cpp +7 -0
  441. package/lib/MemoryModel/PointsTo.cpp +3 -3
  442. package/lib/Util/Options.cpp +6 -0
  443. package/lib/Util/PTAStat.cpp +3 -4
  444. package/lib/Util/SVFUtil.cpp +1 -0
  445. package/lib/WPA/FlowSensitive.cpp +1 -1
  446. package/lib/WPA/VersionedFlowSensitive.cpp +503 -229
  447. package/lib/WPA/VersionedFlowSensitiveStat.cpp +23 -38
  448. package/package.json +1 -1
  449. package/tools/WPA/CMakeLists.txt +3 -1
@@ -305,7 +305,7 @@ Functions</h2></td></tr>
305
305
  <div class="ttc" id="classSVF_1_1FIFOWorkList_html_a7056704c224dfb4b57287fe90c004aa8"><div class="ttname"><a href="classSVF_1_1FIFOWorkList.html#a7056704c224dfb4b57287fe90c004aa8">SVF::FIFOWorkList::empty</a></div><div class="ttdeci">bool empty() const</div><div class="ttdef"><b>Definition:</b> <a href="WorkList_8h_source.html#l00146">WorkList.h:146</a></div></div>
306
306
  <div class="ttc" id="classSVF_1_1ICFGNode_html"><div class="ttname"><a href="classSVF_1_1ICFGNode.html">SVF::ICFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00054">ICFGNode.h:54</a></div></div>
307
307
  <div class="ttc" id="classSVF_1_1GenericEdge_html_aeaa31a2c8479e831b36ce2e2582ceb86"><div class="ttname"><a href="classSVF_1_1GenericEdge.html#aeaa31a2c8479e831b36ce2e2582ceb86">SVF::GenericEdge::getDstNode</a></div><div class="ttdeci">NodeType * getDstNode() const</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00089">GenericGraph.h:89</a></div></div>
308
- <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>
308
+ <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>
309
309
  <div class="ttc" id="classSVF_1_1FIFOWorkList_html_ad4c6a48b60c870d63049fe7272cc7eb8"><div class="ttname"><a href="classSVF_1_1FIFOWorkList.html#ad4c6a48b60c870d63049fe7272cc7eb8">SVF::FIFOWorkList::push</a></div><div class="ttdeci">bool push(Data data)</div><div class="ttdef"><b>Definition:</b> <a href="WorkList_8h_source.html#l00159">WorkList.h:159</a></div></div>
310
310
  <div class="ttc" id="classSVF_1_1ICFGNode_html_ac16c5a3227a44d3b9f7c3209156d9df2"><div class="ttname"><a href="classSVF_1_1ICFGNode.html#ac16c5a3227a44d3b9f7c3209156d9df2">SVF::ICFGNode::const_iterator</a></div><div class="ttdeci">ICFGEdge::ICFGEdgeSetTy::const_iterator const_iterator</div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00066">ICFGNode.h:66</a></div></div>
311
311
  <div class="ttc" id="classSVF_1_1FIFOWorkList_html"><div class="ttname"><a href="classSVF_1_1FIFOWorkList.html">SVF::FIFOWorkList</a></div><div class="ttdef"><b>Definition:</b> <a href="WorkList_8h_source.html#l00137">WorkList.h:137</a></div></div>
@@ -354,7 +354,7 @@ Functions</h2></td></tr>
354
354
  <div class="ttc" id="classSVF_1_1VFGEdge_html"><div class="ttname"><a href="classSVF_1_1VFGEdge.html">SVF::VFGEdge</a></div><div class="ttdef"><b>Definition:</b> <a href="VFGEdge_8h_source.html#l00044">VFGEdge.h:44</a></div></div>
355
355
  <div class="ttc" id="classSVF_1_1PAG_html_a3aa1c92eb8a6fab72996964de80f19ac"><div class="ttname"><a href="classSVF_1_1PAG.html#a3aa1c92eb8a6fab72996964de80f19ac">SVF::PAG::getPAGNode</a></div><div class="ttdeci">PAGNode * getPAGNode(NodeID id) const</div><div class="ttdoc">Get PAGNode ID. </div><div class="ttdef"><b>Definition:</b> <a href="PAG_8h_source.html#l00539">PAG.h:539</a></div></div>
356
356
  <div class="ttc" id="classSVF_1_1GenericEdge_html_aeaa31a2c8479e831b36ce2e2582ceb86"><div class="ttname"><a href="classSVF_1_1GenericEdge.html#aeaa31a2c8479e831b36ce2e2582ceb86">SVF::GenericEdge::getDstNode</a></div><div class="ttdeci">NodeType * getDstNode() const</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00089">GenericGraph.h:89</a></div></div>
357
- <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>
357
+ <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>
358
358
  <div class="ttc" id="classSVF_1_1FIFOWorkList_html_ad4c6a48b60c870d63049fe7272cc7eb8"><div class="ttname"><a href="classSVF_1_1FIFOWorkList.html#ad4c6a48b60c870d63049fe7272cc7eb8">SVF::FIFOWorkList::push</a></div><div class="ttdeci">bool push(Data data)</div><div class="ttdef"><b>Definition:</b> <a href="WorkList_8h_source.html#l00159">WorkList.h:159</a></div></div>
359
359
  <div class="ttc" id="classSVF_1_1VFGNode_html_a3c558955f60c237c558d8faafed781e8"><div class="ttname"><a href="classSVF_1_1VFGNode.html#a3c558955f60c237c558d8faafed781e8">SVF::VFGNode::const_iterator</a></div><div class="ttdeci">VFGEdge::VFGEdgeSetTy::const_iterator const_iterator</div><div class="ttdef"><b>Definition:</b> <a href="VFGNode_8h_source.html#l00061">VFGNode.h:61</a></div></div>
360
360
  <div class="ttc" id="classSVF_1_1PAGNode_html"><div class="ttname"><a href="classSVF_1_1PAGNode.html">SVF::PAGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="PAGNode_8h_source.html#l00046">PAGNode.h:46</a></div></div>
@@ -98,7 +98,7 @@ $(function() {
98
98
  <div class="ttc" id="classSVF_1_1PAG_html_a3aa1c92eb8a6fab72996964de80f19ac"><div class="ttname"><a href="classSVF_1_1PAG.html#a3aa1c92eb8a6fab72996964de80f19ac">SVF::PAG::getPAGNode</a></div><div class="ttdeci">PAGNode * getPAGNode(NodeID id) const</div><div class="ttdoc">Get PAGNode ID. </div><div class="ttdef"><b>Definition:</b> <a href="PAG_8h_source.html#l00539">PAG.h:539</a></div></div>
99
99
  <div class="ttc" id="classSVF_1_1GenericEdge_html_aeaa31a2c8479e831b36ce2e2582ceb86"><div class="ttname"><a href="classSVF_1_1GenericEdge.html#aeaa31a2c8479e831b36ce2e2582ceb86">SVF::GenericEdge::getDstNode</a></div><div class="ttdeci">NodeType * getDstNode() const</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00089">GenericGraph.h:89</a></div></div>
100
100
  <div class="ttc" id="classSVF_1_1PAGBuilder_html_a757ab2c9481467842e1ad4c46a1f6291"><div class="ttname"><a href="classSVF_1_1PAGBuilder.html#a757ab2c9481467842e1ad4c46a1f6291">SVF::PAGBuilder::build</a></div><div class="ttdeci">virtual PAG * build(SVFModule *svfModule)</div><div class="ttdoc">Start building PAG here. </div><div class="ttdef"><b>Definition:</b> <a href="PAGBuilder_8cpp_source.html#l00047">PAGBuilder.cpp:47</a></div></div>
101
- <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>
101
+ <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>
102
102
  <div class="ttc" id="svf-ex_8cpp_html_a3c04138a5bfe5d72780bb7e82a18e627"><div class="ttname"><a href="svf-ex_8cpp.html#a3c04138a5bfe5d72780bb7e82a18e627">main</a></div><div class="ttdeci">int main(int argc, char **argv)</div><div class="ttdef"><b>Definition:</b> <a href="svf-ex_8cpp_source.html#l00145">svf-ex.cpp:145</a></div></div>
103
103
  <div class="ttc" id="classSVF_1_1FIFOWorkList_html_ad4c6a48b60c870d63049fe7272cc7eb8"><div class="ttname"><a href="classSVF_1_1FIFOWorkList.html#ad4c6a48b60c870d63049fe7272cc7eb8">SVF::FIFOWorkList::push</a></div><div class="ttdeci">bool push(Data data)</div><div class="ttdef"><b>Definition:</b> <a href="WorkList_8h_source.html#l00159">WorkList.h:159</a></div></div>
104
104
  <div class="ttc" id="namespaceSVF_html_a7875172ff434b2210eea7cecfbbd959e"><div class="ttname"><a href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">SVF::Instruction</a></div><div class="ttdeci">llvm::Instruction Instruction</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00079">BasicTypes.h:79</a></div></div>
@@ -67,7 +67,7 @@ $(function() {
67
67
  <table class="memberdecls">
68
68
  <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
69
69
  Functions</h2></td></tr>
70
- <tr class="memitem:a7686df215f6da6fdcfa2c20950c96939"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="tools_2DDA_2CMakeLists_8txt.html#a7686df215f6da6fdcfa2c20950c96939">if</a> (DEFINED IN_SOURCE_BUILD) <a class="el" href="lib_2CUDD_2CMakeLists_8txt.html#a97d8d30dc013aa2acba4c146fdcb1acf">set</a>(LLVM_LINK_COMPONENTS BitWriter Core IPO IrReader InstCombine Instrumentation Target Linker Analysis ScalarOpts Support Svf Cudd) add_llvm_tool(dvf dda.cpp) else() add_executable(dvf dda.cpp) target_link_libraries(dvf Svf Cudd $</td></tr>
70
+ <tr class="memitem:a7686df215f6da6fdcfa2c20950c96939"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="tools_2DDA_2CMakeLists_8txt.html#a7686df215f6da6fdcfa2c20950c96939">if</a> (DEFINED IN_SOURCE_BUILD) <a class="el" href="tools_2WPA_2CMakeLists_8txt.html#ae7f9c126d87731a942268db0cad0ac75">set</a>(LLVM_LINK_COMPONENTS BitWriter Core IPO IrReader InstCombine Instrumentation Target Linker Analysis ScalarOpts Support Svf Cudd) add_llvm_tool(dvf dda.cpp) else() add_executable(dvf dda.cpp) target_link_libraries(dvf Svf Cudd $</td></tr>
71
71
  <tr class="separator:a7686df215f6da6fdcfa2c20950c96939"><td class="memSeparator" colspan="2">&#160;</td></tr>
72
72
  </table>
73
73
  <h2 class="groupheader">Function Documentation</h2>
@@ -67,7 +67,7 @@ $(function() {
67
67
  <table class="memberdecls">
68
68
  <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
69
69
  Functions</h2></td></tr>
70
- <tr class="memitem:a99a811bf6e0c9c244f0663f312a3ee41"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="tools_2Example_2CMakeLists_8txt.html#a99a811bf6e0c9c244f0663f312a3ee41">if</a> (DEFINED IN_SOURCE_BUILD) <a class="el" href="lib_2CUDD_2CMakeLists_8txt.html#a97d8d30dc013aa2acba4c146fdcb1acf">set</a>(LLVM_LINK_COMPONENTS BitWriter Core IPO IrReader InstCombine Instrumentation Target Linker Analysis ScalarOpts Support Svf Cudd) add_llvm_tool(svf-ex svf-ex.cpp) else() add_executable(svf-ex svf-ex.cpp) target_link_libraries(svf-ex Svf Cudd $</td></tr>
70
+ <tr class="memitem:a99a811bf6e0c9c244f0663f312a3ee41"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="tools_2Example_2CMakeLists_8txt.html#a99a811bf6e0c9c244f0663f312a3ee41">if</a> (DEFINED IN_SOURCE_BUILD) <a class="el" href="tools_2WPA_2CMakeLists_8txt.html#ae7f9c126d87731a942268db0cad0ac75">set</a>(LLVM_LINK_COMPONENTS BitWriter Core IPO IrReader InstCombine Instrumentation Target Linker Analysis ScalarOpts Support Svf Cudd) add_llvm_tool(svf-ex svf-ex.cpp) else() add_executable(svf-ex svf-ex.cpp) target_link_libraries(svf-ex Svf Cudd $</td></tr>
71
71
  <tr class="separator:a99a811bf6e0c9c244f0663f312a3ee41"><td class="memSeparator" colspan="2">&#160;</td></tr>
72
72
  </table>
73
73
  <h2 class="groupheader">Function Documentation</h2>
@@ -67,7 +67,7 @@ $(function() {
67
67
  <table class="memberdecls">
68
68
  <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
69
69
  Functions</h2></td></tr>
70
- <tr class="memitem:a4bd9f4b25fec671a4e18608050c47e87"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="tools_2MTA_2CMakeLists_8txt.html#a4bd9f4b25fec671a4e18608050c47e87">if</a> (DEFINED IN_SOURCE_BUILD) <a class="el" href="lib_2CUDD_2CMakeLists_8txt.html#a97d8d30dc013aa2acba4c146fdcb1acf">set</a>(LLVM_LINK_COMPONENTS BitWriter Core IPO IrReader InstCombine Instrumentation Target Linker Analysis ScalarOpts Support Svf Cudd) add_llvm_tool(mta mta.cpp) else() add_executable(mta mta.cpp) target_link_libraries(mta Svf Cudd $</td></tr>
70
+ <tr class="memitem:a4bd9f4b25fec671a4e18608050c47e87"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="tools_2MTA_2CMakeLists_8txt.html#a4bd9f4b25fec671a4e18608050c47e87">if</a> (DEFINED IN_SOURCE_BUILD) <a class="el" href="tools_2WPA_2CMakeLists_8txt.html#ae7f9c126d87731a942268db0cad0ac75">set</a>(LLVM_LINK_COMPONENTS BitWriter Core IPO IrReader InstCombine Instrumentation Target Linker Analysis ScalarOpts Support Svf Cudd) add_llvm_tool(mta mta.cpp) else() add_executable(mta mta.cpp) target_link_libraries(mta Svf Cudd $</td></tr>
71
71
  <tr class="separator:a4bd9f4b25fec671a4e18608050c47e87"><td class="memSeparator" colspan="2">&#160;</td></tr>
72
72
  </table>
73
73
  <h2 class="groupheader">Function Documentation</h2>
@@ -67,7 +67,7 @@ $(function() {
67
67
  <table class="memberdecls">
68
68
  <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
69
69
  Functions</h2></td></tr>
70
- <tr class="memitem:a8090d680f76934d4cad048ea01b7fe8e"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="tools_2SABER_2CMakeLists_8txt.html#a8090d680f76934d4cad048ea01b7fe8e">if</a> (DEFINED IN_SOURCE_BUILD) <a class="el" href="lib_2CUDD_2CMakeLists_8txt.html#a97d8d30dc013aa2acba4c146fdcb1acf">set</a>(LLVM_LINK_COMPONENTS BitWriter Core IPO IrReader InstCombine Instrumentation Target Linker Analysis ScalarOpts Support Svf Cudd) add_llvm_tool(saber saber.cpp) else() add_executable(saber saber.cpp) target_link_libraries(saber Svf Cudd $</td></tr>
70
+ <tr class="memitem:a8090d680f76934d4cad048ea01b7fe8e"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="tools_2SABER_2CMakeLists_8txt.html#a8090d680f76934d4cad048ea01b7fe8e">if</a> (DEFINED IN_SOURCE_BUILD) <a class="el" href="tools_2WPA_2CMakeLists_8txt.html#ae7f9c126d87731a942268db0cad0ac75">set</a>(LLVM_LINK_COMPONENTS BitWriter Core IPO IrReader InstCombine Instrumentation Target Linker Analysis ScalarOpts Support Svf Cudd) add_llvm_tool(saber saber.cpp) else() add_executable(saber saber.cpp) target_link_libraries(saber Svf Cudd $</td></tr>
71
71
  <tr class="separator:a8090d680f76934d4cad048ea01b7fe8e"><td class="memSeparator" colspan="2">&#160;</td></tr>
72
72
  </table>
73
73
  <h2 class="groupheader">Function Documentation</h2>
@@ -67,28 +67,28 @@ $(function() {
67
67
  <table class="memberdecls">
68
68
  <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
69
69
  Functions</h2></td></tr>
70
- <tr class="memitem:a8f8a16342f9f4e608e8173ec0d0d7e0b"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="tools_2WPA_2CMakeLists_8txt.html#a8f8a16342f9f4e608e8173ec0d0d7e0b">if</a> (DEFINED IN_SOURCE_BUILD) <a class="el" href="lib_2CUDD_2CMakeLists_8txt.html#a97d8d30dc013aa2acba4c146fdcb1acf">set</a>(LLVM_LINK_COMPONENTS BitWriter Core IPO IrReader InstCombine Instrumentation Target Linker Analysis ScalarOpts Support Svf Cudd) add_llvm_tool(wpa wpa.cpp) else() add_executable(wpa wpa.cpp) target_link_libraries(wpa Svf Cudd $</td></tr>
71
- <tr class="separator:a8f8a16342f9f4e608e8173ec0d0d7e0b"><td class="memSeparator" colspan="2">&#160;</td></tr>
70
+ <tr class="memitem:ae7f9c126d87731a942268db0cad0ac75"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="tools_2WPA_2CMakeLists_8txt.html#ae7f9c126d87731a942268db0cad0ac75">set</a> (THREADS_PREFER_PTHREAD_FLAG ON) find_package(Threads REQUIRED) <a class="el" href="tools_2SABER_2CMakeLists_8txt.html#a8090d680f76934d4cad048ea01b7fe8e">if</a>(DEFINED IN_SOURCE_BUILD) set(LLVM_LINK_COMPONENTS BitWriter Core IPO IrReader InstCombine Instrumentation Target Linker Analysis ScalarOpts Support Svf Cudd) add_llvm_tool(wpa wpa.cpp) else() add_executable(wpa wpa.cpp) target_link_libraries(wpa Svf Cudd $</td></tr>
71
+ <tr class="separator:ae7f9c126d87731a942268db0cad0ac75"><td class="memSeparator" colspan="2">&#160;</td></tr>
72
72
  </table>
73
73
  <h2 class="groupheader">Function Documentation</h2>
74
- <a id="a8f8a16342f9f4e608e8173ec0d0d7e0b"></a>
75
- <h2 class="memtitle"><span class="permalink"><a href="#a8f8a16342f9f4e608e8173ec0d0d7e0b">&#9670;&nbsp;</a></span>if()</h2>
74
+ <a id="ae7f9c126d87731a942268db0cad0ac75"></a>
75
+ <h2 class="memtitle"><span class="permalink"><a href="#ae7f9c126d87731a942268db0cad0ac75">&#9670;&nbsp;</a></span>set()</h2>
76
76
 
77
77
  <div class="memitem">
78
78
  <div class="memproto">
79
79
  <table class="memname">
80
80
  <tr>
81
- <td class="memname">if </td>
81
+ <td class="memname">set </td>
82
82
  <td>(</td>
83
- <td class="paramtype">DEFINED&#160;</td>
84
- <td class="paramname"><em>IN_SOURCE_BUILD</em></td><td>)</td>
83
+ <td class="paramtype">THREADS_PREFER_PTHREAD_FLAG&#160;</td>
84
+ <td class="paramname"><em>ON</em></td><td>)</td>
85
85
  <td></td>
86
86
  </tr>
87
87
  </table>
88
88
  </div><div class="memdoc">
89
89
 
90
- <p class="definition">Definition at line <a class="el" href="tools_2WPA_2CMakeLists_8txt_source.html#l00002">2</a> of file <a class="el" href="tools_2WPA_2CMakeLists_8txt_source.html">CMakeLists.txt</a>.</p>
91
- <div class="fragment"><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160; {llvm_libs} )</div></div><!-- fragment -->
90
+ <p class="definition">Definition at line <a class="el" href="tools_2WPA_2CMakeLists_8txt_source.html#l00001">1</a> of file <a class="el" href="tools_2WPA_2CMakeLists_8txt_source.html">CMakeLists.txt</a>.</p>
91
+ <div class="fragment"><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160; {llvm_libs} Threads::Threads )</div></div><!-- fragment -->
92
92
  </div>
93
93
  </div>
94
94
  </div><!-- contents -->
@@ -138,7 +138,7 @@ public:
138
138
  if (lhs != result)
139
139
  {
140
140
  unionCache[std::minmax(lhs, result)] = result;
141
- ++propertyUnions;
141
+ ++preemptiveUnions;
142
142
  ++totalUnions;
143
143
  }
144
144
 
@@ -146,7 +146,7 @@ public:
146
146
  if (rhs != result)
147
147
  {
148
148
  unionCache[std::minmax(rhs, result)] = result;
149
- ++propertyUnions;
149
+ ++preemptiveUnions;
150
150
  ++totalUnions;
151
151
  }
152
152
  } else ++lookupUnions;
@@ -195,17 +195,17 @@ public:
195
195
  {
196
196
  // result AND rhs = EMPTY_SET,
197
197
  intersectionCache[std::minmax(result, rhs)] = emptyPointsToId();
198
- ++propertyIntersections;
198
+ ++preemptiveIntersections;
199
199
  ++totalIntersections;
200
200
 
201
201
  // and result AND lhs = result,
202
202
  intersectionCache[std::minmax(result, lhs)] = result;
203
- ++propertyIntersections;
203
+ ++preemptiveIntersections;
204
204
  ++totalIntersections;
205
205
 
206
206
  // and result - rhs = result.
207
207
  complementCache[std::make_pair(result, rhs)] = result;
208
- ++propertyComplements;
208
+ ++preemptiveComplements;
209
209
  ++totalComplements;
210
210
  }
211
211
  } else ++lookupComplements;
@@ -252,7 +252,7 @@ public:
252
252
  if (result != rhs)
253
253
  {
254
254
  intersectionCache[std::minmax(result, rhs)] = result;
255
- ++propertyIntersections;
255
+ ++preemptiveIntersections;
256
256
  ++totalIntersections;
257
257
  }
258
258
 
@@ -260,7 +260,7 @@ public:
260
260
  if (result != lhs)
261
261
  {
262
262
  intersectionCache[std::minmax(result, lhs)] = result;
263
- ++propertyIntersections;
263
+ ++preemptiveIntersections;
264
264
  ++totalIntersections;
265
265
  }
266
266
 
@@ -269,7 +269,7 @@ public:
269
269
  if (result != emptyPointsToId() && result != lhs)
270
270
  {
271
271
  unionCache[std::minmax(lhs, result)] = lhs;
272
- ++propertyUnions;
272
+ ++preemptiveUnions;
273
273
  ++totalUnions;
274
274
  }
275
275
 
@@ -277,7 +277,7 @@ public:
277
277
  if (result != emptyPointsToId() && result != rhs)
278
278
  {
279
279
  unionCache[std::minmax(rhs, result)] = rhs;
280
- ++propertyUnions;
280
+ ++preemptiveUnions;
281
281
  ++totalUnions;
282
282
  }
283
283
  }
@@ -294,22 +294,25 @@ public:
294
294
 
295
295
  std::cout << "****Persistent Points-To Cache Statistics: " << subtitle << "****\n";
296
296
 
297
- std::cout << std::setw(fieldWidth) << "UniquePointsToSets" << idToPts.size() << "\n";
297
+ std::cout << std::setw(fieldWidth) << "UniquePointsToSets" << idToPts.size() << "\n";
298
298
 
299
- std::cout << std::setw(fieldWidth) << "TotalUnions" << totalUnions << "\n";
300
- std::cout << std::setw(fieldWidth) << "PropertyUnions" << propertyUnions << "\n";
301
- std::cout << std::setw(fieldWidth) << "UniqueUnions" << uniqueUnions << "\n";
302
- std::cout << std::setw(fieldWidth) << "LookupUnions" << lookupUnions << "\n";
299
+ std::cout << std::setw(fieldWidth) << "TotalUnions" << totalUnions << "\n";
300
+ std::cout << std::setw(fieldWidth) << "PropertyUnions" << propertyUnions << "\n";
301
+ std::cout << std::setw(fieldWidth) << "UniqueUnions" << uniqueUnions << "\n";
302
+ std::cout << std::setw(fieldWidth) << "LookupUnions" << lookupUnions << "\n";
303
+ std::cout << std::setw(fieldWidth) << "PreemptiveUnions" << preemptiveUnions << "\n";
303
304
 
304
- std::cout << std::setw(fieldWidth) << "TotalComplements" << totalComplements << "\n";
305
- std::cout << std::setw(fieldWidth) << "PropertyComplements" << propertyComplements << "\n";
306
- std::cout << std::setw(fieldWidth) << "UniqueComplements" << uniqueComplements << "\n";
307
- std::cout << std::setw(fieldWidth) << "LookupComplements" << lookupComplements << "\n";
305
+ std::cout << std::setw(fieldWidth) << "TotalComplements" << totalComplements << "\n";
306
+ std::cout << std::setw(fieldWidth) << "PropertyComplements" << propertyComplements << "\n";
307
+ std::cout << std::setw(fieldWidth) << "UniqueComplements" << uniqueComplements << "\n";
308
+ std::cout << std::setw(fieldWidth) << "LookupComplements" << lookupComplements << "\n";
309
+ std::cout << std::setw(fieldWidth) << "PreemptiveComplements" << preemptiveComplements << "\n";
308
310
 
309
- std::cout << std::setw(fieldWidth) << "TotalIntersections" << totalIntersections << "\n";
310
- std::cout << std::setw(fieldWidth) << "PropertyIntersections" << propertyIntersections << "\n";
311
- std::cout << std::setw(fieldWidth) << "UniqueIntersections" << uniqueIntersections << "\n";
312
- std::cout << std::setw(fieldWidth) << "LookupIntersections" << lookupIntersections << "\n";
311
+ std::cout << std::setw(fieldWidth) << "TotalIntersections" << totalIntersections << "\n";
312
+ std::cout << std::setw(fieldWidth) << "PropertyIntersections" << propertyIntersections << "\n";
313
+ std::cout << std::setw(fieldWidth) << "UniqueIntersections" << uniqueIntersections << "\n";
314
+ std::cout << std::setw(fieldWidth) << "LookupIntersections" << lookupIntersections << "\n";
315
+ std::cout << std::setw(fieldWidth) << "PreemptiveIntersections" << preemptiveIntersections << "\n";
313
316
 
314
317
  std::cout.flush();
315
318
  }
@@ -379,18 +382,21 @@ private:
379
382
  inline void initStats(void)
380
383
  {
381
384
 
382
- totalUnions = 0;
383
- uniqueUnions = 0;
384
- propertyUnions = 0;
385
- lookupUnions = 0;
386
- totalComplements = 0;
387
- uniqueComplements = 0;
388
- propertyComplements = 0;
389
- lookupComplements = 0;
390
- totalIntersections = 0;
391
- uniqueIntersections = 0;
392
- propertyIntersections = 0;
393
- lookupIntersections = 0;
385
+ totalUnions = 0;
386
+ uniqueUnions = 0;
387
+ propertyUnions = 0;
388
+ lookupUnions = 0;
389
+ preemptiveUnions = 0;
390
+ totalComplements = 0;
391
+ uniqueComplements = 0;
392
+ propertyComplements = 0;
393
+ lookupComplements = 0;
394
+ preemptiveComplements = 0;
395
+ totalIntersections = 0;
396
+ uniqueIntersections = 0;
397
+ propertyIntersections = 0;
398
+ lookupIntersections = 0;
399
+ preemptiveIntersections = 0;
394
400
  }
395
401
 
396
402
  private:
@@ -418,14 +424,17 @@ private:
418
424
  u64_t uniqueUnions;
419
425
  u64_t propertyUnions;
420
426
  u64_t lookupUnions;
427
+ u64_t preemptiveUnions;
421
428
  u64_t totalComplements;
422
429
  u64_t uniqueComplements;
423
430
  u64_t propertyComplements;
424
431
  u64_t lookupComplements;
432
+ u64_t preemptiveComplements;
425
433
  u64_t totalIntersections;
426
434
  u64_t uniqueIntersections;
427
435
  u64_t propertyIntersections;
428
436
  u64_t lookupIntersections;
437
+ u64_t preemptiveIntersections;
429
438
  };
430
439
 
431
440
  } // End namespace SVF
@@ -165,11 +165,7 @@ protected:
165
165
 
166
166
 
167
167
  /// Finalization of pointer analysis, and normalize points-to information to Bit Vector representation
168
- virtual void finalize()
169
- {
170
- normalizePointsTo();
171
- PointerAnalysis::finalize();
172
- }
168
+ virtual void finalize();
173
169
 
174
170
  /// Update callgraph. This should be implemented by its subclass.
175
171
  virtual inline bool updateCallGraph(const CallSiteToFunPtrMap&)
@@ -200,6 +200,14 @@ private:
200
200
  std::vector<Word> words;
201
201
  };
202
202
 
203
+ template <>
204
+ struct Hash<CoreBitVector>
205
+ {
206
+ size_t operator()(const CoreBitVector &cbv) const {
207
+ return cbv.hash();
208
+ }
209
+ };
210
+
203
211
  };
204
212
 
205
213
  #endif // COREBITVECTOR_H_
@@ -73,6 +73,9 @@ public:
73
73
  /// Time limit for the Andersen's analyses.
74
74
  static const llvm::cl::opt<unsigned> AnderTimeLimit;
75
75
 
76
+ /// Number of threads for the versioning phase.
77
+ static const llvm::cl::opt<unsigned> VersioningThreads;
78
+
76
79
  // ContextDDA.cpp
77
80
  static const llvm::cl::opt<unsigned long long> CxtBudget;
78
81
 
@@ -82,7 +82,6 @@ typedef u32_t EdgeID;
82
82
  typedef unsigned SymID;
83
83
  typedef unsigned CallSiteID;
84
84
  typedef unsigned ThreadID;
85
- typedef unsigned Version;
86
85
 
87
86
  typedef llvm::SparseBitVector<> NodeBS;
88
87
  typedef llvm::SparseBitVector<> SparseBitVector;
@@ -111,7 +110,6 @@ template <typename T, unsigned N>
111
110
  using SmallVector = llvm::SmallVector<T, N>;
112
111
 
113
112
  typedef std::pair<NodeID, NodeID> NodePair;
114
- typedef std::pair<NodeID, Version> VersionedVar;
115
113
  typedef OrderedSet<NodeID> OrderedNodeSet;
116
114
  typedef Set<NodeID> NodeSet;
117
115
  typedef Set<NodePair> NodePairSet;
@@ -127,6 +125,11 @@ typedef NodeSet EdgeSet;
127
125
  typedef SmallVector16 CallStrCxt;
128
126
  typedef llvm::StringMap<u32_t> StringMap;
129
127
 
128
+ typedef unsigned Version;
129
+ typedef Set<Version> VersionSet;
130
+ typedef std::pair<NodeID, Version> VersionedVar;
131
+ typedef Set<VersionedVar> VersionedVarSet;
132
+
130
133
  // TODO: be explicit that this is a pair of 32-bit unsigneds?
131
134
  template <> struct Hash<NodePair>
132
135
  {
@@ -298,4 +301,21 @@ struct std::hash<llvm::SparseBitVector<N>>
298
301
  }
299
302
  };
300
303
 
304
+ template <typename T>
305
+ struct std::hash<std::vector<T>>
306
+ {
307
+ size_t operator()(const std::vector<T> &v) const {
308
+ // TODO: repetition with CBV.
309
+ size_t h = v.size();
310
+
311
+ SVF::Hash<T> hf;
312
+ for (const T &t : v)
313
+ {
314
+ h ^= hf(t) + 0x9e3779b9 + (h << 6) + (h >> 2);
315
+ }
316
+
317
+ return h;
318
+ }
319
+ };
320
+
301
321
  #endif /* INCLUDE_UTIL_SVFBASICTYPES_H_ */