svf-tools 1.0.503 → 1.0.506

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 (533) hide show
  1. package/LICENSE.TXT +4 -2
  2. package/SVF-doxygen/html/html/AbstractPointsToDS_8h_source.html +1 -1
  3. package/SVF-doxygen/html/html/AndersenHCD_8cpp_source.html +4 -4
  4. package/SVF-doxygen/html/html/AndersenLCD_8cpp_source.html +4 -4
  5. package/SVF-doxygen/html/html/AndersenSCD_8cpp_source.html +5 -5
  6. package/SVF-doxygen/html/html/AndersenSFR_8cpp_source.html +8 -7
  7. package/SVF-doxygen/html/html/AndersenSFR_8h_source.html +7 -7
  8. package/SVF-doxygen/html/html/AndersenStat_8cpp_source.html +12 -6
  9. package/SVF-doxygen/html/html/AndersenWaveDiff_8cpp_source.html +4 -4
  10. package/SVF-doxygen/html/html/Andersen_8cpp_source.html +21 -17
  11. package/SVF-doxygen/html/html/Andersen_8h_source.html +10 -9
  12. package/SVF-doxygen/html/html/BDDExpr_8cpp_source.html +8 -4
  13. package/SVF-doxygen/html/html/BDDExpr_8h_source.html +5 -5
  14. package/SVF-doxygen/html/html/CFGNormalizer_8cpp_source.html +4 -4
  15. package/SVF-doxygen/html/html/CFGNormalizer_8h_source.html +2 -2
  16. package/SVF-doxygen/html/html/CFLAlias_8cpp_source.html +3 -3
  17. package/SVF-doxygen/html/html/CFLAlias_8h_source.html +6 -6
  18. package/SVF-doxygen/html/html/CFLGrammar_8cpp_source.html +5 -4
  19. package/SVF-doxygen/html/html/CFLGrammar_8h_source.html +7 -6
  20. package/SVF-doxygen/html/html/CFLGraphBuilder_8cpp_source.html +2 -2
  21. package/SVF-doxygen/html/html/CFLGraphBuilder_8h_source.html +1 -1
  22. package/SVF-doxygen/html/html/CFLGraph_8h_source.html +2 -1
  23. package/SVF-doxygen/html/html/CHGBuilder_8cpp_source.html +6 -6
  24. package/SVF-doxygen/html/html/CHG_8cpp.html +1 -1
  25. package/SVF-doxygen/html/html/CHG_8cpp_source.html +2 -2
  26. package/SVF-doxygen/html/html/CHG_8h_source.html +5 -4
  27. package/SVF-doxygen/html/html/CPPUtil_8cpp.html +2 -2
  28. package/SVF-doxygen/html/html/CPPUtil_8cpp_source.html +3 -3
  29. package/SVF-doxygen/html/html/CPPUtil_8h_source.html +1 -1
  30. package/SVF-doxygen/html/html/CSC_8cpp_source.html +5 -4
  31. package/SVF-doxygen/html/html/CSC_8h_source.html +4 -4
  32. package/SVF-doxygen/html/html/ConditionalPT_8h_source.html +12 -10
  33. package/SVF-doxygen/html/html/ConsGEdge_8h_source.html +2 -2
  34. package/SVF-doxygen/html/html/ConsGNode_8h_source.html +3 -3
  35. package/SVF-doxygen/html/html/ConsG_8cpp_source.html +2 -2
  36. package/SVF-doxygen/html/html/ConsG_8h_source.html +5 -4
  37. package/SVF-doxygen/html/html/ContextDDA_8cpp_source.html +10 -10
  38. package/SVF-doxygen/html/html/ContextDDA_8h_source.html +8 -8
  39. package/SVF-doxygen/html/html/CoreBitVector_8cpp.html +1 -1
  40. package/SVF-doxygen/html/html/CoreBitVector_8cpp_source.html +4 -2
  41. package/SVF-doxygen/html/html/CoreBitVector_8h_source.html +2 -2
  42. package/SVF-doxygen/html/html/CxtStmt_8h_source.html +1 -1
  43. package/SVF-doxygen/html/html/DCHG_8cpp_source.html +8 -6
  44. package/SVF-doxygen/html/html/DCHG_8h_source.html +5 -5
  45. package/SVF-doxygen/html/html/DDAClient_8cpp_source.html +8 -8
  46. package/SVF-doxygen/html/html/DDAClient_8h_source.html +3 -3
  47. package/SVF-doxygen/html/html/DDAPass_8cpp_source.html +7 -7
  48. package/SVF-doxygen/html/html/DDAPass_8h_source.html +3 -3
  49. package/SVF-doxygen/html/html/DDAStat_8cpp_source.html +6 -4
  50. package/SVF-doxygen/html/html/DDAStat_8h_source.html +5 -5
  51. package/SVF-doxygen/html/html/DDAVFSolver_8h_source.html +12 -8
  52. package/SVF-doxygen/html/html/DPItem_8h_source.html +4 -4
  53. package/SVF-doxygen/html/html/DataFlowUtil_8h_source.html +1 -1
  54. package/SVF-doxygen/html/html/ExeState_8cpp_source.html +2 -2
  55. package/SVF-doxygen/html/html/ExeState_8h_source.html +4 -4
  56. package/SVF-doxygen/html/html/ExtAPI_8cpp.html +1 -1
  57. package/SVF-doxygen/html/html/ExtAPI_8cpp_source.html +3 -3
  58. package/SVF-doxygen/html/html/ExtAPI_8h_source.html +2 -2
  59. package/SVF-doxygen/html/html/FSMPTA_8cpp_source.html +17 -12
  60. package/SVF-doxygen/html/html/FSMPTA_8h_source.html +6 -6
  61. package/SVF-doxygen/html/html/FlowDDA_8cpp_source.html +10 -10
  62. package/SVF-doxygen/html/html/FlowDDA_8h_source.html +4 -4
  63. package/SVF-doxygen/html/html/FlowSensitiveStat_8cpp_source.html +12 -10
  64. package/SVF-doxygen/html/html/FlowSensitive_8cpp_source.html +19 -15
  65. package/SVF-doxygen/html/html/FlowSensitive_8h_source.html +6 -6
  66. package/SVF-doxygen/html/html/GenericGraph_8h_source.html +5 -5
  67. package/SVF-doxygen/html/html/GrammarBuilder_8h_source.html +1 -1
  68. package/SVF-doxygen/html/html/GraphPrinter_8h_source.html +1 -1
  69. package/SVF-doxygen/html/html/ICFGBuilder_8cpp_source.html +2 -2
  70. package/SVF-doxygen/html/html/ICFGBuilder_8h_source.html +1 -1
  71. package/SVF-doxygen/html/html/ICFGEdge_8h_source.html +3 -3
  72. package/SVF-doxygen/html/html/ICFGNode_8h_source.html +2 -2
  73. package/SVF-doxygen/html/html/ICFGStat_8h_source.html +1 -1
  74. package/SVF-doxygen/html/html/ICFG_8cpp_source.html +6 -6
  75. package/SVF-doxygen/html/html/ICFG_8h_source.html +2 -2
  76. package/SVF-doxygen/html/html/IRAnnotator_8h_source.html +1 -1
  77. package/SVF-doxygen/html/html/IRGraph_8cpp_source.html +2 -2
  78. package/SVF-doxygen/html/html/IRGraph_8h_source.html +3 -3
  79. package/SVF-doxygen/html/html/LLVMLoopAnalysis_8cpp_source.html +3 -3
  80. package/SVF-doxygen/html/html/LLVMModule_8cpp.html +25 -7
  81. package/SVF-doxygen/html/html/LLVMModule_8cpp_source.html +12 -7
  82. package/SVF-doxygen/html/html/LLVMModule_8h_source.html +15 -14
  83. package/SVF-doxygen/html/html/LLVMUtil_8cpp_source.html +2 -2
  84. package/SVF-doxygen/html/html/LLVMUtil_8h_source.html +1 -1
  85. package/SVF-doxygen/html/html/LeakChecker_8cpp_source.html +5 -3
  86. package/SVF-doxygen/html/html/LeakChecker_8h_source.html +3 -3
  87. package/SVF-doxygen/html/html/LocationSet_8cpp_source.html +7 -4
  88. package/SVF-doxygen/html/html/LocationSet_8h_source.html +6 -5
  89. package/SVF-doxygen/html/html/LockAnalysis_8cpp_source.html +7 -7
  90. package/SVF-doxygen/html/html/LockAnalysis_8h_source.html +8 -8
  91. package/SVF-doxygen/html/html/LockResultValidator_8cpp_source.html +1 -1
  92. package/SVF-doxygen/html/html/LockResultValidator_8h_source.html +3 -3
  93. package/SVF-doxygen/html/html/MHP_8cpp.html +1 -1
  94. package/SVF-doxygen/html/html/MHP_8cpp_source.html +19 -13
  95. package/SVF-doxygen/html/html/MHP_8h_source.html +10 -6
  96. package/SVF-doxygen/html/html/MSSAMuChi_8h_source.html +2 -2
  97. package/SVF-doxygen/html/html/MTAAnnotator_8cpp_source.html +11 -8
  98. package/SVF-doxygen/html/html/MTAAnnotator_8h_source.html +3 -3
  99. package/SVF-doxygen/html/html/MTAResultValidator_8cpp_source.html +12 -6
  100. package/SVF-doxygen/html/html/MTAResultValidator_8h_source.html +4 -4
  101. package/SVF-doxygen/html/html/MTAStat_8cpp_source.html +1 -1
  102. package/SVF-doxygen/html/html/MTAStat_8h_source.html +1 -1
  103. package/SVF-doxygen/html/html/MTA_8cpp_source.html +6 -6
  104. package/SVF-doxygen/html/html/MTA_8h_source.html +2 -2
  105. package/SVF-doxygen/html/html/MemPartition_8cpp_source.html +11 -2
  106. package/SVF-doxygen/html/html/MemPartition_8h_source.html +4 -4
  107. package/SVF-doxygen/html/html/MemRegion_8cpp_source.html +19 -11
  108. package/SVF-doxygen/html/html/MemRegion_8h_source.html +12 -7
  109. package/SVF-doxygen/html/html/MemSSA_8cpp_source.html +6 -6
  110. package/SVF-doxygen/html/html/MemSSA_8h_source.html +5 -5
  111. package/SVF-doxygen/html/html/MutablePointsToDS_8h_source.html +8 -4
  112. package/SVF-doxygen/html/html/NodeIDAllocator_8cpp_source.html +10 -10
  113. package/SVF-doxygen/html/html/NodeIDAllocator_8h_source.html +4 -4
  114. package/SVF-doxygen/html/html/OfflineConsG_8cpp_source.html +6 -2
  115. package/SVF-doxygen/html/html/OfflineConsG_8h_source.html +2 -2
  116. package/SVF-doxygen/html/html/PAGBuilderFromFile_8cpp_source.html +2 -2
  117. package/SVF-doxygen/html/html/PAGBuilderFromFile_8h_source.html +1 -1
  118. package/SVF-doxygen/html/html/PCG_8cpp_source.html +3 -3
  119. package/SVF-doxygen/html/html/PCG_8h_source.html +1 -1
  120. package/SVF-doxygen/html/html/PTACallGraph_8cpp_source.html +6 -4
  121. package/SVF-doxygen/html/html/PTACallGraph_8h_source.html +8 -7
  122. package/SVF-doxygen/html/html/PTAStat_8cpp_source.html +8 -6
  123. package/SVF-doxygen/html/html/PTAStat_8h_source.html +4 -4
  124. package/SVF-doxygen/html/html/PathCondAllocator_8cpp_source.html +7 -7
  125. package/SVF-doxygen/html/html/PathCondAllocator_8h_source.html +5 -5
  126. package/SVF-doxygen/html/html/PersistentPointsToCache_8h_source.html +3 -3
  127. package/SVF-doxygen/html/html/PersistentPointsToDS_8h_source.html +2 -2
  128. package/SVF-doxygen/html/html/PointerAnalysisImpl_8cpp_source.html +12 -10
  129. package/SVF-doxygen/html/html/PointerAnalysisImpl_8h_source.html +16 -13
  130. package/SVF-doxygen/html/html/PointerAnalysis_8cpp_source.html +11 -11
  131. package/SVF-doxygen/html/html/PointerAnalysis_8h_source.html +9 -9
  132. package/SVF-doxygen/html/html/PointsTo_8cpp_source.html +36 -24
  133. package/SVF-doxygen/html/html/PointsTo_8h.html +1 -0
  134. package/SVF-doxygen/html/html/PointsTo_8h_source.html +34 -33
  135. package/SVF-doxygen/html/html/ProgSlice_8cpp_source.html +8 -5
  136. package/SVF-doxygen/html/html/ProgSlice_8h_source.html +3 -3
  137. package/SVF-doxygen/html/html/SCC_8h_source.html +7 -4
  138. package/SVF-doxygen/html/html/SVFBasicTypes_8h.html +27 -29
  139. package/SVF-doxygen/html/html/SVFBasicTypes_8h_source.html +76 -73
  140. package/SVF-doxygen/html/html/SVFGBuilder_8cpp_source.html +2 -2
  141. package/SVF-doxygen/html/html/SVFGEdge_8h_source.html +4 -4
  142. package/SVF-doxygen/html/html/SVFGNode_8h_source.html +5 -5
  143. package/SVF-doxygen/html/html/SVFGOPT_8cpp_source.html +7 -5
  144. package/SVF-doxygen/html/html/SVFGOPT_8h_source.html +8 -5
  145. package/SVF-doxygen/html/html/SVFGReadWrite_8cpp_source.html +8 -6
  146. package/SVF-doxygen/html/html/SVFGStat_8cpp_source.html +6 -5
  147. package/SVF-doxygen/html/html/SVFGStat_8h_source.html +4 -4
  148. package/SVF-doxygen/html/html/SVFG_8cpp_source.html +11 -9
  149. package/SVF-doxygen/html/html/SVFG_8h_source.html +5 -5
  150. package/SVF-doxygen/html/html/SVFIRBuilder_8cpp_source.html +5 -5
  151. package/SVF-doxygen/html/html/SVFIRBuilder_8h_source.html +2 -2
  152. package/SVF-doxygen/html/html/SVFIR_8cpp_source.html +4 -3
  153. package/SVF-doxygen/html/html/SVFIR_8h_source.html +7 -7
  154. package/SVF-doxygen/html/html/SVFLoop_8h_source.html +2 -2
  155. package/SVF-doxygen/html/html/SVFModule_8cpp_source.html +2 -2
  156. package/SVF-doxygen/html/html/SVFModule_8h_source.html +1 -1
  157. package/SVF-doxygen/html/html/SVFStatements_8cpp_source.html +2 -2
  158. package/SVF-doxygen/html/html/SVFStatements_8h_source.html +6 -6
  159. package/SVF-doxygen/html/html/SVFUtil_8cpp_source.html +8 -5
  160. package/SVF-doxygen/html/html/SVFUtil_8h.html +4 -4
  161. package/SVF-doxygen/html/html/SVFUtil_8h_source.html +17 -11
  162. package/SVF-doxygen/html/html/SVFVariables_8h_source.html +2 -2
  163. package/SVF-doxygen/html/html/SaberAnnotator_8cpp_source.html +1 -1
  164. package/SVF-doxygen/html/html/SaberAnnotator_8h_source.html +1 -1
  165. package/SVF-doxygen/html/html/SaberCheckerAPI_8h_source.html +2 -2
  166. package/SVF-doxygen/html/html/SaberSVFGBuilder_8cpp_source.html +8 -8
  167. package/SVF-doxygen/html/html/SaberSVFGBuilder_8h_source.html +3 -3
  168. package/SVF-doxygen/html/html/SparseBitVector_8h.html +201 -0
  169. package/SVF-doxygen/html/html/SparseBitVector_8h_source.html +179 -0
  170. package/SVF-doxygen/html/html/SrcSnkDDA_8cpp_source.html +10 -7
  171. package/SVF-doxygen/html/html/SrcSnkDDA_8h_source.html +4 -4
  172. package/SVF-doxygen/html/html/Steensgaard_8cpp_source.html +1 -1
  173. package/SVF-doxygen/html/html/Steensgaard_8h_source.html +3 -3
  174. package/SVF-doxygen/html/html/SymState_8h_source.html +1 -1
  175. package/SVF-doxygen/html/html/SymbolTableBuilder_8cpp_source.html +5 -5
  176. package/SVF-doxygen/html/html/SymbolTableBuilder_8h_source.html +1 -1
  177. package/SVF-doxygen/html/html/SymbolTableInfo_8cpp_source.html +6 -6
  178. package/SVF-doxygen/html/html/SymbolTableInfo_8h_source.html +5 -5
  179. package/SVF-doxygen/html/html/TCT_8cpp_source.html +8 -7
  180. package/SVF-doxygen/html/html/TCT_8h_source.html +10 -7
  181. package/SVF-doxygen/html/html/ThreadAPI_8cpp_source.html +1 -1
  182. package/SVF-doxygen/html/html/ThreadAPI_8h_source.html +2 -2
  183. package/SVF-doxygen/html/html/ThreadCallGraph_8cpp_source.html +8 -5
  184. package/SVF-doxygen/html/html/ThreadCallGraph_8h_source.html +4 -4
  185. package/SVF-doxygen/html/html/TypeAnalysis_8cpp_source.html +1 -1
  186. package/SVF-doxygen/html/html/TypeAnalysis_8h_source.html +1 -1
  187. package/SVF-doxygen/html/html/Util_2BasicTypes_8h_source.html +7 -7
  188. package/SVF-doxygen/html/html/VFGEdge_8h_source.html +2 -2
  189. package/SVF-doxygen/html/html/VFGNode_8h_source.html +6 -6
  190. package/SVF-doxygen/html/html/VFG_8cpp_source.html +7 -5
  191. package/SVF-doxygen/html/html/VFG_8h_source.html +5 -5
  192. package/SVF-doxygen/html/html/VersionedFlowSensitiveStat_8cpp_source.html +6 -6
  193. package/SVF-doxygen/html/html/VersionedFlowSensitive_8cpp_source.html +15 -10
  194. package/SVF-doxygen/html/html/VersionedFlowSensitive_8h_source.html +7 -7
  195. package/SVF-doxygen/html/html/WPAFSSolver_8h_source.html +6 -3
  196. package/SVF-doxygen/html/html/WPAPass_8cpp_source.html +6 -6
  197. package/SVF-doxygen/html/html/WPAPass_8h_source.html +3 -3
  198. package/SVF-doxygen/html/html/WPASolver_8h_source.html +3 -3
  199. package/SVF-doxygen/html/html/WPAStat_8h_source.html +1 -1
  200. package/SVF-doxygen/html/html/WorkList_8h_source.html +1 -1
  201. package/SVF-doxygen/html/html/Z3Expr_8h_source.html +1 -1
  202. package/SVF-doxygen/html/html/annotated.html +169 -162
  203. package/SVF-doxygen/html/html/classSVF_1_1ActualINSVFGNode.html +4 -4
  204. package/SVF-doxygen/html/html/classSVF_1_1ActualOUTSVFGNode.html +4 -4
  205. package/SVF-doxygen/html/html/classSVF_1_1ActualParmVFGNode.html +5 -4
  206. package/SVF-doxygen/html/html/classSVF_1_1ActualRetVFGNode.html +5 -4
  207. package/SVF-doxygen/html/html/classSVF_1_1AddrVFGNode.html +5 -4
  208. package/SVF-doxygen/html/html/classSVF_1_1AliasDDAClient.html +1 -1
  209. package/SVF-doxygen/html/html/classSVF_1_1Andersen.html +53 -41
  210. package/SVF-doxygen/html/html/classSVF_1_1AndersenBase.html +6 -6
  211. package/SVF-doxygen/html/html/classSVF_1_1AndersenHCD.html +9 -9
  212. package/SVF-doxygen/html/html/classSVF_1_1AndersenHLCD.html +5 -5
  213. package/SVF-doxygen/html/html/classSVF_1_1AndersenLCD.html +9 -9
  214. package/SVF-doxygen/html/html/classSVF_1_1AndersenSCD.html +16 -16
  215. package/SVF-doxygen/html/html/classSVF_1_1AndersenSFR.html +19 -17
  216. package/SVF-doxygen/html/html/classSVF_1_1AndersenStat.html +16 -10
  217. package/SVF-doxygen/html/html/classSVF_1_1AndersenWaveDiff.html +11 -11
  218. package/SVF-doxygen/html/html/classSVF_1_1ArgumentVFGNode.html +1 -1
  219. package/SVF-doxygen/html/html/classSVF_1_1BDDExprManager.html +17 -10
  220. package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl.html +26 -22
  221. package/SVF-doxygen/html/html/classSVF_1_1BinaryOPVFGNode.html +5 -4
  222. package/SVF-doxygen/html/html/classSVF_1_1BranchStmt.html +1 -1
  223. package/SVF-doxygen/html/html/classSVF_1_1BranchVFGNode.html +3 -3
  224. package/SVF-doxygen/html/html/classSVF_1_1CFGNormalizer.html +5 -5
  225. package/SVF-doxygen/html/html/classSVF_1_1CFLAlias.html +6 -6
  226. package/SVF-doxygen/html/html/classSVF_1_1CFLGraphBuilder.html +1 -1
  227. package/SVF-doxygen/html/html/classSVF_1_1CHGBuilder.html +13 -13
  228. package/SVF-doxygen/html/html/classSVF_1_1CHGraph.html +1 -1
  229. package/SVF-doxygen/html/html/classSVF_1_1CSC.html +8 -6
  230. package/SVF-doxygen/html/html/classSVF_1_1CallICFGNode.html +1 -1
  231. package/SVF-doxygen/html/html/classSVF_1_1CallIndSVFGEdge.html +2 -2
  232. package/SVF-doxygen/html/html/classSVF_1_1CmpVFGNode.html +5 -4
  233. package/SVF-doxygen/html/html/classSVF_1_1CondPTAImpl.html +8 -7
  234. package/SVF-doxygen/html/html/classSVF_1_1CondPointsToSet.html +2 -2
  235. package/SVF-doxygen/html/html/classSVF_1_1CondStdSet.html +1 -1
  236. package/SVF-doxygen/html/html/classSVF_1_1ConstraintGraph.html +14 -14
  237. package/SVF-doxygen/html/html/classSVF_1_1ConstraintNode.html +12 -12
  238. package/SVF-doxygen/html/html/classSVF_1_1ContextDDA.html +25 -25
  239. package/SVF-doxygen/html/html/classSVF_1_1CopyVFGNode.html +5 -4
  240. package/SVF-doxygen/html/html/classSVF_1_1CoreBitVector.html +6 -5
  241. package/SVF-doxygen/html/html/classSVF_1_1CxtProc.html +1 -1
  242. package/SVF-doxygen/html/html/classSVF_1_1CxtThreadProc.html +1 -1
  243. package/SVF-doxygen/html/html/classSVF_1_1DCHGraph.html +18 -16
  244. package/SVF-doxygen/html/html/classSVF_1_1DDAClient.html +4 -4
  245. package/SVF-doxygen/html/html/classSVF_1_1DDAPass.html +7 -7
  246. package/SVF-doxygen/html/html/classSVF_1_1DDAStat.html +12 -10
  247. package/SVF-doxygen/html/html/classSVF_1_1DDAVFSolver.html +36 -33
  248. package/SVF-doxygen/html/html/classSVF_1_1DistinctMRG.html +50 -42
  249. package/SVF-doxygen/html/html/classSVF_1_1DoubleFreeChecker.html +2 -2
  250. package/SVF-doxygen/html/html/classSVF_1_1DummyVersionPropSVFGNode.html +4 -3
  251. package/SVF-doxygen/html/html/classSVF_1_1ExeState.html +3 -3
  252. package/SVF-doxygen/html/html/classSVF_1_1ExtAPI.html +2 -2
  253. package/SVF-doxygen/html/html/classSVF_1_1FSMPTA.html +3 -3
  254. package/SVF-doxygen/html/html/classSVF_1_1FileChecker.html +2 -2
  255. package/SVF-doxygen/html/html/classSVF_1_1FlowDDA.html +20 -20
  256. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitive.html +64 -51
  257. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveStat.html +18 -15
  258. package/SVF-doxygen/html/html/classSVF_1_1ForkJoinAnalysis.html +23 -21
  259. package/SVF-doxygen/html/html/classSVF_1_1FormalINSVFGNode.html +4 -4
  260. package/SVF-doxygen/html/html/classSVF_1_1FormalOUTSVFGNode.html +4 -4
  261. package/SVF-doxygen/html/html/classSVF_1_1FormalParmVFGNode.html +6 -5
  262. package/SVF-doxygen/html/html/classSVF_1_1FormalRetVFGNode.html +6 -5
  263. package/SVF-doxygen/html/html/classSVF_1_1FunEntryICFGNode.html +1 -1
  264. package/SVF-doxygen/html/html/classSVF_1_1FunExitICFGNode.html +1 -1
  265. package/SVF-doxygen/html/html/classSVF_1_1FunptrDDAClient.html +3 -3
  266. package/SVF-doxygen/html/html/classSVF_1_1GepVFGNode.html +5 -4
  267. package/SVF-doxygen/html/html/classSVF_1_1GrammarBase.html +3 -3
  268. package/SVF-doxygen/html/html/classSVF_1_1GrammarBase_1_1SymbolHash.html +1 -1
  269. package/SVF-doxygen/html/html/classSVF_1_1ICFG.html +4 -4
  270. package/SVF-doxygen/html/html/classSVF_1_1ICFGBuilder.html +2 -2
  271. package/SVF-doxygen/html/html/classSVF_1_1ICFGStat.html +1 -1
  272. package/SVF-doxygen/html/html/classSVF_1_1IRAnnotator.html +1 -1
  273. package/SVF-doxygen/html/html/classSVF_1_1IRGraph.html +2 -2
  274. package/SVF-doxygen/html/html/classSVF_1_1IndirectSVFGEdge.html +6 -6
  275. package/SVF-doxygen/html/html/classSVF_1_1InterDisjointMRG.html +40 -39
  276. package/SVF-doxygen/html/html/classSVF_1_1InterMSSAPHISVFGNode.html +4 -4
  277. package/SVF-doxygen/html/html/classSVF_1_1InterPHIVFGNode.html +1 -1
  278. package/SVF-doxygen/html/html/classSVF_1_1IntraDisjointMRG.html +53 -48
  279. package/SVF-doxygen/html/html/classSVF_1_1IntraICFGNode.html +1 -1
  280. package/SVF-doxygen/html/html/classSVF_1_1IntraIndSVFGEdge.html +2 -2
  281. package/SVF-doxygen/html/html/classSVF_1_1IntraMSSAPHISVFGNode.html +4 -4
  282. package/SVF-doxygen/html/html/classSVF_1_1IntraPHIVFGNode.html +1 -1
  283. package/SVF-doxygen/html/html/classSVF_1_1LLVMLoopAnalysis.html +3 -3
  284. package/SVF-doxygen/html/html/classSVF_1_1LLVMModuleSet-members.html +25 -24
  285. package/SVF-doxygen/html/html/classSVF_1_1LLVMModuleSet.html +85 -45
  286. package/SVF-doxygen/html/html/classSVF_1_1LeakChecker.html +5 -5
  287. package/SVF-doxygen/html/html/classSVF_1_1LoadVFGNode.html +5 -4
  288. package/SVF-doxygen/html/html/classSVF_1_1LocationSet.html +13 -9
  289. package/SVF-doxygen/html/html/classSVF_1_1LockAnalysis.html +40 -40
  290. package/SVF-doxygen/html/html/classSVF_1_1LockResultValidator.html +2 -2
  291. package/SVF-doxygen/html/html/classSVF_1_1MHP.html +56 -43
  292. package/SVF-doxygen/html/html/classSVF_1_1MRGenerator.html +153 -125
  293. package/SVF-doxygen/html/html/classSVF_1_1MRSVFGNode.html +6 -6
  294. package/SVF-doxygen/html/html/classSVF_1_1MSSAPHISVFGNode.html +4 -4
  295. package/SVF-doxygen/html/html/classSVF_1_1MTA.html +8 -8
  296. package/SVF-doxygen/html/html/classSVF_1_1MTAAnnotator.html +13 -10
  297. package/SVF-doxygen/html/html/classSVF_1_1MTAResultValidator.html +24 -15
  298. package/SVF-doxygen/html/html/classSVF_1_1MTASVFGBuilder.html +44 -36
  299. package/SVF-doxygen/html/html/classSVF_1_1MTAStat.html +2 -2
  300. package/SVF-doxygen/html/html/classSVF_1_1MemRegion.html +12 -8
  301. package/SVF-doxygen/html/html/classSVF_1_1MemSSA.html +23 -23
  302. package/SVF-doxygen/html/html/classSVF_1_1MemSSAStat.html +3 -3
  303. package/SVF-doxygen/html/html/classSVF_1_1MutableDFPTData.html +4 -2
  304. package/SVF-doxygen/html/html/classSVF_1_1NodeIDAllocator_1_1Clusterer.html +11 -11
  305. package/SVF-doxygen/html/html/classSVF_1_1NullPtrVFGNode.html +5 -4
  306. package/SVF-doxygen/html/html/classSVF_1_1OfflineConsG.html +10 -7
  307. package/SVF-doxygen/html/html/classSVF_1_1PAGBuilderFromFile.html +2 -2
  308. package/SVF-doxygen/html/html/classSVF_1_1PCG.html +3 -3
  309. package/SVF-doxygen/html/html/classSVF_1_1PHIVFGNode.html +5 -4
  310. package/SVF-doxygen/html/html/classSVF_1_1PTACallGraph.html +8 -6
  311. package/SVF-doxygen/html/html/classSVF_1_1PTACallGraphNode.html +5 -3
  312. package/SVF-doxygen/html/html/classSVF_1_1PTAStat.html +13 -10
  313. package/SVF-doxygen/html/html/classSVF_1_1PathCondAllocator.html +15 -15
  314. package/SVF-doxygen/html/html/classSVF_1_1PersistentDFPTData.html +3 -3
  315. package/SVF-doxygen/html/html/classSVF_1_1PersistentDiffPTData.html +3 -3
  316. package/SVF-doxygen/html/html/classSVF_1_1PersistentPTData.html +6 -6
  317. package/SVF-doxygen/html/html/classSVF_1_1PersistentPointsToCache.html +6 -6
  318. package/SVF-doxygen/html/html/classSVF_1_1PhiStmt.html +1 -1
  319. package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis.html +22 -22
  320. package/SVF-doxygen/html/html/classSVF_1_1PointsTo.html +214 -206
  321. package/SVF-doxygen/html/html/classSVF_1_1PointsTo_1_1PointsToIterator-members.html +1 -1
  322. package/SVF-doxygen/html/html/classSVF_1_1PointsTo_1_1PointsToIterator.html +83 -75
  323. package/SVF-doxygen/html/html/classSVF_1_1ProgSlice.html +13 -7
  324. package/SVF-doxygen/html/html/classSVF_1_1RetICFGNode.html +1 -1
  325. package/SVF-doxygen/html/html/classSVF_1_1RetIndSVFGEdge.html +2 -2
  326. package/SVF-doxygen/html/html/classSVF_1_1SCCDetection.html +11 -8
  327. package/SVF-doxygen/html/html/classSVF_1_1SCCDetection_1_1GNodeSCCInfo.html +8 -7
  328. package/SVF-doxygen/html/html/classSVF_1_1SVFBasicBlock.html +2 -2
  329. package/SVF-doxygen/html/html/classSVF_1_1SVFFunction.html +4 -4
  330. package/SVF-doxygen/html/html/classSVF_1_1SVFG.html +49 -40
  331. package/SVF-doxygen/html/html/classSVF_1_1SVFGBuilder.html +4 -4
  332. package/SVF-doxygen/html/html/classSVF_1_1SVFGOPT.html +34 -29
  333. package/SVF-doxygen/html/html/classSVF_1_1SVFGStat.html +11 -9
  334. package/SVF-doxygen/html/html/classSVF_1_1SVFGlobal.html +2 -2
  335. package/SVF-doxygen/html/html/classSVF_1_1SVFIR.html +11 -10
  336. package/SVF-doxygen/html/html/classSVF_1_1SVFIRBuilder.html +46 -46
  337. package/SVF-doxygen/html/html/classSVF_1_1SVFModule.html +2 -2
  338. package/SVF-doxygen/html/html/classSVF_1_1SVFStmt.html +3 -3
  339. package/SVF-doxygen/html/html/classSVF_1_1SVFValue.html +33 -33
  340. package/SVF-doxygen/html/html/classSVF_1_1SaberSVFGBuilder.html +16 -16
  341. package/SVF-doxygen/html/html/classSVF_1_1SparseBitVector-members.html +117 -0
  342. package/SVF-doxygen/html/html/classSVF_1_1SparseBitVector.html +1358 -0
  343. package/SVF-doxygen/html/html/classSVF_1_1SparseBitVector_1_1SparseBitVectorIterator-members.html +95 -0
  344. package/SVF-doxygen/html/html/classSVF_1_1SparseBitVector_1_1SparseBitVectorIterator.html +594 -0
  345. package/SVF-doxygen/html/html/classSVF_1_1SrcSnkDDA.html +13 -12
  346. package/SVF-doxygen/html/html/classSVF_1_1StInfo.html +1 -1
  347. package/SVF-doxygen/html/html/classSVF_1_1Steensgaard.html +4 -4
  348. package/SVF-doxygen/html/html/classSVF_1_1StmtVFGNode.html +1 -1
  349. package/SVF-doxygen/html/html/classSVF_1_1StoreVFGNode.html +4 -4
  350. package/SVF-doxygen/html/html/classSVF_1_1SymbolTableBuilder.html +20 -20
  351. package/SVF-doxygen/html/html/classSVF_1_1SymbolTableInfo.html +8 -8
  352. package/SVF-doxygen/html/html/classSVF_1_1TCT.html +23 -23
  353. package/SVF-doxygen/html/html/classSVF_1_1ThreadAPI.html +1 -1
  354. package/SVF-doxygen/html/html/classSVF_1_1ThreadCallGraph.html +12 -9
  355. package/SVF-doxygen/html/html/classSVF_1_1ThreadMHPIndSVFGEdge.html +2 -2
  356. package/SVF-doxygen/html/html/classSVF_1_1TypeAnalysis.html +4 -4
  357. package/SVF-doxygen/html/html/classSVF_1_1UnaryOPVFGNode.html +5 -4
  358. package/SVF-doxygen/html/html/classSVF_1_1VFG.html +6 -6
  359. package/SVF-doxygen/html/html/classSVF_1_1VFGNode.html +2 -2
  360. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive.html +44 -39
  361. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitiveStat.html +11 -10
  362. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive_1_1SCC.html +2 -1
  363. package/SVF-doxygen/html/html/classSVF_1_1WPAFSSolver.html +4 -3
  364. package/SVF-doxygen/html/html/classSVF_1_1WPAMinimumSolver.html +14 -11
  365. package/SVF-doxygen/html/html/classSVF_1_1WPAPass.html +7 -7
  366. package/SVF-doxygen/html/html/classSVF_1_1WPASCCSolver.html +4 -3
  367. package/SVF-doxygen/html/html/classSVF_1_1WPASolver.html +1 -1
  368. package/SVF-doxygen/html/html/classes.html +107 -106
  369. package/SVF-doxygen/html/html/dir_95e22971b5dbae2382075a3453e365b4.html +2 -0
  370. package/SVF-doxygen/html/html/files.html +8 -7
  371. package/SVF-doxygen/html/html/functions_a.html +12 -3
  372. package/SVF-doxygen/html/html/functions_b.html +27 -5
  373. package/SVF-doxygen/html/html/functions_c.html +25 -14
  374. package/SVF-doxygen/html/html/functions_e.html +20 -2
  375. package/SVF-doxygen/html/html/functions_eval_b.html +10 -0
  376. package/SVF-doxygen/html/html/functions_f.html +31 -13
  377. package/SVF-doxygen/html/html/functions_func.html +8 -2
  378. package/SVF-doxygen/html/html/functions_func_b.html +4 -3
  379. package/SVF-doxygen/html/html/functions_func_c.html +24 -16
  380. package/SVF-doxygen/html/html/functions_func_e.html +5 -2
  381. package/SVF-doxygen/html/html/functions_func_f.html +19 -1
  382. package/SVF-doxygen/html/html/functions_func_g.html +13 -10
  383. package/SVF-doxygen/html/html/functions_func_i.html +18 -8
  384. package/SVF-doxygen/html/html/functions_func_o.html +19 -8
  385. package/SVF-doxygen/html/html/functions_func_r.html +4 -2
  386. package/SVF-doxygen/html/html/functions_func_s.html +16 -5
  387. package/SVF-doxygen/html/html/functions_func_t.html +4 -0
  388. package/SVF-doxygen/html/html/functions_func_u.html +3 -0
  389. package/SVF-doxygen/html/html/functions_func_w.html +3 -0
  390. package/SVF-doxygen/html/html/functions_g.html +16 -13
  391. package/SVF-doxygen/html/html/functions_i.html +24 -12
  392. package/SVF-doxygen/html/html/functions_l.html +3 -3
  393. package/SVF-doxygen/html/html/functions_o.html +28 -17
  394. package/SVF-doxygen/html/html/functions_p.html +19 -17
  395. package/SVF-doxygen/html/html/functions_r.html +5 -5
  396. package/SVF-doxygen/html/html/functions_s.html +25 -11
  397. package/SVF-doxygen/html/html/functions_t.html +14 -8
  398. package/SVF-doxygen/html/html/functions_type_b.html +3 -0
  399. package/SVF-doxygen/html/html/functions_type_e.html +9 -0
  400. package/SVF-doxygen/html/html/functions_type_i.html +1 -0
  401. package/SVF-doxygen/html/html/functions_type_s.html +3 -0
  402. package/SVF-doxygen/html/html/functions_u.html +3 -0
  403. package/SVF-doxygen/html/html/functions_v.html +3 -3
  404. package/SVF-doxygen/html/html/functions_vars_a.html +3 -0
  405. package/SVF-doxygen/html/html/functions_vars_b.html +10 -0
  406. package/SVF-doxygen/html/html/functions_vars_c.html +3 -0
  407. package/SVF-doxygen/html/html/functions_vars_e.html +6 -0
  408. package/SVF-doxygen/html/html/functions_vars_i.html +3 -0
  409. package/SVF-doxygen/html/html/functions_vars_s.html +1 -1
  410. package/SVF-doxygen/html/html/functions_vars_w.html +3 -0
  411. package/SVF-doxygen/html/html/functions_w.html +11 -11
  412. package/SVF-doxygen/html/html/globals_defs_h.html +6 -0
  413. package/SVF-doxygen/html/html/globals_defs_s.html +5 -2
  414. package/SVF-doxygen/html/html/globals_h.html +8 -2
  415. package/SVF-doxygen/html/html/globals_s.html +14 -11
  416. package/SVF-doxygen/html/html/hierarchy.html +161 -154
  417. package/SVF-doxygen/html/html/menudata.js +2 -1
  418. package/SVF-doxygen/html/html/namespaceSVF.html +559 -70
  419. package/SVF-doxygen/html/html/namespaceSVF_1_1LLVMUtil.html +5 -5
  420. package/SVF-doxygen/html/html/namespaceSVF_1_1SVFUtil.html +27 -23
  421. package/SVF-doxygen/html/html/namespaceSVF_1_1cppUtil.html +3 -3
  422. package/SVF-doxygen/html/html/namespacemembers_c.html +9 -0
  423. package/SVF-doxygen/html/html/namespacemembers_d.html +4 -1
  424. package/SVF-doxygen/html/html/namespacemembers_enum.html +3 -0
  425. package/SVF-doxygen/html/html/namespacemembers_eval.html +9 -0
  426. package/SVF-doxygen/html/html/namespacemembers_func.html +20 -2
  427. package/SVF-doxygen/html/html/namespacemembers_n.html +1 -1
  428. package/SVF-doxygen/html/html/namespacemembers_o.html +7 -1
  429. package/SVF-doxygen/html/html/namespacemembers_s.html +0 -3
  430. package/SVF-doxygen/html/html/namespacemembers_type.html +1 -4
  431. package/SVF-doxygen/html/html/namespacemembers_z.html +85 -0
  432. package/SVF-doxygen/html/html/search/all_1.js +3 -1
  433. package/SVF-doxygen/html/html/search/all_10.js +10 -8
  434. package/SVF-doxygen/html/html/search/all_12.js +2 -2
  435. package/SVF-doxygen/html/html/search/all_13.js +16 -11
  436. package/SVF-doxygen/html/html/search/all_14.js +9 -8
  437. package/SVF-doxygen/html/html/search/all_15.js +2 -1
  438. package/SVF-doxygen/html/html/search/all_16.js +2 -2
  439. package/SVF-doxygen/html/html/search/all_17.js +3 -2
  440. package/SVF-doxygen/html/html/search/all_1a.js +4 -0
  441. package/SVF-doxygen/html/html/search/all_2.js +8 -3
  442. package/SVF-doxygen/html/html/search/all_3.js +7 -3
  443. package/SVF-doxygen/html/html/search/all_4.js +1 -1
  444. package/SVF-doxygen/html/html/search/all_5.js +7 -3
  445. package/SVF-doxygen/html/html/search/all_6.js +8 -3
  446. package/SVF-doxygen/html/html/search/all_7.js +1 -0
  447. package/SVF-doxygen/html/html/search/all_8.js +3 -1
  448. package/SVF-doxygen/html/html/search/all_9.js +8 -6
  449. package/SVF-doxygen/html/html/search/all_c.js +2 -1
  450. package/SVF-doxygen/html/html/search/all_d.js +2 -2
  451. package/SVF-doxygen/html/html/search/all_e.js +2 -2
  452. package/SVF-doxygen/html/html/search/all_f.js +15 -15
  453. package/SVF-doxygen/html/html/search/classes_10.js +1 -0
  454. package/SVF-doxygen/html/html/search/classes_7.js +1 -1
  455. package/SVF-doxygen/html/html/search/classes_9.js +1 -0
  456. package/SVF-doxygen/html/html/search/classes_d.js +2 -0
  457. package/SVF-doxygen/html/html/search/classes_f.js +3 -0
  458. package/SVF-doxygen/html/html/search/defines_6.js +2 -0
  459. package/SVF-doxygen/html/html/search/defines_f.js +2 -1
  460. package/SVF-doxygen/html/html/search/enums_d.html +26 -0
  461. package/SVF-doxygen/html/html/search/enums_d.js +4 -0
  462. package/SVF-doxygen/html/html/search/enumvalues_1.js +3 -0
  463. package/SVF-doxygen/html/html/search/enumvalues_14.js +3 -2
  464. package/SVF-doxygen/html/html/search/files_d.js +1 -0
  465. package/SVF-doxygen/html/html/search/functions_0.js +2 -0
  466. package/SVF-doxygen/html/html/search/functions_1.js +1 -1
  467. package/SVF-doxygen/html/html/search/functions_10.js +1 -1
  468. package/SVF-doxygen/html/html/search/functions_11.js +4 -1
  469. package/SVF-doxygen/html/html/search/functions_12.js +2 -2
  470. package/SVF-doxygen/html/html/search/functions_13.js +1 -0
  471. package/SVF-doxygen/html/html/search/functions_15.js +1 -0
  472. package/SVF-doxygen/html/html/search/functions_2.js +6 -3
  473. package/SVF-doxygen/html/html/search/functions_3.js +1 -1
  474. package/SVF-doxygen/html/html/search/functions_4.js +2 -2
  475. package/SVF-doxygen/html/html/search/functions_5.js +6 -1
  476. package/SVF-doxygen/html/html/search/functions_6.js +1 -0
  477. package/SVF-doxygen/html/html/search/functions_8.js +4 -2
  478. package/SVF-doxygen/html/html/search/functions_e.js +12 -12
  479. package/SVF-doxygen/html/html/search/searchdata.js +2 -2
  480. package/SVF-doxygen/html/html/search/typedefs_1.js +1 -0
  481. package/SVF-doxygen/html/html/search/typedefs_11.js +1 -1
  482. package/SVF-doxygen/html/html/search/typedefs_4.js +3 -0
  483. package/SVF-doxygen/html/html/search/typedefs_8.js +1 -1
  484. package/SVF-doxygen/html/html/search/typedefs_d.js +1 -1
  485. package/SVF-doxygen/html/html/search/variables_1.js +1 -1
  486. package/SVF-doxygen/html/html/search/variables_13.js +1 -1
  487. package/SVF-doxygen/html/html/search/variables_14.js +3 -3
  488. package/SVF-doxygen/html/html/search/variables_15.js +1 -1
  489. package/SVF-doxygen/html/html/search/variables_17.js +1 -0
  490. package/SVF-doxygen/html/html/search/variables_2.js +3 -1
  491. package/SVF-doxygen/html/html/search/variables_3.js +1 -0
  492. package/SVF-doxygen/html/html/search/variables_5.js +2 -1
  493. package/SVF-doxygen/html/html/search/variables_9.js +1 -0
  494. package/SVF-doxygen/html/html/search/variables_e.js +1 -1
  495. package/SVF-doxygen/html/html/structSVF_1_1GrammarBase_1_1Symbol.html +4 -4
  496. package/SVF-doxygen/html/html/structSVF_1_1Hash.html +3 -3
  497. package/SVF-doxygen/html/html/structSVF_1_1Hash_3_01NodePair_01_4.html +3 -3
  498. package/SVF-doxygen/html/html/structSVF_1_1Hash_3_01std_1_1pair_3_01S_00_01T_01_4_01_4.html +5 -5
  499. package/SVF-doxygen/html/html/structSVF_1_1LeadingZerosCounter-members.html +81 -0
  500. package/SVF-doxygen/html/html/structSVF_1_1LeadingZerosCounter.html +138 -0
  501. package/SVF-doxygen/html/html/structSVF_1_1PopulationCounter-members.html +81 -0
  502. package/SVF-doxygen/html/html/structSVF_1_1PopulationCounter.html +129 -0
  503. package/SVF-doxygen/html/html/structSVF_1_1PopulationCounter_3_01T_00_018_01_4-members.html +81 -0
  504. package/SVF-doxygen/html/html/structSVF_1_1PopulationCounter_3_01T_00_018_01_4.html +129 -0
  505. package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1equalNodeBS.html +3 -3
  506. package/SVF-doxygen/html/html/structSVF_1_1SparseBitVectorElement-members.html +107 -0
  507. package/SVF-doxygen/html/html/structSVF_1_1SparseBitVectorElement.html +981 -0
  508. package/SVF-doxygen/html/html/structSVF_1_1TrailingZerosCounter-members.html +81 -0
  509. package/SVF-doxygen/html/html/structSVF_1_1TrailingZerosCounter.html +138 -0
  510. package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1CondStdSet_3_01Element_01_4_01_4.html +1 -1
  511. package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1CxtDPItem_01_4.html +1 -1
  512. package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1CxtStmtDPItem_3_01LocCond_01_4_01_4.html +1 -1
  513. package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1ExeState_01_4.html +1 -1
  514. package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1LocationSet_01_4.html +1 -1
  515. package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1NodePair_01_4.html +3 -3
  516. package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1PointsTo_01_4.html +3 -3
  517. package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1SparseBitVector_3_01N_01_4_01_4-members.html +81 -0
  518. package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1SparseBitVector_3_01N_01_4_01_4.html +136 -0
  519. package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1StmtDPItem_3_01LocCond_01_4_01_4.html +1 -1
  520. package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1SymState_01_4.html +1 -1
  521. package/SVF-doxygen/html/html/structstd_1_1hash_3_01std_1_1vector_3_01T_01_4_01_4.html +3 -3
  522. package/SVF-doxygen/html/html/svf-ex_8cpp.html +6 -6
  523. package/SVF-doxygen/html/html/svf-ex_8cpp_source.html +6 -6
  524. package/include/MemoryModel/PointsTo.h +3 -2
  525. package/include/SVF-FE/LLVMModule.h +3 -0
  526. package/include/Util/SVFBasicTypes.h +6 -5
  527. package/include/Util/SparseBitVector.h +1208 -0
  528. package/lib/MemoryModel/PointsTo.cpp +12 -12
  529. package/lib/SVF-FE/LLVMModule.cpp +157 -18
  530. package/lib/Util/CoreBitVector.cpp +2 -2
  531. package/lib/WPA/Andersen.cpp +1 -1
  532. package/lib/WPA/FlowSensitive.cpp +1 -1
  533. package/package.json +1 -1
@@ -66,7 +66,7 @@ $(function() {
66
66
  <div class="title">FlowSensitive.h</div> </div>
67
67
  </div><!--header-->
68
68
  <div class="contents">
69
- <a href="FlowSensitive_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">//===- FlowSensitive.h -- Flow-sensitive pointer analysis---------------------//</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">// SVF: Static Value-Flow Analysis</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// Copyright (C) &lt;2013-2017&gt; &lt;Yulei Sui&gt;</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;</div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// This program is free software: you can redistribute it and/or modify</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">// the Free Software Foundation, either version 3 of the License, or</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// (at your option) any later version.</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// GNU General Public License for more details.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// along with this program. If not, see &lt;http://www.gnu.org/licenses/&gt;.</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">//===----------------------------------------------------------------------===//</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="comment">/*</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment"> * FlowSensitiveAnalysis.h</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment"> * Created on: Oct 28, 2013</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="comment"> * Author: Yulei Sui</span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#ifndef FLOWSENSITIVEANALYSIS_H_</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor">#define FLOWSENSITIVEANALYSIS_H_</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="fastcluster_8h.html">FastCluster/fastcluster.h</a>&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</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="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="PointerAnalysisImpl_8h.html">MemoryModel/PointerAnalysisImpl.h</a>&quot;</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</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="l00037"></a><span class="lineno"> 37</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="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">namespace </span><a class="code" href="namespaceSVF.html">SVF</a></div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;{</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="keyword">class </span>AndersenWaveDiff;</div><div class="line"><a name="l00043"></a><span class="lineno"><a class="line" href="namespaceSVF.html#a221270d70aa99a37738c0f919519a73d"> 43</a></span>&#160;<span class="keyword">class </span><a class="code" href="classSVF_1_1SVFModule.html">SVFModule</a>;</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="keyword">typedef</span> <a class="code" href="classSVF_1_1WPAFSSolver.html">WPAFSSolver&lt;SVFG*&gt;</a> <a class="code" href="namespaceSVF.html#a221270d70aa99a37738c0f919519a73d">WPASVFGFSSolver</a>;</div><div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="classSVF_1_1FlowSensitive.html"> 49</a></span>&#160;<span class="keyword">class </span><a class="code" href="classSVF_1_1FlowSensitive.html">FlowSensitive</a> : <span class="keyword">public</span> WPASVFGFSSolver, <span class="keyword">public</span> <a class="code" href="classSVF_1_1BVDataPTAImpl.html">BVDataPTAImpl</a></div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;{</div><div class="line"><a name="l00051"></a><span class="lineno"><a class="line" href="classSVF_1_1FlowSensitive.html#a88f9752372eabb71f47f13a89e4d6d9c"> 51</a></span>&#160; <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classSVF_1_1FlowSensitiveStat.html">FlowSensitiveStat</a>;</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="keyword">protected</span>:</div><div class="line"><a name="l00053"></a><span class="lineno"><a class="line" href="classSVF_1_1FlowSensitive.html#a69289c48fa91f850da90de080b9d26e5"> 53</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="classSVF_1_1VFG.html#ac97ef8c479556f9ca2c40cd4d8a18694">SVFG::SVFGEdgeSetTy</a> <a class="code" href="classSVF_1_1FlowSensitive.html#a69289c48fa91f850da90de080b9d26e5">SVFGEdgeSetTy</a>;</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="classSVF_1_1FlowSensitive.html#a03a3178d88db4efc0593fedb22938e7d"> 56</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="classSVF_1_1MutableDFPTData.html">BVDataPTAImpl::MutDFPTDataTy</a> <a class="code" href="classSVF_1_1FlowSensitive.html#a03a3178d88db4efc0593fedb22938e7d">MutDFPTDataTy</a>;</div><div class="line"><a name="l00057"></a><span class="lineno"><a class="line" href="classSVF_1_1FlowSensitive.html#af9a2bd5b490f1cc5335ce696173c78dd"> 57</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="classSVF_1_1MutableDFPTData.html#a0c73427f957d310bc85955bec6654352">BVDataPTAImpl::MutDFPTDataTy::DFPtsMap</a> <a class="code" href="classSVF_1_1FlowSensitive.html#af9a2bd5b490f1cc5335ce696173c78dd">DFInOutMap</a>;</div><div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="classSVF_1_1FlowSensitive.html#a7bb300f30f4f8cee208229ae10faa291"> 58</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="classSVF_1_1MutableDFPTData.html#ae7456fccd4c95227cdd7163176703205">BVDataPTAImpl::MutDFPTDataTy::PtsMap</a> <a class="code" href="classSVF_1_1FlowSensitive.html#a7bb300f30f4f8cee208229ae10faa291">PtsMap</a>;</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;</div><div class="line"><a name="l00061"></a><span class="lineno"><a class="line" href="classSVF_1_1FlowSensitive.html#aac88b67b49cbd72912ff586d30197ffb"> 61</a></span>&#160; <a class="code" href="classSVF_1_1FlowSensitive.html#aac88b67b49cbd72912ff586d30197ffb">FlowSensitive</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#a0b182ac680cce0547dbe7714c870ca85ad6ccf1ce66083278349c5c3111172d78">FSSPARSE_WPA</a>) : WPASVFGFSSolver(), <a class="code" href="classSVF_1_1BVDataPTAImpl.html">BVDataPTAImpl</a>(_pag, <a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>)</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; {</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <a class="code" href="classSVF_1_1FlowSensitive.html#aae032e5f5d53b131d0112dc8faa464a9">svfg</a> = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <a class="code" href="classSVF_1_1FlowSensitive.html#a4202f837e863a48712765cc346d8b514">solveTime</a> = <a class="code" href="classSVF_1_1FlowSensitive.html#af496fa9aa2f4d59594950b2ad121deff">sccTime</a> = <a class="code" href="classSVF_1_1FlowSensitive.html#ae2e58d18abcdddc7a5a87f4edc5f3b72">processTime</a> = <a class="code" href="classSVF_1_1FlowSensitive.html#ac4d4b42bb96006801597f81ed3c4b337">propagationTime</a> = <a class="code" href="classSVF_1_1FlowSensitive.html#af5a94d14096ae2bbc47b3b3b9f723226">updateTime</a> = 0;</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <a class="code" href="classSVF_1_1FlowSensitive.html#a38f3ed35185addf701d4401bfdd5f29b">addrTime</a> = <a class="code" href="classSVF_1_1FlowSensitive.html#a888d6334e5e226c634680e4c0674dcfb">copyTime</a> = <a class="code" href="classSVF_1_1FlowSensitive.html#a282126e5b67ed4e19aa40c81180b8290">gepTime</a> = <a class="code" href="classSVF_1_1FlowSensitive.html#aab4f70210eb1e6447a24697d3b459067">loadTime</a> = <a class="code" href="classSVF_1_1FlowSensitive.html#a82b76087363b26fbe749653935569de7">storeTime</a> = <a class="code" href="classSVF_1_1FlowSensitive.html#aee7d59b7ad00cf1cf6e3fba19513aa42">phiTime</a> = 0;</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <a class="code" href="classSVF_1_1FlowSensitive.html#afc140b6c8e78dc2d962f64fdf53b1e07">updateCallGraphTime</a> = <a class="code" href="classSVF_1_1FlowSensitive.html#ae086de68233375be42185f0af706687a">directPropaTime</a> = <a class="code" href="classSVF_1_1FlowSensitive.html#a2feaa4b7a72989b311e9084a81320254">indirectPropaTime</a> = 0;</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <a class="code" href="classSVF_1_1FlowSensitive.html#ae4253bc632ffffe2498263c90f456ca7">numOfProcessedAddr</a> = <a class="code" href="classSVF_1_1FlowSensitive.html#a19e017f3ed6429fa30687018e64dae54">numOfProcessedCopy</a> = <a class="code" href="classSVF_1_1FlowSensitive.html#a88a111b6bc347d6562db7af8bd8f2f0e">numOfProcessedGep</a> = 0;</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <a class="code" href="classSVF_1_1FlowSensitive.html#a0e1a0bdbf4f81a3600ac26ac011ac268">numOfProcessedLoad</a> = <a class="code" href="classSVF_1_1FlowSensitive.html#a669e8f1dd8572b7dcff373c9787a923d">numOfProcessedStore</a> = 0;</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <a class="code" href="classSVF_1_1FlowSensitive.html#ac39abcb40e4b568ab59b7cf48ed10f70">numOfProcessedPhi</a> = <a class="code" href="classSVF_1_1FlowSensitive.html#abdc30e45347579986c42795a436a1251">numOfProcessedActualParam</a> = <a class="code" href="classSVF_1_1FlowSensitive.html#ae048cc5350cf2b075c05f5d84777a3c5">numOfProcessedFormalRet</a> = 0;</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <a class="code" href="classSVF_1_1FlowSensitive.html#af71a5ae3aef022c569e89f40515072cf">numOfProcessedMSSANode</a> = 0;</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <a class="code" href="classSVF_1_1FlowSensitive.html#aa3d4703756a6297ab5c0756172024fe4">maxSCCSize</a> = <a class="code" href="classSVF_1_1FlowSensitive.html#a0ac955bf06261eec1c6bb78ec99652e3">numOfSCC</a> = <a class="code" href="classSVF_1_1FlowSensitive.html#a9f3fe97202db8170fa9f47c5684bce75">numOfNodesInSCC</a> = 0;</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <a class="code" href="classSVF_1_1WPASolver.html#aa7c0636780a86f376e9222bce771e859">iterationForPrintStat</a> = <a class="code" href="classSVF_1_1PointerAnalysis.html#afc320fbf269404fe128e69c98e6f9cac">OnTheFlyIterBudgetForStat</a>;</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"> 74</span>&#160;</div><div class="line"><a name="l00076"></a><span class="lineno"><a class="line" href="classSVF_1_1FlowSensitive.html#a7bb33faaa7081ef3346de3f30ab3a8da"> 76</a></span>&#160; <span class="keyword">virtual</span> <a class="code" href="classSVF_1_1FlowSensitive.html#a7bb33faaa7081ef3346de3f30ab3a8da">~FlowSensitive</a>()</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; {</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1FlowSensitive.html#aae032e5f5d53b131d0112dc8faa464a9">svfg</a> != <span class="keyword">nullptr</span>)</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <span class="keyword">delete</span> <a class="code" href="classSVF_1_1FlowSensitive.html#aae032e5f5d53b131d0112dc8faa464a9">svfg</a>;</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; <a class="code" href="classSVF_1_1FlowSensitive.html#aae032e5f5d53b131d0112dc8faa464a9">svfg</a> = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; }</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;</div><div class="line"><a name="l00084"></a><span class="lineno"><a class="line" href="classSVF_1_1FlowSensitive.html#af21aa66bc41607d8c93faf1acea1f3be"> 84</a></span>&#160; <span class="keyword">static</span> <a class="code" href="classSVF_1_1FlowSensitive.html">FlowSensitive</a>* <a class="code" href="classSVF_1_1FlowSensitive.html#af21aa66bc41607d8c93faf1acea1f3be">createFSWPA</a>(<a class="code" href="classSVF_1_1SVFIR.html">SVFIR</a>* _pag)</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; {</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1FlowSensitive.html#a4ad2095dc708df07602de25e4a004776">fspta</a> == <span class="keyword">nullptr</span>)</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; <a class="code" href="classSVF_1_1FlowSensitive.html#a4ad2095dc708df07602de25e4a004776">fspta</a> = <span class="keyword">new</span> <a class="code" href="classSVF_1_1FlowSensitive.html#aac88b67b49cbd72912ff586d30197ffb">FlowSensitive</a>(_pag);</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; <a class="code" href="classSVF_1_1FlowSensitive.html#a4ad2095dc708df07602de25e4a004776">fspta</a>-&gt;<a class="code" href="classSVF_1_1FlowSensitive.html#a267f7198600dde3054feb40def7a6681">analyze</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; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1FlowSensitive.html#a4ad2095dc708df07602de25e4a004776">fspta</a>;</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; }</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;</div><div class="line"><a name="l00095"></a><span class="lineno"><a class="line" href="classSVF_1_1FlowSensitive.html#ae6aed22a79ac6567446dfcba82cb17b8"> 95</a></span>&#160; <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1FlowSensitive.html#ae6aed22a79ac6567446dfcba82cb17b8">releaseFSWPA</a>()</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; {</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1FlowSensitive.html#a4ad2095dc708df07602de25e4a004776">fspta</a>)</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <span class="keyword">delete</span> <a class="code" href="classSVF_1_1FlowSensitive.html#a4ad2095dc708df07602de25e4a004776">fspta</a>;</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; <a class="code" href="classSVF_1_1FlowSensitive.html#a4ad2095dc708df07602de25e4a004776">fspta</a> = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; }</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;</div><div class="line"><a name="l00103"></a><span class="lineno"><a class="line" href="classSVF_1_1FlowSensitive.html#a611608ccc9659bd320670f1ec31ad18e"> 103</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1FlowSensitive.html#a611608ccc9659bd320670f1ec31ad18e">runOnModule</a>(<a class="code" href="classSVF_1_1SVFModule.html">SVFModule</a>*)</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; {</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; }</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1FlowSensitive.html#a267f7198600dde3054feb40def7a6681">analyze</a>();</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_1FlowSensitive.html#ad6243c1317503bed39411dab47c83da7">initialize</a>();</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1FlowSensitive.html#afed358369102f01f6fe88b1433e704c3">finalize</a>();</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;</div><div class="line"><a name="l00118"></a><span class="lineno"><a class="line" href="classSVF_1_1FlowSensitive.html#a4f1a0d533381660055210be1e2d7d72a"> 118</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_1FlowSensitive.html#a4f1a0d533381660055210be1e2d7d72a">PTAName</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; <span class="keywordflow">return</span> <span class="stringliteral">&quot;FlowSensitive&quot;</span>;</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; }</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;</div><div class="line"><a name="l00125"></a><span class="lineno"><a class="line" href="classSVF_1_1FlowSensitive.html#ac76934c9ba15742e470a785af54bd958"> 125</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1FlowSensitive.html#ac76934c9ba15742e470a785af54bd958">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1FlowSensitive.html">FlowSensitive</a> *)</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; {</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; }</div><div class="line"><a name="l00129"></a><span class="lineno"><a class="line" href="classSVF_1_1FlowSensitive.html#a12dea7b6057daddcc5c0d975aebf3f11"> 129</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1FlowSensitive.html#a12dea7b6057daddcc5c0d975aebf3f11">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1PointerAnalysis.html">PointerAnalysis</a> *pta)</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; {</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; <span class="keywordflow">return</span> pta-&gt;<a class="code" href="classSVF_1_1PointerAnalysis.html#ac23f71c1307cda9cba44acc40059f0a3">getAnalysisTy</a>() == <a class="code" href="classSVF_1_1PointerAnalysis.html#a0b182ac680cce0547dbe7714c870ca85ad6ccf1ce66083278349c5c3111172d78">FSSPARSE_WPA</a>;</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; }</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;</div><div class="line"><a name="l00136"></a><span class="lineno"><a class="line" href="classSVF_1_1FlowSensitive.html#a74f35ec76e2c7cf39355e0c148d973be"> 136</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="classSVF_1_1SVFG.html">SVFG</a>* <a class="code" href="classSVF_1_1FlowSensitive.html#a74f35ec76e2c7cf39355e0c148d973be">getSVFG</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1FlowSensitive.html#aae032e5f5d53b131d0112dc8faa464a9">svfg</a>;</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; }</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;<span class="keyword">protected</span>:</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; <span class="keyword">virtual</span> <a class="code" href="namespaceSVF.html#a1811127aebdb9c926e39d155e20b3dc0">NodeStack</a>&amp; <a class="code" href="classSVF_1_1FlowSensitive.html#a5f8a1493f7550a3f7a295e25d87bce12">SCCDetect</a>();</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160;</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160;</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1FlowSensitive.html#af849ab5a07049cb08e6b0d8023577862">propFromSrcToDst</a>(<a class="code" href="classSVF_1_1VFGEdge.html">SVFGEdge</a>* edge);</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1FlowSensitive.html#ad3518931d3b8a0671cbeb975f853b956">propAlongDirectEdge</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1DirectSVFGEdge.html">DirectSVFGEdge</a>* edge);</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_1FlowSensitive.html#aeb1e002519123a67f8d18f78cda04bac">propAlongIndirectEdge</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1IndirectSVFGEdge.html">IndirectSVFGEdge</a>* edge);</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1FlowSensitive.html#ae571767cc5936cf631a44976d8277e91">propVarPtsFromSrcToDst</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> var, <span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGNode.html">SVFGNode</a>* src, <span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGNode.html">SVFGNode</a>* dst);</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1FlowSensitive.html#a3574977acd161925cadcb05de6d3247d">propagateFromAPToFP</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1ActualParmVFGNode.html">ActualParmSVFGNode</a>* ap, <span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGNode.html">SVFGNode</a>* dst);</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1FlowSensitive.html#a3abffe1434386b1ce349fbed0cfe0967">propagateFromFRToAR</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1FormalRetVFGNode.html">FormalRetSVFGNode</a>* fr, <span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGNode.html">SVFGNode</a>* dst);</div><div class="line"><a name="l00162"></a><span class="lineno"><a class="line" href="classSVF_1_1FlowSensitive.html#ab492c283e2264b4cbd4c192e805b7750"> 162</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1FlowSensitive.html#ab492c283e2264b4cbd4c192e805b7750">weakUpdateOutFromIn</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGNode.html">SVFGNode</a>* node)</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; {</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1BVDataPTAImpl.html#a642613e98982259183d3f34a97f05502">getDFPTDataTy</a>()-&gt;<a class="code" href="classSVF_1_1DFPTData.html#a7e4ae809b40d55448de0103746254158">updateAllDFOutFromIn</a>(node-&gt;<a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>(),0,<span class="keyword">false</span>);</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"><a class="line" href="classSVF_1_1FlowSensitive.html#a8ebe4342c1496b906ee1b6450558c3e8"> 167</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1FlowSensitive.html#a8ebe4342c1496b906ee1b6450558c3e8">strongUpdateOutFromIn</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGNode.html">SVFGNode</a>* node, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> singleton)</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; {</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1BVDataPTAImpl.html#a642613e98982259183d3f34a97f05502">getDFPTDataTy</a>()-&gt;<a class="code" href="classSVF_1_1DFPTData.html#a7e4ae809b40d55448de0103746254158">updateAllDFOutFromIn</a>(node-&gt;<a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>(),singleton,<span class="keyword">true</span>);</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; }</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160;</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160;</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1FlowSensitive.html#a9e7fbc4c1d056fbef07498de8cbb1cd9">propVarPtsAfterCGUpdated</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> var, <span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGNode.html">SVFGNode</a>* src, <span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGNode.html">SVFGNode</a>* dst);</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160;</div><div class="line"><a name="l00178"></a><span class="lineno"><a class="line" href="classSVF_1_1FlowSensitive.html#a5e97c3fe32f60b0e8e96323ceb9a10cf"> 178</a></span>&#160; <span class="keyword">virtual</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1FlowSensitive.html#a5e97c3fe32f60b0e8e96323ceb9a10cf">propDFOutToIn</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGNode.html">SVFGNode</a>* srcStmt, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> srcVar, <span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGNode.html">SVFGNode</a>* dstStmt, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> dstVar)</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; {</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1BVDataPTAImpl.html#a642613e98982259183d3f34a97f05502">getDFPTDataTy</a>()-&gt;<a class="code" href="classSVF_1_1DFPTData.html#a96a5d7e867095b3c215c73599fd31c19">updateAllDFInFromOut</a>(srcStmt-&gt;<a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>(), srcVar, dstStmt-&gt;<a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>(),dstVar);</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; }</div><div class="line"><a name="l00182"></a><span class="lineno"><a class="line" href="classSVF_1_1FlowSensitive.html#a3be364754863bbbee6dfd0b5490dec47"> 182</a></span>&#160; <span class="keyword">virtual</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1FlowSensitive.html#a3be364754863bbbee6dfd0b5490dec47">propDFInToIn</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGNode.html">SVFGNode</a>* srcStmt, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> srcVar, <span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGNode.html">SVFGNode</a>* dstStmt, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> dstVar)</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; {</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1BVDataPTAImpl.html#a642613e98982259183d3f34a97f05502">getDFPTDataTy</a>()-&gt;<a class="code" href="classSVF_1_1DFPTData.html#a506a2be8f909663d59245254bddea00b">updateAllDFInFromIn</a>(srcStmt-&gt;<a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>(), srcVar, dstStmt-&gt;<a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>(),dstVar);</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; }</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160;</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160;</div><div class="line"><a name="l00190"></a><span class="lineno"><a class="line" href="classSVF_1_1FlowSensitive.html#a06fe840604fdb4b50f08617c48acd44f"> 190</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1FlowSensitive.html#a06fe840604fdb4b50f08617c48acd44f">updateOutFromIn</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGNode.html">SVFGNode</a>* srcStmt, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> srcVar, <span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGNode.html">SVFGNode</a>* dstStmt, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> dstVar)</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; {</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1BVDataPTAImpl.html#a642613e98982259183d3f34a97f05502">getDFPTDataTy</a>()-&gt;<a class="code" href="classSVF_1_1DFPTData.html#acee5fb134d3153ae6eb91c15cd2cff66">updateDFOutFromIn</a>(srcStmt-&gt;<a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>(),srcVar, dstStmt-&gt;<a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>(),dstVar);</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; }</div><div class="line"><a name="l00194"></a><span class="lineno"><a class="line" href="classSVF_1_1FlowSensitive.html#a88120b9cec26620d4982798ea530353a"> 194</a></span>&#160; <span class="keyword">virtual</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1FlowSensitive.html#a88120b9cec26620d4982798ea530353a">updateInFromIn</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGNode.html">SVFGNode</a>* srcStmt, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> srcVar, <span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGNode.html">SVFGNode</a>* dstStmt, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> dstVar)</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; {</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1BVDataPTAImpl.html#a642613e98982259183d3f34a97f05502">getDFPTDataTy</a>()-&gt;<a class="code" href="classSVF_1_1DFPTData.html#a88cf9cd48ee5c1b8b3c71b379f23ab6b">updateDFInFromIn</a>(srcStmt-&gt;<a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>(),srcVar, dstStmt-&gt;<a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>(),dstVar);</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; }</div><div class="line"><a name="l00198"></a><span class="lineno"><a class="line" href="classSVF_1_1FlowSensitive.html#af5d90b4bd5c16dd64cd10afea6b3be93"> 198</a></span>&#160; <span class="keyword">virtual</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1FlowSensitive.html#af5d90b4bd5c16dd64cd10afea6b3be93">updateInFromOut</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGNode.html">SVFGNode</a>* srcStmt, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> srcVar, <span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGNode.html">SVFGNode</a>* dstStmt, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> dstVar)</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; {</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1BVDataPTAImpl.html#a642613e98982259183d3f34a97f05502">getDFPTDataTy</a>()-&gt;<a class="code" href="classSVF_1_1DFPTData.html#a2ec4fb73d87f10c86fac34b3500532b3">updateDFInFromOut</a>(srcStmt-&gt;<a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>(),srcVar, dstStmt-&gt;<a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>(),dstVar);</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; }</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160;</div><div class="line"><a name="l00203"></a><span class="lineno"><a class="line" href="classSVF_1_1FlowSensitive.html#a16d757abf69ad77951b808dc18ca2999"> 203</a></span>&#160; <span class="keyword">virtual</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1FlowSensitive.html#a16d757abf69ad77951b808dc18ca2999">unionPtsFromIn</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGNode.html">SVFGNode</a>* stmt, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> srcVar, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> dstVar)</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; {</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1BVDataPTAImpl.html#a642613e98982259183d3f34a97f05502">getDFPTDataTy</a>()-&gt;<a class="code" href="classSVF_1_1DFPTData.html#aaa6f67ff5daf7d71a3ad62316a7dd872">updateTLVPts</a>(stmt-&gt;<a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>(),srcVar,dstVar);</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; }</div><div class="line"><a name="l00207"></a><span class="lineno"><a class="line" href="classSVF_1_1FlowSensitive.html#a49104435f8d20015907a1c8f58a76577"> 207</a></span>&#160; <span class="keyword">virtual</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1FlowSensitive.html#a49104435f8d20015907a1c8f58a76577">unionPtsFromTop</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGNode.html">SVFGNode</a>* stmt, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> srcVar, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> dstVar)</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; {</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1BVDataPTAImpl.html#a642613e98982259183d3f34a97f05502">getDFPTDataTy</a>()-&gt;<a class="code" href="classSVF_1_1DFPTData.html#a09bc4b7eef592af2c2c84b60029b5b52">updateATVPts</a>(srcVar,stmt-&gt;<a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>(),dstVar);</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; }</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160;</div><div class="line"><a name="l00212"></a><span class="lineno"><a class="line" href="classSVF_1_1FlowSensitive.html#a9622f0b7b16694b0c74b07834f598e67"> 212</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1FlowSensitive.html#a9622f0b7b16694b0c74b07834f598e67">clearAllDFOutVarFlag</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGNode.html">SVFGNode</a>* stmt)</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; {</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; <a class="code" href="classSVF_1_1BVDataPTAImpl.html#a642613e98982259183d3f34a97f05502">getDFPTDataTy</a>()-&gt;<a class="code" href="classSVF_1_1DFPTData.html#ac20579e277a284158e2924fb5946cd86">clearAllDFOutUpdatedVar</a>(stmt-&gt;<a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>());</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; }</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160;</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160;</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1FlowSensitive.html#a16f594356ea565eb1fed2acea516a16b">processNode</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> nodeId);</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1FlowSensitive.html#a979f89495966d71f9b470d832384ebd6">processSVFGNode</a>(<a class="code" href="classSVF_1_1VFGNode.html">SVFGNode</a>* node);</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1FlowSensitive.html#abb37c5e4e6fa4742e8dbcf397aea086e">processAddr</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1AddrVFGNode.html">AddrSVFGNode</a>* addr);</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1FlowSensitive.html#aa401cc90de4e1c6842f08a43a28c5aa1">processCopy</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CopyVFGNode.html">CopySVFGNode</a>* <a class="code" href="cJSON_8cpp.html#a7669ee67a0563250c1efaa24d130e1ac">copy</a>);</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1FlowSensitive.html#aa36fd1387e948e83107431179d819067">processPhi</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1PHIVFGNode.html">PHISVFGNode</a>* phi);</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1FlowSensitive.html#ae017c39ac471727d06868e0eacafd791">processGep</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1GepVFGNode.html">GepSVFGNode</a>* edge);</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1FlowSensitive.html#a9968530b3dee876f55e6659530decf27">processLoad</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1LoadVFGNode.html">LoadSVFGNode</a>* load);</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1FlowSensitive.html#aa37d591d2d4f65957e840bef4d142a6a">processStore</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1StoreVFGNode.html">StoreSVFGNode</a>* store);</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160;</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160;</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1FlowSensitive.html#a9d81537ec20196315a9a2541477ec5bf">updateCallGraph</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1PointerAnalysis.html#ad95c842964e6ca46e51fb763fefec585">CallSiteToFunPtrMap</a>&amp; callsites);</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1FlowSensitive.html#ad7640ada31b5cb542e492e27ab4fe1af">connectCallerAndCallee</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1PointerAnalysis.html#a35bd5f0fb2c146199e9f1aa6a19b4062">CallEdgeMap</a>&amp; newEdges, SVFGEdgeSetTy&amp; edges);</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1FlowSensitive.html#a1886b4964efa92cfff761493d12768b8">updateConnectedNodes</a>(<span class="keyword">const</span> SVFGEdgeSetTy&amp; edges);</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160;</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1FlowSensitive.html#a42a7e39e0e15576742f8ba7c32579ea2">isStrongUpdate</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGNode.html">SVFGNode</a>* node, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a>&amp; singleton);</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160;</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1FlowSensitive.html#a94dc671f524ed3ed00f5a54b13f18e18">countAliases</a>(<a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set</a>&lt;std::pair&lt;NodeID, NodeID&gt;&gt; cmp, <span class="keywordtype">unsigned</span> *mayAliases, <span class="keywordtype">unsigned</span> *noAliases);</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160;</div><div class="line"><a name="l00246"></a><span class="lineno"><a class="line" href="classSVF_1_1FlowSensitive.html#aae032e5f5d53b131d0112dc8faa464a9"> 246</a></span>&#160; <a class="code" href="classSVF_1_1SVFG.html">SVFG</a>* <a class="code" href="classSVF_1_1FlowSensitive.html#aae032e5f5d53b131d0112dc8faa464a9">svfg</a>;</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160;</div><div class="line"><a name="l00249"></a><span class="lineno"><a class="line" href="classSVF_1_1FlowSensitive.html#a9379acbe349ee652416765b335dfdeab"> 249</a></span>&#160; <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="classSVF_1_1PointsTo.html">PointsTo</a>&amp; <a class="code" href="classSVF_1_1FlowSensitive.html#a9379acbe349ee652416765b335dfdeab">getDFInPtsSet</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGNode.html">SVFGNode</a>* stmt, <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> node)</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; {</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1BVDataPTAImpl.html#a642613e98982259183d3f34a97f05502">getDFPTDataTy</a>()-&gt;<a class="code" href="classSVF_1_1DFPTData.html#a259a92ea46f1d3a1dbd4a74ff07718d2">getDFInPtsSet</a>(stmt-&gt;<a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>(),node);</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"><a class="line" href="classSVF_1_1FlowSensitive.html#a808dc8a242f168174339d7ca3196bb58"> 253</a></span>&#160; <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="classSVF_1_1PointsTo.html">PointsTo</a>&amp; <a class="code" href="classSVF_1_1FlowSensitive.html#a808dc8a242f168174339d7ca3196bb58">getDFOutPtsSet</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGNode.html">SVFGNode</a>* stmt, <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> node)</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; {</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1BVDataPTAImpl.html#a642613e98982259183d3f34a97f05502">getDFPTDataTy</a>()-&gt;<a class="code" href="classSVF_1_1DFPTData.html#ad9b3bb99cfefb87424c408eae3ecfcec">getDFOutPtsSet</a>(stmt-&gt;<a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>(),node);</div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; }</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160;</div><div class="line"><a name="l00262"></a><span class="lineno"><a class="line" href="classSVF_1_1FlowSensitive.html#a9717517387c14c2e64c7ae3c3149bb57"> 262</a></span>&#160; <span class="keyword">inline</span> <span class="keyword">const</span> DFInOutMap&amp; <a class="code" href="classSVF_1_1FlowSensitive.html#a9717517387c14c2e64c7ae3c3149bb57">getDFInputMap</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1BVDataPTAImpl.html#acbb979edee9427efa2a7c0dbd881c483">getMutDFPTDataTy</a>()-&gt;<a class="code" href="classSVF_1_1MutableDFPTData.html#ae999df6f94a097f1fcb36979327790de">getDFIn</a>();</div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; }</div><div class="line"><a name="l00266"></a><span class="lineno"><a class="line" href="classSVF_1_1FlowSensitive.html#a661c4c1d5902c924060cc81219591d6f"> 266</a></span>&#160; <span class="keyword">inline</span> <span class="keyword">const</span> DFInOutMap&amp; <a class="code" href="classSVF_1_1FlowSensitive.html#a661c4c1d5902c924060cc81219591d6f">getDFOutputMap</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1BVDataPTAImpl.html#acbb979edee9427efa2a7c0dbd881c483">getMutDFPTDataTy</a>()-&gt;<a class="code" href="classSVF_1_1MutableDFPTData.html#a6d02392602cf7956ff41e345518d683c">getDFOut</a>();</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160; }</div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160;</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1FlowSensitive.html#a89d3b97b8077027514135c9201c4d02c">cluster</a>(<span class="keywordtype">void</span>);</div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1FlowSensitive.html#a5a8688102f3675cf414b01dc2ae51c6b">plainMap</a>(<span class="keywordtype">void</span>) <span class="keyword">const</span>;</div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160;</div><div class="line"><a name="l00278"></a><span class="lineno"><a class="line" href="classSVF_1_1FlowSensitive.html#a4ad2095dc708df07602de25e4a004776"> 278</a></span>&#160; <span class="keyword">static</span> <a class="code" href="classSVF_1_1FlowSensitive.html">FlowSensitive</a>* <a class="code" href="classSVF_1_1FlowSensitive.html#a4ad2095dc708df07602de25e4a004776">fspta</a>;</div><div class="line"><a name="l00279"></a><span class="lineno"><a class="line" href="classSVF_1_1FlowSensitive.html#a76f6f19ac2b58ab4a10a2d7e6e24e42a"> 279</a></span>&#160; <a class="code" href="classSVF_1_1SVFGBuilder.html">SVFGBuilder</a> <a class="code" href="classSVF_1_1FlowSensitive.html#a76f6f19ac2b58ab4a10a2d7e6e24e42a">memSSA</a>;</div><div class="line"><a name="l00280"></a><span class="lineno"><a class="line" href="classSVF_1_1FlowSensitive.html#a5cfee013a1a5821ef0c449842dd8690d"> 280</a></span>&#160; <a class="code" href="classSVF_1_1AndersenWaveDiff.html">AndersenWaveDiff</a> *<a class="code" href="classSVF_1_1FlowSensitive.html#a5cfee013a1a5821ef0c449842dd8690d">ander</a>;</div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160;</div><div class="line"><a name="l00283"></a><span class="lineno"><a class="line" href="classSVF_1_1FlowSensitive.html#adba7ffe68ae7edce9b3aa896f978da6b"> 283</a></span>&#160; std::vector&lt;std::pair&lt;hclust_fast_methods, std::vector&lt;NodeID&gt;&gt;&gt; <a class="code" href="classSVF_1_1FlowSensitive.html#adba7ffe68ae7edce9b3aa896f978da6b">candidateMappings</a>;</div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160;</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"><a class="line" href="classSVF_1_1FlowSensitive.html#ae4253bc632ffffe2498263c90f456ca7"> 287</a></span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1FlowSensitive.html#ae4253bc632ffffe2498263c90f456ca7">numOfProcessedAddr</a>; </div><div class="line"><a name="l00288"></a><span class="lineno"><a class="line" href="classSVF_1_1FlowSensitive.html#a19e017f3ed6429fa30687018e64dae54"> 288</a></span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1FlowSensitive.html#a19e017f3ed6429fa30687018e64dae54">numOfProcessedCopy</a>; </div><div class="line"><a name="l00289"></a><span class="lineno"><a class="line" href="classSVF_1_1FlowSensitive.html#a88a111b6bc347d6562db7af8bd8f2f0e"> 289</a></span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1FlowSensitive.html#a88a111b6bc347d6562db7af8bd8f2f0e">numOfProcessedGep</a>; </div><div class="line"><a name="l00290"></a><span class="lineno"><a class="line" href="classSVF_1_1FlowSensitive.html#ac39abcb40e4b568ab59b7cf48ed10f70"> 290</a></span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1FlowSensitive.html#ac39abcb40e4b568ab59b7cf48ed10f70">numOfProcessedPhi</a>; </div><div class="line"><a name="l00291"></a><span class="lineno"><a class="line" href="classSVF_1_1FlowSensitive.html#a0e1a0bdbf4f81a3600ac26ac011ac268"> 291</a></span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1FlowSensitive.html#a0e1a0bdbf4f81a3600ac26ac011ac268">numOfProcessedLoad</a>; </div><div class="line"><a name="l00292"></a><span class="lineno"><a class="line" href="classSVF_1_1FlowSensitive.html#a669e8f1dd8572b7dcff373c9787a923d"> 292</a></span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1FlowSensitive.html#a669e8f1dd8572b7dcff373c9787a923d">numOfProcessedStore</a>; </div><div class="line"><a name="l00293"></a><span class="lineno"><a class="line" href="classSVF_1_1FlowSensitive.html#abdc30e45347579986c42795a436a1251"> 293</a></span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1FlowSensitive.html#abdc30e45347579986c42795a436a1251">numOfProcessedActualParam</a>; </div><div class="line"><a name="l00294"></a><span class="lineno"><a class="line" href="classSVF_1_1FlowSensitive.html#ae048cc5350cf2b075c05f5d84777a3c5"> 294</a></span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1FlowSensitive.html#ae048cc5350cf2b075c05f5d84777a3c5">numOfProcessedFormalRet</a>; </div><div class="line"><a name="l00295"></a><span class="lineno"><a class="line" href="classSVF_1_1FlowSensitive.html#af71a5ae3aef022c569e89f40515072cf"> 295</a></span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1FlowSensitive.html#af71a5ae3aef022c569e89f40515072cf">numOfProcessedMSSANode</a>; </div><div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160;</div><div class="line"><a name="l00297"></a><span class="lineno"><a class="line" href="classSVF_1_1FlowSensitive.html#aa3d4703756a6297ab5c0756172024fe4"> 297</a></span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1FlowSensitive.html#aa3d4703756a6297ab5c0756172024fe4">maxSCCSize</a>;</div><div class="line"><a name="l00298"></a><span class="lineno"><a class="line" href="classSVF_1_1FlowSensitive.html#a0ac955bf06261eec1c6bb78ec99652e3"> 298</a></span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1FlowSensitive.html#a0ac955bf06261eec1c6bb78ec99652e3">numOfSCC</a>;</div><div class="line"><a name="l00299"></a><span class="lineno"><a class="line" href="classSVF_1_1FlowSensitive.html#a9f3fe97202db8170fa9f47c5684bce75"> 299</a></span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1FlowSensitive.html#a9f3fe97202db8170fa9f47c5684bce75">numOfNodesInSCC</a>;</div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160;</div><div class="line"><a name="l00301"></a><span class="lineno"><a class="line" href="classSVF_1_1FlowSensitive.html#a4202f837e863a48712765cc346d8b514"> 301</a></span>&#160; <span class="keywordtype">double</span> <a class="code" href="classSVF_1_1FlowSensitive.html#a4202f837e863a48712765cc346d8b514">solveTime</a>; </div><div class="line"><a name="l00302"></a><span class="lineno"><a class="line" href="classSVF_1_1FlowSensitive.html#af496fa9aa2f4d59594950b2ad121deff"> 302</a></span>&#160; <span class="keywordtype">double</span> <a class="code" href="classSVF_1_1FlowSensitive.html#af496fa9aa2f4d59594950b2ad121deff">sccTime</a>; </div><div class="line"><a name="l00303"></a><span class="lineno"><a class="line" href="classSVF_1_1FlowSensitive.html#ae2e58d18abcdddc7a5a87f4edc5f3b72"> 303</a></span>&#160; <span class="keywordtype">double</span> <a class="code" href="classSVF_1_1FlowSensitive.html#ae2e58d18abcdddc7a5a87f4edc5f3b72">processTime</a>; </div><div class="line"><a name="l00304"></a><span class="lineno"><a class="line" href="classSVF_1_1FlowSensitive.html#ac4d4b42bb96006801597f81ed3c4b337"> 304</a></span>&#160; <span class="keywordtype">double</span> <a class="code" href="classSVF_1_1FlowSensitive.html#ac4d4b42bb96006801597f81ed3c4b337">propagationTime</a>; </div><div class="line"><a name="l00305"></a><span class="lineno"><a class="line" href="classSVF_1_1FlowSensitive.html#ae086de68233375be42185f0af706687a"> 305</a></span>&#160; <span class="keywordtype">double</span> <a class="code" href="classSVF_1_1FlowSensitive.html#ae086de68233375be42185f0af706687a">directPropaTime</a>; </div><div class="line"><a name="l00306"></a><span class="lineno"><a class="line" href="classSVF_1_1FlowSensitive.html#a2feaa4b7a72989b311e9084a81320254"> 306</a></span>&#160; <span class="keywordtype">double</span> <a class="code" href="classSVF_1_1FlowSensitive.html#a2feaa4b7a72989b311e9084a81320254">indirectPropaTime</a>; </div><div class="line"><a name="l00307"></a><span class="lineno"><a class="line" href="classSVF_1_1FlowSensitive.html#af5a94d14096ae2bbc47b3b3b9f723226"> 307</a></span>&#160; <span class="keywordtype">double</span> <a class="code" href="classSVF_1_1FlowSensitive.html#af5a94d14096ae2bbc47b3b3b9f723226">updateTime</a>; </div><div class="line"><a name="l00308"></a><span class="lineno"><a class="line" href="classSVF_1_1FlowSensitive.html#a38f3ed35185addf701d4401bfdd5f29b"> 308</a></span>&#160; <span class="keywordtype">double</span> <a class="code" href="classSVF_1_1FlowSensitive.html#a38f3ed35185addf701d4401bfdd5f29b">addrTime</a>; </div><div class="line"><a name="l00309"></a><span class="lineno"><a class="line" href="classSVF_1_1FlowSensitive.html#a888d6334e5e226c634680e4c0674dcfb"> 309</a></span>&#160; <span class="keywordtype">double</span> <a class="code" href="classSVF_1_1FlowSensitive.html#a888d6334e5e226c634680e4c0674dcfb">copyTime</a>; </div><div class="line"><a name="l00310"></a><span class="lineno"><a class="line" href="classSVF_1_1FlowSensitive.html#a282126e5b67ed4e19aa40c81180b8290"> 310</a></span>&#160; <span class="keywordtype">double</span> <a class="code" href="classSVF_1_1FlowSensitive.html#a282126e5b67ed4e19aa40c81180b8290">gepTime</a>; </div><div class="line"><a name="l00311"></a><span class="lineno"><a class="line" href="classSVF_1_1FlowSensitive.html#aab4f70210eb1e6447a24697d3b459067"> 311</a></span>&#160; <span class="keywordtype">double</span> <a class="code" href="classSVF_1_1FlowSensitive.html#aab4f70210eb1e6447a24697d3b459067">loadTime</a>; </div><div class="line"><a name="l00312"></a><span class="lineno"><a class="line" href="classSVF_1_1FlowSensitive.html#a82b76087363b26fbe749653935569de7"> 312</a></span>&#160; <span class="keywordtype">double</span> <a class="code" href="classSVF_1_1FlowSensitive.html#a82b76087363b26fbe749653935569de7">storeTime</a>; </div><div class="line"><a name="l00313"></a><span class="lineno"><a class="line" href="classSVF_1_1FlowSensitive.html#aee7d59b7ad00cf1cf6e3fba19513aa42"> 313</a></span>&#160; <span class="keywordtype">double</span> <a class="code" href="classSVF_1_1FlowSensitive.html#aee7d59b7ad00cf1cf6e3fba19513aa42">phiTime</a>; </div><div class="line"><a name="l00314"></a><span class="lineno"><a class="line" href="classSVF_1_1FlowSensitive.html#afc140b6c8e78dc2d962f64fdf53b1e07"> 314</a></span>&#160; <span class="keywordtype">double</span> <a class="code" href="classSVF_1_1FlowSensitive.html#afc140b6c8e78dc2d962f64fdf53b1e07">updateCallGraphTime</a>; </div><div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160;</div><div class="line"><a name="l00316"></a><span class="lineno"><a class="line" href="classSVF_1_1FlowSensitive.html#a43e8ca2e69e6e8643c9abd1fa231d305"> 316</a></span>&#160; <a class="code" href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">NodeBS</a> <a class="code" href="classSVF_1_1FlowSensitive.html#a43e8ca2e69e6e8643c9abd1fa231d305">svfgHasSU</a>;</div><div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160;</div><div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1FlowSensitive.html#a5f015d8f2b0956306822172d02b415c3">svfgStat</a>();</div><div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160;};</div><div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160;</div><div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160;} <span class="comment">// End namespace SVF</span></div><div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160;</div><div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* FLOWSENSITIVEANALYSIS_H_ */</span><span class="preprocessor"></span></div><div class="ttc" id="classSVF_1_1FlowSensitive_html_ae2e58d18abcdddc7a5a87f4edc5f3b72"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#ae2e58d18abcdddc7a5a87f4edc5f3b72">SVF::FlowSensitive::processTime</a></div><div class="ttdeci">double processTime</div><div class="ttdoc">time of processNode. </div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8h_source.html#l00303">FlowSensitive.h:303</a></div></div>
69
+ <a href="FlowSensitive_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">//===- FlowSensitive.h -- Flow-sensitive pointer analysis---------------------//</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">// SVF: Static Value-Flow Analysis</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// Copyright (C) &lt;2013-2017&gt; &lt;Yulei Sui&gt;</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;</div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// This program is free software: you can redistribute it and/or modify</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">// the Free Software Foundation, either version 3 of the License, or</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// (at your option) any later version.</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// GNU General Public License for more details.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// along with this program. If not, see &lt;http://www.gnu.org/licenses/&gt;.</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">//===----------------------------------------------------------------------===//</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="comment">/*</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment"> * FlowSensitiveAnalysis.h</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment"> * Created on: Oct 28, 2013</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="comment"> * Author: Yulei Sui</span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#ifndef FLOWSENSITIVEANALYSIS_H_</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor">#define FLOWSENSITIVEANALYSIS_H_</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="fastcluster_8h.html">FastCluster/fastcluster.h</a>&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</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="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="PointerAnalysisImpl_8h.html">MemoryModel/PointerAnalysisImpl.h</a>&quot;</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</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="l00037"></a><span class="lineno"> 37</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="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">namespace </span><a class="code" href="namespaceSVF.html">SVF</a></div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;{</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="keyword">class </span>AndersenWaveDiff;</div><div class="line"><a name="l00043"></a><span class="lineno"><a class="line" href="namespaceSVF.html#a221270d70aa99a37738c0f919519a73d"> 43</a></span>&#160;<span class="keyword">class </span><a class="code" href="classSVF_1_1SVFModule.html">SVFModule</a>;</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="keyword">typedef</span> <a class="code" href="classSVF_1_1WPAFSSolver.html">WPAFSSolver&lt;SVFG*&gt;</a> <a class="code" href="namespaceSVF.html#a221270d70aa99a37738c0f919519a73d">WPASVFGFSSolver</a>;</div><div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="classSVF_1_1FlowSensitive.html"> 49</a></span>&#160;<span class="keyword">class </span><a class="code" href="classSVF_1_1FlowSensitive.html">FlowSensitive</a> : <span class="keyword">public</span> WPASVFGFSSolver, <span class="keyword">public</span> <a class="code" href="classSVF_1_1BVDataPTAImpl.html">BVDataPTAImpl</a></div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;{</div><div class="line"><a name="l00051"></a><span class="lineno"><a class="line" href="classSVF_1_1FlowSensitive.html#a88f9752372eabb71f47f13a89e4d6d9c"> 51</a></span>&#160; <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classSVF_1_1FlowSensitiveStat.html">FlowSensitiveStat</a>;</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="keyword">protected</span>:</div><div class="line"><a name="l00053"></a><span class="lineno"><a class="line" href="classSVF_1_1FlowSensitive.html#a69289c48fa91f850da90de080b9d26e5"> 53</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="classSVF_1_1VFG.html#ac97ef8c479556f9ca2c40cd4d8a18694">SVFG::SVFGEdgeSetTy</a> <a class="code" href="classSVF_1_1FlowSensitive.html#a69289c48fa91f850da90de080b9d26e5">SVFGEdgeSetTy</a>;</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="classSVF_1_1FlowSensitive.html#a03a3178d88db4efc0593fedb22938e7d"> 56</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="classSVF_1_1MutableDFPTData.html">BVDataPTAImpl::MutDFPTDataTy</a> <a class="code" href="classSVF_1_1FlowSensitive.html#a03a3178d88db4efc0593fedb22938e7d">MutDFPTDataTy</a>;</div><div class="line"><a name="l00057"></a><span class="lineno"><a class="line" href="classSVF_1_1FlowSensitive.html#af9a2bd5b490f1cc5335ce696173c78dd"> 57</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="classSVF_1_1MutableDFPTData.html#a0c73427f957d310bc85955bec6654352">BVDataPTAImpl::MutDFPTDataTy::DFPtsMap</a> <a class="code" href="classSVF_1_1FlowSensitive.html#af9a2bd5b490f1cc5335ce696173c78dd">DFInOutMap</a>;</div><div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="classSVF_1_1FlowSensitive.html#a7bb300f30f4f8cee208229ae10faa291"> 58</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="classSVF_1_1MutableDFPTData.html#ae7456fccd4c95227cdd7163176703205">BVDataPTAImpl::MutDFPTDataTy::PtsMap</a> <a class="code" href="classSVF_1_1FlowSensitive.html#a7bb300f30f4f8cee208229ae10faa291">PtsMap</a>;</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;</div><div class="line"><a name="l00061"></a><span class="lineno"><a class="line" href="classSVF_1_1FlowSensitive.html#aac88b67b49cbd72912ff586d30197ffb"> 61</a></span>&#160; <a class="code" href="classSVF_1_1FlowSensitive.html#aac88b67b49cbd72912ff586d30197ffb">FlowSensitive</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#a0b182ac680cce0547dbe7714c870ca85ad6ccf1ce66083278349c5c3111172d78">FSSPARSE_WPA</a>) : WPASVFGFSSolver(), <a class="code" href="classSVF_1_1BVDataPTAImpl.html">BVDataPTAImpl</a>(_pag, <a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>)</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; {</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <a class="code" href="classSVF_1_1FlowSensitive.html#aae032e5f5d53b131d0112dc8faa464a9">svfg</a> = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <a class="code" href="classSVF_1_1FlowSensitive.html#a4202f837e863a48712765cc346d8b514">solveTime</a> = <a class="code" href="classSVF_1_1FlowSensitive.html#af496fa9aa2f4d59594950b2ad121deff">sccTime</a> = <a class="code" href="classSVF_1_1FlowSensitive.html#ae2e58d18abcdddc7a5a87f4edc5f3b72">processTime</a> = <a class="code" href="classSVF_1_1FlowSensitive.html#ac4d4b42bb96006801597f81ed3c4b337">propagationTime</a> = <a class="code" href="classSVF_1_1FlowSensitive.html#af5a94d14096ae2bbc47b3b3b9f723226">updateTime</a> = 0;</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <a class="code" href="classSVF_1_1FlowSensitive.html#a38f3ed35185addf701d4401bfdd5f29b">addrTime</a> = <a class="code" href="classSVF_1_1FlowSensitive.html#a888d6334e5e226c634680e4c0674dcfb">copyTime</a> = <a class="code" href="classSVF_1_1FlowSensitive.html#a282126e5b67ed4e19aa40c81180b8290">gepTime</a> = <a class="code" href="classSVF_1_1FlowSensitive.html#aab4f70210eb1e6447a24697d3b459067">loadTime</a> = <a class="code" href="classSVF_1_1FlowSensitive.html#a82b76087363b26fbe749653935569de7">storeTime</a> = <a class="code" href="classSVF_1_1FlowSensitive.html#aee7d59b7ad00cf1cf6e3fba19513aa42">phiTime</a> = 0;</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <a class="code" href="classSVF_1_1FlowSensitive.html#afc140b6c8e78dc2d962f64fdf53b1e07">updateCallGraphTime</a> = <a class="code" href="classSVF_1_1FlowSensitive.html#ae086de68233375be42185f0af706687a">directPropaTime</a> = <a class="code" href="classSVF_1_1FlowSensitive.html#a2feaa4b7a72989b311e9084a81320254">indirectPropaTime</a> = 0;</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <a class="code" href="classSVF_1_1FlowSensitive.html#ae4253bc632ffffe2498263c90f456ca7">numOfProcessedAddr</a> = <a class="code" href="classSVF_1_1FlowSensitive.html#a19e017f3ed6429fa30687018e64dae54">numOfProcessedCopy</a> = <a class="code" href="classSVF_1_1FlowSensitive.html#a88a111b6bc347d6562db7af8bd8f2f0e">numOfProcessedGep</a> = 0;</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <a class="code" href="classSVF_1_1FlowSensitive.html#a0e1a0bdbf4f81a3600ac26ac011ac268">numOfProcessedLoad</a> = <a class="code" href="classSVF_1_1FlowSensitive.html#a669e8f1dd8572b7dcff373c9787a923d">numOfProcessedStore</a> = 0;</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <a class="code" href="classSVF_1_1FlowSensitive.html#ac39abcb40e4b568ab59b7cf48ed10f70">numOfProcessedPhi</a> = <a class="code" href="classSVF_1_1FlowSensitive.html#abdc30e45347579986c42795a436a1251">numOfProcessedActualParam</a> = <a class="code" href="classSVF_1_1FlowSensitive.html#ae048cc5350cf2b075c05f5d84777a3c5">numOfProcessedFormalRet</a> = 0;</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <a class="code" href="classSVF_1_1FlowSensitive.html#af71a5ae3aef022c569e89f40515072cf">numOfProcessedMSSANode</a> = 0;</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <a class="code" href="classSVF_1_1FlowSensitive.html#aa3d4703756a6297ab5c0756172024fe4">maxSCCSize</a> = <a class="code" href="classSVF_1_1FlowSensitive.html#a0ac955bf06261eec1c6bb78ec99652e3">numOfSCC</a> = <a class="code" href="classSVF_1_1FlowSensitive.html#a9f3fe97202db8170fa9f47c5684bce75">numOfNodesInSCC</a> = 0;</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <a class="code" href="classSVF_1_1WPASolver.html#aa7c0636780a86f376e9222bce771e859">iterationForPrintStat</a> = <a class="code" href="classSVF_1_1PointerAnalysis.html#afc320fbf269404fe128e69c98e6f9cac">OnTheFlyIterBudgetForStat</a>;</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"> 74</span>&#160;</div><div class="line"><a name="l00076"></a><span class="lineno"><a class="line" href="classSVF_1_1FlowSensitive.html#a7bb33faaa7081ef3346de3f30ab3a8da"> 76</a></span>&#160; <span class="keyword">virtual</span> <a class="code" href="classSVF_1_1FlowSensitive.html#a7bb33faaa7081ef3346de3f30ab3a8da">~FlowSensitive</a>()</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; {</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1FlowSensitive.html#aae032e5f5d53b131d0112dc8faa464a9">svfg</a> != <span class="keyword">nullptr</span>)</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <span class="keyword">delete</span> <a class="code" href="classSVF_1_1FlowSensitive.html#aae032e5f5d53b131d0112dc8faa464a9">svfg</a>;</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; <a class="code" href="classSVF_1_1FlowSensitive.html#aae032e5f5d53b131d0112dc8faa464a9">svfg</a> = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; }</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;</div><div class="line"><a name="l00084"></a><span class="lineno"><a class="line" href="classSVF_1_1FlowSensitive.html#af21aa66bc41607d8c93faf1acea1f3be"> 84</a></span>&#160; <span class="keyword">static</span> <a class="code" href="classSVF_1_1FlowSensitive.html">FlowSensitive</a>* <a class="code" href="classSVF_1_1FlowSensitive.html#af21aa66bc41607d8c93faf1acea1f3be">createFSWPA</a>(<a class="code" href="classSVF_1_1SVFIR.html">SVFIR</a>* _pag)</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; {</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1FlowSensitive.html#a4ad2095dc708df07602de25e4a004776">fspta</a> == <span class="keyword">nullptr</span>)</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; <a class="code" href="classSVF_1_1FlowSensitive.html#a4ad2095dc708df07602de25e4a004776">fspta</a> = <span class="keyword">new</span> <a class="code" href="classSVF_1_1FlowSensitive.html#aac88b67b49cbd72912ff586d30197ffb">FlowSensitive</a>(_pag);</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; <a class="code" href="classSVF_1_1FlowSensitive.html#a4ad2095dc708df07602de25e4a004776">fspta</a>-&gt;<a class="code" href="classSVF_1_1FlowSensitive.html#a267f7198600dde3054feb40def7a6681">analyze</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; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1FlowSensitive.html#a4ad2095dc708df07602de25e4a004776">fspta</a>;</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; }</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;</div><div class="line"><a name="l00095"></a><span class="lineno"><a class="line" href="classSVF_1_1FlowSensitive.html#ae6aed22a79ac6567446dfcba82cb17b8"> 95</a></span>&#160; <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1FlowSensitive.html#ae6aed22a79ac6567446dfcba82cb17b8">releaseFSWPA</a>()</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; {</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1FlowSensitive.html#a4ad2095dc708df07602de25e4a004776">fspta</a>)</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <span class="keyword">delete</span> <a class="code" href="classSVF_1_1FlowSensitive.html#a4ad2095dc708df07602de25e4a004776">fspta</a>;</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; <a class="code" href="classSVF_1_1FlowSensitive.html#a4ad2095dc708df07602de25e4a004776">fspta</a> = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; }</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;</div><div class="line"><a name="l00103"></a><span class="lineno"><a class="line" href="classSVF_1_1FlowSensitive.html#a611608ccc9659bd320670f1ec31ad18e"> 103</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1FlowSensitive.html#a611608ccc9659bd320670f1ec31ad18e">runOnModule</a>(<a class="code" href="classSVF_1_1SVFModule.html">SVFModule</a>*)</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; {</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; }</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1FlowSensitive.html#a267f7198600dde3054feb40def7a6681">analyze</a>();</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_1FlowSensitive.html#ad6243c1317503bed39411dab47c83da7">initialize</a>();</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1FlowSensitive.html#afed358369102f01f6fe88b1433e704c3">finalize</a>();</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;</div><div class="line"><a name="l00118"></a><span class="lineno"><a class="line" href="classSVF_1_1FlowSensitive.html#a4f1a0d533381660055210be1e2d7d72a"> 118</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_1FlowSensitive.html#a4f1a0d533381660055210be1e2d7d72a">PTAName</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; <span class="keywordflow">return</span> <span class="stringliteral">&quot;FlowSensitive&quot;</span>;</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; }</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;</div><div class="line"><a name="l00125"></a><span class="lineno"><a class="line" href="classSVF_1_1FlowSensitive.html#ac76934c9ba15742e470a785af54bd958"> 125</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1FlowSensitive.html#ac76934c9ba15742e470a785af54bd958">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1FlowSensitive.html">FlowSensitive</a> *)</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; {</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; }</div><div class="line"><a name="l00129"></a><span class="lineno"><a class="line" href="classSVF_1_1FlowSensitive.html#a12dea7b6057daddcc5c0d975aebf3f11"> 129</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1FlowSensitive.html#a12dea7b6057daddcc5c0d975aebf3f11">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1PointerAnalysis.html">PointerAnalysis</a> *pta)</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; {</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; <span class="keywordflow">return</span> pta-&gt;<a class="code" href="classSVF_1_1PointerAnalysis.html#ac23f71c1307cda9cba44acc40059f0a3">getAnalysisTy</a>() == <a class="code" href="classSVF_1_1PointerAnalysis.html#a0b182ac680cce0547dbe7714c870ca85ad6ccf1ce66083278349c5c3111172d78">FSSPARSE_WPA</a>;</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; }</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;</div><div class="line"><a name="l00136"></a><span class="lineno"><a class="line" href="classSVF_1_1FlowSensitive.html#a74f35ec76e2c7cf39355e0c148d973be"> 136</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="classSVF_1_1SVFG.html">SVFG</a>* <a class="code" href="classSVF_1_1FlowSensitive.html#a74f35ec76e2c7cf39355e0c148d973be">getSVFG</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1FlowSensitive.html#aae032e5f5d53b131d0112dc8faa464a9">svfg</a>;</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; }</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;<span class="keyword">protected</span>:</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; <span class="keyword">virtual</span> <a class="code" href="namespaceSVF.html#a1811127aebdb9c926e39d155e20b3dc0">NodeStack</a>&amp; <a class="code" href="classSVF_1_1FlowSensitive.html#a5f8a1493f7550a3f7a295e25d87bce12">SCCDetect</a>();</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160;</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160;</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1FlowSensitive.html#af849ab5a07049cb08e6b0d8023577862">propFromSrcToDst</a>(<a class="code" href="classSVF_1_1VFGEdge.html">SVFGEdge</a>* edge);</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1FlowSensitive.html#ad3518931d3b8a0671cbeb975f853b956">propAlongDirectEdge</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1DirectSVFGEdge.html">DirectSVFGEdge</a>* edge);</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_1FlowSensitive.html#aeb1e002519123a67f8d18f78cda04bac">propAlongIndirectEdge</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1IndirectSVFGEdge.html">IndirectSVFGEdge</a>* edge);</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1FlowSensitive.html#ae571767cc5936cf631a44976d8277e91">propVarPtsFromSrcToDst</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> var, <span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGNode.html">SVFGNode</a>* src, <span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGNode.html">SVFGNode</a>* dst);</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1FlowSensitive.html#a3574977acd161925cadcb05de6d3247d">propagateFromAPToFP</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1ActualParmVFGNode.html">ActualParmSVFGNode</a>* ap, <span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGNode.html">SVFGNode</a>* dst);</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1FlowSensitive.html#a3abffe1434386b1ce349fbed0cfe0967">propagateFromFRToAR</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1FormalRetVFGNode.html">FormalRetSVFGNode</a>* fr, <span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGNode.html">SVFGNode</a>* dst);</div><div class="line"><a name="l00162"></a><span class="lineno"><a class="line" href="classSVF_1_1FlowSensitive.html#ab492c283e2264b4cbd4c192e805b7750"> 162</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1FlowSensitive.html#ab492c283e2264b4cbd4c192e805b7750">weakUpdateOutFromIn</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGNode.html">SVFGNode</a>* node)</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; {</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1BVDataPTAImpl.html#a642613e98982259183d3f34a97f05502">getDFPTDataTy</a>()-&gt;<a class="code" href="classSVF_1_1DFPTData.html#a7e4ae809b40d55448de0103746254158">updateAllDFOutFromIn</a>(node-&gt;<a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>(),0,<span class="keyword">false</span>);</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"><a class="line" href="classSVF_1_1FlowSensitive.html#a8ebe4342c1496b906ee1b6450558c3e8"> 167</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1FlowSensitive.html#a8ebe4342c1496b906ee1b6450558c3e8">strongUpdateOutFromIn</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGNode.html">SVFGNode</a>* node, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> singleton)</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; {</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1BVDataPTAImpl.html#a642613e98982259183d3f34a97f05502">getDFPTDataTy</a>()-&gt;<a class="code" href="classSVF_1_1DFPTData.html#a7e4ae809b40d55448de0103746254158">updateAllDFOutFromIn</a>(node-&gt;<a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>(),singleton,<span class="keyword">true</span>);</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; }</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160;</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160;</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1FlowSensitive.html#a9e7fbc4c1d056fbef07498de8cbb1cd9">propVarPtsAfterCGUpdated</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> var, <span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGNode.html">SVFGNode</a>* src, <span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGNode.html">SVFGNode</a>* dst);</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160;</div><div class="line"><a name="l00178"></a><span class="lineno"><a class="line" href="classSVF_1_1FlowSensitive.html#a5e97c3fe32f60b0e8e96323ceb9a10cf"> 178</a></span>&#160; <span class="keyword">virtual</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1FlowSensitive.html#a5e97c3fe32f60b0e8e96323ceb9a10cf">propDFOutToIn</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGNode.html">SVFGNode</a>* srcStmt, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> srcVar, <span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGNode.html">SVFGNode</a>* dstStmt, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> dstVar)</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; {</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1BVDataPTAImpl.html#a642613e98982259183d3f34a97f05502">getDFPTDataTy</a>()-&gt;<a class="code" href="classSVF_1_1DFPTData.html#a96a5d7e867095b3c215c73599fd31c19">updateAllDFInFromOut</a>(srcStmt-&gt;<a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>(), srcVar, dstStmt-&gt;<a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>(),dstVar);</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; }</div><div class="line"><a name="l00182"></a><span class="lineno"><a class="line" href="classSVF_1_1FlowSensitive.html#a3be364754863bbbee6dfd0b5490dec47"> 182</a></span>&#160; <span class="keyword">virtual</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1FlowSensitive.html#a3be364754863bbbee6dfd0b5490dec47">propDFInToIn</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGNode.html">SVFGNode</a>* srcStmt, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> srcVar, <span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGNode.html">SVFGNode</a>* dstStmt, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> dstVar)</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; {</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1BVDataPTAImpl.html#a642613e98982259183d3f34a97f05502">getDFPTDataTy</a>()-&gt;<a class="code" href="classSVF_1_1DFPTData.html#a506a2be8f909663d59245254bddea00b">updateAllDFInFromIn</a>(srcStmt-&gt;<a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>(), srcVar, dstStmt-&gt;<a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>(),dstVar);</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; }</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160;</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160;</div><div class="line"><a name="l00190"></a><span class="lineno"><a class="line" href="classSVF_1_1FlowSensitive.html#a06fe840604fdb4b50f08617c48acd44f"> 190</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1FlowSensitive.html#a06fe840604fdb4b50f08617c48acd44f">updateOutFromIn</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGNode.html">SVFGNode</a>* srcStmt, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> srcVar, <span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGNode.html">SVFGNode</a>* dstStmt, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> dstVar)</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; {</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1BVDataPTAImpl.html#a642613e98982259183d3f34a97f05502">getDFPTDataTy</a>()-&gt;<a class="code" href="classSVF_1_1DFPTData.html#acee5fb134d3153ae6eb91c15cd2cff66">updateDFOutFromIn</a>(srcStmt-&gt;<a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>(),srcVar, dstStmt-&gt;<a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>(),dstVar);</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; }</div><div class="line"><a name="l00194"></a><span class="lineno"><a class="line" href="classSVF_1_1FlowSensitive.html#a88120b9cec26620d4982798ea530353a"> 194</a></span>&#160; <span class="keyword">virtual</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1FlowSensitive.html#a88120b9cec26620d4982798ea530353a">updateInFromIn</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGNode.html">SVFGNode</a>* srcStmt, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> srcVar, <span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGNode.html">SVFGNode</a>* dstStmt, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> dstVar)</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; {</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1BVDataPTAImpl.html#a642613e98982259183d3f34a97f05502">getDFPTDataTy</a>()-&gt;<a class="code" href="classSVF_1_1DFPTData.html#a88cf9cd48ee5c1b8b3c71b379f23ab6b">updateDFInFromIn</a>(srcStmt-&gt;<a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>(),srcVar, dstStmt-&gt;<a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>(),dstVar);</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; }</div><div class="line"><a name="l00198"></a><span class="lineno"><a class="line" href="classSVF_1_1FlowSensitive.html#af5d90b4bd5c16dd64cd10afea6b3be93"> 198</a></span>&#160; <span class="keyword">virtual</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1FlowSensitive.html#af5d90b4bd5c16dd64cd10afea6b3be93">updateInFromOut</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGNode.html">SVFGNode</a>* srcStmt, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> srcVar, <span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGNode.html">SVFGNode</a>* dstStmt, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> dstVar)</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; {</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1BVDataPTAImpl.html#a642613e98982259183d3f34a97f05502">getDFPTDataTy</a>()-&gt;<a class="code" href="classSVF_1_1DFPTData.html#a2ec4fb73d87f10c86fac34b3500532b3">updateDFInFromOut</a>(srcStmt-&gt;<a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>(),srcVar, dstStmt-&gt;<a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>(),dstVar);</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; }</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160;</div><div class="line"><a name="l00203"></a><span class="lineno"><a class="line" href="classSVF_1_1FlowSensitive.html#a16d757abf69ad77951b808dc18ca2999"> 203</a></span>&#160; <span class="keyword">virtual</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1FlowSensitive.html#a16d757abf69ad77951b808dc18ca2999">unionPtsFromIn</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGNode.html">SVFGNode</a>* stmt, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> srcVar, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> dstVar)</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; {</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1BVDataPTAImpl.html#a642613e98982259183d3f34a97f05502">getDFPTDataTy</a>()-&gt;<a class="code" href="classSVF_1_1DFPTData.html#aaa6f67ff5daf7d71a3ad62316a7dd872">updateTLVPts</a>(stmt-&gt;<a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>(),srcVar,dstVar);</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; }</div><div class="line"><a name="l00207"></a><span class="lineno"><a class="line" href="classSVF_1_1FlowSensitive.html#a49104435f8d20015907a1c8f58a76577"> 207</a></span>&#160; <span class="keyword">virtual</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1FlowSensitive.html#a49104435f8d20015907a1c8f58a76577">unionPtsFromTop</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGNode.html">SVFGNode</a>* stmt, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> srcVar, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> dstVar)</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; {</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1BVDataPTAImpl.html#a642613e98982259183d3f34a97f05502">getDFPTDataTy</a>()-&gt;<a class="code" href="classSVF_1_1DFPTData.html#a09bc4b7eef592af2c2c84b60029b5b52">updateATVPts</a>(srcVar,stmt-&gt;<a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>(),dstVar);</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; }</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160;</div><div class="line"><a name="l00212"></a><span class="lineno"><a class="line" href="classSVF_1_1FlowSensitive.html#a9622f0b7b16694b0c74b07834f598e67"> 212</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1FlowSensitive.html#a9622f0b7b16694b0c74b07834f598e67">clearAllDFOutVarFlag</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGNode.html">SVFGNode</a>* stmt)</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; {</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; <a class="code" href="classSVF_1_1BVDataPTAImpl.html#a642613e98982259183d3f34a97f05502">getDFPTDataTy</a>()-&gt;<a class="code" href="classSVF_1_1DFPTData.html#ac20579e277a284158e2924fb5946cd86">clearAllDFOutUpdatedVar</a>(stmt-&gt;<a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>());</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; }</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160;</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160;</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1FlowSensitive.html#a16f594356ea565eb1fed2acea516a16b">processNode</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> nodeId);</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1FlowSensitive.html#a979f89495966d71f9b470d832384ebd6">processSVFGNode</a>(<a class="code" href="classSVF_1_1VFGNode.html">SVFGNode</a>* node);</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1FlowSensitive.html#abb37c5e4e6fa4742e8dbcf397aea086e">processAddr</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1AddrVFGNode.html">AddrSVFGNode</a>* addr);</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1FlowSensitive.html#aa401cc90de4e1c6842f08a43a28c5aa1">processCopy</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CopyVFGNode.html">CopySVFGNode</a>* <a class="code" href="cJSON_8cpp.html#a7669ee67a0563250c1efaa24d130e1ac">copy</a>);</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1FlowSensitive.html#aa36fd1387e948e83107431179d819067">processPhi</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1PHIVFGNode.html">PHISVFGNode</a>* phi);</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1FlowSensitive.html#ae017c39ac471727d06868e0eacafd791">processGep</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1GepVFGNode.html">GepSVFGNode</a>* edge);</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1FlowSensitive.html#a9968530b3dee876f55e6659530decf27">processLoad</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1LoadVFGNode.html">LoadSVFGNode</a>* load);</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1FlowSensitive.html#aa37d591d2d4f65957e840bef4d142a6a">processStore</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1StoreVFGNode.html">StoreSVFGNode</a>* store);</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160;</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160;</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1FlowSensitive.html#a9d81537ec20196315a9a2541477ec5bf">updateCallGraph</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1PointerAnalysis.html#ad95c842964e6ca46e51fb763fefec585">CallSiteToFunPtrMap</a>&amp; callsites);</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1FlowSensitive.html#ad7640ada31b5cb542e492e27ab4fe1af">connectCallerAndCallee</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1PointerAnalysis.html#a35bd5f0fb2c146199e9f1aa6a19b4062">CallEdgeMap</a>&amp; newEdges, SVFGEdgeSetTy&amp; edges);</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1FlowSensitive.html#a1886b4964efa92cfff761493d12768b8">updateConnectedNodes</a>(<span class="keyword">const</span> SVFGEdgeSetTy&amp; edges);</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160;</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1FlowSensitive.html#a42a7e39e0e15576742f8ba7c32579ea2">isStrongUpdate</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGNode.html">SVFGNode</a>* node, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a>&amp; singleton);</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160;</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1FlowSensitive.html#a94dc671f524ed3ed00f5a54b13f18e18">countAliases</a>(<a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set</a>&lt;std::pair&lt;NodeID, NodeID&gt;&gt; cmp, <span class="keywordtype">unsigned</span> *mayAliases, <span class="keywordtype">unsigned</span> *noAliases);</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160;</div><div class="line"><a name="l00246"></a><span class="lineno"><a class="line" href="classSVF_1_1FlowSensitive.html#aae032e5f5d53b131d0112dc8faa464a9"> 246</a></span>&#160; <a class="code" href="classSVF_1_1SVFG.html">SVFG</a>* <a class="code" href="classSVF_1_1FlowSensitive.html#aae032e5f5d53b131d0112dc8faa464a9">svfg</a>;</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160;</div><div class="line"><a name="l00249"></a><span class="lineno"><a class="line" href="classSVF_1_1FlowSensitive.html#a9379acbe349ee652416765b335dfdeab"> 249</a></span>&#160; <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="classSVF_1_1PointsTo.html">PointsTo</a>&amp; <a class="code" href="classSVF_1_1FlowSensitive.html#a9379acbe349ee652416765b335dfdeab">getDFInPtsSet</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGNode.html">SVFGNode</a>* stmt, <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> node)</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; {</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1BVDataPTAImpl.html#a642613e98982259183d3f34a97f05502">getDFPTDataTy</a>()-&gt;<a class="code" href="classSVF_1_1DFPTData.html#a259a92ea46f1d3a1dbd4a74ff07718d2">getDFInPtsSet</a>(stmt-&gt;<a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>(),node);</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"><a class="line" href="classSVF_1_1FlowSensitive.html#a808dc8a242f168174339d7ca3196bb58"> 253</a></span>&#160; <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="classSVF_1_1PointsTo.html">PointsTo</a>&amp; <a class="code" href="classSVF_1_1FlowSensitive.html#a808dc8a242f168174339d7ca3196bb58">getDFOutPtsSet</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGNode.html">SVFGNode</a>* stmt, <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> node)</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; {</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1BVDataPTAImpl.html#a642613e98982259183d3f34a97f05502">getDFPTDataTy</a>()-&gt;<a class="code" href="classSVF_1_1DFPTData.html#ad9b3bb99cfefb87424c408eae3ecfcec">getDFOutPtsSet</a>(stmt-&gt;<a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>(),node);</div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; }</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160;</div><div class="line"><a name="l00262"></a><span class="lineno"><a class="line" href="classSVF_1_1FlowSensitive.html#a9717517387c14c2e64c7ae3c3149bb57"> 262</a></span>&#160; <span class="keyword">inline</span> <span class="keyword">const</span> DFInOutMap&amp; <a class="code" href="classSVF_1_1FlowSensitive.html#a9717517387c14c2e64c7ae3c3149bb57">getDFInputMap</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1BVDataPTAImpl.html#acbb979edee9427efa2a7c0dbd881c483">getMutDFPTDataTy</a>()-&gt;<a class="code" href="classSVF_1_1MutableDFPTData.html#ae999df6f94a097f1fcb36979327790de">getDFIn</a>();</div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; }</div><div class="line"><a name="l00266"></a><span class="lineno"><a class="line" href="classSVF_1_1FlowSensitive.html#a661c4c1d5902c924060cc81219591d6f"> 266</a></span>&#160; <span class="keyword">inline</span> <span class="keyword">const</span> DFInOutMap&amp; <a class="code" href="classSVF_1_1FlowSensitive.html#a661c4c1d5902c924060cc81219591d6f">getDFOutputMap</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1BVDataPTAImpl.html#acbb979edee9427efa2a7c0dbd881c483">getMutDFPTDataTy</a>()-&gt;<a class="code" href="classSVF_1_1MutableDFPTData.html#a6d02392602cf7956ff41e345518d683c">getDFOut</a>();</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160; }</div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160;</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1FlowSensitive.html#a89d3b97b8077027514135c9201c4d02c">cluster</a>(<span class="keywordtype">void</span>);</div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1FlowSensitive.html#a5a8688102f3675cf414b01dc2ae51c6b">plainMap</a>(<span class="keywordtype">void</span>) <span class="keyword">const</span>;</div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160;</div><div class="line"><a name="l00278"></a><span class="lineno"><a class="line" href="classSVF_1_1FlowSensitive.html#a4ad2095dc708df07602de25e4a004776"> 278</a></span>&#160; <span class="keyword">static</span> <a class="code" href="classSVF_1_1FlowSensitive.html">FlowSensitive</a>* <a class="code" href="classSVF_1_1FlowSensitive.html#a4ad2095dc708df07602de25e4a004776">fspta</a>;</div><div class="line"><a name="l00279"></a><span class="lineno"><a class="line" href="classSVF_1_1FlowSensitive.html#a76f6f19ac2b58ab4a10a2d7e6e24e42a"> 279</a></span>&#160; <a class="code" href="classSVF_1_1SVFGBuilder.html">SVFGBuilder</a> <a class="code" href="classSVF_1_1FlowSensitive.html#a76f6f19ac2b58ab4a10a2d7e6e24e42a">memSSA</a>;</div><div class="line"><a name="l00280"></a><span class="lineno"><a class="line" href="classSVF_1_1FlowSensitive.html#a5cfee013a1a5821ef0c449842dd8690d"> 280</a></span>&#160; <a class="code" href="classSVF_1_1AndersenWaveDiff.html">AndersenWaveDiff</a> *<a class="code" href="classSVF_1_1FlowSensitive.html#a5cfee013a1a5821ef0c449842dd8690d">ander</a>;</div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160;</div><div class="line"><a name="l00283"></a><span class="lineno"><a class="line" href="classSVF_1_1FlowSensitive.html#adba7ffe68ae7edce9b3aa896f978da6b"> 283</a></span>&#160; std::vector&lt;std::pair&lt;hclust_fast_methods, std::vector&lt;NodeID&gt;&gt;&gt; <a class="code" href="classSVF_1_1FlowSensitive.html#adba7ffe68ae7edce9b3aa896f978da6b">candidateMappings</a>;</div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160;</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"><a class="line" href="classSVF_1_1FlowSensitive.html#ae4253bc632ffffe2498263c90f456ca7"> 287</a></span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1FlowSensitive.html#ae4253bc632ffffe2498263c90f456ca7">numOfProcessedAddr</a>; </div><div class="line"><a name="l00288"></a><span class="lineno"><a class="line" href="classSVF_1_1FlowSensitive.html#a19e017f3ed6429fa30687018e64dae54"> 288</a></span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1FlowSensitive.html#a19e017f3ed6429fa30687018e64dae54">numOfProcessedCopy</a>; </div><div class="line"><a name="l00289"></a><span class="lineno"><a class="line" href="classSVF_1_1FlowSensitive.html#a88a111b6bc347d6562db7af8bd8f2f0e"> 289</a></span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1FlowSensitive.html#a88a111b6bc347d6562db7af8bd8f2f0e">numOfProcessedGep</a>; </div><div class="line"><a name="l00290"></a><span class="lineno"><a class="line" href="classSVF_1_1FlowSensitive.html#ac39abcb40e4b568ab59b7cf48ed10f70"> 290</a></span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1FlowSensitive.html#ac39abcb40e4b568ab59b7cf48ed10f70">numOfProcessedPhi</a>; </div><div class="line"><a name="l00291"></a><span class="lineno"><a class="line" href="classSVF_1_1FlowSensitive.html#a0e1a0bdbf4f81a3600ac26ac011ac268"> 291</a></span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1FlowSensitive.html#a0e1a0bdbf4f81a3600ac26ac011ac268">numOfProcessedLoad</a>; </div><div class="line"><a name="l00292"></a><span class="lineno"><a class="line" href="classSVF_1_1FlowSensitive.html#a669e8f1dd8572b7dcff373c9787a923d"> 292</a></span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1FlowSensitive.html#a669e8f1dd8572b7dcff373c9787a923d">numOfProcessedStore</a>; </div><div class="line"><a name="l00293"></a><span class="lineno"><a class="line" href="classSVF_1_1FlowSensitive.html#abdc30e45347579986c42795a436a1251"> 293</a></span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1FlowSensitive.html#abdc30e45347579986c42795a436a1251">numOfProcessedActualParam</a>; </div><div class="line"><a name="l00294"></a><span class="lineno"><a class="line" href="classSVF_1_1FlowSensitive.html#ae048cc5350cf2b075c05f5d84777a3c5"> 294</a></span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1FlowSensitive.html#ae048cc5350cf2b075c05f5d84777a3c5">numOfProcessedFormalRet</a>; </div><div class="line"><a name="l00295"></a><span class="lineno"><a class="line" href="classSVF_1_1FlowSensitive.html#af71a5ae3aef022c569e89f40515072cf"> 295</a></span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1FlowSensitive.html#af71a5ae3aef022c569e89f40515072cf">numOfProcessedMSSANode</a>; </div><div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160;</div><div class="line"><a name="l00297"></a><span class="lineno"><a class="line" href="classSVF_1_1FlowSensitive.html#aa3d4703756a6297ab5c0756172024fe4"> 297</a></span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1FlowSensitive.html#aa3d4703756a6297ab5c0756172024fe4">maxSCCSize</a>;</div><div class="line"><a name="l00298"></a><span class="lineno"><a class="line" href="classSVF_1_1FlowSensitive.html#a0ac955bf06261eec1c6bb78ec99652e3"> 298</a></span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1FlowSensitive.html#a0ac955bf06261eec1c6bb78ec99652e3">numOfSCC</a>;</div><div class="line"><a name="l00299"></a><span class="lineno"><a class="line" href="classSVF_1_1FlowSensitive.html#a9f3fe97202db8170fa9f47c5684bce75"> 299</a></span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1FlowSensitive.html#a9f3fe97202db8170fa9f47c5684bce75">numOfNodesInSCC</a>;</div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160;</div><div class="line"><a name="l00301"></a><span class="lineno"><a class="line" href="classSVF_1_1FlowSensitive.html#a4202f837e863a48712765cc346d8b514"> 301</a></span>&#160; <span class="keywordtype">double</span> <a class="code" href="classSVF_1_1FlowSensitive.html#a4202f837e863a48712765cc346d8b514">solveTime</a>; </div><div class="line"><a name="l00302"></a><span class="lineno"><a class="line" href="classSVF_1_1FlowSensitive.html#af496fa9aa2f4d59594950b2ad121deff"> 302</a></span>&#160; <span class="keywordtype">double</span> <a class="code" href="classSVF_1_1FlowSensitive.html#af496fa9aa2f4d59594950b2ad121deff">sccTime</a>; </div><div class="line"><a name="l00303"></a><span class="lineno"><a class="line" href="classSVF_1_1FlowSensitive.html#ae2e58d18abcdddc7a5a87f4edc5f3b72"> 303</a></span>&#160; <span class="keywordtype">double</span> <a class="code" href="classSVF_1_1FlowSensitive.html#ae2e58d18abcdddc7a5a87f4edc5f3b72">processTime</a>; </div><div class="line"><a name="l00304"></a><span class="lineno"><a class="line" href="classSVF_1_1FlowSensitive.html#ac4d4b42bb96006801597f81ed3c4b337"> 304</a></span>&#160; <span class="keywordtype">double</span> <a class="code" href="classSVF_1_1FlowSensitive.html#ac4d4b42bb96006801597f81ed3c4b337">propagationTime</a>; </div><div class="line"><a name="l00305"></a><span class="lineno"><a class="line" href="classSVF_1_1FlowSensitive.html#ae086de68233375be42185f0af706687a"> 305</a></span>&#160; <span class="keywordtype">double</span> <a class="code" href="classSVF_1_1FlowSensitive.html#ae086de68233375be42185f0af706687a">directPropaTime</a>; </div><div class="line"><a name="l00306"></a><span class="lineno"><a class="line" href="classSVF_1_1FlowSensitive.html#a2feaa4b7a72989b311e9084a81320254"> 306</a></span>&#160; <span class="keywordtype">double</span> <a class="code" href="classSVF_1_1FlowSensitive.html#a2feaa4b7a72989b311e9084a81320254">indirectPropaTime</a>; </div><div class="line"><a name="l00307"></a><span class="lineno"><a class="line" href="classSVF_1_1FlowSensitive.html#af5a94d14096ae2bbc47b3b3b9f723226"> 307</a></span>&#160; <span class="keywordtype">double</span> <a class="code" href="classSVF_1_1FlowSensitive.html#af5a94d14096ae2bbc47b3b3b9f723226">updateTime</a>; </div><div class="line"><a name="l00308"></a><span class="lineno"><a class="line" href="classSVF_1_1FlowSensitive.html#a38f3ed35185addf701d4401bfdd5f29b"> 308</a></span>&#160; <span class="keywordtype">double</span> <a class="code" href="classSVF_1_1FlowSensitive.html#a38f3ed35185addf701d4401bfdd5f29b">addrTime</a>; </div><div class="line"><a name="l00309"></a><span class="lineno"><a class="line" href="classSVF_1_1FlowSensitive.html#a888d6334e5e226c634680e4c0674dcfb"> 309</a></span>&#160; <span class="keywordtype">double</span> <a class="code" href="classSVF_1_1FlowSensitive.html#a888d6334e5e226c634680e4c0674dcfb">copyTime</a>; </div><div class="line"><a name="l00310"></a><span class="lineno"><a class="line" href="classSVF_1_1FlowSensitive.html#a282126e5b67ed4e19aa40c81180b8290"> 310</a></span>&#160; <span class="keywordtype">double</span> <a class="code" href="classSVF_1_1FlowSensitive.html#a282126e5b67ed4e19aa40c81180b8290">gepTime</a>; </div><div class="line"><a name="l00311"></a><span class="lineno"><a class="line" href="classSVF_1_1FlowSensitive.html#aab4f70210eb1e6447a24697d3b459067"> 311</a></span>&#160; <span class="keywordtype">double</span> <a class="code" href="classSVF_1_1FlowSensitive.html#aab4f70210eb1e6447a24697d3b459067">loadTime</a>; </div><div class="line"><a name="l00312"></a><span class="lineno"><a class="line" href="classSVF_1_1FlowSensitive.html#a82b76087363b26fbe749653935569de7"> 312</a></span>&#160; <span class="keywordtype">double</span> <a class="code" href="classSVF_1_1FlowSensitive.html#a82b76087363b26fbe749653935569de7">storeTime</a>; </div><div class="line"><a name="l00313"></a><span class="lineno"><a class="line" href="classSVF_1_1FlowSensitive.html#aee7d59b7ad00cf1cf6e3fba19513aa42"> 313</a></span>&#160; <span class="keywordtype">double</span> <a class="code" href="classSVF_1_1FlowSensitive.html#aee7d59b7ad00cf1cf6e3fba19513aa42">phiTime</a>; </div><div class="line"><a name="l00314"></a><span class="lineno"><a class="line" href="classSVF_1_1FlowSensitive.html#afc140b6c8e78dc2d962f64fdf53b1e07"> 314</a></span>&#160; <span class="keywordtype">double</span> <a class="code" href="classSVF_1_1FlowSensitive.html#afc140b6c8e78dc2d962f64fdf53b1e07">updateCallGraphTime</a>; </div><div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160;</div><div class="line"><a name="l00316"></a><span class="lineno"><a class="line" href="classSVF_1_1FlowSensitive.html#a43e8ca2e69e6e8643c9abd1fa231d305"> 316</a></span>&#160; <a class="code" href="classSVF_1_1SparseBitVector.html">NodeBS</a> <a class="code" href="classSVF_1_1FlowSensitive.html#a43e8ca2e69e6e8643c9abd1fa231d305">svfgHasSU</a>;</div><div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160;</div><div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1FlowSensitive.html#a5f015d8f2b0956306822172d02b415c3">svfgStat</a>();</div><div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160;};</div><div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160;</div><div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160;} <span class="comment">// End namespace SVF</span></div><div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160;</div><div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* FLOWSENSITIVEANALYSIS_H_ */</span><span class="preprocessor"></span></div><div class="ttc" id="classSVF_1_1FlowSensitive_html_ae2e58d18abcdddc7a5a87f4edc5f3b72"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#ae2e58d18abcdddc7a5a87f4edc5f3b72">SVF::FlowSensitive::processTime</a></div><div class="ttdeci">double processTime</div><div class="ttdoc">time of processNode. </div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8h_source.html#l00303">FlowSensitive.h:303</a></div></div>
70
70
  <div class="ttc" id="classSVF_1_1BVDataPTAImpl_html"><div class="ttname"><a href="classSVF_1_1BVDataPTAImpl.html">SVF::BVDataPTAImpl</a></div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#l00042">PointerAnalysisImpl.h:42</a></div></div>
71
71
  <div class="ttc" id="classSVF_1_1StoreVFGNode_html"><div class="ttname"><a href="classSVF_1_1StoreVFGNode.html">SVF::StoreVFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="VFGNode_8h_source.html#l00240">VFGNode.h:240</a></div></div>
72
72
  <div class="ttc" id="classSVF_1_1FlowSensitive_html_af9a2bd5b490f1cc5335ce696173c78dd"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#af9a2bd5b490f1cc5335ce696173c78dd">SVF::FlowSensitive::DFInOutMap</a></div><div class="ttdeci">BVDataPTAImpl::MutDFPTDataTy::DFPtsMap DFInOutMap</div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8h_source.html#l00057">FlowSensitive.h:57</a></div></div>
@@ -89,7 +89,7 @@ $(function() {
89
89
  <div class="ttc" id="classSVF_1_1FlowSensitive_html_ae4253bc632ffffe2498263c90f456ca7"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#ae4253bc632ffffe2498263c90f456ca7">SVF::FlowSensitive::numOfProcessedAddr</a></div><div class="ttdeci">u32_t numOfProcessedAddr</div><div class="ttdoc">Statistics. </div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8h_source.html#l00287">FlowSensitive.h:287</a></div></div>
90
90
  <div class="ttc" id="classSVF_1_1FlowSensitive_html_a38f3ed35185addf701d4401bfdd5f29b"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#a38f3ed35185addf701d4401bfdd5f29b">SVF::FlowSensitive::addrTime</a></div><div class="ttdeci">double addrTime</div><div class="ttdoc">time of handling address edges </div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8h_source.html#l00308">FlowSensitive.h:308</a></div></div>
91
91
  <div class="ttc" id="classSVF_1_1FlowSensitive_html_a1886b4964efa92cfff761493d12768b8"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#a1886b4964efa92cfff761493d12768b8">SVF::FlowSensitive::updateConnectedNodes</a></div><div class="ttdeci">virtual void updateConnectedNodes(const SVFGEdgeSetTy &amp;edges)</div><div class="ttdoc">Update nodes connected during updating call graph. </div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8cpp_source.html#l00712">FlowSensitive.cpp:712</a></div></div>
92
- <div class="ttc" id="namespaceSVF_html_a1811127aebdb9c926e39d155e20b3dc0"><div class="ttname"><a href="namespaceSVF.html#a1811127aebdb9c926e39d155e20b3dc0">SVF::NodeStack</a></div><div class="ttdeci">std::stack&lt; NodeID &gt; NodeStack</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00126">SVFBasicTypes.h:126</a></div></div>
92
+ <div class="ttc" id="namespaceSVF_html_a1811127aebdb9c926e39d155e20b3dc0"><div class="ttname"><a href="namespaceSVF.html#a1811127aebdb9c926e39d155e20b3dc0">SVF::NodeStack</a></div><div class="ttdeci">std::stack&lt; NodeID &gt; NodeStack</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00127">SVFBasicTypes.h:127</a></div></div>
93
93
  <div class="ttc" id="classSVF_1_1FlowSensitive_html_aa401cc90de4e1c6842f08a43a28c5aa1"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#aa401cc90de4e1c6842f08a43a28c5aa1">SVF::FlowSensitive::processCopy</a></div><div class="ttdeci">virtual bool processCopy(const CopySVFGNode *copy)</div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8cpp_source.html#l00424">FlowSensitive.cpp:424</a></div></div>
94
94
  <div class="ttc" id="classSVF_1_1BVDataPTAImpl_html_acbb979edee9427efa2a7c0dbd881c483"><div class="ttname"><a href="classSVF_1_1BVDataPTAImpl.html#acbb979edee9427efa2a7c0dbd881c483">SVF::BVDataPTAImpl::getMutDFPTDataTy</a></div><div class="ttdeci">MutDFPTDataTy * getMutDFPTDataTy() const</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#l00192">PointerAnalysisImpl.h:192</a></div></div>
95
95
  <div class="ttc" id="classSVF_1_1FlowSensitive_html_abdc30e45347579986c42795a436a1251"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#abdc30e45347579986c42795a436a1251">SVF::FlowSensitive::numOfProcessedActualParam</a></div><div class="ttdeci">u32_t numOfProcessedActualParam</div><div class="ttdoc">Number of processed Store node. </div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8h_source.html#l00293">FlowSensitive.h:293</a></div></div>
@@ -116,7 +116,7 @@ $(function() {
116
116
  <div class="ttc" id="classSVF_1_1PointerAnalysis_html_ac23f71c1307cda9cba44acc40059f0a3"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#ac23f71c1307cda9cba44acc40059f0a3">SVF::PointerAnalysis::getAnalysisTy</a></div><div class="ttdeci">PTATY getAnalysisTy() const</div><div class="ttdoc">Type of pointer analysis. </div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00192">PointerAnalysis.h:192</a></div></div>
117
117
  <div class="ttc" id="classSVF_1_1FlowSensitive_html_a12dea7b6057daddcc5c0d975aebf3f11"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#a12dea7b6057daddcc5c0d975aebf3f11">SVF::FlowSensitive::classof</a></div><div class="ttdeci">static bool classof(const PointerAnalysis *pta)</div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8h_source.html#l00129">FlowSensitive.h:129</a></div></div>
118
118
  <div class="ttc" id="classSVF_1_1FlowSensitive_html_a9d81537ec20196315a9a2541477ec5bf"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#a9d81537ec20196315a9a2541477ec5bf">SVF::FlowSensitive::updateCallGraph</a></div><div class="ttdeci">bool updateCallGraph(const CallSiteToFunPtrMap &amp;callsites)</div><div class="ttdoc">Update call graph. </div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8cpp_source.html#l00639">FlowSensitive.cpp:639</a></div></div>
119
- <div class="ttc" id="namespaceSVF_html_ad42bff8d0a7d60a085aa32d10f4955af"><div class="ttname"><a href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">SVF::u32_t</a></div><div class="ttdeci">unsigned u32_t</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00084">SVFBasicTypes.h:84</a></div></div>
119
+ <div class="ttc" id="namespaceSVF_html_ad42bff8d0a7d60a085aa32d10f4955af"><div class="ttname"><a href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">SVF::u32_t</a></div><div class="ttdeci">unsigned u32_t</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00085">SVFBasicTypes.h:85</a></div></div>
120
120
  <div class="ttc" id="classSVF_1_1FlowSensitive_html_ac39abcb40e4b568ab59b7cf48ed10f70"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#ac39abcb40e4b568ab59b7cf48ed10f70">SVF::FlowSensitive::numOfProcessedPhi</a></div><div class="ttdeci">u32_t numOfProcessedPhi</div><div class="ttdoc">Number of processed Gep node. </div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8h_source.html#l00290">FlowSensitive.h:290</a></div></div>
121
121
  <div class="ttc" id="classSVF_1_1FlowSensitive_html_a03a3178d88db4efc0593fedb22938e7d"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#a03a3178d88db4efc0593fedb22938e7d">SVF::FlowSensitive::MutDFPTDataTy</a></div><div class="ttdeci">BVDataPTAImpl::MutDFPTDataTy MutDFPTDataTy</div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8h_source.html#l00056">FlowSensitive.h:56</a></div></div>
122
122
  <div class="ttc" id="classSVF_1_1DirectSVFGEdge_html"><div class="ttname"><a href="classSVF_1_1DirectSVFGEdge.html">SVF::DirectSVFGEdge</a></div><div class="ttdef"><b>Definition:</b> <a href="VFGEdge_8h_source.html#l00141">VFGEdge.h:141</a></div></div>
@@ -137,7 +137,7 @@ $(function() {
137
137
  <div class="ttc" id="classSVF_1_1DFPTData_html_a259a92ea46f1d3a1dbd4a74ff07718d2"><div class="ttname"><a href="classSVF_1_1DFPTData.html#a259a92ea46f1d3a1dbd4a74ff07718d2">SVF::DFPTData::getDFInPtsSet</a></div><div class="ttdeci">virtual const DataSet &amp; getDFInPtsSet(LocID loc, const Key &amp;var)=0</div></div>
138
138
  <div class="ttc" id="classSVF_1_1FlowSensitive_html_a5f8a1493f7550a3f7a295e25d87bce12"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#a5f8a1493f7550a3f7a295e25d87bce12">SVF::FlowSensitive::SCCDetect</a></div><div class="ttdeci">virtual NodeStack &amp; SCCDetect()</div><div class="ttdoc">SCC detection. </div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8cpp_source.html#l00168">FlowSensitive.cpp:168</a></div></div>
139
139
  <div class="ttc" id="classSVF_1_1MutableDFPTData_html_a0c73427f957d310bc85955bec6654352"><div class="ttname"><a href="classSVF_1_1MutableDFPTData.html#a0c73427f957d310bc85955bec6654352">SVF::MutableDFPTData::DFPtsMap</a></div><div class="ttdeci">Map&lt; LocID, PtsMap &gt; DFPtsMap</div><div class="ttdoc">Data-flow point-to map. </div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#l00342">MutablePointsToDS.h:342</a></div></div>
140
- <div class="ttc" id="namespaceSVF_html_af739db846e47ba6b2fd15eaad31ab7fb"><div class="ttname"><a href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">SVF::Set</a></div><div class="ttdeci">std::unordered_set&lt; Key, Hash, KeyEqual, Allocator &gt; Set</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00104">SVFBasicTypes.h:104</a></div></div>
140
+ <div class="ttc" id="namespaceSVF_html_af739db846e47ba6b2fd15eaad31ab7fb"><div class="ttname"><a href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">SVF::Set</a></div><div class="ttdeci">std::unordered_set&lt; Key, Hash, KeyEqual, Allocator &gt; Set</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00105">SVFBasicTypes.h:105</a></div></div>
141
141
  <div class="ttc" id="classSVF_1_1DFPTData_html_aaa6f67ff5daf7d71a3ad62316a7dd872"><div class="ttname"><a href="classSVF_1_1DFPTData.html#aaa6f67ff5daf7d71a3ad62316a7dd872">SVF::DFPTData::updateTLVPts</a></div><div class="ttdeci">virtual bool updateTLVPts(LocID srcLoc, const Key &amp;srcVar, const Key &amp;dstVar)=0</div><div class="ttdoc">Update points-to set of top-level pointers with IN[srcLoc:srcVar]. </div></div>
142
142
  <div class="ttc" id="classSVF_1_1FlowSensitive_html_a7bb300f30f4f8cee208229ae10faa291"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#a7bb300f30f4f8cee208229ae10faa291">SVF::FlowSensitive::PtsMap</a></div><div class="ttdeci">BVDataPTAImpl::MutDFPTDataTy::PtsMap PtsMap</div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8h_source.html#l00058">FlowSensitive.h:58</a></div></div>
143
143
  <div class="ttc" id="classSVF_1_1FlowSensitive_html_abb37c5e4e6fa4742e8dbcf397aea086e"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#abb37c5e4e6fa4742e8dbcf397aea086e">SVF::FlowSensitive::processAddr</a></div><div class="ttdeci">virtual bool processAddr(const AddrSVFGNode *addr)</div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8cpp_source.html#l00407">FlowSensitive.cpp:407</a></div></div>
@@ -173,6 +173,7 @@ $(function() {
173
173
  <div class="ttc" id="classSVF_1_1FlowSensitive_html_a88120b9cec26620d4982798ea530353a"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#a88120b9cec26620d4982798ea530353a">SVF::FlowSensitive::updateInFromIn</a></div><div class="ttdeci">virtual bool updateInFromIn(const SVFGNode *srcStmt, NodeID srcVar, const SVFGNode *dstStmt, NodeID dstVar)</div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8h_source.html#l00194">FlowSensitive.h:194</a></div></div>
174
174
  <div class="ttc" id="classSVF_1_1FlowSensitive_html_af849ab5a07049cb08e6b0d8023577862"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#af849ab5a07049cb08e6b0d8023577862">SVF::FlowSensitive::propFromSrcToDst</a></div><div class="ttdeci">virtual bool propFromSrcToDst(SVFGEdge *edge)</div><div class="ttdoc">Propagation. </div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8cpp_source.html#l00266">FlowSensitive.cpp:266</a></div></div>
175
175
  <div class="ttc" id="classSVF_1_1FlowSensitive_html_af71a5ae3aef022c569e89f40515072cf"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#af71a5ae3aef022c569e89f40515072cf">SVF::FlowSensitive::numOfProcessedMSSANode</a></div><div class="ttdeci">u32_t numOfProcessedMSSANode</div><div class="ttdoc">Number of processed formal ret node. </div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8h_source.html#l00295">FlowSensitive.h:295</a></div></div>
176
+ <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#l00460">SparseBitVector.h:460</a></div></div>
176
177
  <div class="ttc" id="classSVF_1_1FlowSensitive_html_a7bb33faaa7081ef3346de3f30ab3a8da"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#a7bb33faaa7081ef3346de3f30ab3a8da">SVF::FlowSensitive::~FlowSensitive</a></div><div class="ttdeci">virtual ~FlowSensitive()</div><div class="ttdoc">Destructor. </div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8h_source.html#l00076">FlowSensitive.h:76</a></div></div>
177
178
  <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>
178
179
  <div class="ttc" id="namespaceSVF_html"><div class="ttname"><a href="namespaceSVF.html">SVF</a></div><div class="ttdoc">for isBitcode </div><div class="ttdef"><b>Definition:</b> <a href="CFGNormalizer_8h_source.html#l00035">CFGNormalizer.h:35</a></div></div>
@@ -182,7 +183,6 @@ $(function() {
182
183
  <div class="ttc" id="classSVF_1_1FlowSensitive_html_ac4d4b42bb96006801597f81ed3c4b337"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#ac4d4b42bb96006801597f81ed3c4b337">SVF::FlowSensitive::propagationTime</a></div><div class="ttdeci">double propagationTime</div><div class="ttdoc">time of points-to propagation. </div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8h_source.html#l00304">FlowSensitive.h:304</a></div></div>
183
184
  <div class="ttc" id="classSVF_1_1GenericNode_html_ac3e55ef37aefb411ea4c87b1aa3b1895"><div class="ttname"><a href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">SVF::GenericNode::getId</a></div><div class="ttdeci">NodeID getId() const</div><div class="ttdoc">Get ID. </div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00169">GenericGraph.h:169</a></div></div>
184
185
  <div class="ttc" id="fastcluster_8h_html"><div class="ttname"><a href="fastcluster_8h.html">fastcluster.h</a></div></div>
185
- <div class="ttc" id="namespaceSVF_html_a740396763e377643790c8b803ab3e4ea"><div class="ttname"><a href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">SVF::NodeBS</a></div><div class="ttdeci">llvm::SparseBitVector NodeBS</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00095">SVFBasicTypes.h:95</a></div></div>
186
186
  <div class="ttc" id="classSVF_1_1SVFGBuilder_html"><div class="ttname"><a href="classSVF_1_1SVFGBuilder.html">SVF::SVFGBuilder</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFGBuilder_8h_source.html#l00059">SVFGBuilder.h:59</a></div></div>
187
187
  <div class="ttc" id="classSVF_1_1FlowSensitive_html_a9e7fbc4c1d056fbef07498de8cbb1cd9"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#a9e7fbc4c1d056fbef07498de8cbb1cd9">SVF::FlowSensitive::propVarPtsAfterCGUpdated</a></div><div class="ttdeci">bool propVarPtsAfterCGUpdated(NodeID var, const SVFGNode *src, const SVFGNode *dst)</div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8cpp_source.html#l00764">FlowSensitive.cpp:764</a></div></div>
188
188
  <div class="ttc" id="classSVF_1_1DFPTData_html_a506a2be8f909663d59245254bddea00b"><div class="ttname"><a href="classSVF_1_1DFPTData.html#a506a2be8f909663d59245254bddea00b">SVF::DFPTData::updateAllDFInFromIn</a></div><div class="ttdeci">virtual bool updateAllDFInFromIn(LocID srcLoc, const Key &amp;srcVar, LocID dstLoc, const Key &amp;dstVar)=0</div><div class="ttdoc">Union (IN[dstLoc::dstVar], IN[srcLoc:srcVar]. There is no flag check, unlike the above. </div></div>
@@ -203,7 +203,7 @@ $(function() {
203
203
  <div class="ttc" id="classSVF_1_1FlowSensitive_html_ad7640ada31b5cb542e492e27ab4fe1af"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#ad7640ada31b5cb542e492e27ab4fe1af">SVF::FlowSensitive::connectCallerAndCallee</a></div><div class="ttdeci">void connectCallerAndCallee(const CallEdgeMap &amp;newEdges, SVFGEdgeSetTy &amp;edges)</div><div class="ttdoc">Connect nodes in SVFG. </div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8cpp_source.html#l00692">FlowSensitive.cpp:692</a></div></div>
204
204
  <div class="ttc" id="classSVF_1_1DFPTData_html_ad9b3bb99cfefb87424c408eae3ecfcec"><div class="ttname"><a href="classSVF_1_1DFPTData.html#ad9b3bb99cfefb87424c408eae3ecfcec">SVF::DFPTData::getDFOutPtsSet</a></div><div class="ttdeci">virtual const DataSet &amp; getDFOutPtsSet(LocID loc, const Key &amp;var)=0</div></div>
205
205
  <div class="ttc" id="classSVF_1_1FlowSensitive_html_a8ebe4342c1496b906ee1b6450558c3e8"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#a8ebe4342c1496b906ee1b6450558c3e8">SVF::FlowSensitive::strongUpdateOutFromIn</a></div><div class="ttdeci">virtual bool strongUpdateOutFromIn(const SVFGNode *node, NodeID singleton)</div><div class="ttdoc">Handle strong updates. </div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8h_source.html#l00167">FlowSensitive.h:167</a></div></div>
206
- <div class="ttc" id="classSVF_1_1PointsTo_html"><div class="ttname"><a href="classSVF_1_1PointsTo.html">SVF::PointsTo</a></div><div class="ttdef"><b>Definition:</b> <a href="PointsTo_8h_source.html#l00027">PointsTo.h:27</a></div></div>
206
+ <div class="ttc" id="classSVF_1_1PointsTo_html"><div class="ttname"><a href="classSVF_1_1PointsTo.html">SVF::PointsTo</a></div><div class="ttdef"><b>Definition:</b> <a href="PointsTo_8h_source.html#l00028">PointsTo.h:28</a></div></div>
207
207
  <div class="ttc" id="classSVF_1_1SVFIR_html"><div class="ttname"><a href="classSVF_1_1SVFIR.html">SVF::SVFIR</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00043">SVFIR.h:43</a></div></div>
208
208
  <div class="ttc" id="classSVF_1_1FlowSensitive_html_a5cfee013a1a5821ef0c449842dd8690d"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#a5cfee013a1a5821ef0c449842dd8690d">SVF::FlowSensitive::ander</a></div><div class="ttdeci">AndersenWaveDiff * ander</div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8h_source.html#l00280">FlowSensitive.h:280</a></div></div>
209
209
  <div class="ttc" id="classSVF_1_1FlowSensitive_html_a76f6f19ac2b58ab4a10a2d7e6e24e42a"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#a76f6f19ac2b58ab4a10a2d7e6e24e42a">SVF::FlowSensitive::memSSA</a></div><div class="ttdeci">SVFGBuilder memSSA</div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8h_source.html#l00279">FlowSensitive.h:279</a></div></div>