svf-tools 1.0.469 → 1.0.472

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 (384) hide show
  1. package/SVF-doxygen/html/html/AndersenSCD_8cpp_source.html +1 -1
  2. package/SVF-doxygen/html/html/AndersenSFR_8cpp_source.html +2 -2
  3. package/SVF-doxygen/html/html/AndersenStat_8cpp_source.html +2 -2
  4. package/SVF-doxygen/html/html/Andersen_8cpp.html +1 -1
  5. package/SVF-doxygen/html/html/Andersen_8cpp_source.html +16 -16
  6. package/SVF-doxygen/html/html/Andersen_8h_source.html +3 -3
  7. package/SVF-doxygen/html/html/Annotator_8h_source.html +1 -1
  8. package/SVF-doxygen/html/html/BDDExpr_8cpp_source.html +1 -1
  9. package/SVF-doxygen/html/html/BreakConstantExpr_8cpp_source.html +1 -1
  10. package/SVF-doxygen/html/html/CFLAlias_8h_source.html +2 -2
  11. package/SVF-doxygen/html/html/CFLGraphBuilder_8cpp_source.html +1 -1
  12. package/SVF-doxygen/html/html/CHGBuilder_8cpp_source.html +23 -23
  13. package/SVF-doxygen/html/html/CHGBuilder_8h_source.html +3 -3
  14. package/SVF-doxygen/html/html/CHG_8cpp.html +2 -2
  15. package/SVF-doxygen/html/html/CHG_8cpp_source.html +11 -11
  16. package/SVF-doxygen/html/html/CHG_8h_source.html +2 -2
  17. package/SVF-doxygen/html/html/CPPUtil_8cpp.html +15 -15
  18. package/SVF-doxygen/html/html/CPPUtil_8cpp_source.html +40 -40
  19. package/SVF-doxygen/html/html/CPPUtil_8h_source.html +17 -17
  20. package/SVF-doxygen/html/html/CallGraphBuilder_8cpp.html +1 -1
  21. package/SVF-doxygen/html/html/CallGraphBuilder_8cpp_source.html +5 -5
  22. package/SVF-doxygen/html/html/ConditionalPT_8h_source.html +1 -1
  23. package/SVF-doxygen/html/html/ConsG_8cpp_source.html +1 -1
  24. package/SVF-doxygen/html/html/ConsG_8h_source.html +3 -3
  25. package/SVF-doxygen/html/html/ContextDDA_8cpp_source.html +7 -7
  26. package/SVF-doxygen/html/html/ContextDDA_8h_source.html +2 -2
  27. package/SVF-doxygen/html/html/CxtStmt_8h_source.html +4 -4
  28. package/SVF-doxygen/html/html/DCHG_8cpp_source.html +18 -18
  29. package/SVF-doxygen/html/html/DCHG_8h_source.html +8 -8
  30. package/SVF-doxygen/html/html/DDAClient_8cpp_source.html +6 -6
  31. package/SVF-doxygen/html/html/DDAPass_8cpp_source.html +1 -1
  32. package/SVF-doxygen/html/html/DDAStat_8cpp_source.html +1 -1
  33. package/SVF-doxygen/html/html/DDAVFSolver_8h_source.html +6 -6
  34. package/SVF-doxygen/html/html/DataFlowUtil_8cpp_source.html +4 -4
  35. package/SVF-doxygen/html/html/DataFlowUtil_8h_source.html +6 -6
  36. package/SVF-doxygen/html/html/DoubleFreeChecker_8cpp_source.html +2 -2
  37. package/SVF-doxygen/html/html/ExeState_8cpp.html +1 -1
  38. package/SVF-doxygen/html/html/ExeState_8cpp_source.html +9 -9
  39. package/SVF-doxygen/html/html/ExtAPI_8h_source.html +3 -3
  40. package/SVF-doxygen/html/html/FSMPTA_8cpp_source.html +2 -2
  41. package/SVF-doxygen/html/html/FileChecker_8cpp_source.html +3 -3
  42. package/SVF-doxygen/html/html/FileChecker_8h_source.html +1 -1
  43. package/SVF-doxygen/html/html/FlowDDA_8cpp_source.html +4 -4
  44. package/SVF-doxygen/html/html/FlowDDA_8h_source.html +3 -3
  45. package/SVF-doxygen/html/html/FlowSensitiveStat_8cpp_source.html +5 -5
  46. package/SVF-doxygen/html/html/FlowSensitiveTBHC_8cpp.html +2 -2
  47. package/SVF-doxygen/html/html/FlowSensitiveTBHC_8cpp_source.html +3 -3
  48. package/SVF-doxygen/html/html/FlowSensitiveTBHC_8h_source.html +2 -2
  49. package/SVF-doxygen/html/html/FlowSensitive_8cpp_source.html +6 -6
  50. package/SVF-doxygen/html/html/Graph2Json_8cpp_source.html +2 -2
  51. package/SVF-doxygen/html/html/Graph2Json_8h.html +1 -1
  52. package/SVF-doxygen/html/html/Graph2Json_8h_source.html +2 -2
  53. package/SVF-doxygen/html/html/ICFGBuilder_8cpp_source.html +9 -9
  54. package/SVF-doxygen/html/html/ICFGBuilder_8h_source.html +1 -1
  55. package/SVF-doxygen/html/html/ICFGNode_8h_source.html +1 -1
  56. package/SVF-doxygen/html/html/ICFG_8cpp_source.html +7 -7
  57. package/SVF-doxygen/html/html/ICFG_8h_source.html +1 -1
  58. package/SVF-doxygen/html/html/IRAnnotator_8h_source.html +3 -3
  59. package/SVF-doxygen/html/html/IRGraph_8cpp_source.html +2 -2
  60. package/SVF-doxygen/html/html/IRGraph_8h_source.html +18 -18
  61. package/SVF-doxygen/html/html/LLVMLoopAnalysis_8cpp_source.html +2 -2
  62. package/SVF-doxygen/html/html/LLVMModule_8cpp_source.html +1 -1
  63. package/SVF-doxygen/html/html/LLVMModule_8h_source.html +2 -2
  64. package/SVF-doxygen/html/html/LLVMUtil_8cpp_source.html +43 -37
  65. package/SVF-doxygen/html/html/LLVMUtil_8h.html +14 -166
  66. package/SVF-doxygen/html/html/LLVMUtil_8h_source.html +49 -106
  67. package/SVF-doxygen/html/html/LeakChecker_8cpp_source.html +9 -9
  68. package/SVF-doxygen/html/html/LeakChecker_8h_source.html +1 -1
  69. package/SVF-doxygen/html/html/LocationSet_8cpp_source.html +6 -6
  70. package/SVF-doxygen/html/html/LockAnalysis_8cpp_source.html +11 -11
  71. package/SVF-doxygen/html/html/LockAnalysis_8h_source.html +1 -1
  72. package/SVF-doxygen/html/html/LockResultValidator_8cpp_source.html +13 -13
  73. package/SVF-doxygen/html/html/LockResultValidator_8h_source.html +1 -1
  74. package/SVF-doxygen/html/html/MHP_8cpp.html +1 -1
  75. package/SVF-doxygen/html/html/MHP_8cpp_source.html +13 -13
  76. package/SVF-doxygen/html/html/MHP_8h_source.html +2 -2
  77. package/SVF-doxygen/html/html/MSSAMuChi_8h_source.html +1 -1
  78. package/SVF-doxygen/html/html/MTAAnnotator_8cpp_source.html +5 -5
  79. package/SVF-doxygen/html/html/MTAAnnotator_8h_source.html +2 -2
  80. package/SVF-doxygen/html/html/MTAResultValidator_8cpp_source.html +12 -12
  81. package/SVF-doxygen/html/html/MTAResultValidator_8h_source.html +6 -6
  82. package/SVF-doxygen/html/html/MTAStat_8cpp_source.html +4 -4
  83. package/SVF-doxygen/html/html/MTA_8cpp_source.html +4 -4
  84. package/SVF-doxygen/html/html/MTA_8h_source.html +2 -2
  85. package/SVF-doxygen/html/html/MemPartition_8cpp_source.html +1 -1
  86. package/SVF-doxygen/html/html/MemPartition_8h_source.html +1 -1
  87. package/SVF-doxygen/html/html/MemRegion_8cpp_source.html +12 -12
  88. package/SVF-doxygen/html/html/MemRegion_8h_source.html +1 -1
  89. package/SVF-doxygen/html/html/MemSSA_8cpp_source.html +14 -14
  90. package/SVF-doxygen/html/html/MemSSA_8h_source.html +3 -3
  91. package/SVF-doxygen/html/html/MutablePointsToDS_8h_source.html +1 -1
  92. package/SVF-doxygen/html/html/NodeIDAllocator_8cpp_source.html +1 -1
  93. package/SVF-doxygen/html/html/PAGBuilderFromFile_8cpp_source.html +1 -1
  94. package/SVF-doxygen/html/html/PCG_8cpp_source.html +9 -9
  95. package/SVF-doxygen/html/html/PCG_8h_source.html +1 -1
  96. package/SVF-doxygen/html/html/PTACallGraph_8cpp.html +1 -1
  97. package/SVF-doxygen/html/html/PTACallGraph_8cpp_source.html +7 -7
  98. package/SVF-doxygen/html/html/PTACallGraph_8h_source.html +1 -1
  99. package/SVF-doxygen/html/html/PTAStat_8cpp_source.html +17 -17
  100. package/SVF-doxygen/html/html/PathCondAllocator_8cpp_source.html +10 -10
  101. package/SVF-doxygen/html/html/PathCondAllocator_8h_source.html +3 -3
  102. package/SVF-doxygen/html/html/PointerAnalysisImpl_8cpp_source.html +8 -8
  103. package/SVF-doxygen/html/html/PointerAnalysisImpl_8h_source.html +2 -2
  104. package/SVF-doxygen/html/html/PointerAnalysis_8cpp.html +1 -1
  105. package/SVF-doxygen/html/html/PointerAnalysis_8cpp_source.html +42 -42
  106. package/SVF-doxygen/html/html/PointerAnalysis_8h_source.html +26 -26
  107. package/SVF-doxygen/html/html/ProgSlice_8cpp_source.html +1 -1
  108. package/SVF-doxygen/html/html/SVF-FE_2BasicTypes_8h.html +71 -53
  109. package/SVF-doxygen/html/html/SVF-FE_2BasicTypes_8h_source.html +54 -53
  110. package/SVF-doxygen/html/html/SVFGBuilder_8cpp.html +1 -1
  111. package/SVF-doxygen/html/html/SVFGBuilder_8cpp_source.html +7 -7
  112. package/SVF-doxygen/html/html/SVFGBuilder_8h_source.html +2 -2
  113. package/SVF-doxygen/html/html/SVFGNode_8h_source.html +1 -1
  114. package/SVF-doxygen/html/html/SVFGOPT_8cpp_source.html +2 -2
  115. package/SVF-doxygen/html/html/SVFGOPT_8h_source.html +1 -1
  116. package/SVF-doxygen/html/html/SVFGReadWrite_8cpp.html +1 -1
  117. package/SVF-doxygen/html/html/SVFGReadWrite_8cpp_source.html +2 -2
  118. package/SVF-doxygen/html/html/SVFG_8cpp.html +1 -1
  119. package/SVF-doxygen/html/html/SVFG_8cpp_source.html +7 -7
  120. package/SVF-doxygen/html/html/SVFG_8h_source.html +1 -1
  121. package/SVF-doxygen/html/html/SVFIRBuilder_8cpp_source.html +73 -73
  122. package/SVF-doxygen/html/html/SVFIRBuilder_8h_source.html +34 -34
  123. package/SVF-doxygen/html/html/SVFIR_8cpp_source.html +7 -7
  124. package/SVF-doxygen/html/html/SVFIR_8h_source.html +11 -11
  125. package/SVF-doxygen/html/html/SVFModule_8cpp_source.html +2 -2
  126. package/SVF-doxygen/html/html/SVFModule_8h_source.html +2 -2
  127. package/SVF-doxygen/html/html/SVFStatements_8cpp_source.html +3 -3
  128. package/SVF-doxygen/html/html/SVFUtil_8cpp.html +8 -9
  129. package/SVF-doxygen/html/html/SVFUtil_8cpp_source.html +39 -38
  130. package/SVF-doxygen/html/html/SVFUtil_8h.html +150 -0
  131. package/SVF-doxygen/html/html/SVFUtil_8h_source.html +91 -27
  132. package/SVF-doxygen/html/html/SVFVariables_8cpp.html +1 -1
  133. package/SVF-doxygen/html/html/SVFVariables_8cpp_source.html +4 -4
  134. package/SVF-doxygen/html/html/SVFVariables_8h_source.html +7 -7
  135. package/SVF-doxygen/html/html/SaberAnnotator_8cpp_source.html +1 -1
  136. package/SVF-doxygen/html/html/SaberCheckerAPI_8h_source.html +1 -1
  137. package/SVF-doxygen/html/html/SaberSVFGBuilder_8cpp_source.html +4 -4
  138. package/SVF-doxygen/html/html/SrcSnkDDA_8h_source.html +1 -1
  139. package/SVF-doxygen/html/html/SymbolTableBuilder_8cpp_source.html +79 -77
  140. package/SVF-doxygen/html/html/SymbolTableBuilder_8h_source.html +14 -14
  141. package/SVF-doxygen/html/html/SymbolTableInfo_8cpp.html +0 -1
  142. package/SVF-doxygen/html/html/SymbolTableInfo_8cpp_source.html +94 -100
  143. package/SVF-doxygen/html/html/SymbolTableInfo_8h_source.html +121 -119
  144. package/SVF-doxygen/html/html/TCT_8cpp_source.html +11 -11
  145. package/SVF-doxygen/html/html/TCT_8h_source.html +8 -8
  146. package/SVF-doxygen/html/html/ThreadAPI_8cpp_source.html +2 -2
  147. package/SVF-doxygen/html/html/ThreadAPI_8h_source.html +4 -4
  148. package/SVF-doxygen/html/html/ThreadCallGraph_8cpp_source.html +5 -5
  149. package/SVF-doxygen/html/html/ThreadCallGraph_8h_source.html +1 -1
  150. package/SVF-doxygen/html/html/TypeAnalysis_8cpp_source.html +4 -4
  151. package/SVF-doxygen/html/html/TypeBasedHeapCloning_8cpp_source.html +16 -16
  152. package/SVF-doxygen/html/html/TypeBasedHeapCloning_8h_source.html +3 -3
  153. package/SVF-doxygen/html/html/Util_2BasicTypes_8h.html +0 -2
  154. package/SVF-doxygen/html/html/Util_2BasicTypes_8h_source.html +56 -57
  155. package/SVF-doxygen/html/html/VFGNode_8h_source.html +1 -1
  156. package/SVF-doxygen/html/html/VFG_8cpp.html +1 -1
  157. package/SVF-doxygen/html/html/VFG_8cpp_source.html +7 -7
  158. package/SVF-doxygen/html/html/VFG_8h_source.html +2 -2
  159. package/SVF-doxygen/html/html/VersionedFlowSensitiveStat_8cpp.html +1 -1
  160. package/SVF-doxygen/html/html/VersionedFlowSensitiveStat_8cpp_source.html +5 -5
  161. package/SVF-doxygen/html/html/VersionedFlowSensitive_8cpp_source.html +1 -1
  162. package/SVF-doxygen/html/html/WPAPass_8cpp_source.html +1 -1
  163. package/SVF-doxygen/html/html/WPAPass_8h_source.html +1 -1
  164. package/SVF-doxygen/html/html/cfl_8cpp.html +1 -1
  165. package/SVF-doxygen/html/html/cfl_8cpp_source.html +1 -1
  166. package/SVF-doxygen/html/html/classSVF_1_1ActualINSVFGNode.html +1 -1
  167. package/SVF-doxygen/html/html/classSVF_1_1ActualOUTSVFGNode.html +1 -1
  168. package/SVF-doxygen/html/html/classSVF_1_1ActualParmVFGNode.html +1 -1
  169. package/SVF-doxygen/html/html/classSVF_1_1ActualRetVFGNode.html +1 -1
  170. package/SVF-doxygen/html/html/classSVF_1_1AddrStmt.html +1 -1
  171. package/SVF-doxygen/html/html/classSVF_1_1AliasDDAClient.html +1 -1
  172. package/SVF-doxygen/html/html/classSVF_1_1Andersen.html +9 -9
  173. package/SVF-doxygen/html/html/classSVF_1_1AndersenBase.html +6 -6
  174. package/SVF-doxygen/html/html/classSVF_1_1AndersenSCD.html +1 -1
  175. package/SVF-doxygen/html/html/classSVF_1_1AndersenSFR.html +2 -2
  176. package/SVF-doxygen/html/html/classSVF_1_1AndersenStat.html +2 -2
  177. package/SVF-doxygen/html/html/classSVF_1_1Annotator.html +1 -1
  178. package/SVF-doxygen/html/html/classSVF_1_1BDDExprManager.html +2 -2
  179. package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl.html +9 -9
  180. package/SVF-doxygen/html/html/classSVF_1_1BinaryOPStmt.html +1 -1
  181. package/SVF-doxygen/html/html/classSVF_1_1BinaryOPVFGNode.html +1 -1
  182. package/SVF-doxygen/html/html/classSVF_1_1BranchStmt.html +5 -5
  183. package/SVF-doxygen/html/html/classSVF_1_1BreakConstantGEPs.html +1 -1
  184. package/SVF-doxygen/html/html/classSVF_1_1CFLAlias.html +3 -3
  185. package/SVF-doxygen/html/html/classSVF_1_1CFLGraphBuilder.html +1 -1
  186. package/SVF-doxygen/html/html/classSVF_1_1CHGBuilder.html +39 -39
  187. package/SVF-doxygen/html/html/classSVF_1_1CHGraph.html +9 -9
  188. package/SVF-doxygen/html/html/classSVF_1_1CallGraphBuilder.html +2 -2
  189. package/SVF-doxygen/html/html/classSVF_1_1CallICFGNode.html +1 -1
  190. package/SVF-doxygen/html/html/classSVF_1_1CallPE.html +1 -1
  191. package/SVF-doxygen/html/html/classSVF_1_1CallSite.html +41 -41
  192. package/SVF-doxygen/html/html/classSVF_1_1CmpStmt.html +1 -1
  193. package/SVF-doxygen/html/html/classSVF_1_1CmpVFGNode.html +1 -1
  194. package/SVF-doxygen/html/html/classSVF_1_1CondPTAImpl.html +4 -4
  195. package/SVF-doxygen/html/html/classSVF_1_1CondPointsToSet.html +1 -1
  196. package/SVF-doxygen/html/html/classSVF_1_1ContextDDA.html +10 -10
  197. package/SVF-doxygen/html/html/classSVF_1_1CopyStmt.html +1 -1
  198. package/SVF-doxygen/html/html/classSVF_1_1CxtStmt.html +2 -2
  199. package/SVF-doxygen/html/html/classSVF_1_1CxtThread.html +2 -2
  200. package/SVF-doxygen/html/html/classSVF_1_1CxtThreadStmt.html +2 -2
  201. package/SVF-doxygen/html/html/classSVF_1_1DCHGraph.html +51 -51
  202. package/SVF-doxygen/html/html/classSVF_1_1DDAClient.html +1 -1
  203. package/SVF-doxygen/html/html/classSVF_1_1DDAPass.html +5 -5
  204. package/SVF-doxygen/html/html/classSVF_1_1DDAStat.html +1 -1
  205. package/SVF-doxygen/html/html/classSVF_1_1DDAVFSolver.html +1 -1
  206. package/SVF-doxygen/html/html/classSVF_1_1DistinctMRG.html +1 -1
  207. package/SVF-doxygen/html/html/classSVF_1_1DoubleFreeChecker.html +2 -2
  208. package/SVF-doxygen/html/html/classSVF_1_1ExeState.html +8 -8
  209. package/SVF-doxygen/html/html/classSVF_1_1FIObjVar.html +1 -1
  210. package/SVF-doxygen/html/html/classSVF_1_1FSMPTA.html +1 -1
  211. package/SVF-doxygen/html/html/classSVF_1_1FileChecker.html +4 -4
  212. package/SVF-doxygen/html/html/classSVF_1_1FlowDDA.html +5 -5
  213. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitive.html +10 -10
  214. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveStat.html +5 -5
  215. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveTBHC.html +7 -7
  216. package/SVF-doxygen/html/html/classSVF_1_1ForkJoinAnalysis.html +12 -12
  217. package/SVF-doxygen/html/html/classSVF_1_1FunEntryICFGNode.html +3 -3
  218. package/SVF-doxygen/html/html/classSVF_1_1FunExitICFGNode.html +5 -5
  219. package/SVF-doxygen/html/html/classSVF_1_1FunptrDDAClient.html +5 -5
  220. package/SVF-doxygen/html/html/classSVF_1_1GepObjVar.html +5 -5
  221. package/SVF-doxygen/html/html/classSVF_1_1GepStmt.html +1 -1
  222. package/SVF-doxygen/html/html/classSVF_1_1GepValVar.html +1 -1
  223. package/SVF-doxygen/html/html/classSVF_1_1ICFG.html +4 -4
  224. package/SVF-doxygen/html/html/classSVF_1_1ICFGBuilder.html +14 -14
  225. package/SVF-doxygen/html/html/classSVF_1_1ICFGPrinter.html +2 -2
  226. package/SVF-doxygen/html/html/classSVF_1_1IRAnnotator.html +1 -1
  227. package/SVF-doxygen/html/html/classSVF_1_1IRGraph.html +17 -17
  228. package/SVF-doxygen/html/html/classSVF_1_1InterDisjointMRG.html +1 -1
  229. package/SVF-doxygen/html/html/classSVF_1_1InterPHIVFGNode.html +1 -1
  230. package/SVF-doxygen/html/html/classSVF_1_1IntraDisjointMRG.html +1 -1
  231. package/SVF-doxygen/html/html/classSVF_1_1IntraICFGNode.html +2 -2
  232. package/SVF-doxygen/html/html/classSVF_1_1IntraPHIVFGNode.html +1 -1
  233. package/SVF-doxygen/html/html/classSVF_1_1IteratedDominanceFrontier.html +2 -2
  234. package/SVF-doxygen/html/html/classSVF_1_1LLVMLoopAnalysis.html +2 -2
  235. package/SVF-doxygen/html/html/classSVF_1_1LLVMModuleSet.html +1 -1
  236. package/SVF-doxygen/html/html/classSVF_1_1LeakChecker.html +18 -18
  237. package/SVF-doxygen/html/html/classSVF_1_1LoadStmt.html +1 -1
  238. package/SVF-doxygen/html/html/classSVF_1_1LocationSet.html +8 -8
  239. package/SVF-doxygen/html/html/classSVF_1_1LockAnalysis.html +26 -26
  240. package/SVF-doxygen/html/html/classSVF_1_1LockResultValidator.html +14 -14
  241. package/SVF-doxygen/html/html/classSVF_1_1MHP.html +25 -25
  242. package/SVF-doxygen/html/html/classSVF_1_1MRGenerator.html +20 -20
  243. package/SVF-doxygen/html/html/classSVF_1_1MSSAPHISVFGNode.html +1 -1
  244. package/SVF-doxygen/html/html/classSVF_1_1MTA.html +6 -6
  245. package/SVF-doxygen/html/html/classSVF_1_1MTAAnnotator.html +9 -9
  246. package/SVF-doxygen/html/html/classSVF_1_1MTAResultValidator.html +21 -21
  247. package/SVF-doxygen/html/html/classSVF_1_1MTASVFGBuilder.html +1 -1
  248. package/SVF-doxygen/html/html/classSVF_1_1MTAStat.html +4 -4
  249. package/SVF-doxygen/html/html/classSVF_1_1MemObj.html +92 -92
  250. package/SVF-doxygen/html/html/classSVF_1_1MemSSA.html +18 -18
  251. package/SVF-doxygen/html/html/classSVF_1_1MemSSADF.html +1 -1
  252. package/SVF-doxygen/html/html/classSVF_1_1MutableDFPTData.html +1 -1
  253. package/SVF-doxygen/html/html/classSVF_1_1NodeIDAllocator_1_1Clusterer.html +2 -2
  254. package/SVF-doxygen/html/html/classSVF_1_1ObjTypeInfo.html +98 -98
  255. package/SVF-doxygen/html/html/classSVF_1_1ObjVar.html +2 -2
  256. package/SVF-doxygen/html/html/classSVF_1_1PAGBuilderFromFile.html +1 -1
  257. package/SVF-doxygen/html/html/classSVF_1_1PCG.html +14 -14
  258. package/SVF-doxygen/html/html/classSVF_1_1PHIVFGNode.html +1 -1
  259. package/SVF-doxygen/html/html/classSVF_1_1PTACFInfoBuilder.html +3 -3
  260. package/SVF-doxygen/html/html/classSVF_1_1PTACallGraph.html +2 -2
  261. package/SVF-doxygen/html/html/classSVF_1_1PTACallGraphEdge.html +1 -1
  262. package/SVF-doxygen/html/html/classSVF_1_1PTACallGraphNode.html +1 -1
  263. package/SVF-doxygen/html/html/classSVF_1_1PTAStat.html +18 -18
  264. package/SVF-doxygen/html/html/classSVF_1_1PathCondAllocator.html +18 -18
  265. package/SVF-doxygen/html/html/classSVF_1_1PhiStmt.html +1 -1
  266. package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis.html +83 -83
  267. package/SVF-doxygen/html/html/classSVF_1_1ProgSlice.html +1 -1
  268. package/SVF-doxygen/html/html/classSVF_1_1RaceResultValidator.html +5 -5
  269. package/SVF-doxygen/html/html/classSVF_1_1RetICFGNode.html +1 -1
  270. package/SVF-doxygen/html/html/classSVF_1_1RetPE.html +1 -1
  271. package/SVF-doxygen/html/html/classSVF_1_1SVFBasicBlock.html +3 -3
  272. package/SVF-doxygen/html/html/classSVF_1_1SVFFunction.html +29 -29
  273. package/SVF-doxygen/html/html/classSVF_1_1SVFG.html +4 -4
  274. package/SVF-doxygen/html/html/classSVF_1_1SVFGBuilder.html +6 -6
  275. package/SVF-doxygen/html/html/classSVF_1_1SVFGOPT.html +2 -2
  276. package/SVF-doxygen/html/html/classSVF_1_1SVFGlobal.html +3 -3
  277. package/SVF-doxygen/html/html/classSVF_1_1SVFIR.html +21 -21
  278. package/SVF-doxygen/html/html/classSVF_1_1SVFIRBuilder.html +105 -105
  279. package/SVF-doxygen/html/html/classSVF_1_1SVFModule.html +2 -2
  280. package/SVF-doxygen/html/html/classSVF_1_1SVFVar.html +2 -2
  281. package/SVF-doxygen/html/html/classSVF_1_1SaberAnnotator.html +1 -1
  282. package/SVF-doxygen/html/html/classSVF_1_1SaberSVFGBuilder.html +4 -4
  283. package/SVF-doxygen/html/html/classSVF_1_1SelectStmt.html +1 -1
  284. package/SVF-doxygen/html/html/classSVF_1_1StInfo.html +38 -38
  285. package/SVF-doxygen/html/html/classSVF_1_1StoreStmt.html +1 -1
  286. package/SVF-doxygen/html/html/classSVF_1_1SymbolTableBuilder.html +130 -128
  287. package/SVF-doxygen/html/html/classSVF_1_1SymbolTableInfo-members.html +52 -50
  288. package/SVF-doxygen/html/html/classSVF_1_1SymbolTableInfo.html +261 -206
  289. package/SVF-doxygen/html/html/classSVF_1_1TCT.html +18 -18
  290. package/SVF-doxygen/html/html/classSVF_1_1TDForkPE.html +1 -1
  291. package/SVF-doxygen/html/html/classSVF_1_1TDJoinPE.html +1 -1
  292. package/SVF-doxygen/html/html/classSVF_1_1ThreadAPI.html +1 -1
  293. package/SVF-doxygen/html/html/classSVF_1_1ThreadCallGraph.html +7 -7
  294. package/SVF-doxygen/html/html/classSVF_1_1ThreadCallGraphBuilder.html +1 -1
  295. package/SVF-doxygen/html/html/classSVF_1_1TypeAnalysis.html +6 -6
  296. package/SVF-doxygen/html/html/classSVF_1_1TypeBasedHeapCloning.html +21 -21
  297. package/SVF-doxygen/html/html/classSVF_1_1UnaryOPStmt.html +1 -1
  298. package/SVF-doxygen/html/html/classSVF_1_1UnaryOPVFGNode.html +1 -1
  299. package/SVF-doxygen/html/html/classSVF_1_1VFG.html +6 -6
  300. package/SVF-doxygen/html/html/classSVF_1_1ValVar.html +1 -1
  301. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive.html +1 -1
  302. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitiveStat.html +3 -3
  303. package/SVF-doxygen/html/html/dda_8cpp.html +1 -1
  304. package/SVF-doxygen/html/html/dda_8cpp_source.html +1 -1
  305. package/SVF-doxygen/html/html/functions_b.html +6 -3
  306. package/SVF-doxygen/html/html/functions_func_i.html +5 -5
  307. package/SVF-doxygen/html/html/functions_i.html +6 -6
  308. package/SVF-doxygen/html/html/functions_l.html +1 -1
  309. package/SVF-doxygen/html/html/functions_n.html +3 -0
  310. package/SVF-doxygen/html/html/functions_o.html +3 -3
  311. package/SVF-doxygen/html/html/functions_p.html +19 -15
  312. package/SVF-doxygen/html/html/functions_r.html +5 -3
  313. package/SVF-doxygen/html/html/functions_s.html +12 -10
  314. package/SVF-doxygen/html/html/functions_v.html +3 -3
  315. package/SVF-doxygen/html/html/functions_vars_b.html +3 -0
  316. package/SVF-doxygen/html/html/functions_vars_n.html +3 -0
  317. package/SVF-doxygen/html/html/functions_w.html +10 -6
  318. package/SVF-doxygen/html/html/globals_c.html +105 -102
  319. package/SVF-doxygen/html/html/globals_r.html +3 -3
  320. package/SVF-doxygen/html/html/globals_s.html +4 -6
  321. package/SVF-doxygen/html/html/globals_type.html +3 -0
  322. package/SVF-doxygen/html/html/mta_8cpp.html +1 -1
  323. package/SVF-doxygen/html/html/mta_8cpp_source.html +1 -1
  324. package/SVF-doxygen/html/html/namespaceSVF.html +17 -35
  325. package/SVF-doxygen/html/html/namespaceSVF_1_1SVFUtil.html +502 -443
  326. package/SVF-doxygen/html/html/namespaceSVF_1_1cppUtil.html +62 -62
  327. package/SVF-doxygen/html/html/namespacemembers_c.html +0 -3
  328. package/SVF-doxygen/html/html/namespacemembers_func.html +14 -8
  329. package/SVF-doxygen/html/html/namespacemembers_i.html +10 -4
  330. package/SVF-doxygen/html/html/namespacemembers_type.html +0 -3
  331. package/SVF-doxygen/html/html/saber_8cpp.html +1 -1
  332. package/SVF-doxygen/html/html/saber_8cpp_source.html +1 -1
  333. package/SVF-doxygen/html/html/search/all_10.js +9 -9
  334. package/SVF-doxygen/html/html/search/all_12.js +3 -3
  335. package/SVF-doxygen/html/html/search/all_13.js +9 -9
  336. package/SVF-doxygen/html/html/search/all_14.js +5 -5
  337. package/SVF-doxygen/html/html/search/all_15.js +1 -1
  338. package/SVF-doxygen/html/html/search/all_16.js +2 -2
  339. package/SVF-doxygen/html/html/search/all_17.js +1 -1
  340. package/SVF-doxygen/html/html/search/all_2.js +1 -0
  341. package/SVF-doxygen/html/html/search/all_3.js +1 -1
  342. package/SVF-doxygen/html/html/search/all_9.js +5 -5
  343. package/SVF-doxygen/html/html/search/all_c.js +2 -2
  344. package/SVF-doxygen/html/html/search/all_e.js +2 -1
  345. package/SVF-doxygen/html/html/search/all_f.js +1 -1
  346. package/SVF-doxygen/html/html/search/functions_8.js +3 -3
  347. package/SVF-doxygen/html/html/search/typedefs_2.js +1 -1
  348. package/SVF-doxygen/html/html/search/variables_14.js +3 -3
  349. package/SVF-doxygen/html/html/search/variables_15.js +1 -1
  350. package/SVF-doxygen/html/html/search/variables_2.js +1 -0
  351. package/SVF-doxygen/html/html/search/variables_e.js +2 -1
  352. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01ConstraintGraph_01_5_01_4.html +1 -1
  353. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01IRGraph_01_5_01_4.html +1 -1
  354. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01PTACallGraph_01_5_01_4.html +2 -2
  355. package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1CallSite_01_4.html +3 -3
  356. package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1CxtProc_01_4.html +1 -1
  357. package/SVF-doxygen/html/html/svf-ex_8cpp.html +1 -1
  358. package/SVF-doxygen/html/html/svf-ex_8cpp_source.html +1 -1
  359. package/SVF-doxygen/html/html/wpa_8cpp.html +1 -1
  360. package/SVF-doxygen/html/html/wpa_8cpp_source.html +1 -1
  361. package/include/MemoryModel/SymbolTableInfo.h +3 -2
  362. package/include/SVF-FE/BasicTypes.h +1 -0
  363. package/include/SVF-FE/Graph2Json.h +1 -1
  364. package/include/SVF-FE/LLVMUtil.h +9 -373
  365. package/include/Util/BasicTypes.h +0 -1
  366. package/include/Util/SVFUtil.h +379 -0
  367. package/lib/Graphs/PTACallGraph.cpp +1 -1
  368. package/lib/Graphs/SVFG.cpp +1 -1
  369. package/lib/Graphs/SVFGReadWrite.cpp +1 -1
  370. package/lib/Graphs/VFG.cpp +1 -1
  371. package/lib/MSSA/SVFGBuilder.cpp +1 -1
  372. package/lib/MemoryModel/PointerAnalysis.cpp +1 -0
  373. package/lib/MemoryModel/SVFVariables.cpp +1 -1
  374. package/lib/MemoryModel/SymbolTableInfo.cpp +7 -37
  375. package/lib/SVF-FE/CPPUtil.cpp +1 -0
  376. package/lib/SVF-FE/CallGraphBuilder.cpp +1 -1
  377. package/lib/SVF-FE/LLVMUtil.cpp +34 -8
  378. package/lib/SVF-FE/SVFIRBuilder.cpp +1 -1
  379. package/lib/SVF-FE/SymbolTableBuilder.cpp +13 -5
  380. package/lib/Util/ExeState.cpp +1 -1
  381. package/lib/Util/SVFUtil.cpp +9 -1
  382. package/lib/WPA/Andersen.cpp +1 -1
  383. package/lib/WPA/VersionedFlowSensitiveStat.cpp +1 -1
  384. package/package.json +1 -1
@@ -66,20 +66,21 @@ $(function() {
66
66
  <div class="title">SVFGBuilder.cpp</div> </div>
67
67
  </div><!--header-->
68
68
  <div class="contents">
69
- <a href="SVFGBuilder_8cpp.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.cpp -- SVFG builder----------------------------------------//</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"> * SVFGBuilder.cpp</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: Apr 15, 2014</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;<span class="preprocessor">#include &quot;<a class="code" href="Options_8h.html">Util/Options.h</a>&quot;</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="SVFModule_8h.html">Util/SVFModule.h</a>&quot;</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="LLVMUtil_8h.html">SVF-FE/LLVMUtil.h</a>&quot;</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="MemSSA_8h.html">MSSA/MemSSA.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="SVFG_8h.html">Graphs/SVFG.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="SVFGBuilder_8h.html">MSSA/SVFGBuilder.h</a>&quot;</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="Andersen_8h.html">WPA/Andersen.h</a>&quot;</span></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;<span class="keyword">using namespace </span><a class="code" href="namespaceSVF.html">SVF</a>;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="keyword">using namespace </span>SVFUtil;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<a class="code" href="classSVF_1_1SVFG.html">SVFG</a>* <a class="code" href="classSVF_1_1SVFGBuilder.html#a31b754a303116f33d679dfcd886c4bed">SVFGBuilder::globalSvfg</a> = <span class="keyword">nullptr</span>;</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;</div><div class="line"><a name="l00044"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFGBuilder.html#ab7353191edd06568e2598177d253c1d9"> 44</a></span>&#160;<a class="code" href="classSVF_1_1SVFG.html">SVFG</a>* <a class="code" href="classSVF_1_1SVFGBuilder.html#ab7353191edd06568e2598177d253c1d9">SVFGBuilder::buildPTROnlySVFG</a>(<a class="code" href="classSVF_1_1BVDataPTAImpl.html">BVDataPTAImpl</a>* pta)</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; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1Options.html#a7704ff30e6fc5043313adf5c655bcd4a">Options::OPTSVFG</a>)</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <span class="keywordflow">return</span> build(pta, <a class="code" href="classSVF_1_1VFG.html#ac2e2f555975063da3fa1932ac35802c6a8ed0b9aea88fbbbe91f33301bea0c9dd">VFG::PTRONLYSVFG_OPT</a>);</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <span class="keywordflow">return</span> build(pta, <a class="code" href="classSVF_1_1VFG.html#ac2e2f555975063da3fa1932ac35802c6ada8562b20e8d888a4b421c200957294d">VFG::PTRONLYSVFG</a>);</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;}</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;</div><div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFGBuilder.html#a54a713e3989597b11cee70864d0197bd"> 52</a></span>&#160;<a class="code" href="classSVF_1_1SVFG.html">SVFG</a>* <a class="code" href="classSVF_1_1SVFGBuilder.html#a54a713e3989597b11cee70864d0197bd">SVFGBuilder::buildFullSVFG</a>(<a class="code" href="classSVF_1_1BVDataPTAImpl.html">BVDataPTAImpl</a>* pta)</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; <span class="keywordflow">return</span> build(pta, <a class="code" href="classSVF_1_1VFG.html#ac2e2f555975063da3fa1932ac35802c6a5a28e6fd51e73e076091d4b6f4e61eaa">VFG::FULLSVFG</a>);</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;}</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;</div><div class="line"><a name="l00061"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFGBuilder.html#ae2d84f7527de200a2f269dc1c056a305"> 61</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFGBuilder.html#ae2d84f7527de200a2f269dc1c056a305">SVFGBuilder::buildSVFG</a>()</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;{</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; svfg-&gt;buildSVFG();</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;}</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;</div><div class="line"><a name="l00067"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFGBuilder.html#a47591192260ddc3ff0717430f127cc95"> 67</a></span>&#160;<a class="code" href="classSVF_1_1SVFG.html">SVFG</a>* <a class="code" href="classSVF_1_1SVFGBuilder.html#a47591192260ddc3ff0717430f127cc95">SVFGBuilder::build</a>(<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="l00068"></a><span class="lineno"> 68</span>&#160;{</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <a class="code" href="classSVF_1_1MemSSA.html">MemSSA</a>* mssa = buildMSSA(pta, (<a class="code" href="classSVF_1_1VFG.html#ac2e2f555975063da3fa1932ac35802c6ada8562b20e8d888a4b421c200957294d">VFG::PTRONLYSVFG</a>==kind || <a class="code" href="classSVF_1_1VFG.html#ac2e2f555975063da3fa1932ac35802c6a8ed0b9aea88fbbbe91f33301bea0c9dd">VFG::PTRONLYSVFG_OPT</a>==kind));</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <a class="code" href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFBasicTypes_8h.html#a2c64190a065f342897573a3ef4973adb">DGENERAL</a>, <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; <a class="code" href="namespaceSVF_1_1SVFUtil.html#a609eea630a8f88fe9eaba15ce7e48738">pasMsg</a>(<span class="stringliteral">&quot;Build Sparse Value-Flow Graph \n&quot;</span>));</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1Options.html#a78ce4bd2e80e7b87ff0ee52edd1db403">Options::SingleVFG</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; <span class="keywordflow">if</span>(globalSvfg==<span class="keyword">nullptr</span>)</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; {</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <span class="keywordflow">if</span>(kind == <a class="code" href="classSVF_1_1VFG.html#ac2e2f555975063da3fa1932ac35802c6aab1abd6be4a29fe8fb03a82f85e568a0">VFG::FULLSVFG_OPT</a> || kind == <a class="code" href="classSVF_1_1VFG.html#ac2e2f555975063da3fa1932ac35802c6a8ed0b9aea88fbbbe91f33301bea0c9dd">VFG::PTRONLYSVFG_OPT</a>)</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; svfg = globalSvfg = <span class="keyword">new</span> <a class="code" href="classSVF_1_1SVFGOPT.html">SVFGOPT</a>(mssa, kind);</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; svfg = globalSvfg = <span class="keyword">new</span> <a class="code" href="classSVF_1_1SVFG.html">SVFG</a>(mssa, kind);</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; buildSVFG();</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; }</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; {</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; <span class="keywordflow">if</span>(kind == <a class="code" href="classSVF_1_1VFG.html#ac2e2f555975063da3fa1932ac35802c6aab1abd6be4a29fe8fb03a82f85e568a0">VFG::FULLSVFG_OPT</a> || kind == <a class="code" href="classSVF_1_1VFG.html#ac2e2f555975063da3fa1932ac35802c6a8ed0b9aea88fbbbe91f33301bea0c9dd">VFG::PTRONLYSVFG_OPT</a>)</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; svfg = <span class="keyword">new</span> <a class="code" href="classSVF_1_1SVFGOPT.html">SVFGOPT</a>(mssa, kind);</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; svfg = <span class="keyword">new</span> <a class="code" href="classSVF_1_1SVFG.html">SVFG</a>(mssa,kind);</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; buildSVFG();</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"> 95</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1Options.html#a982b4cd71ccafd07d94f10a0a2e953c2">Options::SVFGWithIndirectCall</a> || SVFGWithIndCall)</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; svfg-&gt;updateCallGraph(pta);</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <span class="keywordflow">if</span>(mssa-&gt;<a class="code" href="classSVF_1_1MemSSA.html#ad40617a1907b9a6b8cc24888ce54a0ac">getPTA</a>()-&gt;<a class="code" href="classSVF_1_1PointerAnalysis.html#a4880571f57542afc50da506dfe273183">printStat</a>())</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; svfg-&gt;performStat();</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1Options.html#a3061c75f7491dd737222b1b877721070">Options::DumpVFG</a>)</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; svfg-&gt;dump(<span class="stringliteral">&quot;svfg_final&quot;</span>);</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; <span class="keywordflow">return</span> svfg;</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;}</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;</div><div class="line"><a name="l00110"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFGBuilder.html#a6e08e6a99f7e743abf35e603e35e54f5"> 110</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFGBuilder.html#a6e08e6a99f7e743abf35e603e35e54f5">SVFGBuilder::releaseMemory</a>()</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;{</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; svfg-&gt;clearMSSA();</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;}</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;</div><div class="line"><a name="l00115"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFGBuilder.html#a49cee21be46d6a3f65eec638714038ed"> 115</a></span>&#160;<a class="code" href="classSVF_1_1MemSSA.html">MemSSA</a>* <a class="code" href="classSVF_1_1SVFGBuilder.html#a49cee21be46d6a3f65eec638714038ed">SVFGBuilder::buildMSSA</a>(<a class="code" href="classSVF_1_1BVDataPTAImpl.html">BVDataPTAImpl</a>* pta, <span class="keywordtype">bool</span> ptrOnlyMSSA)</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;{</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <a class="code" href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFBasicTypes_8h.html#a2c64190a065f342897573a3ef4973adb">DGENERAL</a>, <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; <a class="code" href="namespaceSVF_1_1SVFUtil.html#a609eea630a8f88fe9eaba15ce7e48738">pasMsg</a>(<span class="stringliteral">&quot;Build Memory SSA \n&quot;</span>));</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; <a class="code" href="classSVF_1_1MemSSA.html">MemSSA</a>* mssa = <span class="keyword">new</span> <a class="code" href="classSVF_1_1MemSSA.html">MemSSA</a>(pta, ptrOnlyMSSA);</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; <a class="code" href="namespaceSVF.html#aecbb42b8e9d17fa0189c50dda9fd5fdd">DominatorTree</a> dt;</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <a class="code" href="classSVF_1_1MemSSADF.html">MemSSADF</a> df;</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; <a class="code" href="classSVF_1_1SVFModule.html">SVFModule</a>* svfModule = mssa-&gt;<a class="code" href="classSVF_1_1MemSSA.html#ad40617a1907b9a6b8cc24888ce54a0ac">getPTA</a>()-&gt;<a class="code" href="classSVF_1_1PointerAnalysis.html#ad8b71cebf46deaf60e2cd4f6d6bb9433">getModule</a>();</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="classSVF_1_1SVFModule.html#afcf2978f32e15127fb093405dc17d7f1">SVFModule::const_iterator</a> iter = svfModule-&gt;<a class="code" href="classSVF_1_1SVFModule.html#a5486697889c6cca4f9f426650defc255">begin</a>(), eiter = svfModule-&gt;<a class="code" href="classSVF_1_1SVFModule.html#a58d03edb6ff85f4943135478f113df31">end</a>();</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; iter != eiter; ++iter)</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; {</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a> *fun = *iter;</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="namespaceSVF_1_1SVFUtil.html#a22ef185e767ff76c098e75126c885400">isExtCall</a>(fun))</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; <span class="keywordflow">continue</span>;</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; dt.recalculate(*fun-&gt;<a class="code" href="classSVF_1_1SVFFunction.html#ac4ae917ae35ac6fca652fe2dd90a8ac2">getLLVMFun</a>());</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; df.<a class="code" href="classSVF_1_1MemSSADF.html#a050e6010673cb24d4ef689100213594b">runOnDT</a>(dt);</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160;</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; mssa-&gt;<a class="code" href="classSVF_1_1MemSSA.html#ae56d1878046c119d1857727ca3609d74">buildMemSSA</a>(*fun, &amp;df, &amp;dt);</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; }</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; mssa-&gt;<a class="code" href="classSVF_1_1MemSSA.html#a89c40c8fad70f3aead6531261e5a3cc3">performStat</a>();</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1Options.html#a097255cb1373feaaaf2fe60c998862d5">Options::DumpMSSA</a>)</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; {</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; mssa-&gt;<a class="code" href="classSVF_1_1MemSSA.html#a749df6d6b28dd1bae569989bffeb7746">dumpMSSA</a>();</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; }</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160;</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; <span class="keywordflow">return</span> mssa;</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;}</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160;</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160;</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>
69
+ <a href="SVFGBuilder_8cpp.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.cpp -- SVFG builder----------------------------------------//</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"> * SVFGBuilder.cpp</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: Apr 15, 2014</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;<span class="preprocessor">#include &quot;<a class="code" href="Options_8h.html">Util/Options.h</a>&quot;</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="SVFModule_8h.html">Util/SVFModule.h</a>&quot;</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="SVFUtil_8h.html">Util/SVFUtil.h</a>&quot;</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="MemSSA_8h.html">MSSA/MemSSA.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="SVFG_8h.html">Graphs/SVFG.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="SVFGBuilder_8h.html">MSSA/SVFGBuilder.h</a>&quot;</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="Andersen_8h.html">WPA/Andersen.h</a>&quot;</span></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;<span class="keyword">using namespace </span><a class="code" href="namespaceSVF.html">SVF</a>;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="keyword">using namespace </span>SVFUtil;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<a class="code" href="classSVF_1_1SVFG.html">SVFG</a>* <a class="code" href="classSVF_1_1SVFGBuilder.html#a31b754a303116f33d679dfcd886c4bed">SVFGBuilder::globalSvfg</a> = <span class="keyword">nullptr</span>;</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;</div><div class="line"><a name="l00044"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFGBuilder.html#ab7353191edd06568e2598177d253c1d9"> 44</a></span>&#160;<a class="code" href="classSVF_1_1SVFG.html">SVFG</a>* <a class="code" href="classSVF_1_1SVFGBuilder.html#ab7353191edd06568e2598177d253c1d9">SVFGBuilder::buildPTROnlySVFG</a>(<a class="code" href="classSVF_1_1BVDataPTAImpl.html">BVDataPTAImpl</a>* pta)</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; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1Options.html#a7704ff30e6fc5043313adf5c655bcd4a">Options::OPTSVFG</a>)</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <span class="keywordflow">return</span> build(pta, <a class="code" href="classSVF_1_1VFG.html#ac2e2f555975063da3fa1932ac35802c6a8ed0b9aea88fbbbe91f33301bea0c9dd">VFG::PTRONLYSVFG_OPT</a>);</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <span class="keywordflow">return</span> build(pta, <a class="code" href="classSVF_1_1VFG.html#ac2e2f555975063da3fa1932ac35802c6ada8562b20e8d888a4b421c200957294d">VFG::PTRONLYSVFG</a>);</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;}</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;</div><div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFGBuilder.html#a54a713e3989597b11cee70864d0197bd"> 52</a></span>&#160;<a class="code" href="classSVF_1_1SVFG.html">SVFG</a>* <a class="code" href="classSVF_1_1SVFGBuilder.html#a54a713e3989597b11cee70864d0197bd">SVFGBuilder::buildFullSVFG</a>(<a class="code" href="classSVF_1_1BVDataPTAImpl.html">BVDataPTAImpl</a>* pta)</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; <span class="keywordflow">return</span> build(pta, <a class="code" href="classSVF_1_1VFG.html#ac2e2f555975063da3fa1932ac35802c6a5a28e6fd51e73e076091d4b6f4e61eaa">VFG::FULLSVFG</a>);</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;}</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;</div><div class="line"><a name="l00061"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFGBuilder.html#ae2d84f7527de200a2f269dc1c056a305"> 61</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFGBuilder.html#ae2d84f7527de200a2f269dc1c056a305">SVFGBuilder::buildSVFG</a>()</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;{</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; svfg-&gt;buildSVFG();</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;}</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;</div><div class="line"><a name="l00067"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFGBuilder.html#a47591192260ddc3ff0717430f127cc95"> 67</a></span>&#160;<a class="code" href="classSVF_1_1SVFG.html">SVFG</a>* <a class="code" href="classSVF_1_1SVFGBuilder.html#a47591192260ddc3ff0717430f127cc95">SVFGBuilder::build</a>(<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="l00068"></a><span class="lineno"> 68</span>&#160;{</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <a class="code" href="classSVF_1_1MemSSA.html">MemSSA</a>* mssa = buildMSSA(pta, (<a class="code" href="classSVF_1_1VFG.html#ac2e2f555975063da3fa1932ac35802c6ada8562b20e8d888a4b421c200957294d">VFG::PTRONLYSVFG</a>==kind || <a class="code" href="classSVF_1_1VFG.html#ac2e2f555975063da3fa1932ac35802c6a8ed0b9aea88fbbbe91f33301bea0c9dd">VFG::PTRONLYSVFG_OPT</a>==kind));</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <a class="code" href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFBasicTypes_8h.html#a2c64190a065f342897573a3ef4973adb">DGENERAL</a>, <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; <a class="code" href="namespaceSVF_1_1SVFUtil.html#a609eea630a8f88fe9eaba15ce7e48738">pasMsg</a>(<span class="stringliteral">&quot;Build Sparse Value-Flow Graph \n&quot;</span>));</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1Options.html#a78ce4bd2e80e7b87ff0ee52edd1db403">Options::SingleVFG</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; <span class="keywordflow">if</span>(globalSvfg==<span class="keyword">nullptr</span>)</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; {</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <span class="keywordflow">if</span>(kind == <a class="code" href="classSVF_1_1VFG.html#ac2e2f555975063da3fa1932ac35802c6aab1abd6be4a29fe8fb03a82f85e568a0">VFG::FULLSVFG_OPT</a> || kind == <a class="code" href="classSVF_1_1VFG.html#ac2e2f555975063da3fa1932ac35802c6a8ed0b9aea88fbbbe91f33301bea0c9dd">VFG::PTRONLYSVFG_OPT</a>)</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; svfg = globalSvfg = <span class="keyword">new</span> <a class="code" href="classSVF_1_1SVFGOPT.html">SVFGOPT</a>(mssa, kind);</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; svfg = globalSvfg = <span class="keyword">new</span> <a class="code" href="classSVF_1_1SVFG.html">SVFG</a>(mssa, kind);</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; buildSVFG();</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; }</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; {</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; <span class="keywordflow">if</span>(kind == <a class="code" href="classSVF_1_1VFG.html#ac2e2f555975063da3fa1932ac35802c6aab1abd6be4a29fe8fb03a82f85e568a0">VFG::FULLSVFG_OPT</a> || kind == <a class="code" href="classSVF_1_1VFG.html#ac2e2f555975063da3fa1932ac35802c6a8ed0b9aea88fbbbe91f33301bea0c9dd">VFG::PTRONLYSVFG_OPT</a>)</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; svfg = <span class="keyword">new</span> <a class="code" href="classSVF_1_1SVFGOPT.html">SVFGOPT</a>(mssa, kind);</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; svfg = <span class="keyword">new</span> <a class="code" href="classSVF_1_1SVFG.html">SVFG</a>(mssa,kind);</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; buildSVFG();</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"> 95</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1Options.html#a982b4cd71ccafd07d94f10a0a2e953c2">Options::SVFGWithIndirectCall</a> || SVFGWithIndCall)</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; svfg-&gt;updateCallGraph(pta);</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <span class="keywordflow">if</span>(mssa-&gt;<a class="code" href="classSVF_1_1MemSSA.html#ad40617a1907b9a6b8cc24888ce54a0ac">getPTA</a>()-&gt;<a class="code" href="classSVF_1_1PointerAnalysis.html#a4880571f57542afc50da506dfe273183">printStat</a>())</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; svfg-&gt;performStat();</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1Options.html#a3061c75f7491dd737222b1b877721070">Options::DumpVFG</a>)</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; svfg-&gt;dump(<span class="stringliteral">&quot;svfg_final&quot;</span>);</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; <span class="keywordflow">return</span> svfg;</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;}</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;</div><div class="line"><a name="l00110"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFGBuilder.html#a6e08e6a99f7e743abf35e603e35e54f5"> 110</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFGBuilder.html#a6e08e6a99f7e743abf35e603e35e54f5">SVFGBuilder::releaseMemory</a>()</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;{</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; svfg-&gt;clearMSSA();</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;}</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;</div><div class="line"><a name="l00115"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFGBuilder.html#a49cee21be46d6a3f65eec638714038ed"> 115</a></span>&#160;<a class="code" href="classSVF_1_1MemSSA.html">MemSSA</a>* <a class="code" href="classSVF_1_1SVFGBuilder.html#a49cee21be46d6a3f65eec638714038ed">SVFGBuilder::buildMSSA</a>(<a class="code" href="classSVF_1_1BVDataPTAImpl.html">BVDataPTAImpl</a>* pta, <span class="keywordtype">bool</span> ptrOnlyMSSA)</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;{</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <a class="code" href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFBasicTypes_8h.html#a2c64190a065f342897573a3ef4973adb">DGENERAL</a>, <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; <a class="code" href="namespaceSVF_1_1SVFUtil.html#a609eea630a8f88fe9eaba15ce7e48738">pasMsg</a>(<span class="stringliteral">&quot;Build Memory SSA \n&quot;</span>));</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; <a class="code" href="classSVF_1_1MemSSA.html">MemSSA</a>* mssa = <span class="keyword">new</span> <a class="code" href="classSVF_1_1MemSSA.html">MemSSA</a>(pta, ptrOnlyMSSA);</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; <a class="code" href="namespaceSVF.html#aecbb42b8e9d17fa0189c50dda9fd5fdd">DominatorTree</a> dt;</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <a class="code" href="classSVF_1_1MemSSADF.html">MemSSADF</a> df;</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; <a class="code" href="classSVF_1_1SVFModule.html">SVFModule</a>* svfModule = mssa-&gt;<a class="code" href="classSVF_1_1MemSSA.html#ad40617a1907b9a6b8cc24888ce54a0ac">getPTA</a>()-&gt;<a class="code" href="classSVF_1_1PointerAnalysis.html#ad8b71cebf46deaf60e2cd4f6d6bb9433">getModule</a>();</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="classSVF_1_1SVFModule.html#afcf2978f32e15127fb093405dc17d7f1">SVFModule::const_iterator</a> iter = svfModule-&gt;<a class="code" href="classSVF_1_1SVFModule.html#a5486697889c6cca4f9f426650defc255">begin</a>(), eiter = svfModule-&gt;<a class="code" href="classSVF_1_1SVFModule.html#a58d03edb6ff85f4943135478f113df31">end</a>();</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; iter != eiter; ++iter)</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; {</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a> *fun = *iter;</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="namespaceSVF_1_1SVFUtil.html#a22ef185e767ff76c098e75126c885400">isExtCall</a>(fun))</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; <span class="keywordflow">continue</span>;</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; dt.recalculate(*fun-&gt;<a class="code" href="classSVF_1_1SVFFunction.html#ac4ae917ae35ac6fca652fe2dd90a8ac2">getLLVMFun</a>());</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; df.<a class="code" href="classSVF_1_1MemSSADF.html#a050e6010673cb24d4ef689100213594b">runOnDT</a>(dt);</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160;</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; mssa-&gt;<a class="code" href="classSVF_1_1MemSSA.html#ae56d1878046c119d1857727ca3609d74">buildMemSSA</a>(*fun, &amp;df, &amp;dt);</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; }</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; mssa-&gt;<a class="code" href="classSVF_1_1MemSSA.html#a89c40c8fad70f3aead6531261e5a3cc3">performStat</a>();</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1Options.html#a097255cb1373feaaaf2fe60c998862d5">Options::DumpMSSA</a>)</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; {</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; mssa-&gt;<a class="code" href="classSVF_1_1MemSSA.html#a749df6d6b28dd1bae569989bffeb7746">dumpMSSA</a>();</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; }</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160;</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; <span class="keywordflow">return</span> mssa;</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;}</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160;</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160;</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
70
  <div class="ttc" id="Andersen_8h_html"><div class="ttname"><a href="Andersen_8h.html">Andersen.h</a></div></div>
71
71
  <div class="ttc" id="classSVF_1_1VFG_html_ac2e2f555975063da3fa1932ac35802c6aab1abd6be4a29fe8fb03a82f85e568a0"><div class="ttname"><a href="classSVF_1_1VFG.html#ac2e2f555975063da3fa1932ac35802c6aab1abd6be4a29fe8fb03a82f85e568a0">SVF::VFG::FULLSVFG_OPT</a></div><div class="ttdef"><b>Definition:</b> <a href="VFG_8h_source.html#l00057">VFG.h:57</a></div></div>
72
72
  <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#l00067">SVFGBuilder.cpp:67</a></div></div>
73
- <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#l00101">SVFUtil.cpp:101</a></div></div>
73
+ <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>
74
74
  <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#l00147">SVFModule.h:147</a></div></div>
75
75
  <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#l00057">VFG.h:57</a></div></div>
76
76
  <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#l00052">SVFGBuilder.cpp:52</a></div></div>
77
77
  <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#l00057">VFG.h:57</a></div></div>
78
78
  <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#l00110">SVFGBuilder.cpp:110</a></div></div>
79
- <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="Util_2BasicTypes_8h_source.html#l00128">BasicTypes.h:128</a></div></div>
79
+ <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="Util_2BasicTypes_8h_source.html#l00127">BasicTypes.h:127</a></div></div>
80
80
  <div class="ttc" id="SVFGBuilder_8h_html"><div class="ttname"><a href="SVFGBuilder_8h.html">SVFGBuilder.h</a></div></div>
81
81
  <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#l00367">PointerAnalysis.h:367</a></div></div>
82
82
  <div class="ttc" id="SVFG_8h_html"><div class="ttname"><a href="SVFG_8h.html">SVFG.h</a></div></div>
83
+ <div class="ttc" id="SVFUtil_8h_html"><div class="ttname"><a href="SVFUtil_8h.html">SVFUtil.h</a></div></div>
83
84
  <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#l00041">SVFModule.h:41</a></div></div>
84
85
  <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>
85
86
  <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>
@@ -96,12 +97,12 @@ $(function() {
96
97
  <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#l00121">Options.h:121</a></div></div>
97
98
  <div class="ttc" id="classSVF_1_1Options_html_a7704ff30e6fc5043313adf5c655bcd4a"><div class="ttname"><a href="classSVF_1_1Options.html#a7704ff30e6fc5043313adf5c655bcd4a">SVF::Options::OPTSVFG</a></div><div class="ttdeci">static llvm::cl::opt&lt; bool &gt; OPTSVFG</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00159">Options.h:159</a></div></div>
98
99
  <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_aed0b0b9f035057552a6a82154fd88e61"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVF::SVFUtil::outs</a></div><div class="ttdeci">std::ostream &amp; outs()</div><div class="ttdoc">Overwrite llvm::outs() </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00049">SVFUtil.h:49</a></div></div>
99
- <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="Util_2BasicTypes_8h_source.html#l00111">BasicTypes.h:111</a></div></div>
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="Util_2BasicTypes_8h_source.html#l00110">BasicTypes.h:110</a></div></div>
100
101
  <div class="ttc" id="classSVF_1_1Options_html_a097255cb1373feaaaf2fe60c998862d5"><div class="ttname"><a href="classSVF_1_1Options.html#a097255cb1373feaaaf2fe60c998862d5">SVF::Options::DumpMSSA</a></div><div class="ttdeci">static const llvm::cl::opt&lt; bool &gt; DumpMSSA</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00151">Options.h:151</a></div></div>
101
102
  <div class="ttc" id="classSVF_1_1Options_html_a78ce4bd2e80e7b87ff0ee52edd1db403"><div class="ttname"><a href="classSVF_1_1Options.html#a78ce4bd2e80e7b87ff0ee52edd1db403">SVF::Options::SingleVFG</a></div><div class="ttdeci">static const llvm::cl::opt&lt; bool &gt; SingleVFG</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00158">Options.h:158</a></div></div>
102
103
  <div class="ttc" id="Options_8h_html"><div class="ttname"><a href="Options_8h.html">Options.h</a></div></div>
103
104
  <div class="ttc" id="SVFBasicTypes_8h_html_a2c64190a065f342897573a3ef4973adb"><div class="ttname"><a href="SVFBasicTypes_8h.html#a2c64190a065f342897573a3ef4973adb">DGENERAL</a></div><div class="ttdeci">#define DGENERAL</div><div class="ttdoc">General debug flag is for each phase of a pass, it is often in a colorful output format. </div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00159">SVFBasicTypes.h:159</a></div></div>
104
- <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="Util_2BasicTypes_8h_source.html#l00144">BasicTypes.h:144</a></div></div>
105
+ <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="Util_2BasicTypes_8h_source.html#l00143">BasicTypes.h:143</a></div></div>
105
106
  <div class="ttc" id="classSVF_1_1SVFGBuilder_html_ae2d84f7527de200a2f269dc1c056a305"><div class="ttname"><a href="classSVF_1_1SVFGBuilder.html#ae2d84f7527de200a2f269dc1c056a305">SVF::SVFGBuilder::buildSVFG</a></div><div class="ttdeci">virtual void buildSVFG()</div><div class="ttdoc">Can be rewritten by subclasses. </div><div class="ttdef"><b>Definition:</b> <a href="SVFGBuilder_8cpp_source.html#l00061">SVFGBuilder.cpp:61</a></div></div>
106
107
  <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>
107
108
  <div class="ttc" id="namespaceSVF_html"><div class="ttname"><a href="namespaceSVF.html">SVF</a></div><div class="ttdoc">for isBitcode </div><div class="ttdef"><b>Definition:</b> <a href="CFGNormalizer_8h_source.html#l00035">CFGNormalizer.h:35</a></div></div>
@@ -113,8 +114,7 @@ $(function() {
113
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#l00154">SVFBasicTypes.h:154</a></div></div>
114
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#l00052">SVFModule.h:52</a></div></div>
115
116
  <div class="ttc" id="classSVF_1_1SVFGOPT_html"><div class="ttname"><a href="classSVF_1_1SVFGOPT.html">SVF::SVFGOPT</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFGOPT_8h_source.html#l00056">SVFGOPT.h:56</a></div></div>
116
- <div class="ttc" id="LLVMUtil_8h_html"><div class="ttname"><a href="LLVMUtil_8h.html">LLVMUtil.h</a></div></div>
117
- <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a22ef185e767ff76c098e75126c885400"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a22ef185e767ff76c098e75126c885400">SVF::SVFUtil::isExtCall</a></div><div class="ttdeci">bool isExtCall(const SVFFunction *fun)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#l00072">LLVMUtil.h:72</a></div></div>
117
+ <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a22ef185e767ff76c098e75126c885400"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a22ef185e767ff76c098e75126c885400">SVF::SVFUtil::isExtCall</a></div><div class="ttdeci">bool isExtCall(const SVFFunction *fun)</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00358">SVFUtil.h:358</a></div></div>
118
118
  </div><!-- fragment --></div><!-- contents -->
119
119
  <!-- start footer part -->
120
120
  <hr class="footer"/><address class="footer"><small>
@@ -71,7 +71,7 @@ $(function() {
71
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
72
  <div class="ttc" id="PointerAnalysis_8h_html"><div class="ttname"><a href="PointerAnalysis_8h.html">PointerAnalysis.h</a></div></div>
73
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>
74
- <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="Util_2BasicTypes_8h_source.html#l00110">BasicTypes.h:110</a></div></div>
74
+ <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="Util_2BasicTypes_8h_source.html#l00109">BasicTypes.h:109</a></div></div>
75
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#l00042">SVFGBuilder.h:42</a></div></div>
76
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#l00069">SVFGBuilder.h:69</a></div></div>
77
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#l00074">SVFGBuilder.h:74</a></div></div>
@@ -84,7 +84,7 @@ $(function() {
84
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#l00078">VFG.h:78</a></div></div>
85
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>
86
86
  <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#l00110">PointerAnalysis.h:110</a></div></div>
87
- <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="Util_2BasicTypes_8h_source.html#l00111">BasicTypes.h:111</a></div></div>
87
+ <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="Util_2BasicTypes_8h_source.html#l00110">BasicTypes.h:110</a></div></div>
88
88
  <div class="ttc" id="SVFGOPT_8h_html"><div class="ttname"><a href="SVFGOPT_8h.html">SVFGOPT.h</a></div></div>
89
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#l00087">SVFGBuilder.h:87</a></div></div>
90
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#l00072">SVFGBuilder.h:72</a></div></div>
@@ -87,7 +87,7 @@ $(function() {
87
87
  <div class="ttc" id="classSVF_1_1DummyVersionPropSVFGNode_html_ac997d06e133d698a5aa29c2af55a624e"><div class="ttname"><a href="classSVF_1_1DummyVersionPropSVFGNode.html#ac997d06e133d698a5aa29c2af55a624e">SVF::DummyVersionPropSVFGNode::classof</a></div><div class="ttdeci">static bool classof(const DummyVersionPropSVFGNode *)</div><div class="ttdoc">Methods to support type inquiry through isa, cast, and dyn_cast: </div><div class="ttdef"><b>Definition:</b> <a href="SVFGNode_8h_source.html#l00487">SVFGNode.h:487</a></div></div>
88
88
  <div class="ttc" id="classSVF_1_1IntraMSSAPHISVFGNode_html_a1382366ed10250d8f9a21c1f28bcad1c"><div class="ttname"><a href="classSVF_1_1IntraMSSAPHISVFGNode.html#a1382366ed10250d8f9a21c1f28bcad1c">SVF::IntraMSSAPHISVFGNode::classof</a></div><div class="ttdeci">static bool classof(const MRSVFGNode *node)</div><div class="ttdef"><b>Definition:</b> <a href="SVFGNode_8h_source.html#l00383">SVFGNode.h:383</a></div></div>
89
89
  <div class="ttc" id="classSVF_1_1FormalOUTSVFGNode_html"><div class="ttname"><a href="classSVF_1_1FormalOUTSVFGNode.html">SVF::FormalOUTSVFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFGNode_8h_source.html#l00138">SVFGNode.h:138</a></div></div>
90
- <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="Util_2BasicTypes_8h_source.html#l00128">BasicTypes.h:128</a></div></div>
90
+ <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="Util_2BasicTypes_8h_source.html#l00127">BasicTypes.h:127</a></div></div>
91
91
  <div class="ttc" id="classSVF_1_1MSSAPHISVFGNode_html_a9ff8a58538d4df8e06e8d16dd58f02a3"><div class="ttname"><a href="classSVF_1_1MSSAPHISVFGNode.html#a9ff8a58538d4df8e06e8d16dd58f02a3">SVF::MSSAPHISVFGNode::getOpVer</a></div><div class="ttdeci">const MRVer * getOpVer(u32_t pos) const</div><div class="ttdoc">MSSA phi operands. </div><div class="ttdef"><b>Definition:</b> <a href="SVFGNode_8h_source.html#l00299">SVFGNode.h:299</a></div></div>
92
92
  <div class="ttc" id="classSVF_1_1ActualINSVFGNode_html_a9fd1b406736084d33b0026aa21eb79b7"><div class="ttname"><a href="classSVF_1_1ActualINSVFGNode.html#a9fd1b406736084d33b0026aa21eb79b7">SVF::ActualINSVFGNode::ver</a></div><div class="ttdeci">const MRVer * ver</div><div class="ttdef"><b>Definition:</b> <a href="SVFGNode_8h_source.html#l00184">SVFGNode.h:184</a></div></div>
93
93
  <div class="ttc" id="classSVF_1_1ActualOUTSVFGNode_html_a89cb274936513df411a75fb33a86702f"><div class="ttname"><a href="classSVF_1_1ActualOUTSVFGNode.html#a89cb274936513df411a75fb33a86702f">SVF::ActualOUTSVFGNode::getCallSite</a></div><div class="ttdeci">const CallICFGNode * getCallSite() const</div><div class="ttdoc">Callsite. </div><div class="ttdef"><b>Definition:</b> <a href="SVFGNode_8h_source.html#l00244">SVFGNode.h:244</a></div></div>
@@ -74,7 +74,7 @@ $(function() {
74
74
  <div class="ttc" id="classSVF_1_1GenericNode_html_afc8b5f86d7795b6a0dfc0687d942d79b"><div class="ttname"><a href="classSVF_1_1GenericNode.html#afc8b5f86d7795b6a0dfc0687d942d79b">SVF::GenericNode::getInEdges</a></div><div class="ttdeci">const GEdgeSetTy &amp; getInEdges() const</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00186">GenericGraph.h:186</a></div></div>
75
75
  <div class="ttc" id="classSVF_1_1GenericEdge_html_ad9edb45e74ae675d9da82f5acf02d56e"><div class="ttname"><a href="classSVF_1_1GenericEdge.html#ad9edb45e74ae675d9da82f5acf02d56e">SVF::GenericEdge::getDstID</a></div><div class="ttdeci">NodeID getDstID() const</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00077">GenericGraph.h:77</a></div></div>
76
76
  <div class="ttc" id="namespaceSVF_html_a43a65e0d33af3c743294f7a1139d2301"><div class="ttname"><a href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">SVF::NodeID</a></div><div class="ttdeci">unsigned NodeID</div><div class="ttdef"><b>Definition:</b> <a href="MTAResultValidator_8h_source.html#l00019">MTAResultValidator.h:19</a></div></div>
77
- <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#l00101">SVFUtil.cpp:101</a></div></div>
77
+ <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>
78
78
  <div class="ttc" id="classSVF_1_1GenericNode_html_aa4f103330118c8976bf95e4bf53416eb"><div class="ttname"><a href="classSVF_1_1GenericNode.html#aa4f103330118c8976bf95e4bf53416eb">SVF::GenericNode::OutEdgeBegin</a></div><div class="ttdeci">iterator OutEdgeBegin()</div><div class="ttdoc">iterators </div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00206">GenericGraph.h:206</a></div></div>
79
79
  <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>
80
80
  <div class="ttc" id="classSVF_1_1GenericEdge_html_ae6792506a0150a9400d635eceab7f9e7"><div class="ttname"><a href="classSVF_1_1GenericEdge.html#ae6792506a0150a9400d635eceab7f9e7">SVF::GenericEdge::getSrcID</a></div><div class="ttdeci">NodeID getSrcID() const</div><div class="ttdoc">get methods of the components </div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00073">GenericGraph.h:73</a></div></div>
@@ -92,7 +92,7 @@ $(function() {
92
92
  <div class="ttc" id="classSVF_1_1SVFGOPT_html_af4d2c6d2e3b316b256f860801fe3b178"><div class="ttname"><a href="classSVF_1_1SVFGOPT.html#af4d2c6d2e3b316b256f860801fe3b178">SVF::SVFGOPT::buildSVFG</a></div><div class="ttdeci">virtual void buildSVFG()</div><div class="ttdoc">Start building SVFG. </div><div class="ttdef"><b>Definition:</b> <a href="SVFGOPT_8cpp_source.html#l00047">SVFGOPT.cpp:47</a></div></div>
93
93
  <div class="ttc" id="classSVF_1_1Options_html_a3ed96242ac56a05d057ebd11b23cf053"><div class="ttname"><a href="classSVF_1_1Options.html#a3ed96242ac56a05d057ebd11b23cf053">SVF::Options::SelfCycle</a></div><div class="ttdeci">static const llvm::cl::opt&lt; std::string &gt; SelfCycle</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00118">Options.h:118</a></div></div>
94
94
  <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>
95
- <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a077caa1b10ab84d101d79fc7ea50db2d"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a077caa1b10ab84d101d79fc7ea50db2d">SVF::SVFUtil::writeWrnMsg</a></div><div class="ttdeci">void writeWrnMsg(std::string msg)</div><div class="ttdoc">Writes a message run through wrnMsg. </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8cpp_source.html#l00069">SVFUtil.cpp:69</a></div></div>
95
+ <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a077caa1b10ab84d101d79fc7ea50db2d"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a077caa1b10ab84d101d79fc7ea50db2d">SVF::SVFUtil::writeWrnMsg</a></div><div class="ttdeci">void writeWrnMsg(std::string msg)</div><div class="ttdoc">Writes a message run through wrnMsg. </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8cpp_source.html#l00068">SVFUtil.cpp:68</a></div></div>
96
96
  <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>
97
97
  <div class="ttc" id="classSVF_1_1SVFGOPT_html_a21429d8c3fba209d9cdc22e3623c5573"><div class="ttname"><a href="classSVF_1_1SVFGOPT.html#a21429d8c3fba209d9cdc22e3623c5573">SVF::SVFGOPT::handleIntraValueFlow</a></div><div class="ttdeci">void handleIntraValueFlow()</div><div class="ttdoc">Remove MSSAPHI SVFG nodes. </div><div class="ttdef"><b>Definition:</b> <a href="SVFGOPT_8cpp_source.html#l00393">SVFGOPT.cpp:393</a></div></div>
98
98
  <div class="ttc" id="classSVF_1_1SVFGOPT_html_afb068fd46dfbf993decd7d6c8ca2c9ba"><div class="ttname"><a href="classSVF_1_1SVFGOPT.html#afb068fd46dfbf993decd7d6c8ca2c9ba">SVF::SVFGOPT::checkSelfCycleEdges</a></div><div class="ttdeci">bool checkSelfCycleEdges(const MSSAPHISVFGNode *node)</div><div class="ttdoc">Remove self cycle edges if needed. Return TRUE if some self cycle edges remained. ...</div><div class="ttdef"><b>Definition:</b> <a href="SVFGOPT_8cpp_source.html#l00444">SVFGOPT.cpp:444</a></div></div>
@@ -155,7 +155,7 @@ $(function() {
155
155
  <div class="ttc" id="classSVF_1_1FIFOWorkList_html"><div class="ttname"><a href="classSVF_1_1FIFOWorkList.html">SVF::FIFOWorkList&lt; const MSSAPHISVFGNode * &gt;</a></div></div>
156
156
  <div class="ttc" id="classSVF_1_1SVFGOPT_html_a3e2b811dd939c93bcf9fb94e91d553b1"><div class="ttname"><a href="classSVF_1_1SVFGOPT.html#a3e2b811dd939c93bcf9fb94e91d553b1">SVF::SVFGOPT::setFormalOUTDef</a></div><div class="ttdeci">void setFormalOUTDef(NodeID fo, NodeID def)</div><div class="ttdef"><b>Definition:</b> <a href="SVFGOPT_8h_source.html#l00276">SVFGOPT.h:276</a></div></div>
157
157
  <div class="ttc" id="classSVF_1_1CallICFGNode_html"><div class="ttname"><a href="classSVF_1_1CallICFGNode.html">SVF::CallICFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00363">ICFGNode.h:363</a></div></div>
158
- <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="Util_2BasicTypes_8h_source.html#l00144">BasicTypes.h:144</a></div></div>
158
+ <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="Util_2BasicTypes_8h_source.html#l00143">BasicTypes.h:143</a></div></div>
159
159
  <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>
160
160
  <div class="ttc" id="classSVF_1_1SVFGOPT_html_abbd6ac28826b9cc4c4981271393c8b19"><div class="ttname"><a href="classSVF_1_1SVFGOPT.html#abbd6ac28826b9cc4c4981271393c8b19">SVF::SVFGOPT::formalOutToDefMap</a></div><div class="ttdeci">NodeIDToNodeIDMap formalOutToDefMap</div><div class="ttdoc">map formal-out to its def-site node </div><div class="ttdef"><b>Definition:</b> <a href="SVFGOPT_8h_source.html#l00350">SVFGOPT.h:350</a></div></div>
161
161
  <div class="ttc" id="classSVF_1_1SVFGOPT_html_abd524dca72261bbcc7ebb1103b693a2b"><div class="ttname"><a href="classSVF_1_1SVFGOPT.html#abd524dca72261bbcc7ebb1103b693a2b">SVF::SVFGOPT::defNodes</a></div><div class="ttdeci">NodeBS defNodes</div><div class="ttdoc">preserved def nodes of formal-in/actual-out </div><div class="ttdef"><b>Definition:</b> <a href="SVFGOPT_8h_source.html#l00351">SVFGOPT.h:351</a></div></div>
@@ -67,7 +67,7 @@ $(function() {
67
67
  </div><!--header-->
68
68
  <div class="contents">
69
69
  <div class="textblock"><code>#include &quot;<a class="el" href="SVFModule_8h_source.html">Util/SVFModule.h</a>&quot;</code><br />
70
- <code>#include &quot;<a class="el" href="LLVMUtil_8h_source.html">SVF-FE/LLVMUtil.h</a>&quot;</code><br />
70
+ <code>#include &quot;<a class="el" href="SVFUtil_8h_source.html">Util/SVFUtil.h</a>&quot;</code><br />
71
71
  <code>#include &quot;<a class="el" href="SVFG_8h_source.html">Graphs/SVFG.h</a>&quot;</code><br />
72
72
  <code>#include &quot;<a class="el" href="SVFGStat_8h_source.html">Graphs/SVFGStat.h</a>&quot;</code><br />
73
73
  <code>#include &quot;<a class="el" href="PointerAnalysisImpl_8h_source.html">MemoryModel/PointerAnalysisImpl.h</a>&quot;</code><br />