svf-tools 1.0.613 → 1.0.615

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (542) hide show
  1. package/CMakeLists.txt +13 -0
  2. package/SVF-doxygen/html/html/AndersenPWC_8h_source.html +1 -1
  3. package/SVF-doxygen/html/html/AndersenSCD_8cpp_source.html +2 -2
  4. package/SVF-doxygen/html/html/AndersenSFR_8cpp_source.html +7 -6
  5. package/SVF-doxygen/html/html/AndersenStat_8cpp_source.html +15 -15
  6. package/SVF-doxygen/html/html/AndersenWaveDiff_8cpp_source.html +1 -1
  7. package/SVF-doxygen/html/html/Andersen_8cpp_source.html +22 -22
  8. package/SVF-doxygen/html/html/Andersen_8h_source.html +16 -16
  9. package/SVF-doxygen/html/html/CFLAlias_8cpp_source.html +6 -6
  10. package/SVF-doxygen/html/html/CFLAlias_8h_source.html +7 -7
  11. package/SVF-doxygen/html/html/CFLBase_8cpp_source.html +6 -6
  12. package/SVF-doxygen/html/html/CFLGrammar_8cpp_source.html +1 -1
  13. package/SVF-doxygen/html/html/CFLGrammar_8h_source.html +1 -1
  14. package/SVF-doxygen/html/html/CFLGraphBuilder_8cpp_source.html +5 -5
  15. package/SVF-doxygen/html/html/CFLGraph_8cpp_source.html +11 -11
  16. package/SVF-doxygen/html/html/CFLGraph_8h_source.html +1 -1
  17. package/SVF-doxygen/html/html/CFLVF_8cpp_source.html +2 -2
  18. package/SVF-doxygen/html/html/CHGBuilder_8cpp_source.html +5 -5
  19. package/SVF-doxygen/html/html/CHG_8h_source.html +1 -1
  20. package/SVF-doxygen/html/html/CSC_8cpp_source.html +1 -1
  21. package/SVF-doxygen/html/html/ConditionalPT_8h_source.html +14 -14
  22. package/SVF-doxygen/html/html/ConsGNode_8h_source.html +1 -1
  23. package/SVF-doxygen/html/html/ConsG_8cpp_source.html +3 -3
  24. package/SVF-doxygen/html/html/ConsG_8h_source.html +9 -9
  25. package/SVF-doxygen/html/html/ContextDDA_8cpp_source.html +18 -18
  26. package/SVF-doxygen/html/html/ContextDDA_8h_source.html +9 -9
  27. package/SVF-doxygen/html/html/DCHG_8cpp_source.html +4 -4
  28. package/SVF-doxygen/html/html/DCHG_8h_source.html +1 -1
  29. package/SVF-doxygen/html/html/DDAClient_8cpp_source.html +8 -8
  30. package/SVF-doxygen/html/html/DDAClient_8h_source.html +1 -1
  31. package/SVF-doxygen/html/html/DDAPass_8cpp_source.html +4 -6
  32. package/SVF-doxygen/html/html/DDAPass_8h_source.html +3 -3
  33. package/SVF-doxygen/html/html/DDAStat_8cpp_source.html +9 -9
  34. package/SVF-doxygen/html/html/DDAStat_8h_source.html +1 -1
  35. package/SVF-doxygen/html/html/DDAVFSolver_8h_source.html +22 -22
  36. package/SVF-doxygen/html/html/DoubleFreeChecker_8cpp_source.html +1 -1
  37. package/SVF-doxygen/html/html/DoubleFreeChecker_8h_source.html +1 -1
  38. package/SVF-doxygen/html/html/ExtAPI_8cpp_source.html +1 -1
  39. package/SVF-doxygen/html/html/FSMPTA_8cpp_source.html +21 -21
  40. package/SVF-doxygen/html/html/FSMPTA_8h_source.html +3 -3
  41. package/SVF-doxygen/html/html/FileChecker_8h_source.html +1 -1
  42. package/SVF-doxygen/html/html/FlowDDA_8cpp_source.html +10 -10
  43. package/SVF-doxygen/html/html/FlowDDA_8h_source.html +7 -7
  44. package/SVF-doxygen/html/html/FlowSensitiveStat_8cpp_source.html +13 -13
  45. package/SVF-doxygen/html/html/FlowSensitive_8cpp_source.html +27 -28
  46. package/SVF-doxygen/html/html/FlowSensitive_8h_source.html +65 -65
  47. package/SVF-doxygen/html/html/ICFGBuilder_8cpp_source.html +2 -2
  48. package/SVF-doxygen/html/html/ICFG_8cpp_source.html +2 -2
  49. package/SVF-doxygen/html/html/ICFG_8h_source.html +2 -2
  50. package/SVF-doxygen/html/html/IRAnnotator_8h_source.html +3 -3
  51. package/SVF-doxygen/html/html/IRGraph_8cpp_source.html +3 -3
  52. package/SVF-doxygen/html/html/IRGraph_8h_source.html +2 -2
  53. package/SVF-doxygen/html/html/LLVMLoopAnalysis_8cpp_source.html +6 -6
  54. package/SVF-doxygen/html/html/LLVMLoopAnalysis_8h_source.html +3 -3
  55. package/SVF-doxygen/html/html/LLVMModule_8cpp_source.html +24 -29
  56. package/SVF-doxygen/html/html/LLVMModule_8h_source.html +8 -8
  57. package/SVF-doxygen/html/html/LLVMUtil_8cpp_source.html +2 -2
  58. package/SVF-doxygen/html/html/LeakChecker_8cpp_source.html +9 -9
  59. package/SVF-doxygen/html/html/LeakChecker_8h_source.html +2 -2
  60. package/SVF-doxygen/html/html/LocationSet_8cpp_source.html +9 -9
  61. package/SVF-doxygen/html/html/LocationSet_8h_source.html +3 -3
  62. package/SVF-doxygen/html/html/LockAnalysis_8cpp_source.html +5 -5
  63. package/SVF-doxygen/html/html/LockAnalysis_8h_source.html +3 -3
  64. package/SVF-doxygen/html/html/LockResultValidator_8cpp_source.html +3 -3
  65. package/SVF-doxygen/html/html/MHP_8cpp_source.html +10 -10
  66. package/SVF-doxygen/html/html/MHP_8h_source.html +5 -5
  67. package/SVF-doxygen/html/html/MTAAnnotator_8cpp_source.html +17 -17
  68. package/SVF-doxygen/html/html/MTAResultValidator_8cpp_source.html +8 -8
  69. package/SVF-doxygen/html/html/MTAStat_8cpp_source.html +3 -3
  70. package/SVF-doxygen/html/html/MTA_8cpp_source.html +12 -17
  71. package/SVF-doxygen/html/html/MTA_8h_source.html +3 -4
  72. package/SVF-doxygen/html/html/MemPartition_8cpp_source.html +10 -10
  73. package/SVF-doxygen/html/html/MemPartition_8h_source.html +1 -1
  74. package/SVF-doxygen/html/html/MemRegion_8cpp_source.html +34 -34
  75. package/SVF-doxygen/html/html/MemRegion_8h_source.html +7 -7
  76. package/SVF-doxygen/html/html/MemSSA_8cpp_source.html +16 -15
  77. package/SVF-doxygen/html/html/MemSSA_8h_source.html +53 -52
  78. package/SVF-doxygen/html/html/MutablePointsToDS_8h_source.html +7 -8
  79. package/SVF-doxygen/html/html/NodeIDAllocator_8cpp_source.html +7 -7
  80. package/SVF-doxygen/html/html/Options_8cpp_source.html +52 -53
  81. package/SVF-doxygen/html/html/Options_8h_source.html +53 -54
  82. package/SVF-doxygen/html/html/PCG_8cpp_source.html +2 -2
  83. package/SVF-doxygen/html/html/PTACallGraph_8cpp_source.html +3 -3
  84. package/SVF-doxygen/html/html/PTACallGraph_8h_source.html +1 -1
  85. package/SVF-doxygen/html/html/PTAStat_8cpp_source.html +3 -3
  86. package/SVF-doxygen/html/html/PTAStat_8h_source.html +1 -1
  87. package/SVF-doxygen/html/html/PersistentPointsToCache_8h_source.html +33 -33
  88. package/SVF-doxygen/html/html/PersistentPointsToDS_8h_source.html +91 -95
  89. package/SVF-doxygen/html/html/PointerAnalysisImpl_8cpp_source.html +31 -39
  90. package/SVF-doxygen/html/html/PointerAnalysisImpl_8h_source.html +85 -92
  91. package/SVF-doxygen/html/html/PointerAnalysis_8cpp_source.html +20 -20
  92. package/SVF-doxygen/html/html/PointerAnalysis_8h_source.html +16 -16
  93. package/SVF-doxygen/html/html/PointsTo_8cpp.html +1 -0
  94. package/SVF-doxygen/html/html/PointsTo_8cpp_source.html +51 -51
  95. package/SVF-doxygen/html/html/PointsTo_8h_source.html +38 -38
  96. package/SVF-doxygen/html/html/ProgSlice_8cpp_source.html +6 -6
  97. package/SVF-doxygen/html/html/SCC_8h_source.html +4 -4
  98. package/SVF-doxygen/html/html/SVFGBuilder_8cpp_source.html +11 -22
  99. package/SVF-doxygen/html/html/SVFGBuilder_8h_source.html +14 -17
  100. package/SVF-doxygen/html/html/SVFGEdge_8h_source.html +1 -1
  101. package/SVF-doxygen/html/html/SVFGNode_8h_source.html +1 -1
  102. package/SVF-doxygen/html/html/SVFGOPT_8cpp_source.html +7 -7
  103. package/SVF-doxygen/html/html/SVFGOPT_8h_source.html +21 -19
  104. package/SVF-doxygen/html/html/SVFGReadWrite_8cpp_source.html +5 -5
  105. package/SVF-doxygen/html/html/SVFGStat_8cpp_source.html +18 -18
  106. package/SVF-doxygen/html/html/SVFG_8cpp_source.html +49 -62
  107. package/SVF-doxygen/html/html/SVFG_8h_source.html +45 -45
  108. package/SVF-doxygen/html/html/SVFIR2ItvExeState_8cpp_source.html +12 -12
  109. package/SVF-doxygen/html/html/SVFIRBuilder_8cpp_source.html +8 -8
  110. package/SVF-doxygen/html/html/SVFIRBuilder_8h_source.html +3 -3
  111. package/SVF-doxygen/html/html/SVFIR_8cpp_source.html +10 -16
  112. package/SVF-doxygen/html/html/SVFIR_8h_source.html +83 -83
  113. package/SVF-doxygen/html/html/SVFStat_8cpp_source.html +19 -19
  114. package/SVF-doxygen/html/html/SVFType_8h.html +22 -22
  115. package/SVF-doxygen/html/html/SVFType_8h_source.html +76 -77
  116. package/SVF-doxygen/html/html/SVFUtil_8cpp_source.html +5 -5
  117. package/SVF-doxygen/html/html/SVFUtil_8h_source.html +11 -11
  118. package/SVF-doxygen/html/html/SVFValue_8cpp_source.html +5 -5
  119. package/SVF-doxygen/html/html/SVFValue_8h_source.html +6 -6
  120. package/SVF-doxygen/html/html/SVFVariables_8cpp_source.html +1 -1
  121. package/SVF-doxygen/html/html/SVFVariables_8h_source.html +3 -3
  122. package/SVF-doxygen/html/html/SaberCondAllocator_8cpp_source.html +6 -6
  123. package/SVF-doxygen/html/html/SaberCondAllocator_8h_source.html +4 -4
  124. package/SVF-doxygen/html/html/SaberSVFGBuilder_8cpp_source.html +15 -15
  125. package/SVF-doxygen/html/html/SaberSVFGBuilder_8h_source.html +2 -3
  126. package/SVF-doxygen/html/html/SparseBitVector_8h_source.html +69 -71
  127. package/SVF-doxygen/html/html/SrcSnkDDA_8cpp_source.html +13 -13
  128. package/SVF-doxygen/html/html/SrcSnkDDA_8h_source.html +39 -39
  129. package/SVF-doxygen/html/html/Steensgaard_8h_source.html +1 -1
  130. package/SVF-doxygen/html/html/SymbolTableBuilder_8cpp_source.html +7 -7
  131. package/SVF-doxygen/html/html/SymbolTableInfo_8cpp_source.html +49 -51
  132. package/SVF-doxygen/html/html/SymbolTableInfo_8h_source.html +13 -13
  133. package/SVF-doxygen/html/html/TCT_8cpp_source.html +4 -4
  134. package/SVF-doxygen/html/html/TCT_8h_source.html +4 -4
  135. package/SVF-doxygen/html/html/ThreadCallGraph_8cpp_source.html +8 -8
  136. package/SVF-doxygen/html/html/TypeAnalysis_8cpp_source.html +3 -3
  137. package/SVF-doxygen/html/html/VFGNode_8h_source.html +1 -1
  138. package/SVF-doxygen/html/html/VFG_8cpp_source.html +17 -17
  139. package/SVF-doxygen/html/html/VFG_8h_source.html +5 -5
  140. package/SVF-doxygen/html/html/VersionedFlowSensitiveStat_8cpp_source.html +8 -8
  141. package/SVF-doxygen/html/html/VersionedFlowSensitive_8cpp_source.html +33 -33
  142. package/SVF-doxygen/html/html/VersionedFlowSensitive_8h_source.html +4 -4
  143. package/SVF-doxygen/html/html/WPAFSSolver_8h_source.html +11 -11
  144. package/SVF-doxygen/html/html/WPAPass_8cpp_source.html +12 -12
  145. package/SVF-doxygen/html/html/WPAPass_8h_source.html +2 -2
  146. package/SVF-doxygen/html/html/WPASolver_8h_source.html +25 -25
  147. package/SVF-doxygen/html/html/Z3Expr_8cpp_source.html +1 -1
  148. package/SVF-doxygen/html/html/cfl_8cpp.html +1 -5
  149. package/SVF-doxygen/html/html/cfl_8cpp_source.html +1 -5
  150. package/SVF-doxygen/html/html/classSVF_1_1ActualParmVFGNode.html +2 -2
  151. package/SVF-doxygen/html/html/classSVF_1_1ActualRetVFGNode.html +2 -2
  152. package/SVF-doxygen/html/html/classSVF_1_1AddrVFGNode.html +2 -2
  153. package/SVF-doxygen/html/html/classSVF_1_1AliasDDAClient.html +2 -2
  154. package/SVF-doxygen/html/html/classSVF_1_1Andersen-members.html +187 -188
  155. package/SVF-doxygen/html/html/classSVF_1_1Andersen.html +104 -107
  156. package/SVF-doxygen/html/html/classSVF_1_1AndersenBase-members.html +163 -164
  157. package/SVF-doxygen/html/html/classSVF_1_1AndersenBase.html +47 -50
  158. package/SVF-doxygen/html/html/classSVF_1_1AndersenSCD-members.html +194 -195
  159. package/SVF-doxygen/html/html/classSVF_1_1AndersenSCD.html +45 -48
  160. package/SVF-doxygen/html/html/classSVF_1_1AndersenSFR-members.html +204 -205
  161. package/SVF-doxygen/html/html/classSVF_1_1AndersenSFR.html +35 -38
  162. package/SVF-doxygen/html/html/classSVF_1_1AndersenStat.html +17 -17
  163. package/SVF-doxygen/html/html/classSVF_1_1AndersenWaveDiff-members.html +191 -192
  164. package/SVF-doxygen/html/html/classSVF_1_1AndersenWaveDiff.html +29 -32
  165. package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl-members.html +122 -123
  166. package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl.html +158 -219
  167. package/SVF-doxygen/html/html/classSVF_1_1BinaryOPVFGNode.html +2 -2
  168. package/SVF-doxygen/html/html/classSVF_1_1CFLAlias-members.html +137 -138
  169. package/SVF-doxygen/html/html/classSVF_1_1CFLAlias.html +57 -49
  170. package/SVF-doxygen/html/html/classSVF_1_1CFLBase-members.html +138 -139
  171. package/SVF-doxygen/html/html/classSVF_1_1CFLBase.html +34 -34
  172. package/SVF-doxygen/html/html/classSVF_1_1CFLGraph.html +7 -7
  173. package/SVF-doxygen/html/html/classSVF_1_1CFLGraphBuilder.html +1 -1
  174. package/SVF-doxygen/html/html/classSVF_1_1CFLVF-members.html +140 -141
  175. package/SVF-doxygen/html/html/classSVF_1_1CFLVF.html +30 -30
  176. package/SVF-doxygen/html/html/classSVF_1_1CHGBuilder.html +8 -8
  177. package/SVF-doxygen/html/html/classSVF_1_1CSC.html +2 -2
  178. package/SVF-doxygen/html/html/classSVF_1_1CallSite-members.html +1 -1
  179. package/SVF-doxygen/html/html/classSVF_1_1CallSite.html +10 -10
  180. package/SVF-doxygen/html/html/classSVF_1_1CmpVFGNode.html +2 -2
  181. package/SVF-doxygen/html/html/classSVF_1_1CondPTAImpl.html +114 -114
  182. package/SVF-doxygen/html/html/classSVF_1_1ConstraintGraph.html +6 -6
  183. package/SVF-doxygen/html/html/classSVF_1_1ConstraintNode.html +8 -8
  184. package/SVF-doxygen/html/html/classSVF_1_1ContextDDA.html +28 -28
  185. package/SVF-doxygen/html/html/classSVF_1_1CopyVFGNode.html +2 -2
  186. package/SVF-doxygen/html/html/classSVF_1_1DCHGraph.html +6 -6
  187. package/SVF-doxygen/html/html/classSVF_1_1DDAClient.html +4 -4
  188. package/SVF-doxygen/html/html/classSVF_1_1DDAPass-members.html +1 -1
  189. package/SVF-doxygen/html/html/classSVF_1_1DDAPass.html +17 -31
  190. package/SVF-doxygen/html/html/classSVF_1_1DDAStat.html +10 -10
  191. package/SVF-doxygen/html/html/classSVF_1_1DDAVFSolver.html +40 -40
  192. package/SVF-doxygen/html/html/classSVF_1_1DFPTData.html +15 -15
  193. package/SVF-doxygen/html/html/classSVF_1_1DiffPTData.html +4 -4
  194. package/SVF-doxygen/html/html/classSVF_1_1DistinctMRG.html +11 -11
  195. package/SVF-doxygen/html/html/classSVF_1_1DoubleFreeChecker-members.html +5 -5
  196. package/SVF-doxygen/html/html/classSVF_1_1DoubleFreeChecker.html +16 -16
  197. package/SVF-doxygen/html/html/classSVF_1_1DummyVersionPropSVFGNode.html +2 -2
  198. package/SVF-doxygen/html/html/classSVF_1_1ExtAPI.html +1 -1
  199. package/SVF-doxygen/html/html/classSVF_1_1FSMPTA-members.html +228 -229
  200. package/SVF-doxygen/html/html/classSVF_1_1FSMPTA.html +62 -65
  201. package/SVF-doxygen/html/html/classSVF_1_1FileChecker-members.html +5 -5
  202. package/SVF-doxygen/html/html/classSVF_1_1FileChecker.html +17 -17
  203. package/SVF-doxygen/html/html/classSVF_1_1FlowDDA-members.html +194 -195
  204. package/SVF-doxygen/html/html/classSVF_1_1FlowDDA.html +55 -55
  205. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitive-members.html +219 -220
  206. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitive.html +335 -342
  207. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveStat.html +57 -57
  208. package/SVF-doxygen/html/html/classSVF_1_1ForkJoinAnalysis.html +6 -6
  209. package/SVF-doxygen/html/html/classSVF_1_1FormalParmVFGNode.html +2 -2
  210. package/SVF-doxygen/html/html/classSVF_1_1FormalRetVFGNode.html +2 -2
  211. package/SVF-doxygen/html/html/classSVF_1_1FunptrDDAClient.html +4 -4
  212. package/SVF-doxygen/html/html/classSVF_1_1GepObjVar.html +2 -2
  213. package/SVF-doxygen/html/html/classSVF_1_1GepVFGNode.html +2 -2
  214. package/SVF-doxygen/html/html/classSVF_1_1ICFG-members.html +1 -1
  215. package/SVF-doxygen/html/html/classSVF_1_1ICFG.html +6 -6
  216. package/SVF-doxygen/html/html/classSVF_1_1ICFGBuilder.html +2 -2
  217. package/SVF-doxygen/html/html/classSVF_1_1IRAnnotator.html +4 -4
  218. package/SVF-doxygen/html/html/classSVF_1_1IRGraph.html +4 -4
  219. package/SVF-doxygen/html/html/classSVF_1_1InterDisjointMRG.html +2 -2
  220. package/SVF-doxygen/html/html/classSVF_1_1IntraDisjointMRG.html +8 -8
  221. package/SVF-doxygen/html/html/classSVF_1_1LLVMLoopAnalysis-members.html +1 -1
  222. package/SVF-doxygen/html/html/classSVF_1_1LLVMLoopAnalysis.html +20 -14
  223. package/SVF-doxygen/html/html/classSVF_1_1LLVMModuleSet-members.html +4 -4
  224. package/SVF-doxygen/html/html/classSVF_1_1LLVMModuleSet.html +108 -94
  225. package/SVF-doxygen/html/html/classSVF_1_1LeakChecker-members.html +5 -5
  226. package/SVF-doxygen/html/html/classSVF_1_1LeakChecker.html +36 -36
  227. package/SVF-doxygen/html/html/classSVF_1_1LoadVFGNode.html +2 -2
  228. package/SVF-doxygen/html/html/classSVF_1_1LocationSet.html +12 -12
  229. package/SVF-doxygen/html/html/classSVF_1_1LockAnalysis.html +25 -25
  230. package/SVF-doxygen/html/html/classSVF_1_1LockResultValidator.html +3 -3
  231. package/SVF-doxygen/html/html/classSVF_1_1MHP.html +26 -26
  232. package/SVF-doxygen/html/html/classSVF_1_1MRGenerator.html +87 -87
  233. package/SVF-doxygen/html/html/classSVF_1_1MTA-members.html +2 -2
  234. package/SVF-doxygen/html/html/classSVF_1_1MTA.html +27 -33
  235. package/SVF-doxygen/html/html/classSVF_1_1MTAAnnotator.html +21 -21
  236. package/SVF-doxygen/html/html/classSVF_1_1MTAResultValidator.html +14 -14
  237. package/SVF-doxygen/html/html/classSVF_1_1MTASVFGBuilder-members.html +41 -43
  238. package/SVF-doxygen/html/html/classSVF_1_1MTASVFGBuilder.html +57 -80
  239. package/SVF-doxygen/html/html/classSVF_1_1MTAStat.html +3 -3
  240. package/SVF-doxygen/html/html/classSVF_1_1MemObj.html +54 -54
  241. package/SVF-doxygen/html/html/classSVF_1_1MemRegion.html +4 -4
  242. package/SVF-doxygen/html/html/classSVF_1_1MemSSA-members.html +4 -3
  243. package/SVF-doxygen/html/html/classSVF_1_1MemSSA.html +170 -143
  244. package/SVF-doxygen/html/html/classSVF_1_1MemSSAStat.html +16 -16
  245. package/SVF-doxygen/html/html/classSVF_1_1MutableDFPTData.html +2 -2
  246. package/SVF-doxygen/html/html/classSVF_1_1MutableDiffPTData-members.html +3 -3
  247. package/SVF-doxygen/html/html/classSVF_1_1MutableDiffPTData.html +13 -15
  248. package/SVF-doxygen/html/html/classSVF_1_1NodeIDAllocator_1_1Clusterer.html +7 -7
  249. package/SVF-doxygen/html/html/classSVF_1_1NullPtrVFGNode.html +2 -2
  250. package/SVF-doxygen/html/html/classSVF_1_1ObjTypeInfo.html +8 -8
  251. package/SVF-doxygen/html/html/classSVF_1_1ObjVar.html +1 -1
  252. package/SVF-doxygen/html/html/classSVF_1_1Options-members.html +17 -18
  253. package/SVF-doxygen/html/html/classSVF_1_1Options.html +53 -79
  254. package/SVF-doxygen/html/html/classSVF_1_1PAGBuilderFromFile.html +2 -2
  255. package/SVF-doxygen/html/html/classSVF_1_1PCG.html +2 -2
  256. package/SVF-doxygen/html/html/classSVF_1_1PHIVFGNode.html +2 -2
  257. package/SVF-doxygen/html/html/classSVF_1_1PTACallGraph.html +3 -3
  258. package/SVF-doxygen/html/html/classSVF_1_1PTACallGraphNode.html +3 -3
  259. package/SVF-doxygen/html/html/classSVF_1_1PTAStat.html +4 -4
  260. package/SVF-doxygen/html/html/classSVF_1_1PTData.html +11 -11
  261. package/SVF-doxygen/html/html/classSVF_1_1PersistentDFPTData-members.html +28 -28
  262. package/SVF-doxygen/html/html/classSVF_1_1PersistentDFPTData.html +174 -177
  263. package/SVF-doxygen/html/html/classSVF_1_1PersistentDiffPTData-members.html +17 -17
  264. package/SVF-doxygen/html/html/classSVF_1_1PersistentDiffPTData.html +99 -102
  265. package/SVF-doxygen/html/html/classSVF_1_1PersistentIncDFPTData-members.html +30 -30
  266. package/SVF-doxygen/html/html/classSVF_1_1PersistentIncDFPTData.html +125 -127
  267. package/SVF-doxygen/html/html/classSVF_1_1PersistentPTData-members.html +13 -13
  268. package/SVF-doxygen/html/html/classSVF_1_1PersistentPTData.html +83 -86
  269. package/SVF-doxygen/html/html/classSVF_1_1PersistentPointsToCache-members.html +1 -1
  270. package/SVF-doxygen/html/html/classSVF_1_1PersistentPointsToCache.html +122 -122
  271. package/SVF-doxygen/html/html/classSVF_1_1PersistentVersionedPTData-members.html +22 -22
  272. package/SVF-doxygen/html/html/classSVF_1_1PersistentVersionedPTData.html +137 -140
  273. package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis.html +56 -56
  274. package/SVF-doxygen/html/html/classSVF_1_1PointsTo-members.html +16 -16
  275. package/SVF-doxygen/html/html/classSVF_1_1PointsTo.html +183 -178
  276. package/SVF-doxygen/html/html/classSVF_1_1PointsTo_1_1PointsToIterator-members.html +7 -7
  277. package/SVF-doxygen/html/html/classSVF_1_1PointsTo_1_1PointsToIterator.html +87 -65
  278. package/SVF-doxygen/html/html/classSVF_1_1ProgSlice.html +6 -6
  279. package/SVF-doxygen/html/html/classSVF_1_1SCCDetection.html +3 -3
  280. package/SVF-doxygen/html/html/classSVF_1_1SCCDetection_1_1GNodeSCCInfo.html +1 -1
  281. package/SVF-doxygen/html/html/classSVF_1_1SVFArgument-members.html +1 -1
  282. package/SVF-doxygen/html/html/classSVF_1_1SVFArgument.html +4 -4
  283. package/SVF-doxygen/html/html/classSVF_1_1SVFArrayType.html +6 -6
  284. package/SVF-doxygen/html/html/classSVF_1_1SVFBasicBlock-members.html +3 -3
  285. package/SVF-doxygen/html/html/classSVF_1_1SVFBasicBlock.html +13 -16
  286. package/SVF-doxygen/html/html/classSVF_1_1SVFBlackHoleValue-members.html +1 -1
  287. package/SVF-doxygen/html/html/classSVF_1_1SVFBlackHoleValue.html +2 -2
  288. package/SVF-doxygen/html/html/classSVF_1_1SVFCallInst-members.html +1 -1
  289. package/SVF-doxygen/html/html/classSVF_1_1SVFCallInst.html +2 -2
  290. package/SVF-doxygen/html/html/classSVF_1_1SVFConstant-members.html +1 -1
  291. package/SVF-doxygen/html/html/classSVF_1_1SVFConstant.html +3 -3
  292. package/SVF-doxygen/html/html/classSVF_1_1SVFConstantData-members.html +1 -1
  293. package/SVF-doxygen/html/html/classSVF_1_1SVFConstantData.html +2 -2
  294. package/SVF-doxygen/html/html/classSVF_1_1SVFConstantFP-members.html +1 -1
  295. package/SVF-doxygen/html/html/classSVF_1_1SVFConstantFP.html +2 -2
  296. package/SVF-doxygen/html/html/classSVF_1_1SVFConstantInt-members.html +1 -1
  297. package/SVF-doxygen/html/html/classSVF_1_1SVFConstantInt.html +2 -2
  298. package/SVF-doxygen/html/html/classSVF_1_1SVFConstantNullPtr-members.html +1 -1
  299. package/SVF-doxygen/html/html/classSVF_1_1SVFConstantNullPtr.html +2 -2
  300. package/SVF-doxygen/html/html/classSVF_1_1SVFFunction-members.html +1 -1
  301. package/SVF-doxygen/html/html/classSVF_1_1SVFFunction.html +5 -7
  302. package/SVF-doxygen/html/html/classSVF_1_1SVFFunctionType.html +9 -9
  303. package/SVF-doxygen/html/html/classSVF_1_1SVFG-members.html +2 -2
  304. package/SVF-doxygen/html/html/classSVF_1_1SVFG.html +211 -236
  305. package/SVF-doxygen/html/html/classSVF_1_1SVFGBuilder-members.html +7 -9
  306. package/SVF-doxygen/html/html/classSVF_1_1SVFGBuilder.html +50 -138
  307. package/SVF-doxygen/html/html/classSVF_1_1SVFGOPT-members.html +9 -9
  308. package/SVF-doxygen/html/html/classSVF_1_1SVFGOPT.html +82 -82
  309. package/SVF-doxygen/html/html/classSVF_1_1SVFGStat.html +5 -5
  310. package/SVF-doxygen/html/html/classSVF_1_1SVFGlobalValue-members.html +1 -1
  311. package/SVF-doxygen/html/html/classSVF_1_1SVFGlobalValue.html +2 -2
  312. package/SVF-doxygen/html/html/classSVF_1_1SVFIR-members.html +1 -1
  313. package/SVF-doxygen/html/html/classSVF_1_1SVFIR.html +203 -215
  314. package/SVF-doxygen/html/html/classSVF_1_1SVFIR2ItvExeState.html +13 -13
  315. package/SVF-doxygen/html/html/classSVF_1_1SVFIRBuilder.html +79 -79
  316. package/SVF-doxygen/html/html/classSVF_1_1SVFInstruction-members.html +1 -1
  317. package/SVF-doxygen/html/html/classSVF_1_1SVFInstruction.html +4 -4
  318. package/SVF-doxygen/html/html/classSVF_1_1SVFIntergerType.html +5 -5
  319. package/SVF-doxygen/html/html/classSVF_1_1SVFLoopAndDomInfo-members.html +1 -1
  320. package/SVF-doxygen/html/html/classSVF_1_1SVFLoopAndDomInfo.html +5 -5
  321. package/SVF-doxygen/html/html/classSVF_1_1SVFMetadataAsValue-members.html +1 -1
  322. package/SVF-doxygen/html/html/classSVF_1_1SVFMetadataAsValue.html +2 -2
  323. package/SVF-doxygen/html/html/classSVF_1_1SVFModule.html +0 -4
  324. package/SVF-doxygen/html/html/classSVF_1_1SVFOtherType.html +5 -5
  325. package/SVF-doxygen/html/html/classSVF_1_1SVFOtherValue-members.html +1 -1
  326. package/SVF-doxygen/html/html/classSVF_1_1SVFOtherValue.html +3 -3
  327. package/SVF-doxygen/html/html/classSVF_1_1SVFPointerType.html +9 -9
  328. package/SVF-doxygen/html/html/classSVF_1_1SVFStat.html +19 -19
  329. package/SVF-doxygen/html/html/classSVF_1_1SVFStructType.html +5 -5
  330. package/SVF-doxygen/html/html/classSVF_1_1SVFType.html +38 -38
  331. package/SVF-doxygen/html/html/classSVF_1_1SVFValue-members.html +1 -1
  332. package/SVF-doxygen/html/html/classSVF_1_1SVFValue.html +4 -5
  333. package/SVF-doxygen/html/html/classSVF_1_1SVFVar.html +1 -1
  334. package/SVF-doxygen/html/html/classSVF_1_1SVFVirtualCallInst-members.html +1 -1
  335. package/SVF-doxygen/html/html/classSVF_1_1SVFVirtualCallInst.html +2 -2
  336. package/SVF-doxygen/html/html/classSVF_1_1SaberCondAllocator.html +9 -9
  337. package/SVF-doxygen/html/html/classSVF_1_1SaberSVFGBuilder-members.html +12 -14
  338. package/SVF-doxygen/html/html/classSVF_1_1SaberSVFGBuilder.html +42 -68
  339. package/SVF-doxygen/html/html/classSVF_1_1SparseBitVector-members.html +1 -1
  340. package/SVF-doxygen/html/html/classSVF_1_1SparseBitVector.html +108 -109
  341. package/SVF-doxygen/html/html/classSVF_1_1SparseBitVector_1_1SparseBitVectorIterator-members.html +1 -1
  342. package/SVF-doxygen/html/html/classSVF_1_1SparseBitVector_1_1SparseBitVectorIterator.html +50 -50
  343. package/SVF-doxygen/html/html/classSVF_1_1SrcSnkDDA-members.html +6 -6
  344. package/SVF-doxygen/html/html/classSVF_1_1SrcSnkDDA.html +146 -146
  345. package/SVF-doxygen/html/html/classSVF_1_1StInfo-members.html +5 -5
  346. package/SVF-doxygen/html/html/classSVF_1_1StInfo.html +48 -61
  347. package/SVF-doxygen/html/html/classSVF_1_1Steensgaard-members.html +178 -179
  348. package/SVF-doxygen/html/html/classSVF_1_1Steensgaard.html +35 -38
  349. package/SVF-doxygen/html/html/classSVF_1_1StoreVFGNode.html +1 -1
  350. package/SVF-doxygen/html/html/classSVF_1_1SymbolTableBuilder.html +20 -20
  351. package/SVF-doxygen/html/html/classSVF_1_1SymbolTableInfo.html +42 -46
  352. package/SVF-doxygen/html/html/classSVF_1_1TCT.html +10 -10
  353. package/SVF-doxygen/html/html/classSVF_1_1ThreadCallGraph.html +8 -8
  354. package/SVF-doxygen/html/html/classSVF_1_1TypeAnalysis-members.html +169 -170
  355. package/SVF-doxygen/html/html/classSVF_1_1TypeAnalysis.html +31 -34
  356. package/SVF-doxygen/html/html/classSVF_1_1UnaryOPVFGNode.html +2 -2
  357. package/SVF-doxygen/html/html/classSVF_1_1VFG.html +28 -28
  358. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive-members.html +263 -264
  359. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive.html +112 -115
  360. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitiveStat.html +41 -41
  361. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive_1_1SCC.html +1 -1
  362. package/SVF-doxygen/html/html/classSVF_1_1VersionedPTData.html +9 -9
  363. package/SVF-doxygen/html/html/classSVF_1_1WPAFSSolver-members.html +2 -2
  364. package/SVF-doxygen/html/html/classSVF_1_1WPAFSSolver.html +9 -9
  365. package/SVF-doxygen/html/html/classSVF_1_1WPAMinimumSolver-members.html +2 -2
  366. package/SVF-doxygen/html/html/classSVF_1_1WPAMinimumSolver.html +15 -15
  367. package/SVF-doxygen/html/html/classSVF_1_1WPAPass.html +25 -25
  368. package/SVF-doxygen/html/html/classSVF_1_1WPASCCSolver-members.html +2 -2
  369. package/SVF-doxygen/html/html/classSVF_1_1WPASCCSolver.html +17 -17
  370. package/SVF-doxygen/html/html/classSVF_1_1WPASolver-members.html +2 -2
  371. package/SVF-doxygen/html/html/classSVF_1_1WPASolver.html +76 -81
  372. package/SVF-doxygen/html/html/classSVF_1_1Z3Expr.html +2 -2
  373. package/SVF-doxygen/html/html/dda_8cpp.html +1 -1
  374. package/SVF-doxygen/html/html/dda_8cpp_source.html +1 -1
  375. package/SVF-doxygen/html/html/functions.html +1 -1
  376. package/SVF-doxygen/html/html/functions_0x7e.html +16 -16
  377. package/SVF-doxygen/html/html/functions_a.html +7 -7
  378. package/SVF-doxygen/html/html/functions_b.html +6 -6
  379. package/SVF-doxygen/html/html/functions_c.html +27 -27
  380. package/SVF-doxygen/html/html/functions_d.html +10 -11
  381. package/SVF-doxygen/html/html/functions_e.html +2 -2
  382. package/SVF-doxygen/html/html/functions_f.html +6 -6
  383. package/SVF-doxygen/html/html/functions_func.html +6 -6
  384. package/SVF-doxygen/html/html/functions_func_0x7e.html +16 -16
  385. package/SVF-doxygen/html/html/functions_func_b.html +6 -6
  386. package/SVF-doxygen/html/html/functions_func_c.html +27 -27
  387. package/SVF-doxygen/html/html/functions_func_d.html +10 -11
  388. package/SVF-doxygen/html/html/functions_func_e.html +2 -2
  389. package/SVF-doxygen/html/html/functions_func_f.html +5 -5
  390. package/SVF-doxygen/html/html/functions_func_g.html +22 -22
  391. package/SVF-doxygen/html/html/functions_func_h.html +3 -3
  392. package/SVF-doxygen/html/html/functions_func_i.html +3 -3
  393. package/SVF-doxygen/html/html/functions_func_o.html +3 -3
  394. package/SVF-doxygen/html/html/functions_func_p.html +5 -5
  395. package/SVF-doxygen/html/html/functions_func_r.html +5 -8
  396. package/SVF-doxygen/html/html/functions_func_s.html +6 -6
  397. package/SVF-doxygen/html/html/functions_func_t.html +1 -1
  398. package/SVF-doxygen/html/html/functions_func_u.html +23 -23
  399. package/SVF-doxygen/html/html/functions_g.html +25 -28
  400. package/SVF-doxygen/html/html/functions_h.html +3 -3
  401. package/SVF-doxygen/html/html/functions_i.html +6 -6
  402. package/SVF-doxygen/html/html/functions_m.html +1 -1
  403. package/SVF-doxygen/html/html/functions_o.html +13 -13
  404. package/SVF-doxygen/html/html/functions_p.html +19 -19
  405. package/SVF-doxygen/html/html/functions_r.html +11 -12
  406. package/SVF-doxygen/html/html/functions_s.html +33 -36
  407. package/SVF-doxygen/html/html/functions_t.html +12 -12
  408. package/SVF-doxygen/html/html/functions_type_t.html +1 -1
  409. package/SVF-doxygen/html/html/functions_u.html +26 -23
  410. package/SVF-doxygen/html/html/functions_v.html +6 -6
  411. package/SVF-doxygen/html/html/functions_vars.html +1 -1
  412. package/SVF-doxygen/html/html/functions_vars_f.html +1 -1
  413. package/SVF-doxygen/html/html/functions_vars_g.html +0 -3
  414. package/SVF-doxygen/html/html/functions_vars_i.html +1 -1
  415. package/SVF-doxygen/html/html/functions_vars_m.html +1 -1
  416. package/SVF-doxygen/html/html/functions_vars_p.html +2 -2
  417. package/SVF-doxygen/html/html/functions_vars_s.html +5 -8
  418. package/SVF-doxygen/html/html/functions_vars_t.html +1 -1
  419. package/SVF-doxygen/html/html/functions_vars_u.html +3 -0
  420. package/SVF-doxygen/html/html/functions_w.html +3 -7
  421. package/SVF-doxygen/html/html/include_2MTA_2MTAResultValidator_8h_source.html +1 -1
  422. package/SVF-doxygen/html/html/mta_8cpp.html +1 -1
  423. package/SVF-doxygen/html/html/mta_8cpp_source.html +1 -1
  424. package/SVF-doxygen/html/html/namespaceSVF.html +35 -35
  425. package/SVF-doxygen/html/html/namespaceSVF_1_1LLVMUtil.html +2 -2
  426. package/SVF-doxygen/html/html/namespaceSVF_1_1SVFUtil.html +4 -4
  427. package/SVF-doxygen/html/html/saber_8cpp.html +1 -5
  428. package/SVF-doxygen/html/html/saber_8cpp_source.html +1 -5
  429. package/SVF-doxygen/html/html/search/all_0.js +1 -1
  430. package/SVF-doxygen/html/html/search/all_1.js +4 -4
  431. package/SVF-doxygen/html/html/search/all_10.js +15 -15
  432. package/SVF-doxygen/html/html/search/all_11.js +1 -2
  433. package/SVF-doxygen/html/html/search/all_12.js +20 -21
  434. package/SVF-doxygen/html/html/search/all_13.js +8 -8
  435. package/SVF-doxygen/html/html/search/all_14.js +13 -12
  436. package/SVF-doxygen/html/html/search/all_15.js +4 -4
  437. package/SVF-doxygen/html/html/search/all_16.js +2 -2
  438. package/SVF-doxygen/html/html/search/all_19.js +16 -16
  439. package/SVF-doxygen/html/html/search/all_2.js +6 -6
  440. package/SVF-doxygen/html/html/search/all_3.js +14 -14
  441. package/SVF-doxygen/html/html/search/all_4.js +5 -5
  442. package/SVF-doxygen/html/html/search/all_5.js +2 -2
  443. package/SVF-doxygen/html/html/search/all_6.js +5 -5
  444. package/SVF-doxygen/html/html/search/all_7.js +11 -12
  445. package/SVF-doxygen/html/html/search/all_8.js +3 -3
  446. package/SVF-doxygen/html/html/search/all_9.js +4 -4
  447. package/SVF-doxygen/html/html/search/all_b.js +1 -1
  448. package/SVF-doxygen/html/html/search/all_c.js +3 -3
  449. package/SVF-doxygen/html/html/search/all_d.js +3 -3
  450. package/SVF-doxygen/html/html/search/all_e.js +2 -2
  451. package/SVF-doxygen/html/html/search/all_f.js +5 -5
  452. package/SVF-doxygen/html/html/search/functions_0.js +4 -4
  453. package/SVF-doxygen/html/html/search/functions_1.js +6 -6
  454. package/SVF-doxygen/html/html/search/functions_10.js +1 -2
  455. package/SVF-doxygen/html/html/search/functions_11.js +11 -11
  456. package/SVF-doxygen/html/html/search/functions_12.js +1 -1
  457. package/SVF-doxygen/html/html/search/functions_13.js +12 -12
  458. package/SVF-doxygen/html/html/search/functions_17.js +16 -16
  459. package/SVF-doxygen/html/html/search/functions_2.js +14 -14
  460. package/SVF-doxygen/html/html/search/functions_3.js +5 -5
  461. package/SVF-doxygen/html/html/search/functions_4.js +2 -2
  462. package/SVF-doxygen/html/html/search/functions_5.js +4 -4
  463. package/SVF-doxygen/html/html/search/functions_6.js +11 -11
  464. package/SVF-doxygen/html/html/search/functions_7.js +3 -3
  465. package/SVF-doxygen/html/html/search/functions_8.js +3 -3
  466. package/SVF-doxygen/html/html/search/functions_d.js +1 -1
  467. package/SVF-doxygen/html/html/search/functions_e.js +3 -3
  468. package/SVF-doxygen/html/html/search/functions_f.js +5 -5
  469. package/SVF-doxygen/html/html/search/typedefs_11.js +1 -1
  470. package/SVF-doxygen/html/html/search/variables_0.js +1 -1
  471. package/SVF-doxygen/html/html/search/variables_10.js +2 -2
  472. package/SVF-doxygen/html/html/search/variables_12.js +5 -6
  473. package/SVF-doxygen/html/html/search/variables_13.js +3 -3
  474. package/SVF-doxygen/html/html/search/variables_14.js +1 -0
  475. package/SVF-doxygen/html/html/search/variables_6.js +1 -1
  476. package/SVF-doxygen/html/html/search/variables_7.js +0 -1
  477. package/SVF-doxygen/html/html/search/variables_9.js +1 -1
  478. package/SVF-doxygen/html/html/search/variables_d.js +1 -1
  479. package/SVF-doxygen/html/html/search/variables_e.js +1 -1
  480. package/SVF-doxygen/html/html/structSVF_1_1DOTGraphTraits_3_01CFLGraph_01_5_01_4.html +14 -14
  481. package/SVF-doxygen/html/html/structSVF_1_1DOTGraphTraits_3_01ConstraintGraph_01_5_01_4.html +2 -2
  482. package/SVF-doxygen/html/html/structSVF_1_1DOTGraphTraits_3_01IRGraph_01_5_01_4.html +1 -1
  483. package/SVF-doxygen/html/html/structSVF_1_1DOTGraphTraits_3_01SVFG_01_5_01_4.html +1 -1
  484. package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1SVFG_01_5_01_4.html +2 -2
  485. package/SVF-doxygen/html/html/structSVF_1_1Hash_3_01NodePair_01_4.html +3 -3
  486. package/SVF-doxygen/html/html/structSVF_1_1SparseBitVectorElement-members.html +1 -1
  487. package/SVF-doxygen/html/html/structSVF_1_1SparseBitVectorElement.html +47 -57
  488. package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1NodePair_01_4.html +3 -3
  489. package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1PointsTo_01_4.html +1 -1
  490. package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1SparseBitVector_3_01N_01_4_01_4.html +5 -5
  491. package/SVF-doxygen/html/html/structstd_1_1hash_3_01std_1_1vector_3_01T_01_4_01_4.html +3 -3
  492. package/SVF-doxygen/html/html/svf-ex_8cpp.html +6 -7
  493. package/SVF-doxygen/html/html/svf-ex_8cpp_source.html +7 -7
  494. package/SVF-doxygen/html/html/tools_2MTA_2MTAResultValidator_8h_source.html +1 -1
  495. package/SVF-doxygen/html/html/wpa_8cpp.html +1 -1
  496. package/SVF-doxygen/html/html/wpa_8cpp_source.html +1 -1
  497. package/build.sh +2 -2
  498. package/include/DDA/DDAPass.h +1 -1
  499. package/include/DDA/FlowDDA.h +1 -1
  500. package/include/Graphs/ICFG.h +1 -1
  501. package/include/Graphs/SVFG.h +3 -4
  502. package/include/Graphs/SVFGOPT.h +7 -7
  503. package/include/MSSA/MemSSA.h +2 -0
  504. package/include/MSSA/SVFGBuilder.h +5 -14
  505. package/include/MTA/MTA.h +2 -2
  506. package/include/MemoryModel/MutablePointsToDS.h +3 -3
  507. package/include/MemoryModel/PersistentPointsToCache.h +7 -8
  508. package/include/MemoryModel/PersistentPointsToDS.h +93 -93
  509. package/include/MemoryModel/PointerAnalysisImpl.h +17 -28
  510. package/include/MemoryModel/PointsTo.h +24 -24
  511. package/include/SABER/SrcSnkDDA.h +10 -13
  512. package/include/SVF-LLVM/LLVMLoopAnalysis.h +2 -1
  513. package/include/SVF-LLVM/LLVMModule.h +6 -6
  514. package/include/SVFIR/SVFIR.h +3 -5
  515. package/include/SVFIR/SVFType.h +6 -8
  516. package/include/SVFIR/SVFValue.h +5 -5
  517. package/include/Util/Options.h +0 -1
  518. package/include/Util/SparseBitVector.h +6 -14
  519. package/include/WPA/FlowSensitive.h +13 -20
  520. package/include/WPA/WPASolver.h +5 -9
  521. package/lib/DDA/DDAPass.cpp +4 -4
  522. package/lib/Graphs/CFLGraph.cpp +3 -0
  523. package/lib/Graphs/SVFG.cpp +1 -1
  524. package/lib/MSSA/MemSSA.cpp +5 -3
  525. package/lib/MSSA/SVFGBuilder.cpp +9 -27
  526. package/lib/MTA/MTA.cpp +4 -4
  527. package/lib/MemoryModel/PointerAnalysisImpl.cpp +10 -10
  528. package/lib/MemoryModel/PointsTo.cpp +23 -19
  529. package/lib/SVF-LLVM/LLVMLoopAnalysis.cpp +3 -4
  530. package/lib/SVF-LLVM/LLVMModule.cpp +32 -21
  531. package/lib/SVFIR/SVFIR.cpp +1 -1
  532. package/lib/SVFIR/SymbolTableInfo.cpp +4 -15
  533. package/lib/Util/Options.cpp +0 -6
  534. package/lib/WPA/AndersenSFR.cpp +1 -1
  535. package/lib/WPA/FlowSensitive.cpp +1 -1
  536. package/package.json +1 -1
  537. package/tools/CFL/cfl.cpp +5 -4
  538. package/tools/DDA/dda.cpp +3 -2
  539. package/tools/Example/svf-ex.cpp +3 -2
  540. package/tools/MTA/mta.cpp +6 -4
  541. package/tools/SABER/saber.cpp +7 -5
  542. package/tools/WPA/wpa.cpp +3 -2
@@ -66,11 +66,11 @@ $(function() {
66
66
  <div class="title">SVFG.h</div> </div>
67
67
  </div><!--header-->
68
68
  <div class="contents">
69
- <a href="SVFG_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">//===- SVFG.h -- Sparse value-flow graph--------------------------------------//</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"> * SVFG.h</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment"> * Created on: Oct 28, 2013</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="comment"> * Author: Yulei Sui</span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#ifndef SVFG_H_</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor">#define SVFG_H_</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="VFG_8h.html">Graphs/VFG.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="SVFGNode_8h.html">Graphs/SVFGNode.h</a>&quot;</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespaceSVF.html">SVF</a></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;{</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="keyword">class </span>PointerAnalysis;</div><div class="line"><a name="l00040"></a><span class="lineno"><a class="line" href="namespaceSVF.html#aa4745cf70b26e17d59752356f0b19dd9"> 40</a></span>&#160;<span class="keyword">class </span><a class="code" href="classSVF_1_1SVFGStat.html">SVFGStat</a>;</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="keyword">typedef</span> <a class="code" href="classSVF_1_1VFGEdge.html">VFGEdge</a> <a class="code" href="namespaceSVF.html#aa4745cf70b26e17d59752356f0b19dd9">SVFGEdge</a>;</div><div class="line"><a name="l00043"></a><span class="lineno"><a class="line" href="namespaceSVF.html#a5dfa3fa5129bacdc0be0c051ccf386df"> 43</a></span>&#160;<span class="keyword">typedef</span> <a class="code" href="classSVF_1_1VFGNode.html">VFGNode</a> <a class="code" href="namespaceSVF.html#a5dfa3fa5129bacdc0be0c051ccf386df">SVFGNode</a>;</div><div class="line"><a name="l00044"></a><span class="lineno"><a class="line" href="namespaceSVF.html#a11c50c2f81327753b3ff3ffdbe356812"> 44</a></span>&#160;<span class="keyword">typedef</span> <a class="code" href="classSVF_1_1ActualParmVFGNode.html">ActualParmVFGNode</a> <a class="code" href="namespaceSVF.html#a11c50c2f81327753b3ff3ffdbe356812">ActualParmSVFGNode</a>;</div><div class="line"><a name="l00045"></a><span class="lineno"><a class="line" href="namespaceSVF.html#a77b8b8ca831e1eba3e47f2ca29667f67"> 45</a></span>&#160;<span class="keyword">typedef</span> <a class="code" href="classSVF_1_1ActualRetVFGNode.html">ActualRetVFGNode</a> <a class="code" href="namespaceSVF.html#a77b8b8ca831e1eba3e47f2ca29667f67">ActualRetSVFGNode</a>;</div><div class="line"><a name="l00046"></a><span class="lineno"><a class="line" href="namespaceSVF.html#ad466edced10faeafd48e96daf193b8a9"> 46</a></span>&#160;<span class="keyword">typedef</span> <a class="code" href="classSVF_1_1FormalParmVFGNode.html">FormalParmVFGNode</a> <a class="code" href="namespaceSVF.html#ad466edced10faeafd48e96daf193b8a9">FormalParmSVFGNode</a>;</div><div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="namespaceSVF.html#ae5987da3ffd5681e8ec4ef14ba54588e"> 47</a></span>&#160;<span class="keyword">typedef</span> <a class="code" href="classSVF_1_1FormalRetVFGNode.html">FormalRetVFGNode</a> <a class="code" href="namespaceSVF.html#ae5987da3ffd5681e8ec4ef14ba54588e">FormalRetSVFGNode</a>;</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;</div><div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="namespaceSVF.html#aeccd0bd024319173c1cda5ff1a79c5ae"> 49</a></span>&#160;<span class="keyword">typedef</span> <a class="code" href="classSVF_1_1NullPtrVFGNode.html">NullPtrVFGNode</a> <a class="code" href="namespaceSVF.html#aeccd0bd024319173c1cda5ff1a79c5ae">NullPtrSVFGNode</a>;</div><div class="line"><a name="l00050"></a><span class="lineno"><a class="line" href="namespaceSVF.html#a26bd4f89dc154b9c6d34b6a517777934"> 50</a></span>&#160;<span class="keyword">typedef</span> <a class="code" href="classSVF_1_1StmtVFGNode.html">StmtVFGNode</a> <a class="code" href="namespaceSVF.html#a26bd4f89dc154b9c6d34b6a517777934">StmtSVFGNode</a>;</div><div class="line"><a name="l00051"></a><span class="lineno"><a class="line" href="namespaceSVF.html#a959453cbb8ff2d852b526fd1ff74ce49"> 51</a></span>&#160;<span class="keyword">typedef</span> <a class="code" href="classSVF_1_1AddrVFGNode.html">AddrVFGNode</a> <a class="code" href="namespaceSVF.html#a959453cbb8ff2d852b526fd1ff74ce49">AddrSVFGNode</a>;</div><div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="namespaceSVF.html#ab98f7c9e6311e649cdfd5d2f3f8e59be"> 52</a></span>&#160;<span class="keyword">typedef</span> <a class="code" href="classSVF_1_1CopyVFGNode.html">CopyVFGNode</a> <a class="code" href="namespaceSVF.html#ab98f7c9e6311e649cdfd5d2f3f8e59be">CopySVFGNode</a>;</div><div class="line"><a name="l00053"></a><span class="lineno"><a class="line" href="namespaceSVF.html#a54c5725186e66ead6faf53c10a288714"> 53</a></span>&#160;<span class="keyword">typedef</span> <a class="code" href="classSVF_1_1StoreVFGNode.html">StoreVFGNode</a> <a class="code" href="namespaceSVF.html#a54c5725186e66ead6faf53c10a288714">StoreSVFGNode</a>;</div><div class="line"><a name="l00054"></a><span class="lineno"><a class="line" href="namespaceSVF.html#a3ce49be3724e1e8423ccdfa726fbf6c8"> 54</a></span>&#160;<span class="keyword">typedef</span> <a class="code" href="classSVF_1_1LoadVFGNode.html">LoadVFGNode</a> <a class="code" href="namespaceSVF.html#a3ce49be3724e1e8423ccdfa726fbf6c8">LoadSVFGNode</a>;</div><div class="line"><a name="l00055"></a><span class="lineno"><a class="line" href="namespaceSVF.html#a65a3be463427d1112a8b87f072f3d22f"> 55</a></span>&#160;<span class="keyword">typedef</span> <a class="code" href="classSVF_1_1GepVFGNode.html">GepVFGNode</a> <a class="code" href="namespaceSVF.html#a65a3be463427d1112a8b87f072f3d22f">GepSVFGNode</a>;</div><div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="namespaceSVF.html#a71d4e214e049f02bf26537cba6328673"> 56</a></span>&#160;<span class="keyword">typedef</span> <a class="code" href="classSVF_1_1PHIVFGNode.html">PHIVFGNode</a> <a class="code" href="namespaceSVF.html#a71d4e214e049f02bf26537cba6328673">PHISVFGNode</a>;</div><div class="line"><a name="l00057"></a><span class="lineno"><a class="line" href="namespaceSVF.html#ad772e1586e369943f37c22641e93e941"> 57</a></span>&#160;<span class="keyword">typedef</span> <a class="code" href="classSVF_1_1IntraPHIVFGNode.html">IntraPHIVFGNode</a> <a class="code" href="namespaceSVF.html#ad772e1586e369943f37c22641e93e941">IntraPHISVFGNode</a>;</div><div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="namespaceSVF.html#a0f7ff1d9a479df87241b45bb9c81d3ca"> 58</a></span>&#160;<span class="keyword">typedef</span> <a class="code" href="classSVF_1_1InterPHIVFGNode.html">InterPHIVFGNode</a> <a class="code" href="namespaceSVF.html#a0f7ff1d9a479df87241b45bb9c81d3ca">InterPHISVFGNode</a>;</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;</div><div class="line"><a name="l00065"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFG.html"> 65</a></span>&#160;<span class="keyword">class </span><a class="code" href="classSVF_1_1SVFG.html">SVFG</a> : <span class="keyword">public</span> <a class="code" href="classSVF_1_1VFG.html">VFG</a></div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;{</div><div class="line"><a name="l00067"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFG.html#ab2f81db3935389480baa5cb14e15e9d7"> 67</a></span>&#160; <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classSVF_1_1SVFGBuilder.html">SVFGBuilder</a>;</div><div class="line"><a name="l00068"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFG.html#a93a4287b55425abc188e5f5f2de54297"> 68</a></span>&#160; <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classSVF_1_1SaberSVFGBuilder.html">SaberSVFGBuilder</a>;</div><div class="line"><a name="l00069"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFG.html#a665c93b68f49078c281270a028d04445"> 69</a></span>&#160; <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classSVF_1_1SVFG.html#a665c93b68f49078c281270a028d04445">TaintSVFGBuilder</a>;</div><div class="line"><a name="l00070"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFG.html#a9ccd530dc4c49b0df372a2ce95b66921"> 70</a></span>&#160; <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classSVF_1_1SVFG.html#a9ccd530dc4c49b0df372a2ce95b66921">DDASVFGBuilder</a>;</div><div class="line"><a name="l00071"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFG.html#ac0e43f4a2043538c9046f95826caa725"> 71</a></span>&#160; <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classSVF_1_1MTASVFGBuilder.html">MTASVFGBuilder</a>;</div><div class="line"><a name="l00072"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFG.html#a67654d252e9e93b74e35ba247048b41a"> 72</a></span>&#160; <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classSVF_1_1SVFG.html#a67654d252e9e93b74e35ba247048b41a">RcSvfgBuilder</a>;</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00075"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFG.html#a3d04ce1429b1edf90c9c0833e3b5a4a9"> 75</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="classSVF_1_1VFG.html#ab2abe2ba4ac9e3e1d326d042d35acbc0">VFGNodeIDToNodeMapTy</a> <a class="code" href="classSVF_1_1SVFG.html#a3d04ce1429b1edf90c9c0833e3b5a4a9">SVFGNodeIDToNodeMapTy</a>;</div><div class="line"><a name="l00076"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFG.html#a2590182f3b28c7fc8b2b53c09ec4305c"> 76</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map&lt;const PAGNode*, NodeID&gt;</a> <a class="code" href="classSVF_1_1SVFG.html#a2590182f3b28c7fc8b2b53c09ec4305c">PAGNodeToDefMapTy</a>;</div><div class="line"><a name="l00077"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFG.html#ac84d3749671f177b14749a825e36efe3"> 77</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map&lt;const MRVer*, NodeID&gt;</a> <a class="code" href="classSVF_1_1SVFG.html#ac84d3749671f177b14749a825e36efe3">MSSAVarToDefMapTy</a>;</div><div class="line"><a name="l00078"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFG.html#aa9f520779475e4783eccc45c460e346a"> 78</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="classSVF_1_1SparseBitVector.html">NodeBS</a> <a class="code" href="classSVF_1_1SVFG.html#aa9f520779475e4783eccc45c460e346a">ActualINSVFGNodeSet</a>;</div><div class="line"><a name="l00079"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFG.html#a2f6ed8a9f14657abc1e2a89247a84b99"> 79</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="classSVF_1_1SparseBitVector.html">NodeBS</a> <a class="code" href="classSVF_1_1SVFG.html#a2f6ed8a9f14657abc1e2a89247a84b99">ActualOUTSVFGNodeSet</a>;</div><div class="line"><a name="l00080"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFG.html#a8859409373454b6b3d1252776e169cf5"> 80</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="classSVF_1_1SparseBitVector.html">NodeBS</a> <a class="code" href="classSVF_1_1SVFG.html#a8859409373454b6b3d1252776e169cf5">FormalINSVFGNodeSet</a>;</div><div class="line"><a name="l00081"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFG.html#acb7262c3b9161c77eb1b491048152fb0"> 81</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="classSVF_1_1SparseBitVector.html">NodeBS</a> <a class="code" href="classSVF_1_1SVFG.html#acb7262c3b9161c77eb1b491048152fb0">FormalOUTSVFGNodeSet</a>;</div><div class="line"><a name="l00082"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFG.html#a727af89a305e48f399ad33cc7149dbcb"> 82</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map&lt;const CallICFGNode*, ActualINSVFGNodeSet&gt;</a> <a class="code" href="classSVF_1_1SVFG.html#a727af89a305e48f399ad33cc7149dbcb">CallSiteToActualINsMapTy</a>;</div><div class="line"><a name="l00083"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFG.html#a7c4e9c0fad457a2dc81a85f96fcec9ec"> 83</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map&lt;const CallICFGNode*, ActualOUTSVFGNodeSet&gt;</a> <a class="code" href="classSVF_1_1SVFG.html#a7c4e9c0fad457a2dc81a85f96fcec9ec">CallSiteToActualOUTsMapTy</a>;</div><div class="line"><a name="l00084"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFG.html#a2b4850c833564916c7fce46d55672038"> 84</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map&lt;const SVFFunction*, FormalINSVFGNodeSet&gt;</a> <a class="code" href="classSVF_1_1SVFG.html#a2b4850c833564916c7fce46d55672038">FunctionToFormalINsMapTy</a>;</div><div class="line"><a name="l00085"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFG.html#ac4c65501e9beba5495a57dd469f78e5b"> 85</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map&lt;const SVFFunction*, FormalOUTSVFGNodeSet&gt;</a> <a class="code" href="classSVF_1_1SVFG.html#ac4c65501e9beba5495a57dd469f78e5b">FunctionToFormalOUTsMapTy</a>;</div><div class="line"><a name="l00086"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFG.html#acdbe1c510273107b708935061b6c4127"> 86</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="classSVF_1_1MemSSA.html#a81bba824495a882b49e687683954b112">MemSSA::MUSet</a> <a class="code" href="classSVF_1_1SVFG.html#acdbe1c510273107b708935061b6c4127">MUSet</a>;</div><div class="line"><a name="l00087"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFG.html#a8843ab4a4608f7f5f46f68ad31314c07"> 87</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="classSVF_1_1MemSSA.html#af9cf084e3070456d8cca491e1391b0c4">MemSSA::CHISet</a> <a class="code" href="classSVF_1_1SVFG.html#a8843ab4a4608f7f5f46f68ad31314c07">CHISet</a>;</div><div class="line"><a name="l00088"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFG.html#aef7ee9d802934d51b3761663bdaf0c05"> 88</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="classSVF_1_1MemSSA.html#a8a5d3597f3dba9744e170cc8c32bf25f">MemSSA::PHISet</a> <a class="code" href="classSVF_1_1SVFG.html#aef7ee9d802934d51b3761663bdaf0c05">PHISet</a>;</div><div class="line"><a name="l00089"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFG.html#a7f4deffe7e13352b8c13eab110c834cc"> 89</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="classSVF_1_1MSSAMU.html">MemSSA::MU</a> <a class="code" href="classSVF_1_1SVFG.html#a7f4deffe7e13352b8c13eab110c834cc">MU</a>;</div><div class="line"><a name="l00090"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFG.html#a60df52c14b303562ff5d73c7836e3495"> 90</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="classSVF_1_1MSSACHI.html">MemSSA::CHI</a> <a class="code" href="classSVF_1_1SVFG.html#a60df52c14b303562ff5d73c7836e3495">CHI</a>;</div><div class="line"><a name="l00091"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFG.html#a86d4a41a881a3d2e5def103d7ba8bb2f"> 91</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="classSVF_1_1LoadMU.html">MemSSA::LOADMU</a> <a class="code" href="classSVF_1_1SVFG.html#a86d4a41a881a3d2e5def103d7ba8bb2f">LOADMU</a>;</div><div class="line"><a name="l00092"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFG.html#ad14cdbb3f1df1f716aa03b4d39f4e52b"> 92</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="classSVF_1_1StoreCHI.html">MemSSA::STORECHI</a> <a class="code" href="classSVF_1_1SVFG.html#ad14cdbb3f1df1f716aa03b4d39f4e52b">STORECHI</a>;</div><div class="line"><a name="l00093"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFG.html#a047573d70182da351b9e3bbf66ca0056"> 93</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="classSVF_1_1RetMU.html">MemSSA::RETMU</a> <a class="code" href="classSVF_1_1SVFG.html#a047573d70182da351b9e3bbf66ca0056">RETMU</a>;</div><div class="line"><a name="l00094"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFG.html#a101c5a8b31baf5c5613144f6e277abe9"> 94</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="classSVF_1_1EntryCHI.html">MemSSA::ENTRYCHI</a> <a class="code" href="classSVF_1_1SVFG.html#a101c5a8b31baf5c5613144f6e277abe9">ENTRYCHI</a>;</div><div class="line"><a name="l00095"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFG.html#a5f3e0fbf83621cc661d2c59800756727"> 95</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="classSVF_1_1CallCHI.html">MemSSA::CALLCHI</a> <a class="code" href="classSVF_1_1SVFG.html#a5f3e0fbf83621cc661d2c59800756727">CALLCHI</a>;</div><div class="line"><a name="l00096"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFG.html#acd9fd6597e5dedf3c14a430830c7dd08"> 96</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="classSVF_1_1CallMU.html">MemSSA::CALLMU</a> <a class="code" href="classSVF_1_1SVFG.html#acd9fd6597e5dedf3c14a430830c7dd08">CALLMU</a>;</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="keyword">protected</span>:</div><div class="line"><a name="l00099"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFG.html#aafa1b445bd3578daaba8f82e517745f1"> 99</a></span>&#160; MSSAVarToDefMapTy <a class="code" href="classSVF_1_1SVFG.html#aafa1b445bd3578daaba8f82e517745f1">MSSAVarToDefMap</a>; </div><div class="line"><a name="l00100"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFG.html#af9313ebec4a52fd887169b7c6373a7d4"> 100</a></span>&#160; CallSiteToActualINsMapTy <a class="code" href="classSVF_1_1SVFG.html#af9313ebec4a52fd887169b7c6373a7d4">callSiteToActualINMap</a>;</div><div class="line"><a name="l00101"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFG.html#a39873b954b6e0eb0641f56ca4cd06ef9"> 101</a></span>&#160; CallSiteToActualOUTsMapTy <a class="code" href="classSVF_1_1SVFG.html#a39873b954b6e0eb0641f56ca4cd06ef9">callSiteToActualOUTMap</a>;</div><div class="line"><a name="l00102"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFG.html#ae51cd0493e4e767848b96b69045762fd"> 102</a></span>&#160; FunctionToFormalINsMapTy <a class="code" href="classSVF_1_1SVFG.html#ae51cd0493e4e767848b96b69045762fd">funToFormalINMap</a>;</div><div class="line"><a name="l00103"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFG.html#a7d58f9fe97071ec9936174689cb99301"> 103</a></span>&#160; FunctionToFormalOUTsMapTy <a class="code" href="classSVF_1_1SVFG.html#a7d58f9fe97071ec9936174689cb99301">funToFormalOUTMap</a>;</div><div class="line"><a name="l00104"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFG.html#ad5c1415f488ec4412d5457262269eff3"> 104</a></span>&#160; <a class="code" href="classSVF_1_1SVFGStat.html">SVFGStat</a> * <a class="code" href="classSVF_1_1SVFG.html#ad5c1415f488ec4412d5457262269eff3">stat</a>;</div><div class="line"><a name="l00105"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFG.html#a6f07410ee34e4bf1079e3b5902c81d28"> 105</a></span>&#160; <a class="code" href="classSVF_1_1MemSSA.html">MemSSA</a>* <a class="code" href="classSVF_1_1SVFG.html#a6f07410ee34e4bf1079e3b5902c81d28">mssa</a>;</div><div class="line"><a name="l00106"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFG.html#a0d6cfa496e6885fe31b6b7a651fa01a8"> 106</a></span>&#160; <a class="code" href="classSVF_1_1PointerAnalysis.html">PointerAnalysis</a>* <a class="code" href="classSVF_1_1SVFG.html#a0d6cfa496e6885fe31b6b7a651fa01a8">pta</a>;</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFG.html#a82a93d9b7fcf1938e3090a0826a1ca7e">destroy</a>();</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <a class="code" href="classSVF_1_1SVFG.html#a68965c5a9cc5136aa0b593851c60ff12">SVFG</a>(<a class="code" href="classSVF_1_1MemSSA.html">MemSSA</a>* mssa, <a class="code" href="classSVF_1_1VFG.html#ac2e2f555975063da3fa1932ac35802c6">VFGK</a> k);</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFG.html#a0920e9f9896531959d74ae61013d96d6">buildSVFG</a>();</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;<span class="keyword">public</span>:</div><div class="line"><a name="l00119"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFG.html#a710a36fc3f4ad15010c4469abcd032e5"> 119</a></span>&#160; <span class="keyword">virtual</span> <a class="code" href="classSVF_1_1SVFG.html#a710a36fc3f4ad15010c4469abcd032e5">~SVFG</a>()</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; {</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <a class="code" href="classSVF_1_1SVFG.html#a82a93d9b7fcf1938e3090a0826a1ca7e">destroy</a>();</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; }</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;</div><div class="line"><a name="l00125"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFG.html#a8ba934714a7f2caf2e041002fdb66137"> 125</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="classSVF_1_1SVFGStat.html">SVFGStat</a>* <a class="code" href="classSVF_1_1SVFG.html#a8ba934714a7f2caf2e041002fdb66137">getStat</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFG.html#ad5c1415f488ec4412d5457262269eff3">stat</a>;</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="l00131"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFG.html#aeba803e60699f9d9422596d161d44241"> 131</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFG.html#aeba803e60699f9d9422596d161d44241">clearMSSA</a>()</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; {</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; <span class="keyword">delete</span> <a class="code" href="classSVF_1_1SVFG.html#a6f07410ee34e4bf1079e3b5902c81d28">mssa</a>;</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; mssa = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; }</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160;</div><div class="line"><a name="l00138"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFG.html#a49a910bc4ea6e98d1584e74a018badc9"> 138</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="classSVF_1_1MemSSA.html">MemSSA</a>* <a class="code" href="classSVF_1_1SVFG.html#a49a910bc4ea6e98d1584e74a018badc9">getMSSA</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFG.html#a6f07410ee34e4bf1079e3b5902c81d28">mssa</a>;</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; }</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;</div><div class="line"><a name="l00144"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFG.html#ab6c337637ccc9bbf0bcc7153b427f7ca"> 144</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="classSVF_1_1PointerAnalysis.html">PointerAnalysis</a>* <a class="code" href="classSVF_1_1SVFG.html#ab6c337637ccc9bbf0bcc7153b427f7ca">getPTA</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFG.html#a0d6cfa496e6885fe31b6b7a651fa01a8">pta</a>;</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="l00150"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFG.html#a7ace06b6c893b31f7dec2abe54e33e11"> 150</a></span>&#160; <span class="keyword">inline</span> SVFGNode* <a class="code" href="classSVF_1_1SVFG.html#a7ace06b6c893b31f7dec2abe54e33e11">getSVFGNode</a>(<a class="code" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> <span class="keywordtype">id</span>)<span class="keyword"> const</span></div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1VFG.html#a915fa50effaeea10716b86528b15c6dc">getVFGNode</a>(<span class="keywordtype">id</span>);</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; }</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160;</div><div class="line"><a name="l00156"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFG.html#a1b9d1ad76785ae0eb07979aa75325640"> 156</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1SVFG.html#a1b9d1ad76785ae0eb07979aa75325640">hasSVFGNode</a>(<a class="code" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> <span class="keywordtype">id</span>)<span class="keyword"> const</span></div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1VFG.html#a30eb9d717ad5bc8a9109a7bdef38f4a1">hasVFGNode</a>(<span class="keywordtype">id</span>);</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; }</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160;</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFG.html#a49fc2c505720d5cfa57231529d1c7534">getInterVFEdgesForIndirectCallSite</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* cs, <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* callee, <a class="code" href="classSVF_1_1VFG.html#ac97ef8c479556f9ca2c40cd4d8a18694">SVFGEdgeSetTy</a>&amp; edges);</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160;</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFG.html#a5fdaddc52e7342b834d76d64c1a1e498">dump</a>(<span class="keyword">const</span> <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a>&amp; file, <span class="keywordtype">bool</span> simple = <span class="keyword">false</span>);</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160;</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFG.html#aefca97f043b3e220ef6012a049b83fdf">connectCallerAndCallee</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* cs, <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* callee, <a class="code" href="classSVF_1_1VFG.html#ac97ef8c479556f9ca2c40cd4d8a18694">SVFGEdgeSetTy</a>&amp; edges);</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160;</div><div class="line"><a name="l00171"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFG.html#a8e7a945f4266e8dc7dcfff2ad6494bfb"> 171</a></span>&#160; <span class="keyword">inline</span> <span class="keyword">const</span> SVFGNode* <a class="code" href="classSVF_1_1SVFG.html#a8e7a945f4266e8dc7dcfff2ad6494bfb">getDefSVFGNode</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">PAGNode</a>* pagNode)<span class="keyword"> const</span></div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFG.html#a7ace06b6c893b31f7dec2abe54e33e11">getSVFGNode</a>(<a class="code" href="classSVF_1_1SVFG.html#abd917826bf50ed409a307ce00562c97d">getDef</a>(pagNode));</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; }</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160;</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFG.html#adc9fbb4553472b238d6c3bb5062279cb">performStat</a>();</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160;</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160;</div><div class="line"><a name="l00181"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFG.html#a21577bc4b4e55b23aa55083f5321b399"> 181</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1SVFG.html#a21577bc4b4e55b23aa55083f5321b399">hasActualINSVFGNodes</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* cs)<span class="keyword"> const</span></div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; <span class="keywordflow">return</span> callSiteToActualINMap.find(cs)!=callSiteToActualINMap.end();</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; }</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160;</div><div class="line"><a name="l00186"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFG.html#ab1fde654cc464c5b4d1bafff83d346ed"> 186</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1SVFG.html#ab1fde654cc464c5b4d1bafff83d346ed">hasActualOUTSVFGNodes</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* cs)<span class="keyword"> const</span></div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; <span class="keywordflow">return</span> callSiteToActualOUTMap.find(cs)!=callSiteToActualOUTMap.end();</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; }</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160;</div><div class="line"><a name="l00191"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFG.html#a65f28035e0fa5bebf76d28612b2f8ba8"> 191</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1SVFG.html#a65f28035e0fa5bebf76d28612b2f8ba8">hasFormalINSVFGNodes</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* fun)<span class="keyword"> const</span></div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; <span class="keywordflow">return</span> funToFormalINMap.find(fun)!=funToFormalINMap.end();</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; }</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160;</div><div class="line"><a name="l00196"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFG.html#a1f8c60ad57bf473e0186b794d666b5c2"> 196</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1SVFG.html#a1f8c60ad57bf473e0186b794d666b5c2">hasFormalOUTSVFGNodes</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* fun)<span class="keyword"> const</span></div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; <span class="keywordflow">return</span> funToFormalOUTMap.find(fun)!=funToFormalOUTMap.end();</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; }</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160;</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160;</div><div class="line"><a name="l00204"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFG.html#a475205e221890204c7770c414ee63975"> 204</a></span>&#160; <span class="keyword">inline</span> ActualINSVFGNodeSet&amp; <a class="code" href="classSVF_1_1SVFG.html#a475205e221890204c7770c414ee63975">getActualINSVFGNodes</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* cs)</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; {</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; <span class="keywordflow">return</span> callSiteToActualINMap[cs];</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; }</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160;</div><div class="line"><a name="l00209"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFG.html#a5b7ae610bee28acc2905ca82928e714f"> 209</a></span>&#160; <span class="keyword">inline</span> ActualOUTSVFGNodeSet&amp; <a class="code" href="classSVF_1_1SVFG.html#a5b7ae610bee28acc2905ca82928e714f">getActualOUTSVFGNodes</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* cs)</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; {</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; <span class="keywordflow">return</span> callSiteToActualOUTMap[cs];</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; }</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160;</div><div class="line"><a name="l00214"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFG.html#a9d0714075d6071c26d26cf16c4dec7c5"> 214</a></span>&#160; <span class="keyword">inline</span> FormalINSVFGNodeSet&amp; <a class="code" href="classSVF_1_1SVFG.html#a9d0714075d6071c26d26cf16c4dec7c5">getFormalINSVFGNodes</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* fun)</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; {</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; <span class="keywordflow">return</span> funToFormalINMap[fun];</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; }</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160;</div><div class="line"><a name="l00219"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFG.html#a287c337697eed7d92889bca0a0e370d7"> 219</a></span>&#160; <span class="keyword">inline</span> FormalOUTSVFGNodeSet&amp; <a class="code" href="classSVF_1_1SVFG.html#a287c337697eed7d92889bca0a0e370d7">getFormalOUTSVFGNodes</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* fun)</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; {</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; <span class="keywordflow">return</span> funToFormalOUTMap[fun];</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; }</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160;</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* <a class="code" href="classSVF_1_1SVFG.html#ae2cff3c963136f474fac0a66aa8cff7b">isFunEntrySVFGNode</a>(<span class="keyword">const</span> SVFGNode* node) <span class="keyword">const</span>;</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160;</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* <a class="code" href="classSVF_1_1SVFG.html#ad189e45b0c810e68566ccc3bdb3f2e59">isCallSiteRetSVFGNode</a>(<span class="keyword">const</span> SVFGNode* node) <span class="keyword">const</span>;</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160;</div><div class="line"><a name="l00232"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFG.html#a931d8b82e10a54d68c68cf6bd80264be"> 232</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFG.html#a931d8b82e10a54d68c68cf6bd80264be">removeSVFGEdge</a>(SVFGEdge* edge)</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; {</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; <a class="code" href="classSVF_1_1VFG.html#aeb24b155fe31813b2e6dc0564f55738a">removeVFGEdge</a>(edge);</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; }</div><div class="line"><a name="l00237"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFG.html#a700c5fc6c1cb4136e55196fe3d393b8b"> 237</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFG.html#a700c5fc6c1cb4136e55196fe3d393b8b">removeSVFGNode</a>(SVFGNode* node)</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; {</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; <a class="code" href="classSVF_1_1VFG.html#a122aa5ad874170ef644cee8705f1ef3e">removeVFGNode</a>(node);</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; }</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160;</div><div class="line"><a name="l00243"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFG.html#a67750c461e3543f6b75d2dd510d67297"> 243</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1SVFG.html#a67750c461e3543f6b75d2dd510d67297">addSVFGEdge</a>(SVFGEdge* edge)</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; {</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1VFG.html#a84cf5facb15e1d598c2527fba0c7634d">addVFGEdge</a>(edge);</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; }</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160;</div><div class="line"><a name="l00249"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFG.html#ac965abfbe9bdc872f98b36a171a7b5aa"> 249</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1SVFG.html#ac965abfbe9bdc872f98b36a171a7b5aa">getSVFGNodeNum</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1GenericGraph.html#a38122734cbe71551a420dfb7fee2012e">nodeNum</a>;</div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; }</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160;</div><div class="line"><a name="l00257"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFG.html#a8dd513e8e5343beeb5d117c1ff4e45ea"> 257</a></span>&#160; <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="classSVF_1_1DummyVersionPropSVFGNode.html">DummyVersionPropSVFGNode</a> *<a class="code" href="classSVF_1_1SVFG.html#a8dd513e8e5343beeb5d117c1ff4e45ea">addDummyVersionPropSVFGNode</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> <span class="keywordtype">object</span>, <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> version)</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; {</div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; <a class="code" href="classSVF_1_1DummyVersionPropSVFGNode.html">DummyVersionPropSVFGNode</a> *dvpNode = <span class="keyword">new</span> <a class="code" href="classSVF_1_1DummyVersionPropSVFGNode.html">DummyVersionPropSVFGNode</a>(<a class="code" href="classSVF_1_1VFG.html#acb181d4f9faa40578c80e2018e2742b8">totalVFGNode</a>++, <span class="keywordtype">object</span>, version);</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; <span class="comment">// Not going through add[S]VFGNode because we have no ICFG edge.</span></div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; <a class="code" href="classSVF_1_1GenericGraph.html#a0a8831a5429005ff9d71adbd6bf3994f">addGNode</a>(dvpNode-&gt;<a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>(), dvpNode);</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; <span class="keywordflow">return</span> dvpNode;</div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; }</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160;</div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFG.html#a7ce9ec638995467c211958262be08ee1">writeToFile</a>(<span class="keyword">const</span> <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a>&amp; filename);</div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFG.html#a9da50b8f467066b478143af64f7c9858">readFile</a>(<span class="keyword">const</span> <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a>&amp; filename);</div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; <span class="keyword">virtual</span> <a class="code" href="classSVF_1_1MRVer.html">MRVer</a>* <a class="code" href="classSVF_1_1SVFG.html#a910298ed854a6b88b9dae44181ca72de">getMRVERFromString</a>(<span class="keyword">const</span> <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a>&amp; input);</div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160;</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160;<span class="keyword">protected</span>:</div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160;</div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; SVFGEdge* <a class="code" href="classSVF_1_1SVFG.html#ad03f0064d3a1ff397b35a606304a9c80">addIntraIndirectVFEdge</a>(<a class="code" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> srcId, <a class="code" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> dstId, <span class="keyword">const</span> <a class="code" href="classSVF_1_1SparseBitVector.html">NodeBS</a>&amp; cpts);</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; SVFGEdge* <a class="code" href="classSVF_1_1SVFG.html#af8ceb1ebf745e6803c606c41f7a482ac">addCallIndirectVFEdge</a>(<a class="code" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> srcId, <a class="code" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> dstId, <span class="keyword">const</span> <a class="code" href="classSVF_1_1SparseBitVector.html">NodeBS</a>&amp; cpts,<a class="code" href="namespaceSVF.html#a03d88a0302bcd253387690f13f693f64">CallSiteID</a> csId);</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; SVFGEdge* <a class="code" href="classSVF_1_1SVFG.html#a8ebf0e285c69db8332a1f8914d6190f6">addRetIndirectVFEdge</a>(<a class="code" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> srcId, <a class="code" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> dstId, <span class="keyword">const</span> <a class="code" href="classSVF_1_1SparseBitVector.html">NodeBS</a>&amp; cpts,<a class="code" href="namespaceSVF.html#a03d88a0302bcd253387690f13f693f64">CallSiteID</a> csId);</div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; SVFGEdge* <a class="code" href="classSVF_1_1SVFG.html#a1aba3845bad017f81cd5f938db03a161">addThreadMHPIndirectVFEdge</a>(<a class="code" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> srcId, <a class="code" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> dstId, <span class="keyword">const</span> <a class="code" href="classSVF_1_1SparseBitVector.html">NodeBS</a>&amp; cpts);</div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160;</div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; SVFGEdge* <a class="code" href="classSVF_1_1SVFG.html#a57629591037e16e57a0178d102a405f2">addInterIndirectVFCallEdge</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1ActualINSVFGNode.html">ActualINSVFGNode</a>* src, <span class="keyword">const</span> <a class="code" href="classSVF_1_1FormalINSVFGNode.html">FormalINSVFGNode</a>* dst,<a class="code" href="namespaceSVF.html#a03d88a0302bcd253387690f13f693f64">CallSiteID</a> csId);</div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160;</div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; SVFGEdge* <a class="code" href="classSVF_1_1SVFG.html#ac9666ae7266cf1a9c0a5f7d28b39d1e9">addInterIndirectVFRetEdge</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1FormalOUTSVFGNode.html">FormalOUTSVFGNode</a>* src, <span class="keyword">const</span> <a class="code" href="classSVF_1_1ActualOUTSVFGNode.html">ActualOUTSVFGNode</a>* dst,<a class="code" href="namespaceSVF.html#a03d88a0302bcd253387690f13f693f64">CallSiteID</a> csId);</div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160;</div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160;</div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160; <span class="keyword">virtual</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFG.html#ac9ab2a95cd7a09bbe4b4aa3e6fafaf62">connectAInAndFIn</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1ActualINSVFGNode.html">ActualINSVFGNode</a>* actualIn, <span class="keyword">const</span> <a class="code" href="classSVF_1_1FormalINSVFGNode.html">FormalINSVFGNode</a>* formalIn, <a class="code" href="namespaceSVF.html#a03d88a0302bcd253387690f13f693f64">CallSiteID</a> csId, <a class="code" href="classSVF_1_1VFG.html#ac97ef8c479556f9ca2c40cd4d8a18694">SVFGEdgeSetTy</a>&amp; edges)</div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; {</div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160; SVFGEdge* edge = <a class="code" href="classSVF_1_1SVFG.html#a57629591037e16e57a0178d102a405f2">addInterIndirectVFCallEdge</a>(actualIn, formalIn,csId);</div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160; <span class="keywordflow">if</span> (edge != <span class="keyword">nullptr</span>)</div><div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160; edges.insert(edge);</div><div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160; }</div><div class="line"><a name="l00294"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFG.html#a402dfe93b8692be453c4f76d048b690a"> 294</a></span>&#160; <span class="keyword">virtual</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFG.html#a402dfe93b8692be453c4f76d048b690a">connectFOutAndAOut</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1FormalOUTSVFGNode.html">FormalOUTSVFGNode</a>* formalOut, <span class="keyword">const</span> <a class="code" href="classSVF_1_1ActualOUTSVFGNode.html">ActualOUTSVFGNode</a>* actualOut, <a class="code" href="namespaceSVF.html#a03d88a0302bcd253387690f13f693f64">CallSiteID</a> csId, <a class="code" href="classSVF_1_1VFG.html#ac97ef8c479556f9ca2c40cd4d8a18694">SVFGEdgeSetTy</a>&amp; edges)</div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; {</div><div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; SVFGEdge* edge = <a class="code" href="classSVF_1_1SVFG.html#ac9666ae7266cf1a9c0a5f7d28b39d1e9">addInterIndirectVFRetEdge</a>(formalOut, actualOut,csId);</div><div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; <span class="keywordflow">if</span> (edge != <span class="keyword">nullptr</span>)</div><div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; edges.insert(edge);</div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160; }</div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160;</div><div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160;</div><div class="line"><a name="l00304"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFG.html#ac1acdf7bc468d7734359591e45f485fe"> 304</a></span>&#160; <span class="keyword">virtual</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFG.html#ac1acdf7bc468d7734359591e45f485fe">getInterVFEdgeAtIndCSFromAPToFP</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">PAGNode</a>* cs_arg, <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">PAGNode</a>* fun_arg, <span class="keyword">const</span> <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>*, <a class="code" href="namespaceSVF.html#a03d88a0302bcd253387690f13f693f64">CallSiteID</a> csId, <a class="code" href="classSVF_1_1VFG.html#ac97ef8c479556f9ca2c40cd4d8a18694">SVFGEdgeSetTy</a>&amp; edges)</div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160; {</div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160; SVFGNode* actualParam = <a class="code" href="classSVF_1_1SVFG.html#a7ace06b6c893b31f7dec2abe54e33e11">getSVFGNode</a>(<a class="code" href="classSVF_1_1SVFG.html#abd917826bf50ed409a307ce00562c97d">getDef</a>(cs_arg));</div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160; SVFGNode* formalParam = <a class="code" href="classSVF_1_1SVFG.html#a7ace06b6c893b31f7dec2abe54e33e11">getSVFGNode</a>(<a class="code" href="classSVF_1_1SVFG.html#abd917826bf50ed409a307ce00562c97d">getDef</a>(fun_arg));</div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160; SVFGEdge* edge = <a class="code" href="classSVF_1_1VFG.html#ad86631f70bd702b5635bdbeab7d884b9">hasInterVFGEdge</a>(actualParam, formalParam, <a class="code" href="classSVF_1_1VFGEdge.html#a156ae6a8b3a033f505c18c6b162e7cf5a8383c27feab3f1acc67cacef9744c04a">SVFGEdge::CallDirVF</a>, csId);</div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; assert(edge != <span class="keyword">nullptr</span> &amp;&amp; <span class="stringliteral">&quot;Can not find inter value flow edge from aparam to fparam&quot;</span>);</div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160; edges.insert(edge);</div><div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160; }</div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160;</div><div class="line"><a name="l00313"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFG.html#ab2b969b7d5922427622dd875e6b8fe14"> 313</a></span>&#160; <span class="keyword">virtual</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFG.html#ab2b969b7d5922427622dd875e6b8fe14">getInterVFEdgeAtIndCSFromFRToAR</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">PAGNode</a>* fun_ret, <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">PAGNode</a>* cs_ret, <a class="code" href="namespaceSVF.html#a03d88a0302bcd253387690f13f693f64">CallSiteID</a> csId, <a class="code" href="classSVF_1_1VFG.html#ac97ef8c479556f9ca2c40cd4d8a18694">SVFGEdgeSetTy</a>&amp; edges)</div><div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160; {</div><div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160; SVFGNode* formalRet = <a class="code" href="classSVF_1_1SVFG.html#a7ace06b6c893b31f7dec2abe54e33e11">getSVFGNode</a>(<a class="code" href="classSVF_1_1SVFG.html#abd917826bf50ed409a307ce00562c97d">getDef</a>(fun_ret));</div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160; SVFGNode* actualRet = <a class="code" href="classSVF_1_1SVFG.html#a7ace06b6c893b31f7dec2abe54e33e11">getSVFGNode</a>(<a class="code" href="classSVF_1_1SVFG.html#abd917826bf50ed409a307ce00562c97d">getDef</a>(cs_ret));</div><div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160; SVFGEdge* edge = <a class="code" href="classSVF_1_1VFG.html#ad86631f70bd702b5635bdbeab7d884b9">hasInterVFGEdge</a>(formalRet, actualRet, <a class="code" href="classSVF_1_1VFGEdge.html#a156ae6a8b3a033f505c18c6b162e7cf5a8288c583cfcbfdf9aa2ac2103c0e7191">SVFGEdge::RetDirVF</a>, csId);</div><div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160; assert(edge != <span class="keyword">nullptr</span> &amp;&amp; <span class="stringliteral">&quot;Can not find inter value flow edge from fret to aret&quot;</span>);</div><div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160; edges.insert(edge);</div><div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160; }</div><div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160;</div><div class="line"><a name="l00322"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFG.html#afbaf925e1e165f75161999229fa5f782"> 322</a></span>&#160; <span class="keyword">virtual</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFG.html#afbaf925e1e165f75161999229fa5f782">getInterVFEdgeAtIndCSFromAInToFIn</a>(<a class="code" href="classSVF_1_1ActualINSVFGNode.html">ActualINSVFGNode</a>* actualIn, <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* callee, <a class="code" href="classSVF_1_1VFG.html#ac97ef8c479556f9ca2c40cd4d8a18694">SVFGEdgeSetTy</a>&amp; edges)</div><div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160; {</div><div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="classSVF_1_1VFGNode.html#a3c558955f60c237c558d8faafed781e8">SVFGNode::const_iterator</a> outIt = actualIn-&gt;<a class="code" href="classSVF_1_1GenericNode.html#aa4f103330118c8976bf95e4bf53416eb">OutEdgeBegin</a>(), outEit = actualIn-&gt;<a class="code" href="classSVF_1_1GenericNode.html#a19a3366fd8a58290d0c740c46c3dcb3d">OutEdgeEnd</a>(); outIt != outEit; ++outIt)</div><div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160; {</div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160; SVFGEdge* edge = *outIt;</div><div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160; <span class="keywordflow">if</span> (edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#aeaa31a2c8479e831b36ce2e2582ceb86">getDstNode</a>()-&gt;getFun() == callee)</div><div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160; edges.insert(edge);</div><div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160; }</div><div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160; }</div><div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160;</div><div class="line"><a name="l00332"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFG.html#a7a88391e0c2cf8a57238dec32c2474a3"> 332</a></span>&#160; <span class="keyword">virtual</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFG.html#a7a88391e0c2cf8a57238dec32c2474a3">getInterVFEdgeAtIndCSFromFOutToAOut</a>(<a class="code" href="classSVF_1_1ActualOUTSVFGNode.html">ActualOUTSVFGNode</a>* actualOut, <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* callee, <a class="code" href="classSVF_1_1VFG.html#ac97ef8c479556f9ca2c40cd4d8a18694">SVFGEdgeSetTy</a>&amp; edges)</div><div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160; {</div><div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="classSVF_1_1VFGNode.html#a3c558955f60c237c558d8faafed781e8">SVFGNode::const_iterator</a> inIt = actualOut-&gt;<a class="code" href="classSVF_1_1GenericNode.html#ae5b113921530eee6afe58a65d8e5b3a7">InEdgeBegin</a>(), inEit = actualOut-&gt;<a class="code" href="classSVF_1_1GenericNode.html#afe6a7b286d9af4992f41b59612fd2900">InEdgeEnd</a>(); inIt != inEit; ++inIt)</div><div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160; {</div><div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160; SVFGEdge* edge = *inIt;</div><div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160; <span class="keywordflow">if</span> (edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#ab47ca533c415841ef75456cbad439589">getSrcNode</a>()-&gt;getFun() == callee)</div><div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160; edges.insert(edge);</div><div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160; }</div><div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160; }</div><div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160;</div><div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160;</div><div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160;</div><div class="line"><a name="l00346"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFG.html#accd1cbd26c9b194971f3107a57a0ab2e"> 346</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFG.html#accd1cbd26c9b194971f3107a57a0ab2e">setDef</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">PAGNode</a>* pagNode, <span class="keyword">const</span> SVFGNode* node)</div><div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160; {</div><div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160; <a class="code" href="classSVF_1_1VFG.html#a1e0b8c7df55e05739775e8a1c50cf660">VFG::setDef</a>(pagNode, node);</div><div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160; }</div><div class="line"><a name="l00350"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFG.html#abd917826bf50ed409a307ce00562c97d"> 350</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> <a class="code" href="classSVF_1_1SVFG.html#abd917826bf50ed409a307ce00562c97d">getDef</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">PAGNode</a>* pagNode)<span class="keyword"> const</span></div><div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1VFG.html#a7343f970332391634f79b2023bba6650">VFG::getDef</a>(pagNode);</div><div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160; }</div><div class="line"><a name="l00354"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFG.html#a926c79813d5cfbd16201832024b95190"> 354</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1SVFG.html#a926c79813d5cfbd16201832024b95190">hasDef</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">PAGNode</a>* pagNode)<span class="keyword"> const</span></div><div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1VFG.html#ab5b63b4f6317bfb5875f2b977bcf26a4">VFG::hasDef</a>(pagNode);</div><div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160; }</div><div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160;</div><div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160;</div><div class="line"><a name="l00362"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFG.html#aa3ebc066d376e7ed508d2bce49fa864d"> 362</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFG.html#aa3ebc066d376e7ed508d2bce49fa864d">setDef</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1MRVer.html">MRVer</a>* mvar, <span class="keyword">const</span> SVFGNode* node)</div><div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160; {</div><div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160; MSSAVarToDefMapTy::iterator it = MSSAVarToDefMap.find(mvar);</div><div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160; <span class="keywordflow">if</span>(it==MSSAVarToDefMap.end())</div><div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160; {</div><div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160; MSSAVarToDefMap[mvar] = node-&gt;<a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>();</div><div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160; assert(<a class="code" href="classSVF_1_1SVFG.html#a1b9d1ad76785ae0eb07979aa75325640">hasSVFGNode</a>(node-&gt;<a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>()) &amp;&amp; <span class="stringliteral">&quot;not in the map!!&quot;</span>);</div><div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160; }</div><div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160; {</div><div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160; assert((it-&gt;second == node-&gt;<a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>()) &amp;&amp; <span class="stringliteral">&quot;a SVFIR node can only have unique definition &quot;</span>);</div><div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160; }</div><div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160; }</div><div class="line"><a name="l00375"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFG.html#a55a26b88ffe786b04184a29ae72575e7"> 375</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> <a class="code" href="classSVF_1_1SVFG.html#a55a26b88ffe786b04184a29ae72575e7">getDef</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1MRVer.html">MRVer</a>* mvar)<span class="keyword"> const</span></div><div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160; MSSAVarToDefMapTy::const_iterator it = MSSAVarToDefMap.find(mvar);</div><div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160; assert(it!=MSSAVarToDefMap.end() &amp;&amp; <span class="stringliteral">&quot;memory SSA does not have a definition??&quot;</span>);</div><div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160; <span class="keywordflow">return</span> it-&gt;second;</div><div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160; }</div><div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160;</div><div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFG.html#abddfc95cf644d0729ee29eccf95699f1">addSVFGNodesForAddrTakenVars</a>();</div><div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFG.html#a164a3df08fc24bacc0b97aee8b6eec38">connectIndirectSVFGEdges</a>();</div><div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFG.html#a5921483cd5e1bf77b1b2bc8fb3250612">connectFromGlobalToProgEntry</a>();</div><div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160;</div><div class="line"><a name="l00391"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFG.html#a88e1f6f77421c5274ceeb14928bdcb43"> 391</a></span>&#160; <span class="keyword">virtual</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFG.html#a88e1f6f77421c5274ceeb14928bdcb43">addSVFGNode</a>(SVFGNode* node, <a class="code" href="classSVF_1_1ICFGNode.html">ICFGNode</a>* icfgNode)</div><div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160; {</div><div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160; <a class="code" href="classSVF_1_1VFG.html#ad8c76cdb73541eed5aa1c2ba9de60383">addVFGNode</a>(node, icfgNode);</div><div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160; }</div><div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160;</div><div class="line"><a name="l00397"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFG.html#ab4690114393820f580e805d2e0d6a41d"> 397</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFG.html#ab4690114393820f580e805d2e0d6a41d">addFormalINSVFGNode</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1FunEntryICFGNode.html">FunEntryICFGNode</a>* funEntry, <span class="keyword">const</span> <a class="code" href="classSVF_1_1MRVer.html">MRVer</a>* resVer, <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> nodeId)</div><div class="line"><a name="l00398"></a><span class="lineno"> 398</span>&#160; {</div><div class="line"><a name="l00399"></a><span class="lineno"> 399</span>&#160; <a class="code" href="classSVF_1_1FormalINSVFGNode.html">FormalINSVFGNode</a>* sNode = <span class="keyword">new</span> <a class="code" href="classSVF_1_1FormalINSVFGNode.html">FormalINSVFGNode</a>(nodeId, resVer, funEntry);</div><div class="line"><a name="l00400"></a><span class="lineno"> 400</span>&#160; <a class="code" href="classSVF_1_1SVFG.html#a88e1f6f77421c5274ceeb14928bdcb43">addSVFGNode</a>(sNode, <a class="code" href="classSVF_1_1VFG.html#a25c2bbbc2e966e2aaa59a5b83363557a">pag</a>-&gt;<a class="code" href="classSVF_1_1SVFIR.html#aa1943d53e75aef9b014953143c6894da">getICFG</a>()-&gt;<a class="code" href="classSVF_1_1ICFG.html#a0dca4655c2f6112a5be1f921b8e81076">getFunEntryICFGNode</a>(funEntry-&gt;<a class="code" href="classSVF_1_1FunEntryICFGNode.html#ac2451fdc53f319bc92528af7edc94b2d">getFun</a>()));</div><div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160; <a class="code" href="classSVF_1_1SVFG.html#accd1cbd26c9b194971f3107a57a0ab2e">setDef</a>(resVer,sNode);</div><div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160; funToFormalINMap[funEntry-&gt;<a class="code" href="classSVF_1_1FunEntryICFGNode.html#ac2451fdc53f319bc92528af7edc94b2d">getFun</a>()].set(sNode-&gt;<a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>());</div><div class="line"><a name="l00403"></a><span class="lineno"> 403</span>&#160; }</div><div class="line"><a name="l00404"></a><span class="lineno"> 404</span>&#160;</div><div class="line"><a name="l00406"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFG.html#a804824faa3a042cb1b63edd9e9eb7207"> 406</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFG.html#a804824faa3a042cb1b63edd9e9eb7207">addFormalOUTSVFGNode</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1FunExitICFGNode.html">FunExitICFGNode</a>* funExit, <span class="keyword">const</span> <a class="code" href="classSVF_1_1MRVer.html">MRVer</a>* ver, <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> nodeId)</div><div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160; {</div><div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160; <a class="code" href="classSVF_1_1FormalOUTSVFGNode.html">FormalOUTSVFGNode</a>* sNode = <span class="keyword">new</span> <a class="code" href="classSVF_1_1FormalOUTSVFGNode.html">FormalOUTSVFGNode</a>(nodeId, ver, funExit);</div><div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160; <a class="code" href="classSVF_1_1SVFG.html#a88e1f6f77421c5274ceeb14928bdcb43">addSVFGNode</a>(sNode,<a class="code" href="classSVF_1_1VFG.html#a25c2bbbc2e966e2aaa59a5b83363557a">pag</a>-&gt;<a class="code" href="classSVF_1_1SVFIR.html#aa1943d53e75aef9b014953143c6894da">getICFG</a>()-&gt;<a class="code" href="classSVF_1_1ICFG.html#af1b2d2839f811a00103df87342dfc919">getFunExitICFGNode</a>(funExit-&gt;<a class="code" href="classSVF_1_1FunExitICFGNode.html#a54dfbbebbfe18a8a493656d6ad8663be">getFun</a>()));</div><div class="line"><a name="l00410"></a><span class="lineno"> 410</span>&#160; funToFormalOUTMap[funExit-&gt;<a class="code" href="classSVF_1_1FunExitICFGNode.html#a54dfbbebbfe18a8a493656d6ad8663be">getFun</a>()].set(sNode-&gt;<a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>());</div><div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160; }</div><div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160;</div><div class="line"><a name="l00414"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFG.html#a923924d3887c668b355f4029502a3754"> 414</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFG.html#a923924d3887c668b355f4029502a3754">addActualINSVFGNode</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* callsite, <span class="keyword">const</span> <a class="code" href="classSVF_1_1MRVer.html">MRVer</a>* ver, <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> nodeId)</div><div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160; {</div><div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160; <a class="code" href="classSVF_1_1ActualINSVFGNode.html">ActualINSVFGNode</a>* sNode = <span class="keyword">new</span> <a class="code" href="classSVF_1_1ActualINSVFGNode.html">ActualINSVFGNode</a>(nodeId, callsite, ver);</div><div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160; <a class="code" href="classSVF_1_1SVFG.html#a88e1f6f77421c5274ceeb14928bdcb43">addSVFGNode</a>(sNode,<a class="code" href="classSVF_1_1VFG.html#a25c2bbbc2e966e2aaa59a5b83363557a">pag</a>-&gt;<a class="code" href="classSVF_1_1SVFIR.html#aa1943d53e75aef9b014953143c6894da">getICFG</a>()-&gt;<a class="code" href="classSVF_1_1ICFG.html#aa41516cdd2be5066adf22798a4fe2213">getCallICFGNode</a>(callsite-&gt;<a class="code" href="classSVF_1_1CallICFGNode.html#a90fd0b8e44fba1a7eb76d15bce085d66">getCallSite</a>()));</div><div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160; callSiteToActualINMap[callsite].set(sNode-&gt;<a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>());</div><div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160; }</div><div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160;</div><div class="line"><a name="l00422"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFG.html#a74aa824a68f99756ac3e65231c7bc2e9"> 422</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFG.html#a74aa824a68f99756ac3e65231c7bc2e9">addActualOUTSVFGNode</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* callsite, <span class="keyword">const</span> <a class="code" href="classSVF_1_1MRVer.html">MRVer</a>* resVer, <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> nodeId)</div><div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160; {</div><div class="line"><a name="l00424"></a><span class="lineno"> 424</span>&#160; <a class="code" href="classSVF_1_1ActualOUTSVFGNode.html">ActualOUTSVFGNode</a>* sNode = <span class="keyword">new</span> <a class="code" href="classSVF_1_1ActualOUTSVFGNode.html">ActualOUTSVFGNode</a>(nodeId, callsite, resVer);</div><div class="line"><a name="l00425"></a><span class="lineno"> 425</span>&#160; <a class="code" href="classSVF_1_1SVFG.html#a88e1f6f77421c5274ceeb14928bdcb43">addSVFGNode</a>(sNode, <a class="code" href="classSVF_1_1VFG.html#a25c2bbbc2e966e2aaa59a5b83363557a">pag</a>-&gt;<a class="code" href="classSVF_1_1SVFIR.html#aa1943d53e75aef9b014953143c6894da">getICFG</a>()-&gt;<a class="code" href="classSVF_1_1ICFG.html#a881fe977f3a6fde223bd786121e35fcf">getRetICFGNode</a>(callsite-&gt;<a class="code" href="classSVF_1_1CallICFGNode.html#a90fd0b8e44fba1a7eb76d15bce085d66">getCallSite</a>()));</div><div class="line"><a name="l00426"></a><span class="lineno"> 426</span>&#160; <a class="code" href="classSVF_1_1SVFG.html#accd1cbd26c9b194971f3107a57a0ab2e">setDef</a>(resVer,sNode);</div><div class="line"><a name="l00427"></a><span class="lineno"> 427</span>&#160; callSiteToActualOUTMap[callsite].set(sNode-&gt;<a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>());</div><div class="line"><a name="l00428"></a><span class="lineno"> 428</span>&#160; }</div><div class="line"><a name="l00429"></a><span class="lineno"> 429</span>&#160;</div><div class="line"><a name="l00431"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFG.html#a0554abe7c072b66ab24a900284646572"> 431</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFG.html#a0554abe7c072b66ab24a900284646572">addIntraMSSAPHISVFGNode</a>(<a class="code" href="classSVF_1_1ICFGNode.html">ICFGNode</a>* BlockICFGNode, <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map&lt;u32_t,const MRVer*&gt;::const_iterator</a> opVerBegin,</div><div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map&lt;u32_t,const MRVer*&gt;::const_iterator</a> opVerEnd, <span class="keyword">const</span> <a class="code" href="classSVF_1_1MRVer.html">MRVer</a>* resVer, <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> nodeId)</div><div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160; {</div><div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160; <a class="code" href="classSVF_1_1IntraMSSAPHISVFGNode.html">IntraMSSAPHISVFGNode</a>* sNode = <span class="keyword">new</span> <a class="code" href="classSVF_1_1IntraMSSAPHISVFGNode.html">IntraMSSAPHISVFGNode</a>(nodeId, resVer);</div><div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160; <a class="code" href="classSVF_1_1SVFG.html#a88e1f6f77421c5274ceeb14928bdcb43">addSVFGNode</a>(sNode, BlockICFGNode);</div><div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&#160; <span class="keywordflow">for</span>(MemSSA::PHI::OPVers::const_iterator it = opVerBegin, eit=opVerEnd; it!=eit; ++it)</div><div class="line"><a name="l00437"></a><span class="lineno"> 437</span>&#160; sNode-&gt;<a class="code" href="classSVF_1_1MSSAPHISVFGNode.html#a928a57d7f518c5af98a0245d9221e671">setOpVer</a>(it-&gt;first,it-&gt;second);</div><div class="line"><a name="l00438"></a><span class="lineno"> 438</span>&#160; <a class="code" href="classSVF_1_1SVFG.html#accd1cbd26c9b194971f3107a57a0ab2e">setDef</a>(resVer,sNode);</div><div class="line"><a name="l00439"></a><span class="lineno"> 439</span>&#160; }</div><div class="line"><a name="l00440"></a><span class="lineno"> 440</span>&#160;</div><div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160;</div><div class="line"><a name="l00443"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFG.html#a23ca21b90feca5e7d00c9ba9f489374a"> 443</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1SVFG.html#a23ca21b90feca5e7d00c9ba9f489374a">hasFuncEntryChi</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* func)<span class="keyword"> const</span></div><div class="line"><a name="l00444"></a><span class="lineno"> 444</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160; <span class="keywordflow">return</span> (funToFormalINMap.find(func) != funToFormalINMap.end());</div><div class="line"><a name="l00446"></a><span class="lineno"> 446</span>&#160; }</div><div class="line"><a name="l00447"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFG.html#a32378226c18a0b1e22271a2338a635f6"> 447</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1SVFG.html#a32378226c18a0b1e22271a2338a635f6">hasFuncRetMu</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* func)<span class="keyword"> const</span></div><div class="line"><a name="l00448"></a><span class="lineno"> 448</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00449"></a><span class="lineno"> 449</span>&#160; <span class="keywordflow">return</span> (funToFormalOUTMap.find(func) != funToFormalOUTMap.end());</div><div class="line"><a name="l00450"></a><span class="lineno"> 450</span>&#160; }</div><div class="line"><a name="l00451"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFG.html#ad9cc1581261182b56ae232d9a9b13296"> 451</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1SVFG.html#ad9cc1581261182b56ae232d9a9b13296">hasCallSiteChi</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* cs)<span class="keyword"> const</span></div><div class="line"><a name="l00452"></a><span class="lineno"> 452</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00453"></a><span class="lineno"> 453</span>&#160; <span class="keywordflow">return</span> (callSiteToActualOUTMap.find(cs) != callSiteToActualOUTMap.end());</div><div class="line"><a name="l00454"></a><span class="lineno"> 454</span>&#160; }</div><div class="line"><a name="l00455"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFG.html#a842f6f2325c9e93ea96367e9cf624ee8"> 455</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1SVFG.html#a842f6f2325c9e93ea96367e9cf624ee8">hasCallSiteMu</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* cs)<span class="keyword"> const</span></div><div class="line"><a name="l00456"></a><span class="lineno"> 456</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00457"></a><span class="lineno"> 457</span>&#160; <span class="keywordflow">return</span> (callSiteToActualINMap.find(cs) != callSiteToActualINMap.end());</div><div class="line"><a name="l00458"></a><span class="lineno"> 458</span>&#160; }</div><div class="line"><a name="l00460"></a><span class="lineno"> 460</span>&#160;};</div><div class="line"><a name="l00461"></a><span class="lineno"> 461</span>&#160;</div><div class="line"><a name="l00462"></a><span class="lineno"> 462</span>&#160;} <span class="comment">// End namespace SVF</span></div><div class="line"><a name="l00463"></a><span class="lineno"> 463</span>&#160;</div><div class="line"><a name="l00464"></a><span class="lineno"> 464</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespaceSVF.html">SVF</a></div><div class="line"><a name="l00465"></a><span class="lineno"> 465</span>&#160;{</div><div class="line"><a name="l00466"></a><span class="lineno"> 466</span>&#160;<span class="comment">/* !</span></div><div class="line"><a name="l00467"></a><span class="lineno"> 467</span>&#160;<span class="comment"> * GenericGraphTraits specializations for SVFG to be used for generic graph algorithms.</span></div><div class="line"><a name="l00468"></a><span class="lineno"> 468</span>&#160;<span class="comment"> * Provide graph traits for traversing from a SVFG node using standard graph traversals.</span></div><div class="line"><a name="l00469"></a><span class="lineno"> 469</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00470"></a><span class="lineno"> 470</span>&#160;<span class="comment">//template&lt;&gt; struct GenericGraphTraits&lt;SVF::SVFGNode*&gt;: public GenericGraphTraits&lt;SVF::GenericNode&lt;SVF::SVFGNode,SVF::SVFGEdge&gt;* &gt; {</span></div><div class="line"><a name="l00471"></a><span class="lineno"> 471</span>&#160;<span class="comment">//};</span></div><div class="line"><a name="l00472"></a><span class="lineno"> 472</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00474"></a><span class="lineno"> 474</span>&#160;<span class="comment"></span><span class="comment">//template&lt;&gt;</span></div><div class="line"><a name="l00475"></a><span class="lineno"> 475</span>&#160;<span class="comment">//struct GenericGraphTraits&lt;Inverse&lt;SVF::SVFGNode *&gt; &gt; : public GenericGraphTraits&lt;Inverse&lt;SVF::GenericNode&lt;SVF::SVFGNode,SVF::SVFGEdge&gt;* &gt; &gt; {</span></div><div class="line"><a name="l00476"></a><span class="lineno"> 476</span>&#160;<span class="comment">//};</span></div><div class="line"><a name="l00477"></a><span class="lineno"> 477</span>&#160;</div><div class="line"><a name="l00478"></a><span class="lineno"><a class="line" href="structSVF_1_1GenericGraphTraits_3_01SVF_1_1SVFG_01_5_01_4.html"> 478</a></span>&#160;<span class="keyword">template</span>&lt;&gt; <span class="keyword">struct </span><a class="code" href="structSVF_1_1GenericGraphTraits.html">GenericGraphTraits</a>&lt;<a class="code" href="namespaceSVF.html">SVF</a>::<a class="code" href="classSVF_1_1SVFG.html">SVFG</a>*&gt; : <span class="keyword">public</span> <a class="code" href="structSVF_1_1GenericGraphTraits.html">GenericGraphTraits</a>&lt;SVF::GenericGraph&lt;SVF::SVFGNode,SVF::SVFGEdge&gt;* &gt;</div><div class="line"><a name="l00479"></a><span class="lineno"> 479</span>&#160;{</div><div class="line"><a name="l00480"></a><span class="lineno"><a class="line" href="structSVF_1_1GenericGraphTraits_3_01SVF_1_1SVFG_01_5_01_4.html#a0e3ed0946d46830533f184f12428bbb0"> 480</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="classSVF_1_1VFGNode.html">SVF::SVFGNode</a> *<a class="code" href="structSVF_1_1GenericGraphTraits_3_01SVF_1_1SVFG_01_5_01_4.html#a0e3ed0946d46830533f184f12428bbb0">NodeRef</a>;</div><div class="line"><a name="l00481"></a><span class="lineno"> 481</span>&#160;};</div><div class="line"><a name="l00482"></a><span class="lineno"> 482</span>&#160;</div><div class="line"><a name="l00483"></a><span class="lineno"> 483</span>&#160;} <span class="comment">// End namespace llvm</span></div><div class="line"><a name="l00484"></a><span class="lineno"> 484</span>&#160;</div><div class="line"><a name="l00485"></a><span class="lineno"> 485</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* SVFG_H_ */</span><span class="preprocessor"></span></div><div class="ttc" id="classSVF_1_1SVFG_html_a39873b954b6e0eb0641f56ca4cd06ef9"><div class="ttname"><a href="classSVF_1_1SVFG.html#a39873b954b6e0eb0641f56ca4cd06ef9">SVF::SVFG::callSiteToActualOUTMap</a></div><div class="ttdeci">CallSiteToActualOUTsMapTy callSiteToActualOUTMap</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00101">SVFG.h:101</a></div></div>
69
+ <a href="SVFG_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">//===- SVFG.h -- Sparse value-flow graph--------------------------------------//</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"> * SVFG.h</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment"> * Created on: Oct 28, 2013</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="comment"> * Author: Yulei Sui</span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#ifndef SVFG_H_</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor">#define SVFG_H_</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="VFG_8h.html">Graphs/VFG.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="SVFGNode_8h.html">Graphs/SVFGNode.h</a>&quot;</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespaceSVF.html">SVF</a></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;{</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="keyword">class </span>PointerAnalysis;</div><div class="line"><a name="l00040"></a><span class="lineno"><a class="line" href="namespaceSVF.html#aa4745cf70b26e17d59752356f0b19dd9"> 40</a></span>&#160;<span class="keyword">class </span><a class="code" href="classSVF_1_1SVFGStat.html">SVFGStat</a>;</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="keyword">typedef</span> <a class="code" href="classSVF_1_1VFGEdge.html">VFGEdge</a> <a class="code" href="namespaceSVF.html#aa4745cf70b26e17d59752356f0b19dd9">SVFGEdge</a>;</div><div class="line"><a name="l00043"></a><span class="lineno"><a class="line" href="namespaceSVF.html#a5dfa3fa5129bacdc0be0c051ccf386df"> 43</a></span>&#160;<span class="keyword">typedef</span> <a class="code" href="classSVF_1_1VFGNode.html">VFGNode</a> <a class="code" href="namespaceSVF.html#a5dfa3fa5129bacdc0be0c051ccf386df">SVFGNode</a>;</div><div class="line"><a name="l00044"></a><span class="lineno"><a class="line" href="namespaceSVF.html#a11c50c2f81327753b3ff3ffdbe356812"> 44</a></span>&#160;<span class="keyword">typedef</span> <a class="code" href="classSVF_1_1ActualParmVFGNode.html">ActualParmVFGNode</a> <a class="code" href="namespaceSVF.html#a11c50c2f81327753b3ff3ffdbe356812">ActualParmSVFGNode</a>;</div><div class="line"><a name="l00045"></a><span class="lineno"><a class="line" href="namespaceSVF.html#a77b8b8ca831e1eba3e47f2ca29667f67"> 45</a></span>&#160;<span class="keyword">typedef</span> <a class="code" href="classSVF_1_1ActualRetVFGNode.html">ActualRetVFGNode</a> <a class="code" href="namespaceSVF.html#a77b8b8ca831e1eba3e47f2ca29667f67">ActualRetSVFGNode</a>;</div><div class="line"><a name="l00046"></a><span class="lineno"><a class="line" href="namespaceSVF.html#ad466edced10faeafd48e96daf193b8a9"> 46</a></span>&#160;<span class="keyword">typedef</span> <a class="code" href="classSVF_1_1FormalParmVFGNode.html">FormalParmVFGNode</a> <a class="code" href="namespaceSVF.html#ad466edced10faeafd48e96daf193b8a9">FormalParmSVFGNode</a>;</div><div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="namespaceSVF.html#ae5987da3ffd5681e8ec4ef14ba54588e"> 47</a></span>&#160;<span class="keyword">typedef</span> <a class="code" href="classSVF_1_1FormalRetVFGNode.html">FormalRetVFGNode</a> <a class="code" href="namespaceSVF.html#ae5987da3ffd5681e8ec4ef14ba54588e">FormalRetSVFGNode</a>;</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;</div><div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="namespaceSVF.html#aeccd0bd024319173c1cda5ff1a79c5ae"> 49</a></span>&#160;<span class="keyword">typedef</span> <a class="code" href="classSVF_1_1NullPtrVFGNode.html">NullPtrVFGNode</a> <a class="code" href="namespaceSVF.html#aeccd0bd024319173c1cda5ff1a79c5ae">NullPtrSVFGNode</a>;</div><div class="line"><a name="l00050"></a><span class="lineno"><a class="line" href="namespaceSVF.html#a26bd4f89dc154b9c6d34b6a517777934"> 50</a></span>&#160;<span class="keyword">typedef</span> <a class="code" href="classSVF_1_1StmtVFGNode.html">StmtVFGNode</a> <a class="code" href="namespaceSVF.html#a26bd4f89dc154b9c6d34b6a517777934">StmtSVFGNode</a>;</div><div class="line"><a name="l00051"></a><span class="lineno"><a class="line" href="namespaceSVF.html#a959453cbb8ff2d852b526fd1ff74ce49"> 51</a></span>&#160;<span class="keyword">typedef</span> <a class="code" href="classSVF_1_1AddrVFGNode.html">AddrVFGNode</a> <a class="code" href="namespaceSVF.html#a959453cbb8ff2d852b526fd1ff74ce49">AddrSVFGNode</a>;</div><div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="namespaceSVF.html#ab98f7c9e6311e649cdfd5d2f3f8e59be"> 52</a></span>&#160;<span class="keyword">typedef</span> <a class="code" href="classSVF_1_1CopyVFGNode.html">CopyVFGNode</a> <a class="code" href="namespaceSVF.html#ab98f7c9e6311e649cdfd5d2f3f8e59be">CopySVFGNode</a>;</div><div class="line"><a name="l00053"></a><span class="lineno"><a class="line" href="namespaceSVF.html#a54c5725186e66ead6faf53c10a288714"> 53</a></span>&#160;<span class="keyword">typedef</span> <a class="code" href="classSVF_1_1StoreVFGNode.html">StoreVFGNode</a> <a class="code" href="namespaceSVF.html#a54c5725186e66ead6faf53c10a288714">StoreSVFGNode</a>;</div><div class="line"><a name="l00054"></a><span class="lineno"><a class="line" href="namespaceSVF.html#a3ce49be3724e1e8423ccdfa726fbf6c8"> 54</a></span>&#160;<span class="keyword">typedef</span> <a class="code" href="classSVF_1_1LoadVFGNode.html">LoadVFGNode</a> <a class="code" href="namespaceSVF.html#a3ce49be3724e1e8423ccdfa726fbf6c8">LoadSVFGNode</a>;</div><div class="line"><a name="l00055"></a><span class="lineno"><a class="line" href="namespaceSVF.html#a65a3be463427d1112a8b87f072f3d22f"> 55</a></span>&#160;<span class="keyword">typedef</span> <a class="code" href="classSVF_1_1GepVFGNode.html">GepVFGNode</a> <a class="code" href="namespaceSVF.html#a65a3be463427d1112a8b87f072f3d22f">GepSVFGNode</a>;</div><div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="namespaceSVF.html#a71d4e214e049f02bf26537cba6328673"> 56</a></span>&#160;<span class="keyword">typedef</span> <a class="code" href="classSVF_1_1PHIVFGNode.html">PHIVFGNode</a> <a class="code" href="namespaceSVF.html#a71d4e214e049f02bf26537cba6328673">PHISVFGNode</a>;</div><div class="line"><a name="l00057"></a><span class="lineno"><a class="line" href="namespaceSVF.html#ad772e1586e369943f37c22641e93e941"> 57</a></span>&#160;<span class="keyword">typedef</span> <a class="code" href="classSVF_1_1IntraPHIVFGNode.html">IntraPHIVFGNode</a> <a class="code" href="namespaceSVF.html#ad772e1586e369943f37c22641e93e941">IntraPHISVFGNode</a>;</div><div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="namespaceSVF.html#a0f7ff1d9a479df87241b45bb9c81d3ca"> 58</a></span>&#160;<span class="keyword">typedef</span> <a class="code" href="classSVF_1_1InterPHIVFGNode.html">InterPHIVFGNode</a> <a class="code" href="namespaceSVF.html#a0f7ff1d9a479df87241b45bb9c81d3ca">InterPHISVFGNode</a>;</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;</div><div class="line"><a name="l00065"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFG.html"> 65</a></span>&#160;<span class="keyword">class </span><a class="code" href="classSVF_1_1SVFG.html">SVFG</a> : <span class="keyword">public</span> <a class="code" href="classSVF_1_1VFG.html">VFG</a></div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;{</div><div class="line"><a name="l00067"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFG.html#ab2f81db3935389480baa5cb14e15e9d7"> 67</a></span>&#160; <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classSVF_1_1SVFGBuilder.html">SVFGBuilder</a>;</div><div class="line"><a name="l00068"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFG.html#a93a4287b55425abc188e5f5f2de54297"> 68</a></span>&#160; <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classSVF_1_1SaberSVFGBuilder.html">SaberSVFGBuilder</a>;</div><div class="line"><a name="l00069"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFG.html#a665c93b68f49078c281270a028d04445"> 69</a></span>&#160; <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classSVF_1_1SVFG.html#a665c93b68f49078c281270a028d04445">TaintSVFGBuilder</a>;</div><div class="line"><a name="l00070"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFG.html#a9ccd530dc4c49b0df372a2ce95b66921"> 70</a></span>&#160; <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classSVF_1_1SVFG.html#a9ccd530dc4c49b0df372a2ce95b66921">DDASVFGBuilder</a>;</div><div class="line"><a name="l00071"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFG.html#ac0e43f4a2043538c9046f95826caa725"> 71</a></span>&#160; <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classSVF_1_1MTASVFGBuilder.html">MTASVFGBuilder</a>;</div><div class="line"><a name="l00072"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFG.html#a67654d252e9e93b74e35ba247048b41a"> 72</a></span>&#160; <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classSVF_1_1SVFG.html#a67654d252e9e93b74e35ba247048b41a">RcSvfgBuilder</a>;</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00075"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFG.html#a3d04ce1429b1edf90c9c0833e3b5a4a9"> 75</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="classSVF_1_1VFG.html#ab2abe2ba4ac9e3e1d326d042d35acbc0">VFGNodeIDToNodeMapTy</a> <a class="code" href="classSVF_1_1SVFG.html#a3d04ce1429b1edf90c9c0833e3b5a4a9">SVFGNodeIDToNodeMapTy</a>;</div><div class="line"><a name="l00076"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFG.html#a2590182f3b28c7fc8b2b53c09ec4305c"> 76</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map&lt;const PAGNode*, NodeID&gt;</a> <a class="code" href="classSVF_1_1SVFG.html#a2590182f3b28c7fc8b2b53c09ec4305c">PAGNodeToDefMapTy</a>;</div><div class="line"><a name="l00077"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFG.html#ac84d3749671f177b14749a825e36efe3"> 77</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map&lt;const MRVer*, NodeID&gt;</a> <a class="code" href="classSVF_1_1SVFG.html#ac84d3749671f177b14749a825e36efe3">MSSAVarToDefMapTy</a>;</div><div class="line"><a name="l00078"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFG.html#aa9f520779475e4783eccc45c460e346a"> 78</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="classSVF_1_1SparseBitVector.html">NodeBS</a> <a class="code" href="classSVF_1_1SVFG.html#aa9f520779475e4783eccc45c460e346a">ActualINSVFGNodeSet</a>;</div><div class="line"><a name="l00079"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFG.html#a2f6ed8a9f14657abc1e2a89247a84b99"> 79</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="classSVF_1_1SparseBitVector.html">NodeBS</a> <a class="code" href="classSVF_1_1SVFG.html#a2f6ed8a9f14657abc1e2a89247a84b99">ActualOUTSVFGNodeSet</a>;</div><div class="line"><a name="l00080"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFG.html#a8859409373454b6b3d1252776e169cf5"> 80</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="classSVF_1_1SparseBitVector.html">NodeBS</a> <a class="code" href="classSVF_1_1SVFG.html#a8859409373454b6b3d1252776e169cf5">FormalINSVFGNodeSet</a>;</div><div class="line"><a name="l00081"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFG.html#acb7262c3b9161c77eb1b491048152fb0"> 81</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="classSVF_1_1SparseBitVector.html">NodeBS</a> <a class="code" href="classSVF_1_1SVFG.html#acb7262c3b9161c77eb1b491048152fb0">FormalOUTSVFGNodeSet</a>;</div><div class="line"><a name="l00082"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFG.html#a727af89a305e48f399ad33cc7149dbcb"> 82</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map&lt;const CallICFGNode*, ActualINSVFGNodeSet&gt;</a> <a class="code" href="classSVF_1_1SVFG.html#a727af89a305e48f399ad33cc7149dbcb">CallSiteToActualINsMapTy</a>;</div><div class="line"><a name="l00083"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFG.html#a7c4e9c0fad457a2dc81a85f96fcec9ec"> 83</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map&lt;const CallICFGNode*, ActualOUTSVFGNodeSet&gt;</a> <a class="code" href="classSVF_1_1SVFG.html#a7c4e9c0fad457a2dc81a85f96fcec9ec">CallSiteToActualOUTsMapTy</a>;</div><div class="line"><a name="l00084"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFG.html#a2b4850c833564916c7fce46d55672038"> 84</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map&lt;const SVFFunction*, FormalINSVFGNodeSet&gt;</a> <a class="code" href="classSVF_1_1SVFG.html#a2b4850c833564916c7fce46d55672038">FunctionToFormalINsMapTy</a>;</div><div class="line"><a name="l00085"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFG.html#ac4c65501e9beba5495a57dd469f78e5b"> 85</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map&lt;const SVFFunction*, FormalOUTSVFGNodeSet&gt;</a> <a class="code" href="classSVF_1_1SVFG.html#ac4c65501e9beba5495a57dd469f78e5b">FunctionToFormalOUTsMapTy</a>;</div><div class="line"><a name="l00086"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFG.html#acdbe1c510273107b708935061b6c4127"> 86</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="classSVF_1_1MemSSA.html#a81bba824495a882b49e687683954b112">MemSSA::MUSet</a> <a class="code" href="classSVF_1_1SVFG.html#acdbe1c510273107b708935061b6c4127">MUSet</a>;</div><div class="line"><a name="l00087"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFG.html#a8843ab4a4608f7f5f46f68ad31314c07"> 87</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="classSVF_1_1MemSSA.html#af9cf084e3070456d8cca491e1391b0c4">MemSSA::CHISet</a> <a class="code" href="classSVF_1_1SVFG.html#a8843ab4a4608f7f5f46f68ad31314c07">CHISet</a>;</div><div class="line"><a name="l00088"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFG.html#aef7ee9d802934d51b3761663bdaf0c05"> 88</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="classSVF_1_1MemSSA.html#a8a5d3597f3dba9744e170cc8c32bf25f">MemSSA::PHISet</a> <a class="code" href="classSVF_1_1SVFG.html#aef7ee9d802934d51b3761663bdaf0c05">PHISet</a>;</div><div class="line"><a name="l00089"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFG.html#a7f4deffe7e13352b8c13eab110c834cc"> 89</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="classSVF_1_1MSSAMU.html">MemSSA::MU</a> <a class="code" href="classSVF_1_1SVFG.html#a7f4deffe7e13352b8c13eab110c834cc">MU</a>;</div><div class="line"><a name="l00090"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFG.html#a60df52c14b303562ff5d73c7836e3495"> 90</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="classSVF_1_1MSSACHI.html">MemSSA::CHI</a> <a class="code" href="classSVF_1_1SVFG.html#a60df52c14b303562ff5d73c7836e3495">CHI</a>;</div><div class="line"><a name="l00091"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFG.html#a86d4a41a881a3d2e5def103d7ba8bb2f"> 91</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="classSVF_1_1LoadMU.html">MemSSA::LOADMU</a> <a class="code" href="classSVF_1_1SVFG.html#a86d4a41a881a3d2e5def103d7ba8bb2f">LOADMU</a>;</div><div class="line"><a name="l00092"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFG.html#ad14cdbb3f1df1f716aa03b4d39f4e52b"> 92</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="classSVF_1_1StoreCHI.html">MemSSA::STORECHI</a> <a class="code" href="classSVF_1_1SVFG.html#ad14cdbb3f1df1f716aa03b4d39f4e52b">STORECHI</a>;</div><div class="line"><a name="l00093"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFG.html#a047573d70182da351b9e3bbf66ca0056"> 93</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="classSVF_1_1RetMU.html">MemSSA::RETMU</a> <a class="code" href="classSVF_1_1SVFG.html#a047573d70182da351b9e3bbf66ca0056">RETMU</a>;</div><div class="line"><a name="l00094"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFG.html#a101c5a8b31baf5c5613144f6e277abe9"> 94</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="classSVF_1_1EntryCHI.html">MemSSA::ENTRYCHI</a> <a class="code" href="classSVF_1_1SVFG.html#a101c5a8b31baf5c5613144f6e277abe9">ENTRYCHI</a>;</div><div class="line"><a name="l00095"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFG.html#a5f3e0fbf83621cc661d2c59800756727"> 95</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="classSVF_1_1CallCHI.html">MemSSA::CALLCHI</a> <a class="code" href="classSVF_1_1SVFG.html#a5f3e0fbf83621cc661d2c59800756727">CALLCHI</a>;</div><div class="line"><a name="l00096"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFG.html#acd9fd6597e5dedf3c14a430830c7dd08"> 96</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="classSVF_1_1CallMU.html">MemSSA::CALLMU</a> <a class="code" href="classSVF_1_1SVFG.html#acd9fd6597e5dedf3c14a430830c7dd08">CALLMU</a>;</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="keyword">protected</span>:</div><div class="line"><a name="l00099"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFG.html#aafa1b445bd3578daaba8f82e517745f1"> 99</a></span>&#160; MSSAVarToDefMapTy <a class="code" href="classSVF_1_1SVFG.html#aafa1b445bd3578daaba8f82e517745f1">MSSAVarToDefMap</a>; </div><div class="line"><a name="l00100"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFG.html#af9313ebec4a52fd887169b7c6373a7d4"> 100</a></span>&#160; CallSiteToActualINsMapTy <a class="code" href="classSVF_1_1SVFG.html#af9313ebec4a52fd887169b7c6373a7d4">callSiteToActualINMap</a>;</div><div class="line"><a name="l00101"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFG.html#a39873b954b6e0eb0641f56ca4cd06ef9"> 101</a></span>&#160; CallSiteToActualOUTsMapTy <a class="code" href="classSVF_1_1SVFG.html#a39873b954b6e0eb0641f56ca4cd06ef9">callSiteToActualOUTMap</a>;</div><div class="line"><a name="l00102"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFG.html#ae51cd0493e4e767848b96b69045762fd"> 102</a></span>&#160; FunctionToFormalINsMapTy <a class="code" href="classSVF_1_1SVFG.html#ae51cd0493e4e767848b96b69045762fd">funToFormalINMap</a>;</div><div class="line"><a name="l00103"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFG.html#a7d58f9fe97071ec9936174689cb99301"> 103</a></span>&#160; FunctionToFormalOUTsMapTy <a class="code" href="classSVF_1_1SVFG.html#a7d58f9fe97071ec9936174689cb99301">funToFormalOUTMap</a>;</div><div class="line"><a name="l00104"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFG.html#ad5c1415f488ec4412d5457262269eff3"> 104</a></span>&#160; <a class="code" href="classSVF_1_1SVFGStat.html">SVFGStat</a> * <a class="code" href="classSVF_1_1SVFG.html#ad5c1415f488ec4412d5457262269eff3">stat</a>;</div><div class="line"><a name="l00105"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFG.html#aa6a563cab8678b2256ca6ae7838285c8"> 105</a></span>&#160; std::unique_ptr&lt;MemSSA&gt; <a class="code" href="classSVF_1_1SVFG.html#aa6a563cab8678b2256ca6ae7838285c8">mssa</a>;</div><div class="line"><a name="l00106"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFG.html#a0d6cfa496e6885fe31b6b7a651fa01a8"> 106</a></span>&#160; <a class="code" href="classSVF_1_1PointerAnalysis.html">PointerAnalysis</a>* <a class="code" href="classSVF_1_1SVFG.html#a0d6cfa496e6885fe31b6b7a651fa01a8">pta</a>;</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFG.html#a82a93d9b7fcf1938e3090a0826a1ca7e">destroy</a>();</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <a class="code" href="classSVF_1_1SVFG.html#a07d48490eda50ee6d31f295150409cf3">SVFG</a>(std::unique_ptr&lt;MemSSA&gt; mssa, <a class="code" href="classSVF_1_1VFG.html#ac2e2f555975063da3fa1932ac35802c6">VFGK</a> k);</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFG.html#a0920e9f9896531959d74ae61013d96d6">buildSVFG</a>();</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;<span class="keyword">public</span>:</div><div class="line"><a name="l00119"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFG.html#a710a36fc3f4ad15010c4469abcd032e5"> 119</a></span>&#160; <span class="keyword">virtual</span> <a class="code" href="classSVF_1_1SVFG.html#a710a36fc3f4ad15010c4469abcd032e5">~SVFG</a>()</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; {</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <a class="code" href="classSVF_1_1SVFG.html#a82a93d9b7fcf1938e3090a0826a1ca7e">destroy</a>();</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; }</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;</div><div class="line"><a name="l00125"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFG.html#a8ba934714a7f2caf2e041002fdb66137"> 125</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="classSVF_1_1SVFGStat.html">SVFGStat</a>* <a class="code" href="classSVF_1_1SVFG.html#a8ba934714a7f2caf2e041002fdb66137">getStat</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFG.html#ad5c1415f488ec4412d5457262269eff3">stat</a>;</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="l00131"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFG.html#aeba803e60699f9d9422596d161d44241"> 131</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFG.html#aeba803e60699f9d9422596d161d44241">clearMSSA</a>()</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; {</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; mssa = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; }</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;</div><div class="line"><a name="l00137"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFG.html#a49a910bc4ea6e98d1584e74a018badc9"> 137</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="classSVF_1_1MemSSA.html">MemSSA</a>* <a class="code" href="classSVF_1_1SVFG.html#a49a910bc4ea6e98d1584e74a018badc9">getMSSA</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; <span class="keywordflow">return</span> mssa.get();</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; }</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;</div><div class="line"><a name="l00143"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFG.html#ab6c337637ccc9bbf0bcc7153b427f7ca"> 143</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="classSVF_1_1PointerAnalysis.html">PointerAnalysis</a>* <a class="code" href="classSVF_1_1SVFG.html#ab6c337637ccc9bbf0bcc7153b427f7ca">getPTA</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFG.html#a0d6cfa496e6885fe31b6b7a651fa01a8">pta</a>;</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; }</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;</div><div class="line"><a name="l00149"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFG.html#a7ace06b6c893b31f7dec2abe54e33e11"> 149</a></span>&#160; <span class="keyword">inline</span> SVFGNode* <a class="code" href="classSVF_1_1SVFG.html#a7ace06b6c893b31f7dec2abe54e33e11">getSVFGNode</a>(<a class="code" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> <span class="keywordtype">id</span>)<span class="keyword"> const</span></div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1VFG.html#a915fa50effaeea10716b86528b15c6dc">getVFGNode</a>(<span class="keywordtype">id</span>);</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; }</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160;</div><div class="line"><a name="l00155"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFG.html#a1b9d1ad76785ae0eb07979aa75325640"> 155</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1SVFG.html#a1b9d1ad76785ae0eb07979aa75325640">hasSVFGNode</a>(<a class="code" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> <span class="keywordtype">id</span>)<span class="keyword"> const</span></div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1VFG.html#a30eb9d717ad5bc8a9109a7bdef38f4a1">hasVFGNode</a>(<span class="keywordtype">id</span>);</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; }</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160;</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFG.html#a49fc2c505720d5cfa57231529d1c7534">getInterVFEdgesForIndirectCallSite</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* cs, <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* callee, <a class="code" href="classSVF_1_1VFG.html#ac97ef8c479556f9ca2c40cd4d8a18694">SVFGEdgeSetTy</a>&amp; edges);</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFG.html#a5fdaddc52e7342b834d76d64c1a1e498">dump</a>(<span class="keyword">const</span> <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a>&amp; file, <span class="keywordtype">bool</span> simple = <span class="keyword">false</span>);</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFG.html#aefca97f043b3e220ef6012a049b83fdf">connectCallerAndCallee</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* cs, <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* callee, <a class="code" href="classSVF_1_1VFG.html#ac97ef8c479556f9ca2c40cd4d8a18694">SVFGEdgeSetTy</a>&amp; edges);</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160;</div><div class="line"><a name="l00170"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFG.html#a8e7a945f4266e8dc7dcfff2ad6494bfb"> 170</a></span>&#160; <span class="keyword">inline</span> <span class="keyword">const</span> SVFGNode* <a class="code" href="classSVF_1_1SVFG.html#a8e7a945f4266e8dc7dcfff2ad6494bfb">getDefSVFGNode</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">PAGNode</a>* pagNode)<span class="keyword"> const</span></div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFG.html#a7ace06b6c893b31f7dec2abe54e33e11">getSVFGNode</a>(<a class="code" href="classSVF_1_1SVFG.html#abd917826bf50ed409a307ce00562c97d">getDef</a>(pagNode));</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; }</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160;</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFG.html#adc9fbb4553472b238d6c3bb5062279cb">performStat</a>();</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160;</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160;</div><div class="line"><a name="l00180"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFG.html#a21577bc4b4e55b23aa55083f5321b399"> 180</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1SVFG.html#a21577bc4b4e55b23aa55083f5321b399">hasActualINSVFGNodes</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* cs)<span class="keyword"> const</span></div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; <span class="keywordflow">return</span> callSiteToActualINMap.find(cs)!=callSiteToActualINMap.end();</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; }</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160;</div><div class="line"><a name="l00185"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFG.html#ab1fde654cc464c5b4d1bafff83d346ed"> 185</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1SVFG.html#ab1fde654cc464c5b4d1bafff83d346ed">hasActualOUTSVFGNodes</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* cs)<span class="keyword"> const</span></div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; <span class="keywordflow">return</span> callSiteToActualOUTMap.find(cs)!=callSiteToActualOUTMap.end();</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; }</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160;</div><div class="line"><a name="l00190"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFG.html#a65f28035e0fa5bebf76d28612b2f8ba8"> 190</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1SVFG.html#a65f28035e0fa5bebf76d28612b2f8ba8">hasFormalINSVFGNodes</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* fun)<span class="keyword"> const</span></div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; <span class="keywordflow">return</span> funToFormalINMap.find(fun)!=funToFormalINMap.end();</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; }</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160;</div><div class="line"><a name="l00195"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFG.html#a1f8c60ad57bf473e0186b794d666b5c2"> 195</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1SVFG.html#a1f8c60ad57bf473e0186b794d666b5c2">hasFormalOUTSVFGNodes</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* fun)<span class="keyword"> const</span></div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; <span class="keywordflow">return</span> funToFormalOUTMap.find(fun)!=funToFormalOUTMap.end();</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; }</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160;</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160;</div><div class="line"><a name="l00203"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFG.html#a475205e221890204c7770c414ee63975"> 203</a></span>&#160; <span class="keyword">inline</span> ActualINSVFGNodeSet&amp; <a class="code" href="classSVF_1_1SVFG.html#a475205e221890204c7770c414ee63975">getActualINSVFGNodes</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* cs)</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; {</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; <span class="keywordflow">return</span> callSiteToActualINMap[cs];</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; }</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160;</div><div class="line"><a name="l00208"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFG.html#a5b7ae610bee28acc2905ca82928e714f"> 208</a></span>&#160; <span class="keyword">inline</span> ActualOUTSVFGNodeSet&amp; <a class="code" href="classSVF_1_1SVFG.html#a5b7ae610bee28acc2905ca82928e714f">getActualOUTSVFGNodes</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* cs)</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; {</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; <span class="keywordflow">return</span> callSiteToActualOUTMap[cs];</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; }</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160;</div><div class="line"><a name="l00213"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFG.html#a9d0714075d6071c26d26cf16c4dec7c5"> 213</a></span>&#160; <span class="keyword">inline</span> FormalINSVFGNodeSet&amp; <a class="code" href="classSVF_1_1SVFG.html#a9d0714075d6071c26d26cf16c4dec7c5">getFormalINSVFGNodes</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* fun)</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; {</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; <span class="keywordflow">return</span> funToFormalINMap[fun];</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; }</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160;</div><div class="line"><a name="l00218"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFG.html#a287c337697eed7d92889bca0a0e370d7"> 218</a></span>&#160; <span class="keyword">inline</span> FormalOUTSVFGNodeSet&amp; <a class="code" href="classSVF_1_1SVFG.html#a287c337697eed7d92889bca0a0e370d7">getFormalOUTSVFGNodes</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* fun)</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; {</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; <span class="keywordflow">return</span> funToFormalOUTMap[fun];</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; }</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160;</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* <a class="code" href="classSVF_1_1SVFG.html#ae2cff3c963136f474fac0a66aa8cff7b">isFunEntrySVFGNode</a>(<span class="keyword">const</span> SVFGNode* node) <span class="keyword">const</span>;</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160;</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* <a class="code" href="classSVF_1_1SVFG.html#ad189e45b0c810e68566ccc3bdb3f2e59">isCallSiteRetSVFGNode</a>(<span class="keyword">const</span> SVFGNode* node) <span class="keyword">const</span>;</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160;</div><div class="line"><a name="l00231"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFG.html#a931d8b82e10a54d68c68cf6bd80264be"> 231</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFG.html#a931d8b82e10a54d68c68cf6bd80264be">removeSVFGEdge</a>(SVFGEdge* edge)</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; {</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; <a class="code" href="classSVF_1_1VFG.html#aeb24b155fe31813b2e6dc0564f55738a">removeVFGEdge</a>(edge);</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; }</div><div class="line"><a name="l00236"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFG.html#a700c5fc6c1cb4136e55196fe3d393b8b"> 236</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFG.html#a700c5fc6c1cb4136e55196fe3d393b8b">removeSVFGNode</a>(SVFGNode* node)</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; {</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; <a class="code" href="classSVF_1_1VFG.html#a122aa5ad874170ef644cee8705f1ef3e">removeVFGNode</a>(node);</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; }</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160;</div><div class="line"><a name="l00242"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFG.html#a67750c461e3543f6b75d2dd510d67297"> 242</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1SVFG.html#a67750c461e3543f6b75d2dd510d67297">addSVFGEdge</a>(SVFGEdge* edge)</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; {</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1VFG.html#a84cf5facb15e1d598c2527fba0c7634d">addVFGEdge</a>(edge);</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; }</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160;</div><div class="line"><a name="l00248"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFG.html#ac965abfbe9bdc872f98b36a171a7b5aa"> 248</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1SVFG.html#ac965abfbe9bdc872f98b36a171a7b5aa">getSVFGNodeNum</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1GenericGraph.html#a38122734cbe71551a420dfb7fee2012e">nodeNum</a>;</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; }</div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160;</div><div class="line"><a name="l00256"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFG.html#a8dd513e8e5343beeb5d117c1ff4e45ea"> 256</a></span>&#160; <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="classSVF_1_1DummyVersionPropSVFGNode.html">DummyVersionPropSVFGNode</a> *<a class="code" href="classSVF_1_1SVFG.html#a8dd513e8e5343beeb5d117c1ff4e45ea">addDummyVersionPropSVFGNode</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> <span class="keywordtype">object</span>, <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> version)</div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; {</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; <a class="code" href="classSVF_1_1DummyVersionPropSVFGNode.html">DummyVersionPropSVFGNode</a> *dvpNode = <span class="keyword">new</span> <a class="code" href="classSVF_1_1DummyVersionPropSVFGNode.html">DummyVersionPropSVFGNode</a>(<a class="code" href="classSVF_1_1VFG.html#acb181d4f9faa40578c80e2018e2742b8">totalVFGNode</a>++, <span class="keywordtype">object</span>, version);</div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; <span class="comment">// Not going through add[S]VFGNode because we have no ICFG edge.</span></div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; <a class="code" href="classSVF_1_1GenericGraph.html#a0a8831a5429005ff9d71adbd6bf3994f">addGNode</a>(dvpNode-&gt;<a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>(), dvpNode);</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; <span class="keywordflow">return</span> dvpNode;</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; }</div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160;</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFG.html#a7ce9ec638995467c211958262be08ee1">writeToFile</a>(<span class="keyword">const</span> <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a>&amp; filename);</div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFG.html#a9da50b8f467066b478143af64f7c9858">readFile</a>(<span class="keyword">const</span> <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a>&amp; filename);</div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; <span class="keyword">virtual</span> <a class="code" href="classSVF_1_1MRVer.html">MRVer</a>* <a class="code" href="classSVF_1_1SVFG.html#a910298ed854a6b88b9dae44181ca72de">getMRVERFromString</a>(<span class="keyword">const</span> <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a>&amp; input);</div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160;</div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160;<span class="keyword">protected</span>:</div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160;</div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160; SVFGEdge* <a class="code" href="classSVF_1_1SVFG.html#ad03f0064d3a1ff397b35a606304a9c80">addIntraIndirectVFEdge</a>(<a class="code" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> srcId, <a class="code" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> dstId, <span class="keyword">const</span> <a class="code" href="classSVF_1_1SparseBitVector.html">NodeBS</a>&amp; cpts);</div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; SVFGEdge* <a class="code" href="classSVF_1_1SVFG.html#af8ceb1ebf745e6803c606c41f7a482ac">addCallIndirectVFEdge</a>(<a class="code" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> srcId, <a class="code" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> dstId, <span class="keyword">const</span> <a class="code" href="classSVF_1_1SparseBitVector.html">NodeBS</a>&amp; cpts,<a class="code" href="namespaceSVF.html#a03d88a0302bcd253387690f13f693f64">CallSiteID</a> csId);</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; SVFGEdge* <a class="code" href="classSVF_1_1SVFG.html#a8ebf0e285c69db8332a1f8914d6190f6">addRetIndirectVFEdge</a>(<a class="code" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> srcId, <a class="code" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> dstId, <span class="keyword">const</span> <a class="code" href="classSVF_1_1SparseBitVector.html">NodeBS</a>&amp; cpts,<a class="code" href="namespaceSVF.html#a03d88a0302bcd253387690f13f693f64">CallSiteID</a> csId);</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; SVFGEdge* <a class="code" href="classSVF_1_1SVFG.html#a1aba3845bad017f81cd5f938db03a161">addThreadMHPIndirectVFEdge</a>(<a class="code" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> srcId, <a class="code" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> dstId, <span class="keyword">const</span> <a class="code" href="classSVF_1_1SparseBitVector.html">NodeBS</a>&amp; cpts);</div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160;</div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; SVFGEdge* <a class="code" href="classSVF_1_1SVFG.html#a57629591037e16e57a0178d102a405f2">addInterIndirectVFCallEdge</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1ActualINSVFGNode.html">ActualINSVFGNode</a>* src, <span class="keyword">const</span> <a class="code" href="classSVF_1_1FormalINSVFGNode.html">FormalINSVFGNode</a>* dst,<a class="code" href="namespaceSVF.html#a03d88a0302bcd253387690f13f693f64">CallSiteID</a> csId);</div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160;</div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; SVFGEdge* <a class="code" href="classSVF_1_1SVFG.html#ac9666ae7266cf1a9c0a5f7d28b39d1e9">addInterIndirectVFRetEdge</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1FormalOUTSVFGNode.html">FormalOUTSVFGNode</a>* src, <span class="keyword">const</span> <a class="code" href="classSVF_1_1ActualOUTSVFGNode.html">ActualOUTSVFGNode</a>* dst,<a class="code" href="namespaceSVF.html#a03d88a0302bcd253387690f13f693f64">CallSiteID</a> csId);</div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160;</div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160;</div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; <span class="keyword">virtual</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFG.html#ac9ab2a95cd7a09bbe4b4aa3e6fafaf62">connectAInAndFIn</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1ActualINSVFGNode.html">ActualINSVFGNode</a>* actualIn, <span class="keyword">const</span> <a class="code" href="classSVF_1_1FormalINSVFGNode.html">FormalINSVFGNode</a>* formalIn, <a class="code" href="namespaceSVF.html#a03d88a0302bcd253387690f13f693f64">CallSiteID</a> csId, <a class="code" href="classSVF_1_1VFG.html#ac97ef8c479556f9ca2c40cd4d8a18694">SVFGEdgeSetTy</a>&amp; edges)</div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160; {</div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; SVFGEdge* edge = <a class="code" href="classSVF_1_1SVFG.html#a57629591037e16e57a0178d102a405f2">addInterIndirectVFCallEdge</a>(actualIn, formalIn,csId);</div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160; <span class="keywordflow">if</span> (edge != <span class="keyword">nullptr</span>)</div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160; edges.insert(edge);</div><div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160; }</div><div class="line"><a name="l00293"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFG.html#a402dfe93b8692be453c4f76d048b690a"> 293</a></span>&#160; <span class="keyword">virtual</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFG.html#a402dfe93b8692be453c4f76d048b690a">connectFOutAndAOut</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1FormalOUTSVFGNode.html">FormalOUTSVFGNode</a>* formalOut, <span class="keyword">const</span> <a class="code" href="classSVF_1_1ActualOUTSVFGNode.html">ActualOUTSVFGNode</a>* actualOut, <a class="code" href="namespaceSVF.html#a03d88a0302bcd253387690f13f693f64">CallSiteID</a> csId, <a class="code" href="classSVF_1_1VFG.html#ac97ef8c479556f9ca2c40cd4d8a18694">SVFGEdgeSetTy</a>&amp; edges)</div><div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160; {</div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; SVFGEdge* edge = <a class="code" href="classSVF_1_1SVFG.html#ac9666ae7266cf1a9c0a5f7d28b39d1e9">addInterIndirectVFRetEdge</a>(formalOut, actualOut,csId);</div><div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; <span class="keywordflow">if</span> (edge != <span class="keyword">nullptr</span>)</div><div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; edges.insert(edge);</div><div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; }</div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160;</div><div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160;</div><div class="line"><a name="l00303"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFG.html#ac1acdf7bc468d7734359591e45f485fe"> 303</a></span>&#160; <span class="keyword">virtual</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFG.html#ac1acdf7bc468d7734359591e45f485fe">getInterVFEdgeAtIndCSFromAPToFP</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">PAGNode</a>* cs_arg, <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">PAGNode</a>* fun_arg, <span class="keyword">const</span> <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>*, <a class="code" href="namespaceSVF.html#a03d88a0302bcd253387690f13f693f64">CallSiteID</a> csId, <a class="code" href="classSVF_1_1VFG.html#ac97ef8c479556f9ca2c40cd4d8a18694">SVFGEdgeSetTy</a>&amp; edges)</div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160; {</div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160; SVFGNode* actualParam = <a class="code" href="classSVF_1_1SVFG.html#a7ace06b6c893b31f7dec2abe54e33e11">getSVFGNode</a>(<a class="code" href="classSVF_1_1SVFG.html#abd917826bf50ed409a307ce00562c97d">getDef</a>(cs_arg));</div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160; SVFGNode* formalParam = <a class="code" href="classSVF_1_1SVFG.html#a7ace06b6c893b31f7dec2abe54e33e11">getSVFGNode</a>(<a class="code" href="classSVF_1_1SVFG.html#abd917826bf50ed409a307ce00562c97d">getDef</a>(fun_arg));</div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160; SVFGEdge* edge = <a class="code" href="classSVF_1_1VFG.html#ad86631f70bd702b5635bdbeab7d884b9">hasInterVFGEdge</a>(actualParam, formalParam, <a class="code" href="classSVF_1_1VFGEdge.html#a156ae6a8b3a033f505c18c6b162e7cf5a8383c27feab3f1acc67cacef9744c04a">SVFGEdge::CallDirVF</a>, csId);</div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160; assert(edge != <span class="keyword">nullptr</span> &amp;&amp; <span class="stringliteral">&quot;Can not find inter value flow edge from aparam to fparam&quot;</span>);</div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; edges.insert(edge);</div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160; }</div><div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160;</div><div class="line"><a name="l00312"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFG.html#ab2b969b7d5922427622dd875e6b8fe14"> 312</a></span>&#160; <span class="keyword">virtual</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFG.html#ab2b969b7d5922427622dd875e6b8fe14">getInterVFEdgeAtIndCSFromFRToAR</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">PAGNode</a>* fun_ret, <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">PAGNode</a>* cs_ret, <a class="code" href="namespaceSVF.html#a03d88a0302bcd253387690f13f693f64">CallSiteID</a> csId, <a class="code" href="classSVF_1_1VFG.html#ac97ef8c479556f9ca2c40cd4d8a18694">SVFGEdgeSetTy</a>&amp; edges)</div><div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160; {</div><div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160; SVFGNode* formalRet = <a class="code" href="classSVF_1_1SVFG.html#a7ace06b6c893b31f7dec2abe54e33e11">getSVFGNode</a>(<a class="code" href="classSVF_1_1SVFG.html#abd917826bf50ed409a307ce00562c97d">getDef</a>(fun_ret));</div><div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160; SVFGNode* actualRet = <a class="code" href="classSVF_1_1SVFG.html#a7ace06b6c893b31f7dec2abe54e33e11">getSVFGNode</a>(<a class="code" href="classSVF_1_1SVFG.html#abd917826bf50ed409a307ce00562c97d">getDef</a>(cs_ret));</div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160; SVFGEdge* edge = <a class="code" href="classSVF_1_1VFG.html#ad86631f70bd702b5635bdbeab7d884b9">hasInterVFGEdge</a>(formalRet, actualRet, <a class="code" href="classSVF_1_1VFGEdge.html#a156ae6a8b3a033f505c18c6b162e7cf5a8288c583cfcbfdf9aa2ac2103c0e7191">SVFGEdge::RetDirVF</a>, csId);</div><div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160; assert(edge != <span class="keyword">nullptr</span> &amp;&amp; <span class="stringliteral">&quot;Can not find inter value flow edge from fret to aret&quot;</span>);</div><div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160; edges.insert(edge);</div><div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160; }</div><div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160;</div><div class="line"><a name="l00321"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFG.html#afbaf925e1e165f75161999229fa5f782"> 321</a></span>&#160; <span class="keyword">virtual</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFG.html#afbaf925e1e165f75161999229fa5f782">getInterVFEdgeAtIndCSFromAInToFIn</a>(<a class="code" href="classSVF_1_1ActualINSVFGNode.html">ActualINSVFGNode</a>* actualIn, <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* callee, <a class="code" href="classSVF_1_1VFG.html#ac97ef8c479556f9ca2c40cd4d8a18694">SVFGEdgeSetTy</a>&amp; edges)</div><div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160; {</div><div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="classSVF_1_1VFGNode.html#a3c558955f60c237c558d8faafed781e8">SVFGNode::const_iterator</a> outIt = actualIn-&gt;<a class="code" href="classSVF_1_1GenericNode.html#aa4f103330118c8976bf95e4bf53416eb">OutEdgeBegin</a>(), outEit = actualIn-&gt;<a class="code" href="classSVF_1_1GenericNode.html#a19a3366fd8a58290d0c740c46c3dcb3d">OutEdgeEnd</a>(); outIt != outEit; ++outIt)</div><div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160; {</div><div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160; SVFGEdge* edge = *outIt;</div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160; <span class="keywordflow">if</span> (edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#aeaa31a2c8479e831b36ce2e2582ceb86">getDstNode</a>()-&gt;getFun() == callee)</div><div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160; edges.insert(edge);</div><div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160; }</div><div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160; }</div><div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160;</div><div class="line"><a name="l00331"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFG.html#a7a88391e0c2cf8a57238dec32c2474a3"> 331</a></span>&#160; <span class="keyword">virtual</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFG.html#a7a88391e0c2cf8a57238dec32c2474a3">getInterVFEdgeAtIndCSFromFOutToAOut</a>(<a class="code" href="classSVF_1_1ActualOUTSVFGNode.html">ActualOUTSVFGNode</a>* actualOut, <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* callee, <a class="code" href="classSVF_1_1VFG.html#ac97ef8c479556f9ca2c40cd4d8a18694">SVFGEdgeSetTy</a>&amp; edges)</div><div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160; {</div><div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="classSVF_1_1VFGNode.html#a3c558955f60c237c558d8faafed781e8">SVFGNode::const_iterator</a> inIt = actualOut-&gt;<a class="code" href="classSVF_1_1GenericNode.html#ae5b113921530eee6afe58a65d8e5b3a7">InEdgeBegin</a>(), inEit = actualOut-&gt;<a class="code" href="classSVF_1_1GenericNode.html#afe6a7b286d9af4992f41b59612fd2900">InEdgeEnd</a>(); inIt != inEit; ++inIt)</div><div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160; {</div><div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160; SVFGEdge* edge = *inIt;</div><div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160; <span class="keywordflow">if</span> (edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#ab47ca533c415841ef75456cbad439589">getSrcNode</a>()-&gt;getFun() == callee)</div><div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160; edges.insert(edge);</div><div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160; }</div><div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160; }</div><div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160;</div><div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160;</div><div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160;</div><div class="line"><a name="l00345"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFG.html#accd1cbd26c9b194971f3107a57a0ab2e"> 345</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFG.html#accd1cbd26c9b194971f3107a57a0ab2e">setDef</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">PAGNode</a>* pagNode, <span class="keyword">const</span> SVFGNode* node)</div><div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160; {</div><div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160; <a class="code" href="classSVF_1_1VFG.html#a1e0b8c7df55e05739775e8a1c50cf660">VFG::setDef</a>(pagNode, node);</div><div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160; }</div><div class="line"><a name="l00349"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFG.html#abd917826bf50ed409a307ce00562c97d"> 349</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> <a class="code" href="classSVF_1_1SVFG.html#abd917826bf50ed409a307ce00562c97d">getDef</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">PAGNode</a>* pagNode)<span class="keyword"> const</span></div><div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1VFG.html#a7343f970332391634f79b2023bba6650">VFG::getDef</a>(pagNode);</div><div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160; }</div><div class="line"><a name="l00353"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFG.html#a926c79813d5cfbd16201832024b95190"> 353</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1SVFG.html#a926c79813d5cfbd16201832024b95190">hasDef</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">PAGNode</a>* pagNode)<span class="keyword"> const</span></div><div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1VFG.html#ab5b63b4f6317bfb5875f2b977bcf26a4">VFG::hasDef</a>(pagNode);</div><div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160; }</div><div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160;</div><div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160;</div><div class="line"><a name="l00361"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFG.html#aa3ebc066d376e7ed508d2bce49fa864d"> 361</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFG.html#aa3ebc066d376e7ed508d2bce49fa864d">setDef</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1MRVer.html">MRVer</a>* mvar, <span class="keyword">const</span> SVFGNode* node)</div><div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160; {</div><div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160; MSSAVarToDefMapTy::iterator it = MSSAVarToDefMap.find(mvar);</div><div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160; <span class="keywordflow">if</span>(it==MSSAVarToDefMap.end())</div><div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160; {</div><div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160; MSSAVarToDefMap[mvar] = node-&gt;<a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>();</div><div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160; assert(<a class="code" href="classSVF_1_1SVFG.html#a1b9d1ad76785ae0eb07979aa75325640">hasSVFGNode</a>(node-&gt;<a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>()) &amp;&amp; <span class="stringliteral">&quot;not in the map!!&quot;</span>);</div><div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160; }</div><div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160; {</div><div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160; assert((it-&gt;second == node-&gt;<a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>()) &amp;&amp; <span class="stringliteral">&quot;a SVFIR node can only have unique definition &quot;</span>);</div><div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160; }</div><div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160; }</div><div class="line"><a name="l00374"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFG.html#a55a26b88ffe786b04184a29ae72575e7"> 374</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> <a class="code" href="classSVF_1_1SVFG.html#a55a26b88ffe786b04184a29ae72575e7">getDef</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1MRVer.html">MRVer</a>* mvar)<span class="keyword"> const</span></div><div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160; MSSAVarToDefMapTy::const_iterator it = MSSAVarToDefMap.find(mvar);</div><div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160; assert(it!=MSSAVarToDefMap.end() &amp;&amp; <span class="stringliteral">&quot;memory SSA does not have a definition??&quot;</span>);</div><div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160; <span class="keywordflow">return</span> it-&gt;second;</div><div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160; }</div><div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160;</div><div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFG.html#abddfc95cf644d0729ee29eccf95699f1">addSVFGNodesForAddrTakenVars</a>();</div><div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFG.html#a164a3df08fc24bacc0b97aee8b6eec38">connectIndirectSVFGEdges</a>();</div><div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFG.html#a5921483cd5e1bf77b1b2bc8fb3250612">connectFromGlobalToProgEntry</a>();</div><div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160;</div><div class="line"><a name="l00390"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFG.html#a88e1f6f77421c5274ceeb14928bdcb43"> 390</a></span>&#160; <span class="keyword">virtual</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFG.html#a88e1f6f77421c5274ceeb14928bdcb43">addSVFGNode</a>(SVFGNode* node, <a class="code" href="classSVF_1_1ICFGNode.html">ICFGNode</a>* icfgNode)</div><div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160; {</div><div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160; <a class="code" href="classSVF_1_1VFG.html#ad8c76cdb73541eed5aa1c2ba9de60383">addVFGNode</a>(node, icfgNode);</div><div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160; }</div><div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160;</div><div class="line"><a name="l00396"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFG.html#ab4690114393820f580e805d2e0d6a41d"> 396</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFG.html#ab4690114393820f580e805d2e0d6a41d">addFormalINSVFGNode</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1FunEntryICFGNode.html">FunEntryICFGNode</a>* funEntry, <span class="keyword">const</span> <a class="code" href="classSVF_1_1MRVer.html">MRVer</a>* resVer, <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> nodeId)</div><div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160; {</div><div class="line"><a name="l00398"></a><span class="lineno"> 398</span>&#160; <a class="code" href="classSVF_1_1FormalINSVFGNode.html">FormalINSVFGNode</a>* sNode = <span class="keyword">new</span> <a class="code" href="classSVF_1_1FormalINSVFGNode.html">FormalINSVFGNode</a>(nodeId, resVer, funEntry);</div><div class="line"><a name="l00399"></a><span class="lineno"> 399</span>&#160; <a class="code" href="classSVF_1_1SVFG.html#a88e1f6f77421c5274ceeb14928bdcb43">addSVFGNode</a>(sNode, <a class="code" href="classSVF_1_1VFG.html#a25c2bbbc2e966e2aaa59a5b83363557a">pag</a>-&gt;<a class="code" href="classSVF_1_1SVFIR.html#aa1943d53e75aef9b014953143c6894da">getICFG</a>()-&gt;<a class="code" href="classSVF_1_1ICFG.html#a0dca4655c2f6112a5be1f921b8e81076">getFunEntryICFGNode</a>(funEntry-&gt;<a class="code" href="classSVF_1_1FunEntryICFGNode.html#ac2451fdc53f319bc92528af7edc94b2d">getFun</a>()));</div><div class="line"><a name="l00400"></a><span class="lineno"> 400</span>&#160; <a class="code" href="classSVF_1_1SVFG.html#accd1cbd26c9b194971f3107a57a0ab2e">setDef</a>(resVer,sNode);</div><div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160; funToFormalINMap[funEntry-&gt;<a class="code" href="classSVF_1_1FunEntryICFGNode.html#ac2451fdc53f319bc92528af7edc94b2d">getFun</a>()].set(sNode-&gt;<a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>());</div><div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160; }</div><div class="line"><a name="l00403"></a><span class="lineno"> 403</span>&#160;</div><div class="line"><a name="l00405"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFG.html#a804824faa3a042cb1b63edd9e9eb7207"> 405</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFG.html#a804824faa3a042cb1b63edd9e9eb7207">addFormalOUTSVFGNode</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1FunExitICFGNode.html">FunExitICFGNode</a>* funExit, <span class="keyword">const</span> <a class="code" href="classSVF_1_1MRVer.html">MRVer</a>* ver, <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> nodeId)</div><div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#160; {</div><div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160; <a class="code" href="classSVF_1_1FormalOUTSVFGNode.html">FormalOUTSVFGNode</a>* sNode = <span class="keyword">new</span> <a class="code" href="classSVF_1_1FormalOUTSVFGNode.html">FormalOUTSVFGNode</a>(nodeId, ver, funExit);</div><div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160; <a class="code" href="classSVF_1_1SVFG.html#a88e1f6f77421c5274ceeb14928bdcb43">addSVFGNode</a>(sNode,<a class="code" href="classSVF_1_1VFG.html#a25c2bbbc2e966e2aaa59a5b83363557a">pag</a>-&gt;<a class="code" href="classSVF_1_1SVFIR.html#aa1943d53e75aef9b014953143c6894da">getICFG</a>()-&gt;<a class="code" href="classSVF_1_1ICFG.html#af1b2d2839f811a00103df87342dfc919">getFunExitICFGNode</a>(funExit-&gt;<a class="code" href="classSVF_1_1FunExitICFGNode.html#a54dfbbebbfe18a8a493656d6ad8663be">getFun</a>()));</div><div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160; funToFormalOUTMap[funExit-&gt;<a class="code" href="classSVF_1_1FunExitICFGNode.html#a54dfbbebbfe18a8a493656d6ad8663be">getFun</a>()].set(sNode-&gt;<a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>());</div><div class="line"><a name="l00410"></a><span class="lineno"> 410</span>&#160; }</div><div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160;</div><div class="line"><a name="l00413"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFG.html#a923924d3887c668b355f4029502a3754"> 413</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFG.html#a923924d3887c668b355f4029502a3754">addActualINSVFGNode</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* callsite, <span class="keyword">const</span> <a class="code" href="classSVF_1_1MRVer.html">MRVer</a>* ver, <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> nodeId)</div><div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160; {</div><div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160; <a class="code" href="classSVF_1_1ActualINSVFGNode.html">ActualINSVFGNode</a>* sNode = <span class="keyword">new</span> <a class="code" href="classSVF_1_1ActualINSVFGNode.html">ActualINSVFGNode</a>(nodeId, callsite, ver);</div><div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160; <a class="code" href="classSVF_1_1SVFG.html#a88e1f6f77421c5274ceeb14928bdcb43">addSVFGNode</a>(sNode,<a class="code" href="classSVF_1_1VFG.html#a25c2bbbc2e966e2aaa59a5b83363557a">pag</a>-&gt;<a class="code" href="classSVF_1_1SVFIR.html#aa1943d53e75aef9b014953143c6894da">getICFG</a>()-&gt;<a class="code" href="classSVF_1_1ICFG.html#aa41516cdd2be5066adf22798a4fe2213">getCallICFGNode</a>(callsite-&gt;<a class="code" href="classSVF_1_1CallICFGNode.html#a90fd0b8e44fba1a7eb76d15bce085d66">getCallSite</a>()));</div><div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160; callSiteToActualINMap[callsite].set(sNode-&gt;<a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>());</div><div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160; }</div><div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160;</div><div class="line"><a name="l00421"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFG.html#a74aa824a68f99756ac3e65231c7bc2e9"> 421</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFG.html#a74aa824a68f99756ac3e65231c7bc2e9">addActualOUTSVFGNode</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* callsite, <span class="keyword">const</span> <a class="code" href="classSVF_1_1MRVer.html">MRVer</a>* resVer, <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> nodeId)</div><div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160; {</div><div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160; <a class="code" href="classSVF_1_1ActualOUTSVFGNode.html">ActualOUTSVFGNode</a>* sNode = <span class="keyword">new</span> <a class="code" href="classSVF_1_1ActualOUTSVFGNode.html">ActualOUTSVFGNode</a>(nodeId, callsite, resVer);</div><div class="line"><a name="l00424"></a><span class="lineno"> 424</span>&#160; <a class="code" href="classSVF_1_1SVFG.html#a88e1f6f77421c5274ceeb14928bdcb43">addSVFGNode</a>(sNode, <a class="code" href="classSVF_1_1VFG.html#a25c2bbbc2e966e2aaa59a5b83363557a">pag</a>-&gt;<a class="code" href="classSVF_1_1SVFIR.html#aa1943d53e75aef9b014953143c6894da">getICFG</a>()-&gt;<a class="code" href="classSVF_1_1ICFG.html#a881fe977f3a6fde223bd786121e35fcf">getRetICFGNode</a>(callsite-&gt;<a class="code" href="classSVF_1_1CallICFGNode.html#a90fd0b8e44fba1a7eb76d15bce085d66">getCallSite</a>()));</div><div class="line"><a name="l00425"></a><span class="lineno"> 425</span>&#160; <a class="code" href="classSVF_1_1SVFG.html#accd1cbd26c9b194971f3107a57a0ab2e">setDef</a>(resVer,sNode);</div><div class="line"><a name="l00426"></a><span class="lineno"> 426</span>&#160; callSiteToActualOUTMap[callsite].set(sNode-&gt;<a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>());</div><div class="line"><a name="l00427"></a><span class="lineno"> 427</span>&#160; }</div><div class="line"><a name="l00428"></a><span class="lineno"> 428</span>&#160;</div><div class="line"><a name="l00430"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFG.html#a0554abe7c072b66ab24a900284646572"> 430</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFG.html#a0554abe7c072b66ab24a900284646572">addIntraMSSAPHISVFGNode</a>(<a class="code" href="classSVF_1_1ICFGNode.html">ICFGNode</a>* BlockICFGNode, <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map&lt;u32_t,const MRVer*&gt;::const_iterator</a> opVerBegin,</div><div class="line"><a name="l00431"></a><span class="lineno"> 431</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map&lt;u32_t,const MRVer*&gt;::const_iterator</a> opVerEnd, <span class="keyword">const</span> <a class="code" href="classSVF_1_1MRVer.html">MRVer</a>* resVer, <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> nodeId)</div><div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160; {</div><div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160; <a class="code" href="classSVF_1_1IntraMSSAPHISVFGNode.html">IntraMSSAPHISVFGNode</a>* sNode = <span class="keyword">new</span> <a class="code" href="classSVF_1_1IntraMSSAPHISVFGNode.html">IntraMSSAPHISVFGNode</a>(nodeId, resVer);</div><div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160; <a class="code" href="classSVF_1_1SVFG.html#a88e1f6f77421c5274ceeb14928bdcb43">addSVFGNode</a>(sNode, BlockICFGNode);</div><div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160; <span class="keywordflow">for</span>(MemSSA::PHI::OPVers::const_iterator it = opVerBegin, eit=opVerEnd; it!=eit; ++it)</div><div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&#160; sNode-&gt;<a class="code" href="classSVF_1_1MSSAPHISVFGNode.html#a928a57d7f518c5af98a0245d9221e671">setOpVer</a>(it-&gt;first,it-&gt;second);</div><div class="line"><a name="l00437"></a><span class="lineno"> 437</span>&#160; <a class="code" href="classSVF_1_1SVFG.html#accd1cbd26c9b194971f3107a57a0ab2e">setDef</a>(resVer,sNode);</div><div class="line"><a name="l00438"></a><span class="lineno"> 438</span>&#160; }</div><div class="line"><a name="l00439"></a><span class="lineno"> 439</span>&#160;</div><div class="line"><a name="l00441"></a><span class="lineno"> 441</span>&#160;</div><div class="line"><a name="l00442"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFG.html#a23ca21b90feca5e7d00c9ba9f489374a"> 442</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1SVFG.html#a23ca21b90feca5e7d00c9ba9f489374a">hasFuncEntryChi</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* func)<span class="keyword"> const</span></div><div class="line"><a name="l00443"></a><span class="lineno"> 443</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00444"></a><span class="lineno"> 444</span>&#160; <span class="keywordflow">return</span> (funToFormalINMap.find(func) != funToFormalINMap.end());</div><div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160; }</div><div class="line"><a name="l00446"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFG.html#a32378226c18a0b1e22271a2338a635f6"> 446</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1SVFG.html#a32378226c18a0b1e22271a2338a635f6">hasFuncRetMu</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* func)<span class="keyword"> const</span></div><div class="line"><a name="l00447"></a><span class="lineno"> 447</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00448"></a><span class="lineno"> 448</span>&#160; <span class="keywordflow">return</span> (funToFormalOUTMap.find(func) != funToFormalOUTMap.end());</div><div class="line"><a name="l00449"></a><span class="lineno"> 449</span>&#160; }</div><div class="line"><a name="l00450"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFG.html#ad9cc1581261182b56ae232d9a9b13296"> 450</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1SVFG.html#ad9cc1581261182b56ae232d9a9b13296">hasCallSiteChi</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* cs)<span class="keyword"> const</span></div><div class="line"><a name="l00451"></a><span class="lineno"> 451</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00452"></a><span class="lineno"> 452</span>&#160; <span class="keywordflow">return</span> (callSiteToActualOUTMap.find(cs) != callSiteToActualOUTMap.end());</div><div class="line"><a name="l00453"></a><span class="lineno"> 453</span>&#160; }</div><div class="line"><a name="l00454"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFG.html#a842f6f2325c9e93ea96367e9cf624ee8"> 454</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1SVFG.html#a842f6f2325c9e93ea96367e9cf624ee8">hasCallSiteMu</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* cs)<span class="keyword"> const</span></div><div class="line"><a name="l00455"></a><span class="lineno"> 455</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00456"></a><span class="lineno"> 456</span>&#160; <span class="keywordflow">return</span> (callSiteToActualINMap.find(cs) != callSiteToActualINMap.end());</div><div class="line"><a name="l00457"></a><span class="lineno"> 457</span>&#160; }</div><div class="line"><a name="l00459"></a><span class="lineno"> 459</span>&#160;};</div><div class="line"><a name="l00460"></a><span class="lineno"> 460</span>&#160;</div><div class="line"><a name="l00461"></a><span class="lineno"> 461</span>&#160;} <span class="comment">// End namespace SVF</span></div><div class="line"><a name="l00462"></a><span class="lineno"> 462</span>&#160;</div><div class="line"><a name="l00463"></a><span class="lineno"> 463</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespaceSVF.html">SVF</a></div><div class="line"><a name="l00464"></a><span class="lineno"> 464</span>&#160;{</div><div class="line"><a name="l00465"></a><span class="lineno"> 465</span>&#160;<span class="comment">/* !</span></div><div class="line"><a name="l00466"></a><span class="lineno"> 466</span>&#160;<span class="comment"> * GenericGraphTraits specializations for SVFG to be used for generic graph algorithms.</span></div><div class="line"><a name="l00467"></a><span class="lineno"> 467</span>&#160;<span class="comment"> * Provide graph traits for traversing from a SVFG node using standard graph traversals.</span></div><div class="line"><a name="l00468"></a><span class="lineno"> 468</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00469"></a><span class="lineno"> 469</span>&#160;<span class="comment">//template&lt;&gt; struct GenericGraphTraits&lt;SVF::SVFGNode*&gt;: public GenericGraphTraits&lt;SVF::GenericNode&lt;SVF::SVFGNode,SVF::SVFGEdge&gt;* &gt; {</span></div><div class="line"><a name="l00470"></a><span class="lineno"> 470</span>&#160;<span class="comment">//};</span></div><div class="line"><a name="l00471"></a><span class="lineno"> 471</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00473"></a><span class="lineno"> 473</span>&#160;<span class="comment"></span><span class="comment">//template&lt;&gt;</span></div><div class="line"><a name="l00474"></a><span class="lineno"> 474</span>&#160;<span class="comment">//struct GenericGraphTraits&lt;Inverse&lt;SVF::SVFGNode *&gt; &gt; : public GenericGraphTraits&lt;Inverse&lt;SVF::GenericNode&lt;SVF::SVFGNode,SVF::SVFGEdge&gt;* &gt; &gt; {</span></div><div class="line"><a name="l00475"></a><span class="lineno"> 475</span>&#160;<span class="comment">//};</span></div><div class="line"><a name="l00476"></a><span class="lineno"> 476</span>&#160;</div><div class="line"><a name="l00477"></a><span class="lineno"><a class="line" href="structSVF_1_1GenericGraphTraits_3_01SVF_1_1SVFG_01_5_01_4.html"> 477</a></span>&#160;<span class="keyword">template</span>&lt;&gt; <span class="keyword">struct </span><a class="code" href="structSVF_1_1GenericGraphTraits.html">GenericGraphTraits</a>&lt;<a class="code" href="namespaceSVF.html">SVF</a>::<a class="code" href="classSVF_1_1SVFG.html">SVFG</a>*&gt; : <span class="keyword">public</span> <a class="code" href="structSVF_1_1GenericGraphTraits.html">GenericGraphTraits</a>&lt;SVF::GenericGraph&lt;SVF::SVFGNode,SVF::SVFGEdge&gt;* &gt;</div><div class="line"><a name="l00478"></a><span class="lineno"> 478</span>&#160;{</div><div class="line"><a name="l00479"></a><span class="lineno"><a class="line" href="structSVF_1_1GenericGraphTraits_3_01SVF_1_1SVFG_01_5_01_4.html#a0e3ed0946d46830533f184f12428bbb0"> 479</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="classSVF_1_1VFGNode.html">SVF::SVFGNode</a> *<a class="code" href="structSVF_1_1GenericGraphTraits_3_01SVF_1_1SVFG_01_5_01_4.html#a0e3ed0946d46830533f184f12428bbb0">NodeRef</a>;</div><div class="line"><a name="l00480"></a><span class="lineno"> 480</span>&#160;};</div><div class="line"><a name="l00481"></a><span class="lineno"> 481</span>&#160;</div><div class="line"><a name="l00482"></a><span class="lineno"> 482</span>&#160;} <span class="comment">// End namespace llvm</span></div><div class="line"><a name="l00483"></a><span class="lineno"> 483</span>&#160;</div><div class="line"><a name="l00484"></a><span class="lineno"> 484</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* SVFG_H_ */</span><span class="preprocessor"></span></div><div class="ttc" id="classSVF_1_1SVFG_html_a39873b954b6e0eb0641f56ca4cd06ef9"><div class="ttname"><a href="classSVF_1_1SVFG.html#a39873b954b6e0eb0641f56ca4cd06ef9">SVF::SVFG::callSiteToActualOUTMap</a></div><div class="ttdeci">CallSiteToActualOUTsMapTy callSiteToActualOUTMap</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00101">SVFG.h:101</a></div></div>
70
70
  <div class="ttc" id="classSVF_1_1MRVer_html"><div class="ttname"><a href="classSVF_1_1MRVer.html">SVF::MRVer</a></div><div class="ttdef"><b>Definition:</b> <a href="MSSAMuChi_8h_source.html#l00043">MSSAMuChi.h:43</a></div></div>
71
71
  <div class="ttc" id="classSVF_1_1SVFG_html_a60df52c14b303562ff5d73c7836e3495"><div class="ttname"><a href="classSVF_1_1SVFG.html#a60df52c14b303562ff5d73c7836e3495">SVF::SVFG::CHI</a></div><div class="ttdeci">MemSSA::CHI CHI</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00090">SVFG.h:90</a></div></div>
72
72
  <div class="ttc" id="classSVF_1_1VFG_html_a84cf5facb15e1d598c2527fba0c7634d"><div class="ttname"><a href="classSVF_1_1VFG.html#a84cf5facb15e1d598c2527fba0c7634d">SVF::VFG::addVFGEdge</a></div><div class="ttdeci">bool addVFGEdge(VFGEdge *edge)</div><div class="ttdoc">Add VFG edge. </div><div class="ttdef"><b>Definition:</b> <a href="VFG_8h_source.html#l00339">VFG.h:339</a></div></div>
73
- <div class="ttc" id="classSVF_1_1SVFG_html_a931d8b82e10a54d68c68cf6bd80264be"><div class="ttname"><a href="classSVF_1_1SVFG.html#a931d8b82e10a54d68c68cf6bd80264be">SVF::SVFG::removeSVFGEdge</a></div><div class="ttdeci">void removeSVFGEdge(SVFGEdge *edge)</div><div class="ttdoc">Remove a SVFG edge. </div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00232">SVFG.h:232</a></div></div>
73
+ <div class="ttc" id="classSVF_1_1SVFG_html_a931d8b82e10a54d68c68cf6bd80264be"><div class="ttname"><a href="classSVF_1_1SVFG.html#a931d8b82e10a54d68c68cf6bd80264be">SVF::SVFG::removeSVFGEdge</a></div><div class="ttdeci">void removeSVFGEdge(SVFGEdge *edge)</div><div class="ttdoc">Remove a SVFG edge. </div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00231">SVFG.h:231</a></div></div>
74
74
  <div class="ttc" id="classSVF_1_1SVFG_html_a5fdaddc52e7342b834d76d64c1a1e498"><div class="ttname"><a href="classSVF_1_1SVFG.html#a5fdaddc52e7342b834d76d64c1a1e498">SVF::SVFG::dump</a></div><div class="ttdeci">void dump(const std::string &amp;file, bool simple=false)</div><div class="ttdoc">Dump graph into dot file. </div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8cpp_source.html#l00574">SVFG.cpp:574</a></div></div>
75
75
  <div class="ttc" id="classSVF_1_1VFG_html_aeb24b155fe31813b2e6dc0564f55738a"><div class="ttname"><a href="classSVF_1_1VFG.html#aeb24b155fe31813b2e6dc0564f55738a">SVF::VFG::removeVFGEdge</a></div><div class="ttdeci">void removeVFGEdge(VFGEdge *edge)</div><div class="ttdoc">Remove a SVFG edge. </div><div class="ttdef"><b>Definition:</b> <a href="VFG_8h_source.html#l00319">VFG.h:319</a></div></div>
76
76
  <div class="ttc" id="classSVF_1_1VFG_html"><div class="ttname"><a href="classSVF_1_1VFG.html">SVF::VFG</a></div><div class="ttdef"><b>Definition:</b> <a href="VFG_8h_source.html#l00050">VFG.h:50</a></div></div>
@@ -80,21 +80,22 @@ $(function() {
80
80
  <div class="ttc" id="classSVF_1_1ActualParmVFGNode_html"><div class="ttname"><a href="classSVF_1_1ActualParmVFGNode.html">SVF::ActualParmVFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="VFGNode_8h_source.html#l00846">VFGNode.h:846</a></div></div>
81
81
  <div class="ttc" id="classSVF_1_1SVFG_html_a2590182f3b28c7fc8b2b53c09ec4305c"><div class="ttname"><a href="classSVF_1_1SVFG.html#a2590182f3b28c7fc8b2b53c09ec4305c">SVF::SVFG::PAGNodeToDefMapTy</a></div><div class="ttdeci">Map&lt; const PAGNode *, NodeID &gt; PAGNodeToDefMapTy</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00076">SVFG.h:76</a></div></div>
82
82
  <div class="ttc" id="classSVF_1_1AddrVFGNode_html"><div class="ttname"><a href="classSVF_1_1AddrVFGNode.html">SVF::AddrVFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="VFGNode_8h_source.html#l00760">VFGNode.h:760</a></div></div>
83
+ <div class="ttc" id="classSVF_1_1SVFG_html_aa6a563cab8678b2256ca6ae7838285c8"><div class="ttname"><a href="classSVF_1_1SVFG.html#aa6a563cab8678b2256ca6ae7838285c8">SVF::SVFG::mssa</a></div><div class="ttdeci">std::unique_ptr&lt; MemSSA &gt; mssa</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00105">SVFG.h:105</a></div></div>
83
84
  <div class="ttc" id="classSVF_1_1CallMU_html"><div class="ttname"><a href="classSVF_1_1CallMU.html">SVF::CallMU</a></div><div class="ttdef"><b>Definition:</b> <a href="MSSAMuChi_8h_source.html#l00221">MSSAMuChi.h:221</a></div></div>
84
85
  <div class="ttc" id="classSVF_1_1IntraMSSAPHISVFGNode_html"><div class="ttname"><a href="classSVF_1_1IntraMSSAPHISVFGNode.html">SVF::IntraMSSAPHISVFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFGNode_8h_source.html#l00349">SVFGNode.h:349</a></div></div>
85
86
  <div class="ttc" id="namespaceSVF_html_a350ae9bf8606bdfe23c8679681b969dc"><div class="ttname"><a href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">SVF::NodeID</a></div><div class="ttdeci">unsigned NodeID</div><div class="ttdef"><b>Definition:</b> <a href="include_2MTA_2MTAResultValidator_8h_source.html#l00020">MTAResultValidator.h:20</a></div></div>
86
87
  <div class="ttc" id="classSVF_1_1SVFG_html_a9ccd530dc4c49b0df372a2ce95b66921"><div class="ttname"><a href="classSVF_1_1SVFG.html#a9ccd530dc4c49b0df372a2ce95b66921">SVF::SVFG::DDASVFGBuilder</a></div><div class="ttdeci">friend class DDASVFGBuilder</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00070">SVFG.h:70</a></div></div>
87
- <div class="ttc" id="classSVF_1_1SVFG_html_a923924d3887c668b355f4029502a3754"><div class="ttname"><a href="classSVF_1_1SVFG.html#a923924d3887c668b355f4029502a3754">SVF::SVFG::addActualINSVFGNode</a></div><div class="ttdeci">void addActualINSVFGNode(const CallICFGNode *callsite, const MRVer *ver, const NodeID nodeId)</div><div class="ttdoc">Add memory callsite mu SVFG node. </div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00414">SVFG.h:414</a></div></div>
88
+ <div class="ttc" id="classSVF_1_1SVFG_html_a923924d3887c668b355f4029502a3754"><div class="ttname"><a href="classSVF_1_1SVFG.html#a923924d3887c668b355f4029502a3754">SVF::SVFG::addActualINSVFGNode</a></div><div class="ttdeci">void addActualINSVFGNode(const CallICFGNode *callsite, const MRVer *ver, const NodeID nodeId)</div><div class="ttdoc">Add memory callsite mu SVFG node. </div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00413">SVFG.h:413</a></div></div>
88
89
  <div class="ttc" id="classSVF_1_1SVFG_html_aeba803e60699f9d9422596d161d44241"><div class="ttname"><a href="classSVF_1_1SVFG.html#aeba803e60699f9d9422596d161d44241">SVF::SVFG::clearMSSA</a></div><div class="ttdeci">void clearMSSA()</div><div class="ttdoc">Clear MSSA. </div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00131">SVFG.h:131</a></div></div>
89
90
  <div class="ttc" id="classSVF_1_1SVFG_html_acdbe1c510273107b708935061b6c4127"><div class="ttname"><a href="classSVF_1_1SVFG.html#acdbe1c510273107b708935061b6c4127">SVF::SVFG::MUSet</a></div><div class="ttdeci">MemSSA::MUSet MUSet</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00086">SVFG.h:86</a></div></div>
90
91
  <div class="ttc" id="classSVF_1_1SVFG_html_af9313ebec4a52fd887169b7c6373a7d4"><div class="ttname"><a href="classSVF_1_1SVFG.html#af9313ebec4a52fd887169b7c6373a7d4">SVF::SVFG::callSiteToActualINMap</a></div><div class="ttdeci">CallSiteToActualINsMapTy callSiteToActualINMap</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00100">SVFG.h:100</a></div></div>
91
92
  <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#l00208">GenericGraph.h:208</a></div></div>
92
93
  <div class="ttc" id="classSVF_1_1VFG_html_ad86631f70bd702b5635bdbeab7d884b9"><div class="ttname"><a href="classSVF_1_1VFG.html#ad86631f70bd702b5635bdbeab7d884b9">SVF::VFG::hasInterVFGEdge</a></div><div class="ttdeci">VFGEdge * hasInterVFGEdge(VFGNode *src, VFGNode *dst, VFGEdge::VFGEdgeK kind, CallSiteID csId)</div><div class="ttdef"><b>Definition:</b> <a href="VFG_8cpp_source.html#l00901">VFG.cpp:901</a></div></div>
93
- <div class="ttc" id="classSVF_1_1SVFG_html_a8dd513e8e5343beeb5d117c1ff4e45ea"><div class="ttname"><a href="classSVF_1_1SVFG.html#a8dd513e8e5343beeb5d117c1ff4e45ea">SVF::SVFG::addDummyVersionPropSVFGNode</a></div><div class="ttdeci">const DummyVersionPropSVFGNode * addDummyVersionPropSVFGNode(const NodeID object, const NodeID version)</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00257">SVFG.h:257</a></div></div>
94
+ <div class="ttc" id="classSVF_1_1SVFG_html_a8dd513e8e5343beeb5d117c1ff4e45ea"><div class="ttname"><a href="classSVF_1_1SVFG.html#a8dd513e8e5343beeb5d117c1ff4e45ea">SVF::SVFG::addDummyVersionPropSVFGNode</a></div><div class="ttdeci">const DummyVersionPropSVFGNode * addDummyVersionPropSVFGNode(const NodeID object, const NodeID version)</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00256">SVFG.h:256</a></div></div>
94
95
  <div class="ttc" id="classSVF_1_1SVFG_html_a8ba934714a7f2caf2e041002fdb66137"><div class="ttname"><a href="classSVF_1_1SVFG.html#a8ba934714a7f2caf2e041002fdb66137">SVF::SVFG::getStat</a></div><div class="ttdeci">SVFGStat * getStat() const</div><div class="ttdoc">Return statistics. </div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00125">SVFG.h:125</a></div></div>
95
96
  <div class="ttc" id="classSVF_1_1StoreCHI_html"><div class="ttname"><a href="classSVF_1_1StoreCHI.html">SVF::StoreCHI</a></div><div class="ttdef"><b>Definition:</b> <a href="MSSAMuChi_8h_source.html#l00461">MSSAMuChi.h:461</a></div></div>
96
97
  <div class="ttc" id="classSVF_1_1VFG_html_a122aa5ad874170ef644cee8705f1ef3e"><div class="ttname"><a href="classSVF_1_1VFG.html#a122aa5ad874170ef644cee8705f1ef3e">SVF::VFG::removeVFGNode</a></div><div class="ttdeci">void removeVFGNode(VFGNode *node)</div><div class="ttdoc">Remove a VFGNode. </div><div class="ttdef"><b>Definition:</b> <a href="VFG_8h_source.html#l00326">VFG.h:326</a></div></div>
97
- <div class="ttc" id="classSVF_1_1SVFG_html_a8e7a945f4266e8dc7dcfff2ad6494bfb"><div class="ttname"><a href="classSVF_1_1SVFG.html#a8e7a945f4266e8dc7dcfff2ad6494bfb">SVF::SVFG::getDefSVFGNode</a></div><div class="ttdeci">const SVFGNode * getDefSVFGNode(const PAGNode *pagNode) const</div><div class="ttdoc">Given a pagNode, return its definition site. </div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00171">SVFG.h:171</a></div></div>
98
+ <div class="ttc" id="classSVF_1_1SVFG_html_a8e7a945f4266e8dc7dcfff2ad6494bfb"><div class="ttname"><a href="classSVF_1_1SVFG.html#a8e7a945f4266e8dc7dcfff2ad6494bfb">SVF::SVFG::getDefSVFGNode</a></div><div class="ttdeci">const SVFGNode * getDefSVFGNode(const PAGNode *pagNode) const</div><div class="ttdoc">Given a pagNode, return its definition site. </div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00170">SVFG.h:170</a></div></div>
98
99
  <div class="ttc" id="classSVF_1_1SVFG_html_a5921483cd5e1bf77b1b2bc8fb3250612"><div class="ttname"><a href="classSVF_1_1SVFG.html#a5921483cd5e1bf77b1b2bc8fb3250612">SVF::SVFG::connectFromGlobalToProgEntry</a></div><div class="ttdeci">void connectFromGlobalToProgEntry()</div><div class="ttdoc">Connect indirect SVFG edges from global initializers (store) to main function entry. </div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8cpp_source.html#l00424">SVFG.cpp:424</a></div></div>
99
100
  <div class="ttc" id="classSVF_1_1SVFG_html_a8859409373454b6b3d1252776e169cf5"><div class="ttname"><a href="classSVF_1_1SVFG.html#a8859409373454b6b3d1252776e169cf5">SVF::SVFG::FormalINSVFGNodeSet</a></div><div class="ttdeci">NodeBS FormalINSVFGNodeSet</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00080">SVFG.h:80</a></div></div>
100
101
  <div class="ttc" id="classSVF_1_1SVFG_html_a86d4a41a881a3d2e5def103d7ba8bb2f"><div class="ttname"><a href="classSVF_1_1SVFG.html#a86d4a41a881a3d2e5def103d7ba8bb2f">SVF::SVFG::LOADMU</a></div><div class="ttdeci">MemSSA::LOADMU LOADMU</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00091">SVFG.h:91</a></div></div>
@@ -106,12 +107,12 @@ $(function() {
106
107
  <div class="ttc" id="classSVF_1_1CopyVFGNode_html"><div class="ttname"><a href="classSVF_1_1CopyVFGNode.html">SVF::CopyVFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="VFGNode_8h_source.html#l00281">VFGNode.h:281</a></div></div>
107
108
  <div class="ttc" id="classSVF_1_1PHIVFGNode_html"><div class="ttname"><a href="classSVF_1_1PHIVFGNode.html">SVF::PHIVFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="VFGNode_8h_source.html#l00635">VFGNode.h:635</a></div></div>
108
109
  <div class="ttc" id="namespaceSVF_html_ab98f7c9e6311e649cdfd5d2f3f8e59be"><div class="ttname"><a href="namespaceSVF.html#ab98f7c9e6311e649cdfd5d2f3f8e59be">SVF::CopySVFGNode</a></div><div class="ttdeci">CopyVFGNode CopySVFGNode</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00052">SVFG.h:52</a></div></div>
109
- <div class="ttc" id="classSVF_1_1SVFG_html_a7ace06b6c893b31f7dec2abe54e33e11"><div class="ttname"><a href="classSVF_1_1SVFG.html#a7ace06b6c893b31f7dec2abe54e33e11">SVF::SVFG::getSVFGNode</a></div><div class="ttdeci">SVFGNode * getSVFGNode(NodeID id) const</div><div class="ttdoc">Get a SVFG node. </div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00150">SVFG.h:150</a></div></div>
110
+ <div class="ttc" id="classSVF_1_1SVFG_html_a7ace06b6c893b31f7dec2abe54e33e11"><div class="ttname"><a href="classSVF_1_1SVFG.html#a7ace06b6c893b31f7dec2abe54e33e11">SVF::SVFG::getSVFGNode</a></div><div class="ttdeci">SVFGNode * getSVFGNode(NodeID id) const</div><div class="ttdoc">Get a SVFG node. </div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00149">SVFG.h:149</a></div></div>
110
111
  <div class="ttc" id="classSVF_1_1SVFG_html_aafa1b445bd3578daaba8f82e517745f1"><div class="ttname"><a href="classSVF_1_1SVFG.html#aafa1b445bd3578daaba8f82e517745f1">SVF::SVFG::MSSAVarToDefMap</a></div><div class="ttdeci">MSSAVarToDefMapTy MSSAVarToDefMap</div><div class="ttdoc">map a memory SSA operator to its definition SVFG node </div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00099">SVFG.h:99</a></div></div>
111
112
  <div class="ttc" id="VFG_8h_html"><div class="ttname"><a href="VFG_8h.html">VFG.h</a></div></div>
112
113
  <div class="ttc" id="classSVF_1_1GepVFGNode_html"><div class="ttname"><a href="classSVF_1_1GepVFGNode.html">SVF::GepVFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="VFGNode_8h_source.html#l00594">VFGNode.h:594</a></div></div>
113
114
  <div class="ttc" id="namespaceSVF_html_a0f7ff1d9a479df87241b45bb9c81d3ca"><div class="ttname"><a href="namespaceSVF.html#a0f7ff1d9a479df87241b45bb9c81d3ca">SVF::InterPHISVFGNode</a></div><div class="ttdeci">InterPHIVFGNode InterPHISVFGNode</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00058">SVFG.h:58</a></div></div>
114
- <div class="ttc" id="classSVF_1_1SVFG_html_a55a26b88ffe786b04184a29ae72575e7"><div class="ttname"><a href="classSVF_1_1SVFG.html#a55a26b88ffe786b04184a29ae72575e7">SVF::SVFG::getDef</a></div><div class="ttdeci">NodeID getDef(const MRVer *mvar) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00375">SVFG.h:375</a></div></div>
115
+ <div class="ttc" id="classSVF_1_1SVFG_html_a55a26b88ffe786b04184a29ae72575e7"><div class="ttname"><a href="classSVF_1_1SVFG.html#a55a26b88ffe786b04184a29ae72575e7">SVF::SVFG::getDef</a></div><div class="ttdeci">NodeID getDef(const MRVer *mvar) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00374">SVFG.h:374</a></div></div>
115
116
  <div class="ttc" id="classSVF_1_1SVFG_html_a101c5a8b31baf5c5613144f6e277abe9"><div class="ttname"><a href="classSVF_1_1SVFG.html#a101c5a8b31baf5c5613144f6e277abe9">SVF::SVFG::ENTRYCHI</a></div><div class="ttdeci">MemSSA::ENTRYCHI ENTRYCHI</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00094">SVFG.h:94</a></div></div>
116
117
  <div class="ttc" id="classSVF_1_1GenericGraph_html_a38122734cbe71551a420dfb7fee2012e"><div class="ttname"><a href="classSVF_1_1GenericGraph.html#a38122734cbe71551a420dfb7fee2012e">SVF::GenericGraph::nodeNum</a></div><div class="ttdeci">u32_t nodeNum</div><div class="ttdoc">total num of edge </div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00445">GenericGraph.h:445</a></div></div>
117
118
  <div class="ttc" id="classSVF_1_1ICFG_html_af1b2d2839f811a00103df87342dfc919"><div class="ttname"><a href="classSVF_1_1ICFG.html#af1b2d2839f811a00103df87342dfc919">SVF::ICFG::getFunExitICFGNode</a></div><div class="ttdeci">FunExitICFGNode * getFunExitICFGNode(const SVFFunction *fun)</div><div class="ttdoc">Add a function exit node. </div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8cpp_source.html#l00278">ICFG.cpp:278</a></div></div>
@@ -120,7 +121,7 @@ $(function() {
120
121
  <div class="ttc" id="classSVF_1_1ICFG_html_a881fe977f3a6fde223bd786121e35fcf"><div class="ttname"><a href="classSVF_1_1ICFG.html#a881fe977f3a6fde223bd786121e35fcf">SVF::ICFG::getRetICFGNode</a></div><div class="ttdeci">RetICFGNode * getRetICFGNode(const SVFInstruction *inst)</div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8cpp_source.html#l00249">ICFG.cpp:249</a></div></div>
121
122
  <div class="ttc" id="namespaceSVF_html_a71d4e214e049f02bf26537cba6328673"><div class="ttname"><a href="namespaceSVF.html#a71d4e214e049f02bf26537cba6328673">SVF::PHISVFGNode</a></div><div class="ttdeci">PHIVFGNode PHISVFGNode</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00056">SVFG.h:56</a></div></div>
122
123
  <div class="ttc" id="classSVF_1_1MSSAMU_html"><div class="ttname"><a href="classSVF_1_1MSSAMU.html">SVF::MSSAMU</a></div><div class="ttdef"><b>Definition:</b> <a href="MSSAMuChi_8h_source.html#l00095">MSSAMuChi.h:95</a></div></div>
123
- <div class="ttc" id="classSVF_1_1SVFG_html_ab1fde654cc464c5b4d1bafff83d346ed"><div class="ttname"><a href="classSVF_1_1SVFG.html#ab1fde654cc464c5b4d1bafff83d346ed">SVF::SVFG::hasActualOUTSVFGNodes</a></div><div class="ttdeci">bool hasActualOUTSVFGNodes(const CallICFGNode *cs) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00186">SVFG.h:186</a></div></div>
124
+ <div class="ttc" id="classSVF_1_1SVFG_html_ab1fde654cc464c5b4d1bafff83d346ed"><div class="ttname"><a href="classSVF_1_1SVFG.html#ab1fde654cc464c5b4d1bafff83d346ed">SVF::SVFG::hasActualOUTSVFGNodes</a></div><div class="ttdeci">bool hasActualOUTSVFGNodes(const CallICFGNode *cs) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00185">SVFG.h:185</a></div></div>
124
125
  <div class="ttc" id="classSVF_1_1GenericNode_html_ae5b113921530eee6afe58a65d8e5b3a7"><div class="ttname"><a href="classSVF_1_1GenericNode.html#ae5b113921530eee6afe58a65d8e5b3a7">SVF::GenericNode::InEdgeBegin</a></div><div class="ttdeci">iterator InEdgeBegin()</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00216">GenericGraph.h:216</a></div></div>
125
126
  <div class="ttc" id="classSVF_1_1SVFG_html_ae51cd0493e4e767848b96b69045762fd"><div class="ttname"><a href="classSVF_1_1SVFG.html#ae51cd0493e4e767848b96b69045762fd">SVF::SVFG::funToFormalINMap</a></div><div class="ttdeci">FunctionToFormalINsMapTy funToFormalINMap</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00102">SVFG.h:102</a></div></div>
126
127
  <div class="ttc" id="namespaceSVF_html_a8234d4b959abc9123993bcff4eee34c1"><div class="ttname"><a href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">SVF::Map</a></div><div class="ttdeci">std::unordered_map&lt; Key, Value, Hash, KeyEqual, Allocator &gt; Map</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00099">SVFType.h:99</a></div></div>
@@ -132,7 +133,7 @@ $(function() {
132
133
  <div class="ttc" id="classSVF_1_1VFGEdge_html_a156ae6a8b3a033f505c18c6b162e7cf5a8288c583cfcbfdf9aa2ac2103c0e7191"><div class="ttname"><a href="classSVF_1_1VFGEdge.html#a156ae6a8b3a033f505c18c6b162e7cf5a8288c583cfcbfdf9aa2ac2103c0e7191">SVF::VFGEdge::RetDirVF</a></div><div class="ttdef"><b>Definition:</b> <a href="VFGEdge_8h_source.html#l00056">VFGEdge.h:56</a></div></div>
133
134
  <div class="ttc" id="namespaceSVF_html_ad42bff8d0a7d60a085aa32d10f4955af"><div class="ttname"><a href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">SVF::u32_t</a></div><div class="ttdeci">unsigned u32_t</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00050">SVFType.h:50</a></div></div>
134
135
  <div class="ttc" id="classSVF_1_1SVFG_html_a2b4850c833564916c7fce46d55672038"><div class="ttname"><a href="classSVF_1_1SVFG.html#a2b4850c833564916c7fce46d55672038">SVF::SVFG::FunctionToFormalINsMapTy</a></div><div class="ttdeci">Map&lt; const SVFFunction *, FormalINSVFGNodeSet &gt; FunctionToFormalINsMapTy</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00084">SVFG.h:84</a></div></div>
135
- <div class="ttc" id="classSVF_1_1SVFG_html_a65f28035e0fa5bebf76d28612b2f8ba8"><div class="ttname"><a href="classSVF_1_1SVFG.html#a65f28035e0fa5bebf76d28612b2f8ba8">SVF::SVFG::hasFormalINSVFGNodes</a></div><div class="ttdeci">bool hasFormalINSVFGNodes(const SVFFunction *fun) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00191">SVFG.h:191</a></div></div>
136
+ <div class="ttc" id="classSVF_1_1SVFG_html_a65f28035e0fa5bebf76d28612b2f8ba8"><div class="ttname"><a href="classSVF_1_1SVFG.html#a65f28035e0fa5bebf76d28612b2f8ba8">SVF::SVFG::hasFormalINSVFGNodes</a></div><div class="ttdeci">bool hasFormalINSVFGNodes(const SVFFunction *fun) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00190">SVFG.h:190</a></div></div>
136
137
  <div class="ttc" id="classSVF_1_1ICFG_html_aa41516cdd2be5066adf22798a4fe2213"><div class="ttname"><a href="classSVF_1_1ICFG.html#aa41516cdd2be5066adf22798a4fe2213">SVF::ICFG::getCallICFGNode</a></div><div class="ttdeci">CallICFGNode * getCallICFGNode(const SVFInstruction *inst)</div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8cpp_source.html#l00236">ICFG.cpp:236</a></div></div>
137
138
  <div class="ttc" id="classSVF_1_1SVFG_html_abddfc95cf644d0729ee29eccf95699f1"><div class="ttname"><a href="classSVF_1_1SVFG.html#abddfc95cf644d0729ee29eccf95699f1">SVF::SVFG::addSVFGNodesForAddrTakenVars</a></div><div class="ttdeci">void addSVFGNodesForAddrTakenVars()</div><div class="ttdoc">Create SVFG nodes for address-taken variables. </div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8cpp_source.html#l00251">SVFG.cpp:251</a></div></div>
138
139
  <div class="ttc" id="classSVF_1_1SVFG_html_a727af89a305e48f399ad33cc7149dbcb"><div class="ttname"><a href="classSVF_1_1SVFG.html#a727af89a305e48f399ad33cc7149dbcb">SVF::SVFG::CallSiteToActualINsMapTy</a></div><div class="ttdeci">Map&lt; const CallICFGNode *, ActualINSVFGNodeSet &gt; CallSiteToActualINsMapTy</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00082">SVFG.h:82</a></div></div>
@@ -140,12 +141,12 @@ $(function() {
140
141
  <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>
141
142
  <div class="ttc" id="classSVF_1_1MemSSA_html_af9cf084e3070456d8cca491e1391b0c4"><div class="ttname"><a href="classSVF_1_1MemSSA.html#af9cf084e3070456d8cca491e1391b0c4">SVF::MemSSA::CHISet</a></div><div class="ttdeci">Set&lt; CHI * &gt; CHISet</div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00071">MemSSA.h:71</a></div></div>
142
143
  <div class="ttc" id="classSVF_1_1RetMU_html"><div class="ttname"><a href="classSVF_1_1RetMU.html">SVF::RetMU</a></div><div class="ttdef"><b>Definition:</b> <a href="MSSAMuChi_8h_source.html#l00277">MSSAMuChi.h:277</a></div></div>
143
- <div class="ttc" id="classSVF_1_1SVFG_html_ac965abfbe9bdc872f98b36a171a7b5aa"><div class="ttname"><a href="classSVF_1_1SVFG.html#ac965abfbe9bdc872f98b36a171a7b5aa">SVF::SVFG::getSVFGNodeNum</a></div><div class="ttdeci">u32_t getSVFGNodeNum() const</div><div class="ttdoc">Return total SVFG node number. </div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00249">SVFG.h:249</a></div></div>
144
+ <div class="ttc" id="classSVF_1_1SVFG_html_ac965abfbe9bdc872f98b36a171a7b5aa"><div class="ttname"><a href="classSVF_1_1SVFG.html#ac965abfbe9bdc872f98b36a171a7b5aa">SVF::SVFG::getSVFGNodeNum</a></div><div class="ttdeci">u32_t getSVFGNodeNum() const</div><div class="ttdoc">Return total SVFG node number. </div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00248">SVFG.h:248</a></div></div>
144
145
  <div class="ttc" id="classSVF_1_1SVFG_html_a710a36fc3f4ad15010c4469abcd032e5"><div class="ttname"><a href="classSVF_1_1SVFG.html#a710a36fc3f4ad15010c4469abcd032e5">SVF::SVFG::~SVFG</a></div><div class="ttdeci">virtual ~SVFG()</div><div class="ttdoc">Destructor. </div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00119">SVFG.h:119</a></div></div>
145
146
  <div class="ttc" id="classSVF_1_1VFG_html_a30eb9d717ad5bc8a9109a7bdef38f4a1"><div class="ttname"><a href="classSVF_1_1VFG.html#a30eb9d717ad5bc8a9109a7bdef38f4a1">SVF::VFG::hasVFGNode</a></div><div class="ttdeci">bool hasVFGNode(NodeID id) const</div><div class="ttdoc">Whether has the VFGNode. </div><div class="ttdef"><b>Definition:</b> <a href="VFG_8h_source.html#l00151">VFG.h:151</a></div></div>
146
- <div class="ttc" id="classSVF_1_1SVFG_html_a5b7ae610bee28acc2905ca82928e714f"><div class="ttname"><a href="classSVF_1_1SVFG.html#a5b7ae610bee28acc2905ca82928e714f">SVF::SVFG::getActualOUTSVFGNodes</a></div><div class="ttdeci">ActualOUTSVFGNodeSet &amp; getActualOUTSVFGNodes(const CallICFGNode *cs)</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00209">SVFG.h:209</a></div></div>
147
+ <div class="ttc" id="classSVF_1_1SVFG_html_a5b7ae610bee28acc2905ca82928e714f"><div class="ttname"><a href="classSVF_1_1SVFG.html#a5b7ae610bee28acc2905ca82928e714f">SVF::SVFG::getActualOUTSVFGNodes</a></div><div class="ttdeci">ActualOUTSVFGNodeSet &amp; getActualOUTSVFGNodes(const CallICFGNode *cs)</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00208">SVFG.h:208</a></div></div>
147
148
  <div class="ttc" id="classSVF_1_1LoadMU_html"><div class="ttname"><a href="classSVF_1_1LoadMU.html">SVF::LoadMU</a></div><div class="ttdef"><b>Definition:</b> <a href="MSSAMuChi_8h_source.html#l00165">MSSAMuChi.h:165</a></div></div>
148
- <div class="ttc" id="classSVF_1_1SVFG_html_a1f8c60ad57bf473e0186b794d666b5c2"><div class="ttname"><a href="classSVF_1_1SVFG.html#a1f8c60ad57bf473e0186b794d666b5c2">SVF::SVFG::hasFormalOUTSVFGNodes</a></div><div class="ttdeci">bool hasFormalOUTSVFGNodes(const SVFFunction *fun) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00196">SVFG.h:196</a></div></div>
149
+ <div class="ttc" id="classSVF_1_1SVFG_html_a1f8c60ad57bf473e0186b794d666b5c2"><div class="ttname"><a href="classSVF_1_1SVFG.html#a1f8c60ad57bf473e0186b794d666b5c2">SVF::SVFG::hasFormalOUTSVFGNodes</a></div><div class="ttdeci">bool hasFormalOUTSVFGNodes(const SVFFunction *fun) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00195">SVFG.h:195</a></div></div>
149
150
  <div class="ttc" id="classSVF_1_1SVFG_html_a164a3df08fc24bacc0b97aee8b6eec38"><div class="ttname"><a href="classSVF_1_1SVFG.html#a164a3df08fc24bacc0b97aee8b6eec38">SVF::SVFG::connectIndirectSVFGEdges</a></div><div class="ttdeci">void connectIndirectSVFGEdges()</div><div class="ttdoc">Connect direct SVFG edges between two SVFG nodes (value-flow of top address-taken variables) ...</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8cpp_source.html#l00326">SVFG.cpp:326</a></div></div>
150
151
  <div class="ttc" id="namespaceSVF_html_ad466edced10faeafd48e96daf193b8a9"><div class="ttname"><a href="namespaceSVF.html#ad466edced10faeafd48e96daf193b8a9">SVF::FormalParmSVFGNode</a></div><div class="ttdeci">FormalParmVFGNode FormalParmSVFGNode</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00046">SVFG.h:46</a></div></div>
151
152
  <div class="ttc" id="namespaceSVF_html_a5dfa3fa5129bacdc0be0c051ccf386df"><div class="ttname"><a href="namespaceSVF.html#a5dfa3fa5129bacdc0be0c051ccf386df">SVF::SVFGNode</a></div><div class="ttdeci">VFGNode SVFGNode</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00043">SVFG.h:43</a></div></div>
@@ -155,29 +156,29 @@ $(function() {
155
156
  <div class="ttc" id="classSVF_1_1SVFG_html_a7ce9ec638995467c211958262be08ee1"><div class="ttname"><a href="classSVF_1_1SVFG.html#a7ce9ec638995467c211958262be08ee1">SVF::SVFG::writeToFile</a></div><div class="ttdeci">virtual void writeToFile(const std::string &amp;filename)</div><div class="ttdef"><b>Definition:</b> <a href="SVFGReadWrite_8cpp_source.html#l00047">SVFGReadWrite.cpp:47</a></div></div>
156
157
  <div class="ttc" id="classSVF_1_1SVFG_html_a0920e9f9896531959d74ae61013d96d6"><div class="ttname"><a href="classSVF_1_1SVFG.html#a0920e9f9896531959d74ae61013d96d6">SVF::SVFG::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="SVFG_8cpp_source.html#l00224">SVFG.cpp:224</a></div></div>
157
158
  <div class="ttc" id="classSVF_1_1SVFG_html_a5f3e0fbf83621cc661d2c59800756727"><div class="ttname"><a href="classSVF_1_1SVFG.html#a5f3e0fbf83621cc661d2c59800756727">SVF::SVFG::CALLCHI</a></div><div class="ttdeci">MemSSA::CALLCHI CALLCHI</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00095">SVFG.h:95</a></div></div>
158
- <div class="ttc" id="classSVF_1_1SVFG_html_a0554abe7c072b66ab24a900284646572"><div class="ttname"><a href="classSVF_1_1SVFG.html#a0554abe7c072b66ab24a900284646572">SVF::SVFG::addIntraMSSAPHISVFGNode</a></div><div class="ttdeci">void addIntraMSSAPHISVFGNode(ICFGNode *BlockICFGNode, const Map&lt; u32_t, const MRVer *&gt;::const_iterator opVerBegin, const Map&lt; u32_t, const MRVer *&gt;::const_iterator opVerEnd, const MRVer *resVer, const NodeID nodeId)</div><div class="ttdoc">Add memory SSA PHI SVFG node. </div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00431">SVFG.h:431</a></div></div>
159
- <div class="ttc" id="classSVF_1_1SVFG_html_a475205e221890204c7770c414ee63975"><div class="ttname"><a href="classSVF_1_1SVFG.html#a475205e221890204c7770c414ee63975">SVF::SVFG::getActualINSVFGNodes</a></div><div class="ttdeci">ActualINSVFGNodeSet &amp; getActualINSVFGNodes(const CallICFGNode *cs)</div><div class="ttdoc">Get SVFGNode set. </div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00204">SVFG.h:204</a></div></div>
159
+ <div class="ttc" id="classSVF_1_1SVFG_html_a0554abe7c072b66ab24a900284646572"><div class="ttname"><a href="classSVF_1_1SVFG.html#a0554abe7c072b66ab24a900284646572">SVF::SVFG::addIntraMSSAPHISVFGNode</a></div><div class="ttdeci">void addIntraMSSAPHISVFGNode(ICFGNode *BlockICFGNode, const Map&lt; u32_t, const MRVer *&gt;::const_iterator opVerBegin, const Map&lt; u32_t, const MRVer *&gt;::const_iterator opVerEnd, const MRVer *resVer, const NodeID nodeId)</div><div class="ttdoc">Add memory SSA PHI SVFG node. </div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00430">SVFG.h:430</a></div></div>
160
+ <div class="ttc" id="classSVF_1_1SVFG_html_a475205e221890204c7770c414ee63975"><div class="ttname"><a href="classSVF_1_1SVFG.html#a475205e221890204c7770c414ee63975">SVF::SVFG::getActualINSVFGNodes</a></div><div class="ttdeci">ActualINSVFGNodeSet &amp; getActualINSVFGNodes(const CallICFGNode *cs)</div><div class="ttdoc">Get SVFGNode set. </div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00203">SVFG.h:203</a></div></div>
160
161
  <div class="ttc" id="classSVF_1_1GenericEdge_html_aeaa31a2c8479e831b36ce2e2582ceb86"><div class="ttname"><a href="classSVF_1_1GenericEdge.html#aeaa31a2c8479e831b36ce2e2582ceb86">SVF::GenericEdge::getDstNode</a></div><div class="ttdeci">NodeType * getDstNode() const</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00095">GenericGraph.h:95</a></div></div>
161
162
  <div class="ttc" id="classSVF_1_1SVFG_html_aef7ee9d802934d51b3761663bdaf0c05"><div class="ttname"><a href="classSVF_1_1SVFG.html#aef7ee9d802934d51b3761663bdaf0c05">SVF::SVFG::PHISet</a></div><div class="ttdeci">MemSSA::PHISet PHISet</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00088">SVFG.h:88</a></div></div>
162
163
  <div class="ttc" id="classSVF_1_1MemSSA_html"><div class="ttname"><a href="classSVF_1_1MemSSA.html">SVF::MemSSA</a></div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00052">MemSSA.h:52</a></div></div>
163
164
  <div class="ttc" id="namespaceSVF_html_aeccd0bd024319173c1cda5ff1a79c5ae"><div class="ttname"><a href="namespaceSVF.html#aeccd0bd024319173c1cda5ff1a79c5ae">SVF::NullPtrSVFGNode</a></div><div class="ttdeci">NullPtrVFGNode NullPtrSVFGNode</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00049">SVFG.h:49</a></div></div>
164
165
  <div class="ttc" id="classSVF_1_1SVFG_html_a67654d252e9e93b74e35ba247048b41a"><div class="ttname"><a href="classSVF_1_1SVFG.html#a67654d252e9e93b74e35ba247048b41a">SVF::SVFG::RcSvfgBuilder</a></div><div class="ttdeci">friend class RcSvfgBuilder</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00072">SVFG.h:72</a></div></div>
165
166
  <div class="ttc" id="classSVF_1_1SVFG_html_af8ceb1ebf745e6803c606c41f7a482ac"><div class="ttname"><a href="classSVF_1_1SVFG.html#af8ceb1ebf745e6803c606c41f7a482ac">SVF::SVFG::addCallIndirectVFEdge</a></div><div class="ttdeci">SVFGEdge * addCallIndirectVFEdge(NodeID srcId, NodeID dstId, const NodeBS &amp;cpts, CallSiteID csId)</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8cpp_source.html#l00503">SVFG.cpp:503</a></div></div>
166
- <div class="ttc" id="classSVF_1_1SVFG_html_ac1acdf7bc468d7734359591e45f485fe"><div class="ttname"><a href="classSVF_1_1SVFG.html#ac1acdf7bc468d7734359591e45f485fe">SVF::SVFG::getInterVFEdgeAtIndCSFromAPToFP</a></div><div class="ttdeci">virtual void getInterVFEdgeAtIndCSFromAPToFP(const PAGNode *cs_arg, const PAGNode *fun_arg, const CallICFGNode *, CallSiteID csId, SVFGEdgeSetTy &amp;edges)</div><div class="ttdoc">Get inter value flow edges between indirect call site and callee. </div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00304">SVFG.h:304</a></div></div>
167
+ <div class="ttc" id="classSVF_1_1SVFG_html_ac1acdf7bc468d7734359591e45f485fe"><div class="ttname"><a href="classSVF_1_1SVFG.html#ac1acdf7bc468d7734359591e45f485fe">SVF::SVFG::getInterVFEdgeAtIndCSFromAPToFP</a></div><div class="ttdeci">virtual void getInterVFEdgeAtIndCSFromAPToFP(const PAGNode *cs_arg, const PAGNode *fun_arg, const CallICFGNode *, CallSiteID csId, SVFGEdgeSetTy &amp;edges)</div><div class="ttdoc">Get inter value flow edges between indirect call site and callee. </div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00303">SVFG.h:303</a></div></div>
167
168
  <div class="ttc" id="namespaceSVF_html_a77b8b8ca831e1eba3e47f2ca29667f67"><div class="ttname"><a href="namespaceSVF.html#a77b8b8ca831e1eba3e47f2ca29667f67">SVF::ActualRetSVFGNode</a></div><div class="ttdeci">ActualRetVFGNode ActualRetSVFGNode</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00045">SVFG.h:45</a></div></div>
168
169
  <div class="ttc" id="classSVF_1_1SVFG_html_a665c93b68f49078c281270a028d04445"><div class="ttname"><a href="classSVF_1_1SVFG.html#a665c93b68f49078c281270a028d04445">SVF::SVFG::TaintSVFGBuilder</a></div><div class="ttdeci">friend class TaintSVFGBuilder</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00069">SVFG.h:69</a></div></div>
169
170
  <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>
170
171
  <div class="ttc" id="namespaceSVF_html_a959453cbb8ff2d852b526fd1ff74ce49"><div class="ttname"><a href="namespaceSVF.html#a959453cbb8ff2d852b526fd1ff74ce49">SVF::AddrSVFGNode</a></div><div class="ttdeci">AddrVFGNode AddrSVFGNode</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00051">SVFG.h:51</a></div></div>
171
172
  <div class="ttc" id="classSVF_1_1MemSSA_html_a81bba824495a882b49e687683954b112"><div class="ttname"><a href="classSVF_1_1MemSSA.html#a81bba824495a882b49e687683954b112">SVF::MemSSA::MUSet</a></div><div class="ttdeci">Set&lt; MU * &gt; MUSet</div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00070">MemSSA.h:70</a></div></div>
172
- <div class="ttc" id="classSVF_1_1SVFG_html_a67750c461e3543f6b75d2dd510d67297"><div class="ttname"><a href="classSVF_1_1SVFG.html#a67750c461e3543f6b75d2dd510d67297">SVF::SVFG::addSVFGEdge</a></div><div class="ttdeci">bool addSVFGEdge(SVFGEdge *edge)</div><div class="ttdoc">Add SVFG edge. </div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00243">SVFG.h:243</a></div></div>
173
- <div class="ttc" id="classSVF_1_1SVFG_html_aa3ebc066d376e7ed508d2bce49fa864d"><div class="ttname"><a href="classSVF_1_1SVFG.html#aa3ebc066d376e7ed508d2bce49fa864d">SVF::SVFG::setDef</a></div><div class="ttdeci">void setDef(const MRVer *mvar, const SVFGNode *node)</div><div class="ttdoc">Given a MSSADef, set/get its def SVFG node (definition of address-taken variables) ...</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00362">SVFG.h:362</a></div></div>
174
- <div class="ttc" id="classSVF_1_1SVFG_html_a74aa824a68f99756ac3e65231c7bc2e9"><div class="ttname"><a href="classSVF_1_1SVFG.html#a74aa824a68f99756ac3e65231c7bc2e9">SVF::SVFG::addActualOUTSVFGNode</a></div><div class="ttdeci">void addActualOUTSVFGNode(const CallICFGNode *callsite, const MRVer *resVer, const NodeID nodeId)</div><div class="ttdoc">Add memory callsite chi SVFG node. </div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00422">SVFG.h:422</a></div></div>
173
+ <div class="ttc" id="classSVF_1_1SVFG_html_a67750c461e3543f6b75d2dd510d67297"><div class="ttname"><a href="classSVF_1_1SVFG.html#a67750c461e3543f6b75d2dd510d67297">SVF::SVFG::addSVFGEdge</a></div><div class="ttdeci">bool addSVFGEdge(SVFGEdge *edge)</div><div class="ttdoc">Add SVFG edge. </div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00242">SVFG.h:242</a></div></div>
174
+ <div class="ttc" id="classSVF_1_1SVFG_html_aa3ebc066d376e7ed508d2bce49fa864d"><div class="ttname"><a href="classSVF_1_1SVFG.html#aa3ebc066d376e7ed508d2bce49fa864d">SVF::SVFG::setDef</a></div><div class="ttdeci">void setDef(const MRVer *mvar, const SVFGNode *node)</div><div class="ttdoc">Given a MSSADef, set/get its def SVFG node (definition of address-taken variables) ...</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00361">SVFG.h:361</a></div></div>
175
+ <div class="ttc" id="classSVF_1_1SVFG_html_a74aa824a68f99756ac3e65231c7bc2e9"><div class="ttname"><a href="classSVF_1_1SVFG.html#a74aa824a68f99756ac3e65231c7bc2e9">SVF::SVFG::addActualOUTSVFGNode</a></div><div class="ttdeci">void addActualOUTSVFGNode(const CallICFGNode *callsite, const MRVer *resVer, const NodeID nodeId)</div><div class="ttdoc">Add memory callsite chi SVFG node. </div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00421">SVFG.h:421</a></div></div>
175
176
  <div class="ttc" id="classSVF_1_1SVFG_html_a1aba3845bad017f81cd5f938db03a161"><div class="ttname"><a href="classSVF_1_1SVFG.html#a1aba3845bad017f81cd5f938db03a161">SVF::SVFG::addThreadMHPIndirectVFEdge</a></div><div class="ttdeci">SVFGEdge * addThreadMHPIndirectVFEdge(NodeID srcId, NodeID dstId, const NodeBS &amp;cpts)</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8cpp_source.html#l00483">SVFG.cpp:483</a></div></div>
176
177
  <div class="ttc" id="classSVF_1_1GenericNode_html_afe6a7b286d9af4992f41b59612fd2900"><div class="ttname"><a href="classSVF_1_1GenericNode.html#afe6a7b286d9af4992f41b59612fd2900">SVF::GenericNode::InEdgeEnd</a></div><div class="ttdeci">iterator InEdgeEnd()</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00220">GenericGraph.h:220</a></div></div>
177
- <div class="ttc" id="classSVF_1_1SVFG_html_a9d0714075d6071c26d26cf16c4dec7c5"><div class="ttname"><a href="classSVF_1_1SVFG.html#a9d0714075d6071c26d26cf16c4dec7c5">SVF::SVFG::getFormalINSVFGNodes</a></div><div class="ttdeci">FormalINSVFGNodeSet &amp; getFormalINSVFGNodes(const SVFFunction *fun)</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00214">SVFG.h:214</a></div></div>
178
+ <div class="ttc" id="classSVF_1_1SVFG_html_a9d0714075d6071c26d26cf16c4dec7c5"><div class="ttname"><a href="classSVF_1_1SVFG.html#a9d0714075d6071c26d26cf16c4dec7c5">SVF::SVFG::getFormalINSVFGNodes</a></div><div class="ttdeci">FormalINSVFGNodeSet &amp; getFormalINSVFGNodes(const SVFFunction *fun)</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00213">SVFG.h:213</a></div></div>
178
179
  <div class="ttc" id="SVFGNode_8h_html"><div class="ttname"><a href="SVFGNode_8h.html">SVFGNode.h</a></div></div>
179
180
  <div class="ttc" id="classSVF_1_1SVFG_html_ad5c1415f488ec4412d5457262269eff3"><div class="ttname"><a href="classSVF_1_1SVFG.html#ad5c1415f488ec4412d5457262269eff3">SVF::SVFG::stat</a></div><div class="ttdeci">SVFGStat * stat</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00104">SVFG.h:104</a></div></div>
180
- <div class="ttc" id="classSVF_1_1SVFG_html_a287c337697eed7d92889bca0a0e370d7"><div class="ttname"><a href="classSVF_1_1SVFG.html#a287c337697eed7d92889bca0a0e370d7">SVF::SVFG::getFormalOUTSVFGNodes</a></div><div class="ttdeci">FormalOUTSVFGNodeSet &amp; getFormalOUTSVFGNodes(const SVFFunction *fun)</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00219">SVFG.h:219</a></div></div>
181
+ <div class="ttc" id="classSVF_1_1SVFG_html_a287c337697eed7d92889bca0a0e370d7"><div class="ttname"><a href="classSVF_1_1SVFG.html#a287c337697eed7d92889bca0a0e370d7">SVF::SVFG::getFormalOUTSVFGNodes</a></div><div class="ttdeci">FormalOUTSVFGNodeSet &amp; getFormalOUTSVFGNodes(const SVFFunction *fun)</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00218">SVFG.h:218</a></div></div>
181
182
  <div class="ttc" id="namespaceSVF_html_a03d88a0302bcd253387690f13f693f64"><div class="ttname"><a href="namespaceSVF.html#a03d88a0302bcd253387690f13f693f64">SVF::CallSiteID</a></div><div class="ttdeci">unsigned CallSiteID</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00058">SVFType.h:58</a></div></div>
182
183
  <div class="ttc" id="classSVF_1_1SVFG_html_a57629591037e16e57a0178d102a405f2"><div class="ttname"><a href="classSVF_1_1SVFG.html#a57629591037e16e57a0178d102a405f2">SVF::SVFG::addInterIndirectVFCallEdge</a></div><div class="ttdeci">SVFGEdge * addInterIndirectVFCallEdge(const ActualINSVFGNode *src, const FormalINSVFGNode *dst, CallSiteID csId)</div><div class="ttdoc">Add inter VF edge from callsite mu to function entry chi. </div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8cpp_source.html#l00543">SVFG.cpp:543</a></div></div>
183
184
  <div class="ttc" id="classSVF_1_1MSSAPHISVFGNode_html_a928a57d7f518c5af98a0245d9221e671"><div class="ttname"><a href="classSVF_1_1MSSAPHISVFGNode.html#a928a57d7f518c5af98a0245d9221e671">SVF::MSSAPHISVFGNode::setOpVer</a></div><div class="ttdeci">void setOpVer(u32_t pos, const MRVer *node)</div><div class="ttdef"><b>Definition:</b> <a href="SVFGNode_8h_source.html#l00305">SVFGNode.h:305</a></div></div>
@@ -185,39 +186,39 @@ $(function() {
185
186
  <div class="ttc" id="classSVF_1_1VFG_html_a25c2bbbc2e966e2aaa59a5b83363557a"><div class="ttname"><a href="classSVF_1_1VFG.html#a25c2bbbc2e966e2aaa59a5b83363557a">SVF::VFG::pag</a></div><div class="ttdeci">SVFIR * pag</div><div class="ttdef"><b>Definition:</b> <a href="VFG_8h_source.html#l00104">VFG.h:104</a></div></div>
186
187
  <div class="ttc" id="classSVF_1_1LoadVFGNode_html"><div class="ttname"><a href="classSVF_1_1LoadVFGNode.html">SVF::LoadVFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="VFGNode_8h_source.html#l00199">VFGNode.h:199</a></div></div>
187
188
  <div class="ttc" id="classSVF_1_1SVFGStat_html"><div class="ttname"><a href="classSVF_1_1SVFGStat.html">SVF::SVFGStat</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFGStat_8h_source.html#l00092">SVFGStat.h:92</a></div></div>
188
- <div class="ttc" id="classSVF_1_1SVFG_html_a1b9d1ad76785ae0eb07979aa75325640"><div class="ttname"><a href="classSVF_1_1SVFG.html#a1b9d1ad76785ae0eb07979aa75325640">SVF::SVFG::hasSVFGNode</a></div><div class="ttdeci">bool hasSVFGNode(NodeID id) const</div><div class="ttdoc">Whether has the SVFGNode. </div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00156">SVFG.h:156</a></div></div>
189
+ <div class="ttc" id="classSVF_1_1SVFG_html_a1b9d1ad76785ae0eb07979aa75325640"><div class="ttname"><a href="classSVF_1_1SVFG.html#a1b9d1ad76785ae0eb07979aa75325640">SVF::SVFG::hasSVFGNode</a></div><div class="ttdeci">bool hasSVFGNode(NodeID id) const</div><div class="ttdoc">Whether has the SVFGNode. </div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00155">SVFG.h:155</a></div></div>
189
190
  <div class="ttc" id="classSVF_1_1GenericEdge_html_ab47ca533c415841ef75456cbad439589"><div class="ttname"><a href="classSVF_1_1GenericEdge.html#ab47ca533c415841ef75456cbad439589">SVF::GenericEdge::getSrcNode</a></div><div class="ttdeci">NodeType * getSrcNode() const</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00091">GenericGraph.h:91</a></div></div>
190
191
  <div class="ttc" id="namespaceSVF_html_a54c5725186e66ead6faf53c10a288714"><div class="ttname"><a href="namespaceSVF.html#a54c5725186e66ead6faf53c10a288714">SVF::StoreSVFGNode</a></div><div class="ttdeci">StoreVFGNode StoreSVFGNode</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00053">SVFG.h:53</a></div></div>
191
192
  <div class="ttc" id="classSVF_1_1GenericGraph_html_a0a8831a5429005ff9d71adbd6bf3994f"><div class="ttname"><a href="classSVF_1_1GenericGraph.html#a0a8831a5429005ff9d71adbd6bf3994f">SVF::GenericGraph::addGNode</a></div><div class="ttdeci">void addGNode(NodeID id, NodeType *node)</div><div class="ttdoc">Add a Node. </div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00388">GenericGraph.h:388</a></div></div>
192
193
  <div class="ttc" id="classSVF_1_1SVFG_html_ac9666ae7266cf1a9c0a5f7d28b39d1e9"><div class="ttname"><a href="classSVF_1_1SVFG.html#ac9666ae7266cf1a9c0a5f7d28b39d1e9">SVF::SVFG::addInterIndirectVFRetEdge</a></div><div class="ttdeci">SVFGEdge * addInterIndirectVFRetEdge(const FormalOUTSVFGNode *src, const ActualOUTSVFGNode *dst, CallSiteID csId)</div><div class="ttdoc">Add inter VF edge from function exit mu to callsite chi. </div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8cpp_source.html#l00558">SVFG.cpp:558</a></div></div>
193
- <div class="ttc" id="classSVF_1_1SVFG_html_accd1cbd26c9b194971f3107a57a0ab2e"><div class="ttname"><a href="classSVF_1_1SVFG.html#accd1cbd26c9b194971f3107a57a0ab2e">SVF::SVFG::setDef</a></div><div class="ttdeci">void setDef(const PAGNode *pagNode, const SVFGNode *node)</div><div class="ttdoc">Given a PAGNode, set/get its def SVFG node (definition of top level pointers) </div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00346">SVFG.h:346</a></div></div>
194
+ <div class="ttc" id="classSVF_1_1SVFG_html_accd1cbd26c9b194971f3107a57a0ab2e"><div class="ttname"><a href="classSVF_1_1SVFG.html#accd1cbd26c9b194971f3107a57a0ab2e">SVF::SVFG::setDef</a></div><div class="ttdeci">void setDef(const PAGNode *pagNode, const SVFGNode *node)</div><div class="ttdoc">Given a PAGNode, set/get its def SVFG node (definition of top level pointers) </div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00345">SVFG.h:345</a></div></div>
194
195
  <div class="ttc" id="classSVF_1_1EntryCHI_html"><div class="ttname"><a href="classSVF_1_1EntryCHI.html">SVF::EntryCHI</a></div><div class="ttdef"><b>Definition:</b> <a href="MSSAMuChi_8h_source.html#l00578">MSSAMuChi.h:578</a></div></div>
195
196
  <div class="ttc" id="classSVF_1_1ActualRetVFGNode_html"><div class="ttname"><a href="classSVF_1_1ActualRetVFGNode.html">SVF::ActualRetVFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="VFGNode_8h_source.html#l00967">VFGNode.h:967</a></div></div>
196
- <div class="ttc" id="classSVF_1_1SVFG_html_a804824faa3a042cb1b63edd9e9eb7207"><div class="ttname"><a href="classSVF_1_1SVFG.html#a804824faa3a042cb1b63edd9e9eb7207">SVF::SVFG::addFormalOUTSVFGNode</a></div><div class="ttdeci">void addFormalOUTSVFGNode(const FunExitICFGNode *funExit, const MRVer *ver, const NodeID nodeId)</div><div class="ttdoc">Add memory Function return mu SVFG node. </div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00406">SVFG.h:406</a></div></div>
197
- <div class="ttc" id="classSVF_1_1SVFG_html_a68965c5a9cc5136aa0b593851c60ff12"><div class="ttname"><a href="classSVF_1_1SVFG.html#a68965c5a9cc5136aa0b593851c60ff12">SVF::SVFG::SVFG</a></div><div class="ttdeci">SVFG(MemSSA *mssa, VFGK k)</div><div class="ttdoc">Constructor. </div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8cpp_source.html#l00200">SVFG.cpp:200</a></div></div>
198
- <div class="ttc" id="classSVF_1_1SVFG_html_a21577bc4b4e55b23aa55083f5321b399"><div class="ttname"><a href="classSVF_1_1SVFG.html#a21577bc4b4e55b23aa55083f5321b399">SVF::SVFG::hasActualINSVFGNodes</a></div><div class="ttdeci">bool hasActualINSVFGNodes(const CallICFGNode *cs) const</div><div class="ttdoc">Has a SVFGNode. </div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00181">SVFG.h:181</a></div></div>
197
+ <div class="ttc" id="classSVF_1_1SVFG_html_a804824faa3a042cb1b63edd9e9eb7207"><div class="ttname"><a href="classSVF_1_1SVFG.html#a804824faa3a042cb1b63edd9e9eb7207">SVF::SVFG::addFormalOUTSVFGNode</a></div><div class="ttdeci">void addFormalOUTSVFGNode(const FunExitICFGNode *funExit, const MRVer *ver, const NodeID nodeId)</div><div class="ttdoc">Add memory Function return mu SVFG node. </div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00405">SVFG.h:405</a></div></div>
198
+ <div class="ttc" id="classSVF_1_1SVFG_html_a21577bc4b4e55b23aa55083f5321b399"><div class="ttname"><a href="classSVF_1_1SVFG.html#a21577bc4b4e55b23aa55083f5321b399">SVF::SVFG::hasActualINSVFGNodes</a></div><div class="ttdeci">bool hasActualINSVFGNodes(const CallICFGNode *cs) const</div><div class="ttdoc">Has a SVFGNode. </div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00180">SVFG.h:180</a></div></div>
199
199
  <div class="ttc" id="classSVF_1_1VFG_html_acb181d4f9faa40578c80e2018e2742b8"><div class="ttname"><a href="classSVF_1_1VFG.html#acb181d4f9faa40578c80e2018e2742b8">SVF::VFG::totalVFGNode</a></div><div class="ttdeci">NodeID totalVFGNode</div><div class="ttdef"><b>Definition:</b> <a href="VFG_8h_source.html#l00088">VFG.h:88</a></div></div>
200
- <div class="ttc" id="classSVF_1_1SVFG_html_a32378226c18a0b1e22271a2338a635f6"><div class="ttname"><a href="classSVF_1_1SVFG.html#a32378226c18a0b1e22271a2338a635f6">SVF::SVFG::hasFuncRetMu</a></div><div class="ttdeci">bool hasFuncRetMu(const SVFFunction *func) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00447">SVFG.h:447</a></div></div>
200
+ <div class="ttc" id="classSVF_1_1SVFG_html_a32378226c18a0b1e22271a2338a635f6"><div class="ttname"><a href="classSVF_1_1SVFG.html#a32378226c18a0b1e22271a2338a635f6">SVF::SVFG::hasFuncRetMu</a></div><div class="ttdeci">bool hasFuncRetMu(const SVFFunction *func) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00446">SVFG.h:446</a></div></div>
201
201
  <div class="ttc" id="classSVF_1_1SVFG_html_a7f4deffe7e13352b8c13eab110c834cc"><div class="ttname"><a href="classSVF_1_1SVFG.html#a7f4deffe7e13352b8c13eab110c834cc">SVF::SVFG::MU</a></div><div class="ttdeci">MemSSA::MU MU</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00089">SVFG.h:89</a></div></div>
202
- <div class="ttc" id="classSVF_1_1SVFG_html_ab4690114393820f580e805d2e0d6a41d"><div class="ttname"><a href="classSVF_1_1SVFG.html#ab4690114393820f580e805d2e0d6a41d">SVF::SVFG::addFormalINSVFGNode</a></div><div class="ttdeci">void addFormalINSVFGNode(const FunEntryICFGNode *funEntry, const MRVer *resVer, const NodeID nodeId)</div><div class="ttdoc">Add memory Function entry chi SVFG node. </div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00397">SVFG.h:397</a></div></div>
202
+ <div class="ttc" id="classSVF_1_1SVFG_html_ab4690114393820f580e805d2e0d6a41d"><div class="ttname"><a href="classSVF_1_1SVFG.html#ab4690114393820f580e805d2e0d6a41d">SVF::SVFG::addFormalINSVFGNode</a></div><div class="ttdeci">void addFormalINSVFGNode(const FunEntryICFGNode *funEntry, const MRVer *resVer, const NodeID nodeId)</div><div class="ttdoc">Add memory Function entry chi SVFG node. </div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00396">SVFG.h:396</a></div></div>
203
203
  <div class="ttc" id="classSVF_1_1VFG_html_ab5b63b4f6317bfb5875f2b977bcf26a4"><div class="ttname"><a href="classSVF_1_1VFG.html#ab5b63b4f6317bfb5875f2b977bcf26a4">SVF::VFG::hasDef</a></div><div class="ttdeci">bool hasDef(const PAGNode *pagNode) const</div><div class="ttdef"><b>Definition:</b> <a href="VFG_8h_source.html#l00426">VFG.h:426</a></div></div>
204
204
  <div class="ttc" id="classSVF_1_1SVFG_html_a3d04ce1429b1edf90c9c0833e3b5a4a9"><div class="ttname"><a href="classSVF_1_1SVFG.html#a3d04ce1429b1edf90c9c0833e3b5a4a9">SVF::SVFG::SVFGNodeIDToNodeMapTy</a></div><div class="ttdeci">VFGNodeIDToNodeMapTy SVFGNodeIDToNodeMapTy</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00075">SVFG.h:75</a></div></div>
205
- <div class="ttc" id="classSVF_1_1SVFG_html_abd917826bf50ed409a307ce00562c97d"><div class="ttname"><a href="classSVF_1_1SVFG.html#abd917826bf50ed409a307ce00562c97d">SVF::SVFG::getDef</a></div><div class="ttdeci">NodeID getDef(const PAGNode *pagNode) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00350">SVFG.h:350</a></div></div>
205
+ <div class="ttc" id="classSVF_1_1SVFG_html_abd917826bf50ed409a307ce00562c97d"><div class="ttname"><a href="classSVF_1_1SVFG.html#abd917826bf50ed409a307ce00562c97d">SVF::SVFG::getDef</a></div><div class="ttdeci">NodeID getDef(const PAGNode *pagNode) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00349">SVFG.h:349</a></div></div>
206
206
  <div class="ttc" id="classSVF_1_1SVFG_html_ac4c65501e9beba5495a57dd469f78e5b"><div class="ttname"><a href="classSVF_1_1SVFG.html#ac4c65501e9beba5495a57dd469f78e5b">SVF::SVFG::FunctionToFormalOUTsMapTy</a></div><div class="ttdeci">Map&lt; const SVFFunction *, FormalOUTSVFGNodeSet &gt; FunctionToFormalOUTsMapTy</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00085">SVFG.h:85</a></div></div>
207
- <div class="ttc" id="classSVF_1_1SVFG_html_afbaf925e1e165f75161999229fa5f782"><div class="ttname"><a href="classSVF_1_1SVFG.html#afbaf925e1e165f75161999229fa5f782">SVF::SVFG::getInterVFEdgeAtIndCSFromAInToFIn</a></div><div class="ttdeci">virtual void getInterVFEdgeAtIndCSFromAInToFIn(ActualINSVFGNode *actualIn, const SVFFunction *callee, SVFGEdgeSetTy &amp;edges)</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00322">SVFG.h:322</a></div></div>
207
+ <div class="ttc" id="classSVF_1_1SVFG_html_afbaf925e1e165f75161999229fa5f782"><div class="ttname"><a href="classSVF_1_1SVFG.html#afbaf925e1e165f75161999229fa5f782">SVF::SVFG::getInterVFEdgeAtIndCSFromAInToFIn</a></div><div class="ttdeci">virtual void getInterVFEdgeAtIndCSFromAInToFIn(ActualINSVFGNode *actualIn, const SVFFunction *callee, SVFGEdgeSetTy &amp;edges)</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00321">SVFG.h:321</a></div></div>
208
208
  <div class="ttc" id="classSVF_1_1VFGNode_html_a3c558955f60c237c558d8faafed781e8"><div class="ttname"><a href="classSVF_1_1VFGNode.html#a3c558955f60c237c558d8faafed781e8">SVF::VFGNode::const_iterator</a></div><div class="ttdeci">VFGEdge::VFGEdgeSetTy::const_iterator const_iterator</div><div class="ttdef"><b>Definition:</b> <a href="VFGNode_8h_source.html#l00060">VFGNode.h:60</a></div></div>
209
- <div class="ttc" id="classSVF_1_1SVFG_html_a23ca21b90feca5e7d00c9ba9f489374a"><div class="ttname"><a href="classSVF_1_1SVFG.html#a23ca21b90feca5e7d00c9ba9f489374a">SVF::SVFG::hasFuncEntryChi</a></div><div class="ttdeci">bool hasFuncEntryChi(const SVFFunction *func) const</div><div class="ttdoc">Has function for EntryCHI/RetMU/CallCHI/CallMU. </div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00443">SVFG.h:443</a></div></div>
209
+ <div class="ttc" id="classSVF_1_1SVFG_html_a23ca21b90feca5e7d00c9ba9f489374a"><div class="ttname"><a href="classSVF_1_1SVFG.html#a23ca21b90feca5e7d00c9ba9f489374a">SVF::SVFG::hasFuncEntryChi</a></div><div class="ttdeci">bool hasFuncEntryChi(const SVFFunction *func) const</div><div class="ttdoc">Has function for EntryCHI/RetMU/CallCHI/CallMU. </div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00442">SVFG.h:442</a></div></div>
210
210
  <div class="ttc" id="classSVF_1_1SVFG_html_a2f6ed8a9f14657abc1e2a89247a84b99"><div class="ttname"><a href="classSVF_1_1SVFG.html#a2f6ed8a9f14657abc1e2a89247a84b99">SVF::SVFG::ActualOUTSVFGNodeSet</a></div><div class="ttdeci">NodeBS ActualOUTSVFGNodeSet</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00079">SVFG.h:79</a></div></div>
211
- <div class="ttc" id="classSVF_1_1SVFG_html_ad9cc1581261182b56ae232d9a9b13296"><div class="ttname"><a href="classSVF_1_1SVFG.html#ad9cc1581261182b56ae232d9a9b13296">SVF::SVFG::hasCallSiteChi</a></div><div class="ttdeci">bool hasCallSiteChi(const CallICFGNode *cs) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00451">SVFG.h:451</a></div></div>
211
+ <div class="ttc" id="classSVF_1_1SVFG_html_ad9cc1581261182b56ae232d9a9b13296"><div class="ttname"><a href="classSVF_1_1SVFG.html#ad9cc1581261182b56ae232d9a9b13296">SVF::SVFG::hasCallSiteChi</a></div><div class="ttdeci">bool hasCallSiteChi(const CallICFGNode *cs) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00450">SVFG.h:450</a></div></div>
212
212
  <div class="ttc" id="classSVF_1_1SVFG_html_a7c4e9c0fad457a2dc81a85f96fcec9ec"><div class="ttname"><a href="classSVF_1_1SVFG.html#a7c4e9c0fad457a2dc81a85f96fcec9ec">SVF::SVFG::CallSiteToActualOUTsMapTy</a></div><div class="ttdeci">Map&lt; const CallICFGNode *, ActualOUTSVFGNodeSet &gt; CallSiteToActualOUTsMapTy</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00083">SVFG.h:83</a></div></div>
213
213
  <div class="ttc" id="namespaceSVF_html_a11c50c2f81327753b3ff3ffdbe356812"><div class="ttname"><a href="namespaceSVF.html#a11c50c2f81327753b3ff3ffdbe356812">SVF::ActualParmSVFGNode</a></div><div class="ttdeci">ActualParmVFGNode ActualParmSVFGNode</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00044">SVFG.h:44</a></div></div>
214
- <div class="ttc" id="classSVF_1_1SVFG_html_a926c79813d5cfbd16201832024b95190"><div class="ttname"><a href="classSVF_1_1SVFG.html#a926c79813d5cfbd16201832024b95190">SVF::SVFG::hasDef</a></div><div class="ttdeci">bool hasDef(const PAGNode *pagNode) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00354">SVFG.h:354</a></div></div>
214
+ <div class="ttc" id="classSVF_1_1SVFG_html_a926c79813d5cfbd16201832024b95190"><div class="ttname"><a href="classSVF_1_1SVFG.html#a926c79813d5cfbd16201832024b95190">SVF::SVFG::hasDef</a></div><div class="ttdeci">bool hasDef(const PAGNode *pagNode) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00353">SVFG.h:353</a></div></div>
215
215
  <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>
216
- <div class="ttc" id="classSVF_1_1SparseBitVector_html"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html">SVF::SparseBitVector</a></div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00462">SparseBitVector.h:462</a></div></div>
216
+ <div class="ttc" id="classSVF_1_1SparseBitVector_html"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html">SVF::SparseBitVector</a></div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00454">SparseBitVector.h:454</a></div></div>
217
217
  <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>
218
- <div class="ttc" id="structSVF_1_1GenericGraphTraits_3_01SVF_1_1SVFG_01_5_01_4_html_a0e3ed0946d46830533f184f12428bbb0"><div class="ttname"><a href="structSVF_1_1GenericGraphTraits_3_01SVF_1_1SVFG_01_5_01_4.html#a0e3ed0946d46830533f184f12428bbb0">SVF::GenericGraphTraits&lt; SVF::SVFG * &gt;::NodeRef</a></div><div class="ttdeci">SVF::SVFGNode * NodeRef</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00480">SVFG.h:480</a></div></div>
218
+ <div class="ttc" id="structSVF_1_1GenericGraphTraits_3_01SVF_1_1SVFG_01_5_01_4_html_a0e3ed0946d46830533f184f12428bbb0"><div class="ttname"><a href="structSVF_1_1GenericGraphTraits_3_01SVF_1_1SVFG_01_5_01_4.html#a0e3ed0946d46830533f184f12428bbb0">SVF::GenericGraphTraits&lt; SVF::SVFG * &gt;::NodeRef</a></div><div class="ttdeci">SVF::SVFGNode * NodeRef</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00479">SVFG.h:479</a></div></div>
219
219
  <div class="ttc" id="classSVF_1_1SVFG_html_aefca97f043b3e220ef6012a049b83fdf"><div class="ttname"><a href="classSVF_1_1SVFG.html#aefca97f043b3e220ef6012a049b83fdf">SVF::SVFG::connectCallerAndCallee</a></div><div class="ttdeci">virtual void connectCallerAndCallee(const CallICFGNode *cs, const SVFFunction *callee, SVFGEdgeSetTy &amp;edges)</div><div class="ttdoc">Connect SVFG nodes between caller and callee for indirect call site. </div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8cpp_source.html#l00656">SVFG.cpp:656</a></div></div>
220
- <div class="ttc" id="classSVF_1_1SVFG_html_ab6c337637ccc9bbf0bcc7153b427f7ca"><div class="ttname"><a href="classSVF_1_1SVFG.html#ab6c337637ccc9bbf0bcc7153b427f7ca">SVF::SVFG::getPTA</a></div><div class="ttdeci">PointerAnalysis * getPTA() const</div><div class="ttdoc">Get Pointer Analysis. </div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00144">SVFG.h:144</a></div></div>
220
+ <div class="ttc" id="classSVF_1_1SVFG_html_ab6c337637ccc9bbf0bcc7153b427f7ca"><div class="ttname"><a href="classSVF_1_1SVFG.html#ab6c337637ccc9bbf0bcc7153b427f7ca">SVF::SVFG::getPTA</a></div><div class="ttdeci">PointerAnalysis * getPTA() const</div><div class="ttdoc">Get Pointer Analysis. </div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00143">SVFG.h:143</a></div></div>
221
+ <div class="ttc" id="classSVF_1_1SVFG_html_a07d48490eda50ee6d31f295150409cf3"><div class="ttname"><a href="classSVF_1_1SVFG.html#a07d48490eda50ee6d31f295150409cf3">SVF::SVFG::SVFG</a></div><div class="ttdeci">SVFG(std::unique_ptr&lt; MemSSA &gt; mssa, VFGK k)</div><div class="ttdoc">Constructor. </div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8cpp_source.html#l00200">SVFG.cpp:200</a></div></div>
221
222
  <div class="ttc" id="namespaceSVF_html_ae5987da3ffd5681e8ec4ef14ba54588e"><div class="ttname"><a href="namespaceSVF.html#ae5987da3ffd5681e8ec4ef14ba54588e">SVF::FormalRetSVFGNode</a></div><div class="ttdeci">FormalRetVFGNode FormalRetSVFGNode</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00047">SVFG.h:47</a></div></div>
222
223
  <div class="ttc" id="classSVF_1_1SVFG_html_a82a93d9b7fcf1938e3090a0826a1ca7e"><div class="ttname"><a href="classSVF_1_1SVFG.html#a82a93d9b7fcf1938e3090a0826a1ca7e">SVF::SVFG::destroy</a></div><div class="ttdeci">void destroy()</div><div class="ttdoc">Clean up memory. </div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8cpp_source.html#l00208">SVFG.cpp:208</a></div></div>
223
224
  <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="AbstractValue_8h_source.html#l00037">AbstractValue.h:37</a></div></div>
@@ -226,17 +227,16 @@ $(function() {
226
227
  <div class="ttc" id="classSVF_1_1GenericNode_html_ac3e55ef37aefb411ea4c87b1aa3b1895"><div class="ttname"><a href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">SVF::GenericNode::getId</a></div><div class="ttdeci">NodeID getId() const</div><div class="ttdoc">Get ID. </div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00171">GenericGraph.h:171</a></div></div>
227
228
  <div class="ttc" id="classSVF_1_1SVFG_html_ad14cdbb3f1df1f716aa03b4d39f4e52b"><div class="ttname"><a href="classSVF_1_1SVFG.html#ad14cdbb3f1df1f716aa03b4d39f4e52b">SVF::SVFG::STORECHI</a></div><div class="ttdeci">MemSSA::STORECHI STORECHI</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00092">SVFG.h:92</a></div></div>
228
229
  <div class="ttc" id="classSVF_1_1VFG_html_a7343f970332391634f79b2023bba6650"><div class="ttname"><a href="classSVF_1_1VFG.html#a7343f970332391634f79b2023bba6650">SVF::VFG::getDef</a></div><div class="ttdeci">NodeID getDef(const PAGNode *pagNode) const</div><div class="ttdef"><b>Definition:</b> <a href="VFG_8h_source.html#l00420">VFG.h:420</a></div></div>
229
- <div class="ttc" id="classSVF_1_1SVFG_html_a402dfe93b8692be453c4f76d048b690a"><div class="ttname"><a href="classSVF_1_1SVFG.html#a402dfe93b8692be453c4f76d048b690a">SVF::SVFG::connectFOutAndAOut</a></div><div class="ttdeci">virtual void connectFOutAndAOut(const FormalOUTSVFGNode *formalOut, const ActualOUTSVFGNode *actualOut, CallSiteID csId, SVFGEdgeSetTy &amp;edges)</div><div class="ttdoc">Connect formal-out and actual-out. </div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00294">SVFG.h:294</a></div></div>
230
+ <div class="ttc" id="classSVF_1_1SVFG_html_a402dfe93b8692be453c4f76d048b690a"><div class="ttname"><a href="classSVF_1_1SVFG.html#a402dfe93b8692be453c4f76d048b690a">SVF::SVFG::connectFOutAndAOut</a></div><div class="ttdeci">virtual void connectFOutAndAOut(const FormalOUTSVFGNode *formalOut, const ActualOUTSVFGNode *actualOut, CallSiteID csId, SVFGEdgeSetTy &amp;edges)</div><div class="ttdoc">Connect formal-out and actual-out. </div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00293">SVFG.h:293</a></div></div>
230
231
  <div class="ttc" id="classSVF_1_1SVFGBuilder_html"><div class="ttname"><a href="classSVF_1_1SVFGBuilder.html">SVF::SVFGBuilder</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFGBuilder_8h_source.html#l00042">SVFGBuilder.h:42</a></div></div>
231
232
  <div class="ttc" id="classSVF_1_1ICFG_html_a0dca4655c2f6112a5be1f921b8e81076"><div class="ttname"><a href="classSVF_1_1ICFG.html#a0dca4655c2f6112a5be1f921b8e81076">SVF::ICFG::getFunEntryICFGNode</a></div><div class="ttdeci">FunEntryICFGNode * getFunEntryICFGNode(const SVFFunction *fun)</div><div class="ttdoc">Add a function entry node. </div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8cpp_source.html#l00269">ICFG.cpp:269</a></div></div>
232
233
  <div class="ttc" id="classSVF_1_1StmtVFGNode_html"><div class="ttname"><a href="classSVF_1_1StmtVFGNode.html">SVF::StmtVFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="VFGNode_8h_source.html#l00116">VFGNode.h:116</a></div></div>
233
234
  <div class="ttc" id="classSVF_1_1FunExitICFGNode_html"><div class="ttname"><a href="classSVF_1_1FunExitICFGNode.html">SVF::FunExitICFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00308">ICFGNode.h:308</a></div></div>
234
- <div class="ttc" id="classSVF_1_1SVFG_html_a6f07410ee34e4bf1079e3b5902c81d28"><div class="ttname"><a href="classSVF_1_1SVFG.html#a6f07410ee34e4bf1079e3b5902c81d28">SVF::SVFG::mssa</a></div><div class="ttdeci">MemSSA * mssa</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00105">SVFG.h:105</a></div></div>
235
235
  <div class="ttc" id="classSVF_1_1SVFG_html_a8843ab4a4608f7f5f46f68ad31314c07"><div class="ttname"><a href="classSVF_1_1SVFG.html#a8843ab4a4608f7f5f46f68ad31314c07">SVF::SVFG::CHISet</a></div><div class="ttdeci">MemSSA::CHISet CHISet</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00087">SVFG.h:87</a></div></div>
236
236
  <div class="ttc" id="classSVF_1_1SVFG_html_ad03f0064d3a1ff397b35a606304a9c80"><div class="ttname"><a href="classSVF_1_1SVFG.html#ad03f0064d3a1ff397b35a606304a9c80">SVF::SVFG::addIntraIndirectVFEdge</a></div><div class="ttdeci">SVFGEdge * addIntraIndirectVFEdge(NodeID srcId, NodeID dstId, const NodeBS &amp;cpts)</div><div class="ttdoc">Add indirect def-use edges of a memory region between two statements,. </div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8cpp_source.html#l00461">SVFG.cpp:461</a></div></div>
237
237
  <div class="ttc" id="classSVF_1_1CallCHI_html"><div class="ttname"><a href="classSVF_1_1CallCHI.html">SVF::CallCHI</a></div><div class="ttdef"><b>Definition:</b> <a href="MSSAMuChi_8h_source.html#l00521">MSSAMuChi.h:521</a></div></div>
238
238
  <div class="ttc" id="classSVF_1_1SVFG_html_a0d6cfa496e6885fe31b6b7a651fa01a8"><div class="ttname"><a href="classSVF_1_1SVFG.html#a0d6cfa496e6885fe31b6b7a651fa01a8">SVF::SVFG::pta</a></div><div class="ttdeci">PointerAnalysis * pta</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00106">SVFG.h:106</a></div></div>
239
- <div class="ttc" id="classSVF_1_1SVFG_html_a842f6f2325c9e93ea96367e9cf624ee8"><div class="ttname"><a href="classSVF_1_1SVFG.html#a842f6f2325c9e93ea96367e9cf624ee8">SVF::SVFG::hasCallSiteMu</a></div><div class="ttdeci">bool hasCallSiteMu(const CallICFGNode *cs) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00455">SVFG.h:455</a></div></div>
239
+ <div class="ttc" id="classSVF_1_1SVFG_html_a842f6f2325c9e93ea96367e9cf624ee8"><div class="ttname"><a href="classSVF_1_1SVFG.html#a842f6f2325c9e93ea96367e9cf624ee8">SVF::SVFG::hasCallSiteMu</a></div><div class="ttdeci">bool hasCallSiteMu(const CallICFGNode *cs) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00454">SVFG.h:454</a></div></div>
240
240
  <div class="ttc" id="classSVF_1_1FormalParmVFGNode_html"><div class="ttname"><a href="classSVF_1_1FormalParmVFGNode.html">SVF::FormalParmVFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="VFGNode_8h_source.html#l00898">VFGNode.h:898</a></div></div>
241
241
  <div class="ttc" id="classSVF_1_1SVFG_html_a49fc2c505720d5cfa57231529d1c7534"><div class="ttname"><a href="classSVF_1_1SVFG.html#a49fc2c505720d5cfa57231529d1c7534">SVF::SVFG::getInterVFEdgesForIndirectCallSite</a></div><div class="ttdeci">void getInterVFEdgesForIndirectCallSite(const CallICFGNode *cs, const SVFFunction *callee, SVFGEdgeSetTy &amp;edges)</div><div class="ttdoc">Get all inter value flow edges of a indirect call site. </div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8cpp_source.html#l00582">SVFG.cpp:582</a></div></div>
242
242
  <div class="ttc" id="classSVF_1_1VFG_html_a915fa50effaeea10716b86528b15c6dc"><div class="ttname"><a href="classSVF_1_1VFG.html#a915fa50effaeea10716b86528b15c6dc">SVF::VFG::getVFGNode</a></div><div class="ttdeci">VFGNode * getVFGNode(NodeID id) const</div><div class="ttdoc">Get a VFG node. </div><div class="ttdef"><b>Definition:</b> <a href="VFG_8h_source.html#l00145">VFG.h:145</a></div></div>
@@ -245,13 +245,13 @@ $(function() {
245
245
  <div class="ttc" id="classSVF_1_1SVFG_html_a7d58f9fe97071ec9936174689cb99301"><div class="ttname"><a href="classSVF_1_1SVFG.html#a7d58f9fe97071ec9936174689cb99301">SVF::SVFG::funToFormalOUTMap</a></div><div class="ttdeci">FunctionToFormalOUTsMapTy funToFormalOUTMap</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00103">SVFG.h:103</a></div></div>
246
246
  <div class="ttc" id="classSVF_1_1GenericNode_html_a19a3366fd8a58290d0c740c46c3dcb3d"><div class="ttname"><a href="classSVF_1_1GenericNode.html#a19a3366fd8a58290d0c740c46c3dcb3d">SVF::GenericNode::OutEdgeEnd</a></div><div class="ttdeci">iterator OutEdgeEnd()</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00212">GenericGraph.h:212</a></div></div>
247
247
  <div class="ttc" id="classSVF_1_1FormalRetVFGNode_html"><div class="ttname"><a href="classSVF_1_1FormalRetVFGNode.html">SVF::FormalRetVFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="VFGNode_8h_source.html#l01025">VFGNode.h:1025</a></div></div>
248
- <div class="ttc" id="classSVF_1_1SVFG_html_a7a88391e0c2cf8a57238dec32c2474a3"><div class="ttname"><a href="classSVF_1_1SVFG.html#a7a88391e0c2cf8a57238dec32c2474a3">SVF::SVFG::getInterVFEdgeAtIndCSFromFOutToAOut</a></div><div class="ttdeci">virtual void getInterVFEdgeAtIndCSFromFOutToAOut(ActualOUTSVFGNode *actualOut, const SVFFunction *callee, SVFGEdgeSetTy &amp;edges)</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00332">SVFG.h:332</a></div></div>
249
- <div class="ttc" id="classSVF_1_1SVFG_html_a49a910bc4ea6e98d1584e74a018badc9"><div class="ttname"><a href="classSVF_1_1SVFG.html#a49a910bc4ea6e98d1584e74a018badc9">SVF::SVFG::getMSSA</a></div><div class="ttdeci">MemSSA * getMSSA() const</div><div class="ttdoc">Get SVFG memory SSA. </div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00138">SVFG.h:138</a></div></div>
248
+ <div class="ttc" id="classSVF_1_1SVFG_html_a7a88391e0c2cf8a57238dec32c2474a3"><div class="ttname"><a href="classSVF_1_1SVFG.html#a7a88391e0c2cf8a57238dec32c2474a3">SVF::SVFG::getInterVFEdgeAtIndCSFromFOutToAOut</a></div><div class="ttdeci">virtual void getInterVFEdgeAtIndCSFromFOutToAOut(ActualOUTSVFGNode *actualOut, const SVFFunction *callee, SVFGEdgeSetTy &amp;edges)</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00331">SVFG.h:331</a></div></div>
249
+ <div class="ttc" id="classSVF_1_1SVFG_html_a49a910bc4ea6e98d1584e74a018badc9"><div class="ttname"><a href="classSVF_1_1SVFG.html#a49a910bc4ea6e98d1584e74a018badc9">SVF::SVFG::getMSSA</a></div><div class="ttdeci">MemSSA * getMSSA() const</div><div class="ttdoc">Get SVFG memory SSA. </div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00137">SVFG.h:137</a></div></div>
250
250
  <div class="ttc" id="classSVF_1_1SVFG_html_acd9fd6597e5dedf3c14a430830c7dd08"><div class="ttname"><a href="classSVF_1_1SVFG.html#acd9fd6597e5dedf3c14a430830c7dd08">SVF::SVFG::CALLMU</a></div><div class="ttdeci">MemSSA::CALLMU CALLMU</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00096">SVFG.h:96</a></div></div>
251
251
  <div class="ttc" id="classSVF_1_1SVFG_html_ad189e45b0c810e68566ccc3bdb3f2e59"><div class="ttname"><a href="classSVF_1_1SVFG.html#ad189e45b0c810e68566ccc3bdb3f2e59">SVF::SVFG::isCallSiteRetSVFGNode</a></div><div class="ttdeci">const CallICFGNode * isCallSiteRetSVFGNode(const SVFGNode *node) const</div><div class="ttdoc">Whether a node is callsite return SVFGNode. </div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8cpp_source.html#l00730">SVFG.cpp:730</a></div></div>
252
252
  <div class="ttc" id="classSVF_1_1MemSSA_html_a8a5d3597f3dba9744e170cc8c32bf25f"><div class="ttname"><a href="classSVF_1_1MemSSA.html#a8a5d3597f3dba9744e170cc8c32bf25f">SVF::MemSSA::PHISet</a></div><div class="ttdeci">Set&lt; PHI * &gt; PHISet</div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00072">MemSSA.h:72</a></div></div>
253
- <div class="ttc" id="classSVF_1_1SVFG_html_a88e1f6f77421c5274ceeb14928bdcb43"><div class="ttname"><a href="classSVF_1_1SVFG.html#a88e1f6f77421c5274ceeb14928bdcb43">SVF::SVFG::addSVFGNode</a></div><div class="ttdeci">virtual void addSVFGNode(SVFGNode *node, ICFGNode *icfgNode)</div><div class="ttdoc">Add SVFG node. </div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00391">SVFG.h:391</a></div></div>
254
- <div class="ttc" id="classSVF_1_1SVFIR_html_aa1943d53e75aef9b014953143c6894da"><div class="ttname"><a href="classSVF_1_1SVFIR.html#aa1943d53e75aef9b014953143c6894da">SVF::SVFIR::getICFG</a></div><div class="ttdeci">ICFG * getICFG()</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00165">SVFIR.h:165</a></div></div>
253
+ <div class="ttc" id="classSVF_1_1SVFG_html_a88e1f6f77421c5274ceeb14928bdcb43"><div class="ttname"><a href="classSVF_1_1SVFG.html#a88e1f6f77421c5274ceeb14928bdcb43">SVF::SVFG::addSVFGNode</a></div><div class="ttdeci">virtual void addSVFGNode(SVFGNode *node, ICFGNode *icfgNode)</div><div class="ttdoc">Add SVFG node. </div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00390">SVFG.h:390</a></div></div>
254
+ <div class="ttc" id="classSVF_1_1SVFIR_html_aa1943d53e75aef9b014953143c6894da"><div class="ttname"><a href="classSVF_1_1SVFIR.html#aa1943d53e75aef9b014953143c6894da">SVF::SVFIR::getICFG</a></div><div class="ttdeci">ICFG * getICFG()</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00163">SVFIR.h:163</a></div></div>
255
255
  <div class="ttc" id="classSVF_1_1SVFG_html_acb7262c3b9161c77eb1b491048152fb0"><div class="ttname"><a href="classSVF_1_1SVFG.html#acb7262c3b9161c77eb1b491048152fb0">SVF::SVFG::FormalOUTSVFGNodeSet</a></div><div class="ttdeci">NodeBS FormalOUTSVFGNodeSet</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00081">SVFG.h:81</a></div></div>
256
256
  <div class="ttc" id="classSVF_1_1VFG_html_ac2e2f555975063da3fa1932ac35802c6"><div class="ttname"><a href="classSVF_1_1VFG.html#ac2e2f555975063da3fa1932ac35802c6">SVF::VFG::VFGK</a></div><div class="ttdeci">VFGK</div><div class="ttdoc">VFG kind. </div><div class="ttdef"><b>Definition:</b> <a href="VFG_8h_source.html#l00055">VFG.h:55</a></div></div>
257
257
  <div class="ttc" id="classSVF_1_1NullPtrVFGNode_html"><div class="ttname"><a href="classSVF_1_1NullPtrVFGNode.html">SVF::NullPtrVFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="VFGNode_8h_source.html#l01154">VFGNode.h:1154</a></div></div>
@@ -263,15 +263,15 @@ $(function() {
263
263
  <div class="ttc" id="classSVF_1_1MSSACHI_html"><div class="ttname"><a href="classSVF_1_1MSSACHI.html">SVF::MSSACHI</a></div><div class="ttdef"><b>Definition:</b> <a href="MSSAMuChi_8h_source.html#l00396">MSSAMuChi.h:396</a></div></div>
264
264
  <div class="ttc" id="classSVF_1_1SVFG_html_ac84d3749671f177b14749a825e36efe3"><div class="ttname"><a href="classSVF_1_1SVFG.html#ac84d3749671f177b14749a825e36efe3">SVF::SVFG::MSSAVarToDefMapTy</a></div><div class="ttdeci">Map&lt; const MRVer *, NodeID &gt; MSSAVarToDefMapTy</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00077">SVFG.h:77</a></div></div>
265
265
  <div class="ttc" id="namespaceSVF_html_aa4745cf70b26e17d59752356f0b19dd9"><div class="ttname"><a href="namespaceSVF.html#aa4745cf70b26e17d59752356f0b19dd9">SVF::SVFGEdge</a></div><div class="ttdeci">VFGEdge SVFGEdge</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00040">SVFG.h:40</a></div></div>
266
- <div class="ttc" id="classSVF_1_1SVFG_html_ac9ab2a95cd7a09bbe4b4aa3e6fafaf62"><div class="ttname"><a href="classSVF_1_1SVFG.html#ac9ab2a95cd7a09bbe4b4aa3e6fafaf62">SVF::SVFG::connectAInAndFIn</a></div><div class="ttdeci">virtual void connectAInAndFIn(const ActualINSVFGNode *actualIn, const FormalINSVFGNode *formalIn, CallSiteID csId, SVFGEdgeSetTy &amp;edges)</div><div class="ttdoc">Connect SVFG nodes between caller and callee for indirect call site. </div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00287">SVFG.h:287</a></div></div>
266
+ <div class="ttc" id="classSVF_1_1SVFG_html_ac9ab2a95cd7a09bbe4b4aa3e6fafaf62"><div class="ttname"><a href="classSVF_1_1SVFG.html#ac9ab2a95cd7a09bbe4b4aa3e6fafaf62">SVF::SVFG::connectAInAndFIn</a></div><div class="ttdeci">virtual void connectAInAndFIn(const ActualINSVFGNode *actualIn, const FormalINSVFGNode *formalIn, CallSiteID csId, SVFGEdgeSetTy &amp;edges)</div><div class="ttdoc">Connect SVFG nodes between caller and callee for indirect call site. </div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00286">SVFG.h:286</a></div></div>
267
267
  <div class="ttc" id="namespaceSVF_html_ad772e1586e369943f37c22641e93e941"><div class="ttname"><a href="namespaceSVF.html#ad772e1586e369943f37c22641e93e941">SVF::IntraPHISVFGNode</a></div><div class="ttdeci">IntraPHIVFGNode IntraPHISVFGNode</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00057">SVFG.h:57</a></div></div>
268
268
  <div class="ttc" id="classSVF_1_1DummyVersionPropSVFGNode_html"><div class="ttname"><a href="classSVF_1_1DummyVersionPropSVFGNode.html">SVF::DummyVersionPropSVFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFGNode_8h_source.html#l00469">SVFGNode.h:469</a></div></div>
269
269
  <div class="ttc" id="namespaceSVF_html_a3ce49be3724e1e8423ccdfa726fbf6c8"><div class="ttname"><a href="namespaceSVF.html#a3ce49be3724e1e8423ccdfa726fbf6c8">SVF::LoadSVFGNode</a></div><div class="ttdeci">LoadVFGNode LoadSVFGNode</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00054">SVFG.h:54</a></div></div>
270
270
  <div class="ttc" id="classSVF_1_1PointerAnalysis_html"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html">SVF::PointerAnalysis</a></div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00058">PointerAnalysis.h:58</a></div></div>
271
271
  <div class="ttc" id="classSVF_1_1VFGNode_html"><div class="ttname"><a href="classSVF_1_1VFGNode.html">SVF::VFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="VFGNode_8h_source.html#l00046">VFGNode.h:46</a></div></div>
272
- <div class="ttc" id="classSVF_1_1SVFG_html_ab2b969b7d5922427622dd875e6b8fe14"><div class="ttname"><a href="classSVF_1_1SVFG.html#ab2b969b7d5922427622dd875e6b8fe14">SVF::SVFG::getInterVFEdgeAtIndCSFromFRToAR</a></div><div class="ttdeci">virtual void getInterVFEdgeAtIndCSFromFRToAR(const PAGNode *fun_ret, const PAGNode *cs_ret, CallSiteID csId, SVFGEdgeSetTy &amp;edges)</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00313">SVFG.h:313</a></div></div>
272
+ <div class="ttc" id="classSVF_1_1SVFG_html_ab2b969b7d5922427622dd875e6b8fe14"><div class="ttname"><a href="classSVF_1_1SVFG.html#ab2b969b7d5922427622dd875e6b8fe14">SVF::SVFG::getInterVFEdgeAtIndCSFromFRToAR</a></div><div class="ttdeci">virtual void getInterVFEdgeAtIndCSFromFRToAR(const PAGNode *fun_ret, const PAGNode *cs_ret, CallSiteID csId, SVFGEdgeSetTy &amp;edges)</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00312">SVFG.h:312</a></div></div>
273
273
  <div class="ttc" id="classSVF_1_1InterPHIVFGNode_html"><div class="ttname"><a href="classSVF_1_1InterPHIVFGNode.html">SVF::InterPHIVFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="VFGNode_8h_source.html#l01091">VFGNode.h:1091</a></div></div>
274
- <div class="ttc" id="classSVF_1_1SVFG_html_a700c5fc6c1cb4136e55196fe3d393b8b"><div class="ttname"><a href="classSVF_1_1SVFG.html#a700c5fc6c1cb4136e55196fe3d393b8b">SVF::SVFG::removeSVFGNode</a></div><div class="ttdeci">void removeSVFGNode(SVFGNode *node)</div><div class="ttdoc">Remove a SVFGNode. </div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00237">SVFG.h:237</a></div></div>
274
+ <div class="ttc" id="classSVF_1_1SVFG_html_a700c5fc6c1cb4136e55196fe3d393b8b"><div class="ttname"><a href="classSVF_1_1SVFG.html#a700c5fc6c1cb4136e55196fe3d393b8b">SVF::SVFG::removeSVFGNode</a></div><div class="ttdeci">void removeSVFGNode(SVFGNode *node)</div><div class="ttdoc">Remove a SVFGNode. </div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00236">SVFG.h:236</a></div></div>
275
275
  <div class="ttc" id="classSVF_1_1VFG_html_ad8c76cdb73541eed5aa1c2ba9de60383"><div class="ttname"><a href="classSVF_1_1VFG.html#ad8c76cdb73541eed5aa1c2ba9de60383">SVF::VFG::addVFGNode</a></div><div class="ttdeci">virtual void addVFGNode(VFGNode *vfgNode, ICFGNode *icfgNode)</div><div class="ttdoc">Add a VFG node. </div><div class="ttdef"><b>Definition:</b> <a href="VFG_8h_source.html#l00464">VFG.h:464</a></div></div>
276
276
  </div><!-- fragment --></div><!-- contents -->
277
277
  <!-- start footer part -->