svf-tools 1.0.613 → 1.0.615

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 (542) hide show
  1. package/CMakeLists.txt +13 -0
  2. package/SVF-doxygen/html/html/AndersenPWC_8h_source.html +1 -1
  3. package/SVF-doxygen/html/html/AndersenSCD_8cpp_source.html +2 -2
  4. package/SVF-doxygen/html/html/AndersenSFR_8cpp_source.html +7 -6
  5. package/SVF-doxygen/html/html/AndersenStat_8cpp_source.html +15 -15
  6. package/SVF-doxygen/html/html/AndersenWaveDiff_8cpp_source.html +1 -1
  7. package/SVF-doxygen/html/html/Andersen_8cpp_source.html +22 -22
  8. package/SVF-doxygen/html/html/Andersen_8h_source.html +16 -16
  9. package/SVF-doxygen/html/html/CFLAlias_8cpp_source.html +6 -6
  10. package/SVF-doxygen/html/html/CFLAlias_8h_source.html +7 -7
  11. package/SVF-doxygen/html/html/CFLBase_8cpp_source.html +6 -6
  12. package/SVF-doxygen/html/html/CFLGrammar_8cpp_source.html +1 -1
  13. package/SVF-doxygen/html/html/CFLGrammar_8h_source.html +1 -1
  14. package/SVF-doxygen/html/html/CFLGraphBuilder_8cpp_source.html +5 -5
  15. package/SVF-doxygen/html/html/CFLGraph_8cpp_source.html +11 -11
  16. package/SVF-doxygen/html/html/CFLGraph_8h_source.html +1 -1
  17. package/SVF-doxygen/html/html/CFLVF_8cpp_source.html +2 -2
  18. package/SVF-doxygen/html/html/CHGBuilder_8cpp_source.html +5 -5
  19. package/SVF-doxygen/html/html/CHG_8h_source.html +1 -1
  20. package/SVF-doxygen/html/html/CSC_8cpp_source.html +1 -1
  21. package/SVF-doxygen/html/html/ConditionalPT_8h_source.html +14 -14
  22. package/SVF-doxygen/html/html/ConsGNode_8h_source.html +1 -1
  23. package/SVF-doxygen/html/html/ConsG_8cpp_source.html +3 -3
  24. package/SVF-doxygen/html/html/ConsG_8h_source.html +9 -9
  25. package/SVF-doxygen/html/html/ContextDDA_8cpp_source.html +18 -18
  26. package/SVF-doxygen/html/html/ContextDDA_8h_source.html +9 -9
  27. package/SVF-doxygen/html/html/DCHG_8cpp_source.html +4 -4
  28. package/SVF-doxygen/html/html/DCHG_8h_source.html +1 -1
  29. package/SVF-doxygen/html/html/DDAClient_8cpp_source.html +8 -8
  30. package/SVF-doxygen/html/html/DDAClient_8h_source.html +1 -1
  31. package/SVF-doxygen/html/html/DDAPass_8cpp_source.html +4 -6
  32. package/SVF-doxygen/html/html/DDAPass_8h_source.html +3 -3
  33. package/SVF-doxygen/html/html/DDAStat_8cpp_source.html +9 -9
  34. package/SVF-doxygen/html/html/DDAStat_8h_source.html +1 -1
  35. package/SVF-doxygen/html/html/DDAVFSolver_8h_source.html +22 -22
  36. package/SVF-doxygen/html/html/DoubleFreeChecker_8cpp_source.html +1 -1
  37. package/SVF-doxygen/html/html/DoubleFreeChecker_8h_source.html +1 -1
  38. package/SVF-doxygen/html/html/ExtAPI_8cpp_source.html +1 -1
  39. package/SVF-doxygen/html/html/FSMPTA_8cpp_source.html +21 -21
  40. package/SVF-doxygen/html/html/FSMPTA_8h_source.html +3 -3
  41. package/SVF-doxygen/html/html/FileChecker_8h_source.html +1 -1
  42. package/SVF-doxygen/html/html/FlowDDA_8cpp_source.html +10 -10
  43. package/SVF-doxygen/html/html/FlowDDA_8h_source.html +7 -7
  44. package/SVF-doxygen/html/html/FlowSensitiveStat_8cpp_source.html +13 -13
  45. package/SVF-doxygen/html/html/FlowSensitive_8cpp_source.html +27 -28
  46. package/SVF-doxygen/html/html/FlowSensitive_8h_source.html +65 -65
  47. package/SVF-doxygen/html/html/ICFGBuilder_8cpp_source.html +2 -2
  48. package/SVF-doxygen/html/html/ICFG_8cpp_source.html +2 -2
  49. package/SVF-doxygen/html/html/ICFG_8h_source.html +2 -2
  50. package/SVF-doxygen/html/html/IRAnnotator_8h_source.html +3 -3
  51. package/SVF-doxygen/html/html/IRGraph_8cpp_source.html +3 -3
  52. package/SVF-doxygen/html/html/IRGraph_8h_source.html +2 -2
  53. package/SVF-doxygen/html/html/LLVMLoopAnalysis_8cpp_source.html +6 -6
  54. package/SVF-doxygen/html/html/LLVMLoopAnalysis_8h_source.html +3 -3
  55. package/SVF-doxygen/html/html/LLVMModule_8cpp_source.html +24 -29
  56. package/SVF-doxygen/html/html/LLVMModule_8h_source.html +8 -8
  57. package/SVF-doxygen/html/html/LLVMUtil_8cpp_source.html +2 -2
  58. package/SVF-doxygen/html/html/LeakChecker_8cpp_source.html +9 -9
  59. package/SVF-doxygen/html/html/LeakChecker_8h_source.html +2 -2
  60. package/SVF-doxygen/html/html/LocationSet_8cpp_source.html +9 -9
  61. package/SVF-doxygen/html/html/LocationSet_8h_source.html +3 -3
  62. package/SVF-doxygen/html/html/LockAnalysis_8cpp_source.html +5 -5
  63. package/SVF-doxygen/html/html/LockAnalysis_8h_source.html +3 -3
  64. package/SVF-doxygen/html/html/LockResultValidator_8cpp_source.html +3 -3
  65. package/SVF-doxygen/html/html/MHP_8cpp_source.html +10 -10
  66. package/SVF-doxygen/html/html/MHP_8h_source.html +5 -5
  67. package/SVF-doxygen/html/html/MTAAnnotator_8cpp_source.html +17 -17
  68. package/SVF-doxygen/html/html/MTAResultValidator_8cpp_source.html +8 -8
  69. package/SVF-doxygen/html/html/MTAStat_8cpp_source.html +3 -3
  70. package/SVF-doxygen/html/html/MTA_8cpp_source.html +12 -17
  71. package/SVF-doxygen/html/html/MTA_8h_source.html +3 -4
  72. package/SVF-doxygen/html/html/MemPartition_8cpp_source.html +10 -10
  73. package/SVF-doxygen/html/html/MemPartition_8h_source.html +1 -1
  74. package/SVF-doxygen/html/html/MemRegion_8cpp_source.html +34 -34
  75. package/SVF-doxygen/html/html/MemRegion_8h_source.html +7 -7
  76. package/SVF-doxygen/html/html/MemSSA_8cpp_source.html +16 -15
  77. package/SVF-doxygen/html/html/MemSSA_8h_source.html +53 -52
  78. package/SVF-doxygen/html/html/MutablePointsToDS_8h_source.html +7 -8
  79. package/SVF-doxygen/html/html/NodeIDAllocator_8cpp_source.html +7 -7
  80. package/SVF-doxygen/html/html/Options_8cpp_source.html +52 -53
  81. package/SVF-doxygen/html/html/Options_8h_source.html +53 -54
  82. package/SVF-doxygen/html/html/PCG_8cpp_source.html +2 -2
  83. package/SVF-doxygen/html/html/PTACallGraph_8cpp_source.html +3 -3
  84. package/SVF-doxygen/html/html/PTACallGraph_8h_source.html +1 -1
  85. package/SVF-doxygen/html/html/PTAStat_8cpp_source.html +3 -3
  86. package/SVF-doxygen/html/html/PTAStat_8h_source.html +1 -1
  87. package/SVF-doxygen/html/html/PersistentPointsToCache_8h_source.html +33 -33
  88. package/SVF-doxygen/html/html/PersistentPointsToDS_8h_source.html +91 -95
  89. package/SVF-doxygen/html/html/PointerAnalysisImpl_8cpp_source.html +31 -39
  90. package/SVF-doxygen/html/html/PointerAnalysisImpl_8h_source.html +85 -92
  91. package/SVF-doxygen/html/html/PointerAnalysis_8cpp_source.html +20 -20
  92. package/SVF-doxygen/html/html/PointerAnalysis_8h_source.html +16 -16
  93. package/SVF-doxygen/html/html/PointsTo_8cpp.html +1 -0
  94. package/SVF-doxygen/html/html/PointsTo_8cpp_source.html +51 -51
  95. package/SVF-doxygen/html/html/PointsTo_8h_source.html +38 -38
  96. package/SVF-doxygen/html/html/ProgSlice_8cpp_source.html +6 -6
  97. package/SVF-doxygen/html/html/SCC_8h_source.html +4 -4
  98. package/SVF-doxygen/html/html/SVFGBuilder_8cpp_source.html +11 -22
  99. package/SVF-doxygen/html/html/SVFGBuilder_8h_source.html +14 -17
  100. package/SVF-doxygen/html/html/SVFGEdge_8h_source.html +1 -1
  101. package/SVF-doxygen/html/html/SVFGNode_8h_source.html +1 -1
  102. package/SVF-doxygen/html/html/SVFGOPT_8cpp_source.html +7 -7
  103. package/SVF-doxygen/html/html/SVFGOPT_8h_source.html +21 -19
  104. package/SVF-doxygen/html/html/SVFGReadWrite_8cpp_source.html +5 -5
  105. package/SVF-doxygen/html/html/SVFGStat_8cpp_source.html +18 -18
  106. package/SVF-doxygen/html/html/SVFG_8cpp_source.html +49 -62
  107. package/SVF-doxygen/html/html/SVFG_8h_source.html +45 -45
  108. package/SVF-doxygen/html/html/SVFIR2ItvExeState_8cpp_source.html +12 -12
  109. package/SVF-doxygen/html/html/SVFIRBuilder_8cpp_source.html +8 -8
  110. package/SVF-doxygen/html/html/SVFIRBuilder_8h_source.html +3 -3
  111. package/SVF-doxygen/html/html/SVFIR_8cpp_source.html +10 -16
  112. package/SVF-doxygen/html/html/SVFIR_8h_source.html +83 -83
  113. package/SVF-doxygen/html/html/SVFStat_8cpp_source.html +19 -19
  114. package/SVF-doxygen/html/html/SVFType_8h.html +22 -22
  115. package/SVF-doxygen/html/html/SVFType_8h_source.html +76 -77
  116. package/SVF-doxygen/html/html/SVFUtil_8cpp_source.html +5 -5
  117. package/SVF-doxygen/html/html/SVFUtil_8h_source.html +11 -11
  118. package/SVF-doxygen/html/html/SVFValue_8cpp_source.html +5 -5
  119. package/SVF-doxygen/html/html/SVFValue_8h_source.html +6 -6
  120. package/SVF-doxygen/html/html/SVFVariables_8cpp_source.html +1 -1
  121. package/SVF-doxygen/html/html/SVFVariables_8h_source.html +3 -3
  122. package/SVF-doxygen/html/html/SaberCondAllocator_8cpp_source.html +6 -6
  123. package/SVF-doxygen/html/html/SaberCondAllocator_8h_source.html +4 -4
  124. package/SVF-doxygen/html/html/SaberSVFGBuilder_8cpp_source.html +15 -15
  125. package/SVF-doxygen/html/html/SaberSVFGBuilder_8h_source.html +2 -3
  126. package/SVF-doxygen/html/html/SparseBitVector_8h_source.html +69 -71
  127. package/SVF-doxygen/html/html/SrcSnkDDA_8cpp_source.html +13 -13
  128. package/SVF-doxygen/html/html/SrcSnkDDA_8h_source.html +39 -39
  129. package/SVF-doxygen/html/html/Steensgaard_8h_source.html +1 -1
  130. package/SVF-doxygen/html/html/SymbolTableBuilder_8cpp_source.html +7 -7
  131. package/SVF-doxygen/html/html/SymbolTableInfo_8cpp_source.html +49 -51
  132. package/SVF-doxygen/html/html/SymbolTableInfo_8h_source.html +13 -13
  133. package/SVF-doxygen/html/html/TCT_8cpp_source.html +4 -4
  134. package/SVF-doxygen/html/html/TCT_8h_source.html +4 -4
  135. package/SVF-doxygen/html/html/ThreadCallGraph_8cpp_source.html +8 -8
  136. package/SVF-doxygen/html/html/TypeAnalysis_8cpp_source.html +3 -3
  137. package/SVF-doxygen/html/html/VFGNode_8h_source.html +1 -1
  138. package/SVF-doxygen/html/html/VFG_8cpp_source.html +17 -17
  139. package/SVF-doxygen/html/html/VFG_8h_source.html +5 -5
  140. package/SVF-doxygen/html/html/VersionedFlowSensitiveStat_8cpp_source.html +8 -8
  141. package/SVF-doxygen/html/html/VersionedFlowSensitive_8cpp_source.html +33 -33
  142. package/SVF-doxygen/html/html/VersionedFlowSensitive_8h_source.html +4 -4
  143. package/SVF-doxygen/html/html/WPAFSSolver_8h_source.html +11 -11
  144. package/SVF-doxygen/html/html/WPAPass_8cpp_source.html +12 -12
  145. package/SVF-doxygen/html/html/WPAPass_8h_source.html +2 -2
  146. package/SVF-doxygen/html/html/WPASolver_8h_source.html +25 -25
  147. package/SVF-doxygen/html/html/Z3Expr_8cpp_source.html +1 -1
  148. package/SVF-doxygen/html/html/cfl_8cpp.html +1 -5
  149. package/SVF-doxygen/html/html/cfl_8cpp_source.html +1 -5
  150. package/SVF-doxygen/html/html/classSVF_1_1ActualParmVFGNode.html +2 -2
  151. package/SVF-doxygen/html/html/classSVF_1_1ActualRetVFGNode.html +2 -2
  152. package/SVF-doxygen/html/html/classSVF_1_1AddrVFGNode.html +2 -2
  153. package/SVF-doxygen/html/html/classSVF_1_1AliasDDAClient.html +2 -2
  154. package/SVF-doxygen/html/html/classSVF_1_1Andersen-members.html +187 -188
  155. package/SVF-doxygen/html/html/classSVF_1_1Andersen.html +104 -107
  156. package/SVF-doxygen/html/html/classSVF_1_1AndersenBase-members.html +163 -164
  157. package/SVF-doxygen/html/html/classSVF_1_1AndersenBase.html +47 -50
  158. package/SVF-doxygen/html/html/classSVF_1_1AndersenSCD-members.html +194 -195
  159. package/SVF-doxygen/html/html/classSVF_1_1AndersenSCD.html +45 -48
  160. package/SVF-doxygen/html/html/classSVF_1_1AndersenSFR-members.html +204 -205
  161. package/SVF-doxygen/html/html/classSVF_1_1AndersenSFR.html +35 -38
  162. package/SVF-doxygen/html/html/classSVF_1_1AndersenStat.html +17 -17
  163. package/SVF-doxygen/html/html/classSVF_1_1AndersenWaveDiff-members.html +191 -192
  164. package/SVF-doxygen/html/html/classSVF_1_1AndersenWaveDiff.html +29 -32
  165. package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl-members.html +122 -123
  166. package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl.html +158 -219
  167. package/SVF-doxygen/html/html/classSVF_1_1BinaryOPVFGNode.html +2 -2
  168. package/SVF-doxygen/html/html/classSVF_1_1CFLAlias-members.html +137 -138
  169. package/SVF-doxygen/html/html/classSVF_1_1CFLAlias.html +57 -49
  170. package/SVF-doxygen/html/html/classSVF_1_1CFLBase-members.html +138 -139
  171. package/SVF-doxygen/html/html/classSVF_1_1CFLBase.html +34 -34
  172. package/SVF-doxygen/html/html/classSVF_1_1CFLGraph.html +7 -7
  173. package/SVF-doxygen/html/html/classSVF_1_1CFLGraphBuilder.html +1 -1
  174. package/SVF-doxygen/html/html/classSVF_1_1CFLVF-members.html +140 -141
  175. package/SVF-doxygen/html/html/classSVF_1_1CFLVF.html +30 -30
  176. package/SVF-doxygen/html/html/classSVF_1_1CHGBuilder.html +8 -8
  177. package/SVF-doxygen/html/html/classSVF_1_1CSC.html +2 -2
  178. package/SVF-doxygen/html/html/classSVF_1_1CallSite-members.html +1 -1
  179. package/SVF-doxygen/html/html/classSVF_1_1CallSite.html +10 -10
  180. package/SVF-doxygen/html/html/classSVF_1_1CmpVFGNode.html +2 -2
  181. package/SVF-doxygen/html/html/classSVF_1_1CondPTAImpl.html +114 -114
  182. package/SVF-doxygen/html/html/classSVF_1_1ConstraintGraph.html +6 -6
  183. package/SVF-doxygen/html/html/classSVF_1_1ConstraintNode.html +8 -8
  184. package/SVF-doxygen/html/html/classSVF_1_1ContextDDA.html +28 -28
  185. package/SVF-doxygen/html/html/classSVF_1_1CopyVFGNode.html +2 -2
  186. package/SVF-doxygen/html/html/classSVF_1_1DCHGraph.html +6 -6
  187. package/SVF-doxygen/html/html/classSVF_1_1DDAClient.html +4 -4
  188. package/SVF-doxygen/html/html/classSVF_1_1DDAPass-members.html +1 -1
  189. package/SVF-doxygen/html/html/classSVF_1_1DDAPass.html +17 -31
  190. package/SVF-doxygen/html/html/classSVF_1_1DDAStat.html +10 -10
  191. package/SVF-doxygen/html/html/classSVF_1_1DDAVFSolver.html +40 -40
  192. package/SVF-doxygen/html/html/classSVF_1_1DFPTData.html +15 -15
  193. package/SVF-doxygen/html/html/classSVF_1_1DiffPTData.html +4 -4
  194. package/SVF-doxygen/html/html/classSVF_1_1DistinctMRG.html +11 -11
  195. package/SVF-doxygen/html/html/classSVF_1_1DoubleFreeChecker-members.html +5 -5
  196. package/SVF-doxygen/html/html/classSVF_1_1DoubleFreeChecker.html +16 -16
  197. package/SVF-doxygen/html/html/classSVF_1_1DummyVersionPropSVFGNode.html +2 -2
  198. package/SVF-doxygen/html/html/classSVF_1_1ExtAPI.html +1 -1
  199. package/SVF-doxygen/html/html/classSVF_1_1FSMPTA-members.html +228 -229
  200. package/SVF-doxygen/html/html/classSVF_1_1FSMPTA.html +62 -65
  201. package/SVF-doxygen/html/html/classSVF_1_1FileChecker-members.html +5 -5
  202. package/SVF-doxygen/html/html/classSVF_1_1FileChecker.html +17 -17
  203. package/SVF-doxygen/html/html/classSVF_1_1FlowDDA-members.html +194 -195
  204. package/SVF-doxygen/html/html/classSVF_1_1FlowDDA.html +55 -55
  205. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitive-members.html +219 -220
  206. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitive.html +335 -342
  207. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveStat.html +57 -57
  208. package/SVF-doxygen/html/html/classSVF_1_1ForkJoinAnalysis.html +6 -6
  209. package/SVF-doxygen/html/html/classSVF_1_1FormalParmVFGNode.html +2 -2
  210. package/SVF-doxygen/html/html/classSVF_1_1FormalRetVFGNode.html +2 -2
  211. package/SVF-doxygen/html/html/classSVF_1_1FunptrDDAClient.html +4 -4
  212. package/SVF-doxygen/html/html/classSVF_1_1GepObjVar.html +2 -2
  213. package/SVF-doxygen/html/html/classSVF_1_1GepVFGNode.html +2 -2
  214. package/SVF-doxygen/html/html/classSVF_1_1ICFG-members.html +1 -1
  215. package/SVF-doxygen/html/html/classSVF_1_1ICFG.html +6 -6
  216. package/SVF-doxygen/html/html/classSVF_1_1ICFGBuilder.html +2 -2
  217. package/SVF-doxygen/html/html/classSVF_1_1IRAnnotator.html +4 -4
  218. package/SVF-doxygen/html/html/classSVF_1_1IRGraph.html +4 -4
  219. package/SVF-doxygen/html/html/classSVF_1_1InterDisjointMRG.html +2 -2
  220. package/SVF-doxygen/html/html/classSVF_1_1IntraDisjointMRG.html +8 -8
  221. package/SVF-doxygen/html/html/classSVF_1_1LLVMLoopAnalysis-members.html +1 -1
  222. package/SVF-doxygen/html/html/classSVF_1_1LLVMLoopAnalysis.html +20 -14
  223. package/SVF-doxygen/html/html/classSVF_1_1LLVMModuleSet-members.html +4 -4
  224. package/SVF-doxygen/html/html/classSVF_1_1LLVMModuleSet.html +108 -94
  225. package/SVF-doxygen/html/html/classSVF_1_1LeakChecker-members.html +5 -5
  226. package/SVF-doxygen/html/html/classSVF_1_1LeakChecker.html +36 -36
  227. package/SVF-doxygen/html/html/classSVF_1_1LoadVFGNode.html +2 -2
  228. package/SVF-doxygen/html/html/classSVF_1_1LocationSet.html +12 -12
  229. package/SVF-doxygen/html/html/classSVF_1_1LockAnalysis.html +25 -25
  230. package/SVF-doxygen/html/html/classSVF_1_1LockResultValidator.html +3 -3
  231. package/SVF-doxygen/html/html/classSVF_1_1MHP.html +26 -26
  232. package/SVF-doxygen/html/html/classSVF_1_1MRGenerator.html +87 -87
  233. package/SVF-doxygen/html/html/classSVF_1_1MTA-members.html +2 -2
  234. package/SVF-doxygen/html/html/classSVF_1_1MTA.html +27 -33
  235. package/SVF-doxygen/html/html/classSVF_1_1MTAAnnotator.html +21 -21
  236. package/SVF-doxygen/html/html/classSVF_1_1MTAResultValidator.html +14 -14
  237. package/SVF-doxygen/html/html/classSVF_1_1MTASVFGBuilder-members.html +41 -43
  238. package/SVF-doxygen/html/html/classSVF_1_1MTASVFGBuilder.html +57 -80
  239. package/SVF-doxygen/html/html/classSVF_1_1MTAStat.html +3 -3
  240. package/SVF-doxygen/html/html/classSVF_1_1MemObj.html +54 -54
  241. package/SVF-doxygen/html/html/classSVF_1_1MemRegion.html +4 -4
  242. package/SVF-doxygen/html/html/classSVF_1_1MemSSA-members.html +4 -3
  243. package/SVF-doxygen/html/html/classSVF_1_1MemSSA.html +170 -143
  244. package/SVF-doxygen/html/html/classSVF_1_1MemSSAStat.html +16 -16
  245. package/SVF-doxygen/html/html/classSVF_1_1MutableDFPTData.html +2 -2
  246. package/SVF-doxygen/html/html/classSVF_1_1MutableDiffPTData-members.html +3 -3
  247. package/SVF-doxygen/html/html/classSVF_1_1MutableDiffPTData.html +13 -15
  248. package/SVF-doxygen/html/html/classSVF_1_1NodeIDAllocator_1_1Clusterer.html +7 -7
  249. package/SVF-doxygen/html/html/classSVF_1_1NullPtrVFGNode.html +2 -2
  250. package/SVF-doxygen/html/html/classSVF_1_1ObjTypeInfo.html +8 -8
  251. package/SVF-doxygen/html/html/classSVF_1_1ObjVar.html +1 -1
  252. package/SVF-doxygen/html/html/classSVF_1_1Options-members.html +17 -18
  253. package/SVF-doxygen/html/html/classSVF_1_1Options.html +53 -79
  254. package/SVF-doxygen/html/html/classSVF_1_1PAGBuilderFromFile.html +2 -2
  255. package/SVF-doxygen/html/html/classSVF_1_1PCG.html +2 -2
  256. package/SVF-doxygen/html/html/classSVF_1_1PHIVFGNode.html +2 -2
  257. package/SVF-doxygen/html/html/classSVF_1_1PTACallGraph.html +3 -3
  258. package/SVF-doxygen/html/html/classSVF_1_1PTACallGraphNode.html +3 -3
  259. package/SVF-doxygen/html/html/classSVF_1_1PTAStat.html +4 -4
  260. package/SVF-doxygen/html/html/classSVF_1_1PTData.html +11 -11
  261. package/SVF-doxygen/html/html/classSVF_1_1PersistentDFPTData-members.html +28 -28
  262. package/SVF-doxygen/html/html/classSVF_1_1PersistentDFPTData.html +174 -177
  263. package/SVF-doxygen/html/html/classSVF_1_1PersistentDiffPTData-members.html +17 -17
  264. package/SVF-doxygen/html/html/classSVF_1_1PersistentDiffPTData.html +99 -102
  265. package/SVF-doxygen/html/html/classSVF_1_1PersistentIncDFPTData-members.html +30 -30
  266. package/SVF-doxygen/html/html/classSVF_1_1PersistentIncDFPTData.html +125 -127
  267. package/SVF-doxygen/html/html/classSVF_1_1PersistentPTData-members.html +13 -13
  268. package/SVF-doxygen/html/html/classSVF_1_1PersistentPTData.html +83 -86
  269. package/SVF-doxygen/html/html/classSVF_1_1PersistentPointsToCache-members.html +1 -1
  270. package/SVF-doxygen/html/html/classSVF_1_1PersistentPointsToCache.html +122 -122
  271. package/SVF-doxygen/html/html/classSVF_1_1PersistentVersionedPTData-members.html +22 -22
  272. package/SVF-doxygen/html/html/classSVF_1_1PersistentVersionedPTData.html +137 -140
  273. package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis.html +56 -56
  274. package/SVF-doxygen/html/html/classSVF_1_1PointsTo-members.html +16 -16
  275. package/SVF-doxygen/html/html/classSVF_1_1PointsTo.html +183 -178
  276. package/SVF-doxygen/html/html/classSVF_1_1PointsTo_1_1PointsToIterator-members.html +7 -7
  277. package/SVF-doxygen/html/html/classSVF_1_1PointsTo_1_1PointsToIterator.html +87 -65
  278. package/SVF-doxygen/html/html/classSVF_1_1ProgSlice.html +6 -6
  279. package/SVF-doxygen/html/html/classSVF_1_1SCCDetection.html +3 -3
  280. package/SVF-doxygen/html/html/classSVF_1_1SCCDetection_1_1GNodeSCCInfo.html +1 -1
  281. package/SVF-doxygen/html/html/classSVF_1_1SVFArgument-members.html +1 -1
  282. package/SVF-doxygen/html/html/classSVF_1_1SVFArgument.html +4 -4
  283. package/SVF-doxygen/html/html/classSVF_1_1SVFArrayType.html +6 -6
  284. package/SVF-doxygen/html/html/classSVF_1_1SVFBasicBlock-members.html +3 -3
  285. package/SVF-doxygen/html/html/classSVF_1_1SVFBasicBlock.html +13 -16
  286. package/SVF-doxygen/html/html/classSVF_1_1SVFBlackHoleValue-members.html +1 -1
  287. package/SVF-doxygen/html/html/classSVF_1_1SVFBlackHoleValue.html +2 -2
  288. package/SVF-doxygen/html/html/classSVF_1_1SVFCallInst-members.html +1 -1
  289. package/SVF-doxygen/html/html/classSVF_1_1SVFCallInst.html +2 -2
  290. package/SVF-doxygen/html/html/classSVF_1_1SVFConstant-members.html +1 -1
  291. package/SVF-doxygen/html/html/classSVF_1_1SVFConstant.html +3 -3
  292. package/SVF-doxygen/html/html/classSVF_1_1SVFConstantData-members.html +1 -1
  293. package/SVF-doxygen/html/html/classSVF_1_1SVFConstantData.html +2 -2
  294. package/SVF-doxygen/html/html/classSVF_1_1SVFConstantFP-members.html +1 -1
  295. package/SVF-doxygen/html/html/classSVF_1_1SVFConstantFP.html +2 -2
  296. package/SVF-doxygen/html/html/classSVF_1_1SVFConstantInt-members.html +1 -1
  297. package/SVF-doxygen/html/html/classSVF_1_1SVFConstantInt.html +2 -2
  298. package/SVF-doxygen/html/html/classSVF_1_1SVFConstantNullPtr-members.html +1 -1
  299. package/SVF-doxygen/html/html/classSVF_1_1SVFConstantNullPtr.html +2 -2
  300. package/SVF-doxygen/html/html/classSVF_1_1SVFFunction-members.html +1 -1
  301. package/SVF-doxygen/html/html/classSVF_1_1SVFFunction.html +5 -7
  302. package/SVF-doxygen/html/html/classSVF_1_1SVFFunctionType.html +9 -9
  303. package/SVF-doxygen/html/html/classSVF_1_1SVFG-members.html +2 -2
  304. package/SVF-doxygen/html/html/classSVF_1_1SVFG.html +211 -236
  305. package/SVF-doxygen/html/html/classSVF_1_1SVFGBuilder-members.html +7 -9
  306. package/SVF-doxygen/html/html/classSVF_1_1SVFGBuilder.html +50 -138
  307. package/SVF-doxygen/html/html/classSVF_1_1SVFGOPT-members.html +9 -9
  308. package/SVF-doxygen/html/html/classSVF_1_1SVFGOPT.html +82 -82
  309. package/SVF-doxygen/html/html/classSVF_1_1SVFGStat.html +5 -5
  310. package/SVF-doxygen/html/html/classSVF_1_1SVFGlobalValue-members.html +1 -1
  311. package/SVF-doxygen/html/html/classSVF_1_1SVFGlobalValue.html +2 -2
  312. package/SVF-doxygen/html/html/classSVF_1_1SVFIR-members.html +1 -1
  313. package/SVF-doxygen/html/html/classSVF_1_1SVFIR.html +203 -215
  314. package/SVF-doxygen/html/html/classSVF_1_1SVFIR2ItvExeState.html +13 -13
  315. package/SVF-doxygen/html/html/classSVF_1_1SVFIRBuilder.html +79 -79
  316. package/SVF-doxygen/html/html/classSVF_1_1SVFInstruction-members.html +1 -1
  317. package/SVF-doxygen/html/html/classSVF_1_1SVFInstruction.html +4 -4
  318. package/SVF-doxygen/html/html/classSVF_1_1SVFIntergerType.html +5 -5
  319. package/SVF-doxygen/html/html/classSVF_1_1SVFLoopAndDomInfo-members.html +1 -1
  320. package/SVF-doxygen/html/html/classSVF_1_1SVFLoopAndDomInfo.html +5 -5
  321. package/SVF-doxygen/html/html/classSVF_1_1SVFMetadataAsValue-members.html +1 -1
  322. package/SVF-doxygen/html/html/classSVF_1_1SVFMetadataAsValue.html +2 -2
  323. package/SVF-doxygen/html/html/classSVF_1_1SVFModule.html +0 -4
  324. package/SVF-doxygen/html/html/classSVF_1_1SVFOtherType.html +5 -5
  325. package/SVF-doxygen/html/html/classSVF_1_1SVFOtherValue-members.html +1 -1
  326. package/SVF-doxygen/html/html/classSVF_1_1SVFOtherValue.html +3 -3
  327. package/SVF-doxygen/html/html/classSVF_1_1SVFPointerType.html +9 -9
  328. package/SVF-doxygen/html/html/classSVF_1_1SVFStat.html +19 -19
  329. package/SVF-doxygen/html/html/classSVF_1_1SVFStructType.html +5 -5
  330. package/SVF-doxygen/html/html/classSVF_1_1SVFType.html +38 -38
  331. package/SVF-doxygen/html/html/classSVF_1_1SVFValue-members.html +1 -1
  332. package/SVF-doxygen/html/html/classSVF_1_1SVFValue.html +4 -5
  333. package/SVF-doxygen/html/html/classSVF_1_1SVFVar.html +1 -1
  334. package/SVF-doxygen/html/html/classSVF_1_1SVFVirtualCallInst-members.html +1 -1
  335. package/SVF-doxygen/html/html/classSVF_1_1SVFVirtualCallInst.html +2 -2
  336. package/SVF-doxygen/html/html/classSVF_1_1SaberCondAllocator.html +9 -9
  337. package/SVF-doxygen/html/html/classSVF_1_1SaberSVFGBuilder-members.html +12 -14
  338. package/SVF-doxygen/html/html/classSVF_1_1SaberSVFGBuilder.html +42 -68
  339. package/SVF-doxygen/html/html/classSVF_1_1SparseBitVector-members.html +1 -1
  340. package/SVF-doxygen/html/html/classSVF_1_1SparseBitVector.html +108 -109
  341. package/SVF-doxygen/html/html/classSVF_1_1SparseBitVector_1_1SparseBitVectorIterator-members.html +1 -1
  342. package/SVF-doxygen/html/html/classSVF_1_1SparseBitVector_1_1SparseBitVectorIterator.html +50 -50
  343. package/SVF-doxygen/html/html/classSVF_1_1SrcSnkDDA-members.html +6 -6
  344. package/SVF-doxygen/html/html/classSVF_1_1SrcSnkDDA.html +146 -146
  345. package/SVF-doxygen/html/html/classSVF_1_1StInfo-members.html +5 -5
  346. package/SVF-doxygen/html/html/classSVF_1_1StInfo.html +48 -61
  347. package/SVF-doxygen/html/html/classSVF_1_1Steensgaard-members.html +178 -179
  348. package/SVF-doxygen/html/html/classSVF_1_1Steensgaard.html +35 -38
  349. package/SVF-doxygen/html/html/classSVF_1_1StoreVFGNode.html +1 -1
  350. package/SVF-doxygen/html/html/classSVF_1_1SymbolTableBuilder.html +20 -20
  351. package/SVF-doxygen/html/html/classSVF_1_1SymbolTableInfo.html +42 -46
  352. package/SVF-doxygen/html/html/classSVF_1_1TCT.html +10 -10
  353. package/SVF-doxygen/html/html/classSVF_1_1ThreadCallGraph.html +8 -8
  354. package/SVF-doxygen/html/html/classSVF_1_1TypeAnalysis-members.html +169 -170
  355. package/SVF-doxygen/html/html/classSVF_1_1TypeAnalysis.html +31 -34
  356. package/SVF-doxygen/html/html/classSVF_1_1UnaryOPVFGNode.html +2 -2
  357. package/SVF-doxygen/html/html/classSVF_1_1VFG.html +28 -28
  358. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive-members.html +263 -264
  359. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive.html +112 -115
  360. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitiveStat.html +41 -41
  361. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive_1_1SCC.html +1 -1
  362. package/SVF-doxygen/html/html/classSVF_1_1VersionedPTData.html +9 -9
  363. package/SVF-doxygen/html/html/classSVF_1_1WPAFSSolver-members.html +2 -2
  364. package/SVF-doxygen/html/html/classSVF_1_1WPAFSSolver.html +9 -9
  365. package/SVF-doxygen/html/html/classSVF_1_1WPAMinimumSolver-members.html +2 -2
  366. package/SVF-doxygen/html/html/classSVF_1_1WPAMinimumSolver.html +15 -15
  367. package/SVF-doxygen/html/html/classSVF_1_1WPAPass.html +25 -25
  368. package/SVF-doxygen/html/html/classSVF_1_1WPASCCSolver-members.html +2 -2
  369. package/SVF-doxygen/html/html/classSVF_1_1WPASCCSolver.html +17 -17
  370. package/SVF-doxygen/html/html/classSVF_1_1WPASolver-members.html +2 -2
  371. package/SVF-doxygen/html/html/classSVF_1_1WPASolver.html +76 -81
  372. package/SVF-doxygen/html/html/classSVF_1_1Z3Expr.html +2 -2
  373. package/SVF-doxygen/html/html/dda_8cpp.html +1 -1
  374. package/SVF-doxygen/html/html/dda_8cpp_source.html +1 -1
  375. package/SVF-doxygen/html/html/functions.html +1 -1
  376. package/SVF-doxygen/html/html/functions_0x7e.html +16 -16
  377. package/SVF-doxygen/html/html/functions_a.html +7 -7
  378. package/SVF-doxygen/html/html/functions_b.html +6 -6
  379. package/SVF-doxygen/html/html/functions_c.html +27 -27
  380. package/SVF-doxygen/html/html/functions_d.html +10 -11
  381. package/SVF-doxygen/html/html/functions_e.html +2 -2
  382. package/SVF-doxygen/html/html/functions_f.html +6 -6
  383. package/SVF-doxygen/html/html/functions_func.html +6 -6
  384. package/SVF-doxygen/html/html/functions_func_0x7e.html +16 -16
  385. package/SVF-doxygen/html/html/functions_func_b.html +6 -6
  386. package/SVF-doxygen/html/html/functions_func_c.html +27 -27
  387. package/SVF-doxygen/html/html/functions_func_d.html +10 -11
  388. package/SVF-doxygen/html/html/functions_func_e.html +2 -2
  389. package/SVF-doxygen/html/html/functions_func_f.html +5 -5
  390. package/SVF-doxygen/html/html/functions_func_g.html +22 -22
  391. package/SVF-doxygen/html/html/functions_func_h.html +3 -3
  392. package/SVF-doxygen/html/html/functions_func_i.html +3 -3
  393. package/SVF-doxygen/html/html/functions_func_o.html +3 -3
  394. package/SVF-doxygen/html/html/functions_func_p.html +5 -5
  395. package/SVF-doxygen/html/html/functions_func_r.html +5 -8
  396. package/SVF-doxygen/html/html/functions_func_s.html +6 -6
  397. package/SVF-doxygen/html/html/functions_func_t.html +1 -1
  398. package/SVF-doxygen/html/html/functions_func_u.html +23 -23
  399. package/SVF-doxygen/html/html/functions_g.html +25 -28
  400. package/SVF-doxygen/html/html/functions_h.html +3 -3
  401. package/SVF-doxygen/html/html/functions_i.html +6 -6
  402. package/SVF-doxygen/html/html/functions_m.html +1 -1
  403. package/SVF-doxygen/html/html/functions_o.html +13 -13
  404. package/SVF-doxygen/html/html/functions_p.html +19 -19
  405. package/SVF-doxygen/html/html/functions_r.html +11 -12
  406. package/SVF-doxygen/html/html/functions_s.html +33 -36
  407. package/SVF-doxygen/html/html/functions_t.html +12 -12
  408. package/SVF-doxygen/html/html/functions_type_t.html +1 -1
  409. package/SVF-doxygen/html/html/functions_u.html +26 -23
  410. package/SVF-doxygen/html/html/functions_v.html +6 -6
  411. package/SVF-doxygen/html/html/functions_vars.html +1 -1
  412. package/SVF-doxygen/html/html/functions_vars_f.html +1 -1
  413. package/SVF-doxygen/html/html/functions_vars_g.html +0 -3
  414. package/SVF-doxygen/html/html/functions_vars_i.html +1 -1
  415. package/SVF-doxygen/html/html/functions_vars_m.html +1 -1
  416. package/SVF-doxygen/html/html/functions_vars_p.html +2 -2
  417. package/SVF-doxygen/html/html/functions_vars_s.html +5 -8
  418. package/SVF-doxygen/html/html/functions_vars_t.html +1 -1
  419. package/SVF-doxygen/html/html/functions_vars_u.html +3 -0
  420. package/SVF-doxygen/html/html/functions_w.html +3 -7
  421. package/SVF-doxygen/html/html/include_2MTA_2MTAResultValidator_8h_source.html +1 -1
  422. package/SVF-doxygen/html/html/mta_8cpp.html +1 -1
  423. package/SVF-doxygen/html/html/mta_8cpp_source.html +1 -1
  424. package/SVF-doxygen/html/html/namespaceSVF.html +35 -35
  425. package/SVF-doxygen/html/html/namespaceSVF_1_1LLVMUtil.html +2 -2
  426. package/SVF-doxygen/html/html/namespaceSVF_1_1SVFUtil.html +4 -4
  427. package/SVF-doxygen/html/html/saber_8cpp.html +1 -5
  428. package/SVF-doxygen/html/html/saber_8cpp_source.html +1 -5
  429. package/SVF-doxygen/html/html/search/all_0.js +1 -1
  430. package/SVF-doxygen/html/html/search/all_1.js +4 -4
  431. package/SVF-doxygen/html/html/search/all_10.js +15 -15
  432. package/SVF-doxygen/html/html/search/all_11.js +1 -2
  433. package/SVF-doxygen/html/html/search/all_12.js +20 -21
  434. package/SVF-doxygen/html/html/search/all_13.js +8 -8
  435. package/SVF-doxygen/html/html/search/all_14.js +13 -12
  436. package/SVF-doxygen/html/html/search/all_15.js +4 -4
  437. package/SVF-doxygen/html/html/search/all_16.js +2 -2
  438. package/SVF-doxygen/html/html/search/all_19.js +16 -16
  439. package/SVF-doxygen/html/html/search/all_2.js +6 -6
  440. package/SVF-doxygen/html/html/search/all_3.js +14 -14
  441. package/SVF-doxygen/html/html/search/all_4.js +5 -5
  442. package/SVF-doxygen/html/html/search/all_5.js +2 -2
  443. package/SVF-doxygen/html/html/search/all_6.js +5 -5
  444. package/SVF-doxygen/html/html/search/all_7.js +11 -12
  445. package/SVF-doxygen/html/html/search/all_8.js +3 -3
  446. package/SVF-doxygen/html/html/search/all_9.js +4 -4
  447. package/SVF-doxygen/html/html/search/all_b.js +1 -1
  448. package/SVF-doxygen/html/html/search/all_c.js +3 -3
  449. package/SVF-doxygen/html/html/search/all_d.js +3 -3
  450. package/SVF-doxygen/html/html/search/all_e.js +2 -2
  451. package/SVF-doxygen/html/html/search/all_f.js +5 -5
  452. package/SVF-doxygen/html/html/search/functions_0.js +4 -4
  453. package/SVF-doxygen/html/html/search/functions_1.js +6 -6
  454. package/SVF-doxygen/html/html/search/functions_10.js +1 -2
  455. package/SVF-doxygen/html/html/search/functions_11.js +11 -11
  456. package/SVF-doxygen/html/html/search/functions_12.js +1 -1
  457. package/SVF-doxygen/html/html/search/functions_13.js +12 -12
  458. package/SVF-doxygen/html/html/search/functions_17.js +16 -16
  459. package/SVF-doxygen/html/html/search/functions_2.js +14 -14
  460. package/SVF-doxygen/html/html/search/functions_3.js +5 -5
  461. package/SVF-doxygen/html/html/search/functions_4.js +2 -2
  462. package/SVF-doxygen/html/html/search/functions_5.js +4 -4
  463. package/SVF-doxygen/html/html/search/functions_6.js +11 -11
  464. package/SVF-doxygen/html/html/search/functions_7.js +3 -3
  465. package/SVF-doxygen/html/html/search/functions_8.js +3 -3
  466. package/SVF-doxygen/html/html/search/functions_d.js +1 -1
  467. package/SVF-doxygen/html/html/search/functions_e.js +3 -3
  468. package/SVF-doxygen/html/html/search/functions_f.js +5 -5
  469. package/SVF-doxygen/html/html/search/typedefs_11.js +1 -1
  470. package/SVF-doxygen/html/html/search/variables_0.js +1 -1
  471. package/SVF-doxygen/html/html/search/variables_10.js +2 -2
  472. package/SVF-doxygen/html/html/search/variables_12.js +5 -6
  473. package/SVF-doxygen/html/html/search/variables_13.js +3 -3
  474. package/SVF-doxygen/html/html/search/variables_14.js +1 -0
  475. package/SVF-doxygen/html/html/search/variables_6.js +1 -1
  476. package/SVF-doxygen/html/html/search/variables_7.js +0 -1
  477. package/SVF-doxygen/html/html/search/variables_9.js +1 -1
  478. package/SVF-doxygen/html/html/search/variables_d.js +1 -1
  479. package/SVF-doxygen/html/html/search/variables_e.js +1 -1
  480. package/SVF-doxygen/html/html/structSVF_1_1DOTGraphTraits_3_01CFLGraph_01_5_01_4.html +14 -14
  481. package/SVF-doxygen/html/html/structSVF_1_1DOTGraphTraits_3_01ConstraintGraph_01_5_01_4.html +2 -2
  482. package/SVF-doxygen/html/html/structSVF_1_1DOTGraphTraits_3_01IRGraph_01_5_01_4.html +1 -1
  483. package/SVF-doxygen/html/html/structSVF_1_1DOTGraphTraits_3_01SVFG_01_5_01_4.html +1 -1
  484. package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1SVFG_01_5_01_4.html +2 -2
  485. package/SVF-doxygen/html/html/structSVF_1_1Hash_3_01NodePair_01_4.html +3 -3
  486. package/SVF-doxygen/html/html/structSVF_1_1SparseBitVectorElement-members.html +1 -1
  487. package/SVF-doxygen/html/html/structSVF_1_1SparseBitVectorElement.html +47 -57
  488. package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1NodePair_01_4.html +3 -3
  489. package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1PointsTo_01_4.html +1 -1
  490. package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1SparseBitVector_3_01N_01_4_01_4.html +5 -5
  491. package/SVF-doxygen/html/html/structstd_1_1hash_3_01std_1_1vector_3_01T_01_4_01_4.html +3 -3
  492. package/SVF-doxygen/html/html/svf-ex_8cpp.html +6 -7
  493. package/SVF-doxygen/html/html/svf-ex_8cpp_source.html +7 -7
  494. package/SVF-doxygen/html/html/tools_2MTA_2MTAResultValidator_8h_source.html +1 -1
  495. package/SVF-doxygen/html/html/wpa_8cpp.html +1 -1
  496. package/SVF-doxygen/html/html/wpa_8cpp_source.html +1 -1
  497. package/build.sh +2 -2
  498. package/include/DDA/DDAPass.h +1 -1
  499. package/include/DDA/FlowDDA.h +1 -1
  500. package/include/Graphs/ICFG.h +1 -1
  501. package/include/Graphs/SVFG.h +3 -4
  502. package/include/Graphs/SVFGOPT.h +7 -7
  503. package/include/MSSA/MemSSA.h +2 -0
  504. package/include/MSSA/SVFGBuilder.h +5 -14
  505. package/include/MTA/MTA.h +2 -2
  506. package/include/MemoryModel/MutablePointsToDS.h +3 -3
  507. package/include/MemoryModel/PersistentPointsToCache.h +7 -8
  508. package/include/MemoryModel/PersistentPointsToDS.h +93 -93
  509. package/include/MemoryModel/PointerAnalysisImpl.h +17 -28
  510. package/include/MemoryModel/PointsTo.h +24 -24
  511. package/include/SABER/SrcSnkDDA.h +10 -13
  512. package/include/SVF-LLVM/LLVMLoopAnalysis.h +2 -1
  513. package/include/SVF-LLVM/LLVMModule.h +6 -6
  514. package/include/SVFIR/SVFIR.h +3 -5
  515. package/include/SVFIR/SVFType.h +6 -8
  516. package/include/SVFIR/SVFValue.h +5 -5
  517. package/include/Util/Options.h +0 -1
  518. package/include/Util/SparseBitVector.h +6 -14
  519. package/include/WPA/FlowSensitive.h +13 -20
  520. package/include/WPA/WPASolver.h +5 -9
  521. package/lib/DDA/DDAPass.cpp +4 -4
  522. package/lib/Graphs/CFLGraph.cpp +3 -0
  523. package/lib/Graphs/SVFG.cpp +1 -1
  524. package/lib/MSSA/MemSSA.cpp +5 -3
  525. package/lib/MSSA/SVFGBuilder.cpp +9 -27
  526. package/lib/MTA/MTA.cpp +4 -4
  527. package/lib/MemoryModel/PointerAnalysisImpl.cpp +10 -10
  528. package/lib/MemoryModel/PointsTo.cpp +23 -19
  529. package/lib/SVF-LLVM/LLVMLoopAnalysis.cpp +3 -4
  530. package/lib/SVF-LLVM/LLVMModule.cpp +32 -21
  531. package/lib/SVFIR/SVFIR.cpp +1 -1
  532. package/lib/SVFIR/SymbolTableInfo.cpp +4 -15
  533. package/lib/Util/Options.cpp +0 -6
  534. package/lib/WPA/AndersenSFR.cpp +1 -1
  535. package/lib/WPA/FlowSensitive.cpp +1 -1
  536. package/package.json +1 -1
  537. package/tools/CFL/cfl.cpp +5 -4
  538. package/tools/DDA/dda.cpp +3 -2
  539. package/tools/Example/svf-ex.cpp +3 -2
  540. package/tools/MTA/mta.cpp +6 -4
  541. package/tools/SABER/saber.cpp +7 -5
  542. package/tools/WPA/wpa.cpp +3 -2
@@ -66,7 +66,7 @@ $(function() {
66
66
  <div class="title">VersionedFlowSensitive.h</div> </div>
67
67
  </div><!--header-->
68
68
  <div class="contents">
69
- <a href="VersionedFlowSensitive_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">//===- VersionedFlowSensitive.h -- Versioned flow-sensitive pointer analysis --------//</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;</div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> * VersionedFlowSensitiveAnalysis.h</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> * Created on: Jun 26, 2020</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment"> * Author: Mohamad Barbar</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment"> * The implementation is based on</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment"> * Mohamad Barbar, Yulei Sui and Shiping Chen. &quot;Object Versioning for Flow-Sensitive Pointer Analysis&quot;.</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment"> * International Symposium on Code Generation and Optimization (CGO&#39;21)</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;</div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="preprocessor">#ifndef VFS_H_</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="preprocessor">#define VFS_H_</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;</div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="SVFGOPT_8h.html">Graphs/SVFGOPT.h</a>&quot;</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="SVFGBuilder_8h.html">MSSA/SVFGBuilder.h</a>&quot;</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="FlowSensitive_8h.html">WPA/FlowSensitive.h</a>&quot;</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="WPAFSSolver_8h.html">WPA/WPAFSSolver.h</a>&quot;</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="PointsTo_8h.html">MemoryModel/PointsTo.h</a>&quot;</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespaceSVF.html">SVF</a></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;{</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="keyword">class </span>AndersenWaveDiff;</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="keyword">class </span>SVFModule;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"><a class="line" href="classSVF_1_1VersionedFlowSensitive.html"> 32</a></span>&#160;<span class="keyword">class </span><a class="code" href="classSVF_1_1VersionedFlowSensitive.html">VersionedFlowSensitive</a> : <span class="keyword">public</span> <a class="code" href="classSVF_1_1FlowSensitive.html">FlowSensitive</a></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;{</div><div class="line"><a name="l00034"></a><span class="lineno"><a class="line" href="classSVF_1_1VersionedFlowSensitive.html#aaee58f266762146e9fdc08ecfc326b29"> 34</a></span>&#160; <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classSVF_1_1VersionedFlowSensitiveStat.html">VersionedFlowSensitiveStat</a>;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00037"></a><span class="lineno"><a class="line" href="classSVF_1_1VersionedFlowSensitive.html#a630eeca9c3344d24fa196f7de45bce18"> 37</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="classSVF_1_1CoreBitVector.html">CoreBitVector</a> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#a630eeca9c3344d24fa196f7de45bce18">MeldVersion</a>;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00040"></a><span class="lineno"><a class="line" href="classSVF_1_1VersionedFlowSensitive.html#af9a43f48b7d99cc6694f3ae3248fd8e0"> 40</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map&lt;NodeID, Version&gt;</a> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#af9a43f48b7d99cc6694f3ae3248fd8e0">ObjToVersionMap</a>;</div><div class="line"><a name="l00041"></a><span class="lineno"><a class="line" href="classSVF_1_1VersionedFlowSensitive.html#a9ee5add09f2b446c6c6bcb84da0f75b3"> 41</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map&lt;VersionedVar, const DummyVersionPropSVFGNode *&gt;</a> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#a9ee5add09f2b446c6c6bcb84da0f75b3">VarToPropNodeMap</a>;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;</div><div class="line"><a name="l00043"></a><span class="lineno"><a class="line" href="classSVF_1_1VersionedFlowSensitive.html#aa689d29ead80303b1ef1e1a91f31c296"> 43</a></span>&#160; <span class="keyword">typedef</span> std::vector&lt;ObjToVersionMap&gt; <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#aa689d29ead80303b1ef1e1a91f31c296">LocVersionMap</a>;</div><div class="line"><a name="l00045"></a><span class="lineno"><a class="line" href="classSVF_1_1VersionedFlowSensitive.html#ad8108ee0b034877dea5e927d29ca0534"> 45</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map&lt;NodeID, Map&lt;Version, std::vector&lt;Version&gt;</a>&gt;&gt; <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#ad8108ee0b034877dea5e927d29ca0534">VersionRelianceMap</a>;</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;</div><div class="line"><a name="l00048"></a><span class="lineno"><a class="line" href="classSVF_1_1VersionedFlowSensitive.html#a3d44a343a2e3f5d276fd1b069c92e112"> 48</a></span>&#160; <span class="keyword">static</span> <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a9ec7a8dc63411ee3724a25a59191be0c">Version</a> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#a3d44a343a2e3f5d276fd1b069c92e112">invalidVersion</a>;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <span class="keyword">static</span> <a class="code" href="namespaceSVF.html#a32489632f53dce062ca2e8bff42c65cf">VersionedVar</a> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#a59f3dd74ed8c3e2fc48b9353ba2452aa">atKey</a>(<a class="code" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a>, <a class="code" href="namespaceSVF.html#a9ec7a8dc63411ee3724a25a59191be0c">Version</a>);</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#ab88b7a966177e620c552d507b3763e17">VersionedFlowSensitive</a>(<a class="code" href="classSVF_1_1SVFIR.html">SVFIR</a> *_pag, <a class="code" href="classSVF_1_1PointerAnalysis.html#a0b182ac680cce0547dbe7714c870ca85">PTATY</a> <a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a> = <a class="code" href="classSVF_1_1PointerAnalysis.html#a0b182ac680cce0547dbe7714c870ca85a412254a7738029bf3ee96f5c15a6bec9">VFS_WPA</a>);</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#a81d3528fd082018e4345f0b026bf3584">initialize</a>() <span class="keyword">override</span>;</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#ad955fda89f4f749151a1bd14562b03f6">finalize</a>() <span class="keyword">override</span>;</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;</div><div class="line"><a name="l00063"></a><span class="lineno"><a class="line" href="classSVF_1_1VersionedFlowSensitive.html#a6e4964389f96667bd69354fd4a742720"> 63</a></span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#a6e4964389f96667bd69354fd4a742720">PTAName</a>()<span class="keyword"> const override</span></div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <span class="keywordflow">return</span> <span class="stringliteral">&quot;VersionedFlowSensitive&quot;</span>;</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; }</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;</div><div class="line"><a name="l00070"></a><span class="lineno"><a class="line" href="classSVF_1_1VersionedFlowSensitive.html#afd1e0d4445e1e50e95f816e51f8de3c8"> 70</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#afd1e0d4445e1e50e95f816e51f8de3c8">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html">VersionedFlowSensitive</a> *)</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; {</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; }</div><div class="line"><a name="l00074"></a><span class="lineno"><a class="line" href="classSVF_1_1VersionedFlowSensitive.html#abe1874f12ba05b4f453604c6d91598d6"> 74</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#abe1874f12ba05b4f453604c6d91598d6">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1PointerAnalysis.html">PointerAnalysis</a> *pta)</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; {</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <span class="keywordflow">return</span> pta-&gt;<a class="code" href="classSVF_1_1PointerAnalysis.html#ac23f71c1307cda9cba44acc40059f0a3">getAnalysisTy</a>() == <a class="code" href="classSVF_1_1PointerAnalysis.html#a0b182ac680cce0547dbe7714c870ca85a412254a7738029bf3ee96f5c15a6bec9">VFS_WPA</a>;</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; }</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;</div><div class="line"><a name="l00081"></a><span class="lineno"><a class="line" href="classSVF_1_1VersionedFlowSensitive.html#ae7cf16ad79c13104dd9981e6b984057e"> 81</a></span>&#160; <span class="keyword">static</span> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html">VersionedFlowSensitive</a> *<a class="code" href="classSVF_1_1VersionedFlowSensitive.html#ae7cf16ad79c13104dd9981e6b984057e">createVFSWPA</a>(<a class="code" href="classSVF_1_1SVFIR.html">SVFIR</a> *_pag)</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; {</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1VersionedFlowSensitive.html#a53b8a881400d7b353133c68295812efb">vfspta</a> == <span class="keyword">nullptr</span>)</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; {</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#a53b8a881400d7b353133c68295812efb">vfspta</a> = <span class="keyword">new</span> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#ab88b7a966177e620c552d507b3763e17">VersionedFlowSensitive</a>(_pag);</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#a53b8a881400d7b353133c68295812efb">vfspta</a>-&gt;<a class="code" href="classSVF_1_1FlowSensitive.html#a267f7198600dde3054feb40def7a6681">analyze</a>();</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; }</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#a53b8a881400d7b353133c68295812efb">vfspta</a>;</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; }</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;</div><div class="line"><a name="l00093"></a><span class="lineno"><a class="line" href="classSVF_1_1VersionedFlowSensitive.html#a754c77fff88e8f415dc7a2096d1bffe2"> 93</a></span>&#160; <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#a754c77fff88e8f415dc7a2096d1bffe2">releaseVFSWPA</a>()</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; {</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1VersionedFlowSensitive.html#a53b8a881400d7b353133c68295812efb">vfspta</a>) <span class="keyword">delete</span> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#a53b8a881400d7b353133c68295812efb">vfspta</a>;</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#a53b8a881400d7b353133c68295812efb">vfspta</a> = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; }</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;<span class="keyword">protected</span>:</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#a1d1f71c41cc3e81e636b58f4436e6d9b">processLoad</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1LoadVFGNode.html">LoadSVFGNode</a>* load) <span class="keyword">override</span>;</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#aa96f517740420665168e9b0c7d2347f1">processStore</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1StoreVFGNode.html">StoreSVFGNode</a>* store) <span class="keyword">override</span>;</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#a8cad0df2ae7df81dc2a966e694a0f7a2">processNode</a>(<a class="code" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> <a class="code" href="cJSON_8cpp.html#ab6e2ea6dc7bd57d1483413449998230a">n</a>) <span class="keyword">override</span>;</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#a18f24fe34af677e2a8c78ee89b89be1c">updateConnectedNodes</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1FlowSensitive.html#a69289c48fa91f850da90de080b9d26e5">SVFGEdgeSetTy</a>&amp; newEdges) <span class="keyword">override</span>;</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;</div><div class="line"><a name="l00106"></a><span class="lineno"><a class="line" href="classSVF_1_1VersionedFlowSensitive.html#ad44c735b25158d2c934bdd44eb404686"> 106</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#ad44c735b25158d2c934bdd44eb404686">propAlongIndirectEdge</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1IndirectSVFGEdge.html">IndirectSVFGEdge</a>*)<span class="keyword"> override</span></div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; }</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#aedd12e894fb2c17d2201f4049e5f3793">cluster</a>(<span class="keywordtype">void</span>) <span class="keyword">override</span>;</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#a7d86bc18060c0114a783aa1c3a7e9dda">prelabel</a>(<span class="keywordtype">void</span>);</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#aaff594c78d93f7ad632d344e5c1c7f6a">meldLabel</a>(<span class="keywordtype">void</span>);</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#a1da960df51570b59161e380949d910c4">meld</a>(MeldVersion &amp;mv1, <span class="keyword">const</span> MeldVersion &amp;mv2);</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#a275095f60640d862034ad173af3371c3">removeAllIndirectSVFGEdges</a>(<span class="keywordtype">void</span>);</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#a7a98162b69de90f80ce853a6ff43af56">propagateVersion</a>(<a class="code" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> o, <a class="code" href="namespaceSVF.html#a9ec7a8dc63411ee3724a25a59191be0c">Version</a> v);</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#a7a98162b69de90f80ce853a6ff43af56">propagateVersion</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> o, <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a9ec7a8dc63411ee3724a25a59191be0c">Version</a> v, <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a9ec7a8dc63411ee3724a25a59191be0c">Version</a> vp, <span class="keywordtype">bool</span> time=<span class="keyword">true</span>);</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#a8da4b9bd9d0c640a6857b4dc4991817c">buildIsStoreLoadMaps</a>(<span class="keywordtype">void</span>);</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160;</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#aac920c9a5f13dd147e3c130425e005eb">isStore</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> l) <span class="keyword">const</span>;</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#a984a4f929a18f97bfefac0102088a7fd">isLoad</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> l) <span class="keyword">const</span>;</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#a3407cc82ef9806e26b79edb677979014">buildDeltaMaps</a>(<span class="keywordtype">void</span>);</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160;</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#a9f9b00551c157f42d1d995e8c4efb54b">delta</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> l) <span class="keyword">const</span>;</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160;</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#a3fa5afa4f54e0828ec090fde07b1bfa2">deltaSource</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> l) <span class="keyword">const</span>;</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160;</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; <a class="code" href="namespaceSVF.html#a9ec7a8dc63411ee3724a25a59191be0c">Version</a> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#a6b398d59fc276980dd2d6d48a8675068">getVersion</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> l, <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> o, <span class="keyword">const</span> LocVersionMap &amp;lvm) <span class="keyword">const</span>;</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160;</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; <a class="code" href="namespaceSVF.html#a9ec7a8dc63411ee3724a25a59191be0c">Version</a> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#af93e65faae99459621ae45cf9d36005d">getConsume</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> l, <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> o) <span class="keyword">const</span>;</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160;</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; <a class="code" href="namespaceSVF.html#a9ec7a8dc63411ee3724a25a59191be0c">Version</a> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#a01a199e9fdb5759c7f78ee344dbc413c">getYield</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> l, <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> o) <span class="keyword">const</span>;</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#adf37ae1f6a07716bca6fbe1603b8a070">setVersion</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> l, <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> o, <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a9ec7a8dc63411ee3724a25a59191be0c">Version</a> v, LocVersionMap &amp;lvm);</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#aabc0a5a7a31b8d880e019773ba960741">setConsume</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> l, <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> o, <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a9ec7a8dc63411ee3724a25a59191be0c">Version</a> v);</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160;</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#ac33c7cef2d1d143950820ea48e97e806">setYield</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> l, <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> o, <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a9ec7a8dc63411ee3724a25a59191be0c">Version</a> v);</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160;</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; std::vector&lt;Version&gt; &amp;<a class="code" href="classSVF_1_1VersionedFlowSensitive.html#ae83c62a01196991d116ef5c36cb51e31">getReliantVersions</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> o, <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a9ec7a8dc63411ee3724a25a59191be0c">Version</a> v);</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160;</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; <a class="code" href="classSVF_1_1SparseBitVector.html">NodeBS</a> &amp;<a class="code" href="classSVF_1_1VersionedFlowSensitive.html#a3489def8e16e4d7c83d2c909d3287fc0">getStmtReliance</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> o, <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a9ec7a8dc63411ee3724a25a59191be0c">Version</a> v);</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160;</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#a9d5990a41e90558595d0ad0defceb4e8">dumpReliances</a>(<span class="keywordtype">void</span>) <span class="keyword">const</span>;</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160;</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#a032acdcd8b84523a7ac2f0e46d21c62f">dumpLocVersionMaps</a>(<span class="keywordtype">void</span>) <span class="keyword">const</span>;</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160;</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#a7565989371100f84ae5f9e2efa655fcb">dumpMeldVersion</a>(MeldVersion &amp;v);</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160;</div><div class="line"><a name="l00189"></a><span class="lineno"><a class="line" href="classSVF_1_1VersionedFlowSensitive.html#a2e4e6a84cbfd553ad9cca8fdf9fd4a8d"> 189</a></span>&#160; LocVersionMap <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#a2e4e6a84cbfd553ad9cca8fdf9fd4a8d">consume</a>;</div><div class="line"><a name="l00191"></a><span class="lineno"><a class="line" href="classSVF_1_1VersionedFlowSensitive.html#a16224ee60494bb1fdf1c8a1026fbe7ab"> 191</a></span>&#160; LocVersionMap <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#a16224ee60494bb1fdf1c8a1026fbe7ab">yield</a>;</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160;</div><div class="line"><a name="l00194"></a><span class="lineno"><a class="line" href="classSVF_1_1VersionedFlowSensitive.html#a1dc6e3d4931b53e7e426c0f76d06aeb3"> 194</a></span>&#160; VersionRelianceMap <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#a1dc6e3d4931b53e7e426c0f76d06aeb3">versionReliance</a>;</div><div class="line"><a name="l00196"></a><span class="lineno"><a class="line" href="classSVF_1_1VersionedFlowSensitive.html#af0859eb2a5b46c45aa4314e6e54f4438"> 196</a></span>&#160; <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map&lt;NodeID, Map&lt;Version, NodeBS&gt;</a>&gt; <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#af0859eb2a5b46c45aa4314e6e54f4438">stmtReliance</a>;</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160;</div><div class="line"><a name="l00200"></a><span class="lineno"><a class="line" href="classSVF_1_1VersionedFlowSensitive.html#af14a4cbc0b990389d31b2f88f50ad8eb"> 200</a></span>&#160; VarToPropNodeMap <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#af14a4cbc0b990389d31b2f88f50ad8eb">versionedVarToPropNode</a>;</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="comment">// Maps an object o to o&#39; if o is equivalent to o&#39; with respect to</span></div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; <span class="comment">// versioning. Thus, we don&#39;t need to store the versions of o and look</span></div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; <span class="comment">// up those for o&#39; instead.</span></div><div class="line"><a name="l00205"></a><span class="lineno"><a class="line" href="classSVF_1_1VersionedFlowSensitive.html#a2d451d89f99a4bff828b682723df477f"> 205</a></span>&#160; <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map&lt;NodeID, NodeID&gt;</a> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#a2d451d89f99a4bff828b682723df477f">equivalentObject</a>;</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160;</div><div class="line"><a name="l00209"></a><span class="lineno"><a class="line" href="classSVF_1_1VersionedFlowSensitive.html#adfefc0dfa4e7fb4d20fafeaf96a5fa67"> 209</a></span>&#160; <a class="code" href="classSVF_1_1FIFOWorkList.html">FIFOWorkList&lt;NodeID&gt;</a> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#adfefc0dfa4e7fb4d20fafeaf96a5fa67">vWorklist</a>;</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"><a class="line" href="classSVF_1_1VersionedFlowSensitive.html#aaae8c6858593ed050dcf2c9220228e3e"> 211</a></span>&#160; <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set&lt;NodeID&gt;</a> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#aaae8c6858593ed050dcf2c9220228e3e">prelabeledObjects</a>;</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160;</div><div class="line"><a name="l00214"></a><span class="lineno"><a class="line" href="classSVF_1_1VersionedFlowSensitive.html#a03f5f16377daa0258166a73de3e21f07"> 214</a></span>&#160; <a class="code" href="classSVF_1_1VersionedPTData.html">BVDataPTAImpl::VersionedPTDataTy</a> *<a class="code" href="classSVF_1_1VersionedFlowSensitive.html#a03f5f16377daa0258166a73de3e21f07">vPtD</a>;</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160;</div><div class="line"><a name="l00218"></a><span class="lineno"><a class="line" href="classSVF_1_1VersionedFlowSensitive.html#a11ddfa1faebf56e74e6dcc53e16142e1"> 218</a></span>&#160; std::vector&lt;bool&gt; <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#a11ddfa1faebf56e74e6dcc53e16142e1">deltaMap</a>;</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160;</div><div class="line"><a name="l00223"></a><span class="lineno"><a class="line" href="classSVF_1_1VersionedFlowSensitive.html#aee97e196225aaad29c0bd31d3ccbabf6"> 223</a></span>&#160; std::vector&lt;bool&gt; <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#aee97e196225aaad29c0bd31d3ccbabf6">deltaSourceMap</a>;</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160;</div><div class="line"><a name="l00226"></a><span class="lineno"><a class="line" href="classSVF_1_1VersionedFlowSensitive.html#a18e25c3871d7cc1a6bb0592ceca90f88"> 226</a></span>&#160; std::vector&lt;bool&gt; <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#a18e25c3871d7cc1a6bb0592ceca90f88">isStoreMap</a>;</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160;</div><div class="line"><a name="l00229"></a><span class="lineno"><a class="line" href="classSVF_1_1VersionedFlowSensitive.html#a6bb3db072db0b899f306b37f1146f83d"> 229</a></span>&#160; std::vector&lt;bool&gt; <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#a6bb3db072db0b899f306b37f1146f83d">isLoadMap</a>;</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160;</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160;</div><div class="line"><a name="l00233"></a><span class="lineno"><a class="line" href="classSVF_1_1VersionedFlowSensitive.html#aff5029fca933376be1fa374bec790da6"> 233</a></span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#aff5029fca933376be1fa374bec790da6">numPrelabeledNodes</a>; </div><div class="line"><a name="l00234"></a><span class="lineno"><a class="line" href="classSVF_1_1VersionedFlowSensitive.html#a207ae4d1f2e0ccab8e36add0a45578af"> 234</a></span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#a207ae4d1f2e0ccab8e36add0a45578af">numPrelabelVersions</a>; </div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160;</div><div class="line"><a name="l00236"></a><span class="lineno"><a class="line" href="classSVF_1_1VersionedFlowSensitive.html#a77a5dd9578def9a8e2b48e8b90d9b996"> 236</a></span>&#160; <span class="keywordtype">double</span> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#a77a5dd9578def9a8e2b48e8b90d9b996">prelabelingTime</a>; </div><div class="line"><a name="l00237"></a><span class="lineno"><a class="line" href="classSVF_1_1VersionedFlowSensitive.html#a4a594c8d6ccaa27b5328c6388fdb258d"> 237</a></span>&#160; <span class="keywordtype">double</span> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#a4a594c8d6ccaa27b5328c6388fdb258d">meldLabelingTime</a>; </div><div class="line"><a name="l00238"></a><span class="lineno"><a class="line" href="classSVF_1_1VersionedFlowSensitive.html#af15bb6be283fee2fcc4b1fb7d8190451"> 238</a></span>&#160; <span class="keywordtype">double</span> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#af15bb6be283fee2fcc4b1fb7d8190451">versionPropTime</a>; </div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160;</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160;</div><div class="line"><a name="l00241"></a><span class="lineno"><a class="line" href="classSVF_1_1VersionedFlowSensitive.html#a53b8a881400d7b353133c68295812efb"> 241</a></span>&#160; <span class="keyword">static</span> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html">VersionedFlowSensitive</a> *<a class="code" href="classSVF_1_1VersionedFlowSensitive.html#a53b8a881400d7b353133c68295812efb">vfspta</a>;</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160;</div><div class="line"><a name="l00243"></a><span class="lineno"><a class="line" href="classSVF_1_1VersionedFlowSensitive_1_1SCC.html"> 243</a></span>&#160; <span class="keyword">class </span><a class="code" href="classSVF_1_1VersionedFlowSensitive_1_1SCC.html">SCC</a></div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; {</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; <span class="keyword">private</span>:</div><div class="line"><a name="l00246"></a><span class="lineno"><a class="line" href="structSVF_1_1VersionedFlowSensitive_1_1SCC_1_1NodeData.html"> 246</a></span>&#160; <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structSVF_1_1VersionedFlowSensitive_1_1SCC_1_1NodeData.html">NodeData</a></div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; {</div><div class="line"><a name="l00248"></a><span class="lineno"><a class="line" href="structSVF_1_1VersionedFlowSensitive_1_1SCC_1_1NodeData.html#a823afbcf2b99a38367b7bc8be17ff2ba"> 248</a></span>&#160; <span class="keywordtype">int</span> <a class="code" href="structSVF_1_1VersionedFlowSensitive_1_1SCC_1_1NodeData.html#a823afbcf2b99a38367b7bc8be17ff2ba">index</a>;</div><div class="line"><a name="l00249"></a><span class="lineno"><a class="line" href="structSVF_1_1VersionedFlowSensitive_1_1SCC_1_1NodeData.html#a6d66813dfb5338c22de62c100e951cf2"> 249</a></span>&#160; <span class="keywordtype">int</span> <a class="code" href="structSVF_1_1VersionedFlowSensitive_1_1SCC_1_1NodeData.html#a6d66813dfb5338c22de62c100e951cf2">lowlink</a>;</div><div class="line"><a name="l00250"></a><span class="lineno"><a class="line" href="structSVF_1_1VersionedFlowSensitive_1_1SCC_1_1NodeData.html#a0eb5f6b9985b9b512a76537d55b092b5"> 250</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="structSVF_1_1VersionedFlowSensitive_1_1SCC_1_1NodeData.html#a0eb5f6b9985b9b512a76537d55b092b5">onStack</a>;</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; } <a class="code" href="classSVF_1_1VersionedFlowSensitive_1_1SCC.html#a3b4321bdd7924d05fd3b8506ec1c7c3c">NodeData</a>;</div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160;</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; <span class="keyword">static</span> <span class="keywordtype">unsigned</span> <a class="code" href="classSVF_1_1VersionedFlowSensitive_1_1SCC.html#ad52f6f586168ca4ceaf85cca8dfab825">detectSCCs</a>(<a class="code" href="classSVF_1_1VersionedFlowSensitive.html">VersionedFlowSensitive</a> *vfs,</div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFG.html">SVFG</a> *<a class="code" href="classSVF_1_1FlowSensitive.html#aae032e5f5d53b131d0112dc8faa464a9">svfg</a>, <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> <span class="keywordtype">object</span>,</div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; <span class="keyword">const</span> std::vector&lt;const SVFGNode *&gt; &amp;startingNodes,</div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160; std::vector&lt;int&gt; &amp;partOf,</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160; std::vector&lt;const IndirectSVFGEdge *&gt; &amp;footprint);</div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160;</div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160; <span class="keyword">private</span>:</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1VersionedFlowSensitive_1_1SCC.html#af7ba77d72962b930a8107752e259008b">visit</a>(<a class="code" href="classSVF_1_1VersionedFlowSensitive.html">VersionedFlowSensitive</a> *vfs,</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> <span class="keywordtype">object</span>,</div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; std::vector&lt;int&gt; &amp;partOf,</div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; std::vector&lt;const IndirectSVFGEdge *&gt; &amp;footprint,</div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160; std::vector&lt;NodeData&gt; &amp;nodeData,</div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; std::stack&lt;const SVFGNode *&gt; &amp;stack,</div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; <span class="keywordtype">int</span> &amp;<a class="code" href="structSVF_1_1VersionedFlowSensitive_1_1SCC_1_1NodeData.html#a823afbcf2b99a38367b7bc8be17ff2ba">index</a>,</div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; <span class="keywordtype">int</span> &amp;currentSCC,</div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGNode.html">SVFGNode</a> *v);</div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; };</div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160;};</div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160;</div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160;} <span class="comment">// End namespace SVF</span></div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160;</div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* VFS_H_ */</span><span class="preprocessor"></span></div><div class="ttc" id="classSVF_1_1VersionedFlowSensitive_html_a9ee5add09f2b446c6c6bcb84da0f75b3"><div class="ttname"><a href="classSVF_1_1VersionedFlowSensitive.html#a9ee5add09f2b446c6c6bcb84da0f75b3">SVF::VersionedFlowSensitive::VarToPropNodeMap</a></div><div class="ttdeci">Map&lt; VersionedVar, const DummyVersionPropSVFGNode * &gt; VarToPropNodeMap</div><div class="ttdef"><b>Definition:</b> <a href="VersionedFlowSensitive_8h_source.html#l00041">VersionedFlowSensitive.h:41</a></div></div>
69
+ <a href="VersionedFlowSensitive_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">//===- VersionedFlowSensitive.h -- Versioned flow-sensitive pointer analysis --------//</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;</div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> * VersionedFlowSensitiveAnalysis.h</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> * Created on: Jun 26, 2020</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment"> * Author: Mohamad Barbar</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment"> * The implementation is based on</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment"> * Mohamad Barbar, Yulei Sui and Shiping Chen. &quot;Object Versioning for Flow-Sensitive Pointer Analysis&quot;.</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment"> * International Symposium on Code Generation and Optimization (CGO&#39;21)</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;</div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="preprocessor">#ifndef VFS_H_</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="preprocessor">#define VFS_H_</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;</div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="SVFGOPT_8h.html">Graphs/SVFGOPT.h</a>&quot;</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="SVFGBuilder_8h.html">MSSA/SVFGBuilder.h</a>&quot;</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="FlowSensitive_8h.html">WPA/FlowSensitive.h</a>&quot;</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="WPAFSSolver_8h.html">WPA/WPAFSSolver.h</a>&quot;</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="PointsTo_8h.html">MemoryModel/PointsTo.h</a>&quot;</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespaceSVF.html">SVF</a></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;{</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="keyword">class </span>AndersenWaveDiff;</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="keyword">class </span>SVFModule;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"><a class="line" href="classSVF_1_1VersionedFlowSensitive.html"> 32</a></span>&#160;<span class="keyword">class </span><a class="code" href="classSVF_1_1VersionedFlowSensitive.html">VersionedFlowSensitive</a> : <span class="keyword">public</span> <a class="code" href="classSVF_1_1FlowSensitive.html">FlowSensitive</a></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;{</div><div class="line"><a name="l00034"></a><span class="lineno"><a class="line" href="classSVF_1_1VersionedFlowSensitive.html#aaee58f266762146e9fdc08ecfc326b29"> 34</a></span>&#160; <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classSVF_1_1VersionedFlowSensitiveStat.html">VersionedFlowSensitiveStat</a>;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00037"></a><span class="lineno"><a class="line" href="classSVF_1_1VersionedFlowSensitive.html#a630eeca9c3344d24fa196f7de45bce18"> 37</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="classSVF_1_1CoreBitVector.html">CoreBitVector</a> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#a630eeca9c3344d24fa196f7de45bce18">MeldVersion</a>;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00040"></a><span class="lineno"><a class="line" href="classSVF_1_1VersionedFlowSensitive.html#af9a43f48b7d99cc6694f3ae3248fd8e0"> 40</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map&lt;NodeID, Version&gt;</a> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#af9a43f48b7d99cc6694f3ae3248fd8e0">ObjToVersionMap</a>;</div><div class="line"><a name="l00041"></a><span class="lineno"><a class="line" href="classSVF_1_1VersionedFlowSensitive.html#a9ee5add09f2b446c6c6bcb84da0f75b3"> 41</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map&lt;VersionedVar, const DummyVersionPropSVFGNode *&gt;</a> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#a9ee5add09f2b446c6c6bcb84da0f75b3">VarToPropNodeMap</a>;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;</div><div class="line"><a name="l00043"></a><span class="lineno"><a class="line" href="classSVF_1_1VersionedFlowSensitive.html#aa689d29ead80303b1ef1e1a91f31c296"> 43</a></span>&#160; <span class="keyword">typedef</span> std::vector&lt;ObjToVersionMap&gt; <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#aa689d29ead80303b1ef1e1a91f31c296">LocVersionMap</a>;</div><div class="line"><a name="l00045"></a><span class="lineno"><a class="line" href="classSVF_1_1VersionedFlowSensitive.html#ad8108ee0b034877dea5e927d29ca0534"> 45</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map&lt;NodeID, Map&lt;Version, std::vector&lt;Version&gt;</a>&gt;&gt; <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#ad8108ee0b034877dea5e927d29ca0534">VersionRelianceMap</a>;</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;</div><div class="line"><a name="l00048"></a><span class="lineno"><a class="line" href="classSVF_1_1VersionedFlowSensitive.html#a3d44a343a2e3f5d276fd1b069c92e112"> 48</a></span>&#160; <span class="keyword">static</span> <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a9ec7a8dc63411ee3724a25a59191be0c">Version</a> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#a3d44a343a2e3f5d276fd1b069c92e112">invalidVersion</a>;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <span class="keyword">static</span> <a class="code" href="namespaceSVF.html#a32489632f53dce062ca2e8bff42c65cf">VersionedVar</a> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#a59f3dd74ed8c3e2fc48b9353ba2452aa">atKey</a>(<a class="code" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a>, <a class="code" href="namespaceSVF.html#a9ec7a8dc63411ee3724a25a59191be0c">Version</a>);</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#ab88b7a966177e620c552d507b3763e17">VersionedFlowSensitive</a>(<a class="code" href="classSVF_1_1SVFIR.html">SVFIR</a> *_pag, <a class="code" href="classSVF_1_1PointerAnalysis.html#a0b182ac680cce0547dbe7714c870ca85">PTATY</a> <a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a> = <a class="code" href="classSVF_1_1PointerAnalysis.html#a0b182ac680cce0547dbe7714c870ca85a412254a7738029bf3ee96f5c15a6bec9">VFS_WPA</a>);</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#a81d3528fd082018e4345f0b026bf3584">initialize</a>() <span class="keyword">override</span>;</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#ad955fda89f4f749151a1bd14562b03f6">finalize</a>() <span class="keyword">override</span>;</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;</div><div class="line"><a name="l00063"></a><span class="lineno"><a class="line" href="classSVF_1_1VersionedFlowSensitive.html#a6e4964389f96667bd69354fd4a742720"> 63</a></span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#a6e4964389f96667bd69354fd4a742720">PTAName</a>()<span class="keyword"> const override</span></div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <span class="keywordflow">return</span> <span class="stringliteral">&quot;VersionedFlowSensitive&quot;</span>;</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; }</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;</div><div class="line"><a name="l00070"></a><span class="lineno"><a class="line" href="classSVF_1_1VersionedFlowSensitive.html#afd1e0d4445e1e50e95f816e51f8de3c8"> 70</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#afd1e0d4445e1e50e95f816e51f8de3c8">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html">VersionedFlowSensitive</a> *)</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; {</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; }</div><div class="line"><a name="l00074"></a><span class="lineno"><a class="line" href="classSVF_1_1VersionedFlowSensitive.html#abe1874f12ba05b4f453604c6d91598d6"> 74</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#abe1874f12ba05b4f453604c6d91598d6">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1PointerAnalysis.html">PointerAnalysis</a> *pta)</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; {</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <span class="keywordflow">return</span> pta-&gt;<a class="code" href="classSVF_1_1PointerAnalysis.html#ac23f71c1307cda9cba44acc40059f0a3">getAnalysisTy</a>() == <a class="code" href="classSVF_1_1PointerAnalysis.html#a0b182ac680cce0547dbe7714c870ca85a412254a7738029bf3ee96f5c15a6bec9">VFS_WPA</a>;</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; }</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;</div><div class="line"><a name="l00081"></a><span class="lineno"><a class="line" href="classSVF_1_1VersionedFlowSensitive.html#ae7cf16ad79c13104dd9981e6b984057e"> 81</a></span>&#160; <span class="keyword">static</span> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html">VersionedFlowSensitive</a> *<a class="code" href="classSVF_1_1VersionedFlowSensitive.html#ae7cf16ad79c13104dd9981e6b984057e">createVFSWPA</a>(<a class="code" href="classSVF_1_1SVFIR.html">SVFIR</a> *_pag)</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; {</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1VersionedFlowSensitive.html#a53b8a881400d7b353133c68295812efb">vfspta</a> == <span class="keyword">nullptr</span>)</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; {</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#a53b8a881400d7b353133c68295812efb">vfspta</a> = <span class="keyword">new</span> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#ab88b7a966177e620c552d507b3763e17">VersionedFlowSensitive</a>(_pag);</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#a53b8a881400d7b353133c68295812efb">vfspta</a>-&gt;<a class="code" href="classSVF_1_1FlowSensitive.html#a7b3f1ca7f8996edc3ed80fdff536d519">analyze</a>();</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; }</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#a53b8a881400d7b353133c68295812efb">vfspta</a>;</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; }</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;</div><div class="line"><a name="l00093"></a><span class="lineno"><a class="line" href="classSVF_1_1VersionedFlowSensitive.html#a754c77fff88e8f415dc7a2096d1bffe2"> 93</a></span>&#160; <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#a754c77fff88e8f415dc7a2096d1bffe2">releaseVFSWPA</a>()</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; {</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1VersionedFlowSensitive.html#a53b8a881400d7b353133c68295812efb">vfspta</a>) <span class="keyword">delete</span> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#a53b8a881400d7b353133c68295812efb">vfspta</a>;</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#a53b8a881400d7b353133c68295812efb">vfspta</a> = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; }</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;<span class="keyword">protected</span>:</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#a1d1f71c41cc3e81e636b58f4436e6d9b">processLoad</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1LoadVFGNode.html">LoadSVFGNode</a>* load) <span class="keyword">override</span>;</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#aa96f517740420665168e9b0c7d2347f1">processStore</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1StoreVFGNode.html">StoreSVFGNode</a>* store) <span class="keyword">override</span>;</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#a8cad0df2ae7df81dc2a966e694a0f7a2">processNode</a>(<a class="code" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> <a class="code" href="cJSON_8cpp.html#ab6e2ea6dc7bd57d1483413449998230a">n</a>) <span class="keyword">override</span>;</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#a18f24fe34af677e2a8c78ee89b89be1c">updateConnectedNodes</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1FlowSensitive.html#a69289c48fa91f850da90de080b9d26e5">SVFGEdgeSetTy</a>&amp; newEdges) <span class="keyword">override</span>;</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;</div><div class="line"><a name="l00106"></a><span class="lineno"><a class="line" href="classSVF_1_1VersionedFlowSensitive.html#ad44c735b25158d2c934bdd44eb404686"> 106</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#ad44c735b25158d2c934bdd44eb404686">propAlongIndirectEdge</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1IndirectSVFGEdge.html">IndirectSVFGEdge</a>*)<span class="keyword"> override</span></div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; }</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#aedd12e894fb2c17d2201f4049e5f3793">cluster</a>(<span class="keywordtype">void</span>) <span class="keyword">override</span>;</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#a7d86bc18060c0114a783aa1c3a7e9dda">prelabel</a>(<span class="keywordtype">void</span>);</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#aaff594c78d93f7ad632d344e5c1c7f6a">meldLabel</a>(<span class="keywordtype">void</span>);</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#a1da960df51570b59161e380949d910c4">meld</a>(MeldVersion &amp;mv1, <span class="keyword">const</span> MeldVersion &amp;mv2);</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#a275095f60640d862034ad173af3371c3">removeAllIndirectSVFGEdges</a>(<span class="keywordtype">void</span>);</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#a7a98162b69de90f80ce853a6ff43af56">propagateVersion</a>(<a class="code" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> o, <a class="code" href="namespaceSVF.html#a9ec7a8dc63411ee3724a25a59191be0c">Version</a> v);</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#a7a98162b69de90f80ce853a6ff43af56">propagateVersion</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> o, <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a9ec7a8dc63411ee3724a25a59191be0c">Version</a> v, <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a9ec7a8dc63411ee3724a25a59191be0c">Version</a> vp, <span class="keywordtype">bool</span> time=<span class="keyword">true</span>);</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#a8da4b9bd9d0c640a6857b4dc4991817c">buildIsStoreLoadMaps</a>(<span class="keywordtype">void</span>);</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160;</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#aac920c9a5f13dd147e3c130425e005eb">isStore</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> l) <span class="keyword">const</span>;</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#a984a4f929a18f97bfefac0102088a7fd">isLoad</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> l) <span class="keyword">const</span>;</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#a3407cc82ef9806e26b79edb677979014">buildDeltaMaps</a>(<span class="keywordtype">void</span>);</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160;</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#a9f9b00551c157f42d1d995e8c4efb54b">delta</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> l) <span class="keyword">const</span>;</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160;</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#a3fa5afa4f54e0828ec090fde07b1bfa2">deltaSource</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> l) <span class="keyword">const</span>;</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160;</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; <a class="code" href="namespaceSVF.html#a9ec7a8dc63411ee3724a25a59191be0c">Version</a> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#a6b398d59fc276980dd2d6d48a8675068">getVersion</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> l, <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> o, <span class="keyword">const</span> LocVersionMap &amp;lvm) <span class="keyword">const</span>;</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160;</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; <a class="code" href="namespaceSVF.html#a9ec7a8dc63411ee3724a25a59191be0c">Version</a> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#af93e65faae99459621ae45cf9d36005d">getConsume</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> l, <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> o) <span class="keyword">const</span>;</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160;</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; <a class="code" href="namespaceSVF.html#a9ec7a8dc63411ee3724a25a59191be0c">Version</a> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#a01a199e9fdb5759c7f78ee344dbc413c">getYield</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> l, <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> o) <span class="keyword">const</span>;</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#adf37ae1f6a07716bca6fbe1603b8a070">setVersion</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> l, <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> o, <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a9ec7a8dc63411ee3724a25a59191be0c">Version</a> v, LocVersionMap &amp;lvm);</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#aabc0a5a7a31b8d880e019773ba960741">setConsume</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> l, <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> o, <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a9ec7a8dc63411ee3724a25a59191be0c">Version</a> v);</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160;</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#ac33c7cef2d1d143950820ea48e97e806">setYield</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> l, <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> o, <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a9ec7a8dc63411ee3724a25a59191be0c">Version</a> v);</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160;</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; std::vector&lt;Version&gt; &amp;<a class="code" href="classSVF_1_1VersionedFlowSensitive.html#ae83c62a01196991d116ef5c36cb51e31">getReliantVersions</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> o, <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a9ec7a8dc63411ee3724a25a59191be0c">Version</a> v);</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160;</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; <a class="code" href="classSVF_1_1SparseBitVector.html">NodeBS</a> &amp;<a class="code" href="classSVF_1_1VersionedFlowSensitive.html#a3489def8e16e4d7c83d2c909d3287fc0">getStmtReliance</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> o, <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a9ec7a8dc63411ee3724a25a59191be0c">Version</a> v);</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160;</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#a9d5990a41e90558595d0ad0defceb4e8">dumpReliances</a>(<span class="keywordtype">void</span>) <span class="keyword">const</span>;</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160;</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#a032acdcd8b84523a7ac2f0e46d21c62f">dumpLocVersionMaps</a>(<span class="keywordtype">void</span>) <span class="keyword">const</span>;</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160;</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#a7565989371100f84ae5f9e2efa655fcb">dumpMeldVersion</a>(MeldVersion &amp;v);</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160;</div><div class="line"><a name="l00189"></a><span class="lineno"><a class="line" href="classSVF_1_1VersionedFlowSensitive.html#a2e4e6a84cbfd553ad9cca8fdf9fd4a8d"> 189</a></span>&#160; LocVersionMap <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#a2e4e6a84cbfd553ad9cca8fdf9fd4a8d">consume</a>;</div><div class="line"><a name="l00191"></a><span class="lineno"><a class="line" href="classSVF_1_1VersionedFlowSensitive.html#a16224ee60494bb1fdf1c8a1026fbe7ab"> 191</a></span>&#160; LocVersionMap <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#a16224ee60494bb1fdf1c8a1026fbe7ab">yield</a>;</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160;</div><div class="line"><a name="l00194"></a><span class="lineno"><a class="line" href="classSVF_1_1VersionedFlowSensitive.html#a1dc6e3d4931b53e7e426c0f76d06aeb3"> 194</a></span>&#160; VersionRelianceMap <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#a1dc6e3d4931b53e7e426c0f76d06aeb3">versionReliance</a>;</div><div class="line"><a name="l00196"></a><span class="lineno"><a class="line" href="classSVF_1_1VersionedFlowSensitive.html#af0859eb2a5b46c45aa4314e6e54f4438"> 196</a></span>&#160; <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map&lt;NodeID, Map&lt;Version, NodeBS&gt;</a>&gt; <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#af0859eb2a5b46c45aa4314e6e54f4438">stmtReliance</a>;</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160;</div><div class="line"><a name="l00200"></a><span class="lineno"><a class="line" href="classSVF_1_1VersionedFlowSensitive.html#af14a4cbc0b990389d31b2f88f50ad8eb"> 200</a></span>&#160; VarToPropNodeMap <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#af14a4cbc0b990389d31b2f88f50ad8eb">versionedVarToPropNode</a>;</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="comment">// Maps an object o to o&#39; if o is equivalent to o&#39; with respect to</span></div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; <span class="comment">// versioning. Thus, we don&#39;t need to store the versions of o and look</span></div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; <span class="comment">// up those for o&#39; instead.</span></div><div class="line"><a name="l00205"></a><span class="lineno"><a class="line" href="classSVF_1_1VersionedFlowSensitive.html#a2d451d89f99a4bff828b682723df477f"> 205</a></span>&#160; <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map&lt;NodeID, NodeID&gt;</a> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#a2d451d89f99a4bff828b682723df477f">equivalentObject</a>;</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160;</div><div class="line"><a name="l00209"></a><span class="lineno"><a class="line" href="classSVF_1_1VersionedFlowSensitive.html#adfefc0dfa4e7fb4d20fafeaf96a5fa67"> 209</a></span>&#160; <a class="code" href="classSVF_1_1FIFOWorkList.html">FIFOWorkList&lt;NodeID&gt;</a> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#adfefc0dfa4e7fb4d20fafeaf96a5fa67">vWorklist</a>;</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"><a class="line" href="classSVF_1_1VersionedFlowSensitive.html#aaae8c6858593ed050dcf2c9220228e3e"> 211</a></span>&#160; <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set&lt;NodeID&gt;</a> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#aaae8c6858593ed050dcf2c9220228e3e">prelabeledObjects</a>;</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160;</div><div class="line"><a name="l00214"></a><span class="lineno"><a class="line" href="classSVF_1_1VersionedFlowSensitive.html#a03f5f16377daa0258166a73de3e21f07"> 214</a></span>&#160; <a class="code" href="classSVF_1_1VersionedPTData.html">BVDataPTAImpl::VersionedPTDataTy</a> *<a class="code" href="classSVF_1_1VersionedFlowSensitive.html#a03f5f16377daa0258166a73de3e21f07">vPtD</a>;</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160;</div><div class="line"><a name="l00218"></a><span class="lineno"><a class="line" href="classSVF_1_1VersionedFlowSensitive.html#a11ddfa1faebf56e74e6dcc53e16142e1"> 218</a></span>&#160; std::vector&lt;bool&gt; <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#a11ddfa1faebf56e74e6dcc53e16142e1">deltaMap</a>;</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160;</div><div class="line"><a name="l00223"></a><span class="lineno"><a class="line" href="classSVF_1_1VersionedFlowSensitive.html#aee97e196225aaad29c0bd31d3ccbabf6"> 223</a></span>&#160; std::vector&lt;bool&gt; <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#aee97e196225aaad29c0bd31d3ccbabf6">deltaSourceMap</a>;</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160;</div><div class="line"><a name="l00226"></a><span class="lineno"><a class="line" href="classSVF_1_1VersionedFlowSensitive.html#a18e25c3871d7cc1a6bb0592ceca90f88"> 226</a></span>&#160; std::vector&lt;bool&gt; <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#a18e25c3871d7cc1a6bb0592ceca90f88">isStoreMap</a>;</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160;</div><div class="line"><a name="l00229"></a><span class="lineno"><a class="line" href="classSVF_1_1VersionedFlowSensitive.html#a6bb3db072db0b899f306b37f1146f83d"> 229</a></span>&#160; std::vector&lt;bool&gt; <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#a6bb3db072db0b899f306b37f1146f83d">isLoadMap</a>;</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160;</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160;</div><div class="line"><a name="l00233"></a><span class="lineno"><a class="line" href="classSVF_1_1VersionedFlowSensitive.html#aff5029fca933376be1fa374bec790da6"> 233</a></span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#aff5029fca933376be1fa374bec790da6">numPrelabeledNodes</a>; </div><div class="line"><a name="l00234"></a><span class="lineno"><a class="line" href="classSVF_1_1VersionedFlowSensitive.html#a207ae4d1f2e0ccab8e36add0a45578af"> 234</a></span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#a207ae4d1f2e0ccab8e36add0a45578af">numPrelabelVersions</a>; </div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160;</div><div class="line"><a name="l00236"></a><span class="lineno"><a class="line" href="classSVF_1_1VersionedFlowSensitive.html#a77a5dd9578def9a8e2b48e8b90d9b996"> 236</a></span>&#160; <span class="keywordtype">double</span> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#a77a5dd9578def9a8e2b48e8b90d9b996">prelabelingTime</a>; </div><div class="line"><a name="l00237"></a><span class="lineno"><a class="line" href="classSVF_1_1VersionedFlowSensitive.html#a4a594c8d6ccaa27b5328c6388fdb258d"> 237</a></span>&#160; <span class="keywordtype">double</span> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#a4a594c8d6ccaa27b5328c6388fdb258d">meldLabelingTime</a>; </div><div class="line"><a name="l00238"></a><span class="lineno"><a class="line" href="classSVF_1_1VersionedFlowSensitive.html#af15bb6be283fee2fcc4b1fb7d8190451"> 238</a></span>&#160; <span class="keywordtype">double</span> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#af15bb6be283fee2fcc4b1fb7d8190451">versionPropTime</a>; </div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160;</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160;</div><div class="line"><a name="l00241"></a><span class="lineno"><a class="line" href="classSVF_1_1VersionedFlowSensitive.html#a53b8a881400d7b353133c68295812efb"> 241</a></span>&#160; <span class="keyword">static</span> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html">VersionedFlowSensitive</a> *<a class="code" href="classSVF_1_1VersionedFlowSensitive.html#a53b8a881400d7b353133c68295812efb">vfspta</a>;</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160;</div><div class="line"><a name="l00243"></a><span class="lineno"><a class="line" href="classSVF_1_1VersionedFlowSensitive_1_1SCC.html"> 243</a></span>&#160; <span class="keyword">class </span><a class="code" href="classSVF_1_1VersionedFlowSensitive_1_1SCC.html">SCC</a></div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; {</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; <span class="keyword">private</span>:</div><div class="line"><a name="l00246"></a><span class="lineno"><a class="line" href="structSVF_1_1VersionedFlowSensitive_1_1SCC_1_1NodeData.html"> 246</a></span>&#160; <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structSVF_1_1VersionedFlowSensitive_1_1SCC_1_1NodeData.html">NodeData</a></div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; {</div><div class="line"><a name="l00248"></a><span class="lineno"><a class="line" href="structSVF_1_1VersionedFlowSensitive_1_1SCC_1_1NodeData.html#a823afbcf2b99a38367b7bc8be17ff2ba"> 248</a></span>&#160; <span class="keywordtype">int</span> <a class="code" href="structSVF_1_1VersionedFlowSensitive_1_1SCC_1_1NodeData.html#a823afbcf2b99a38367b7bc8be17ff2ba">index</a>;</div><div class="line"><a name="l00249"></a><span class="lineno"><a class="line" href="structSVF_1_1VersionedFlowSensitive_1_1SCC_1_1NodeData.html#a6d66813dfb5338c22de62c100e951cf2"> 249</a></span>&#160; <span class="keywordtype">int</span> <a class="code" href="structSVF_1_1VersionedFlowSensitive_1_1SCC_1_1NodeData.html#a6d66813dfb5338c22de62c100e951cf2">lowlink</a>;</div><div class="line"><a name="l00250"></a><span class="lineno"><a class="line" href="structSVF_1_1VersionedFlowSensitive_1_1SCC_1_1NodeData.html#a0eb5f6b9985b9b512a76537d55b092b5"> 250</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="structSVF_1_1VersionedFlowSensitive_1_1SCC_1_1NodeData.html#a0eb5f6b9985b9b512a76537d55b092b5">onStack</a>;</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; } <a class="code" href="classSVF_1_1VersionedFlowSensitive_1_1SCC.html#a3b4321bdd7924d05fd3b8506ec1c7c3c">NodeData</a>;</div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160;</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; <span class="keyword">static</span> <span class="keywordtype">unsigned</span> <a class="code" href="classSVF_1_1VersionedFlowSensitive_1_1SCC.html#ad52f6f586168ca4ceaf85cca8dfab825">detectSCCs</a>(<a class="code" href="classSVF_1_1VersionedFlowSensitive.html">VersionedFlowSensitive</a> *vfs,</div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFG.html">SVFG</a> *<a class="code" href="classSVF_1_1FlowSensitive.html#aae032e5f5d53b131d0112dc8faa464a9">svfg</a>, <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> <span class="keywordtype">object</span>,</div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; <span class="keyword">const</span> std::vector&lt;const SVFGNode *&gt; &amp;startingNodes,</div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160; std::vector&lt;int&gt; &amp;partOf,</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160; std::vector&lt;const IndirectSVFGEdge *&gt; &amp;footprint);</div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160;</div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160; <span class="keyword">private</span>:</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1VersionedFlowSensitive_1_1SCC.html#af7ba77d72962b930a8107752e259008b">visit</a>(<a class="code" href="classSVF_1_1VersionedFlowSensitive.html">VersionedFlowSensitive</a> *vfs,</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> <span class="keywordtype">object</span>,</div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; std::vector&lt;int&gt; &amp;partOf,</div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; std::vector&lt;const IndirectSVFGEdge *&gt; &amp;footprint,</div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160; std::vector&lt;NodeData&gt; &amp;nodeData,</div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; std::stack&lt;const SVFGNode *&gt; &amp;stack,</div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; <span class="keywordtype">int</span> &amp;<a class="code" href="structSVF_1_1VersionedFlowSensitive_1_1SCC_1_1NodeData.html#a823afbcf2b99a38367b7bc8be17ff2ba">index</a>,</div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; <span class="keywordtype">int</span> &amp;currentSCC,</div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGNode.html">SVFGNode</a> *v);</div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; };</div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160;};</div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160;</div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160;} <span class="comment">// End namespace SVF</span></div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160;</div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* VFS_H_ */</span><span class="preprocessor"></span></div><div class="ttc" id="classSVF_1_1VersionedFlowSensitive_html_a9ee5add09f2b446c6c6bcb84da0f75b3"><div class="ttname"><a href="classSVF_1_1VersionedFlowSensitive.html#a9ee5add09f2b446c6c6bcb84da0f75b3">SVF::VersionedFlowSensitive::VarToPropNodeMap</a></div><div class="ttdeci">Map&lt; VersionedVar, const DummyVersionPropSVFGNode * &gt; VarToPropNodeMap</div><div class="ttdef"><b>Definition:</b> <a href="VersionedFlowSensitive_8h_source.html#l00041">VersionedFlowSensitive.h:41</a></div></div>
70
70
  <div class="ttc" id="classSVF_1_1VersionedFlowSensitive_html_abe1874f12ba05b4f453604c6d91598d6"><div class="ttname"><a href="classSVF_1_1VersionedFlowSensitive.html#abe1874f12ba05b4f453604c6d91598d6">SVF::VersionedFlowSensitive::classof</a></div><div class="ttdeci">static bool classof(const PointerAnalysis *pta)</div><div class="ttdef"><b>Definition:</b> <a href="VersionedFlowSensitive_8h_source.html#l00074">VersionedFlowSensitive.h:74</a></div></div>
71
71
  <div class="ttc" id="classSVF_1_1VersionedFlowSensitive_html_aaff594c78d93f7ad632d344e5c1c7f6a"><div class="ttname"><a href="classSVF_1_1VersionedFlowSensitive.html#aaff594c78d93f7ad632d344e5c1c7f6a">SVF::VersionedFlowSensitive::meldLabel</a></div><div class="ttdeci">void meldLabel(void)</div><div class="ttdoc">Meld label the prelabeled SVFG. </div><div class="ttdef"><b>Definition:</b> <a href="VersionedFlowSensitive_8cpp_source.html#l00120">VersionedFlowSensitive.cpp:120</a></div></div>
72
72
  <div class="ttc" id="classSVF_1_1VersionedPTData_html"><div class="ttname"><a href="classSVF_1_1VersionedPTData.html">SVF::VersionedPTData</a></div><div class="ttdef"><b>Definition:</b> <a href="AbstractPointsToDS_8h_source.html#l00269">AbstractPointsToDS.h:269</a></div></div>
@@ -75,7 +75,7 @@ $(function() {
75
75
  <div class="ttc" id="structSVF_1_1VersionedFlowSensitive_1_1SCC_1_1NodeData_html_a0eb5f6b9985b9b512a76537d55b092b5"><div class="ttname"><a href="structSVF_1_1VersionedFlowSensitive_1_1SCC_1_1NodeData.html#a0eb5f6b9985b9b512a76537d55b092b5">SVF::VersionedFlowSensitive::SCC::NodeData::onStack</a></div><div class="ttdeci">bool onStack</div><div class="ttdef"><b>Definition:</b> <a href="VersionedFlowSensitive_8h_source.html#l00250">VersionedFlowSensitive.h:250</a></div></div>
76
76
  <div class="ttc" id="classSVF_1_1VersionedFlowSensitive_html"><div class="ttname"><a href="classSVF_1_1VersionedFlowSensitive.html">SVF::VersionedFlowSensitive</a></div><div class="ttdef"><b>Definition:</b> <a href="VersionedFlowSensitive_8h_source.html#l00032">VersionedFlowSensitive.h:32</a></div></div>
77
77
  <div class="ttc" id="classSVF_1_1VersionedFlowSensitive_html_a11ddfa1faebf56e74e6dcc53e16142e1"><div class="ttname"><a href="classSVF_1_1VersionedFlowSensitive.html#a11ddfa1faebf56e74e6dcc53e16142e1">SVF::VersionedFlowSensitive::deltaMap</a></div><div class="ttdeci">std::vector&lt; bool &gt; deltaMap</div><div class="ttdef"><b>Definition:</b> <a href="VersionedFlowSensitive_8h_source.html#l00218">VersionedFlowSensitive.h:218</a></div></div>
78
- <div class="ttc" id="classSVF_1_1FlowSensitive_html_aae032e5f5d53b131d0112dc8faa464a9"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#aae032e5f5d53b131d0112dc8faa464a9">SVF::FlowSensitive::svfg</a></div><div class="ttdeci">SVFG * svfg</div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8h_source.html#l00246">FlowSensitive.h:246</a></div></div>
78
+ <div class="ttc" id="classSVF_1_1FlowSensitive_html_aae032e5f5d53b131d0112dc8faa464a9"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#aae032e5f5d53b131d0112dc8faa464a9">SVF::FlowSensitive::svfg</a></div><div class="ttdeci">SVFG * svfg</div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8h_source.html#l00239">FlowSensitive.h:239</a></div></div>
79
79
  <div class="ttc" id="classSVF_1_1VersionedFlowSensitive_html_a53b8a881400d7b353133c68295812efb"><div class="ttname"><a href="classSVF_1_1VersionedFlowSensitive.html#a53b8a881400d7b353133c68295812efb">SVF::VersionedFlowSensitive::vfspta</a></div><div class="ttdeci">static VersionedFlowSensitive * vfspta</div><div class="ttdef"><b>Definition:</b> <a href="VersionedFlowSensitive_8h_source.html#l00241">VersionedFlowSensitive.h:241</a></div></div>
80
80
  <div class="ttc" id="classSVF_1_1FlowSensitive_html"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html">SVF::FlowSensitive</a></div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8h_source.html#l00049">FlowSensitive.h:49</a></div></div>
81
81
  <div class="ttc" id="classSVF_1_1VersionedFlowSensitive_html_a7a98162b69de90f80ce853a6ff43af56"><div class="ttname"><a href="classSVF_1_1VersionedFlowSensitive.html#a7a98162b69de90f80ce853a6ff43af56">SVF::VersionedFlowSensitive::propagateVersion</a></div><div class="ttdeci">void propagateVersion(NodeID o, Version v)</div><div class="ttdef"><b>Definition:</b> <a href="VersionedFlowSensitive_8cpp_source.html#l00546">VersionedFlowSensitive.cpp:546</a></div></div>
@@ -90,7 +90,6 @@ $(function() {
90
90
  <div class="ttc" id="classSVF_1_1VersionedFlowSensitive_html_ab88b7a966177e620c552d507b3763e17"><div class="ttname"><a href="classSVF_1_1VersionedFlowSensitive.html#ab88b7a966177e620c552d507b3763e17">SVF::VersionedFlowSensitive::VersionedFlowSensitive</a></div><div class="ttdeci">VersionedFlowSensitive(SVFIR *_pag, PTATY type=VFS_WPA)</div><div class="ttdoc">Constructor. </div><div class="ttdef"><b>Definition:</b> <a href="VersionedFlowSensitive_8cpp_source.html#l00030">VersionedFlowSensitive.cpp:30</a></div></div>
91
91
  <div class="ttc" id="classSVF_1_1VersionedFlowSensitive_html_a754c77fff88e8f415dc7a2096d1bffe2"><div class="ttname"><a href="classSVF_1_1VersionedFlowSensitive.html#a754c77fff88e8f415dc7a2096d1bffe2">SVF::VersionedFlowSensitive::releaseVFSWPA</a></div><div class="ttdeci">static void releaseVFSWPA()</div><div class="ttdoc">Release flow-sensitive pointer analysis. </div><div class="ttdef"><b>Definition:</b> <a href="VersionedFlowSensitive_8h_source.html#l00093">VersionedFlowSensitive.h:93</a></div></div>
92
92
  <div class="ttc" id="SVFGBuilder_8h_html"><div class="ttname"><a href="SVFGBuilder_8h.html">SVFGBuilder.h</a></div></div>
93
- <div class="ttc" id="classSVF_1_1FlowSensitive_html_a267f7198600dde3054feb40def7a6681"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#a267f7198600dde3054feb40def7a6681">SVF::FlowSensitive::analyze</a></div><div class="ttdeci">virtual void analyze()</div><div class="ttdoc">Flow sensitive analysis. </div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8cpp_source.html#l00081">FlowSensitive.cpp:81</a></div></div>
94
93
  <div class="ttc" id="classSVF_1_1VersionedFlowSensitive_html_aac920c9a5f13dd147e3c130425e005eb"><div class="ttname"><a href="classSVF_1_1VersionedFlowSensitive.html#aac920c9a5f13dd147e3c130425e005eb">SVF::VersionedFlowSensitive::isStore</a></div><div class="ttdeci">virtual bool isStore(const NodeID l) const</div><div class="ttdoc">Returns true if l is a store node. </div><div class="ttdef"><b>Definition:</b> <a href="VersionedFlowSensitive_8cpp_source.html#l00455">VersionedFlowSensitive.cpp:455</a></div></div>
95
94
  <div class="ttc" id="classSVF_1_1VersionedFlowSensitive_html_a9f9b00551c157f42d1d995e8c4efb54b"><div class="ttname"><a href="classSVF_1_1VersionedFlowSensitive.html#a9f9b00551c157f42d1d995e8c4efb54b">SVF::VersionedFlowSensitive::delta</a></div><div class="ttdeci">virtual bool delta(const NodeID l) const</div><div class="ttdef"><b>Definition:</b> <a href="VersionedFlowSensitive_8cpp_source.html#l00432">VersionedFlowSensitive.cpp:432</a></div></div>
96
95
  <div class="ttc" id="classSVF_1_1VersionedFlowSensitive_html_a03f5f16377daa0258166a73de3e21f07"><div class="ttname"><a href="classSVF_1_1VersionedFlowSensitive.html#a03f5f16377daa0258166a73de3e21f07">SVF::VersionedFlowSensitive::vPtD</a></div><div class="ttdeci">BVDataPTAImpl::VersionedPTDataTy * vPtD</div><div class="ttdoc">Points-to DS for working with versions. </div><div class="ttdef"><b>Definition:</b> <a href="VersionedFlowSensitive_8h_source.html#l00214">VersionedFlowSensitive.h:214</a></div></div>
@@ -110,6 +109,7 @@ $(function() {
110
109
  <div class="ttc" id="structSVF_1_1VersionedFlowSensitive_1_1SCC_1_1NodeData_html"><div class="ttname"><a href="structSVF_1_1VersionedFlowSensitive_1_1SCC_1_1NodeData.html">SVF::VersionedFlowSensitive::SCC::NodeData</a></div><div class="ttdef"><b>Definition:</b> <a href="VersionedFlowSensitive_8h_source.html#l00246">VersionedFlowSensitive.h:246</a></div></div>
111
110
  <div class="ttc" id="classSVF_1_1VersionedFlowSensitive_html_a18e25c3871d7cc1a6bb0592ceca90f88"><div class="ttname"><a href="classSVF_1_1VersionedFlowSensitive.html#a18e25c3871d7cc1a6bb0592ceca90f88">SVF::VersionedFlowSensitive::isStoreMap</a></div><div class="ttdeci">std::vector&lt; bool &gt; isStoreMap</div><div class="ttdoc">isStoreMap[l] means SVFG node l is a store node. </div><div class="ttdef"><b>Definition:</b> <a href="VersionedFlowSensitive_8h_source.html#l00226">VersionedFlowSensitive.h:226</a></div></div>
112
111
  <div class="ttc" id="classSVF_1_1VersionedFlowSensitive_html_a1dc6e3d4931b53e7e426c0f76d06aeb3"><div class="ttname"><a href="classSVF_1_1VersionedFlowSensitive.html#a1dc6e3d4931b53e7e426c0f76d06aeb3">SVF::VersionedFlowSensitive::versionReliance</a></div><div class="ttdeci">VersionRelianceMap versionReliance</div><div class="ttdoc">o -&gt; (version -&gt; versions which rely on it). </div><div class="ttdef"><b>Definition:</b> <a href="VersionedFlowSensitive_8h_source.html#l00194">VersionedFlowSensitive.h:194</a></div></div>
112
+ <div class="ttc" id="classSVF_1_1FlowSensitive_html_a7b3f1ca7f8996edc3ed80fdff536d519"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#a7b3f1ca7f8996edc3ed80fdff536d519">SVF::FlowSensitive::analyze</a></div><div class="ttdeci">void analyze() override</div><div class="ttdoc">Flow sensitive analysis. </div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8cpp_source.html#l00081">FlowSensitive.cpp:81</a></div></div>
113
113
  <div class="ttc" id="classSVF_1_1VersionedFlowSensitive_html_af15bb6be283fee2fcc4b1fb7d8190451"><div class="ttname"><a href="classSVF_1_1VersionedFlowSensitive.html#af15bb6be283fee2fcc4b1fb7d8190451">SVF::VersionedFlowSensitive::versionPropTime</a></div><div class="ttdeci">double versionPropTime</div><div class="ttdoc">Time to propagate versions to versions which rely on them. </div><div class="ttdef"><b>Definition:</b> <a href="VersionedFlowSensitive_8h_source.html#l00238">VersionedFlowSensitive.h:238</a></div></div>
114
114
  <div class="ttc" id="classSVF_1_1VersionedFlowSensitive_html_aee97e196225aaad29c0bd31d3ccbabf6"><div class="ttname"><a href="classSVF_1_1VersionedFlowSensitive.html#aee97e196225aaad29c0bd31d3ccbabf6">SVF::VersionedFlowSensitive::deltaSourceMap</a></div><div class="ttdeci">std::vector&lt; bool &gt; deltaSourceMap</div><div class="ttdef"><b>Definition:</b> <a href="VersionedFlowSensitive_8h_source.html#l00223">VersionedFlowSensitive.h:223</a></div></div>
115
115
  <div class="ttc" id="structSVF_1_1VersionedFlowSensitive_1_1SCC_1_1NodeData_html_a6d66813dfb5338c22de62c100e951cf2"><div class="ttname"><a href="structSVF_1_1VersionedFlowSensitive_1_1SCC_1_1NodeData.html#a6d66813dfb5338c22de62c100e951cf2">SVF::VersionedFlowSensitive::SCC::NodeData::lowlink</a></div><div class="ttdeci">int lowlink</div><div class="ttdef"><b>Definition:</b> <a href="VersionedFlowSensitive_8h_source.html#l00249">VersionedFlowSensitive.h:249</a></div></div>
@@ -142,7 +142,7 @@ $(function() {
142
142
  <div class="ttc" id="classSVF_1_1VersionedFlowSensitive_html_aabc0a5a7a31b8d880e019773ba960741"><div class="ttname"><a href="classSVF_1_1VersionedFlowSensitive.html#aabc0a5a7a31b8d880e019773ba960741">SVF::VersionedFlowSensitive::setConsume</a></div><div class="ttdeci">void setConsume(const NodeID l, const NodeID o, const Version v)</div><div class="ttdoc">Sets the consumed version of o at l to v. </div><div class="ttdef"><b>Definition:</b> <a href="VersionedFlowSensitive_8cpp_source.html#l00821">VersionedFlowSensitive.cpp:821</a></div></div>
143
143
  <div class="ttc" id="classSVF_1_1VersionedFlowSensitive_html_ad8108ee0b034877dea5e927d29ca0534"><div class="ttname"><a href="classSVF_1_1VersionedFlowSensitive.html#ad8108ee0b034877dea5e927d29ca0534">SVF::VersionedFlowSensitive::VersionRelianceMap</a></div><div class="ttdeci">Map&lt; NodeID, Map&lt; Version, std::vector&lt; Version &gt; &gt; &gt; VersionRelianceMap</div><div class="ttdoc">(o -&gt; (v -&gt; versions with rely on o:v). </div><div class="ttdef"><b>Definition:</b> <a href="VersionedFlowSensitive_8h_source.html#l00045">VersionedFlowSensitive.h:45</a></div></div>
144
144
  <div class="ttc" id="classSVF_1_1VersionedFlowSensitive_html_ae7cf16ad79c13104dd9981e6b984057e"><div class="ttname"><a href="classSVF_1_1VersionedFlowSensitive.html#ae7cf16ad79c13104dd9981e6b984057e">SVF::VersionedFlowSensitive::createVFSWPA</a></div><div class="ttdeci">static VersionedFlowSensitive * createVFSWPA(SVFIR *_pag)</div><div class="ttdoc">Create single instance of versioned flow-sensitive points-to analysis. </div><div class="ttdef"><b>Definition:</b> <a href="VersionedFlowSensitive_8h_source.html#l00081">VersionedFlowSensitive.h:81</a></div></div>
145
- <div class="ttc" id="classSVF_1_1SparseBitVector_html"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html">SVF::SparseBitVector</a></div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00462">SparseBitVector.h:462</a></div></div>
145
+ <div class="ttc" id="classSVF_1_1SparseBitVector_html"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html">SVF::SparseBitVector</a></div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00454">SparseBitVector.h:454</a></div></div>
146
146
  <div class="ttc" id="FlowSensitive_8h_html"><div class="ttname"><a href="FlowSensitive_8h.html">FlowSensitive.h</a></div></div>
147
147
  <div class="ttc" id="classSVF_1_1SVFG_html"><div class="ttname"><a href="classSVF_1_1SVFG.html">SVF::SVFG</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00065">SVFG.h:65</a></div></div>
148
148
  <div class="ttc" id="classSVF_1_1VersionedFlowSensitive_html_a77a5dd9578def9a8e2b48e8b90d9b996"><div class="ttname"><a href="classSVF_1_1VersionedFlowSensitive.html#a77a5dd9578def9a8e2b48e8b90d9b996">SVF::VersionedFlowSensitive::prelabelingTime</a></div><div class="ttdeci">double prelabelingTime</div><div class="ttdoc">Time to prelabel SVFG. </div><div class="ttdef"><b>Definition:</b> <a href="VersionedFlowSensitive_8h_source.html#l00236">VersionedFlowSensitive.h:236</a></div></div>