svf-tools 1.0.281 → 1.0.285

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 (392) hide show
  1. package/Dockerfile +8 -5
  2. package/SVF-doxygen/html/html/AndersenSCD_8cpp_source.html +1 -1
  3. package/SVF-doxygen/html/html/AndersenStat_8cpp_source.html +2 -2
  4. package/SVF-doxygen/html/html/Andersen_8cpp_source.html +8 -8
  5. package/SVF-doxygen/html/html/Andersen_8h_source.html +5 -5
  6. package/SVF-doxygen/html/html/BasicTypes_8h_source.html +2 -2
  7. package/SVF-doxygen/html/html/CHG_8cpp_source.html +5 -5
  8. package/SVF-doxygen/html/html/CallGraphBuilder_8cpp_source.html +2 -2
  9. package/SVF-doxygen/html/html/ConditionalPT_8h_source.html +1 -1
  10. package/SVF-doxygen/html/html/Conditions_8cpp_source.html +1 -1
  11. package/SVF-doxygen/html/html/ConsG_8cpp_source.html +1 -1
  12. package/SVF-doxygen/html/html/ContextDDA_8cpp_source.html +6 -6
  13. package/SVF-doxygen/html/html/ContextDDA_8h_source.html +4 -4
  14. package/SVF-doxygen/html/html/CxtStmt_8h_source.html +1 -1
  15. package/SVF-doxygen/html/html/DCHG_8cpp_source.html +1 -1
  16. package/SVF-doxygen/html/html/DDAClient_8cpp_source.html +3 -3
  17. package/SVF-doxygen/html/html/DDAStat_8cpp_source.html +3 -3
  18. package/SVF-doxygen/html/html/DDAVFSolver_8h_source.html +1 -1
  19. package/SVF-doxygen/html/html/DoubleFreeChecker_8cpp_source.html +2 -2
  20. package/SVF-doxygen/html/html/ExternalPAG_8cpp_source.html +1 -1
  21. package/SVF-doxygen/html/html/FSMPTA_8cpp_source.html +2 -2
  22. package/SVF-doxygen/html/html/FSMPTA_8h_source.html +1 -1
  23. package/SVF-doxygen/html/html/FileChecker_8cpp_source.html +3 -3
  24. package/SVF-doxygen/html/html/FlowDDA_8cpp_source.html +1 -1
  25. package/SVF-doxygen/html/html/FlowDDA_8h_source.html +3 -3
  26. package/SVF-doxygen/html/html/FlowSensitiveStat_8cpp_source.html +1 -1
  27. package/SVF-doxygen/html/html/FlowSensitiveTBHC_8cpp_source.html +5 -5
  28. package/SVF-doxygen/html/html/FlowSensitive_8cpp_source.html +9 -9
  29. package/SVF-doxygen/html/html/FlowSensitive_8h_source.html +8 -8
  30. package/SVF-doxygen/html/html/Graph2Json_8cpp_source.html +1 -1
  31. package/SVF-doxygen/html/html/ICFGBuilder_8cpp_source.html +5 -5
  32. package/SVF-doxygen/html/html/ICFGBuilder_8h_source.html +1 -1
  33. package/SVF-doxygen/html/html/ICFGNode_8h_source.html +1 -1
  34. package/SVF-doxygen/html/html/ICFG_8cpp_source.html +6 -6
  35. package/SVF-doxygen/html/html/IRAnnotator_8h_source.html +2 -2
  36. package/SVF-doxygen/html/html/LLVMUtil_8cpp_source.html +4 -4
  37. package/SVF-doxygen/html/html/LLVMUtil_8h_source.html +1 -1
  38. package/SVF-doxygen/html/html/LeakChecker_8cpp_source.html +7 -7
  39. package/SVF-doxygen/html/html/LocationSet_8cpp_source.html +3 -3
  40. package/SVF-doxygen/html/html/LocationSet_8h_source.html +3 -3
  41. package/SVF-doxygen/html/html/LockAnalysis_8cpp_source.html +2 -2
  42. package/SVF-doxygen/html/html/LockResultValidator_8cpp_source.html +7 -7
  43. package/SVF-doxygen/html/html/MHP_8cpp_source.html +3 -3
  44. package/SVF-doxygen/html/html/MSSAMuChi_8h_source.html +5 -5
  45. package/SVF-doxygen/html/html/MTAAnnotator_8cpp_source.html +1 -1
  46. package/SVF-doxygen/html/html/MTAAnnotator_8h_source.html +1 -1
  47. package/SVF-doxygen/html/html/MTAResultValidator_8cpp_source.html +7 -7
  48. package/SVF-doxygen/html/html/MTAResultValidator_8h_source.html +5 -5
  49. package/SVF-doxygen/html/html/MTA_8cpp_source.html +1 -1
  50. package/SVF-doxygen/html/html/MemModel_8cpp_source.html +1 -1
  51. package/SVF-doxygen/html/html/MemPartition_8cpp_source.html +15 -15
  52. package/SVF-doxygen/html/html/MemPartition_8h_source.html +11 -11
  53. package/SVF-doxygen/html/html/MemRegion_8cpp_source.html +103 -34
  54. package/SVF-doxygen/html/html/MemRegion_8h.html +3 -3
  55. package/SVF-doxygen/html/html/MemRegion_8h_source.html +97 -109
  56. package/SVF-doxygen/html/html/MemSSA_8cpp_source.html +43 -42
  57. package/SVF-doxygen/html/html/MemSSA_8h_source.html +46 -47
  58. package/SVF-doxygen/html/html/MutablePointsToDS_8h_source.html +3 -3
  59. package/SVF-doxygen/html/html/Options_8cpp_source.html +1 -1
  60. package/SVF-doxygen/html/html/PAGBuilder_8cpp_source.html +5 -5
  61. package/SVF-doxygen/html/html/PAG_8cpp_source.html +3 -3
  62. package/SVF-doxygen/html/html/PCG_8cpp_source.html +2 -2
  63. package/SVF-doxygen/html/html/PTACallGraph_8cpp_source.html +2 -2
  64. package/SVF-doxygen/html/html/PathCondAllocator_8cpp_source.html +1 -1
  65. package/SVF-doxygen/html/html/PersistentPointsToCache_8h_source.html +29 -29
  66. package/SVF-doxygen/html/html/PersistentPointsToDS_8h_source.html +7 -7
  67. package/SVF-doxygen/html/html/PointerAnalysisImpl_8cpp.html +2 -2
  68. package/SVF-doxygen/html/html/PointerAnalysisImpl_8cpp_source.html +19 -21
  69. package/SVF-doxygen/html/html/PointerAnalysisImpl_8h_source.html +81 -81
  70. package/SVF-doxygen/html/html/PointerAnalysis_8cpp_source.html +8 -8
  71. package/SVF-doxygen/html/html/ProgSlice_8cpp_source.html +1 -1
  72. package/SVF-doxygen/html/html/SVFGBuilder_8cpp_source.html +8 -8
  73. package/SVF-doxygen/html/html/SVFGBuilder_8h.html +2 -1
  74. package/SVF-doxygen/html/html/SVFGBuilder_8h_source.html +20 -19
  75. package/SVF-doxygen/html/html/SVFGEdge_8h_source.html +3 -3
  76. package/SVF-doxygen/html/html/SVFGNode_8h_source.html +3 -3
  77. package/SVF-doxygen/html/html/SVFGOPT_8cpp_source.html +7 -7
  78. package/SVF-doxygen/html/html/SVFGOPT_8h_source.html +3 -4
  79. package/SVF-doxygen/html/html/SVFGStat_8cpp_source.html +21 -21
  80. package/SVF-doxygen/html/html/SVFG_8cpp.html +1 -0
  81. package/SVF-doxygen/html/html/SVFG_8cpp_source.html +46 -45
  82. package/SVF-doxygen/html/html/SVFG_8h_source.html +12 -13
  83. package/SVF-doxygen/html/html/SVFModule_8cpp_source.html +1 -1
  84. package/SVF-doxygen/html/html/SVFUtil_8cpp.html +9 -8
  85. package/SVF-doxygen/html/html/SVFUtil_8cpp_source.html +34 -33
  86. package/SVF-doxygen/html/html/SVFUtil_8h.html +14 -2
  87. package/SVF-doxygen/html/html/SVFUtil_8h_source.html +43 -36
  88. package/SVF-doxygen/html/html/SaberCheckerAPI_8h_source.html +1 -1
  89. package/SVF-doxygen/html/html/SaberSVFGBuilder_8cpp_source.html +3 -3
  90. package/SVF-doxygen/html/html/SaberSVFGBuilder_8h_source.html +2 -2
  91. package/SVF-doxygen/html/html/Steensgaard_8h_source.html +1 -1
  92. package/SVF-doxygen/html/html/SymbolTableInfo_8cpp_source.html +6 -6
  93. package/SVF-doxygen/html/html/TCT_8cpp_source.html +2 -2
  94. package/SVF-doxygen/html/html/ThreadAPI_8cpp_source.html +2 -2
  95. package/SVF-doxygen/html/html/ThreadCallGraph_8cpp_source.html +2 -2
  96. package/SVF-doxygen/html/html/TypeAnalysis_8cpp_source.html +1 -1
  97. package/SVF-doxygen/html/html/TypeBasedHeapCloning_8cpp_source.html +9 -9
  98. package/SVF-doxygen/html/html/VFG_8cpp_source.html +3 -3
  99. package/SVF-doxygen/html/html/VFG_8h_source.html +1 -1
  100. package/SVF-doxygen/html/html/VersionedFlowSensitive_8cpp_source.html +2 -2
  101. package/SVF-doxygen/html/html/WPAPass_8cpp_source.html +3 -3
  102. package/SVF-doxygen/html/html/annotated.html +16 -16
  103. package/SVF-doxygen/html/html/classSVF_1_1ActualINSVFGNode.html +5 -5
  104. package/SVF-doxygen/html/html/classSVF_1_1ActualOUTSVFGNode.html +4 -4
  105. package/SVF-doxygen/html/html/classSVF_1_1ActualParmVFGNode.html +1 -1
  106. package/SVF-doxygen/html/html/classSVF_1_1ActualRetVFGNode.html +1 -1
  107. package/SVF-doxygen/html/html/classSVF_1_1AddrPE.html +1 -1
  108. package/SVF-doxygen/html/html/classSVF_1_1Andersen-members.html +58 -59
  109. package/SVF-doxygen/html/html/classSVF_1_1Andersen.html +19 -22
  110. package/SVF-doxygen/html/html/classSVF_1_1AndersenBase-members.html +48 -49
  111. package/SVF-doxygen/html/html/classSVF_1_1AndersenBase.html +9 -12
  112. package/SVF-doxygen/html/html/classSVF_1_1AndersenHCD-members.html +60 -61
  113. package/SVF-doxygen/html/html/classSVF_1_1AndersenHCD.html +2 -5
  114. package/SVF-doxygen/html/html/classSVF_1_1AndersenHLCD-members.html +63 -64
  115. package/SVF-doxygen/html/html/classSVF_1_1AndersenHLCD.html +2 -5
  116. package/SVF-doxygen/html/html/classSVF_1_1AndersenLCD-members.html +59 -60
  117. package/SVF-doxygen/html/html/classSVF_1_1AndersenLCD.html +2 -5
  118. package/SVF-doxygen/html/html/classSVF_1_1AndersenSCD-members.html +63 -64
  119. package/SVF-doxygen/html/html/classSVF_1_1AndersenSCD.html +5 -8
  120. package/SVF-doxygen/html/html/classSVF_1_1AndersenSFR-members.html +67 -68
  121. package/SVF-doxygen/html/html/classSVF_1_1AndersenSFR.html +2 -5
  122. package/SVF-doxygen/html/html/classSVF_1_1AndersenStat.html +3 -3
  123. package/SVF-doxygen/html/html/classSVF_1_1AndersenWaveDiff-members.html +58 -59
  124. package/SVF-doxygen/html/html/classSVF_1_1AndersenWaveDiff.html +2 -5
  125. package/SVF-doxygen/html/html/classSVF_1_1AndersenWaveDiffWithType-members.html +64 -65
  126. package/SVF-doxygen/html/html/classSVF_1_1AndersenWaveDiffWithType.html +4 -7
  127. package/SVF-doxygen/html/html/classSVF_1_1ArgumentVFGNode.html +2 -2
  128. package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl-members.html +2 -2
  129. package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl.html +135 -138
  130. package/SVF-doxygen/html/html/classSVF_1_1BinaryOPPE.html +1 -1
  131. package/SVF-doxygen/html/html/classSVF_1_1BinaryOPVFGNode.html +3 -3
  132. package/SVF-doxygen/html/html/classSVF_1_1BranchCondManager.html +2 -2
  133. package/SVF-doxygen/html/html/classSVF_1_1CHGraph.html +6 -6
  134. package/SVF-doxygen/html/html/classSVF_1_1CallBlockNode.html +2 -2
  135. package/SVF-doxygen/html/html/classSVF_1_1CallCHI.html +2 -2
  136. package/SVF-doxygen/html/html/classSVF_1_1CallGraphBuilder.html +2 -2
  137. package/SVF-doxygen/html/html/classSVF_1_1CallIndSVFGEdge.html +2 -2
  138. package/SVF-doxygen/html/html/classSVF_1_1CallMU.html +2 -2
  139. package/SVF-doxygen/html/html/classSVF_1_1CallPE.html +1 -1
  140. package/SVF-doxygen/html/html/classSVF_1_1CmpPE.html +1 -1
  141. package/SVF-doxygen/html/html/classSVF_1_1CmpVFGNode.html +3 -3
  142. package/SVF-doxygen/html/html/classSVF_1_1CondPTAImpl.html +115 -115
  143. package/SVF-doxygen/html/html/classSVF_1_1CondPointsToSet.html +1 -1
  144. package/SVF-doxygen/html/html/classSVF_1_1ContextDDA.html +10 -10
  145. package/SVF-doxygen/html/html/classSVF_1_1CopyPE.html +1 -1
  146. package/SVF-doxygen/html/html/classSVF_1_1CxtStmt.html +1 -1
  147. package/SVF-doxygen/html/html/classSVF_1_1CxtThread.html +1 -1
  148. package/SVF-doxygen/html/html/classSVF_1_1CxtThreadStmt.html +1 -1
  149. package/SVF-doxygen/html/html/classSVF_1_1DCHGraph.html +1 -1
  150. package/SVF-doxygen/html/html/classSVF_1_1DDAClient.html +1 -1
  151. package/SVF-doxygen/html/html/classSVF_1_1DDAStat.html +3 -3
  152. package/SVF-doxygen/html/html/classSVF_1_1DistinctMRG-members.html +63 -62
  153. package/SVF-doxygen/html/html/classSVF_1_1DistinctMRG.html +94 -92
  154. package/SVF-doxygen/html/html/classSVF_1_1DoubleFreeChecker.html +2 -2
  155. package/SVF-doxygen/html/html/classSVF_1_1EntryCHI.html +2 -2
  156. package/SVF-doxygen/html/html/classSVF_1_1ExternalPAG.html +1 -1
  157. package/SVF-doxygen/html/html/classSVF_1_1FIObjPN.html +1 -1
  158. package/SVF-doxygen/html/html/classSVF_1_1FSMPTA-members.html +65 -66
  159. package/SVF-doxygen/html/html/classSVF_1_1FSMPTA.html +2 -5
  160. package/SVF-doxygen/html/html/classSVF_1_1FileChecker.html +4 -4
  161. package/SVF-doxygen/html/html/classSVF_1_1FlowDDA-members.html +51 -52
  162. package/SVF-doxygen/html/html/classSVF_1_1FlowDDA.html +10 -13
  163. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitive-members.html +62 -63
  164. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitive.html +55 -53
  165. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveStat.html +5 -5
  166. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveTBHC-members.html +74 -75
  167. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveTBHC.html +17 -20
  168. package/SVF-doxygen/html/html/classSVF_1_1FormalINSVFGNode.html +3 -3
  169. package/SVF-doxygen/html/html/classSVF_1_1FormalOUTSVFGNode.html +5 -5
  170. package/SVF-doxygen/html/html/classSVF_1_1FunEntryBlockNode.html +1 -1
  171. package/SVF-doxygen/html/html/classSVF_1_1FunExitBlockNode.html +1 -1
  172. package/SVF-doxygen/html/html/classSVF_1_1FunptrDDAClient.html +2 -2
  173. package/SVF-doxygen/html/html/classSVF_1_1GepObjPN.html +1 -1
  174. package/SVF-doxygen/html/html/classSVF_1_1GepPE.html +1 -1
  175. package/SVF-doxygen/html/html/classSVF_1_1GepValPN.html +1 -1
  176. package/SVF-doxygen/html/html/classSVF_1_1ICFG.html +7 -7
  177. package/SVF-doxygen/html/html/classSVF_1_1ICFGBuilder.html +7 -7
  178. package/SVF-doxygen/html/html/classSVF_1_1ICFGPrinter.html +1 -1
  179. package/SVF-doxygen/html/html/classSVF_1_1IRAnnotator.html +3 -3
  180. package/SVF-doxygen/html/html/classSVF_1_1IndirectSVFGEdge.html +2 -2
  181. package/SVF-doxygen/html/html/classSVF_1_1InterDisjointMRG-members.html +71 -70
  182. package/SVF-doxygen/html/html/classSVF_1_1InterDisjointMRG.html +88 -86
  183. package/SVF-doxygen/html/html/classSVF_1_1InterMSSAPHISVFGNode.html +3 -3
  184. package/SVF-doxygen/html/html/classSVF_1_1InterPHIVFGNode.html +1 -1
  185. package/SVF-doxygen/html/html/classSVF_1_1IntraBlockNode.html +1 -1
  186. package/SVF-doxygen/html/html/classSVF_1_1IntraDisjointMRG-members.html +71 -70
  187. package/SVF-doxygen/html/html/classSVF_1_1IntraDisjointMRG.html +126 -124
  188. package/SVF-doxygen/html/html/classSVF_1_1IntraIndSVFGEdge.html +2 -2
  189. package/SVF-doxygen/html/html/classSVF_1_1IntraMSSAPHISVFGNode.html +3 -3
  190. package/SVF-doxygen/html/html/classSVF_1_1IntraPHIVFGNode.html +1 -1
  191. package/SVF-doxygen/html/html/classSVF_1_1LeakChecker.html +13 -13
  192. package/SVF-doxygen/html/html/classSVF_1_1LoadMU.html +2 -2
  193. package/SVF-doxygen/html/html/classSVF_1_1LoadPE.html +1 -1
  194. package/SVF-doxygen/html/html/classSVF_1_1LocSymTableInfo.html +1 -1
  195. package/SVF-doxygen/html/html/classSVF_1_1LocationSet-members.html +1 -1
  196. package/SVF-doxygen/html/html/classSVF_1_1LocationSet.html +11 -11
  197. package/SVF-doxygen/html/html/classSVF_1_1LockAnalysis.html +3 -3
  198. package/SVF-doxygen/html/html/classSVF_1_1LockResultValidator.html +8 -8
  199. package/SVF-doxygen/html/html/classSVF_1_1MHP.html +5 -5
  200. package/SVF-doxygen/html/html/classSVF_1_1MRGenerator-members.html +76 -75
  201. package/SVF-doxygen/html/html/classSVF_1_1MRGenerator.html +515 -506
  202. package/SVF-doxygen/html/html/classSVF_1_1MRSVFGNode.html +2 -2
  203. package/SVF-doxygen/html/html/classSVF_1_1MSSACHI.html +2 -2
  204. package/SVF-doxygen/html/html/classSVF_1_1MSSADEF.html +1 -1
  205. package/SVF-doxygen/html/html/classSVF_1_1MSSAMU.html +2 -2
  206. package/SVF-doxygen/html/html/classSVF_1_1MSSAPHI.html +1 -1
  207. package/SVF-doxygen/html/html/classSVF_1_1MSSAPHISVFGNode.html +5 -5
  208. package/SVF-doxygen/html/html/classSVF_1_1MTA.html +2 -2
  209. package/SVF-doxygen/html/html/classSVF_1_1MTAAnnotator.html +4 -4
  210. package/SVF-doxygen/html/html/classSVF_1_1MTAResultValidator.html +14 -14
  211. package/SVF-doxygen/html/html/classSVF_1_1MTASVFGBuilder.html +14 -14
  212. package/SVF-doxygen/html/html/classSVF_1_1MemObj.html +3 -3
  213. package/SVF-doxygen/html/html/classSVF_1_1MemRegion-members.html +9 -10
  214. package/SVF-doxygen/html/html/classSVF_1_1MemRegion.html +38 -56
  215. package/SVF-doxygen/html/html/classSVF_1_1MemSSA-members.html +1 -1
  216. package/SVF-doxygen/html/html/classSVF_1_1MemSSA.html +132 -132
  217. package/SVF-doxygen/html/html/classSVF_1_1MemSSADF.html +5 -5
  218. package/SVF-doxygen/html/html/classSVF_1_1MemSSAStat.html +21 -21
  219. package/SVF-doxygen/html/html/classSVF_1_1MutableDFPTData.html +1 -1
  220. package/SVF-doxygen/html/html/classSVF_1_1MutablePTData.html +2 -2
  221. package/SVF-doxygen/html/html/classSVF_1_1NormalGepPE.html +1 -1
  222. package/SVF-doxygen/html/html/classSVF_1_1ObjPN.html +1 -1
  223. package/SVF-doxygen/html/html/classSVF_1_1PAGBuilder.html +6 -6
  224. package/SVF-doxygen/html/html/classSVF_1_1PAGNode.html +1 -1
  225. package/SVF-doxygen/html/html/classSVF_1_1PCG.html +2 -2
  226. package/SVF-doxygen/html/html/classSVF_1_1PHIVFGNode.html +3 -3
  227. package/SVF-doxygen/html/html/classSVF_1_1PTACallGraph.html +1 -1
  228. package/SVF-doxygen/html/html/classSVF_1_1PTACallGraphEdge.html +2 -2
  229. package/SVF-doxygen/html/html/classSVF_1_1PathCondAllocator.html +1 -1
  230. package/SVF-doxygen/html/html/classSVF_1_1PersistentDFPTData.html +3 -3
  231. package/SVF-doxygen/html/html/classSVF_1_1PersistentDiffPTData.html +4 -4
  232. package/SVF-doxygen/html/html/classSVF_1_1PersistentIncDFPTData.html +2 -2
  233. package/SVF-doxygen/html/html/classSVF_1_1PersistentPTData.html +9 -9
  234. package/SVF-doxygen/html/html/classSVF_1_1PersistentPointsToCache-members.html +28 -27
  235. package/SVF-doxygen/html/html/classSVF_1_1PersistentPointsToCache.html +144 -111
  236. package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis.html +21 -21
  237. package/SVF-doxygen/html/html/classSVF_1_1ProgSlice.html +1 -1
  238. package/SVF-doxygen/html/html/classSVF_1_1RaceResultValidator.html +5 -5
  239. package/SVF-doxygen/html/html/classSVF_1_1RetBlockNode.html +1 -1
  240. package/SVF-doxygen/html/html/classSVF_1_1RetIndSVFGEdge.html +2 -2
  241. package/SVF-doxygen/html/html/classSVF_1_1RetMU.html +2 -2
  242. package/SVF-doxygen/html/html/classSVF_1_1RetPE.html +1 -1
  243. package/SVF-doxygen/html/html/classSVF_1_1SVFFunction.html +4 -4
  244. package/SVF-doxygen/html/html/classSVF_1_1SVFG-members.html +4 -4
  245. package/SVF-doxygen/html/html/classSVF_1_1SVFG.html +62 -62
  246. package/SVF-doxygen/html/html/classSVF_1_1SVFGBuilder.html +37 -37
  247. package/SVF-doxygen/html/html/classSVF_1_1SVFGOPT-members.html +6 -6
  248. package/SVF-doxygen/html/html/classSVF_1_1SVFGOPT.html +49 -49
  249. package/SVF-doxygen/html/html/classSVF_1_1SVFModule.html +1 -1
  250. package/SVF-doxygen/html/html/classSVF_1_1SaberCheckerAPI.html +4 -4
  251. package/SVF-doxygen/html/html/classSVF_1_1SaberSVFGBuilder.html +15 -15
  252. package/SVF-doxygen/html/html/classSVF_1_1SrcSnkDDA.html +1 -1
  253. package/SVF-doxygen/html/html/classSVF_1_1Steensgaard-members.html +52 -53
  254. package/SVF-doxygen/html/html/classSVF_1_1Steensgaard.html +6 -9
  255. package/SVF-doxygen/html/html/classSVF_1_1StmtVFGNode.html +2 -2
  256. package/SVF-doxygen/html/html/classSVF_1_1StoreCHI.html +2 -2
  257. package/SVF-doxygen/html/html/classSVF_1_1StorePE.html +1 -1
  258. package/SVF-doxygen/html/html/classSVF_1_1SymbolTableInfo.html +5 -5
  259. package/SVF-doxygen/html/html/classSVF_1_1TCT.html +2 -2
  260. package/SVF-doxygen/html/html/classSVF_1_1TDForkPE.html +1 -1
  261. package/SVF-doxygen/html/html/classSVF_1_1TDJoinPE.html +1 -1
  262. package/SVF-doxygen/html/html/classSVF_1_1ThreadAPI.html +3 -3
  263. package/SVF-doxygen/html/html/classSVF_1_1ThreadCallGraph.html +2 -2
  264. package/SVF-doxygen/html/html/classSVF_1_1ThreadMHPIndSVFGEdge.html +2 -2
  265. package/SVF-doxygen/html/html/classSVF_1_1TypeAnalysis-members.html +51 -52
  266. package/SVF-doxygen/html/html/classSVF_1_1TypeAnalysis.html +3 -6
  267. package/SVF-doxygen/html/html/classSVF_1_1TypeBasedHeapCloning.html +10 -10
  268. package/SVF-doxygen/html/html/classSVF_1_1UnaryOPPE.html +1 -1
  269. package/SVF-doxygen/html/html/classSVF_1_1UnaryOPVFGNode.html +1 -1
  270. package/SVF-doxygen/html/html/classSVF_1_1VFG.html +2 -2
  271. package/SVF-doxygen/html/html/classSVF_1_1ValPN.html +1 -1
  272. package/SVF-doxygen/html/html/classSVF_1_1VariantGepPE.html +1 -1
  273. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive-members.html +82 -83
  274. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive.html +5 -8
  275. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitiveStat.html +1 -1
  276. package/SVF-doxygen/html/html/classSVF_1_1WPAPass.html +7 -7
  277. package/SVF-doxygen/html/html/classes.html +2 -2
  278. package/SVF-doxygen/html/html/functions_a.html +10 -10
  279. package/SVF-doxygen/html/html/functions_c.html +11 -11
  280. package/SVF-doxygen/html/html/functions_e.html +4 -7
  281. package/SVF-doxygen/html/html/functions_f.html +17 -14
  282. package/SVF-doxygen/html/html/functions_func.html +10 -10
  283. package/SVF-doxygen/html/html/functions_func_c.html +5 -5
  284. package/SVF-doxygen/html/html/functions_func_g.html +33 -30
  285. package/SVF-doxygen/html/html/functions_func_h.html +1 -1
  286. package/SVF-doxygen/html/html/functions_func_i.html +1 -1
  287. package/SVF-doxygen/html/html/functions_func_m.html +2 -2
  288. package/SVF-doxygen/html/html/functions_func_o.html +3 -3
  289. package/SVF-doxygen/html/html/functions_func_p.html +1 -1
  290. package/SVF-doxygen/html/html/functions_func_s.html +1 -1
  291. package/SVF-doxygen/html/html/functions_g.html +30 -27
  292. package/SVF-doxygen/html/html/functions_h.html +1 -1
  293. package/SVF-doxygen/html/html/functions_i.html +7 -7
  294. package/SVF-doxygen/html/html/functions_l.html +4 -4
  295. package/SVF-doxygen/html/html/functions_m.html +2 -2
  296. package/SVF-doxygen/html/html/functions_o.html +7 -9
  297. package/SVF-doxygen/html/html/functions_p.html +17 -13
  298. package/SVF-doxygen/html/html/functions_r.html +8 -4
  299. package/SVF-doxygen/html/html/functions_s.html +7 -7
  300. package/SVF-doxygen/html/html/functions_t.html +3 -3
  301. package/SVF-doxygen/html/html/functions_type_c.html +1 -1
  302. package/SVF-doxygen/html/html/functions_type_e.html +0 -3
  303. package/SVF-doxygen/html/html/functions_type_f.html +4 -1
  304. package/SVF-doxygen/html/html/functions_type_l.html +1 -1
  305. package/SVF-doxygen/html/html/functions_type_p.html +3 -3
  306. package/SVF-doxygen/html/html/functions_type_s.html +1 -1
  307. package/SVF-doxygen/html/html/functions_vars_c.html +5 -5
  308. package/SVF-doxygen/html/html/functions_vars_f.html +3 -3
  309. package/SVF-doxygen/html/html/functions_vars_i.html +1 -1
  310. package/SVF-doxygen/html/html/functions_vars_p.html +1 -1
  311. package/SVF-doxygen/html/html/globals_s.html +3 -3
  312. package/SVF-doxygen/html/html/hierarchy.html +2 -2
  313. package/SVF-doxygen/html/html/menudata.js +1 -0
  314. package/SVF-doxygen/html/html/namespaceSVF.html +3 -3
  315. package/SVF-doxygen/html/html/namespaceSVF_1_1SVFUtil.html +250 -122
  316. package/SVF-doxygen/html/html/namespacemembers_c.html +3 -0
  317. package/SVF-doxygen/html/html/namespacemembers_e.html +3 -0
  318. package/SVF-doxygen/html/html/namespacemembers_func.html +23 -10
  319. package/SVF-doxygen/html/html/namespacemembers_m.html +3 -0
  320. package/SVF-doxygen/html/html/namespacemembers_p.html +4 -1
  321. package/SVF-doxygen/html/html/namespacemembers_type_e.html +3 -0
  322. package/SVF-doxygen/html/html/namespacemembers_type_p.html +1 -1
  323. package/SVF-doxygen/html/html/search/all_1.js +10 -10
  324. package/SVF-doxygen/html/html/search/all_10.js +12 -11
  325. package/SVF-doxygen/html/html/search/all_12.js +2 -2
  326. package/SVF-doxygen/html/html/search/all_13.js +7 -7
  327. package/SVF-doxygen/html/html/search/all_14.js +4 -4
  328. package/SVF-doxygen/html/html/search/all_15.js +1 -1
  329. package/SVF-doxygen/html/html/search/all_3.js +12 -11
  330. package/SVF-doxygen/html/html/search/all_5.js +2 -1
  331. package/SVF-doxygen/html/html/search/all_6.js +4 -3
  332. package/SVF-doxygen/html/html/search/all_7.js +14 -13
  333. package/SVF-doxygen/html/html/search/all_8.js +1 -1
  334. package/SVF-doxygen/html/html/search/all_9.js +4 -4
  335. package/SVF-doxygen/html/html/search/all_c.js +2 -2
  336. package/SVF-doxygen/html/html/search/all_d.js +5 -4
  337. package/SVF-doxygen/html/html/search/all_e.js +2 -2
  338. package/SVF-doxygen/html/html/search/all_f.js +3 -3
  339. package/SVF-doxygen/html/html/search/classes_4.js +2 -1
  340. package/SVF-doxygen/html/html/search/functions_0.js +10 -10
  341. package/SVF-doxygen/html/html/search/functions_10.js +2 -2
  342. package/SVF-doxygen/html/html/search/functions_2.js +6 -5
  343. package/SVF-doxygen/html/html/search/functions_6.js +14 -13
  344. package/SVF-doxygen/html/html/search/functions_7.js +1 -1
  345. package/SVF-doxygen/html/html/search/functions_8.js +1 -1
  346. package/SVF-doxygen/html/html/search/functions_b.js +3 -2
  347. package/SVF-doxygen/html/html/search/functions_d.js +1 -1
  348. package/SVF-doxygen/html/html/search/functions_e.js +2 -1
  349. package/SVF-doxygen/html/html/search/typedefs_11.js +1 -1
  350. package/SVF-doxygen/html/html/search/typedefs_2.js +1 -1
  351. package/SVF-doxygen/html/html/search/typedefs_4.js +2 -1
  352. package/SVF-doxygen/html/html/search/typedefs_5.js +2 -1
  353. package/SVF-doxygen/html/html/search/typedefs_b.js +1 -1
  354. package/SVF-doxygen/html/html/search/typedefs_f.js +3 -3
  355. package/SVF-doxygen/html/html/search/variables_10.js +1 -1
  356. package/SVF-doxygen/html/html/search/variables_14.js +2 -2
  357. package/SVF-doxygen/html/html/search/variables_15.js +1 -1
  358. package/SVF-doxygen/html/html/search/variables_3.js +5 -5
  359. package/SVF-doxygen/html/html/search/variables_6.js +3 -3
  360. package/SVF-doxygen/html/html/search/variables_9.js +1 -1
  361. package/SVF-doxygen/html/html/search/variables_d.js +1 -1
  362. package/SVF-doxygen/html/html/search/variables_e.js +2 -2
  363. package/SVF-doxygen/html/html/structSVF_1_1MemRegion_1_1equalMemRegion.html +3 -3
  364. package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1equalNodeBS-members.html +81 -0
  365. package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1equalNodeBS.html +134 -0
  366. package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1equalPointsTo.html +3 -3
  367. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01ConstraintGraph_01_5_01_4.html +1 -1
  368. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01ICFG_01_5_01_4.html +1 -1
  369. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01PAG_01_5_01_4.html +1 -1
  370. package/SVF-doxygen/html/html/svf-ex_8cpp.html +1 -1
  371. package/SVF-doxygen/html/html/svf-ex_8cpp_source.html +1 -1
  372. package/include/Graphs/SVFG.h +4 -4
  373. package/include/Graphs/SVFGOPT.h +4 -4
  374. package/include/MSSA/MemPartition.h +10 -10
  375. package/include/MSSA/MemRegion.h +40 -64
  376. package/include/MSSA/MemSSA.h +1 -4
  377. package/include/MSSA/SVFGBuilder.h +1 -0
  378. package/include/MemoryModel/LocationSet.h +3 -3
  379. package/include/MemoryModel/PersistentPointsToCache.h +20 -9
  380. package/include/MemoryModel/PointerAnalysisImpl.h +3 -4
  381. package/include/Util/SVFUtil.h +44 -1
  382. package/lib/Graphs/SVFG.cpp +12 -12
  383. package/lib/Graphs/SVFGOPT.cpp +6 -6
  384. package/lib/MSSA/MemPartition.cpp +31 -31
  385. package/lib/MSSA/MemRegion.cpp +59 -35
  386. package/lib/MSSA/MemSSA.cpp +5 -0
  387. package/lib/MemoryModel/LocationSet.cpp +2 -2
  388. package/lib/MemoryModel/PointerAnalysisImpl.cpp +1 -4
  389. package/lib/Util/Options.cpp +3 -3
  390. package/lib/Util/SVFUtil.cpp +3 -2
  391. package/lib/WPA/FlowSensitive.cpp +34 -0
  392. package/package.json +1 -1
@@ -71,7 +71,7 @@ $(function() {
71
71
  <div class="ttc" id="classSVF_1_1Options_html_abae23cb06d932f93900f627813b9f4a4"><div class="ttname"><a href="classSVF_1_1Options.html#abae23cb06d932f93900f627813b9f4a4">SVF::Options::StatBudget</a></div><div class="ttdeci">static const llvm::cl::opt&lt; unsigned &gt; StatBudget</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00097">Options.h:97</a></div></div>
72
72
  <div class="ttc" id="classSVF_1_1Options_html_affd0cb6e0cb91e096537a3d3198bf4e5"><div class="ttname"><a href="classSVF_1_1Options.html#affd0cb6e0cb91e096537a3d3198bf4e5">SVF::Options::TypePrint</a></div><div class="ttdeci">static const llvm::cl::opt&lt; bool &gt; TypePrint</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00092">Options.h:92</a></div></div>
73
73
  <div class="ttc" id="classSVF_1_1PointerAnalysis_html_a0e09e07ee52ba605dc386ae1d7b965e2"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a0e09e07ee52ba605dc386ae1d7b965e2">SVF::PointerAnalysis::getVFnsFromCHA</a></div><div class="ttdeci">void getVFnsFromCHA(const CallBlockNode *cs, VFunSet &amp;vfns)</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8cpp_source.html#l00498">PointerAnalysis.cpp:498</a></div></div>
74
- <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a2e08ce822223842fa6a73fd659b1a526"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a2e08ce822223842fa6a73fd659b1a526">SVF::SVFUtil::isCallSite</a></div><div class="ttdeci">bool isCallSite(const Instruction *inst)</div><div class="ttdoc">Whether an instruction is a call or invoke instruction. </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00157">SVFUtil.h:157</a></div></div>
74
+ <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a2e08ce822223842fa6a73fd659b1a526"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a2e08ce822223842fa6a73fd659b1a526">SVF::SVFUtil::isCallSite</a></div><div class="ttdeci">bool isCallSite(const Instruction *inst)</div><div class="ttdoc">Whether an instruction is a call or invoke instruction. </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00190">SVFUtil.h:190</a></div></div>
75
75
  <div class="ttc" id="classSVF_1_1GenericGraph_html_a0d9744b1b0e7a09a6f7af29188e243b7"><div class="ttname"><a href="classSVF_1_1GenericGraph.html#a0d9744b1b0e7a09a6f7af29188e243b7">SVF::GenericGraph::begin</a></div><div class="ttdeci">iterator begin()</div><div class="ttdoc">Iterators. </div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00365">GenericGraph.h:365</a></div></div>
76
76
  <div class="ttc" id="classSVF_1_1Options_html_a113ee30422ef08b6790eed9a83277b9c"><div class="ttname"><a href="classSVF_1_1Options.html#a113ee30422ef08b6790eed9a83277b9c">SVF::Options::PTSAllPrint</a></div><div class="ttdeci">static const llvm::cl::opt&lt; bool &gt; PTSAllPrint</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00095">Options.h:95</a></div></div>
77
77
  <div class="ttc" id="classSVF_1_1PointerAnalysis_html_a60b111647e000cc983aa52513f90afbc"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a60b111647e000cc983aa52513f90afbc">SVF::PointerAnalysis::getAllValidPtrs</a></div><div class="ttdeci">OrderedNodeSet &amp; getAllValidPtrs()</div><div class="ttdoc">Get all Valid Pointers for resolution. </div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00221">PointerAnalysis.h:221</a></div></div>
@@ -95,7 +95,7 @@ $(function() {
95
95
  <div class="ttc" id="classSVF_1_1PointerAnalysis_html_a8ff3f219b9f118a4f06360750408c9cb"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a8ff3f219b9f118a4f06360750408c9cb">SVF::PointerAnalysis::connectVCallToVFns</a></div><div class="ttdeci">void connectVCallToVFns(const CallBlockNode *cs, const VFunSet &amp;vfns, CallEdgeMap &amp;newEdges)</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8cpp_source.html#l00533">PointerAnalysis.cpp:533</a></div></div>
96
96
  <div class="ttc" id="namespaceSVF_html_a1d008c0666c145622b81d427be64c52d"><div class="ttname"><a href="namespaceSVF.html#a1d008c0666c145622b81d427be64c52d">SVF::Type</a></div><div class="ttdeci">llvm::Type Type</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00075">BasicTypes.h:75</a></div></div>
97
97
  <div class="ttc" id="classSVF_1_1PointerAnalysis_html_ab83b827ea42d3a61aad20b1a1485d866"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#ab83b827ea42d3a61aad20b1a1485d866">SVF::PointerAnalysis::dumpStat</a></div><div class="ttdeci">void dumpStat()</div><div class="ttdoc">Dump the statistics. </div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8cpp_source.html#l00209">PointerAnalysis.cpp:209</a></div></div>
98
- <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a142e650415cb81011eb59dadd3cb0637"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a142e650415cb81011eb59dadd3cb0637">SVF::SVFUtil::getDefFunForMultipleModule</a></div><div class="ttdeci">const SVFFunction * getDefFunForMultipleModule(const Function *fun)</div><div class="ttdoc">Get the definition of a function across multiple modules. </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00209">SVFUtil.h:209</a></div></div>
98
+ <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a142e650415cb81011eb59dadd3cb0637"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a142e650415cb81011eb59dadd3cb0637">SVF::SVFUtil::getDefFunForMultipleModule</a></div><div class="ttdeci">const SVFFunction * getDefFunForMultipleModule(const Function *fun)</div><div class="ttdoc">Get the definition of a function across multiple modules. </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00242">SVFUtil.h:242</a></div></div>
99
99
  <div class="ttc" id="classSVF_1_1ICFG_html_a7d10e8a815c836a070d35850f817a18c"><div class="ttname"><a href="classSVF_1_1ICFG.html#a7d10e8a815c836a070d35850f817a18c">SVF::ICFG::getCallBlockNode</a></div><div class="ttdeci">CallBlockNode * getCallBlockNode(const Instruction *inst)</div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8cpp_source.html#l00197">ICFG.cpp:197</a></div></div>
100
100
  <div class="ttc" id="classSVF_1_1PointerAnalysis_html_ac353221cc7aced590dcf3550a24b1570"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#ac353221cc7aced590dcf3550a24b1570">SVF::PointerAnalysis::aliasTestNoAlias</a></div><div class="ttdeci">static const std::string aliasTestNoAlias</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00118">PointerAnalysis.h:118</a></div></div>
101
101
  <div class="ttc" id="util_8h_html_a07d17d6d5d1074c0969bc5d3c3d1d84a"><div class="ttname"><a href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a></div><div class="ttdeci">#define assert(ex)</div><div class="ttdef"><b>Definition:</b> <a href="util_8h_source.html#l00141">util.h:141</a></div></div>
@@ -117,7 +117,7 @@ $(function() {
117
117
  <div class="ttc" id="classSVF_1_1PointerAnalysis_html_a3fd44d3cfc3f4ab18506870c65df32f5"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a3fd44d3cfc3f4ab18506870c65df32f5">SVF::PointerAnalysis::dumpGraph</a></div><div class="ttdeci">bool dumpGraph()</div><div class="ttdoc">Whether to dump the graph for debugging purpose. </div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8cpp_source.html#l00200">PointerAnalysis.cpp:200</a></div></div>
118
118
  <div class="ttc" id="classSVF_1_1PAG_html"><div class="ttname"><a href="classSVF_1_1PAG.html">SVF::PAG</a></div><div class="ttdef"><b>Definition:</b> <a href="PAG_8h_source.html#l00047">PAG.h:47</a></div></div>
119
119
  <div class="ttc" id="classSVF_1_1PointerAnalysis_html_aafa5df4aa576a144476e547b1da35795"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#aafa5df4aa576a144476e547b1da35795">SVF::PointerAnalysis::callGraphSCCDetection</a></div><div class="ttdeci">void callGraphSCCDetection()</div><div class="ttdoc">CallGraph SCC related methods. </div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00412">PointerAnalysis.h:412</a></div></div>
120
- <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a28c0ede7e4765d2a686fc8ae0f5641a4"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a28c0ede7e4765d2a686fc8ae0f5641a4">SVF::SVFUtil::getSourceLoc</a></div><div class="ttdeci">std::string getSourceLoc(const Value *val)</div><div class="ttdoc">Return source code including line number and file name from debug information. </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8cpp_source.html#l00258">SVFUtil.cpp:258</a></div></div>
120
+ <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a28c0ede7e4765d2a686fc8ae0f5641a4"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a28c0ede7e4765d2a686fc8ae0f5641a4">SVF::SVFUtil::getSourceLoc</a></div><div class="ttdeci">std::string getSourceLoc(const Value *val)</div><div class="ttdoc">Return source code including line number and file name from debug information. </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8cpp_source.html#l00260">SVFUtil.cpp:260</a></div></div>
121
121
  <div class="ttc" id="classSVF_1_1DCHGraph_html"><div class="ttname"><a href="classSVF_1_1DCHGraph.html">SVF::DCHGraph</a></div><div class="ttdoc">Dwarf based CHG. </div><div class="ttdef"><b>Definition:</b> <a href="DCHG_8h_source.html#l00208">DCHG.h:208</a></div></div>
122
122
  <div class="ttc" id="classSVF_1_1PAG_html_a2b288fce8efa1b0b1b620efec2c96eb6"><div class="ttname"><a href="classSVF_1_1PAG.html#a2b288fce8efa1b0b1b620efec2c96eb6">SVF::PAG::getObject</a></div><div class="ttdeci">const MemObj * getObject(NodeID id) const</div><div class="ttdef"><b>Definition:</b> <a href="PAG_8h_source.html#l00589">PAG.h:589</a></div></div>
123
123
  <div class="ttc" id="classSVF_1_1SVFValue_html_adc15c1f7a77158142156fba7524e89c9"><div class="ttname"><a href="classSVF_1_1SVFValue.html#adc15c1f7a77158142156fba7524e89c9">SVF::SVFValue::getName</a></div><div class="ttdeci">const llvm::StringRef getName() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00221">SVFBasicTypes.h:221</a></div></div>
@@ -128,7 +128,7 @@ $(function() {
128
128
  <div class="ttc" id="classSVF_1_1CallBlockNode_html_a5bab98a0b8cf0a804d53abd994e922c0"><div class="ttname"><a href="classSVF_1_1CallBlockNode.html#a5bab98a0b8cf0a804d53abd994e922c0">SVF::CallBlockNode::getCaller</a></div><div class="ttdeci">const SVFFunction * getCaller() const</div><div class="ttdoc">Return callsite. </div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00400">ICFGNode.h:400</a></div></div>
129
129
  <div class="ttc" id="classSVF_1_1CommonCHGraph_html_ae90f9a2152ab07aa0df16badd733f1fd"><div class="ttname"><a href="classSVF_1_1CommonCHGraph.html#ae90f9a2152ab07aa0df16badd733f1fd">SVF::CommonCHGraph::getCSVtblsBasedonCHA</a></div><div class="ttdeci">virtual const VTableSet &amp; getCSVtblsBasedonCHA(CallSite cs)=0</div></div>
130
130
  <div class="ttc" id="classSVF_1_1PAGNode_html_a45be6b7b2f1f9754ea47e511e65d46ae"><div class="ttname"><a href="classSVF_1_1PAGNode.html#a45be6b7b2f1f9754ea47e511e65d46ae">SVF::PAGNode::getValue</a></div><div class="ttdeci">const Value * getValue() const</div><div class="ttdoc">Get/has methods of the components. </div><div class="ttdef"><b>Definition:</b> <a href="PAGNode_8h_source.html#l00093">PAGNode.h:93</a></div></div>
131
- <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a6a55f1f8598998a3ffbbc67d32eaf8c4"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a6a55f1f8598998a3ffbbc67d32eaf8c4">SVF::SVFUtil::sucMsg</a></div><div class="ttdeci">std::string sucMsg(std::string msg)</div><div class="ttdoc">Returns successful message by converting a string into green string output. </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8cpp_source.html#l00053">SVFUtil.cpp:53</a></div></div>
131
+ <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a6a55f1f8598998a3ffbbc67d32eaf8c4"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a6a55f1f8598998a3ffbbc67d32eaf8c4">SVF::SVFUtil::sucMsg</a></div><div class="ttdeci">std::string sucMsg(std::string msg)</div><div class="ttdoc">Returns successful message by converting a string into green string output. </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8cpp_source.html#l00055">SVFUtil.cpp:55</a></div></div>
132
132
  <div class="ttc" id="classSVF_1_1PointerAnalysis_html_aa9661d26d1ae9c829a9296d1b6d874f4"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#aa9661d26d1ae9c829a9296d1b6d874f4">SVF::PointerAnalysis::CallEdgeMap</a></div><div class="ttdeci">OrderedMap&lt; const CallBlockNode *, FunctionSet &gt; CallEdgeMap</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00110">PointerAnalysis.h:110</a></div></div>
133
133
  <div class="ttc" id="classSVF_1_1CommonCHGraph_html_abe9232b9cada361e0434f7c4390a7864"><div class="ttname"><a href="classSVF_1_1CommonCHGraph.html#abe9232b9cada361e0434f7c4390a7864">SVF::CommonCHGraph::getCSVFsBasedonCHA</a></div><div class="ttdeci">virtual const VFunSet &amp; getCSVFsBasedonCHA(CallSite cs)=0</div></div>
134
134
  <div class="ttc" id="classSVF_1_1PointerAnalysis_html_afc320fbf269404fe128e69c98e6f9cac"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#afc320fbf269404fe128e69c98e6f9cac">SVF::PointerAnalysis::OnTheFlyIterBudgetForStat</a></div><div class="ttdeci">u32_t OnTheFlyIterBudgetForStat</div><div class="ttdoc">Flag for iteration budget for on-the-fly statistics. </div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00142">PointerAnalysis.h:142</a></div></div>
@@ -200,7 +200,7 @@ $(function() {
200
200
  <div class="ttc" id="classSVF_1_1MemObj_html_a65735220b56354f7b6c7ce6753f84e4b"><div class="ttname"><a href="classSVF_1_1MemObj.html#a65735220b56354f7b6c7ce6753f84e4b">SVF::MemObj::isStack</a></div><div class="ttdeci">bool isStack() const</div><div class="ttdef"><b>Definition:</b> <a href="MemModel_8h_source.html#l00368">MemModel.h:368</a></div></div>
201
201
  <div class="ttc" id="classSVF_1_1LLVMModuleSet_html_acf40310917909e4234282c0695a43160"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#acf40310917909e4234282c0695a43160">SVF::LLVMModuleSet::getLLVMModuleSet</a></div><div class="ttdeci">static LLVMModuleSet * getLLVMModuleSet()</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8h_source.html#l00069">LLVMModule.h:69</a></div></div>
202
202
  <div class="ttc" id="classSVF_1_1SVFFunction_html_ac4ae917ae35ac6fca652fe2dd90a8ac2"><div class="ttname"><a href="classSVF_1_1SVFFunction.html#ac4ae917ae35ac6fca652fe2dd90a8ac2">SVF::SVFFunction::getLLVMFun</a></div><div class="ttdeci">Function * getLLVMFun() const</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00249">BasicTypes.h:249</a></div></div>
203
- <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a202de7ad2bea0311e2f75894c030e7a9"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a202de7ad2bea0311e2f75894c030e7a9">SVF::SVFUtil::getLLVMCallSite</a></div><div class="ttdeci">CallSite getLLVMCallSite(const Instruction *inst)</div><div class="ttdoc">Return LLVM callsite given a instruction. </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00183">SVFUtil.h:183</a></div></div>
203
+ <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a202de7ad2bea0311e2f75894c030e7a9"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a202de7ad2bea0311e2f75894c030e7a9">SVF::SVFUtil::getLLVMCallSite</a></div><div class="ttdeci">CallSite getLLVMCallSite(const Instruction *inst)</div><div class="ttdoc">Return LLVM callsite given a instruction. </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00216">SVFUtil.h:216</a></div></div>
204
204
  <div class="ttc" id="classSVF_1_1Options_html_a485ec0be47c5e78bac4511d00687aee1"><div class="ttname"><a href="classSVF_1_1Options.html#a485ec0be47c5e78bac4511d00687aee1">SVF::Options::ConnectVCallOnCHA</a></div><div class="ttdeci">static const llvm::cl::opt&lt; bool &gt; ConnectVCallOnCHA</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00107">Options.h:107</a></div></div>
205
205
  <div class="ttc" id="classSVF_1_1Options_html_aea29a835c54fab800117e57de00e0b1e"><div class="ttname"><a href="classSVF_1_1Options.html#aea29a835c54fab800117e57de00e0b1e">SVF::Options::DumpICFG</a></div><div class="ttdeci">static const llvm::cl::opt&lt; bool &gt; DumpICFG</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00100">Options.h:100</a></div></div>
206
206
  <div class="ttc" id="classSVF_1_1PointerAnalysis_html_aa7f15c74eb438be78fcc028534477478"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#aa7f15c74eb438be78fcc028534477478">SVF::PointerAnalysis::VFunSet</a></div><div class="ttdeci">Set&lt; const SVFFunction * &gt; VFunSet</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00113">PointerAnalysis.h:113</a></div></div>
@@ -211,7 +211,7 @@ $(function() {
211
211
  <div class="ttc" id="classSVF_1_1PointerAnalysis_html_a4aeca84393c5586eea7a480737daf17c"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a4aeca84393c5586eea7a480737daf17c">SVF::PointerAnalysis::~PointerAnalysis</a></div><div class="ttdeci">virtual ~PointerAnalysis()</div><div class="ttdoc">Destructor. </div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8cpp_source.html#l00090">PointerAnalysis.cpp:90</a></div></div>
212
212
  <div class="ttc" id="classSVF_1_1CallSite_html"><div class="ttname"><a href="classSVF_1_1CallSite.html">SVF::CallSite</a></div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00313">BasicTypes.h:313</a></div></div>
213
213
  <div class="ttc" id="classSVF_1_1GenericNode_html_ac3e55ef37aefb411ea4c87b1aa3b1895"><div class="ttname"><a href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">SVF::GenericNode::getId</a></div><div class="ttdeci">NodeID getId() const</div><div class="ttdoc">Get ID. </div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00164">GenericGraph.h:164</a></div></div>
214
- <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a4f457db1cfa0d4f94762a306c0ac3757"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a4f457db1cfa0d4f94762a306c0ac3757">SVF::SVFUtil::getFunction</a></div><div class="ttdeci">const SVFFunction * getFunction(StringRef name)</div><div class="ttdoc">Get the corresponding Function based on its name. </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00191">SVFUtil.h:191</a></div></div>
214
+ <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a4f457db1cfa0d4f94762a306c0ac3757"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a4f457db1cfa0d4f94762a306c0ac3757">SVF::SVFUtil::getFunction</a></div><div class="ttdeci">const SVFFunction * getFunction(StringRef name)</div><div class="ttdoc">Get the corresponding Function based on its name. </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00224">SVFUtil.h:224</a></div></div>
215
215
  <div class="ttc" id="classSVF_1_1Options_html_a98df022c5da54ea30b3f0ce008d3ca80"><div class="ttname"><a href="classSVF_1_1Options.html#a98df022c5da54ea30b3f0ce008d3ca80">SVF::Options::PAGPrint</a></div><div class="ttdeci">static const llvm::cl::opt&lt; bool &gt; PAGPrint</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00102">Options.h:102</a></div></div>
216
216
  <div class="ttc" id="classSVF_1_1ExternalPAG_html_acee9fa409f3649dcf2c0f5e6da66ceb0"><div class="ttname"><a href="classSVF_1_1ExternalPAG.html#acee9fa409f3649dcf2c0f5e6da66ceb0">SVF::ExternalPAG::dumpFunctions</a></div><div class="ttdeci">static void dumpFunctions(std::vector&lt; std::string &gt; functions)</div><div class="ttdoc">Dump individual PAGs of specified functions. Currently to outs(). </div><div class="ttdef"><b>Definition:</b> <a href="ExternalPAG_8cpp_source.html#l00256">ExternalPAG.cpp:256</a></div></div>
217
217
  <div class="ttc" id="classSVF_1_1PointerAnalysis_html_a5d3c3094e263bf16a4f312a118c1bd36"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a5d3c3094e263bf16a4f312a118c1bd36">SVF::PointerAnalysis::ptaImplTy</a></div><div class="ttdeci">PTAImplTy ptaImplTy</div><div class="ttdoc">PTA implementation type. </div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00152">PointerAnalysis.h:152</a></div></div>
@@ -226,11 +226,11 @@ $(function() {
226
226
  <div class="ttc" id="classSVF_1_1PAG_html_aa432bbc7c4e83abecdc8706972a9635b"><div class="ttname"><a href="classSVF_1_1PAG.html#aa432bbc7c4e83abecdc8706972a9635b">SVF::PAG::print</a></div><div class="ttdeci">void print()</div><div class="ttdoc">Print PAG. </div><div class="ttdef"><b>Definition:</b> <a href="PAG_8cpp_source.html#l00887">PAG.cpp:887</a></div></div>
227
227
  <div class="ttc" id="classSVF_1_1Options_html_afb6fabc25c0d7f9e9d1708ce648797fc"><div class="ttname"><a href="classSVF_1_1Options.html#afb6fabc25c0d7f9e9d1708ce648797fc">SVF::Options::UsePreCompFieldSensitive</a></div><div class="ttdeci">static const llvm::cl::opt&lt; bool &gt; UsePreCompFieldSensitive</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00104">Options.h:104</a></div></div>
228
228
  <div class="ttc" id="classSVF_1_1SVFModule_html_a1357c876eccedd58b3abe68875b3a570"><div class="ttname"><a href="classSVF_1_1SVFModule.html#a1357c876eccedd58b3abe68875b3a570">SVF::SVFModule::pagReadFromTXT</a></div><div class="ttdeci">static bool pagReadFromTXT()</div><div class="ttdef"><b>Definition:</b> <a href="SVFModule_8h_source.html#l00082">SVFModule.h:82</a></div></div>
229
- <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a6c06020737f7dff22a666b75c28c5e7d"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a6c06020737f7dff22a666b75c28c5e7d">SVF::SVFUtil::wrnMsg</a></div><div class="ttdeci">std::string wrnMsg(std::string msg)</div><div class="ttdoc">Returns warning message by converting a string into yellow string output. </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8cpp_source.html#l00061">SVFUtil.cpp:61</a></div></div>
229
+ <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a6c06020737f7dff22a666b75c28c5e7d"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a6c06020737f7dff22a666b75c28c5e7d">SVF::SVFUtil::wrnMsg</a></div><div class="ttdeci">std::string wrnMsg(std::string msg)</div><div class="ttdoc">Returns warning message by converting a string into yellow string output. </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8cpp_source.html#l00063">SVFUtil.cpp:63</a></div></div>
230
230
  <div class="ttc" id="classSVF_1_1PointerAnalysis_html_a3550ea3f087ec557a6fe076bc443b05d"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a3550ea3f087ec557a6fe076bc443b05d">SVF::PointerAnalysis::print_stat</a></div><div class="ttdeci">bool print_stat</div><div class="ttdoc">User input flags. </div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00138">PointerAnalysis.h:138</a></div></div>
231
231
  <div class="ttc" id="classSVF_1_1CallBlockNode_html"><div class="ttname"><a href="classSVF_1_1CallBlockNode.html">SVF::CallBlockNode</a></div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00364">ICFGNode.h:364</a></div></div>
232
232
  <div class="ttc" id="classSVF_1_1PointerAnalysis_html_a73fb8e595473e0c7df1dd0de4968ad13"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a73fb8e595473e0c7df1dd0de4968ad13">SVF::PointerAnalysis::resetObjFieldSensitive</a></div><div class="ttdeci">void resetObjFieldSensitive()</div><div class="ttdoc">Reset all object node as field-sensitive. </div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8cpp_source.html#l00188">PointerAnalysis.cpp:188</a></div></div>
233
- <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a5d4bb92f5df30417f414397f8e58cf01"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a5d4bb92f5df30417f414397f8e58cf01">SVF::SVFUtil::errMsg</a></div><div class="ttdeci">std::string errMsg(std::string msg)</div><div class="ttdoc">Print error message by converting a string into red string output. </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8cpp_source.html#l00075">SVFUtil.cpp:75</a></div></div>
233
+ <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a5d4bb92f5df30417f414397f8e58cf01"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a5d4bb92f5df30417f414397f8e58cf01">SVF::SVFUtil::errMsg</a></div><div class="ttdeci">std::string errMsg(std::string msg)</div><div class="ttdoc">Print error message by converting a string into red string output. </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8cpp_source.html#l00077">SVFUtil.cpp:77</a></div></div>
234
234
  <div class="ttc" id="classSVF_1_1CommonCHGraph_html"><div class="ttname"><a href="classSVF_1_1CommonCHGraph.html">SVF::CommonCHGraph</a></div><div class="ttdoc">Common base for class hierarchy graph. Only implements what PointerAnalysis needs. </div><div class="ttdef"><b>Definition:</b> <a href="CommonCHG_8h_source.html#l00021">CommonCHG.h:21</a></div></div>
235
235
  <div class="ttc" id="classSVF_1_1PointerAnalysis_html_aed4e5066f6ddef83afaf60adbcc11de0"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#aed4e5066f6ddef83afaf60adbcc11de0">SVF::PointerAnalysis::PTAName</a></div><div class="ttdeci">virtual const std::string PTAName() const</div><div class="ttdoc">Return PTA name. </div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00440">PointerAnalysis.h:440</a></div></div>
236
236
  <div class="ttc" id="classSVF_1_1PTACallGraph_html_ac695d78f0a78e2e5f1fb4f93264e52b8"><div class="ttname"><a href="classSVF_1_1PTACallGraph.html#ac695d78f0a78e2e5f1fb4f93264e52b8">SVF::PTACallGraph::verifyCallGraph</a></div><div class="ttdeci">void verifyCallGraph()</div><div class="ttdoc">Issue a warning if the function which has indirect call sites can not be reached from program entry...</div><div class="ttdef"><b>Definition:</b> <a href="PTACallGraph_8cpp_source.html#l00263">PTACallGraph.cpp:263</a></div></div>
@@ -77,7 +77,7 @@ $(function() {
77
77
  <div class="ttc" id="classSVF_1_1SaberAnnotator_html_aa9446af29edf126ad30bbada51478c13"><div class="ttname"><a href="classSVF_1_1SaberAnnotator.html#aa9446af29edf126ad30bbada51478c13">SVF::SaberAnnotator::annotateSource</a></div><div class="ttdeci">void annotateSource()</div><div class="ttdoc">Annotation. </div><div class="ttdef"><b>Definition:</b> <a href="SaberAnnotator_8cpp_source.html#l00038">SaberAnnotator.cpp:38</a></div></div>
78
78
  <div class="ttc" id="classSVF_1_1PHIVFGNode_html"><div class="ttname"><a href="classSVF_1_1PHIVFGNode.html">SVF::PHIVFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="VFGNode_8h_source.html#l00573">VFGNode.h:573</a></div></div>
79
79
  <div class="ttc" id="classSVF_1_1ProgSlice_html_afac06b0be2b04cb8a65af21fd697b756"><div class="ttname"><a href="classSVF_1_1ProgSlice.html#afac06b0be2b04cb8a65af21fd697b756">SVF::ProgSlice::evalFinalCond</a></div><div class="ttdeci">std::string evalFinalCond() const</div><div class="ttdoc">Evaluate final condition. </div><div class="ttdef"><b>Definition:</b> <a href="ProgSlice_8cpp_source.html#l00197">ProgSlice.cpp:197</a></div></div>
80
- <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a28c0ede7e4765d2a686fc8ae0f5641a4"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a28c0ede7e4765d2a686fc8ae0f5641a4">SVF::SVFUtil::getSourceLoc</a></div><div class="ttdeci">std::string getSourceLoc(const Value *val)</div><div class="ttdoc">Return source code including line number and file name from debug information. </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8cpp_source.html#l00258">SVFUtil.cpp:258</a></div></div>
80
+ <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a28c0ede7e4765d2a686fc8ae0f5641a4"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a28c0ede7e4765d2a686fc8ae0f5641a4">SVF::SVFUtil::getSourceLoc</a></div><div class="ttdeci">std::string getSourceLoc(const Value *val)</div><div class="ttdoc">Return source code including line number and file name from debug information. </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8cpp_source.html#l00260">SVFUtil.cpp:260</a></div></div>
81
81
  <div class="ttc" id="classSVF_1_1ProgSlice_html_a899332b210414ac991b57e83851ee5be"><div class="ttname"><a href="classSVF_1_1ProgSlice.html#a899332b210414ac991b57e83851ee5be">SVF::ProgSlice::destroy</a></div><div class="ttdeci">void destroy()</div><div class="ttdoc">Release memory. </div><div class="ttdef"><b>Definition:</b> <a href="ProgSlice_8cpp_source.html#l00243">ProgSlice.cpp:243</a></div></div>
82
82
  <div class="ttc" id="classSVF_1_1CallDirSVFGEdge_html"><div class="ttname"><a href="classSVF_1_1CallDirSVFGEdge.html">SVF::CallDirSVFGEdge</a></div><div class="ttdef"><b>Definition:</b> <a href="VFGEdge_8h_source.html#l00211">VFGEdge.h:211</a></div></div>
83
83
  <div class="ttc" id="classSVF_1_1CondExpr_html"><div class="ttname"><a href="classSVF_1_1CondExpr.html">SVF::CondExpr</a></div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00042">Conditions.h:42</a></div></div>
@@ -72,29 +72,29 @@ $(function() {
72
72
  <div class="ttc" id="classSVF_1_1SVFGBuilder_html_a7a43ae081645eb74fa48c136548f0809"><div class="ttname"><a href="classSVF_1_1SVFGBuilder.html#a7a43ae081645eb74fa48c136548f0809">SVF::SVFGBuilder::buildFullSVFGWithoutOPT</a></div><div class="ttdeci">SVFG * buildFullSVFGWithoutOPT(BVDataPTAImpl *pta)</div><div class="ttdef"><b>Definition:</b> <a href="SVFGBuilder_8cpp_source.html#l00059">SVFGBuilder.cpp:59</a></div></div>
73
73
  <div class="ttc" id="classSVF_1_1SVFGBuilder_html_a47591192260ddc3ff0717430f127cc95"><div class="ttname"><a href="classSVF_1_1SVFGBuilder.html#a47591192260ddc3ff0717430f127cc95">SVF::SVFGBuilder::build</a></div><div class="ttdeci">SVFG * build(BVDataPTAImpl *pta, VFG::VFGK kind)</div><div class="ttdoc">Create a DDA SVFG. By default actualOut and FormalIN are removed, unless withAOFI is set true...</div><div class="ttdef"><b>Definition:</b> <a href="SVFGBuilder_8cpp_source.html#l00077">SVFGBuilder.cpp:77</a></div></div>
74
74
  <div class="ttc" id="classSVF_1_1SVFGBuilder_html_a3b162da8dfb123cada7a13ce0c154a46"><div class="ttname"><a href="classSVF_1_1SVFGBuilder.html#a3b162da8dfb123cada7a13ce0c154a46">SVF::SVFGBuilder::buildPTROnlySVFGWithoutOPT</a></div><div class="ttdeci">SVFG * buildPTROnlySVFGWithoutOPT(BVDataPTAImpl *pta)</div><div class="ttdef"><b>Definition:</b> <a href="SVFGBuilder_8cpp_source.html#l00049">SVFGBuilder.cpp:49</a></div></div>
75
- <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a609eea630a8f88fe9eaba15ce7e48738"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a609eea630a8f88fe9eaba15ce7e48738">SVF::SVFUtil::pasMsg</a></div><div class="ttdeci">std::string pasMsg(std::string msg)</div><div class="ttdoc">Print each pass/phase message by converting a string into blue string output. </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8cpp_source.html#l00098">SVFUtil.cpp:98</a></div></div>
75
+ <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a609eea630a8f88fe9eaba15ce7e48738"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a609eea630a8f88fe9eaba15ce7e48738">SVF::SVFUtil::pasMsg</a></div><div class="ttdeci">std::string pasMsg(std::string msg)</div><div class="ttdoc">Print each pass/phase message by converting a string into blue string output. </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8cpp_source.html#l00100">SVFUtil.cpp:100</a></div></div>
76
76
  <div class="ttc" id="classSVF_1_1SVFModule_html_a5486697889c6cca4f9f426650defc255"><div class="ttname"><a href="classSVF_1_1SVFModule.html#a5486697889c6cca4f9f426650defc255">SVF::SVFModule::begin</a></div><div class="ttdeci">iterator begin()</div><div class="ttdef"><b>Definition:</b> <a href="SVFModule_8h_source.html#l00136">SVFModule.h:136</a></div></div>
77
77
  <div class="ttc" id="classSVF_1_1VFG_html_ac2e2f555975063da3fa1932ac35802c6a5a28e6fd51e73e076091d4b6f4e61eaa"><div class="ttname"><a href="classSVF_1_1VFG.html#ac2e2f555975063da3fa1932ac35802c6a5a28e6fd51e73e076091d4b6f4e61eaa">SVF::VFG::FULLSVFG</a></div><div class="ttdef"><b>Definition:</b> <a href="VFG_8h_source.html#l00055">VFG.h:55</a></div></div>
78
78
  <div class="ttc" id="classSVF_1_1SVFGBuilder_html_a54a713e3989597b11cee70864d0197bd"><div class="ttname"><a href="classSVF_1_1SVFGBuilder.html#a54a713e3989597b11cee70864d0197bd">SVF::SVFGBuilder::buildFullSVFG</a></div><div class="ttdeci">SVFG * buildFullSVFG(BVDataPTAImpl *pta)</div><div class="ttdef"><b>Definition:</b> <a href="SVFGBuilder_8cpp_source.html#l00054">SVFGBuilder.cpp:54</a></div></div>
79
79
  <div class="ttc" id="classSVF_1_1VFG_html_ac2e2f555975063da3fa1932ac35802c6ada8562b20e8d888a4b421c200957294d"><div class="ttname"><a href="classSVF_1_1VFG.html#ac2e2f555975063da3fa1932ac35802c6ada8562b20e8d888a4b421c200957294d">SVF::VFG::PTRONLYSVFG</a></div><div class="ttdef"><b>Definition:</b> <a href="VFG_8h_source.html#l00055">VFG.h:55</a></div></div>
80
80
  <div class="ttc" id="classSVF_1_1SVFGBuilder_html_a6e08e6a99f7e743abf35e603e35e54f5"><div class="ttname"><a href="classSVF_1_1SVFGBuilder.html#a6e08e6a99f7e743abf35e603e35e54f5">SVF::SVFGBuilder::releaseMemory</a></div><div class="ttdeci">virtual void releaseMemory()</div><div class="ttdoc">Release global SVFG. </div><div class="ttdef"><b>Definition:</b> <a href="SVFGBuilder_8cpp_source.html#l00117">SVFGBuilder.cpp:117</a></div></div>
81
- <div class="ttc" id="classSVF_1_1MemSSA_html_a9f9ac433d9c9348ceb5be8893d814ebd"><div class="ttname"><a href="classSVF_1_1MemSSA.html#a9f9ac433d9c9348ceb5be8893d814ebd">SVF::MemSSA::dumpMSSA</a></div><div class="ttdeci">void dumpMSSA(raw_ostream &amp;Out=SVFUtil::outs())</div><div class="ttdoc">Print Memory SSA. </div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8cpp_source.html#l00590">MemSSA.cpp:590</a></div></div>
81
+ <div class="ttc" id="classSVF_1_1MemSSA_html_a9f9ac433d9c9348ceb5be8893d814ebd"><div class="ttname"><a href="classSVF_1_1MemSSA.html#a9f9ac433d9c9348ceb5be8893d814ebd">SVF::MemSSA::dumpMSSA</a></div><div class="ttdeci">void dumpMSSA(raw_ostream &amp;Out=SVFUtil::outs())</div><div class="ttdoc">Print Memory SSA. </div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8cpp_source.html#l00595">MemSSA.cpp:595</a></div></div>
82
82
  <div class="ttc" id="classSVF_1_1SVFFunction_html"><div class="ttname"><a href="classSVF_1_1SVFFunction.html">SVF::SVFFunction</a></div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00233">BasicTypes.h:233</a></div></div>
83
83
  <div class="ttc" id="SVFGBuilder_8h_html"><div class="ttname"><a href="SVFGBuilder_8h.html">SVFGBuilder.h</a></div></div>
84
84
  <div class="ttc" id="classSVF_1_1PointerAnalysis_html_a4880571f57542afc50da506dfe273183"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a4880571f57542afc50da506dfe273183">SVF::PointerAnalysis::printStat</a></div><div class="ttdeci">bool printStat()</div><div class="ttdoc">Whether print statistics. </div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00377">PointerAnalysis.h:377</a></div></div>
85
85
  <div class="ttc" id="SVFG_8h_html"><div class="ttname"><a href="SVFG_8h.html">SVFG.h</a></div></div>
86
86
  <div class="ttc" id="classSVF_1_1SVFModule_html"><div class="ttname"><a href="classSVF_1_1SVFModule.html">SVF::SVFModule</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFModule_8h_source.html#l00038">SVFModule.h:38</a></div></div>
87
- <div class="ttc" id="classSVF_1_1MemSSADF_html"><div class="ttname"><a href="classSVF_1_1MemSSADF.html">SVF::MemSSADF</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFGBuilder_8h_source.html#l00041">SVFGBuilder.h:41</a></div></div>
88
- <div class="ttc" id="classSVF_1_1SVFGBuilder_html_a31b754a303116f33d679dfcd886c4bed"><div class="ttname"><a href="classSVF_1_1SVFGBuilder.html#a31b754a303116f33d679dfcd886c4bed">SVF::SVFGBuilder::globalSvfg</a></div><div class="ttdeci">static SVFG * globalSvfg</div><div class="ttdef"><b>Definition:</b> <a href="SVFGBuilder_8h_source.html#l00073">SVFGBuilder.h:73</a></div></div>
89
- <div class="ttc" id="classSVF_1_1MemSSADF_html_a050e6010673cb24d4ef689100213594b"><div class="ttname"><a href="classSVF_1_1MemSSADF.html#a050e6010673cb24d4ef689100213594b">SVF::MemSSADF::runOnDT</a></div><div class="ttdeci">bool runOnDT(DominatorTree &amp;dt)</div><div class="ttdef"><b>Definition:</b> <a href="SVFGBuilder_8h_source.html#l00047">SVFGBuilder.h:47</a></div></div>
90
- <div class="ttc" id="classSVF_1_1MemSSA_html_ae56d1878046c119d1857727ca3609d74"><div class="ttname"><a href="classSVF_1_1MemSSA.html#ae56d1878046c119d1857727ca3609d74">SVF::MemSSA::buildMemSSA</a></div><div class="ttdeci">virtual void buildMemSSA(const SVFFunction &amp;fun, DominanceFrontier *, DominatorTree *)</div><div class="ttdoc">We start from here. </div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8cpp_source.html#l00087">MemSSA.cpp:87</a></div></div>
87
+ <div class="ttc" id="classSVF_1_1MemSSADF_html"><div class="ttname"><a href="classSVF_1_1MemSSADF.html">SVF::MemSSADF</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFGBuilder_8h_source.html#l00042">SVFGBuilder.h:42</a></div></div>
88
+ <div class="ttc" id="classSVF_1_1SVFGBuilder_html_a31b754a303116f33d679dfcd886c4bed"><div class="ttname"><a href="classSVF_1_1SVFGBuilder.html#a31b754a303116f33d679dfcd886c4bed">SVF::SVFGBuilder::globalSvfg</a></div><div class="ttdeci">static SVFG * globalSvfg</div><div class="ttdef"><b>Definition:</b> <a href="SVFGBuilder_8h_source.html#l00074">SVFGBuilder.h:74</a></div></div>
89
+ <div class="ttc" id="classSVF_1_1MemSSADF_html_a050e6010673cb24d4ef689100213594b"><div class="ttname"><a href="classSVF_1_1MemSSADF.html#a050e6010673cb24d4ef689100213594b">SVF::MemSSADF::runOnDT</a></div><div class="ttdeci">bool runOnDT(DominatorTree &amp;dt)</div><div class="ttdef"><b>Definition:</b> <a href="SVFGBuilder_8h_source.html#l00048">SVFGBuilder.h:48</a></div></div>
90
+ <div class="ttc" id="classSVF_1_1MemSSA_html_ae56d1878046c119d1857727ca3609d74"><div class="ttname"><a href="classSVF_1_1MemSSA.html#ae56d1878046c119d1857727ca3609d74">SVF::MemSSA::buildMemSSA</a></div><div class="ttdeci">virtual void buildMemSSA(const SVFFunction &amp;fun, DominanceFrontier *, DominatorTree *)</div><div class="ttdoc">We start from here. </div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8cpp_source.html#l00092">MemSSA.cpp:92</a></div></div>
91
91
  <div class="ttc" id="classSVF_1_1SVFGBuilder_html_ab7353191edd06568e2598177d253c1d9"><div class="ttname"><a href="classSVF_1_1SVFGBuilder.html#ab7353191edd06568e2598177d253c1d9">SVF::SVFGBuilder::buildPTROnlySVFG</a></div><div class="ttdeci">SVFG * buildPTROnlySVFG(BVDataPTAImpl *pta)</div><div class="ttdef"><b>Definition:</b> <a href="SVFGBuilder_8cpp_source.html#l00044">SVFGBuilder.cpp:44</a></div></div>
92
92
  <div class="ttc" id="classSVF_1_1PointerAnalysis_html_ad8b71cebf46deaf60e2cd4f6d6bb9433"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#ad8b71cebf46deaf60e2cd4f6d6bb9433">SVF::PointerAnalysis::getModule</a></div><div class="ttdeci">SVFModule * getModule() const</div><div class="ttdoc">Module. </div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00216">PointerAnalysis.h:216</a></div></div>
93
93
  <div class="ttc" id="classSVF_1_1SVFGBuilder_html_a49cee21be46d6a3f65eec638714038ed"><div class="ttname"><a href="classSVF_1_1SVFGBuilder.html#a49cee21be46d6a3f65eec638714038ed">SVF::SVFGBuilder::buildMSSA</a></div><div class="ttdeci">virtual MemSSA * buildMSSA(BVDataPTAImpl *pta, bool ptrOnlyMSSA)</div><div class="ttdoc">Build Memory SSA. </div><div class="ttdef"><b>Definition:</b> <a href="SVFGBuilder_8cpp_source.html#l00122">SVFGBuilder.cpp:122</a></div></div>
94
94
  <div class="ttc" id="MemSSA_8h_html"><div class="ttname"><a href="MemSSA_8h.html">MemSSA.h</a></div></div>
95
95
  <div class="ttc" id="classSVF_1_1MemSSA_html"><div class="ttname"><a href="classSVF_1_1MemSSA.html">SVF::MemSSA</a></div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00046">MemSSA.h:46</a></div></div>
96
96
  <div class="ttc" id="classSVF_1_1Options_html_a982b4cd71ccafd07d94f10a0a2e953c2"><div class="ttname"><a href="classSVF_1_1Options.html#a982b4cd71ccafd07d94f10a0a2e953c2">SVF::Options::SVFGWithIndirectCall</a></div><div class="ttdeci">static const llvm::cl::opt&lt; bool &gt; SVFGWithIndirectCall</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00122">Options.h:122</a></div></div>
97
- <div class="ttc" id="classSVF_1_1MemSSA_html_a89c40c8fad70f3aead6531261e5a3cc3"><div class="ttname"><a href="classSVF_1_1MemSSA.html#a89c40c8fad70f3aead6531261e5a3cc3">SVF::MemSSA::performStat</a></div><div class="ttdeci">void performStat()</div><div class="ttdoc">Perform statistics. </div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8cpp_source.html#l00463">MemSSA.cpp:463</a></div></div>
97
+ <div class="ttc" id="classSVF_1_1MemSSA_html_a89c40c8fad70f3aead6531261e5a3cc3"><div class="ttname"><a href="classSVF_1_1MemSSA.html#a89c40c8fad70f3aead6531261e5a3cc3">SVF::MemSSA::performStat</a></div><div class="ttdeci">void performStat()</div><div class="ttdoc">Perform statistics. </div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8cpp_source.html#l00468">MemSSA.cpp:468</a></div></div>
98
98
  <div class="ttc" id="classSVF_1_1VFG_html_ac2e2f555975063da3fa1932ac35802c6a8ed0b9aea88fbbbe91f33301bea0c9dd"><div class="ttname"><a href="classSVF_1_1VFG.html#ac2e2f555975063da3fa1932ac35802c6a8ed0b9aea88fbbbe91f33301bea0c9dd">SVF::VFG::PTRONLYSVFG_OPT</a></div><div class="ttdef"><b>Definition:</b> <a href="VFG_8h_source.html#l00055">VFG.h:55</a></div></div>
99
99
  <div class="ttc" id="classSVF_1_1Options_html_a3061c75f7491dd737222b1b877721070"><div class="ttname"><a href="classSVF_1_1Options.html#a3061c75f7491dd737222b1b877721070">SVF::Options::DumpVFG</a></div><div class="ttdeci">static const llvm::cl::opt&lt; bool &gt; DumpVFG</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00086">Options.h:86</a></div></div>
100
100
  <div class="ttc" id="namespaceSVF_html_aecbb42b8e9d17fa0189c50dda9fd5fdd"><div class="ttname"><a href="namespaceSVF.html#aecbb42b8e9d17fa0189c50dda9fd5fdd">SVF::DominatorTree</a></div><div class="ttdeci">llvm::DominatorTree DominatorTree</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00197">BasicTypes.h:197</a></div></div>
@@ -109,7 +109,7 @@ $(function() {
109
109
  <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="ContextDDA_8h_source.html#l00016">ContextDDA.h:16</a></div></div>
110
110
  <div class="ttc" id="classSVF_1_1SVFModule_html_a58d03edb6ff85f4943135478f113df31"><div class="ttname"><a href="classSVF_1_1SVFModule.html#a58d03edb6ff85f4943135478f113df31">SVF::SVFModule::end</a></div><div class="ttdeci">iterator end()</div><div class="ttdef"><b>Definition:</b> <a href="SVFModule_8h_source.html#l00144">SVFModule.h:144</a></div></div>
111
111
  <div class="ttc" id="SVFModule_8h_html"><div class="ttname"><a href="SVFModule_8h.html">SVFModule.h</a></div></div>
112
- <div class="ttc" id="classSVF_1_1MemSSA_html_ad40617a1907b9a6b8cc24888ce54a0ac"><div class="ttname"><a href="classSVF_1_1MemSSA.html#ad40617a1907b9a6b8cc24888ce54a0ac">SVF::MemSSA::getPTA</a></div><div class="ttdeci">BVDataPTAImpl * getPTA() const</div><div class="ttdoc">Return PTA. </div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00318">MemSSA.h:318</a></div></div>
112
+ <div class="ttc" id="classSVF_1_1MemSSA_html_ad40617a1907b9a6b8cc24888ce54a0ac"><div class="ttname"><a href="classSVF_1_1MemSSA.html#ad40617a1907b9a6b8cc24888ce54a0ac">SVF::MemSSA::getPTA</a></div><div class="ttdeci">BVDataPTAImpl * getPTA() const</div><div class="ttdoc">Return PTA. </div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00315">MemSSA.h:315</a></div></div>
113
113
  <div class="ttc" id="classSVF_1_1VFG_html_ac2e2f555975063da3fa1932ac35802c6"><div class="ttname"><a href="classSVF_1_1VFG.html#ac2e2f555975063da3fa1932ac35802c6">SVF::VFG::VFGK</a></div><div class="ttdeci">VFGK</div><div class="ttdoc">VFG kind. </div><div class="ttdef"><b>Definition:</b> <a href="VFG_8h_source.html#l00053">VFG.h:53</a></div></div>
114
114
  <div class="ttc" id="SVFBasicTypes_8h_html_a173ce1b9b505fdadf5613b663749d3b0"><div class="ttname"><a href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a></div><div class="ttdeci">#define DBOUT(TYPE, X)</div><div class="ttdoc">LLVM debug macros, define type of your DEBUG model of each pass. </div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00142">SVFBasicTypes.h:142</a></div></div>
115
115
  <div class="ttc" id="classSVF_1_1SVFModule_html_afcf2978f32e15127fb093405dc17d7f1"><div class="ttname"><a href="classSVF_1_1SVFModule.html#afcf2978f32e15127fb093405dc17d7f1">SVF::SVFModule::const_iterator</a></div><div class="ttdeci">FunctionSetType::const_iterator const_iterator</div><div class="ttdef"><b>Definition:</b> <a href="SVFModule_8h_source.html#l00049">SVFModule.h:49</a></div></div>
@@ -69,7 +69,8 @@ $(function() {
69
69
  <div class="title">SVFGBuilder.h File Reference</div> </div>
70
70
  </div><!--header-->
71
71
  <div class="contents">
72
- <div class="textblock"><code>#include &quot;<a class="el" href="SVFGOPT_8h_source.html">Graphs/SVFGOPT.h</a>&quot;</code><br />
72
+ <div class="textblock"><code>#include &quot;<a class="el" href="PointerAnalysis_8h_source.html">MemoryModel/PointerAnalysis.h</a>&quot;</code><br />
73
+ <code>#include &quot;<a class="el" href="SVFGOPT_8h_source.html">Graphs/SVFGOPT.h</a>&quot;</code><br />
73
74
  </div>
74
75
  <p><a href="SVFGBuilder_8h_source.html">Go to the source code of this file.</a></p>
75
76
  <table class="memberdecls">
@@ -66,37 +66,38 @@ $(function() {
66
66
  <div class="title">SVFGBuilder.h</div> </div>
67
67
  </div><!--header-->
68
68
  <div class="contents">
69
- <a href="SVFGBuilder_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">//===- SVFGBuilder.h -- Building SVFG-----------------------------------------//</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"> * AndersenMemSSA.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 27, 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 ANDERSENMEMSSA_H_</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor">#define ANDERSENMEMSSA_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="SVFGOPT_8h.html">Graphs/SVFGOPT.h</a>&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespaceSVF.html">SVF</a></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;{</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;</div><div class="line"><a name="l00041"></a><span class="lineno"><a class="line" href="classSVF_1_1MemSSADF.html"> 41</a></span>&#160;<span class="keyword">class </span><a class="code" href="classSVF_1_1MemSSADF.html">MemSSADF</a> : <span class="keyword">public</span> <a class="code" href="namespaceSVF.html#ab44d20f806be99699895260b14a942d7">DominanceFrontier</a></div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;{</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00044"></a><span class="lineno"><a class="line" href="classSVF_1_1MemSSADF.html#aabae3337a22fc441fd2fdc2cf30b009c"> 44</a></span>&#160; <a class="code" href="classSVF_1_1MemSSADF.html#aabae3337a22fc441fd2fdc2cf30b009c">MemSSADF</a>() : <a class="code" href="namespaceSVF.html#ab44d20f806be99699895260b14a942d7">DominanceFrontier</a>()</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; {}</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;</div><div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="classSVF_1_1MemSSADF.html#a050e6010673cb24d4ef689100213594b"> 47</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1MemSSADF.html#a050e6010673cb24d4ef689100213594b">runOnDT</a>(<a class="code" href="namespaceSVF.html#aecbb42b8e9d17fa0189c50dda9fd5fdd">DominatorTree</a>&amp; dt)</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; {</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; releaseMemory();</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; analyze(dt);</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; }</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;};</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;</div><div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFGBuilder.html"> 58</a></span>&#160;<span class="keyword">class </span><a class="code" href="classSVF_1_1SVFGBuilder.html">SVFGBuilder</a></div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;{</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00062"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFGBuilder.html#a77bc88750823c8a0d19aad002e56ce07"> 62</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="classSVF_1_1PointerAnalysis.html#a1f5f2ecf1e893759633ffec1b23d5650">PointerAnalysis::CallSiteSet</a> <a class="code" href="classSVF_1_1SVFGBuilder.html#a77bc88750823c8a0d19aad002e56ce07">CallSiteSet</a>;</div><div class="line"><a name="l00063"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFGBuilder.html#ae12f803f5ccdb47232043c8c5ae129bf"> 63</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="classSVF_1_1PointerAnalysis.html#aa9661d26d1ae9c829a9296d1b6d874f4">PointerAnalysis::CallEdgeMap</a> <a class="code" href="classSVF_1_1SVFGBuilder.html#ae12f803f5ccdb47232043c8c5ae129bf">CallEdgeMap</a>;</div><div class="line"><a name="l00064"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFGBuilder.html#a1f8e21823ddc9eb19e1fe18d9b2b8280"> 64</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="classSVF_1_1PointerAnalysis.html#ac1422cd8b449fdb4a1f7c539364e4c41">PointerAnalysis::FunctionSet</a> <a class="code" href="classSVF_1_1SVFGBuilder.html#a1f8e21823ddc9eb19e1fe18d9b2b8280">FunctionSet</a>;</div><div class="line"><a name="l00065"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFGBuilder.html#a640158fff237cb5afabdf1c5946550e0"> 65</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_1SVFGBuilder.html#a640158fff237cb5afabdf1c5946550e0">SVFGEdgeSet</a>;</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;</div><div class="line"><a name="l00068"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFGBuilder.html#a003c6d9e13e5f73e0648d97400f1854e"> 68</a></span>&#160; <a class="code" href="classSVF_1_1SVFGBuilder.html#a003c6d9e13e5f73e0648d97400f1854e">SVFGBuilder</a>(<span class="keywordtype">bool</span> _SVFGWithIndCall = <span class="keyword">false</span>): svfg(nullptr), SVFGWithIndCall(_SVFGWithIndCall) {}</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;</div><div class="line"><a name="l00071"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFGBuilder.html#af45232cbcffcaa4c7e05dab96553068f"> 71</a></span>&#160; <span class="keyword">virtual</span> <a class="code" href="classSVF_1_1SVFGBuilder.html#af45232cbcffcaa4c7e05dab96553068f">~SVFGBuilder</a>() {}</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;</div><div class="line"><a name="l00073"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFGBuilder.html#a31b754a303116f33d679dfcd886c4bed"> 73</a></span>&#160; <span class="keyword">static</span> <a class="code" href="classSVF_1_1SVFG.html">SVFG</a>* <a class="code" href="classSVF_1_1SVFGBuilder.html#a31b754a303116f33d679dfcd886c4bed">globalSvfg</a>;</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <a class="code" href="classSVF_1_1SVFG.html">SVFG</a>* buildPTROnlySVFG(<a class="code" href="classSVF_1_1BVDataPTAImpl.html">BVDataPTAImpl</a>* pta);</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <a class="code" href="classSVF_1_1SVFG.html">SVFG</a>* buildPTROnlySVFGWithoutOPT(<a class="code" href="classSVF_1_1BVDataPTAImpl.html">BVDataPTAImpl</a>* pta);</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; <a class="code" href="classSVF_1_1SVFG.html">SVFG</a>* buildFullSVFG(<a class="code" href="classSVF_1_1BVDataPTAImpl.html">BVDataPTAImpl</a>* pta);</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <a class="code" href="classSVF_1_1SVFG.html">SVFG</a>* buildFullSVFGWithoutOPT(<a class="code" href="classSVF_1_1BVDataPTAImpl.html">BVDataPTAImpl</a>* pta);</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;</div><div class="line"><a name="l00081"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFGBuilder.html#a9767f95253f02901da757076e3010b37"> 81</a></span>&#160; <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFGBuilder.html#a9767f95253f02901da757076e3010b37">releaseSVFG</a>()</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; {</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; <span class="keywordflow">if</span> (globalSvfg)</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <span class="keyword">delete</span> globalSvfg;</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; globalSvfg = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; }</div><div class="line"><a name="l00088"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFGBuilder.html#ad70dc4134a6290223b4168bde146b6d5"> 88</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="classSVF_1_1SVFG.html">SVFG</a>* <a class="code" href="classSVF_1_1SVFGBuilder.html#ad70dc4134a6290223b4168bde146b6d5">getSVFG</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <span class="keywordflow">return</span> svfg;</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; }</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;</div><div class="line"><a name="l00094"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFGBuilder.html#a3f8fc56d5190ea59d06906b359640dae"> 94</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFGBuilder.html#a3f8fc56d5190ea59d06906b359640dae">markValidVFEdge</a>(SVFGEdgeSet&amp; edges)</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; {</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <span class="keywordflow">for</span>(SVFGEdgeSet::iterator it = edges.begin(), eit = edges.end(); it!=eit; ++it)</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; vfEdgesAtIndCallSite.erase(*it);</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; }</div><div class="line"><a name="l00100"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFGBuilder.html#a9e8da6a516ed6598c66d81a0891fbb6e"> 100</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1SVFGBuilder.html#a9e8da6a516ed6598c66d81a0891fbb6e">isSpuriousVFEdgeAtIndCallSite</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGEdge.html">SVFGEdge</a>* edge)</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; {</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; <span class="keywordflow">return</span> vfEdgesAtIndCallSite.find(const_cast&lt;SVFGEdge*&gt;(edge))!=vfEdgesAtIndCallSite.end();</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; }</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; <span class="keyword">virtual</span> <a class="code" href="classSVF_1_1MemSSA.html">MemSSA</a>* buildMSSA(<a class="code" href="classSVF_1_1BVDataPTAImpl.html">BVDataPTAImpl</a>* pta, <span class="keywordtype">bool</span> ptrOnlyMSSA);</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;<span class="keyword">protected</span>:</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; <a class="code" href="classSVF_1_1SVFG.html">SVFG</a>* build(<a class="code" href="classSVF_1_1BVDataPTAImpl.html">BVDataPTAImpl</a>* pta, <a class="code" href="classSVF_1_1VFG.html#ac2e2f555975063da3fa1932ac35802c6">VFG::VFGK</a> kind);</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> buildSVFG();</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> releaseMemory();</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;</div><div class="line"><a name="l00117"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFGBuilder.html#aa9b432dd72f1a39be142c4e2c2d51247"> 117</a></span>&#160; SVFGEdgeSet <a class="code" href="classSVF_1_1SVFGBuilder.html#aa9b432dd72f1a39be142c4e2c2d51247">vfEdgesAtIndCallSite</a>;</div><div class="line"><a name="l00118"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFGBuilder.html#a26bc3b9c07472e454bc567cd8746caef"> 118</a></span>&#160; <a class="code" href="classSVF_1_1SVFG.html">SVFG</a>* <a class="code" href="classSVF_1_1SVFGBuilder.html#a26bc3b9c07472e454bc567cd8746caef">svfg</a>;</div><div class="line"><a name="l00120"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFGBuilder.html#a70de38086437635d2e44d2a0c9fdded9"> 120</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1SVFGBuilder.html#a70de38086437635d2e44d2a0c9fdded9">SVFGWithIndCall</a>;</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="l00123"></a><span class="lineno"> 123</span>&#160;} <span class="comment">// End namespace SVF</span></div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* ANDERSENMEMSSA_H_ */</span><span class="preprocessor"></span></div><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>
70
- <div class="ttc" id="classSVF_1_1SVFGBuilder_html_aa9b432dd72f1a39be142c4e2c2d51247"><div class="ttname"><a href="classSVF_1_1SVFGBuilder.html#aa9b432dd72f1a39be142c4e2c2d51247">SVF::SVFGBuilder::vfEdgesAtIndCallSite</a></div><div class="ttdeci">SVFGEdgeSet vfEdgesAtIndCallSite</div><div class="ttdoc">SVFG Edges connected at indirect call/ret sites. </div><div class="ttdef"><b>Definition:</b> <a href="SVFGBuilder_8h_source.html#l00117">SVFGBuilder.h:117</a></div></div>
71
- <div class="ttc" id="classSVF_1_1SVFGBuilder_html_a77bc88750823c8a0d19aad002e56ce07"><div class="ttname"><a href="classSVF_1_1SVFGBuilder.html#a77bc88750823c8a0d19aad002e56ce07">SVF::SVFGBuilder::CallSiteSet</a></div><div class="ttdeci">PointerAnalysis::CallSiteSet CallSiteSet</div><div class="ttdef"><b>Definition:</b> <a href="SVFGBuilder_8h_source.html#l00062">SVFGBuilder.h:62</a></div></div>
72
- <div class="ttc" id="classSVF_1_1MemSSADF_html_aabae3337a22fc441fd2fdc2cf30b009c"><div class="ttname"><a href="classSVF_1_1MemSSADF.html#aabae3337a22fc441fd2fdc2cf30b009c">SVF::MemSSADF::MemSSADF</a></div><div class="ttdeci">MemSSADF()</div><div class="ttdef"><b>Definition:</b> <a href="SVFGBuilder_8h_source.html#l00044">SVFGBuilder.h:44</a></div></div>
69
+ <a href="SVFGBuilder_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">//===- SVFGBuilder.h -- Building SVFG-----------------------------------------//</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"> * AndersenMemSSA.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 27, 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 ANDERSENMEMSSA_H_</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor">#define ANDERSENMEMSSA_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="PointerAnalysis_8h.html">MemoryModel/PointerAnalysis.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;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespaceSVF.html">SVF</a></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;{</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;</div><div class="line"><a name="l00042"></a><span class="lineno"><a class="line" href="classSVF_1_1MemSSADF.html"> 42</a></span>&#160;<span class="keyword">class </span><a class="code" href="classSVF_1_1MemSSADF.html">MemSSADF</a> : <span class="keyword">public</span> <a class="code" href="namespaceSVF.html#ab44d20f806be99699895260b14a942d7">DominanceFrontier</a></div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;{</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00045"></a><span class="lineno"><a class="line" href="classSVF_1_1MemSSADF.html#aabae3337a22fc441fd2fdc2cf30b009c"> 45</a></span>&#160; <a class="code" href="classSVF_1_1MemSSADF.html#aabae3337a22fc441fd2fdc2cf30b009c">MemSSADF</a>() : <a class="code" href="namespaceSVF.html#ab44d20f806be99699895260b14a942d7">DominanceFrontier</a>()</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; {}</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;</div><div class="line"><a name="l00048"></a><span class="lineno"><a class="line" href="classSVF_1_1MemSSADF.html#a050e6010673cb24d4ef689100213594b"> 48</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1MemSSADF.html#a050e6010673cb24d4ef689100213594b">runOnDT</a>(<a class="code" href="namespaceSVF.html#aecbb42b8e9d17fa0189c50dda9fd5fdd">DominatorTree</a>&amp; dt)</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; {</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; releaseMemory();</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; analyze(dt);</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; }</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;</div><div class="line"><a name="l00059"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFGBuilder.html"> 59</a></span>&#160;<span class="keyword">class </span><a class="code" href="classSVF_1_1SVFGBuilder.html">SVFGBuilder</a></div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;{</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00063"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFGBuilder.html#a77bc88750823c8a0d19aad002e56ce07"> 63</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="classSVF_1_1PointerAnalysis.html#a1f5f2ecf1e893759633ffec1b23d5650">PointerAnalysis::CallSiteSet</a> <a class="code" href="classSVF_1_1SVFGBuilder.html#a77bc88750823c8a0d19aad002e56ce07">CallSiteSet</a>;</div><div class="line"><a name="l00064"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFGBuilder.html#ae12f803f5ccdb47232043c8c5ae129bf"> 64</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="classSVF_1_1PointerAnalysis.html#aa9661d26d1ae9c829a9296d1b6d874f4">PointerAnalysis::CallEdgeMap</a> <a class="code" href="classSVF_1_1SVFGBuilder.html#ae12f803f5ccdb47232043c8c5ae129bf">CallEdgeMap</a>;</div><div class="line"><a name="l00065"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFGBuilder.html#a1f8e21823ddc9eb19e1fe18d9b2b8280"> 65</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="classSVF_1_1PointerAnalysis.html#ac1422cd8b449fdb4a1f7c539364e4c41">PointerAnalysis::FunctionSet</a> <a class="code" href="classSVF_1_1SVFGBuilder.html#a1f8e21823ddc9eb19e1fe18d9b2b8280">FunctionSet</a>;</div><div class="line"><a name="l00066"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFGBuilder.html#a640158fff237cb5afabdf1c5946550e0"> 66</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_1SVFGBuilder.html#a640158fff237cb5afabdf1c5946550e0">SVFGEdgeSet</a>;</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;</div><div class="line"><a name="l00069"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFGBuilder.html#a003c6d9e13e5f73e0648d97400f1854e"> 69</a></span>&#160; <a class="code" href="classSVF_1_1SVFGBuilder.html#a003c6d9e13e5f73e0648d97400f1854e">SVFGBuilder</a>(<span class="keywordtype">bool</span> _SVFGWithIndCall = <span class="keyword">false</span>): svfg(nullptr), SVFGWithIndCall(_SVFGWithIndCall) {}</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;</div><div class="line"><a name="l00072"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFGBuilder.html#af45232cbcffcaa4c7e05dab96553068f"> 72</a></span>&#160; <span class="keyword">virtual</span> <a class="code" href="classSVF_1_1SVFGBuilder.html#af45232cbcffcaa4c7e05dab96553068f">~SVFGBuilder</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"><a class="line" href="classSVF_1_1SVFGBuilder.html#a31b754a303116f33d679dfcd886c4bed"> 74</a></span>&#160; <span class="keyword">static</span> <a class="code" href="classSVF_1_1SVFG.html">SVFG</a>* <a class="code" href="classSVF_1_1SVFGBuilder.html#a31b754a303116f33d679dfcd886c4bed">globalSvfg</a>;</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <a class="code" href="classSVF_1_1SVFG.html">SVFG</a>* buildPTROnlySVFG(<a class="code" href="classSVF_1_1BVDataPTAImpl.html">BVDataPTAImpl</a>* pta);</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; <a class="code" href="classSVF_1_1SVFG.html">SVFG</a>* buildPTROnlySVFGWithoutOPT(<a class="code" href="classSVF_1_1BVDataPTAImpl.html">BVDataPTAImpl</a>* pta);</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <a class="code" href="classSVF_1_1SVFG.html">SVFG</a>* buildFullSVFG(<a class="code" href="classSVF_1_1BVDataPTAImpl.html">BVDataPTAImpl</a>* pta);</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <a class="code" href="classSVF_1_1SVFG.html">SVFG</a>* buildFullSVFGWithoutOPT(<a class="code" href="classSVF_1_1BVDataPTAImpl.html">BVDataPTAImpl</a>* pta);</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;</div><div class="line"><a name="l00082"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFGBuilder.html#a9767f95253f02901da757076e3010b37"> 82</a></span>&#160; <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFGBuilder.html#a9767f95253f02901da757076e3010b37">releaseSVFG</a>()</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; {</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <span class="keywordflow">if</span> (globalSvfg)</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; <span class="keyword">delete</span> globalSvfg;</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; globalSvfg = <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="l00089"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFGBuilder.html#ad70dc4134a6290223b4168bde146b6d5"> 89</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="classSVF_1_1SVFG.html">SVFG</a>* <a class="code" href="classSVF_1_1SVFGBuilder.html#ad70dc4134a6290223b4168bde146b6d5">getSVFG</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; <span class="keywordflow">return</span> svfg;</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_1SVFGBuilder.html#a3f8fc56d5190ea59d06906b359640dae"> 95</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFGBuilder.html#a3f8fc56d5190ea59d06906b359640dae">markValidVFEdge</a>(SVFGEdgeSet&amp; edges)</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">for</span>(SVFGEdgeSet::iterator it = edges.begin(), eit = edges.end(); it!=eit; ++it)</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; vfEdgesAtIndCallSite.erase(*it);</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; }</div><div class="line"><a name="l00101"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFGBuilder.html#a9e8da6a516ed6598c66d81a0891fbb6e"> 101</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1SVFGBuilder.html#a9e8da6a516ed6598c66d81a0891fbb6e">isSpuriousVFEdgeAtIndCallSite</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGEdge.html">SVFGEdge</a>* edge)</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; {</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; <span class="keywordflow">return</span> vfEdgesAtIndCallSite.find(const_cast&lt;SVFGEdge*&gt;(edge))!=vfEdgesAtIndCallSite.end();</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;</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; <span class="keyword">virtual</span> <a class="code" href="classSVF_1_1MemSSA.html">MemSSA</a>* buildMSSA(<a class="code" href="classSVF_1_1BVDataPTAImpl.html">BVDataPTAImpl</a>* pta, <span class="keywordtype">bool</span> ptrOnlyMSSA);</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;<span class="keyword">protected</span>:</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; <a class="code" href="classSVF_1_1SVFG.html">SVFG</a>* build(<a class="code" href="classSVF_1_1BVDataPTAImpl.html">BVDataPTAImpl</a>* pta, <a class="code" href="classSVF_1_1VFG.html#ac2e2f555975063da3fa1932ac35802c6">VFG::VFGK</a> kind);</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> buildSVFG();</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> releaseMemory();</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_1SVFGBuilder.html#aa9b432dd72f1a39be142c4e2c2d51247"> 118</a></span>&#160; SVFGEdgeSet <a class="code" href="classSVF_1_1SVFGBuilder.html#aa9b432dd72f1a39be142c4e2c2d51247">vfEdgesAtIndCallSite</a>;</div><div class="line"><a name="l00119"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFGBuilder.html#a26bc3b9c07472e454bc567cd8746caef"> 119</a></span>&#160; <a class="code" href="classSVF_1_1SVFG.html">SVFG</a>* <a class="code" href="classSVF_1_1SVFGBuilder.html#a26bc3b9c07472e454bc567cd8746caef">svfg</a>;</div><div class="line"><a name="l00121"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFGBuilder.html#a70de38086437635d2e44d2a0c9fdded9"> 121</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1SVFGBuilder.html#a70de38086437635d2e44d2a0c9fdded9">SVFGWithIndCall</a>;</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;};</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;} <span class="comment">// End namespace SVF</span></div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* ANDERSENMEMSSA_H_ */</span><span class="preprocessor"></span></div><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>
70
+ <div class="ttc" id="classSVF_1_1SVFGBuilder_html_aa9b432dd72f1a39be142c4e2c2d51247"><div class="ttname"><a href="classSVF_1_1SVFGBuilder.html#aa9b432dd72f1a39be142c4e2c2d51247">SVF::SVFGBuilder::vfEdgesAtIndCallSite</a></div><div class="ttdeci">SVFGEdgeSet vfEdgesAtIndCallSite</div><div class="ttdoc">SVFG Edges connected at indirect call/ret sites. </div><div class="ttdef"><b>Definition:</b> <a href="SVFGBuilder_8h_source.html#l00118">SVFGBuilder.h:118</a></div></div>
71
+ <div class="ttc" id="classSVF_1_1SVFGBuilder_html_a77bc88750823c8a0d19aad002e56ce07"><div class="ttname"><a href="classSVF_1_1SVFGBuilder.html#a77bc88750823c8a0d19aad002e56ce07">SVF::SVFGBuilder::CallSiteSet</a></div><div class="ttdeci">PointerAnalysis::CallSiteSet CallSiteSet</div><div class="ttdef"><b>Definition:</b> <a href="SVFGBuilder_8h_source.html#l00063">SVFGBuilder.h:63</a></div></div>
72
+ <div class="ttc" id="PointerAnalysis_8h_html"><div class="ttname"><a href="PointerAnalysis_8h.html">PointerAnalysis.h</a></div></div>
73
+ <div class="ttc" id="classSVF_1_1MemSSADF_html_aabae3337a22fc441fd2fdc2cf30b009c"><div class="ttname"><a href="classSVF_1_1MemSSADF.html#aabae3337a22fc441fd2fdc2cf30b009c">SVF::MemSSADF::MemSSADF</a></div><div class="ttdeci">MemSSADF()</div><div class="ttdef"><b>Definition:</b> <a href="SVFGBuilder_8h_source.html#l00045">SVFGBuilder.h:45</a></div></div>
73
74
  <div class="ttc" id="classSVF_1_1PointerAnalysis_html_aa9661d26d1ae9c829a9296d1b6d874f4"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#aa9661d26d1ae9c829a9296d1b6d874f4">SVF::PointerAnalysis::CallEdgeMap</a></div><div class="ttdeci">OrderedMap&lt; const CallBlockNode *, FunctionSet &gt; CallEdgeMap</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00110">PointerAnalysis.h:110</a></div></div>
74
75
  <div class="ttc" id="namespaceSVF_html_ab44d20f806be99699895260b14a942d7"><div class="ttname"><a href="namespaceSVF.html#ab44d20f806be99699895260b14a942d7">SVF::DominanceFrontier</a></div><div class="ttdeci">llvm::DominanceFrontier DominanceFrontier</div><div class="ttdoc">LLVM Dominators. </div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00196">BasicTypes.h:196</a></div></div>
75
- <div class="ttc" id="classSVF_1_1MemSSADF_html"><div class="ttname"><a href="classSVF_1_1MemSSADF.html">SVF::MemSSADF</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFGBuilder_8h_source.html#l00041">SVFGBuilder.h:41</a></div></div>
76
- <div class="ttc" id="classSVF_1_1SVFGBuilder_html_a003c6d9e13e5f73e0648d97400f1854e"><div class="ttname"><a href="classSVF_1_1SVFGBuilder.html#a003c6d9e13e5f73e0648d97400f1854e">SVF::SVFGBuilder::SVFGBuilder</a></div><div class="ttdeci">SVFGBuilder(bool _SVFGWithIndCall=false)</div><div class="ttdoc">Constructor. </div><div class="ttdef"><b>Definition:</b> <a href="SVFGBuilder_8h_source.html#l00068">SVFGBuilder.h:68</a></div></div>
77
- <div class="ttc" id="classSVF_1_1SVFGBuilder_html_a31b754a303116f33d679dfcd886c4bed"><div class="ttname"><a href="classSVF_1_1SVFGBuilder.html#a31b754a303116f33d679dfcd886c4bed">SVF::SVFGBuilder::globalSvfg</a></div><div class="ttdeci">static SVFG * globalSvfg</div><div class="ttdef"><b>Definition:</b> <a href="SVFGBuilder_8h_source.html#l00073">SVFGBuilder.h:73</a></div></div>
78
- <div class="ttc" id="classSVF_1_1MemSSADF_html_a050e6010673cb24d4ef689100213594b"><div class="ttname"><a href="classSVF_1_1MemSSADF.html#a050e6010673cb24d4ef689100213594b">SVF::MemSSADF::runOnDT</a></div><div class="ttdeci">bool runOnDT(DominatorTree &amp;dt)</div><div class="ttdef"><b>Definition:</b> <a href="SVFGBuilder_8h_source.html#l00047">SVFGBuilder.h:47</a></div></div>
76
+ <div class="ttc" id="classSVF_1_1MemSSADF_html"><div class="ttname"><a href="classSVF_1_1MemSSADF.html">SVF::MemSSADF</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFGBuilder_8h_source.html#l00042">SVFGBuilder.h:42</a></div></div>
77
+ <div class="ttc" id="classSVF_1_1SVFGBuilder_html_a003c6d9e13e5f73e0648d97400f1854e"><div class="ttname"><a href="classSVF_1_1SVFGBuilder.html#a003c6d9e13e5f73e0648d97400f1854e">SVF::SVFGBuilder::SVFGBuilder</a></div><div class="ttdeci">SVFGBuilder(bool _SVFGWithIndCall=false)</div><div class="ttdoc">Constructor. </div><div class="ttdef"><b>Definition:</b> <a href="SVFGBuilder_8h_source.html#l00069">SVFGBuilder.h:69</a></div></div>
78
+ <div class="ttc" id="classSVF_1_1SVFGBuilder_html_a31b754a303116f33d679dfcd886c4bed"><div class="ttname"><a href="classSVF_1_1SVFGBuilder.html#a31b754a303116f33d679dfcd886c4bed">SVF::SVFGBuilder::globalSvfg</a></div><div class="ttdeci">static SVFG * globalSvfg</div><div class="ttdef"><b>Definition:</b> <a href="SVFGBuilder_8h_source.html#l00074">SVFGBuilder.h:74</a></div></div>
79
+ <div class="ttc" id="classSVF_1_1MemSSADF_html_a050e6010673cb24d4ef689100213594b"><div class="ttname"><a href="classSVF_1_1MemSSADF.html#a050e6010673cb24d4ef689100213594b">SVF::MemSSADF::runOnDT</a></div><div class="ttdeci">bool runOnDT(DominatorTree &amp;dt)</div><div class="ttdef"><b>Definition:</b> <a href="SVFGBuilder_8h_source.html#l00048">SVFGBuilder.h:48</a></div></div>
79
80
  <div class="ttc" id="classSVF_1_1VFGEdge_html"><div class="ttname"><a href="classSVF_1_1VFGEdge.html">SVF::VFGEdge</a></div><div class="ttdef"><b>Definition:</b> <a href="VFGEdge_8h_source.html#l00044">VFGEdge.h:44</a></div></div>
80
81
  <div class="ttc" id="classSVF_1_1MemSSA_html"><div class="ttname"><a href="classSVF_1_1MemSSA.html">SVF::MemSSA</a></div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00046">MemSSA.h:46</a></div></div>
81
- <div class="ttc" id="classSVF_1_1SVFGBuilder_html_a3f8fc56d5190ea59d06906b359640dae"><div class="ttname"><a href="classSVF_1_1SVFGBuilder.html#a3f8fc56d5190ea59d06906b359640dae">SVF::SVFGBuilder::markValidVFEdge</a></div><div class="ttdeci">void markValidVFEdge(SVFGEdgeSet &amp;edges)</div><div class="ttdoc">Mark feasible VF edge by removing it from set vfEdgesAtIndCallSite. </div><div class="ttdef"><b>Definition:</b> <a href="SVFGBuilder_8h_source.html#l00094">SVFGBuilder.h:94</a></div></div>
82
- <div class="ttc" id="classSVF_1_1SVFGBuilder_html_a1f8e21823ddc9eb19e1fe18d9b2b8280"><div class="ttname"><a href="classSVF_1_1SVFGBuilder.html#a1f8e21823ddc9eb19e1fe18d9b2b8280">SVF::SVFGBuilder::FunctionSet</a></div><div class="ttdeci">PointerAnalysis::FunctionSet FunctionSet</div><div class="ttdef"><b>Definition:</b> <a href="SVFGBuilder_8h_source.html#l00064">SVFGBuilder.h:64</a></div></div>
82
+ <div class="ttc" id="classSVF_1_1SVFGBuilder_html_a3f8fc56d5190ea59d06906b359640dae"><div class="ttname"><a href="classSVF_1_1SVFGBuilder.html#a3f8fc56d5190ea59d06906b359640dae">SVF::SVFGBuilder::markValidVFEdge</a></div><div class="ttdeci">void markValidVFEdge(SVFGEdgeSet &amp;edges)</div><div class="ttdoc">Mark feasible VF edge by removing it from set vfEdgesAtIndCallSite. </div><div class="ttdef"><b>Definition:</b> <a href="SVFGBuilder_8h_source.html#l00095">SVFGBuilder.h:95</a></div></div>
83
+ <div class="ttc" id="classSVF_1_1SVFGBuilder_html_a1f8e21823ddc9eb19e1fe18d9b2b8280"><div class="ttname"><a href="classSVF_1_1SVFGBuilder.html#a1f8e21823ddc9eb19e1fe18d9b2b8280">SVF::SVFGBuilder::FunctionSet</a></div><div class="ttdeci">PointerAnalysis::FunctionSet FunctionSet</div><div class="ttdef"><b>Definition:</b> <a href="SVFGBuilder_8h_source.html#l00065">SVFGBuilder.h:65</a></div></div>
83
84
  <div class="ttc" id="classSVF_1_1VFG_html_ac97ef8c479556f9ca2c40cd4d8a18694"><div class="ttname"><a href="classSVF_1_1VFG.html#ac97ef8c479556f9ca2c40cd4d8a18694">SVF::VFG::SVFGEdgeSetTy</a></div><div class="ttdeci">VFGEdge::SVFGEdgeSetTy SVFGEdgeSetTy</div><div class="ttdef"><b>Definition:</b> <a href="VFG_8h_source.html#l00075">VFG.h:75</a></div></div>
84
- <div class="ttc" id="classSVF_1_1SVFGBuilder_html_ae12f803f5ccdb47232043c8c5ae129bf"><div class="ttname"><a href="classSVF_1_1SVFGBuilder.html#ae12f803f5ccdb47232043c8c5ae129bf">SVF::SVFGBuilder::CallEdgeMap</a></div><div class="ttdeci">PointerAnalysis::CallEdgeMap CallEdgeMap</div><div class="ttdef"><b>Definition:</b> <a href="SVFGBuilder_8h_source.html#l00063">SVFGBuilder.h:63</a></div></div>
85
+ <div class="ttc" id="classSVF_1_1SVFGBuilder_html_ae12f803f5ccdb47232043c8c5ae129bf"><div class="ttname"><a href="classSVF_1_1SVFGBuilder.html#ae12f803f5ccdb47232043c8c5ae129bf">SVF::SVFGBuilder::CallEdgeMap</a></div><div class="ttdeci">PointerAnalysis::CallEdgeMap CallEdgeMap</div><div class="ttdef"><b>Definition:</b> <a href="SVFGBuilder_8h_source.html#l00064">SVFGBuilder.h:64</a></div></div>
85
86
  <div class="ttc" id="classSVF_1_1PointerAnalysis_html_a1f5f2ecf1e893759633ffec1b23d5650"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a1f5f2ecf1e893759633ffec1b23d5650">SVF::PointerAnalysis::CallSiteSet</a></div><div class="ttdeci">Set&lt; const CallBlockNode * &gt; CallSiteSet</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00107">PointerAnalysis.h:107</a></div></div>
86
87
  <div class="ttc" id="classSVF_1_1PointerAnalysis_html_ac1422cd8b449fdb4a1f7c539364e4c41"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#ac1422cd8b449fdb4a1f7c539364e4c41">SVF::PointerAnalysis::FunctionSet</a></div><div class="ttdeci">Set&lt; const SVFFunction * &gt; FunctionSet</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00109">PointerAnalysis.h:109</a></div></div>
87
88
  <div class="ttc" id="namespaceSVF_html_aecbb42b8e9d17fa0189c50dda9fd5fdd"><div class="ttname"><a href="namespaceSVF.html#aecbb42b8e9d17fa0189c50dda9fd5fdd">SVF::DominatorTree</a></div><div class="ttdeci">llvm::DominatorTree DominatorTree</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00197">BasicTypes.h:197</a></div></div>
88
89
  <div class="ttc" id="SVFGOPT_8h_html"><div class="ttname"><a href="SVFGOPT_8h.html">SVFGOPT.h</a></div></div>
89
- <div class="ttc" id="classSVF_1_1SVFGBuilder_html_ad70dc4134a6290223b4168bde146b6d5"><div class="ttname"><a href="classSVF_1_1SVFGBuilder.html#ad70dc4134a6290223b4168bde146b6d5">SVF::SVFGBuilder::getSVFG</a></div><div class="ttdeci">SVFG * getSVFG() const</div><div class="ttdoc">Get SVFG instance. </div><div class="ttdef"><b>Definition:</b> <a href="SVFGBuilder_8h_source.html#l00088">SVFGBuilder.h:88</a></div></div>
90
- <div class="ttc" id="classSVF_1_1SVFGBuilder_html_af45232cbcffcaa4c7e05dab96553068f"><div class="ttname"><a href="classSVF_1_1SVFGBuilder.html#af45232cbcffcaa4c7e05dab96553068f">SVF::SVFGBuilder::~SVFGBuilder</a></div><div class="ttdeci">virtual ~SVFGBuilder()</div><div class="ttdoc">Destructor. </div><div class="ttdef"><b>Definition:</b> <a href="SVFGBuilder_8h_source.html#l00071">SVFGBuilder.h:71</a></div></div>
90
+ <div class="ttc" id="classSVF_1_1SVFGBuilder_html_ad70dc4134a6290223b4168bde146b6d5"><div class="ttname"><a href="classSVF_1_1SVFGBuilder.html#ad70dc4134a6290223b4168bde146b6d5">SVF::SVFGBuilder::getSVFG</a></div><div class="ttdeci">SVFG * getSVFG() const</div><div class="ttdoc">Get SVFG instance. </div><div class="ttdef"><b>Definition:</b> <a href="SVFGBuilder_8h_source.html#l00089">SVFGBuilder.h:89</a></div></div>
91
+ <div class="ttc" id="classSVF_1_1SVFGBuilder_html_af45232cbcffcaa4c7e05dab96553068f"><div class="ttname"><a href="classSVF_1_1SVFGBuilder.html#af45232cbcffcaa4c7e05dab96553068f">SVF::SVFGBuilder::~SVFGBuilder</a></div><div class="ttdeci">virtual ~SVFGBuilder()</div><div class="ttdoc">Destructor. </div><div class="ttdef"><b>Definition:</b> <a href="SVFGBuilder_8h_source.html#l00072">SVFGBuilder.h:72</a></div></div>
91
92
  <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>
92
93
  <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="ContextDDA_8h_source.html#l00016">ContextDDA.h:16</a></div></div>
93
- <div class="ttc" id="classSVF_1_1SVFGBuilder_html_a70de38086437635d2e44d2a0c9fdded9"><div class="ttname"><a href="classSVF_1_1SVFGBuilder.html#a70de38086437635d2e44d2a0c9fdded9">SVF::SVFGBuilder::SVFGWithIndCall</a></div><div class="ttdeci">bool SVFGWithIndCall</div><div class="ttdoc">SVFG with precomputed indirect call edges. </div><div class="ttdef"><b>Definition:</b> <a href="SVFGBuilder_8h_source.html#l00120">SVFGBuilder.h:120</a></div></div>
94
- <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#l00058">SVFGBuilder.h:58</a></div></div>
95
- <div class="ttc" id="classSVF_1_1SVFGBuilder_html_a9767f95253f02901da757076e3010b37"><div class="ttname"><a href="classSVF_1_1SVFGBuilder.html#a9767f95253f02901da757076e3010b37">SVF::SVFGBuilder::releaseSVFG</a></div><div class="ttdeci">static void releaseSVFG()</div><div class="ttdoc">Clean up. </div><div class="ttdef"><b>Definition:</b> <a href="SVFGBuilder_8h_source.html#l00081">SVFGBuilder.h:81</a></div></div>
96
- <div class="ttc" id="classSVF_1_1SVFGBuilder_html_a26bc3b9c07472e454bc567cd8746caef"><div class="ttname"><a href="classSVF_1_1SVFGBuilder.html#a26bc3b9c07472e454bc567cd8746caef">SVF::SVFGBuilder::svfg</a></div><div class="ttdeci">SVFG * svfg</div><div class="ttdef"><b>Definition:</b> <a href="SVFGBuilder_8h_source.html#l00118">SVFGBuilder.h:118</a></div></div>
94
+ <div class="ttc" id="classSVF_1_1SVFGBuilder_html_a70de38086437635d2e44d2a0c9fdded9"><div class="ttname"><a href="classSVF_1_1SVFGBuilder.html#a70de38086437635d2e44d2a0c9fdded9">SVF::SVFGBuilder::SVFGWithIndCall</a></div><div class="ttdeci">bool SVFGWithIndCall</div><div class="ttdoc">SVFG with precomputed indirect call edges. </div><div class="ttdef"><b>Definition:</b> <a href="SVFGBuilder_8h_source.html#l00121">SVFGBuilder.h:121</a></div></div>
95
+ <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>
96
+ <div class="ttc" id="classSVF_1_1SVFGBuilder_html_a9767f95253f02901da757076e3010b37"><div class="ttname"><a href="classSVF_1_1SVFGBuilder.html#a9767f95253f02901da757076e3010b37">SVF::SVFGBuilder::releaseSVFG</a></div><div class="ttdeci">static void releaseSVFG()</div><div class="ttdoc">Clean up. </div><div class="ttdef"><b>Definition:</b> <a href="SVFGBuilder_8h_source.html#l00082">SVFGBuilder.h:82</a></div></div>
97
+ <div class="ttc" id="classSVF_1_1SVFGBuilder_html_a26bc3b9c07472e454bc567cd8746caef"><div class="ttname"><a href="classSVF_1_1SVFGBuilder.html#a26bc3b9c07472e454bc567cd8746caef">SVF::SVFGBuilder::svfg</a></div><div class="ttdeci">SVFG * svfg</div><div class="ttdef"><b>Definition:</b> <a href="SVFGBuilder_8h_source.html#l00119">SVFGBuilder.h:119</a></div></div>
97
98
  <div class="ttc" id="classSVF_1_1VFG_html_ac2e2f555975063da3fa1932ac35802c6"><div class="ttname"><a href="classSVF_1_1VFG.html#ac2e2f555975063da3fa1932ac35802c6">SVF::VFG::VFGK</a></div><div class="ttdeci">VFGK</div><div class="ttdoc">VFG kind. </div><div class="ttdef"><b>Definition:</b> <a href="VFG_8h_source.html#l00053">VFG.h:53</a></div></div>
98
- <div class="ttc" id="classSVF_1_1SVFGBuilder_html_a9e8da6a516ed6598c66d81a0891fbb6e"><div class="ttname"><a href="classSVF_1_1SVFGBuilder.html#a9e8da6a516ed6598c66d81a0891fbb6e">SVF::SVFGBuilder::isSpuriousVFEdgeAtIndCallSite</a></div><div class="ttdeci">bool isSpuriousVFEdgeAtIndCallSite(const SVFGEdge *edge)</div><div class="ttdoc">Return true if this is an VF Edge pre-connected by Andersen&amp;#39;s analysis. </div><div class="ttdef"><b>Definition:</b> <a href="SVFGBuilder_8h_source.html#l00100">SVFGBuilder.h:100</a></div></div>
99
- <div class="ttc" id="classSVF_1_1SVFGBuilder_html_a640158fff237cb5afabdf1c5946550e0"><div class="ttname"><a href="classSVF_1_1SVFGBuilder.html#a640158fff237cb5afabdf1c5946550e0">SVF::SVFGBuilder::SVFGEdgeSet</a></div><div class="ttdeci">SVFG::SVFGEdgeSetTy SVFGEdgeSet</div><div class="ttdef"><b>Definition:</b> <a href="SVFGBuilder_8h_source.html#l00065">SVFGBuilder.h:65</a></div></div>
99
+ <div class="ttc" id="classSVF_1_1SVFGBuilder_html_a9e8da6a516ed6598c66d81a0891fbb6e"><div class="ttname"><a href="classSVF_1_1SVFGBuilder.html#a9e8da6a516ed6598c66d81a0891fbb6e">SVF::SVFGBuilder::isSpuriousVFEdgeAtIndCallSite</a></div><div class="ttdeci">bool isSpuriousVFEdgeAtIndCallSite(const SVFGEdge *edge)</div><div class="ttdoc">Return true if this is an VF Edge pre-connected by Andersen&amp;#39;s analysis. </div><div class="ttdef"><b>Definition:</b> <a href="SVFGBuilder_8h_source.html#l00101">SVFGBuilder.h:101</a></div></div>
100
+ <div class="ttc" id="classSVF_1_1SVFGBuilder_html_a640158fff237cb5afabdf1c5946550e0"><div class="ttname"><a href="classSVF_1_1SVFGBuilder.html#a640158fff237cb5afabdf1c5946550e0">SVF::SVFGBuilder::SVFGEdgeSet</a></div><div class="ttdeci">SVFG::SVFGEdgeSetTy SVFGEdgeSet</div><div class="ttdef"><b>Definition:</b> <a href="SVFGBuilder_8h_source.html#l00066">SVFGBuilder.h:66</a></div></div>
100
101
  </div><!-- fragment --></div><!-- contents -->
101
102
  <!-- start footer part -->
102
103
  <hr class="footer"/><address class="footer"><small>